@formant/data-sdk 1.75.0 → 1.76.1
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/data-sdk.cjs.js +3 -3
- package/dist/data-sdk.cjs.js.map +1 -1
- package/dist/data-sdk.es.js +70 -26
- package/dist/data-sdk.es.js.map +1 -1
- package/dist/data-sdk.es6.js +70 -26
- package/dist/data-sdk.umd.js +3 -3
- package/dist/types/data-sdk/src/Views.d.ts +9 -0
- package/dist/types/data-sdk/src/api/teleopViews.d.ts +73 -0
- package/dist/types/data-sdk/src/main.d.ts +2 -1
- package/package.json +1 -1
package/dist/data-sdk.umd.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
(function(tt,nt){typeof exports=="object"&&typeof module!="undefined"?nt(exports):typeof define=="function"&&define.amd?define(["exports"],nt):(tt=typeof globalThis!="undefined"?globalThis:tt||self,nt(tt.FormantDataSDK={}))})(this,function(exports){var nt;"use strict";var Bn=Object.defineProperty;var Sn=(tt,nt,$e)=>nt in tt?Bn(tt,nt,{enumerable:!0,configurable:!0,writable:!0,value:$e}):tt[nt]=$e;var he=(tt,nt,$e)=>(Sn(tt,typeof nt!="symbol"?nt+"":nt,$e),$e);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(e,t,n){try{if(t.get("formant_prod"))return"https://api.formant.io";if(t.get("formant_stage"))return"https://api-stage.formant.io";if(t.get("formant_dev"))return"https://api-dev.formant.io";if(t.get("formant_local"))return"https://api.formant.local";if(t.get("formant_url")){const r=t.get("formant_url");if(r!==null)try{return new URL(r).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${r}`)}}if(n){if(n.includes("app-dev.formant.io")||n.includes("localhost"))return"https://api-dev.formant.io";if(n.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(n.includes("app.formant.io"))return"https://api.formant.io"}}catch{}if(n){if(n.includes("app-dev.formant.io"))return"https://api-dev.formant.io";if(n.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(n.includes("app.formant.io"))return"https://api.formant.io"}return typeof e!="undefined"&&"FORMANT_API_URL"in e&&typeof e.FORMANT_API_URL=="string"?e.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}exports.FORMANT_API_URL=whichFormantApiUrl(typeof window!="undefined"?window:globalThis,new URLSearchParams(typeof window!="undefined"&&window.location?window.location.search:void 0),typeof window!="undefined"&&window.location?window.location.host:void 0);const setFormantApiUrl=e=>{exports.FORMANT_API_URL=e};var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports,function(e,t){(function(n){var r=t,o=e&&e.exports==r&&e,s=typeof commonjsGlobal=="object"&&commonjsGlobal;(s.global===s||s.window===s)&&(n=s);var g=function(p){this.message=p};g.prototype=new Error,g.prototype.name="InvalidCharacterError";var l=function(p){throw new g(p)},u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=/[\t\n\f\r ]/g,d=function(p){p=String(p).replace(c,"");var U=p.length;U%4==0&&(p=p.replace(/==?$/,""),U=p.length),(U%4==1||/[^+a-zA-Z0-9/]/.test(p))&&l("Invalid character: the string to be decoded is not correctly encoded.");for(var E=0,M,W,y="",m=-1;++m<U;)W=u.indexOf(p.charAt(m)),M=E%4?M*64+W:W,E++%4&&(y+=String.fromCharCode(255&M>>(-2*E&6)));return y},B=function(p){p=String(p),/[^\0-\xFF]/.test(p)&&l("The string to be encoded contains characters outside of the Latin1 range.");for(var U=p.length%3,E="",M=-1,W,y,m,h,T=p.length-U;++M<T;)W=p.charCodeAt(M)<<16,y=p.charCodeAt(++M)<<8,m=p.charCodeAt(++M),h=W+y+m,E+=u.charAt(h>>18&63)+u.charAt(h>>12&63)+u.charAt(h>>6&63)+u.charAt(h&63);return U==2?(W=p.charCodeAt(M)<<8,y=p.charCodeAt(++M),h=W+y,E+=u.charAt(h>>10)+u.charAt(h>>4&63)+u.charAt(h<<2&63)+"="):U==1&&(h=p.charCodeAt(M),E+=u.charAt(h>>2)+u.charAt(h<<4&63)+"=="),E},Q={encode:B,decode:d,version:"1.0.0"};if(r&&!r.nodeType)if(o)o.exports=Q;else for(var f in Q)Q.hasOwnProperty(f)&&(r[f]=Q[f]);else n.base64=Q})(commonjsGlobal)}(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(n){super("login failed");he(this,"reason");this.reason=n,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(n){super("login challenged");he(this,"challenge");this.challenge=n,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:t,refreshAuthToken:n,addAccessTokenRefreshListener:r}){he(this,"_refreshToken");he(this,"_isShareToken",!1);he(this,"_currentOrganization");he(this,"_currentUser");he(this,"_defaultDeviceId");he(this,"_token");he(this,"_waitingForAuth",new Set);he(this,"_refreshTimer");he(this,"_apiUrl");he(this,"_refreshAuthToken");he(this,"_addAccessTokenRefreshListener");this._apiUrl=t,this._refreshAuthToken=n,this._addAccessTokenRefreshListener=r}set apiUrl(t){this._apiUrl=t,setFormantApiUrl(t)}get apiUrl(){return this._apiUrl}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(t,n,r={}){const{advanced:o=!1}=r;try{const s=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:t,password:n}),headers:{"Content-Type":"application/json"}}),g=await s.json();if(s.status!==200)throw new LoginFailureError(g.message);if("challenge"in g)throw new LoginChallengedError(g.challenge);const{authentication:l}=g;return await this.loginWithToken(l.accessToken,l.refreshToken),o?{result:"success",authentication:l}:l}catch(s){if(o||console.error("login() failed",{err:s}),this._waitingForAuth.forEach(g=>g(!1)),this._waitingForAuth.clear(),!o)throw s;return s instanceof LoginChallengedError?{result:"challenged",challenge:s.challenge}:{result:"failure",reason:s instanceof LoginFailureError?s.reason:s instanceof Error?s.message:String(s)}}}async loginWithToken(t,n){var o;const r=JSON.parse(base64Exports.decode(t.split(".")[1]));try{let s;if(this._isShareToken=r["formant:claims"]&&r["formant:claims"].type=="share",r["formant:claims"]&&(this._currentOrganization=r["formant:claims"].organizationId),r["custom:organization_id"]&&(this._currentOrganization=r["custom:organization_id"]),this._isShareToken||(s=r.sub),r["formant:claims"]&&r["formant:claims"].userId&&(s=r["formant:claims"].userId),s&&((o=this._currentUser)==null?void 0:o.id)!==s){const g=await fetch(`${this._apiUrl}/v1/admin/users/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+t}}),l=await g.json();if(g.status!==200)throw new Error(l.message);this._currentUser=l}this._token=t,this._waitingForAuth.forEach(g=>g(!0))}catch(s){console.error("loginWithToken() failed",{err:s}),this._waitingForAuth.forEach(g=>g(!1))}finally{this._waitingForAuth.clear()}n&&(this._refreshToken=n,setInterval(async()=>{if(this._refreshToken){const g=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=g.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(t,n,r){if((await fetch(`${t}/login`,{method:"POST",body:JSON.stringify({username:n,password:r}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(t=>{this._waitingForAuth.add(t)})}async listenForRefresh(){const n=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(r=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(n,36e5),this.loginWithToken(r)}),this._refreshTimer=setTimeout(n,36e5)}async forgotPassword(t){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:t}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(t){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(t){const n=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});if(n.ok)return await n.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(t){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})).json()}async refresh(t){const r=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:t})})).json();await this.loginWithToken(r.authentication.accessToken,t)}async checkSso(t,n){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:t,allowUserAutoCreation:n}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(t,n){const o=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:t,refreshToken:n}),headers:{"Content-Type":"application/json"}})).json();if(!o.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(o.authentication.accessToken,o.authentication.refreshToken)}}function getCurrentModuleContext(){return typeof window!="undefined"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(e){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(e,"*")}function refreshAuthToken(){const e=getCurrentModuleContext();if(!e)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:e})}function addAccessTokenRefreshListener(e){function t(n){const r=n.data;r.type==="auth_token"&&e(r.token)}return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}const Authentication=new AuthenticationStore({apiUrl:exports.FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});class Account{static async listAccounts(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createAccounts(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getAccount(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchAccount(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteAccount(t){if(!Authentication.token)throw new Error("Not authenticated");if(!(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to delete account")}static async getAccountTree(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}/tree`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}}async function getModuleConfiguration(e){return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/module-configurations/${e}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(e){sendAppMessage({type:"go_to_device",deviceId:e})}function goToTime(e){sendAppMessage({type:"go_to_time",time:e.getTime()})}function requestModuleData(){const e=getCurrentModuleContext();if(!e)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:e})}function sendChannelData(e,t){const n=getCurrentModuleContext();if(!n)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:n,channel:e,data:t})}function setModuleDateTimeRange(e,t){const n=getCurrentModuleContext();if(!n)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:n,before:e,after:t||0})}function setupModuleMenus(e){const t=getCurrentModuleContext();if(!t)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:t,menus:e})}function showMessage(e){sendAppMessage({type:"show_message",message:e})}function addChannelDataListener(e,t){const n=r=>{const o=r.data;o.type==="channel_data"&&o.channel===e&&t({source:o.source,data:o.data})};return window.addEventListener("message",n),()=>window.removeEventListener("message",n)}function addMenuListener(e){const t=n=>{const r=n.data;r.type==="module_menu_item_clicked"&&e(r.menu)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function addModuleConfigurationListener(e){const t=n=>{const r=n.data;r.type==="module_configuration"&&e(r)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function addModuleDataListener(e){const t=getCurrentModuleContext();t&&sendAppMessage({type:"request_module_data",module:t});const n=r=>{const o=r.data;o.type==="module_data"&&e({streams:o.streams,time:o.time,queryRange:o.queryRange})};return window.addEventListener("message",n),()=>window.removeEventListener("message",n)}function addOverviewDeviceListener(e){sendAppMessage({type:"request_devices"});const t=n=>{const r=n.data;r.type==="overview_devices"&&e(r.data)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function _typeof(e){return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(e)}function toInteger(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function requiredArgs(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function toDate(e){requiredArgs(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||_typeof(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(e,t){requiredArgs(2,arguments);var n=toDate(e),r=toInteger(t);return isNaN(r)?new Date(NaN):(r&&n.setDate(n.getDate()+r),n)}function addMonths(e,t){requiredArgs(2,arguments);var n=toDate(e),r=toInteger(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var o=n.getDate(),s=new Date(n.getTime());s.setMonth(n.getMonth()+r+1,0);var g=s.getDate();return o>=g?s:(n.setFullYear(s.getFullYear(),s.getMonth(),o),n)}function addMilliseconds(e,t){requiredArgs(2,arguments);var n=toDate(e).getTime(),r=toInteger(t);return new Date(n+r)}var MILLISECONDS_IN_HOUR=36e5;function addHours(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.weekStartsOn)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&o!==void 0?o:d.weekStartsOn)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(B>=0&&B<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var Q=toDate(e),f=Q.getDay(),p=(f<B?7:0)+f-B;return Q.setDate(Q.getDate()-p),Q.setHours(0,0,0,0),Q}function startOfDay(e){requiredArgs(1,arguments);var t=toDate(e);return t.setHours(0,0,0,0),t}var MILLISECONDS_IN_MINUTE=6e4;function addMinutes(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*MILLISECONDS_IN_MINUTE)}function addQuarters(e,t){requiredArgs(2,arguments);var n=toInteger(t),r=n*3;return addMonths(e,r)}function addSeconds(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*1e3)}function addWeeks(e,t){requiredArgs(2,arguments);var n=toInteger(t),r=n*7;return addDays(e,r)}function addYears(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMonths(e,n*12)}function getQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=Math.floor(t.getMonth()/3)+1;return n}var roundingMap={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},defaultRoundingMethod="trunc";function getRoundingMethod(e){return e?roundingMap[e]:roundingMap[defaultRoundingMethod]}function endOfDay(e){requiredArgs(1,arguments);var t=toDate(e);return t.setHours(23,59,59,999),t}function endOfMonth(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function eachDayOfInterval(e,t){var n;requiredArgs(1,arguments);var r=e||{},o=toDate(r.start),s=toDate(r.end),g=s.getTime();if(!(o.getTime()<=g))throw new RangeError("Invalid interval");var l=[],u=o;u.setHours(0,0,0,0);var c=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number greater than 1");for(;u.getTime()<=g;)l.push(toDate(u)),u.setDate(u.getDate()+c),u.setHours(0,0,0,0);return l}function eachHourOfInterval(e,t){var n;requiredArgs(1,arguments);var r=e||{},o=toDate(r.start),s=toDate(r.end),g=o.getTime(),l=s.getTime();if(!(g<=l))throw new RangeError("Invalid interval");var u=[],c=o;c.setMinutes(0,0,0);var d=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(d<1||isNaN(d))throw new RangeError("`options.step` must be a number greater than 1");for(;c.getTime()<=l;)u.push(toDate(c)),c=addHours(c,d);return u}function startOfMinute(e){requiredArgs(1,arguments);var t=toDate(e);return t.setSeconds(0,0),t}function eachMinuteOfInterval(e,t){var n;requiredArgs(1,arguments);var r=startOfMinute(toDate(e.start)),o=toDate(e.end),s=r.getTime(),g=o.getTime();if(s>=g)throw new RangeError("Invalid interval");var l=[],u=r,c=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;u.getTime()<=g;)l.push(toDate(u)),u=addMinutes(u,c);return l}function eachMonthOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime(),s=[];if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var g=n;for(g.setHours(0,0,0,0),g.setDate(1);g.getTime()<=o;)s.push(toDate(g)),g.setMonth(g.getMonth()+1);return s}function startOfQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth(),r=n-n%3;return t.setMonth(r,1),t.setHours(0,0,0,0),t}function eachQuarterOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime();if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var s=startOfQuarter(n),g=startOfQuarter(r);o=g.getTime();for(var l=[],u=s;u.getTime()<=o;)l.push(toDate(u)),u=addQuarters(u,1);return l}function eachWeekOfInterval(e,t){requiredArgs(1,arguments);var n=e||{},r=toDate(n.start),o=toDate(n.end),s=o.getTime();if(!(r.getTime()<=s))throw new RangeError("Invalid interval");var g=startOfWeek(r,t),l=startOfWeek(o,t);g.setHours(15),l.setHours(15),s=l.getTime();for(var u=[],c=g;c.getTime()<=s;)c.setHours(0),u.push(toDate(c)),c=addWeeks(c,1),c.setHours(15);return u}function startOfMonth(e){requiredArgs(1,arguments);var t=toDate(e);return t.setDate(1),t.setHours(0,0,0,0),t}function endOfYear(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}function startOfYear(e){requiredArgs(1,arguments);var t=toDate(e),n=new Date(0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}function eachYearOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime();if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var s=[],g=n;for(g.setHours(0,0,0,0),g.setMonth(0,1);g.getTime()<=o;)s.push(toDate(g)),g.setFullYear(g.getFullYear()+1);return s}function endOfHour(e){requiredArgs(1,arguments);var t=toDate(e);return t.setMinutes(59,59,999),t}function endOfWeek(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.weekStartsOn)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&o!==void 0?o:d.weekStartsOn)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(B>=0&&B<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var Q=toDate(e),f=Q.getDay(),p=(f<B?-7:0)+6-(f-B);return Q.setDate(Q.getDate()+p),Q.setHours(23,59,59,999),Q}function endOfMinute(e){requiredArgs(1,arguments);var t=toDate(e);return t.setSeconds(59,999),t}function endOfQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth(),r=n-n%3+3;return t.setMonth(r,0),t.setHours(23,59,59,999),t}function getDay(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getDay();return n}function getHours(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getHours();return n}function getMinutes(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMinutes();return n}function getMonth(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth();return n}function getWeekYear(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=toDate(e),B=d.getFullYear(),Q=getDefaultOptions(),f=toInteger((n=(r=(o=(s=t==null?void 0:t.firstWeekContainsDate)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.firstWeekContainsDate)!==null&&o!==void 0?o:Q.firstWeekContainsDate)!==null&&r!==void 0?r:(u=Q.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&n!==void 0?n:1);if(!(f>=1&&f<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setFullYear(B+1,0,f),p.setHours(0,0,0,0);var U=startOfWeek(p,t),E=new Date(0);E.setFullYear(B,0,f),E.setHours(0,0,0,0);var M=startOfWeek(E,t);return d.getTime()>=U.getTime()?B+1:d.getTime()>=M.getTime()?B:B-1}function startOfWeekYear(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.firstWeekContainsDate)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.firstWeekContainsDate)!==null&&o!==void 0?o:d.firstWeekContainsDate)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&n!==void 0?n:1),Q=getWeekYear(e,t),f=new Date(0);f.setFullYear(Q,0,B),f.setHours(0,0,0,0);var p=startOfWeek(f,t);return p}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(e,t){requiredArgs(1,arguments);var n=toDate(e),r=startOfWeek(n,t).getTime()-startOfWeekYear(n,t).getTime();return Math.round(r/MILLISECONDS_IN_WEEK)+1}function getYear(e){return requiredArgs(1,arguments),toDate(e).getFullYear()}function startOfHour(e){requiredArgs(1,arguments);var t=toDate(e);return t.setMinutes(0,0,0),t}function subDays(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addDays(e,-n)}function roundToNearestMinutes(e,t){var n;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var r=toInteger((n=t==null?void 0:t.nearestTo)!==null&&n!==void 0?n:1);if(r<1||r>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var o=toDate(e),s=o.getSeconds(),g=o.getMinutes()+s/60,l=getRoundingMethod(t==null?void 0:t.roundingMethod),u=l(g/r)*r,c=g%r,d=Math.round(c/r)*r;return new Date(o.getFullYear(),o.getMonth(),o.getDate(),o.getHours(),u+d)}function subMonths(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMonths(e,-n)}function subHours(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addHours(e,-n)}function subMinutes(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMinutes(e,-n)}function subQuarters(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addQuarters(e,-n)}function subWeeks(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addWeeks(e,-n)}function subYears(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addYears(e,-n)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(e,t){return e.filter(n=>t.includes(n.type))}function filterDataByTime$1(e,t,n){const r=t.getTime(),o=n.getTime();return e.map(s=>({...s,points:s.points.filter(([g])=>g>=r&&g<o)})).filter(({points:s})=>s.length>0)}let StoreCache$1=class{constructor({capacity:t,timeout:n}={}){he(this,"entries",new Map);he(this,"metadata",new Map);he(this,"capacity");he(this,"staleIntervalMs");this.capacity=t||1e4,this.staleIntervalMs=n||duration$2.minute}get(t,n){const r=this.keyToCacheKey(t);return this.isStale(r)&&!this.isGenerating(r)&&n&&this.generate(t,n),this.entries.get(r)}set(t,n){const r=this.keyToCacheKey(t);this.metadata.set(r,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const o=this.entries.get(r);JSON.stringify(o)===JSON.stringify(n)||(this.entries.set(r,n),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(t=>t.generating=!1)}clearKey(t){this.metadata.delete(t),this.entries.delete(t)}keyToCacheKey(t){return JSON.stringify(t)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[t]=[...this.metadata.entries()].reduce(([n,r],[o,s])=>s.staleAt<r.staleAt?[o,s]:[n,r]);this.clearKey(t)}}isStale(t){const n=this.metadata.get(t);return n?(n==null?void 0:n.staleAt)<performance.now():!0}isGenerating(t){const n=this.metadata.get(t);return n?n.generating:!1}generate(t,n){const r=this.keyToCacheKey(t),o=this.metadata.get(r)||{},s=n().then(g=>{const l=this.metadata.get(r);return(l==null?void 0:l.generating)!==s||this.set(t,g),g}).catch(g=>{throw this.metadata.delete(r),g});this.metadata.set(r,{...o,generating:s,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second}));he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(t,n,r,o,s,g=!1){const l={...t,names:[...n],types:[...r]},u=this.query(l,o,s,g);return u===void 0||u==="too much data"?u:filterDataByType$1(u,r)}query(t,n,r,o=!1){const s={...t,start:startOfMinute(n).toISOString(),end:o?r.toISOString():addMinutes(roundToNearestMinutes(r),1).toISOString(),latestOnly:o},g=r>addSeconds(new Date,-20);let l;return g?l=this.liveQueryCache(s):l=this.queryCache(s),!l||l==="too much data"||o?l:filterDataByTime$1(l,n,r)}queryCache(t){return this.queryStoreCache.get(t,async()=>{try{return await queryTelemetry(t)}catch(n){throw n}})}liveQueryCache(t){return this.liveQueryStoreCache.get(t,async()=>{try{return await queryTelemetry(t)}catch(n){throw n}})}};const queryStore=new QueryStore$1;function addStreamListener(e,t,n){const r=o=>{const s=o.data;if(s.type==="module_data"){const{start:g,end:l}=s.queryRange;n(queryStore.moduleQuery({},e,t,new Date(g),new Date(l),!1))}};return window.addEventListener("message",r),()=>window.removeEventListener("message",r)}async function getDate(e,t,n){return new Promise(r=>{sendAppMessage({type:"request_date",minTime:t,maxTime:n,time:e});const o=s=>{const g=s.data;g.type==="date_response"&&(window.removeEventListener("message",o),r(g.data))};window.addEventListener("message",o)})}async function prompt(e,t){return new Promise(n=>{const r=Math.random().toString();sendAppMessage({type:"prompt",promptId:r,schema:e,okText:t==null?void 0:t.okText,cancelText:t==null?void 0:t.cancelText});const o=s=>{const g=s.data;g.type==="prompt_response"&&g.promptId===r&&n(g.data),window.removeEventListener("message",o)};window.addEventListener("message",o)})}const tt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let t=new URLSearchParams("");typeof window!="undefined"&&window.location&&(t=new URLSearchParams(window.location.search));const n=t.get("configuration");if(!(n===null||n.trim()===""))return getModuleConfiguration(n.trim())}static get isOnline(){return tt._isOnline}static listenForConnectionEvents(){const t=n=>{const{data:r}=n;r.type==="formant_online"&&(this._isOnline=r.online)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}static checkConnection(t=1e3){return new Promise((n,r)=>{const o=setTimeout(()=>r(new Error("deadline expired: took too long")),t),s=g=>{window.removeEventListener("message",s),clearTimeout(o);const{data:l}=g;l.type==="formant_online"&&(this._isOnline=l.online,n(l.online))};window.addEventListener("message",s),sendAppMessage({type:"formant_online"})})}static waitForConnection(t=5e3){let n=!1;const r=new Promise((g,l)=>{setTimeout(()=>{n=!0,l(new Error("deadline expired: took too long"))},t)}),o=g=>new Promise(l=>setTimeout(l,g)),s=async()=>{for(await o(50);!n&&!(this.isOnline||await this.checkConnection);)await o(500)};return Promise.race([r,s()])}};let App=tt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function stringToArrayBuffer(e){return Uint8Array.from(base64Exports.decode(e),t=>t.charCodeAt(0))}function fork$1(e){}function browser(){const{userAgent:e}=navigator;return e?e.includes("Firefox/")?"Firefox":e.includes("Edg/")?"Edge":e.includes("Chrome/")?"Chrome":e.includes("Safari/")?"Safari":e.includes("MSIE/")||e.includes("Trident/")?"IE":"Other":"Other"}const rtcAudioChunkStreamType="audio-chunk";class AudioPlayer{constructor(t,n){he(this,"muted",!1);he(this,"hasReceivedData",!1);he(this,"audioContext");he(this,"chunks",[]);he(this,"isPlaying",!1);he(this,"startTime",0);he(this,"lastChunkOffset",0);he(this,"bufferSize",3);he(this,"receive",async t=>{var g;const n=(g=t.payload.audioChunk)==null?void 0:g.chunk_data;if(!n)return;this.hasReceivedData||(this.hasReceivedData=!0);const{audioContext:r,muted:o}=this;if(!r||t.header.stream.streamType!==rtcAudioChunkStreamType||o!==!1)return;const s=stringToArrayBuffer(n);try{await r.decodeAudioData(s.buffer,this.scheduleChunk)}catch(l){console.warn("Error decoding audio buffer, changing audioWireFormat on agent",{error:l}),this.changeAudioWireFormat("wav")}});he(this,"scheduleChunk",t=>{const{audioContext:n}=this;if(!n)return;(this.chunks.length>this.bufferSize||this.isPlaying===!1)&&(this.chunks.forEach(o=>{o.stop()}),this.isPlaying=!1,this.chunks=[]);const r=this.createChunk(t);r&&r.buffer&&(this.isPlaying===!1&&(this.startTime=n.currentTime,this.lastChunkOffset=0,this.isPlaying=!0),r.start(this.startTime+this.lastChunkOffset,0,t.duration),this.lastChunkOffset+=r.buffer.duration,this.chunks.push(r))});this.device=t,this.stream=n,this.device.startListeningToRealtimeDataStream(n),this.device.addRealtimeListener((o,s)=>{this.receive(s)}),browser()==="Safari"||browser()==="IE"?this.changeAudioWireFormat("wav"):this.changeAudioWireFormat("opus");const r=window.AudioContext||window.webkitAudioContext;this.audioContext=new r}async play(){var t,n;((t=this.audioContext)==null?void 0:t.state)==="suspended"&&await((n=this.audioContext)==null?void 0:n.resume()),this.muted=!1}async pause(){await this.audioContext.suspend(),this.muted=!0}destroy(){this.device.stopListeningToRealtimeDataStream(this.stream)}createChunk(t){const{audioContext:n}=this;if(!n)return;const r=n.createBufferSource();return r.buffer=t,r.connect(n.destination),r.loop=!1,r.onended=o=>{this.chunks.splice(this.chunks.indexOf(r),1),this.chunks.length===0&&(this.isPlaying=!1)},r}changeAudioWireFormat(t){const{stream:n}=this;(async()=>await this.device.changeStreamAudioType(n.name,t))()}}class CaptureStream{constructor(t){he(this,"token");this.captureSession=t}async ingestJSON(t){if(!this.token){const r=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=r.token}await fetch(`${exports.FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(t)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}class DataChannel{constructor(t){he(this,"ready",!1);he(this,"listeners",[]);he(this,"openListeners",[]);he(this,"closeListeners",[]);he(this,"errorListeners",[]);he(this,"binaryListeners",[]);he(this,"error");he(this,"decoder",new TextDecoder);this.dataChannel=t,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(n=>n())},this.dataChannel.onerror=n=>{console.error(n),this.error="An error occurred in DataChannel",this.errorListeners.forEach(r=>r(n))},this.dataChannel.onmessage=n=>{this.listeners.forEach(r=>{const o=new Uint8Array(n.data),s=this.decoder.decode(o);r(s)}),this.binaryListeners.forEach(r=>{r(new Uint8Array(n.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(t=>t())}addOpenListener(t){this.openListeners.push(t)}removeOpenListener(t){this.openListeners=this.openListeners.filter(n=>n!==t)}addCloseListener(t){this.closeListeners.push(t)}removeCloseListener(t){this.closeListeners=this.closeListeners.filter(n=>n!==t)}addErrorListener(t){this.errorListeners.push(t)}removeErrorListener(t){this.errorListeners=this.errorListeners.filter(n=>n!==t)}async waitTilReady(){return this.ready?!0:new Promise((n,r)=>{let o=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(o),n(!0)),this.error&&r(this.error)},10)})}send(t){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(t)}sendBinary(t){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(t)}addListener(t){this.listeners.push(t)}removeListener(t){const n=this.listeners.indexOf(t);if(n===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(n,1)}addBinaryListener(t){this.binaryListeners.push(t)}removeBinaryListener(t){const n=this.binaryListeners.indexOf(t);if(n===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(n,1)}}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(e,t){module.exports=t()})(window,function(){return function(e){function t(c){for(var d,B,Q=c[0],f=c[1],p=0,U=[];p<Q.length;p++)B=Q[p],Object.prototype.hasOwnProperty.call(r,B)&&r[B]&&U.push(r[B][0]),r[B]=0;for(d in f)Object.prototype.hasOwnProperty.call(f,d)&&(e[d]=f[d]);for(u&&u(c);U.length;)U.shift()()}var n={},r={0:0};function o(c){if(n[c])return n[c].exports;var d=n[c]={i:c,l:!1,exports:{}};return e[c].call(d.exports,d,d.exports,o),d.l=!0,d.exports}o.e=function(){return Promise.resolve()},o.m=e,o.c=n,o.d=function(c,d,B){o.o(c,d)||Object.defineProperty(c,d,{enumerable:!0,get:B})},o.r=function(c){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},o.t=function(c,d){if(1&d&&(c=o(c)),8&d||4&d&&typeof c=="object"&&c&&c.__esModule)return c;var B=Object.create(null);if(o.r(B),Object.defineProperty(B,"default",{enumerable:!0,value:c}),2&d&&typeof c!="string")for(var Q in c)o.d(B,Q,function(f){return c[f]}.bind(null,Q));return B},o.n=function(c){var d=c&&c.__esModule?function(){return c.default}:function(){return c};return o.d(d,"a",d),d},o.o=function(c,d){return Object.prototype.hasOwnProperty.call(c,d)},o.p="",o.oe=function(c){throw console.error(c),c};var s=window.webpackJsonpFormantRealtimeSDK=window.webpackJsonpFormantRealtimeSDK||[],g=s.push.bind(s);s.push=t,s=s.slice();for(var l=0;l<s.length;l++)t(s[l]);var u=g;return o(o.s=233)}([function(e,t,n){n.d(t,"a",function(){return V});var r=n(16),o=n(55),s=n(15),g=n.n(s),l=n(18);function u(K,Y){if(Y.length<K)throw new TypeError(K+" argument"+(K>1?"s":"")+" required, but only "+Y.length+" present")}function c(K){if(K===null||K===!0||K===!1)return NaN;var Y=Number(K);return isNaN(Y)?Y:Y<0?Math.ceil(Y):Math.floor(Y)}var d={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},B=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Q=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,f=/^([+-])(\d{2})(?::?(\d{2}))?$/;function p(K){var Y,te={},oe=K.split(d.dateTimeDelimiter);if(oe.length>2)return te;if(/:/.test(oe[0])?Y=oe[0]:(te.date=oe[0],Y=oe[1],d.timeZoneDelimiter.test(te.date)&&(te.date=K.split(d.timeZoneDelimiter)[0],Y=K.substr(te.date.length,K.length))),Y){var ge=d.timezone.exec(Y);ge?(te.time=Y.replace(ge[1],""),te.timezone=ge[1]):te.time=Y}return te}function U(K,Y){var te=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+Y)+"})|(\\d{2}|[+-]\\d{"+(2+Y)+"})$)"),oe=K.match(te);if(!oe)return{year:NaN,restDateString:""};var ge=oe[1]?parseInt(oe[1]):null,Se=oe[2]?parseInt(oe[2]):null;return{year:Se===null?ge:100*Se,restDateString:K.slice((oe[1]||oe[2]).length)}}function E(K,Y){if(Y===null)return new Date(NaN);var te=K.match(B);if(!te)return new Date(NaN);var oe=!!te[4],ge=M(te[1]),Se=M(te[2])-1,ve=M(te[3]),ye=M(te[4]),Je=M(te[5])-1;if(oe)return function(be,we,Ze){return we>=1&&we<=53&&Ze>=0&&Ze<=6}(0,ye,Je)?function(be,we,Ze){var Oe=new Date(0);Oe.setUTCFullYear(be,0,4);var lt=Oe.getUTCDay()||7,Et=7*(we-1)+Ze+1-lt;return Oe.setUTCDate(Oe.getUTCDate()+Et),Oe}(Y,ye,Je):new Date(NaN);var Ee=new Date(0);return function(be,we,Ze){return we>=0&&we<=11&&Ze>=1&&Ze<=(h[we]||(T(be)?29:28))}(Y,Se,ve)&&function(be,we){return we>=1&&we<=(T(be)?366:365)}(Y,ge)?(Ee.setUTCFullYear(Y,Se,Math.max(ge,ve)),Ee):new Date(NaN)}function M(K){return K?parseInt(K):1}function W(K){var Y=K.match(Q);if(!Y)return NaN;var te=y(Y[1]),oe=y(Y[2]),ge=y(Y[3]);return function(Se,ve,ye){return Se===24?ve===0&&ye===0:ye>=0&&ye<60&&ve>=0&&ve<60&&Se>=0&&Se<25}(te,oe,ge)?36e5*te+6e4*oe+1e3*ge:NaN}function y(K){return K&&parseFloat(K.replace(",","."))||0}function m(K){if(K==="Z")return 0;var Y=K.match(f);if(!Y)return 0;var te=Y[1]==="+"?-1:1,oe=parseInt(Y[2]),ge=Y[3]&&parseInt(Y[3])||0;return function(Se,ve){return ve>=0&&ve<=59}(0,ge)?te*(36e5*oe+6e4*ge):NaN}var h=[31,null,31,30,31,30,31,31,30,31,30,31];function T(K){return K%400==0||K%4==0&&K%100!=0}var I=n(40);function X(K){return u(1,arguments),K instanceof Date||Object(I.a)(K)==="object"&&Object.prototype.toString.call(K)==="[object Date]"}function F(K){u(1,arguments);var Y=Object.prototype.toString.call(K);return K instanceof Date||Object(I.a)(K)==="object"&&Y==="[object Date]"?new Date(K.getTime()):typeof K=="number"||Y==="[object Number]"?new Date(K):(typeof K!="string"&&Y!=="[object String]"||typeof console=="undefined"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function R(K){const Y=function(te,oe){var ge;u(1,arguments);var Se=c((ge=oe==null?void 0:oe.additionalDigits)!==null&&ge!==void 0?ge:2);if(Se!==2&&Se!==1&&Se!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof te!="string"&&Object.prototype.toString.call(te)!=="[object String]")return new Date(NaN);var ve,ye=p(te);if(ye.date){var Je=U(ye.date,Se);ve=E(Je.restDateString,Je.year)}if(!ve||isNaN(ve.getTime()))return new Date(NaN);var Ee,be=ve.getTime(),we=0;if(ye.time&&(we=W(ye.time),isNaN(we)))return new Date(NaN);if(!ye.timezone){var Ze=new Date(be+we),Oe=new Date(0);return Oe.setFullYear(Ze.getUTCFullYear(),Ze.getUTCMonth(),Ze.getUTCDate()),Oe.setHours(Ze.getUTCHours(),Ze.getUTCMinutes(),Ze.getUTCSeconds(),Ze.getUTCMilliseconds()),Oe}return Ee=m(ye.timezone),isNaN(Ee)?new Date(NaN):new Date(be+we+Ee)}(K);if(!function(te){if(u(1,arguments),!X(te)&&typeof te!="number")return!1;var oe=F(te);return!isNaN(Number(oe))}(Y))throw new Error(`Invalid ISO 8601 date string (${K})`);return Y}const x=Math.pow(2,20),w=x;var _=n(3),j=n(28);function C(K){return g()(K,{cycles:!0})}var J=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};function v(K,Y={}){const{redacted:te=!0}=Y,oe=Je=>te?Object(j.a)(Je):Je;if(!K.stack)return{message:C(oe(K))};const{name:ge,message:Se,stack:ve}=K,ye=J(K,["name","message","stack"]);return{name:ge,message:Se!==void 0?Se:C(oe(K)),stack:ve,meta:ye&&Object.keys(ye).length===0?void 0:oe(ye)}}function D(K,Y={}){const{message:te,stack:oe,meta:ge}=v(K,Y);return`${oe||te||""}${ge&&Object.keys(ge).length>0?" -- "+C(ge):""}`}var A=n(236);const b=Object(A.a)();var P=n(14),z=n.n(P),$=function(K,Y,te,oe){return new(te||(te=Promise))(function(ge,Se){function ve(Ee){try{Je(oe.next(Ee))}catch(be){Se(be)}}function ye(Ee){try{Je(oe.throw(Ee))}catch(be){Se(be)}}function Je(Ee){var be;Ee.done?ge(Ee.value):(be=Ee.value,be instanceof te?be:new te(function(we){we(be)})).then(ve,ye)}Je((oe=oe.apply(K,Y||[])).next())})},ee=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};class re extends z.a{constructor(Y,te){super(),this.endpoint=Y,this.metadata=te,this.logClient=this.getLogClient()}getLogClient(){return $(this,void 0,void 0,function*(){const{LogClient:Y}=yield Promise.resolve().then(n.bind(null,235));return new Y(this.endpoint)})}log(Y,te){return $(this,void 0,void 0,function*(){const{level:oe,message:ge,error:Se}=Y,ve=ee(Y,["level","message","error"]);this.emit("logged");try{yield(yield this.logClient).log([{timestamp:new Date().toISOString(),level:oe,message:(""+ge).substring(0,1e3),error:Se!==void 0?v(Se):void 0,meta:Object.assign(Object.assign({},ve),this.metadata)}])}catch(ye){console.error("Failed to log to log-api: "+D(ye))}te()})}}var O=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};const k={app:_.a,namespace:_.j,buildTag:_.c,instanceId:b},S=_.f?l.format.printf(K=>{var{timestamp:Y,level:te,message:oe,error:ge}=K,Se=O(K,["timestamp","level","message","error"]);const ve=Object.assign(Object.assign({timestamp:Y?R(Y).getTime():new Date().getTime(),level:te.toUpperCase(),message:oe},ge?{error:v(ge)}:{}),{meta:Object.assign(Object.assign({},k),Se)});return g()(ve,{cycles:!0})}):l.format.printf(K=>{var{timestamp:Y,level:te,message:oe,error:ge}=K,Se=O(K,["timestamp","level","message","error"]);let ve=`${Y||new Date().toISOString()} ${te.toUpperCase()}: ${oe} `;return Object.keys(Se).length>0&&(ve+=g()(Se,{cycles:!0})),ge&&(ve+=`
|
|
1
|
+
(function(tt,nt){typeof exports=="object"&&typeof module!="undefined"?nt(exports):typeof define=="function"&&define.amd?define(["exports"],nt):(tt=typeof globalThis!="undefined"?globalThis:tt||self,nt(tt.FormantDataSDK={}))})(this,function(exports){var nt;"use strict";var Bn=Object.defineProperty;var Sn=(tt,nt,$e)=>nt in tt?Bn(tt,nt,{enumerable:!0,configurable:!0,writable:!0,value:$e}):tt[nt]=$e;var he=(tt,nt,$e)=>(Sn(tt,typeof nt!="symbol"?nt+"":nt,$e),$e);const DEFAULT_FORMANT_API_URL="https://api.formant.io";function whichFormantApiUrl(e,t,n){try{if(t.get("formant_prod"))return"https://api.formant.io";if(t.get("formant_stage"))return"https://api-stage.formant.io";if(t.get("formant_dev"))return"https://api-dev.formant.io";if(t.get("formant_local"))return"https://api.formant.local";if(t.get("formant_url")){const r=t.get("formant_url");if(r!==null)try{return new URL(r).origin}catch{console.warn(`Ignoring malformed \`formant_url\` url parameter: ${r}`)}}if(n){if(n.includes("app-dev.formant.io")||n.includes("localhost"))return"https://api-dev.formant.io";if(n.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(n.includes("app.formant.io"))return"https://api.formant.io"}}catch{}if(n){if(n.includes("app-dev.formant.io"))return"https://api-dev.formant.io";if(n.includes("app-stage.formant.io"))return"https://api-stage.formant.io";if(n.includes("app.formant.io"))return"https://api.formant.io"}return typeof e!="undefined"&&"FORMANT_API_URL"in e&&typeof e.FORMANT_API_URL=="string"?e.FORMANT_API_URL:DEFAULT_FORMANT_API_URL}exports.FORMANT_API_URL=whichFormantApiUrl(typeof window!="undefined"?window:globalThis,new URLSearchParams(typeof window!="undefined"&&window.location?window.location.search:void 0),typeof window!="undefined"&&window.location?window.location.host:void 0);const setFormantApiUrl=e=>{exports.FORMANT_API_URL=e};function addAccessTokenRefreshListener(e){function t(n){const r=n.data;r.type==="auth_token"&&e(r.token)}return window.addEventListener("message",t),()=>{window.removeEventListener("message",t)}}function getCurrentModuleContext(){return typeof window!="undefined"&&window.location?new URLSearchParams(window.location.search).get("module"):null}function sendAppMessage(e){if(!(window&&window.parent))throw new Error("cannot send message to non-existent parent");window.parent.postMessage(e,"*")}function refreshAuthToken(){const e=getCurrentModuleContext();if(!e)throw new Error("No module context");sendAppMessage({type:"refresh_auth_token",module:e})}var commonjsGlobal=typeof globalThis!="undefined"?globalThis:typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:{};function getDefaultExportFromCjs(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var base64={exports:{}};/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */base64.exports,function(e,t){(function(n){var r=t,o=e&&e.exports==r&&e,s=typeof commonjsGlobal=="object"&&commonjsGlobal;(s.global===s||s.window===s)&&(n=s);var g=function(p){this.message=p};g.prototype=new Error,g.prototype.name="InvalidCharacterError";var l=function(p){throw new g(p)},u="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=/[\t\n\f\r ]/g,d=function(p){p=String(p).replace(c,"");var U=p.length;U%4==0&&(p=p.replace(/==?$/,""),U=p.length),(U%4==1||/[^+a-zA-Z0-9/]/.test(p))&&l("Invalid character: the string to be decoded is not correctly encoded.");for(var E=0,M,W,y="",m=-1;++m<U;)W=u.indexOf(p.charAt(m)),M=E%4?M*64+W:W,E++%4&&(y+=String.fromCharCode(255&M>>(-2*E&6)));return y},B=function(p){p=String(p),/[^\0-\xFF]/.test(p)&&l("The string to be encoded contains characters outside of the Latin1 range.");for(var U=p.length%3,E="",M=-1,W,y,m,h,T=p.length-U;++M<T;)W=p.charCodeAt(M)<<16,y=p.charCodeAt(++M)<<8,m=p.charCodeAt(++M),h=W+y+m,E+=u.charAt(h>>18&63)+u.charAt(h>>12&63)+u.charAt(h>>6&63)+u.charAt(h&63);return U==2?(W=p.charCodeAt(M)<<8,y=p.charCodeAt(++M),h=W+y,E+=u.charAt(h>>10)+u.charAt(h>>4&63)+u.charAt(h<<2&63)+"="):U==1&&(h=p.charCodeAt(M),E+=u.charAt(h>>2)+u.charAt(h<<4&63)+"=="),E},Q={encode:B,decode:d,version:"1.0.0"};if(r&&!r.nodeType)if(o)o.exports=Q;else for(var f in Q)Q.hasOwnProperty(f)&&(r[f]=Q[f]);else n.base64=Q})(commonjsGlobal)}(base64,base64.exports);var base64Exports=base64.exports;class LoginFailureError extends Error{constructor(n){super("login failed");he(this,"reason");this.reason=n,this.name="LoginFailureError",Object.setPrototypeOf(this,new.target.prototype)}}class LoginChallengedError extends Error{constructor(n){super("login challenged");he(this,"challenge");this.challenge=n,this.name="LoginChallengedError",Object.setPrototypeOf(this,new.target.prototype)}}class AuthenticationStore{constructor({apiUrl:t,refreshAuthToken:n,addAccessTokenRefreshListener:r}){he(this,"_refreshToken");he(this,"_isShareToken",!1);he(this,"_currentOrganization");he(this,"_currentUser");he(this,"_defaultDeviceId");he(this,"_token");he(this,"_waitingForAuth",new Set);he(this,"_refreshTimer");he(this,"_apiUrl");he(this,"_refreshAuthToken");he(this,"_addAccessTokenRefreshListener");this._apiUrl=t,this._refreshAuthToken=n,this._addAccessTokenRefreshListener=r}set apiUrl(t){this._apiUrl=t,setFormantApiUrl(t)}get apiUrl(){return this._apiUrl}get token(){return this._token}get currentUser(){return this._currentUser}get currentOrganization(){return this._currentOrganization}get defaultDeviceId(){return this._defaultDeviceId}get refreshToken(){return this._refreshToken}get isShareToken(){return this._isShareToken}async login(t,n,r={}){const{advanced:o=!1}=r;try{const s=await fetch(`${this._apiUrl}/v1/admin/auth/login`,{method:"POST",body:JSON.stringify({email:t,password:n}),headers:{"Content-Type":"application/json"}}),g=await s.json();if(s.status!==200)throw new LoginFailureError(g.message);if("challenge"in g)throw new LoginChallengedError(g.challenge);const{authentication:l}=g;return await this.loginWithToken(l.accessToken,l.refreshToken),o?{result:"success",authentication:l}:l}catch(s){if(o||console.error("login() failed",{err:s}),this._waitingForAuth.forEach(g=>g(!1)),this._waitingForAuth.clear(),!o)throw s;return s instanceof LoginChallengedError?{result:"challenged",challenge:s.challenge}:{result:"failure",reason:s instanceof LoginFailureError?s.reason:s instanceof Error?s.message:String(s)}}}async loginWithToken(t,n){var o;const r=JSON.parse(base64Exports.decode(t.split(".")[1]));try{let s;if(this._isShareToken=r["formant:claims"]&&r["formant:claims"].type=="share",r["formant:claims"]&&(this._currentOrganization=r["formant:claims"].organizationId),r["custom:organization_id"]&&(this._currentOrganization=r["custom:organization_id"]),this._isShareToken||(s=r.sub),r["formant:claims"]&&r["formant:claims"].userId&&(s=r["formant:claims"].userId),s&&((o=this._currentUser)==null?void 0:o.id)!==s){const g=await fetch(`${this._apiUrl}/v1/admin/users/${s}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+t}}),l=await g.json();if(g.status!==200)throw new Error(l.message);this._currentUser=l}this._token=t,this._waitingForAuth.forEach(g=>g(!0))}catch(s){console.error("loginWithToken() failed",{err:s}),this._waitingForAuth.forEach(g=>g(!1))}finally{this._waitingForAuth.clear()}n&&(this._refreshToken=n,setInterval(async()=>{if(this._refreshToken){const g=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:this._refreshToken})})).json();this._token=g.authentication.accessToken}},1e3*60*60))}isAuthenticated(){return this._token!==void 0}async loginToPeer(t,n,r){if((await fetch(`${t}/login`,{method:"POST",body:JSON.stringify({username:n,password:r}),headers:{"Content-Type":"application/json"}})).status!==200)throw new LoginFailureError("Invalid authentication")}getCurrentUser(){return this._currentUser}async waitTilAuthenticated(){return this.token!==void 0?!0:new Promise(t=>{this._waitingForAuth.add(t)})}async listenForRefresh(){const n=()=>{this._refreshTimer=void 0,this._refreshAuthToken()};this._addAccessTokenRefreshListener(r=>{this._refreshTimer&&clearTimeout(this._refreshTimer),this._refreshTimer=setTimeout(n,36e5),this.loginWithToken(r)}),this._refreshTimer=setTimeout(n,36e5)}async forgotPassword(t){await fetch(`${this._apiUrl}/v1/admin/auth/forgot-password`,{method:"POST",body:JSON.stringify({email:t}),headers:{"Content-Type":"application/json"}})}async confirmForgotPassword(t){return(await fetch(`${this._apiUrl}/v1/admin/auth/confirm-forgot-password`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})).ok}async respondToNewPasswordRequiredChallenge(t){const n=await fetch(`${this._apiUrl}/v1/admin/auth/respond-to-new-password-required-challenge`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}});if(n.ok)return await n.json();throw new Error("respond-to-new-password-required-challenge failed")}async loginWithGoogle(t){return await(await fetch(`${this._apiUrl}/v1/admin/auth/login-google`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json"}})).json()}async refresh(t){const r=await(await fetch(`${this._apiUrl}/v1/admin/auth/refresh`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:t})})).json();await this.loginWithToken(r.authentication.accessToken,t)}async checkSso(t,n){return await(await fetch(`${this._apiUrl}/v1/admin/auth/check-sso`,{method:"POST",body:JSON.stringify({email:t,allowUserAutoCreation:n}),headers:{"Content-Type":"application/json"}})).json()}async loginWithSso(t,n){const o=await(await fetch(`${this._apiUrl}/v1/admin/auth/login-sso`,{method:"POST",body:JSON.stringify({token:t,refreshToken:n}),headers:{"Content-Type":"application/json"}})).json();if(!o.authentication)throw new Error("Failed to login with SSO");return await this.loginWithToken(o.authentication.accessToken,o.authentication.refreshToken)}}const Authentication=new AuthenticationStore({apiUrl:exports.FORMANT_API_URL,refreshAuthToken,addAccessTokenRefreshListener});class Account{static async listAccounts(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createAccounts(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getAccount(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchAccount(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteAccount(t){if(!Authentication.token)throw new Error("Not authenticated");if(!(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to delete account")}static async getAccountTree(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/accounts/${t}/tree`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}}async function getModuleConfiguration(e){return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/module-configurations/${e}`,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).configuration}function disableAnalyticsBottomBar(){sendAppMessage({type:"hide_analytics_date_picker"})}function goToDevice(e){sendAppMessage({type:"go_to_device",deviceId:e})}function goToTime(e){sendAppMessage({type:"go_to_time",time:e.getTime()})}function requestModuleData(){const e=getCurrentModuleContext();if(!e)throw new Error("No module context");sendAppMessage({type:"request_module_data",module:e})}function sendChannelData(e,t){const n=getCurrentModuleContext();if(!n)throw new Error("No module context");sendAppMessage({type:"send_channel_data",source:n,channel:e,data:t})}function setModuleDateTimeRange(e,t){const n=getCurrentModuleContext();if(!n)throw new Error("No module context");sendAppMessage({type:"set_module_data_time_range",module:n,before:e,after:t||0})}function setupModuleMenus(e){const t=getCurrentModuleContext();if(!t)throw new Error("No module context");sendAppMessage({type:"setup_module_menus",module:t,menus:e})}function showMessage(e){sendAppMessage({type:"show_message",message:e})}function addChannelDataListener(e,t){const n=r=>{const o=r.data;o.type==="channel_data"&&o.channel===e&&t({source:o.source,data:o.data})};return window.addEventListener("message",n),()=>window.removeEventListener("message",n)}function addMenuListener(e){const t=n=>{const r=n.data;r.type==="module_menu_item_clicked"&&e(r.menu)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function addModuleConfigurationListener(e){const t=n=>{const r=n.data;r.type==="module_configuration"&&e(r)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function addModuleDataListener(e){const t=getCurrentModuleContext();t&&sendAppMessage({type:"request_module_data",module:t});const n=r=>{const o=r.data;o.type==="module_data"&&e({streams:o.streams,time:o.time,queryRange:o.queryRange})};return window.addEventListener("message",n),()=>window.removeEventListener("message",n)}function addOverviewDeviceListener(e){sendAppMessage({type:"request_devices"});const t=n=>{const r=n.data;r.type==="overview_devices"&&e(r.data)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}function _typeof(e){return _typeof=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},_typeof(e)}function toInteger(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}function requiredArgs(e,t){if(t.length<e)throw new TypeError(e+" argument"+(e>1?"s":"")+" required, but only "+t.length+" present")}function toDate(e){requiredArgs(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||_typeof(e)==="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):((typeof e=="string"||t==="[object String]")&&typeof console!="undefined"&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function addDays(e,t){requiredArgs(2,arguments);var n=toDate(e),r=toInteger(t);return isNaN(r)?new Date(NaN):(r&&n.setDate(n.getDate()+r),n)}function addMonths(e,t){requiredArgs(2,arguments);var n=toDate(e),r=toInteger(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var o=n.getDate(),s=new Date(n.getTime());s.setMonth(n.getMonth()+r+1,0);var g=s.getDate();return o>=g?s:(n.setFullYear(s.getFullYear(),s.getMonth(),o),n)}function addMilliseconds(e,t){requiredArgs(2,arguments);var n=toDate(e).getTime(),r=toInteger(t);return new Date(n+r)}var MILLISECONDS_IN_HOUR=36e5;function addHours(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*MILLISECONDS_IN_HOUR)}var defaultOptions={};function getDefaultOptions(){return defaultOptions}function startOfWeek(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.weekStartsOn)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&o!==void 0?o:d.weekStartsOn)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(B>=0&&B<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var Q=toDate(e),f=Q.getDay(),p=(f<B?7:0)+f-B;return Q.setDate(Q.getDate()-p),Q.setHours(0,0,0,0),Q}function startOfDay(e){requiredArgs(1,arguments);var t=toDate(e);return t.setHours(0,0,0,0),t}var MILLISECONDS_IN_MINUTE=6e4;function addMinutes(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*MILLISECONDS_IN_MINUTE)}function addQuarters(e,t){requiredArgs(2,arguments);var n=toInteger(t),r=n*3;return addMonths(e,r)}function addSeconds(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMilliseconds(e,n*1e3)}function addWeeks(e,t){requiredArgs(2,arguments);var n=toInteger(t),r=n*7;return addDays(e,r)}function addYears(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMonths(e,n*12)}function getQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=Math.floor(t.getMonth()/3)+1;return n}var roundingMap={ceil:Math.ceil,round:Math.round,floor:Math.floor,trunc:function(t){return t<0?Math.ceil(t):Math.floor(t)}},defaultRoundingMethod="trunc";function getRoundingMethod(e){return e?roundingMap[e]:roundingMap[defaultRoundingMethod]}function endOfDay(e){requiredArgs(1,arguments);var t=toDate(e);return t.setHours(23,59,59,999),t}function endOfMonth(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth();return t.setFullYear(t.getFullYear(),n+1,0),t.setHours(23,59,59,999),t}function eachDayOfInterval(e,t){var n;requiredArgs(1,arguments);var r=e||{},o=toDate(r.start),s=toDate(r.end),g=s.getTime();if(!(o.getTime()<=g))throw new RangeError("Invalid interval");var l=[],u=o;u.setHours(0,0,0,0);var c=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number greater than 1");for(;u.getTime()<=g;)l.push(toDate(u)),u.setDate(u.getDate()+c),u.setHours(0,0,0,0);return l}function eachHourOfInterval(e,t){var n;requiredArgs(1,arguments);var r=e||{},o=toDate(r.start),s=toDate(r.end),g=o.getTime(),l=s.getTime();if(!(g<=l))throw new RangeError("Invalid interval");var u=[],c=o;c.setMinutes(0,0,0);var d=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(d<1||isNaN(d))throw new RangeError("`options.step` must be a number greater than 1");for(;c.getTime()<=l;)u.push(toDate(c)),c=addHours(c,d);return u}function startOfMinute(e){requiredArgs(1,arguments);var t=toDate(e);return t.setSeconds(0,0),t}function eachMinuteOfInterval(e,t){var n;requiredArgs(1,arguments);var r=startOfMinute(toDate(e.start)),o=toDate(e.end),s=r.getTime(),g=o.getTime();if(s>=g)throw new RangeError("Invalid interval");var l=[],u=r,c=Number((n=t==null?void 0:t.step)!==null&&n!==void 0?n:1);if(c<1||isNaN(c))throw new RangeError("`options.step` must be a number equal to or greater than 1");for(;u.getTime()<=g;)l.push(toDate(u)),u=addMinutes(u,c);return l}function eachMonthOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime(),s=[];if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var g=n;for(g.setHours(0,0,0,0),g.setDate(1);g.getTime()<=o;)s.push(toDate(g)),g.setMonth(g.getMonth()+1);return s}function startOfQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth(),r=n-n%3;return t.setMonth(r,1),t.setHours(0,0,0,0),t}function eachQuarterOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime();if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var s=startOfQuarter(n),g=startOfQuarter(r);o=g.getTime();for(var l=[],u=s;u.getTime()<=o;)l.push(toDate(u)),u=addQuarters(u,1);return l}function eachWeekOfInterval(e,t){requiredArgs(1,arguments);var n=e||{},r=toDate(n.start),o=toDate(n.end),s=o.getTime();if(!(r.getTime()<=s))throw new RangeError("Invalid interval");var g=startOfWeek(r,t),l=startOfWeek(o,t);g.setHours(15),l.setHours(15),s=l.getTime();for(var u=[],c=g;c.getTime()<=s;)c.setHours(0),u.push(toDate(c)),c=addWeeks(c,1),c.setHours(15);return u}function startOfMonth(e){requiredArgs(1,arguments);var t=toDate(e);return t.setDate(1),t.setHours(0,0,0,0),t}function endOfYear(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getFullYear();return t.setFullYear(n+1,0,0),t.setHours(23,59,59,999),t}function startOfYear(e){requiredArgs(1,arguments);var t=toDate(e),n=new Date(0);return n.setFullYear(t.getFullYear(),0,1),n.setHours(0,0,0,0),n}function eachYearOfInterval(e){requiredArgs(1,arguments);var t=e||{},n=toDate(t.start),r=toDate(t.end),o=r.getTime();if(!(n.getTime()<=o))throw new RangeError("Invalid interval");var s=[],g=n;for(g.setHours(0,0,0,0),g.setMonth(0,1);g.getTime()<=o;)s.push(toDate(g)),g.setFullYear(g.getFullYear()+1);return s}function endOfHour(e){requiredArgs(1,arguments);var t=toDate(e);return t.setMinutes(59,59,999),t}function endOfWeek(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.weekStartsOn)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.weekStartsOn)!==null&&o!==void 0?o:d.weekStartsOn)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.weekStartsOn)!==null&&n!==void 0?n:0);if(!(B>=0&&B<=6))throw new RangeError("weekStartsOn must be between 0 and 6 inclusively");var Q=toDate(e),f=Q.getDay(),p=(f<B?-7:0)+6-(f-B);return Q.setDate(Q.getDate()+p),Q.setHours(23,59,59,999),Q}function endOfMinute(e){requiredArgs(1,arguments);var t=toDate(e);return t.setSeconds(59,999),t}function endOfQuarter(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth(),r=n-n%3+3;return t.setMonth(r,0),t.setHours(23,59,59,999),t}function getDay(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getDay();return n}function getHours(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getHours();return n}function getMinutes(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMinutes();return n}function getMonth(e){requiredArgs(1,arguments);var t=toDate(e),n=t.getMonth();return n}function getWeekYear(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=toDate(e),B=d.getFullYear(),Q=getDefaultOptions(),f=toInteger((n=(r=(o=(s=t==null?void 0:t.firstWeekContainsDate)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.firstWeekContainsDate)!==null&&o!==void 0?o:Q.firstWeekContainsDate)!==null&&r!==void 0?r:(u=Q.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&n!==void 0?n:1);if(!(f>=1&&f<=7))throw new RangeError("firstWeekContainsDate must be between 1 and 7 inclusively");var p=new Date(0);p.setFullYear(B+1,0,f),p.setHours(0,0,0,0);var U=startOfWeek(p,t),E=new Date(0);E.setFullYear(B,0,f),E.setHours(0,0,0,0);var M=startOfWeek(E,t);return d.getTime()>=U.getTime()?B+1:d.getTime()>=M.getTime()?B:B-1}function startOfWeekYear(e,t){var n,r,o,s,g,l,u,c;requiredArgs(1,arguments);var d=getDefaultOptions(),B=toInteger((n=(r=(o=(s=t==null?void 0:t.firstWeekContainsDate)!==null&&s!==void 0?s:t==null||(g=t.locale)===null||g===void 0||(l=g.options)===null||l===void 0?void 0:l.firstWeekContainsDate)!==null&&o!==void 0?o:d.firstWeekContainsDate)!==null&&r!==void 0?r:(u=d.locale)===null||u===void 0||(c=u.options)===null||c===void 0?void 0:c.firstWeekContainsDate)!==null&&n!==void 0?n:1),Q=getWeekYear(e,t),f=new Date(0);f.setFullYear(Q,0,B),f.setHours(0,0,0,0);var p=startOfWeek(f,t);return p}var MILLISECONDS_IN_WEEK=6048e5;function getWeek(e,t){requiredArgs(1,arguments);var n=toDate(e),r=startOfWeek(n,t).getTime()-startOfWeekYear(n,t).getTime();return Math.round(r/MILLISECONDS_IN_WEEK)+1}function getYear(e){return requiredArgs(1,arguments),toDate(e).getFullYear()}function startOfHour(e){requiredArgs(1,arguments);var t=toDate(e);return t.setMinutes(0,0,0),t}function subDays(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addDays(e,-n)}function roundToNearestMinutes(e,t){var n;if(arguments.length<1)throw new TypeError("1 argument required, but only none provided present");var r=toInteger((n=t==null?void 0:t.nearestTo)!==null&&n!==void 0?n:1);if(r<1||r>30)throw new RangeError("`options.nearestTo` must be between 1 and 30");var o=toDate(e),s=o.getSeconds(),g=o.getMinutes()+s/60,l=getRoundingMethod(t==null?void 0:t.roundingMethod),u=l(g/r)*r,c=g%r,d=Math.round(c/r)*r;return new Date(o.getFullYear(),o.getMonth(),o.getDate(),o.getHours(),u+d)}function subMonths(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMonths(e,-n)}function subHours(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addHours(e,-n)}function subMinutes(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addMinutes(e,-n)}function subQuarters(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addQuarters(e,-n)}function subWeeks(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addWeeks(e,-n)}function subYears(e,t){requiredArgs(2,arguments);var n=toInteger(t);return addYears(e,-n)}const millisecond$2=1,second$2=1e3,minute$2=60*second$2,hour$2=60*minute$2,day$2=24*hour$2,week$2=7*day$2,month$2=30*day$2,year$2=365*day$2,duration$2={millisecond:millisecond$2,second:second$2,minute:minute$2,hour:hour$2,day:day$2,week:week$2,month:month$2,year:year$2};function filterDataByType$1(e,t){return e.filter(n=>t.includes(n.type))}function filterDataByTime$1(e,t,n){const r=t.getTime(),o=n.getTime();return e.map(s=>({...s,points:s.points.filter(([g])=>g>=r&&g<o)})).filter(({points:s})=>s.length>0)}let StoreCache$1=class{constructor({capacity:t,timeout:n}={}){he(this,"entries",new Map);he(this,"metadata",new Map);he(this,"capacity");he(this,"staleIntervalMs");this.capacity=t||1e4,this.staleIntervalMs=n||duration$2.minute}get(t,n){const r=this.keyToCacheKey(t);return this.isStale(r)&&!this.isGenerating(r)&&n&&this.generate(t,n),this.entries.get(r)}set(t,n){const r=this.keyToCacheKey(t);this.metadata.set(r,{generating:!1,staleAt:performance.now()+this.staleIntervalMs});const o=this.entries.get(r);JSON.stringify(o)===JSON.stringify(n)||(this.entries.set(r,n),this.enforceMaxSize())}clear(){this.entries.clear(),[...this.metadata.values()].forEach(t=>t.generating=!1)}clearKey(t){this.metadata.delete(t),this.entries.delete(t)}keyToCacheKey(t){return JSON.stringify(t)}enforceMaxSize(){for(;this.metadata.size>this.capacity&&this.metadata.size>0;){const[t]=[...this.metadata.entries()].reduce(([n,r],[o,s])=>s.staleAt<r.staleAt?[o,s]:[n,r]);this.clearKey(t)}}isStale(t){const n=this.metadata.get(t);return n?(n==null?void 0:n.staleAt)<performance.now():!0}isGenerating(t){const n=this.metadata.get(t);return n?n.generating:!1}generate(t,n){const r=this.keyToCacheKey(t),o=this.metadata.get(r)||{},s=n().then(g=>{const l=this.metadata.get(r);return(l==null?void 0:l.generating)!==s||this.set(t,g),g}).catch(g=>{throw this.metadata.delete(r),g});this.metadata.set(r,{...o,generating:s,staleAt:performance.now()+this.staleIntervalMs})}};async function queryTelemetry(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}let QueryStore$1=class{constructor(){he(this,"queryStoreCache",new StoreCache$1({capacity:1e4,timeout:20*duration$2.second}));he(this,"liveQueryStoreCache",new StoreCache$1({capacity:1e4,timeout:200*duration$2.millisecond}))}moduleQuery(t,n,r,o,s,g=!1){const l={...t,names:[...n],types:[...r]},u=this.query(l,o,s,g);return u===void 0||u==="too much data"?u:filterDataByType$1(u,r)}query(t,n,r,o=!1){const s={...t,start:startOfMinute(n).toISOString(),end:o?r.toISOString():addMinutes(roundToNearestMinutes(r),1).toISOString(),latestOnly:o},g=r>addSeconds(new Date,-20);let l;return g?l=this.liveQueryCache(s):l=this.queryCache(s),!l||l==="too much data"||o?l:filterDataByTime$1(l,n,r)}queryCache(t){return this.queryStoreCache.get(t,async()=>{try{return await queryTelemetry(t)}catch(n){throw n}})}liveQueryCache(t){return this.liveQueryStoreCache.get(t,async()=>{try{return await queryTelemetry(t)}catch(n){throw n}})}};const queryStore=new QueryStore$1;function addStreamListener(e,t,n){const r=o=>{const s=o.data;if(s.type==="module_data"){const{start:g,end:l}=s.queryRange;n(queryStore.moduleQuery({},e,t,new Date(g),new Date(l),!1))}};return window.addEventListener("message",r),()=>window.removeEventListener("message",r)}async function getDate(e,t,n){return new Promise(r=>{sendAppMessage({type:"request_date",minTime:t,maxTime:n,time:e});const o=s=>{const g=s.data;g.type==="date_response"&&(window.removeEventListener("message",o),r(g.data))};window.addEventListener("message",o)})}async function prompt(e,t){return new Promise(n=>{const r=Math.random().toString();sendAppMessage({type:"prompt",promptId:r,schema:e,okText:t==null?void 0:t.okText,cancelText:t==null?void 0:t.cancelText});const o=s=>{const g=s.data;g.type==="prompt_response"&&g.promptId===r&&n(g.data),window.removeEventListener("message",o)};window.addEventListener("message",o)})}const tt=class{static isModule(){return getCurrentModuleContext()!==null}static async getCurrentModuleConfiguration(){let t=new URLSearchParams("");typeof window!="undefined"&&window.location&&(t=new URLSearchParams(window.location.search));const n=t.get("configuration");if(!(n===null||n.trim()===""))return getModuleConfiguration(n.trim())}static get isOnline(){return tt._isOnline}static listenForConnectionEvents(){const t=n=>{const{data:r}=n;r.type==="formant_online"&&(this._isOnline=r.online)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)}static checkConnection(t=1e3){return new Promise((n,r)=>{const o=setTimeout(()=>r(new Error("deadline expired: took too long")),t),s=g=>{window.removeEventListener("message",s),clearTimeout(o);const{data:l}=g;l.type==="formant_online"&&(this._isOnline=l.online,n(l.online))};window.addEventListener("message",s),sendAppMessage({type:"formant_online"})})}static waitForConnection(t=5e3){let n=!1;const r=new Promise((g,l)=>{setTimeout(()=>{n=!0,l(new Error("deadline expired: took too long"))},t)}),o=g=>new Promise(l=>setTimeout(l,g)),s=async()=>{for(await o(50);!n&&!(this.isOnline||await this.checkConnection);)await o(500)};return Promise.race([r,s()])}};let App=tt;he(App,"getCurrentModuleContext",getCurrentModuleContext),he(App,"disableAnalyticsBottomBar",disableAnalyticsBottomBar),he(App,"goToDevice",goToDevice),he(App,"goToTime",goToTime),he(App,"refreshAuthToken",refreshAuthToken),he(App,"requestModuleData",requestModuleData),he(App,"sendChannelData",sendChannelData),he(App,"setModuleDateTimeRange",setModuleDateTimeRange),he(App,"setupModuleMenus",setupModuleMenus),he(App,"showMessage",showMessage),he(App,"addAccessTokenRefreshListener",addAccessTokenRefreshListener),he(App,"addChannelDataListener",addChannelDataListener),he(App,"addMenuListener",addMenuListener),he(App,"addModuleConfigurationListener",addModuleConfigurationListener),he(App,"addModuleDataListener",addModuleDataListener),he(App,"addOverviewDeviceListener",addOverviewDeviceListener),he(App,"addStreamListener",addStreamListener),he(App,"getDate",getDate),he(App,"prompt",prompt),he(App,"_isOnline",null);function stringToArrayBuffer(e){return Uint8Array.from(base64Exports.decode(e),t=>t.charCodeAt(0))}function fork$1(e){}function browser(){const{userAgent:e}=navigator;return e?e.includes("Firefox/")?"Firefox":e.includes("Edg/")?"Edge":e.includes("Chrome/")?"Chrome":e.includes("Safari/")?"Safari":e.includes("MSIE/")||e.includes("Trident/")?"IE":"Other":"Other"}const rtcAudioChunkStreamType="audio-chunk";class AudioPlayer{constructor(t,n){he(this,"muted",!1);he(this,"hasReceivedData",!1);he(this,"audioContext");he(this,"chunks",[]);he(this,"isPlaying",!1);he(this,"startTime",0);he(this,"lastChunkOffset",0);he(this,"bufferSize",3);he(this,"receive",async t=>{var g;const n=(g=t.payload.audioChunk)==null?void 0:g.chunk_data;if(!n)return;this.hasReceivedData||(this.hasReceivedData=!0);const{audioContext:r,muted:o}=this;if(!r||t.header.stream.streamType!==rtcAudioChunkStreamType||o!==!1)return;const s=stringToArrayBuffer(n);try{await r.decodeAudioData(s.buffer,this.scheduleChunk)}catch(l){console.warn("Error decoding audio buffer, changing audioWireFormat on agent",{error:l}),this.changeAudioWireFormat("wav")}});he(this,"scheduleChunk",t=>{const{audioContext:n}=this;if(!n)return;(this.chunks.length>this.bufferSize||this.isPlaying===!1)&&(this.chunks.forEach(o=>{o.stop()}),this.isPlaying=!1,this.chunks=[]);const r=this.createChunk(t);r&&r.buffer&&(this.isPlaying===!1&&(this.startTime=n.currentTime,this.lastChunkOffset=0,this.isPlaying=!0),r.start(this.startTime+this.lastChunkOffset,0,t.duration),this.lastChunkOffset+=r.buffer.duration,this.chunks.push(r))});this.device=t,this.stream=n,this.device.startListeningToRealtimeDataStream(n),this.device.addRealtimeListener((o,s)=>{this.receive(s)}),browser()==="Safari"||browser()==="IE"?this.changeAudioWireFormat("wav"):this.changeAudioWireFormat("opus");const r=window.AudioContext||window.webkitAudioContext;this.audioContext=new r}async play(){var t,n;((t=this.audioContext)==null?void 0:t.state)==="suspended"&&await((n=this.audioContext)==null?void 0:n.resume()),this.muted=!1}async pause(){await this.audioContext.suspend(),this.muted=!0}destroy(){this.device.stopListeningToRealtimeDataStream(this.stream)}createChunk(t){const{audioContext:n}=this;if(!n)return;const r=n.createBufferSource();return r.buffer=t,r.connect(n.destination),r.loop=!1,r.onended=o=>{this.chunks.splice(this.chunks.indexOf(r),1),this.chunks.length===0&&(this.isPlaying=!1)},r}changeAudioWireFormat(t){const{stream:n}=this;(async()=>await this.device.changeStreamAudioType(n.name,t))()}}class CaptureStream{constructor(t){he(this,"token");this.captureSession=t}async ingestJSON(t){if(!this.token){const r=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/capture-sessions/${this.captureSession.code}/authenticate`,{method:"POST"})).json();this.token=r.token}await fetch(`${exports.FORMANT_API_URL}/v1/ingest`,{method:"POST",body:JSON.stringify({deviceId:this.captureSession.deviceId,name:this.captureSession.streamName,type:"json",points:[[Date.now(),JSON.stringify(t)]]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+this.token}})}}class DataChannel{constructor(t){he(this,"ready",!1);he(this,"listeners",[]);he(this,"openListeners",[]);he(this,"closeListeners",[]);he(this,"errorListeners",[]);he(this,"binaryListeners",[]);he(this,"error");he(this,"decoder",new TextDecoder);this.dataChannel=t,this.dataChannel.binaryType="arraybuffer",this.dataChannel.onopen=()=>{this.setReady()},this.dataChannel.onclose=()=>{this.ready=!1,this.closeListeners.forEach(n=>n())},this.dataChannel.onerror=n=>{console.error(n),this.error="An error occurred in DataChannel",this.errorListeners.forEach(r=>r(n))},this.dataChannel.onmessage=n=>{this.listeners.forEach(r=>{const o=new Uint8Array(n.data),s=this.decoder.decode(o);r(s)}),this.binaryListeners.forEach(r=>{r(new Uint8Array(n.data))})}}setReady(){this.ready=!0,this.openListeners.forEach(t=>t())}addOpenListener(t){this.openListeners.push(t)}removeOpenListener(t){this.openListeners=this.openListeners.filter(n=>n!==t)}addCloseListener(t){this.closeListeners.push(t)}removeCloseListener(t){this.closeListeners=this.closeListeners.filter(n=>n!==t)}addErrorListener(t){this.errorListeners.push(t)}removeErrorListener(t){this.errorListeners=this.errorListeners.filter(n=>n!==t)}async waitTilReady(){return this.ready?!0:new Promise((n,r)=>{let o=setInterval(()=>{this.dataChannel.readyState==="open"&&this.setReady(),this.ready&&(clearInterval(o),n(!0)),this.error&&r(this.error)},10)})}send(t){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(t)}sendBinary(t){if(!this.ready)throw new Error("Connection has been closed");this.dataChannel.send(t)}addListener(t){this.listeners.push(t)}removeListener(t){const n=this.listeners.indexOf(t);if(n===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.listeners.splice(n,1)}addBinaryListener(t){this.binaryListeners.push(t)}removeBinaryListener(t){const n=this.binaryListeners.indexOf(t);if(n===-1)throw new Error("Could not find data channel listener to remove");if(this.error)throw new Error(this.error);this.binaryListeners.splice(n,1)}}var dist={exports:{}};/*! For license information please see index.js.LICENSE.txt */(function(module,exports){(function(e,t){module.exports=t()})(window,function(){return function(e){function t(c){for(var d,B,Q=c[0],f=c[1],p=0,U=[];p<Q.length;p++)B=Q[p],Object.prototype.hasOwnProperty.call(r,B)&&r[B]&&U.push(r[B][0]),r[B]=0;for(d in f)Object.prototype.hasOwnProperty.call(f,d)&&(e[d]=f[d]);for(u&&u(c);U.length;)U.shift()()}var n={},r={0:0};function o(c){if(n[c])return n[c].exports;var d=n[c]={i:c,l:!1,exports:{}};return e[c].call(d.exports,d,d.exports,o),d.l=!0,d.exports}o.e=function(){return Promise.resolve()},o.m=e,o.c=n,o.d=function(c,d,B){o.o(c,d)||Object.defineProperty(c,d,{enumerable:!0,get:B})},o.r=function(c){typeof Symbol!="undefined"&&Symbol.toStringTag&&Object.defineProperty(c,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(c,"__esModule",{value:!0})},o.t=function(c,d){if(1&d&&(c=o(c)),8&d||4&d&&typeof c=="object"&&c&&c.__esModule)return c;var B=Object.create(null);if(o.r(B),Object.defineProperty(B,"default",{enumerable:!0,value:c}),2&d&&typeof c!="string")for(var Q in c)o.d(B,Q,function(f){return c[f]}.bind(null,Q));return B},o.n=function(c){var d=c&&c.__esModule?function(){return c.default}:function(){return c};return o.d(d,"a",d),d},o.o=function(c,d){return Object.prototype.hasOwnProperty.call(c,d)},o.p="",o.oe=function(c){throw console.error(c),c};var s=window.webpackJsonpFormantRealtimeSDK=window.webpackJsonpFormantRealtimeSDK||[],g=s.push.bind(s);s.push=t,s=s.slice();for(var l=0;l<s.length;l++)t(s[l]);var u=g;return o(o.s=233)}([function(e,t,n){n.d(t,"a",function(){return V});var r=n(16),o=n(55),s=n(15),g=n.n(s),l=n(18);function u(K,Y){if(Y.length<K)throw new TypeError(K+" argument"+(K>1?"s":"")+" required, but only "+Y.length+" present")}function c(K){if(K===null||K===!0||K===!1)return NaN;var Y=Number(K);return isNaN(Y)?Y:Y<0?Math.ceil(Y):Math.floor(Y)}var d={dateTimeDelimiter:/[T ]/,timeZoneDelimiter:/[Z ]/i,timezone:/([Z+-].*)$/},B=/^-?(?:(\d{3})|(\d{2})(?:-?(\d{2}))?|W(\d{2})(?:-?(\d{1}))?|)$/,Q=/^(\d{2}(?:[.,]\d*)?)(?::?(\d{2}(?:[.,]\d*)?))?(?::?(\d{2}(?:[.,]\d*)?))?$/,f=/^([+-])(\d{2})(?::?(\d{2}))?$/;function p(K){var Y,te={},oe=K.split(d.dateTimeDelimiter);if(oe.length>2)return te;if(/:/.test(oe[0])?Y=oe[0]:(te.date=oe[0],Y=oe[1],d.timeZoneDelimiter.test(te.date)&&(te.date=K.split(d.timeZoneDelimiter)[0],Y=K.substr(te.date.length,K.length))),Y){var ge=d.timezone.exec(Y);ge?(te.time=Y.replace(ge[1],""),te.timezone=ge[1]):te.time=Y}return te}function U(K,Y){var te=new RegExp("^(?:(\\d{4}|[+-]\\d{"+(4+Y)+"})|(\\d{2}|[+-]\\d{"+(2+Y)+"})$)"),oe=K.match(te);if(!oe)return{year:NaN,restDateString:""};var ge=oe[1]?parseInt(oe[1]):null,Se=oe[2]?parseInt(oe[2]):null;return{year:Se===null?ge:100*Se,restDateString:K.slice((oe[1]||oe[2]).length)}}function E(K,Y){if(Y===null)return new Date(NaN);var te=K.match(B);if(!te)return new Date(NaN);var oe=!!te[4],ge=M(te[1]),Se=M(te[2])-1,ve=M(te[3]),ye=M(te[4]),Je=M(te[5])-1;if(oe)return function(be,we,Ze){return we>=1&&we<=53&&Ze>=0&&Ze<=6}(0,ye,Je)?function(be,we,Ze){var Oe=new Date(0);Oe.setUTCFullYear(be,0,4);var lt=Oe.getUTCDay()||7,Et=7*(we-1)+Ze+1-lt;return Oe.setUTCDate(Oe.getUTCDate()+Et),Oe}(Y,ye,Je):new Date(NaN);var Ee=new Date(0);return function(be,we,Ze){return we>=0&&we<=11&&Ze>=1&&Ze<=(h[we]||(T(be)?29:28))}(Y,Se,ve)&&function(be,we){return we>=1&&we<=(T(be)?366:365)}(Y,ge)?(Ee.setUTCFullYear(Y,Se,Math.max(ge,ve)),Ee):new Date(NaN)}function M(K){return K?parseInt(K):1}function W(K){var Y=K.match(Q);if(!Y)return NaN;var te=y(Y[1]),oe=y(Y[2]),ge=y(Y[3]);return function(Se,ve,ye){return Se===24?ve===0&&ye===0:ye>=0&&ye<60&&ve>=0&&ve<60&&Se>=0&&Se<25}(te,oe,ge)?36e5*te+6e4*oe+1e3*ge:NaN}function y(K){return K&&parseFloat(K.replace(",","."))||0}function m(K){if(K==="Z")return 0;var Y=K.match(f);if(!Y)return 0;var te=Y[1]==="+"?-1:1,oe=parseInt(Y[2]),ge=Y[3]&&parseInt(Y[3])||0;return function(Se,ve){return ve>=0&&ve<=59}(0,ge)?te*(36e5*oe+6e4*ge):NaN}var h=[31,null,31,30,31,30,31,31,30,31,30,31];function T(K){return K%400==0||K%4==0&&K%100!=0}var I=n(40);function X(K){return u(1,arguments),K instanceof Date||Object(I.a)(K)==="object"&&Object.prototype.toString.call(K)==="[object Date]"}function F(K){u(1,arguments);var Y=Object.prototype.toString.call(K);return K instanceof Date||Object(I.a)(K)==="object"&&Y==="[object Date]"?new Date(K.getTime()):typeof K=="number"||Y==="[object Number]"?new Date(K):(typeof K!="string"&&Y!=="[object String]"||typeof console=="undefined"||(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(new Error().stack)),new Date(NaN))}function R(K){const Y=function(te,oe){var ge;u(1,arguments);var Se=c((ge=oe==null?void 0:oe.additionalDigits)!==null&&ge!==void 0?ge:2);if(Se!==2&&Se!==1&&Se!==0)throw new RangeError("additionalDigits must be 0, 1 or 2");if(typeof te!="string"&&Object.prototype.toString.call(te)!=="[object String]")return new Date(NaN);var ve,ye=p(te);if(ye.date){var Je=U(ye.date,Se);ve=E(Je.restDateString,Je.year)}if(!ve||isNaN(ve.getTime()))return new Date(NaN);var Ee,be=ve.getTime(),we=0;if(ye.time&&(we=W(ye.time),isNaN(we)))return new Date(NaN);if(!ye.timezone){var Ze=new Date(be+we),Oe=new Date(0);return Oe.setFullYear(Ze.getUTCFullYear(),Ze.getUTCMonth(),Ze.getUTCDate()),Oe.setHours(Ze.getUTCHours(),Ze.getUTCMinutes(),Ze.getUTCSeconds(),Ze.getUTCMilliseconds()),Oe}return Ee=m(ye.timezone),isNaN(Ee)?new Date(NaN):new Date(be+we+Ee)}(K);if(!function(te){if(u(1,arguments),!X(te)&&typeof te!="number")return!1;var oe=F(te);return!isNaN(Number(oe))}(Y))throw new Error(`Invalid ISO 8601 date string (${K})`);return Y}const x=Math.pow(2,20),w=x;var _=n(3),j=n(28);function C(K){return g()(K,{cycles:!0})}var J=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};function v(K,Y={}){const{redacted:te=!0}=Y,oe=Je=>te?Object(j.a)(Je):Je;if(!K.stack)return{message:C(oe(K))};const{name:ge,message:Se,stack:ve}=K,ye=J(K,["name","message","stack"]);return{name:ge,message:Se!==void 0?Se:C(oe(K)),stack:ve,meta:ye&&Object.keys(ye).length===0?void 0:oe(ye)}}function D(K,Y={}){const{message:te,stack:oe,meta:ge}=v(K,Y);return`${oe||te||""}${ge&&Object.keys(ge).length>0?" -- "+C(ge):""}`}var A=n(236);const b=Object(A.a)();var P=n(14),z=n.n(P),$=function(K,Y,te,oe){return new(te||(te=Promise))(function(ge,Se){function ve(Ee){try{Je(oe.next(Ee))}catch(be){Se(be)}}function ye(Ee){try{Je(oe.throw(Ee))}catch(be){Se(be)}}function Je(Ee){var be;Ee.done?ge(Ee.value):(be=Ee.value,be instanceof te?be:new te(function(we){we(be)})).then(ve,ye)}Je((oe=oe.apply(K,Y||[])).next())})},ee=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};class re extends z.a{constructor(Y,te){super(),this.endpoint=Y,this.metadata=te,this.logClient=this.getLogClient()}getLogClient(){return $(this,void 0,void 0,function*(){const{LogClient:Y}=yield Promise.resolve().then(n.bind(null,235));return new Y(this.endpoint)})}log(Y,te){return $(this,void 0,void 0,function*(){const{level:oe,message:ge,error:Se}=Y,ve=ee(Y,["level","message","error"]);this.emit("logged");try{yield(yield this.logClient).log([{timestamp:new Date().toISOString(),level:oe,message:(""+ge).substring(0,1e3),error:Se!==void 0?v(Se):void 0,meta:Object.assign(Object.assign({},ve),this.metadata)}])}catch(ye){console.error("Failed to log to log-api: "+D(ye))}te()})}}var O=function(K,Y){var te={};for(var oe in K)Object.prototype.hasOwnProperty.call(K,oe)&&Y.indexOf(oe)<0&&(te[oe]=K[oe]);if(K!=null&&typeof Object.getOwnPropertySymbols=="function"){var ge=0;for(oe=Object.getOwnPropertySymbols(K);ge<oe.length;ge++)Y.indexOf(oe[ge])<0&&Object.prototype.propertyIsEnumerable.call(K,oe[ge])&&(te[oe[ge]]=K[oe[ge]])}return te};const k={app:_.a,namespace:_.j,buildTag:_.c,instanceId:b},S=_.f?l.format.printf(K=>{var{timestamp:Y,level:te,message:oe,error:ge}=K,Se=O(K,["timestamp","level","message","error"]);const ve=Object.assign(Object.assign({timestamp:Y?R(Y).getTime():new Date().getTime(),level:te.toUpperCase(),message:oe},ge?{error:v(ge)}:{}),{meta:Object.assign(Object.assign({},k),Se)});return g()(ve,{cycles:!0})}):l.format.printf(K=>{var{timestamp:Y,level:te,message:oe,error:ge}=K,Se=O(K,["timestamp","level","message","error"]);let ve=`${Y||new Date().toISOString()} ${te.toUpperCase()}: ${oe} `;return Object.keys(Se).length>0&&(ve+=g()(Se,{cycles:!0})),ge&&(ve+=`
|
|
2
2
|
`+D(ge)),ve}),V=Object(l.createLogger)({level:_.g});if(V.add(new l.transports.Console({format:S,level:"debug"})),V.transports.forEach(K=>{K.silent=!_.h}),_.e&&V.add(new re(_.e,k)),_.i){const K=o.resolve(r.tmpdir(),`silly-${_.a}.log`);V.debug("Logging silly logs to file",{filename:K}),V.add(new l.transports.File({filename:K,maxsize:1*w,maxFiles:10,format:l.format.combine((G="silly",Object(l.format)(Y=>Y.level===G&&Y)()),S),level:"silly"}))}var G},function(e,t,n){n.d(t,"a",function(){return o});const r=864e5,o={millisecond:1,second:1e3,minute:6e4,hour:36e5,day:r,week:6048e5,month:2592e6,year:31536e6}},function(e,t){var n,r,o=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function g(){throw new Error("clearTimeout has not been defined")}function l(E){if(n===setTimeout)return setTimeout(E,0);if((n===s||!n)&&setTimeout)return n=setTimeout,setTimeout(E,0);try{return n(E,0)}catch{try{return n.call(null,E,0)}catch{return n.call(this,E,0)}}}(function(){try{n=typeof setTimeout=="function"?setTimeout:s}catch{n=s}try{r=typeof clearTimeout=="function"?clearTimeout:g}catch{r=g}})();var u,c=[],d=!1,B=-1;function Q(){d&&u&&(d=!1,u.length?c=u.concat(c):B=-1,c.length&&f())}function f(){if(!d){var E=l(Q);d=!0;for(var M=c.length;M;){for(u=c,c=[];++B<M;)u&&u[B].run();B=-1,M=c.length}u=null,d=!1,function(W){if(r===clearTimeout)return clearTimeout(W);if((r===g||!r)&&clearTimeout)return r=clearTimeout,clearTimeout(W);try{r(W)}catch{try{return r.call(null,W)}catch{return r.call(this,W)}}}(E)}}function p(E,M){this.fun=E,this.array=M}function U(){}o.nextTick=function(E){var M=new Array(arguments.length-1);if(arguments.length>1)for(var W=1;W<arguments.length;W++)M[W-1]=arguments[W];c.push(new p(E,M)),c.length!==1||d||l(f)},p.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=U,o.addListener=U,o.once=U,o.off=U,o.removeListener=U,o.removeAllListeners=U,o.emit=U,o.prependListener=U,o.prependOnceListener=U,o.listeners=function(E){return[]},o.binding=function(E){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(E){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}},function(e,t,n){(function(r){n.d(t,"a",function(){return g}),n.d(t,"j",function(){return l}),n.d(t,"k",function(){return u}),n.d(t,"c",function(){return c}),n.d(t,"g",function(){return d}),n.d(t,"f",function(){return B}),n.d(t,"h",function(){return Q}),n.d(t,"e",function(){return f}),n.d(t,"d",function(){return p}),n.d(t,"i",function(){return U}),n.d(t,"b",function(){return E});var o=n(100);const s=o.from({ENVIRONMENT:r.env.ENV,AGGREGATE_LEVEL:r.env.AGGREGATE_LEVEL,API_ENDPOINT:r.env.API_ENDPOINT,APP:"realtime-sdk",APP_PATH:r.env.APP_PATH,BUILD_TAG:r.env.BUILD_TAG,ENABLE_SELF_SERVE:r.env.ENABLE_SELF_SERVE,ENABLE_SENTRY:r.env.ENABLE_SENTRY,ENABLE_SENTRY_PROFILING:r.env.ENABLE_SENTRY_PROFILING,GIT_COMMIT:r.env.GIT_COMMIT,JEST_WORKER_ID:r.env.JEST_WORKER_ID,LOG_API_ENDPOINT:r.env.LOG_API_ENDPOINT,LOG_JSON:"false",LOG_LEVEL:r.env.LOG_LEVEL,LOG_TO_CONSOLE:r.env.LOG_TO_CONSOLE,LOG_TO_FILE:r.env.LOG_TO_FILE,NAMESPACE:"production",SENTRY_DSN:r.env.SENTRY_DSN,SHEET_EXPORT_MAX_ROW_COUNT:r.env.SHEET_EXPORT_MAX_ROW_COUNT,STABLE_AGENT_VERSION:r.env.STABLE_AGENT_VERSION,VERSION:r.env.VERSION,AUDIT_LOGS_ENABLED:r.env.AUDIT_LOGS_ENABLED}),g=(s.get("ENVIRONMENT").default("").asString(),s.get("APP").default("").asString()),l=(s.get("APP_PATH").default("").asString(),s.get("API_ENDPOINT").default("").asString(),s.get("NAMESPACE").default("").asString()),u=s.get("VERSION").default("").asString(),c=s.get("BUILD_TAG").default("").asString(),d=(s.get("GIT_COMMIT").default("").asString(),s.get("ENABLE_SENTRY").default("false").asBool(),s.get("ENABLE_SENTRY_PROFILING").default("false").asBool(),s.get("SENTRY_DSN").default("").asString(),s.get("LOG_LEVEL").default("debug").asString()),B=s.get("LOG_JSON").default("true").asBool(),Q=s.get("LOG_TO_CONSOLE").default("true").asBool(),f=(s.get("STABLE_AGENT_VERSION").default("").asString(),s.get("LOG_API_ENDPOINT").asString()),p=s.get("JEST_WORKER_ID").asString(),U=(s.get("SHEET_EXPORT_MAX_ROW_COUNT").default("10000").asIntPositive(),s.get("LOG_TO_FILE").default("false").asBoolStrict()),E=(s.get("ENABLE_SELF_SERVE").default("true").asBoolStrict(),s.get("AGGREGATE_LEVEL").default("hour").asEnum(["day","hour","minute"]),s.get("AUDIT_LOGS_ENABLED").default("true").asBoolStrict())}).call(this,n(2))},function(e,t,n){Object.defineProperty(t,"LEVEL",{value:Symbol.for("level")}),Object.defineProperty(t,"MESSAGE",{value:Symbol.for("message")}),Object.defineProperty(t,"SPLAT",{value:Symbol.for("splat")}),Object.defineProperty(t,"configs",{value:n(115)})},function(e,t,n){(function(r){var o=n(140),s=n(141),g=n(142);function l(){return c.TYPED_ARRAY_SUPPORT?2147483647:1073741823}function u(S,V){if(l()<V)throw new RangeError("Invalid typed array length");return c.TYPED_ARRAY_SUPPORT?(S=new Uint8Array(V)).__proto__=c.prototype:(S===null&&(S=new c(V)),S.length=V),S}function c(S,V,G){if(!(c.TYPED_ARRAY_SUPPORT||this instanceof c))return new c(S,V,G);if(typeof S=="number"){if(typeof V=="string")throw new Error("If encoding is specified then the first argument must be a string");return Q(this,S)}return d(this,S,V,G)}function d(S,V,G,K){if(typeof V=="number")throw new TypeError('"value" argument must not be a number');return typeof ArrayBuffer!="undefined"&&V instanceof ArrayBuffer?function(Y,te,oe,ge){if(te.byteLength,oe<0||te.byteLength<oe)throw new RangeError("'offset' is out of bounds");if(te.byteLength<oe+(ge||0))throw new RangeError("'length' is out of bounds");return te=oe===void 0&&ge===void 0?new Uint8Array(te):ge===void 0?new Uint8Array(te,oe):new Uint8Array(te,oe,ge),c.TYPED_ARRAY_SUPPORT?(Y=te).__proto__=c.prototype:Y=f(Y,te),Y}(S,V,G,K):typeof V=="string"?function(Y,te,oe){if(typeof oe=="string"&&oe!==""||(oe="utf8"),!c.isEncoding(oe))throw new TypeError('"encoding" must be a valid string encoding');var ge=0|U(te,oe),Se=(Y=u(Y,ge)).write(te,oe);return Se!==ge&&(Y=Y.slice(0,Se)),Y}(S,V,G):function(Y,te){if(c.isBuffer(te)){var oe=0|p(te.length);return(Y=u(Y,oe)).length===0||te.copy(Y,0,0,oe),Y}if(te){if(typeof ArrayBuffer!="undefined"&&te.buffer instanceof ArrayBuffer||"length"in te)return typeof te.length!="number"||(ge=te.length)!=ge?u(Y,0):f(Y,te);if(te.type==="Buffer"&&g(te.data))return f(Y,te.data)}var ge;throw new TypeError("First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.")}(S,V)}function B(S){if(typeof S!="number")throw new TypeError('"size" argument must be a number');if(S<0)throw new RangeError('"size" argument must not be negative')}function Q(S,V){if(B(V),S=u(S,V<0?0:0|p(V)),!c.TYPED_ARRAY_SUPPORT)for(var G=0;G<V;++G)S[G]=0;return S}function f(S,V){var G=V.length<0?0:0|p(V.length);S=u(S,G);for(var K=0;K<G;K+=1)S[K]=255&V[K];return S}function p(S){if(S>=l())throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+l().toString(16)+" bytes");return 0|S}function U(S,V){if(c.isBuffer(S))return S.length;if(typeof ArrayBuffer!="undefined"&&typeof ArrayBuffer.isView=="function"&&(ArrayBuffer.isView(S)||S instanceof ArrayBuffer))return S.byteLength;typeof S!="string"&&(S=""+S);var G=S.length;if(G===0)return 0;for(var K=!1;;)switch(V){case"ascii":case"latin1":case"binary":return G;case"utf8":case"utf-8":case void 0:return re(S).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return 2*G;case"hex":return G>>>1;case"base64":return O(S).length;default:if(K)return re(S).length;V=(""+V).toLowerCase(),K=!0}}function E(S,V,G){var K=!1;if((V===void 0||V<0)&&(V=0),V>this.length||((G===void 0||G>this.length)&&(G=this.length),G<=0)||(G>>>=0)<=(V>>>=0))return"";for(S||(S="utf8");;)switch(S){case"hex":return j(this,V,G);case"utf8":case"utf-8":return x(this,V,G);case"ascii":return w(this,V,G);case"latin1":case"binary":return _(this,V,G);case"base64":return R(this,V,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return C(this,V,G);default:if(K)throw new TypeError("Unknown encoding: "+S);S=(S+"").toLowerCase(),K=!0}}function M(S,V,G){var K=S[V];S[V]=S[G],S[G]=K}function W(S,V,G,K,Y){if(S.length===0)return-1;if(typeof G=="string"?(K=G,G=0):G>2147483647?G=2147483647:G<-2147483648&&(G=-2147483648),G=+G,isNaN(G)&&(G=Y?0:S.length-1),G<0&&(G=S.length+G),G>=S.length){if(Y)return-1;G=S.length-1}else if(G<0){if(!Y)return-1;G=0}if(typeof V=="string"&&(V=c.from(V,K)),c.isBuffer(V))return V.length===0?-1:y(S,V,G,K,Y);if(typeof V=="number")return V&=255,c.TYPED_ARRAY_SUPPORT&&typeof Uint8Array.prototype.indexOf=="function"?Y?Uint8Array.prototype.indexOf.call(S,V,G):Uint8Array.prototype.lastIndexOf.call(S,V,G):y(S,[V],G,K,Y);throw new TypeError("val must be string, number or Buffer")}function y(S,V,G,K,Y){var te,oe=1,ge=S.length,Se=V.length;if(K!==void 0&&((K=String(K).toLowerCase())==="ucs2"||K==="ucs-2"||K==="utf16le"||K==="utf-16le")){if(S.length<2||V.length<2)return-1;oe=2,ge/=2,Se/=2,G/=2}function ve(be,we){return oe===1?be[we]:be.readUInt16BE(we*oe)}if(Y){var ye=-1;for(te=G;te<ge;te++)if(ve(S,te)===ve(V,ye===-1?0:te-ye)){if(ye===-1&&(ye=te),te-ye+1===Se)return ye*oe}else ye!==-1&&(te-=te-ye),ye=-1}else for(G+Se>ge&&(G=ge-Se),te=G;te>=0;te--){for(var Je=!0,Ee=0;Ee<Se;Ee++)if(ve(S,te+Ee)!==ve(V,Ee)){Je=!1;break}if(Je)return te}return-1}function m(S,V,G,K){G=Number(G)||0;var Y=S.length-G;K?(K=Number(K))>Y&&(K=Y):K=Y;var te=V.length;if(te%2!=0)throw new TypeError("Invalid hex string");K>te/2&&(K=te/2);for(var oe=0;oe<K;++oe){var ge=parseInt(V.substr(2*oe,2),16);if(isNaN(ge))return oe;S[G+oe]=ge}return oe}function h(S,V,G,K){return k(re(V,S.length-G),S,G,K)}function T(S,V,G,K){return k(function(Y){for(var te=[],oe=0;oe<Y.length;++oe)te.push(255&Y.charCodeAt(oe));return te}(V),S,G,K)}function I(S,V,G,K){return T(S,V,G,K)}function X(S,V,G,K){return k(O(V),S,G,K)}function F(S,V,G,K){return k(function(Y,te){for(var oe,ge,Se,ve=[],ye=0;ye<Y.length&&!((te-=2)<0);++ye)oe=Y.charCodeAt(ye),ge=oe>>8,Se=oe%256,ve.push(Se),ve.push(ge);return ve}(V,S.length-G),S,G,K)}function R(S,V,G){return V===0&&G===S.length?o.fromByteArray(S):o.fromByteArray(S.slice(V,G))}function x(S,V,G){G=Math.min(S.length,G);for(var K=[],Y=V;Y<G;){var te,oe,ge,Se,ve=S[Y],ye=null,Je=ve>239?4:ve>223?3:ve>191?2:1;if(Y+Je<=G)switch(Je){case 1:ve<128&&(ye=ve);break;case 2:(192&(te=S[Y+1]))==128&&(Se=(31&ve)<<6|63&te)>127&&(ye=Se);break;case 3:te=S[Y+1],oe=S[Y+2],(192&te)==128&&(192&oe)==128&&(Se=(15&ve)<<12|(63&te)<<6|63&oe)>2047&&(Se<55296||Se>57343)&&(ye=Se);break;case 4:te=S[Y+1],oe=S[Y+2],ge=S[Y+3],(192&te)==128&&(192&oe)==128&&(192&ge)==128&&(Se=(15&ve)<<18|(63&te)<<12|(63&oe)<<6|63&ge)>65535&&Se<1114112&&(ye=Se)}ye===null?(ye=65533,Je=1):ye>65535&&(ye-=65536,K.push(ye>>>10&1023|55296),ye=56320|1023&ye),K.push(ye),Y+=Je}return function(Ee){var be=Ee.length;if(be<=4096)return String.fromCharCode.apply(String,Ee);for(var we="",Ze=0;Ze<be;)we+=String.fromCharCode.apply(String,Ee.slice(Ze,Ze+=4096));return we}(K)}t.Buffer=c,t.SlowBuffer=function(S){return+S!=S&&(S=0),c.alloc(+S)},t.INSPECT_MAX_BYTES=50,c.TYPED_ARRAY_SUPPORT=r.TYPED_ARRAY_SUPPORT!==void 0?r.TYPED_ARRAY_SUPPORT:function(){try{var S=new Uint8Array(1);return S.__proto__={__proto__:Uint8Array.prototype,foo:function(){return 42}},S.foo()===42&&typeof S.subarray=="function"&&S.subarray(1,1).byteLength===0}catch{return!1}}(),t.kMaxLength=l(),c.poolSize=8192,c._augment=function(S){return S.__proto__=c.prototype,S},c.from=function(S,V,G){return d(null,S,V,G)},c.TYPED_ARRAY_SUPPORT&&(c.prototype.__proto__=Uint8Array.prototype,c.__proto__=Uint8Array,typeof Symbol!="undefined"&&Symbol.species&&c[Symbol.species]===c&&Object.defineProperty(c,Symbol.species,{value:null,configurable:!0})),c.alloc=function(S,V,G){return function(K,Y,te,oe){return B(Y),Y<=0?u(K,Y):te!==void 0?typeof oe=="string"?u(K,Y).fill(te,oe):u(K,Y).fill(te):u(K,Y)}(null,S,V,G)},c.allocUnsafe=function(S){return Q(null,S)},c.allocUnsafeSlow=function(S){return Q(null,S)},c.isBuffer=function(S){return!(S==null||!S._isBuffer)},c.compare=function(S,V){if(!c.isBuffer(S)||!c.isBuffer(V))throw new TypeError("Arguments must be Buffers");if(S===V)return 0;for(var G=S.length,K=V.length,Y=0,te=Math.min(G,K);Y<te;++Y)if(S[Y]!==V[Y]){G=S[Y],K=V[Y];break}return G<K?-1:K<G?1:0},c.isEncoding=function(S){switch(String(S).toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"latin1":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return!0;default:return!1}},c.concat=function(S,V){if(!g(S))throw new TypeError('"list" argument must be an Array of Buffers');if(S.length===0)return c.alloc(0);var G;if(V===void 0)for(V=0,G=0;G<S.length;++G)V+=S[G].length;var K=c.allocUnsafe(V),Y=0;for(G=0;G<S.length;++G){var te=S[G];if(!c.isBuffer(te))throw new TypeError('"list" argument must be an Array of Buffers');te.copy(K,Y),Y+=te.length}return K},c.byteLength=U,c.prototype._isBuffer=!0,c.prototype.swap16=function(){var S=this.length;if(S%2!=0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var V=0;V<S;V+=2)M(this,V,V+1);return this},c.prototype.swap32=function(){var S=this.length;if(S%4!=0)throw new RangeError("Buffer size must be a multiple of 32-bits");for(var V=0;V<S;V+=4)M(this,V,V+3),M(this,V+1,V+2);return this},c.prototype.swap64=function(){var S=this.length;if(S%8!=0)throw new RangeError("Buffer size must be a multiple of 64-bits");for(var V=0;V<S;V+=8)M(this,V,V+7),M(this,V+1,V+6),M(this,V+2,V+5),M(this,V+3,V+4);return this},c.prototype.toString=function(){var S=0|this.length;return S===0?"":arguments.length===0?x(this,0,S):E.apply(this,arguments)},c.prototype.equals=function(S){if(!c.isBuffer(S))throw new TypeError("Argument must be a Buffer");return this===S||c.compare(this,S)===0},c.prototype.inspect=function(){var S="",V=t.INSPECT_MAX_BYTES;return this.length>0&&(S=this.toString("hex",0,V).match(/.{2}/g).join(" "),this.length>V&&(S+=" ... ")),"<Buffer "+S+">"},c.prototype.compare=function(S,V,G,K,Y){if(!c.isBuffer(S))throw new TypeError("Argument must be a Buffer");if(V===void 0&&(V=0),G===void 0&&(G=S?S.length:0),K===void 0&&(K=0),Y===void 0&&(Y=this.length),V<0||G>S.length||K<0||Y>this.length)throw new RangeError("out of range index");if(K>=Y&&V>=G)return 0;if(K>=Y)return-1;if(V>=G)return 1;if(this===S)return 0;for(var te=(Y>>>=0)-(K>>>=0),oe=(G>>>=0)-(V>>>=0),ge=Math.min(te,oe),Se=this.slice(K,Y),ve=S.slice(V,G),ye=0;ye<ge;++ye)if(Se[ye]!==ve[ye]){te=Se[ye],oe=ve[ye];break}return te<oe?-1:oe<te?1:0},c.prototype.includes=function(S,V,G){return this.indexOf(S,V,G)!==-1},c.prototype.indexOf=function(S,V,G){return W(this,S,V,G,!0)},c.prototype.lastIndexOf=function(S,V,G){return W(this,S,V,G,!1)},c.prototype.write=function(S,V,G,K){if(V===void 0)K="utf8",G=this.length,V=0;else if(G===void 0&&typeof V=="string")K=V,G=this.length,V=0;else{if(!isFinite(V))throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");V|=0,isFinite(G)?(G|=0,K===void 0&&(K="utf8")):(K=G,G=void 0)}var Y=this.length-V;if((G===void 0||G>Y)&&(G=Y),S.length>0&&(G<0||V<0)||V>this.length)throw new RangeError("Attempt to write outside buffer bounds");K||(K="utf8");for(var te=!1;;)switch(K){case"hex":return m(this,S,V,G);case"utf8":case"utf-8":return h(this,S,V,G);case"ascii":return T(this,S,V,G);case"latin1":case"binary":return I(this,S,V,G);case"base64":return X(this,S,V,G);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return F(this,S,V,G);default:if(te)throw new TypeError("Unknown encoding: "+K);K=(""+K).toLowerCase(),te=!0}},c.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function w(S,V,G){var K="";G=Math.min(S.length,G);for(var Y=V;Y<G;++Y)K+=String.fromCharCode(127&S[Y]);return K}function _(S,V,G){var K="";G=Math.min(S.length,G);for(var Y=V;Y<G;++Y)K+=String.fromCharCode(S[Y]);return K}function j(S,V,G){var K=S.length;(!V||V<0)&&(V=0),(!G||G<0||G>K)&&(G=K);for(var Y="",te=V;te<G;++te)Y+=ee(S[te]);return Y}function C(S,V,G){for(var K=S.slice(V,G),Y="",te=0;te<K.length;te+=2)Y+=String.fromCharCode(K[te]+256*K[te+1]);return Y}function J(S,V,G){if(S%1!=0||S<0)throw new RangeError("offset is not uint");if(S+V>G)throw new RangeError("Trying to access beyond buffer length")}function v(S,V,G,K,Y,te){if(!c.isBuffer(S))throw new TypeError('"buffer" argument must be a Buffer instance');if(V>Y||V<te)throw new RangeError('"value" argument is out of bounds');if(G+K>S.length)throw new RangeError("Index out of range")}function D(S,V,G,K){V<0&&(V=65535+V+1);for(var Y=0,te=Math.min(S.length-G,2);Y<te;++Y)S[G+Y]=(V&255<<8*(K?Y:1-Y))>>>8*(K?Y:1-Y)}function A(S,V,G,K){V<0&&(V=4294967295+V+1);for(var Y=0,te=Math.min(S.length-G,4);Y<te;++Y)S[G+Y]=V>>>8*(K?Y:3-Y)&255}function b(S,V,G,K,Y,te){if(G+K>S.length)throw new RangeError("Index out of range");if(G<0)throw new RangeError("Index out of range")}function P(S,V,G,K,Y){return Y||b(S,0,G,4),s.write(S,V,G,K,23,4),G+4}function z(S,V,G,K,Y){return Y||b(S,0,G,8),s.write(S,V,G,K,52,8),G+8}c.prototype.slice=function(S,V){var G,K=this.length;if((S=~~S)<0?(S+=K)<0&&(S=0):S>K&&(S=K),(V=V===void 0?K:~~V)<0?(V+=K)<0&&(V=0):V>K&&(V=K),V<S&&(V=S),c.TYPED_ARRAY_SUPPORT)(G=this.subarray(S,V)).__proto__=c.prototype;else{var Y=V-S;G=new c(Y,void 0);for(var te=0;te<Y;++te)G[te]=this[te+S]}return G},c.prototype.readUIntLE=function(S,V,G){S|=0,V|=0,G||J(S,V,this.length);for(var K=this[S],Y=1,te=0;++te<V&&(Y*=256);)K+=this[S+te]*Y;return K},c.prototype.readUIntBE=function(S,V,G){S|=0,V|=0,G||J(S,V,this.length);for(var K=this[S+--V],Y=1;V>0&&(Y*=256);)K+=this[S+--V]*Y;return K},c.prototype.readUInt8=function(S,V){return V||J(S,1,this.length),this[S]},c.prototype.readUInt16LE=function(S,V){return V||J(S,2,this.length),this[S]|this[S+1]<<8},c.prototype.readUInt16BE=function(S,V){return V||J(S,2,this.length),this[S]<<8|this[S+1]},c.prototype.readUInt32LE=function(S,V){return V||J(S,4,this.length),(this[S]|this[S+1]<<8|this[S+2]<<16)+16777216*this[S+3]},c.prototype.readUInt32BE=function(S,V){return V||J(S,4,this.length),16777216*this[S]+(this[S+1]<<16|this[S+2]<<8|this[S+3])},c.prototype.readIntLE=function(S,V,G){S|=0,V|=0,G||J(S,V,this.length);for(var K=this[S],Y=1,te=0;++te<V&&(Y*=256);)K+=this[S+te]*Y;return K>=(Y*=128)&&(K-=Math.pow(2,8*V)),K},c.prototype.readIntBE=function(S,V,G){S|=0,V|=0,G||J(S,V,this.length);for(var K=V,Y=1,te=this[S+--K];K>0&&(Y*=256);)te+=this[S+--K]*Y;return te>=(Y*=128)&&(te-=Math.pow(2,8*V)),te},c.prototype.readInt8=function(S,V){return V||J(S,1,this.length),128&this[S]?-1*(255-this[S]+1):this[S]},c.prototype.readInt16LE=function(S,V){V||J(S,2,this.length);var G=this[S]|this[S+1]<<8;return 32768&G?4294901760|G:G},c.prototype.readInt16BE=function(S,V){V||J(S,2,this.length);var G=this[S+1]|this[S]<<8;return 32768&G?4294901760|G:G},c.prototype.readInt32LE=function(S,V){return V||J(S,4,this.length),this[S]|this[S+1]<<8|this[S+2]<<16|this[S+3]<<24},c.prototype.readInt32BE=function(S,V){return V||J(S,4,this.length),this[S]<<24|this[S+1]<<16|this[S+2]<<8|this[S+3]},c.prototype.readFloatLE=function(S,V){return V||J(S,4,this.length),s.read(this,S,!0,23,4)},c.prototype.readFloatBE=function(S,V){return V||J(S,4,this.length),s.read(this,S,!1,23,4)},c.prototype.readDoubleLE=function(S,V){return V||J(S,8,this.length),s.read(this,S,!0,52,8)},c.prototype.readDoubleBE=function(S,V){return V||J(S,8,this.length),s.read(this,S,!1,52,8)},c.prototype.writeUIntLE=function(S,V,G,K){S=+S,V|=0,G|=0,K||v(this,S,V,G,Math.pow(2,8*G)-1,0);var Y=1,te=0;for(this[V]=255&S;++te<G&&(Y*=256);)this[V+te]=S/Y&255;return V+G},c.prototype.writeUIntBE=function(S,V,G,K){S=+S,V|=0,G|=0,K||v(this,S,V,G,Math.pow(2,8*G)-1,0);var Y=G-1,te=1;for(this[V+Y]=255&S;--Y>=0&&(te*=256);)this[V+Y]=S/te&255;return V+G},c.prototype.writeUInt8=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,1,255,0),c.TYPED_ARRAY_SUPPORT||(S=Math.floor(S)),this[V]=255&S,V+1},c.prototype.writeUInt16LE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[V]=255&S,this[V+1]=S>>>8):D(this,S,V,!0),V+2},c.prototype.writeUInt16BE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,2,65535,0),c.TYPED_ARRAY_SUPPORT?(this[V]=S>>>8,this[V+1]=255&S):D(this,S,V,!1),V+2},c.prototype.writeUInt32LE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[V+3]=S>>>24,this[V+2]=S>>>16,this[V+1]=S>>>8,this[V]=255&S):A(this,S,V,!0),V+4},c.prototype.writeUInt32BE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,4,4294967295,0),c.TYPED_ARRAY_SUPPORT?(this[V]=S>>>24,this[V+1]=S>>>16,this[V+2]=S>>>8,this[V+3]=255&S):A(this,S,V,!1),V+4},c.prototype.writeIntLE=function(S,V,G,K){if(S=+S,V|=0,!K){var Y=Math.pow(2,8*G-1);v(this,S,V,G,Y-1,-Y)}var te=0,oe=1,ge=0;for(this[V]=255&S;++te<G&&(oe*=256);)S<0&&ge===0&&this[V+te-1]!==0&&(ge=1),this[V+te]=(S/oe>>0)-ge&255;return V+G},c.prototype.writeIntBE=function(S,V,G,K){if(S=+S,V|=0,!K){var Y=Math.pow(2,8*G-1);v(this,S,V,G,Y-1,-Y)}var te=G-1,oe=1,ge=0;for(this[V+te]=255&S;--te>=0&&(oe*=256);)S<0&&ge===0&&this[V+te+1]!==0&&(ge=1),this[V+te]=(S/oe>>0)-ge&255;return V+G},c.prototype.writeInt8=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,1,127,-128),c.TYPED_ARRAY_SUPPORT||(S=Math.floor(S)),S<0&&(S=255+S+1),this[V]=255&S,V+1},c.prototype.writeInt16LE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[V]=255&S,this[V+1]=S>>>8):D(this,S,V,!0),V+2},c.prototype.writeInt16BE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,2,32767,-32768),c.TYPED_ARRAY_SUPPORT?(this[V]=S>>>8,this[V+1]=255&S):D(this,S,V,!1),V+2},c.prototype.writeInt32LE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,4,2147483647,-2147483648),c.TYPED_ARRAY_SUPPORT?(this[V]=255&S,this[V+1]=S>>>8,this[V+2]=S>>>16,this[V+3]=S>>>24):A(this,S,V,!0),V+4},c.prototype.writeInt32BE=function(S,V,G){return S=+S,V|=0,G||v(this,S,V,4,2147483647,-2147483648),S<0&&(S=4294967295+S+1),c.TYPED_ARRAY_SUPPORT?(this[V]=S>>>24,this[V+1]=S>>>16,this[V+2]=S>>>8,this[V+3]=255&S):A(this,S,V,!1),V+4},c.prototype.writeFloatLE=function(S,V,G){return P(this,S,V,!0,G)},c.prototype.writeFloatBE=function(S,V,G){return P(this,S,V,!1,G)},c.prototype.writeDoubleLE=function(S,V,G){return z(this,S,V,!0,G)},c.prototype.writeDoubleBE=function(S,V,G){return z(this,S,V,!1,G)},c.prototype.copy=function(S,V,G,K){if(G||(G=0),K||K===0||(K=this.length),V>=S.length&&(V=S.length),V||(V=0),K>0&&K<G&&(K=G),K===G||S.length===0||this.length===0)return 0;if(V<0)throw new RangeError("targetStart out of bounds");if(G<0||G>=this.length)throw new RangeError("sourceStart out of bounds");if(K<0)throw new RangeError("sourceEnd out of bounds");K>this.length&&(K=this.length),S.length-V<K-G&&(K=S.length-V+G);var Y,te=K-G;if(this===S&&G<V&&V<K)for(Y=te-1;Y>=0;--Y)S[Y+V]=this[Y+G];else if(te<1e3||!c.TYPED_ARRAY_SUPPORT)for(Y=0;Y<te;++Y)S[Y+V]=this[Y+G];else Uint8Array.prototype.set.call(S,this.subarray(G,G+te),V);return te},c.prototype.fill=function(S,V,G,K){if(typeof S=="string"){if(typeof V=="string"?(K=V,V=0,G=this.length):typeof G=="string"&&(K=G,G=this.length),S.length===1){var Y=S.charCodeAt(0);Y<256&&(S=Y)}if(K!==void 0&&typeof K!="string")throw new TypeError("encoding must be a string");if(typeof K=="string"&&!c.isEncoding(K))throw new TypeError("Unknown encoding: "+K)}else typeof S=="number"&&(S&=255);if(V<0||this.length<V||this.length<G)throw new RangeError("Out of range index");if(G<=V)return this;var te;if(V>>>=0,G=G===void 0?this.length:G>>>0,S||(S=0),typeof S=="number")for(te=V;te<G;++te)this[te]=S;else{var oe=c.isBuffer(S)?S:re(new c(S,K).toString()),ge=oe.length;for(te=0;te<G-V;++te)this[te+V]=oe[te%ge]}return this};var $=/[^+\/0-9A-Za-z-_]/g;function ee(S){return S<16?"0"+S.toString(16):S.toString(16)}function re(S,V){var G;V=V||1/0;for(var K=S.length,Y=null,te=[],oe=0;oe<K;++oe){if((G=S.charCodeAt(oe))>55295&&G<57344){if(!Y){if(G>56319){(V-=3)>-1&&te.push(239,191,189);continue}if(oe+1===K){(V-=3)>-1&&te.push(239,191,189);continue}Y=G;continue}if(G<56320){(V-=3)>-1&&te.push(239,191,189),Y=G;continue}G=65536+(Y-55296<<10|G-56320)}else Y&&(V-=3)>-1&&te.push(239,191,189);if(Y=null,G<128){if((V-=1)<0)break;te.push(G)}else if(G<2048){if((V-=2)<0)break;te.push(G>>6|192,63&G|128)}else if(G<65536){if((V-=3)<0)break;te.push(G>>12|224,G>>6&63|128,63&G|128)}else{if(!(G<1114112))throw new Error("Invalid code point");if((V-=4)<0)break;te.push(G>>18|240,G>>12&63|128,G>>6&63|128,63&G|128)}}return te}function O(S){return o.toByteArray(function(V){if((V=function(G){return G.trim?G.trim():G.replace(/^\s+|\s+$/g,"")}(V).replace($,"")).length<2)return"";for(;V.length%4!=0;)V+="=";return V}(S))}function k(S,V,G,K){for(var Y=0;Y<K&&!(Y+G>=V.length||Y>=S.length);++Y)V[Y+G]=S[Y];return Y}}).call(this,n(6))},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch{typeof window=="object"&&(n=window)}e.exports=n},function(e,t){typeof Object.create=="function"?e.exports=function(n,r){r&&(n.super_=r,n.prototype=Object.create(r.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}))}:e.exports=function(n,r){if(r){n.super_=r;var o=function(){};o.prototype=r.prototype,n.prototype=new o,n.prototype.constructor=n}}},function(e,t,n){function r(Q){return(r=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(f){return typeof f}:function(f){return f&&typeof Symbol=="function"&&f.constructor===Symbol&&f!==Symbol.prototype?"symbol":typeof f})(Q)}function o(Q,f){if(f&&(r(f)==="object"||typeof f=="function"))return f;if(f!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return s(Q)}function s(Q){if(Q===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return Q}function g(Q){var f=typeof Map=="function"?new Map:void 0;return(g=function(p){if(p===null||(U=p,Function.toString.call(U).indexOf("[native code]")===-1))return p;var U;if(typeof p!="function")throw new TypeError("Super expression must either be null or a function");if(f!==void 0){if(f.has(p))return f.get(p);f.set(p,E)}function E(){return l(p,arguments,d(this).constructor)}return E.prototype=Object.create(p.prototype,{constructor:{value:E,enumerable:!1,writable:!0,configurable:!0}}),c(E,p)})(Q)}function l(Q,f,p){return(l=u()?Reflect.construct.bind():function(U,E,M){var W=[null];W.push.apply(W,E);var y=new(Function.bind.apply(U,W));return M&&c(y,M.prototype),y}).apply(null,arguments)}function u(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function c(Q,f){return(c=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(p,U){return p.__proto__=U,p})(Q,f)}function d(Q){return(d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(f){return f.__proto__||Object.getPrototypeOf(f)})(Q)}var B=function(Q){(function(W,y){if(typeof y!="function"&&y!==null)throw new TypeError("Super expression must either be null or a function");W.prototype=Object.create(y&&y.prototype,{constructor:{value:W,writable:!0,configurable:!0}}),Object.defineProperty(W,"prototype",{writable:!1}),y&&c(W,y)})(M,Q);var f,p,U,E=(f=M,p=u(),function(){var W,y=d(f);if(p){var m=d(this).constructor;W=Reflect.construct(y,arguments,m)}else W=y.apply(this,arguments);return o(this,W)});function M(W){var y;return function(m,h){if(!(m instanceof h))throw new TypeError("Cannot call a class as a function")}(this,M),y=E.call(this,`Format functions must be synchronous taking a two arguments: (info, opts)
|
|
3
3
|
Found: `.concat(W.toString().split(`
|
|
4
4
|
`)[0],`
|
|
@@ -60,7 +60,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
60
60
|
Found: ${s.toString().split(`
|
|
61
61
|
`)[0]}
|
|
62
62
|
`),Error.captureStackTrace(this,r)}}e.exports=o=>{if(o.length>2)throw new r(o);function s(l={}){this.options=l}function g(l){return new s(l)}return s.prototype.transform=o,g.Format=s,g}},function(e,t,n){function r(g,l){if(!(g instanceof l))throw new TypeError("Cannot call a class as a function")}function o(g,l){for(var u=0;u<l.length;u++){var c=l[u];c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(g,c.key,c)}}var s=n(87);e.exports=function(){function g(){var c=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};r(this,g),this.loggers=new Map,this.options=c}var l,u;return l=g,(u=[{key:"add",value:function(c,d){var B=this;if(!this.loggers.has(c)){var Q=(d=Object.assign({},d||this.options)).transports||this.options.transports;d.transports=Q?Q.slice():[];var f=s(d);f.on("close",function(){return B._delete(c)}),this.loggers.set(c,f)}return this.loggers.get(c)}},{key:"get",value:function(c,d){return this.add(c,d)}},{key:"has",value:function(c){return!!this.loggers.has(c)}},{key:"close",value:function(c){var d=this;if(c)return this._removeLogger(c);this.loggers.forEach(function(B,Q){return d._removeLogger(Q)})}},{key:"_removeLogger",value:function(c){this.loggers.has(c)&&(this.loggers.get(c).close(),this._delete(c))}},{key:"_delete",value:function(c){this.loggers.delete(c)}}])&&o(l.prototype,u),Object.defineProperty(l,"prototype",{writable:!1}),g}()},function(e,t,n){(function(r){const o=n(51),s=/^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$/;e.exports=function(g,l,u,c){let d,B,Q=!1,f=!1;const p=n(93);function U(W){c(l,W)}function E(W,y){let m=`"${l}" ${y}`;throw W&&(m=""+m),B&&(m=`${m}. An example of a valid value would be: ${B}`),new o(m)}const M={convertFromBase64:function(){return U("marking for base64 conversion"),Q=!0,M},default:function(W){if(typeof W=="number")d=W.toString();else if(Array.isArray(W)||typeof W=="object"&&W!==null)d=JSON.stringify(W);else{if(typeof W!="string")throw new o("values passed to default() must be of Number, String, Array, or Object type");d=W}return U(`setting default value to "${d}"`),M},required:function(W){return W===void 0?(U("marked as required"),f=!0):(U("setting required flag to "+W),f=W),M},example:function(W){return B=W,M}};return Object.entries({...p,...u}).forEach(([W,y])=>{M[W]=function(m){return function(){let h=g[l];if(U(`will be read from the environment using "${m.name}" accessor`),h===void 0)if(d===void 0&&f)U("was not found in the environment, but is required to be set"),E(void 0,"is a required variable, but it was not set");else{if(d===void 0)return void U("was not found in the environment, but is not required. returning undefined");U(`was not found in the environment, parsing default value "${d}" instead`),h=d}f&&(U("verifying variable value is not an empty string"),h.trim().length===0&&E(void 0,"is a required variable, but its value was empty")),Q&&(U("verifying variable is a valid base64 string"),h.match(s)||E(h,"should be a valid base64 string if using convertFromBase64"),U("converting from base64 to utf8 string"),h=r.from(h,"base64").toString());const T=[h].concat(Array.prototype.slice.call(arguments));try{U(`passing value "${h}" to "${m.name}" accessor`);const I=m.apply(m,T);return U("parsed successfully, returning "+I),I}catch(I){E(h,I.message)}}}(y)}),M}}).call(this,n(5).Buffer)},function(e,t,n){const r=n(34);e.exports=function(o,s){return s=s||",",o.length?r(o).split(s).filter(Boolean):[]}},function(e,t,n){e.exports=function(r){const o=r.toLowerCase();if(o!=="false"&&o!=="true")throw new Error('should be either "true", "false", "TRUE", or "FALSE"');return o!=="false"}},function(e,t,n){e.exports=function(r){const o=r.toLowerCase();if(["false","0","true","1"].indexOf(o)===-1)throw new Error('should be either "true", "false", "TRUE", "FALSE", 1, or 0');return!(o==="0"||o==="false")}},function(e,t,n){const r=n(94);e.exports=function(o){var s=r(o);if(s>65535)throw new Error("cannot assign a port number greater than 65535");return s}},function(e,t,n){const r=n(34);e.exports=function(o,s){const g=r(o);if(s.indexOf(g)<0)throw new Error(`should be one of [${s.join(", ")}]`);return g}},function(e,t,n){const r=n(53);e.exports=function(o){const s=r(o);if(s>0)throw new Error("should be a negative float");return s}},function(e,t,n){const r=n(53);e.exports=function(o){const s=r(o);if(s<0)throw new Error("should be a positive float");return s}},function(e,t,n){const r=n(52);e.exports=function(o){const s=r(o);if(s>0)throw new Error("should be a negative integer");return s}},function(e,t,n){const r=n(54);e.exports=function(o){var s=r(o);if(!Array.isArray(s))throw new Error("should be a parseable JSON Array");return s}},function(e,t,n){const r=n(54);e.exports=function(o){var s=r(o);if(Array.isArray(s))throw new Error("should be a parseable JSON Object");return s}},function(e,t,n){e.exports=function(r,o){try{RegExp(void 0,o)}catch{throw new Error("invalid regexp flags")}try{return new RegExp(r,o)}catch{throw new Error("should be a valid regexp")}}},function(e,t,n){const r=n(95);e.exports=function(o){return r(o).toString()}},function(e,t,n){const r=n(34),o=/^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|"(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021\u0023-\u005b\u005d-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])*")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\u0001-\u0008\u000b\u000c\u000e-\u001f\u0021-\u005a\u0053-\u007f]|\\[\u0001-\u0009\u000b\u000c\u000e-\u007f])+)\])$/;e.exports=function(s){const g=r(s);if(!o.test(g))throw new Error("should be a valid email address");return g}},function(e,t,n){e.exports=function(r,o){return function(s,g){o&&o.match(/prod|production/)||r(`env-var (${s}): ${g}`)}}},function(e,t,n){(function(r){(function(){var o,s,g,l,u,c;typeof performance!="undefined"&&performance!==null&&performance.now?e.exports=function(){return performance.now()}:r!=null&&r.hrtime?(e.exports=function(){return(o()-u)/1e6},s=r.hrtime,l=(o=function(){var d;return 1e9*(d=s())[0]+d[1]})(),c=1e9*r.uptime(),u=l-c):Date.now?(e.exports=function(){return Date.now()-g},g=Date.now()):(e.exports=function(){return new Date().getTime()-g},g=new Date().getTime())}).call(this)}).call(this,n(2))},function(e,t,n){(function(r){(function(o){function s(l){if((l=l===void 0?"utf-8":l)!=="utf-8")throw new RangeError("Failed to construct 'TextEncoder': The encoding label provided ('"+l+"') is invalid.")}function g(l,u){if(u=u===void 0?{fatal:!1}:u,(l=l===void 0?"utf-8":l)!=="utf-8")throw new RangeError("Failed to construct 'TextDecoder': The encoding label provided ('"+l+"') is invalid.");if(u.fatal)throw Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}if(o.TextEncoder&&o.TextDecoder)return!1;Object.defineProperty(s.prototype,"encoding",{value:"utf-8"}),s.prototype.encode=function(l,u){if((u=u===void 0?{stream:!1}:u).stream)throw Error("Failed to encode: the 'stream' option is unsupported.");u=0;for(var c=l.length,d=0,B=Math.max(32,c+(c>>1)+7),Q=new Uint8Array(B>>3<<3);u<c;){var f=l.charCodeAt(u++);if(55296<=f&&56319>=f){if(u<c){var p=l.charCodeAt(u);(64512&p)==56320&&(++u,f=((1023&f)<<10)+(1023&p)+65536)}if(55296<=f&&56319>=f)continue}if(d+4>Q.length&&(B+=8,B=(B*=1+u/l.length*2)>>3<<3,(p=new Uint8Array(B)).set(Q),Q=p),(4294967168&f)==0)Q[d++]=f;else{if(!(4294965248&f))Q[d++]=f>>6&31|192;else if(!(4294901760&f))Q[d++]=f>>12&15|224,Q[d++]=f>>6&63|128;else{if(4292870144&f)continue;Q[d++]=f>>18&7|240,Q[d++]=f>>12&63|128,Q[d++]=f>>6&63|128}Q[d++]=63&f|128}}return Q.slice(0,d)},Object.defineProperty(g.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(g.prototype,"fatal",{value:!1}),Object.defineProperty(g.prototype,"ignoreBOM",{value:!1}),g.prototype.decode=function(l,u){if((u=u===void 0?{stream:!1}:u).stream)throw Error("Failed to decode: the 'stream' option is unsupported.");u=0;for(var c=(l=new Uint8Array(l)).length,d=[];u<c;){var B=l[u++];if(B===0)break;if(!(128&B))d.push(B);else if((224&B)==192){var Q=63&l[u++];d.push((31&B)<<6|Q)}else if((240&B)==224){Q=63&l[u++];var f=63&l[u++];d.push((31&B)<<12|Q<<6|f)}else(248&B)==240&&(65535<(B=(7&B)<<18|(Q=63&l[u++])<<12|(f=63&l[u++])<<6|63&l[u++])&&(B-=65536,d.push(B>>>10&1023|55296),B=56320|1023&B),d.push(B))}return String.fromCharCode.apply(null,d)},o.TextEncoder=s,o.TextDecoder=g})(typeof window!="undefined"?window:r!==void 0?r:this)}).call(this,n(6))},function(e,t,n){n.r(t),n.d(t,"AuthClient",function(){return s}),n.d(t,"RtcSignalingClient",function(){return l}),n.d(t,"Credentials",function(){return C}),n.d(t,"SignalingPromiseClient",function(){return J.SignalingPromiseClient}),n.d(t,"RtcClient",function(){return Lt}),n.d(t,"RtcClientV1",function(){return Mt}),n.d(t,"createRtcStreamMessage",function(){return Wt});var r=n(26),o=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class s extends r.a{adminSignup(Z,L){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/admin-signup",{token:L,method:"POST",body:Z})})}login(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/login",{method:"POST",body:Z,allowUnsafeRetries:!0})})}loginWithGoogleToken(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/login-google",{method:"POST",body:Z,allowUnsafeRetries:!0})})}refresh(Z,L){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/refresh",{method:"POST",body:{refreshToken:Z,tokenExpirationSeconds:L},allowUnsafeRetries:!0})})}respondToNewPasswordRequiredChallenge(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/respond-to-new-password-required-challenge",{method:"POST",body:Z})})}forgotPassword(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/forgot-password",{method:"POST",body:{email:Z}})})}confirmForgotPassword(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/confirm-forgot-password",{method:"POST",body:Z})})}resendInvitation(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/resend-invitation",{method:"POST",body:{email:Z}})})}changePassword({token:Z,refreshToken:L,currentPassword:q,newPassword:ie}){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/change-password",{token:Z,method:"POST",body:{refreshToken:L,currentPassword:q,newPassword:ie}})})}getDeviceCredentials(Z){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/device-credentials",{token:Z,method:"POST",allowUnsafeRetries:!0})})}impersonate(Z,L){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/impersonate",{token:Z,method:"POST",allowUnsafeRetries:!0,body:{userId:L}})})}createServiceAccount(Z,L,q,ie){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/service-account",{token:Z,method:"POST",allowUnsafeRetries:!0,body:{name:L,roleId:q,tags:ie}})})}getFeatures(Z){return o(this,void 0,void 0,function*(){return(yield this.fetch("auth/features",{token:Z})).features})}checkSso(Z,L){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/check-sso",{method:"POST",body:{email:Z,allowUserAutoCreation:L}})})}loginWithSso(Z,L){return o(this,void 0,void 0,function*(){return yield this.fetch("auth/login-sso",{method:"POST",body:{token:Z,refreshToken:L}})})}}var g=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class l extends r.a{createPeer(Z,L){return g(this,void 0,void 0,function*(){return yield this.fetch("peers",{token:Z,method:"POST",body:L})})}getPeers(Z){return g(this,void 0,void 0,function*(){return(yield this.fetch("peers",{token:Z})).items})}refreshPeer(Z,L){return g(this,void 0,void 0,function*(){yield this.fetch(`peers/${L}/refresh`,{token:Z,method:"POST",allowUnsafeRetries:!0})})}createSession(Z,L){return g(this,void 0,void 0,function*(){return yield this.fetch("sessions",{token:Z,method:"POST",body:L})})}refreshSession(Z,L){return g(this,void 0,void 0,function*(){yield this.fetch(`sessions/${L}/refresh`,{token:Z,method:"POST",allowUnsafeRetries:!0})})}deleteSession(Z,L){return g(this,void 0,void 0,function*(){yield this.fetch("sessions/"+L,{token:Z,method:"DELETE",allowUnsafeRetries:!0})})}getSessions(Z){return g(this,void 0,void 0,function*(){return(yield this.fetch("sessions",{token:Z})).items})}getIceServers(Z){return g(this,void 0,void 0,function*(){return(yield this.fetch("ice-servers",{token:Z})).items})}addSignals(Z,L,q){return g(this,void 0,void 0,function*(){yield this.fetch(`sessions/${L}/add-signals`,{token:Z,method:"POST",body:q})})}takeSignals(Z,L){return g(this,void 0,void 0,function*(){return(yield this.fetch(`sessions/${L}/take-signals`,{token:Z,method:"POST"})).items})}}var u=n(1),c=n(9),d=n(15),B=n.n(d),Q=n(101),f=n.n(Q),p=n(3),U=n(0),E=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class M extends class{constructor(Z,L){this.type=Z,this.name=L}}{constructor(Z){super("simple","LogReporter"),this.message=Z}send(Z){return E(this,void 0,void 0,function*(){var L,q;U.a.debug(this.message,(L=Z.reduce((ie,se)=>Object.assign(Object.assign({},ie),{[se.name]:se.stat}),{}),q=ie=>{const{sum:se,count:ue}=ie,fe=se/ue;return Object.assign(Object.assign({},ie),{average:fe})},Object.keys(L).reduce((ie,se)=>Object.assign(Object.assign({},ie),{[se]:q(L[se])}),{})))})}}const W=/^[a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/,y=/^[*a-zA-Z0-9-_.,:?'"()@\/\\#$+ ]{1,255}$/;function m(Re,Z=!1){return!!(Re!=null&&Re.match(Z?y:W))}var h=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};function T({func:Re,delay:Z,immediate:L=!1}){let q=!1,ie=setTimeout(function ue(){return h(this,void 0,void 0,function*(){if(q)return;const fe=new Date().getTime();try{se=Re(),yield se}finally{if(!q){const Ue=new Date().getTime();ie=setTimeout(ue,Math.max(Z-(Ue-fe),0))}}})},L?0:Z),se=Promise.resolve();return{stop(){return h(this,void 0,void 0,function*(){q=!0,clearTimeout(ie),yield se})}}}var I=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};const X=n(231);class F{constructor(Z){this.buffer={},this.reporters=[],this.flushInterval=T({func:()=>this.flushStats(),delay:F.samplePeriodMs}),this.tags=this.filterTags((Z==null?void 0:Z.tags)||{app:p.a,version:p.k,namespace:p.j})}shutdown(){return I(this,void 0,void 0,function*(){yield this.flushInterval.stop(),yield this.flushStats(),yield Object(c.a)(2*u.a.second)})}aggregate(Z,L,q){this.addToBuffer(this.buffer,this.encodeKey({metric:Z,tags:this.filterTags(q||{})}),typeof L=="number"?{min:L,max:L,sum:L,count:1}:L)}increment(Z,L){this.aggregate(Z,1,L)}timer(Z,L,q){return I(this,void 0,void 0,function*(){const ie=X(),se=yield L(),ue=X();return this.aggregate(Z,ue-ie,q),se})}registerStatsReporter(Z){this.reporters.push(Z)}setTag(Z,L){const q=this.filterTags({[Z]:L});this.tags=Object.assign(Object.assign({},this.tags),q)}addToBuffer(Z,L,q){if(Z[L]){const{min:ie,max:se,sum:ue,count:fe}=Z[L];Z[L]={min:Math.min(ie,q.min),max:Math.max(se,q.max),sum:ue+q.sum,count:fe+q.count}}else Z[L]=q}write(Z){return I(this,void 0,void 0,function*(){yield Promise.all(this.reporters.map(L=>I(this,void 0,void 0,function*(){let q;const ie={};switch(L.type){case"simple":for(const[ue,fe]of Object.entries(Z)){const{metric:Ue}=this.decodeKey(ue);this.addToBuffer(ie,this.encodeKey({metric:Ue}),fe)}q=ie;break;case"tagged":q=Z;break;default:(function(ue){throw new Error(`Unreachable type encountered (${ue})`)})(L.type)}const se=Object.entries(q);if(se.length>0)return L.send(se.map(([ue,fe])=>{const{metric:Ue,tags:ce}=this.decodeKey(ue);return{name:Ue,tags:Object.assign(Object.assign({},ce),this.tags),stat:fe}}),F.samplePeriodMs).catch(ue=>{U.a.debug("Failed to write stats to "+L.name,{error:ue})})})))})}flushStats(){return I(this,void 0,void 0,function*(){yield this.write(this.buffer),this.buffer={}})}encodeKey(Z){return B()(Object.assign(Object.assign({},Z),Object.keys(Z.tags||{}).length>0?{tags:Z.tags}:{}))}decodeKey(Z){return JSON.parse(Z)}filterTags(Z){return Object.entries(Z||{}).reduce((L,[q,ie])=>(m(q)&&m(ie)&&(L[q]=ie),L),{})}}F.samplePeriodMs=5*u.a.minute;const R=!!p.d,x=new F;R||["local","on-prem"].includes(p.j)||x.registerStatsReporter(new M("stats"));var w=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class _ extends class{constructor(Z){this.options=Z,this.cache=new f.a(Object.assign(Object.assign(Object.assign({},Z.dispose||Z.disposeAfter?{ttlAutopurge:!0}:{}),Z),{dispose:(...L)=>{var q;L[2]==="evict"&&x.increment("lru-eviction",{name:Z.name}),(q=Z.dispose)===null||q===void 0||q.call(Z,...L)},disposeAfter:(...L)=>{var q;this.updateStats(),(q=Z.disposeAfter)===null||q===void 0||q.call(Z,...L)}})),this.stringify=Z.fastStringify?JSON.stringify:B.a}set(Z,L,q){const ie=this.stringify(Z);if(!this.cache.set(ie,L,{ttl:q})){const se=this.cache.sizeCalculation?this.cache.sizeCalculation(L,ie):"unknown";throw Error(`Value too large (${se} > ${this.cache.max})`)}this.updateStats()}get(Z){const{name:L}=this.options,q=this.stringify(Z),ie=this.cache.getRemainingTTL(q);return ie<=0?x.increment("cache-miss",{name:L}):ie!==1/0&&x.aggregate("cache-item-ttl",ie,{name:L}),this.cache.get(q)}delete(Z){this.cache.delete(this.stringify(Z))}peek(Z){return this.cache.peek(this.stringify(Z))}size(){return this.cache.size}clear(){this.cache.clear()}forEach(Z){this.cache.forEach(Z)}purgeStale(){return this.cache.purgeStale()}updateStats(){const{name:Z}=this.options;x.aggregate("cache-item-count",this.cache.size,{name:Z}),this.cache.calculatedSize!==void 0&&x.aggregate("cache-length",this.cache.calculatedSize,{name:Z})}}{constructor(Z){if(super(Z),this.expireRejectedPromiseValues=Z.expireRejectedPromiseValues===void 0||Z.expireRejectedPromiseValues,this.rejectedPromiseValueTtl=Z.rejectedPromiseValueTtl!==void 0?Z.rejectedPromiseValueTtl:u.a.second,this.rejectedPromiseValueTtl<0)throw new Error("rejectedPromiseValueTtl must not be negative")}set(Z,L,q){super.set(Z,L,q),this.expireRejectedPromiseValues&&L.catch(()=>w(this,void 0,void 0,function*(){yield Object(c.a)(this.rejectedPromiseValueTtl),this.peek(Z)===L&&this.delete(Z)}))}}var j=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class C{constructor(Z,L,q){this.authClient=Z,this.email=L,this.password=q,this.tokenTtlMs=1*u.a.hour,this.tokenCache=new _({name:"Credentials-tokenCache",max:100,ttl:this.tokenTtlMs-5*u.a.minute,fastStringify:!0})}getToken(){return j(this,void 0,void 0,function*(){let Z=this.tokenCache.get(this.email);return Z||(Z=(()=>j(this,void 0,void 0,function*(){const{authentication:L}=yield this.authClient.login({email:this.email,password:this.password,tokenExpirationSeconds:this.tokenTtlMs/u.a.second});if(!L)throw new Error("User account not verified.");return L.accessToken}))(),this.tokenCache.set(this.email,Z)),Z})}}var J=n(96),v=n(17),D=n(236),A=n(41),b=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class P extends A.a{constructor(Z){super(Z)}postLanRtcOffer(Z){return b(this,void 0,void 0,function*(){return yield this.fetch("v1/lan-rtc-offer",{method:"POST",body:Z})})}}var z=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};function $(Re){return z(this,void 0,void 0,function*(){return(yield Promise.all(Re.map(Z=>Z.catch(L=>L)))).filter(Z=>Z instanceof Error)})}function ee(Re,Z){if(Re===void 0)throw new Error("Value is undefined"+(Z?": "+Z:""))}function re(Re,Z){if(Re===null)throw new Error("Value is null"+(Z?": "+Z:""))}function O(Re){return ee(Re),Re}function k(Re,Z){const L=Re.reduce((q,ie)=>[...q,...ie.urls],[]).filter(q=>S(q,Z)).sort(q=>V(q,"udp")?-1:0).shift();if(L)return Object.assign(Object.assign({},O(Re.find(q=>q.urls.includes(L)))),{urls:[L]})}function S(Re,Z){switch(Z){case"stun":return/^stuns?:/.test(Re);case"turn":return/^turns?:/.test(Re)}}function V(Re,Z){return Re.endsWith("transport="+Z)}var G=n(10);class K extends Error{constructor(Z,L){super(`Deadline expired after ${Z}ms + ${L}ms`)}}class Y{static withDeadline(Z,L){const q=new Promise((ie,se)=>{setTimeout(()=>{se(new K(L,this.grpcCallDeadlineSlopMs))},L+this.grpcCallDeadlineSlopMs)});return Promise.race([Z,q])}}Y.grpcCallDeadlineSlopMs=500*u.a.millisecond;var te=n(27);const oe={ordered:!1,maxPacketLifeTime:300*u.a.millisecond},ge={ordered:!0},Se={ordered:!0},ve={ordered:!1,maxRetransmits:0},ye={ordered:!1,maxRetransmits:0},Je=Re=>"received"in Re&&Re.received!==void 0,Ee=Re=>!("received"in Re)||Re.received===void 0,be=2*u.a.second,we=10*u.a.second;function Ze(Re,Z={}){const L=Array.from(Re.values()),q=L.filter(Je),ie=q.length>0,se=Math.max(...L.map(le=>le.sent)),ue=Math.max(...q.map(le=>le.received));let fe;if(ie){const le=Date.now()-se<=u.a.millisecond?L.length-1:L.length,me=q.length>le?le:q.length,Ve=q.map(Me=>Me.received-Me.sent),{standardDeviation:Ce,mean:xe,jitter:He}=function(Me){const Le=Me.length;if(Le===0)return{mean:NaN,standardDeviation:-1,jitter:NaN};const Ge=Me.reduce((Xe,et)=>Xe+et,0)/Le,Ke=Math.sqrt(Me.map(Xe=>Math.pow(Xe-Ge,2)).reduce((Xe,et)=>Xe+et)/Le);if(Le===1)return{mean:Ge,standardDeviation:Ke,jitter:NaN};let St=0;for(let Xe=1;Xe<Le;Xe++)St+=Math.abs(Me[Xe]-Me[Xe-1]);return{mean:Ge,standardDeviation:Ke,jitter:St/(Le-1)}}(Ve),Ye=L.filter(Me=>Me.sent<ue-be),qe=Ye.filter(Ee),Pe=qe.length===0?0:qe.length/Ye.length;fe={pingsSent:le,pongsReceived:me,average:xe,standardDeviation:Ce,jitter:He,max:Math.max(...Ve),min:Math.min(...Ve),loss:Pe}}else fe=null;const{temporalNow:Ue=Date.now()}=Z,ce=(ie?ue:Ue)-we;return Array.from(Re.entries()).forEach(le=>{const[me,Ve]=le;Ve.sent<ce&&Re.delete(me)}),fe}function Oe({entityId:Re,streamName:Z,streamType:L}){return`${Re}.${Z}.${L}`}var lt=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class Et{constructor(Z,L){this.counts={localSent:new Map,localReceived:new Map,remoteSent:new Map,remoteReceived:new Map},this.sessionId=Z,this.connection=L}updateRemoteMessagesCounts(Z){if(Z.payload.streamsInfo){this.counts.remoteSent=new Map,this.counts.remoteReceived=new Map;for(const L of Z.payload.streamsInfo.items)this.counts.remoteSent.set(L.streamId,L.sentCount),this.counts.remoteReceived.set(L.streamId,L.receivedCount)}}getLocalStreamsInfo(Z){const{localSent:L,localReceived:q}=this.counts;return{items:[...new Set([...L.keys(),...q.keys()])].map(ie=>{var se,ue;return{streamId:ie,sentCount:(se=L.get(ie))!==null&&se!==void 0?se:0,receivedCount:(ue=q.get(ie))!==null&&ue!==void 0?ue:0}}),timestamp:Z}}incrementLocalSent(Z){const{localSent:L}=this.counts,q=Oe(Z.header.stream);L.set(q,(L.get(q)||0)+1)}incrementLocalReceived(Z){const{localReceived:L}=this.counts,q=Oe(Z.header.stream),ie=L.get(q)||0;if(ie===0){const{streamName:se,streamType:ue}=Z.header.stream;U.a.debug("RTC client received first message for stream",{streamName:se,streamType:ue})}L.set(q,ie+1)}uploadMetrics(){return lt(this,void 0,void 0,function*(){const{sessionId:Z}=this,L=yield this.connection.peerConnection.getStats(),q={};L.forEach(ce=>q[ce.id]=ce),U.a.debug("rtc-stats",Object.assign(Object.assign({},q),{sessionId:Z}));const{localSent:ie,localReceived:se,remoteSent:ue,remoteReceived:fe}=this.counts,Ue=[...new Set([...ie.keys(),...se.keys()])].reduce((ce,le)=>{const me=ie.get(le),Ve=se.get(le),Ce=ue.get(le),xe=fe.get(le);return Object.assign(Object.assign({},ce),{[`local-${le}-sent`]:me,[`local-${le}-received`]:Ve,[`remote-${le}-sent`]:Ce,[`remote-${le}-received`]:xe})},{sessionId:Z});U.a.debug("rtc-message-report",Object.assign({deviceId:this.connection.getRemoteDeviceId()},Ue))})}}function Wt(Re,Z,L){return{header:{stream:Re,created:Date.now(),frameId:L||""},payload:Z}}function Tt(Re){const Z=Re.localCandidate.candidateType,L=Re.remoteCandidate.candidateType;return Z==="host"&&L==="host"?"local":Z==="relay"||L==="relay"?"TURN":"STUN"}function dt(Re){return new Set(["disconnected","failed","closed"]).has(Re.iceConnectionState)}function vt(Re){switch(Re.header.stream.streamType){case"twist":{const{twist:Z}=Re.payload;if(!Z)throw Error("twist not in payload of RTC message with type twist");return{header:Re.header,payload:{twist:{linear:Object.assign({x:0,y:0,z:0},Z.linear),angular:Object.assign({x:0,y:0,z:0},Z.angular)}}}}case"pose":{const{pose:Z}=Re.payload;if(!Z)throw Error("pose not in payload of RTC message with type pose");return{header:Re.header,payload:{pose:{translation:Object.assign({x:0,y:0,z:0},Z.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},Z.rotation)}}}}case"pose-with-covariance":{const{poseWithCovariance:Z}=Re.payload;if(!Z)throw Error("poseWithCovariance not in payload of RTC message with type pose-with-covariance");const L=new Array(36).fill(0);return Z.covariance.forEach((q,ie)=>{if(ie>=36)throw Error("covariance contains more than 36 elements");L[ie]=q}),{header:Re.header,payload:{poseWithCovariance:{pose:{translation:Object.assign({x:0,y:0,z:0},Z.pose.translation),rotation:Object.assign({x:0,y:0,z:0,w:0},Z.pose.rotation)},covariance:L}}}}case"point":{const{point:Z}=Re.payload;if(!Z)throw Error("point not in payload of RTC message with type point");return{header:Re.header,payload:{point:Object.assign({x:0,y:0,z:0},Z)}}}default:return Re}}var gt=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class _t{get peerConnection(){return re(this._peerConnection,"RTCPeerConnection is closed!"),this._peerConnection}constructor(Z,L,q,ie){this.iceServers=L,this.config=q,this.dataChannelNotifier=ie,this.connectTimeoutMs=20*u.a.second,this.iceGatheringTimeoutMs=3*u.a.second,this.pingUpdateTimeoutMs=1*u.a.second,this.pingV2UpdateTimeoutMs=250*u.a.millisecond,this.pingV2MetricsGatherTimeoutMs=1*u.a.second,this.streamsInfoUpdateTimeoutMs=2*u.a.second,this.reassemblyTimeoutMs=500*u.a.millisecond,this.reassemblyTableCleanupMs=1*u.a.second,this.heartbeatTimeoutMs=20*u.a.millisecond,this._peerConnection=null,this.heartbeatChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.streamLatestTimestamp=new Map,this.reassemblyTable=new Map,this.reassemblyTableLastTimestamp=new Map,this.closeCalled=!1,this.gotOffer=!1,this.hasIceCandidate=!1,this.pingV2Map=new Map,this.sendPingV2=()=>{const{latestTryOnceStreamChannel:ue}=this;if(!ue)return;const fe=new Date().getTime(),Ue=Object(D.a)();this.sendSystemMessage(ue,{type:"ping-v2",payload:{timestamp:fe,id:Ue}}),this.pingV2Map.set(Ue,{sent:fe})},this.gatherPingV2Metrics=()=>{const ue=Ze(this.pingV2Map);if(ue){const fe=this.getRemoteDeviceId();this.pingInfo=ue,x.aggregate("rtc-ping-average",ue.average,Object.assign({},fe?{deviceId:fe}:{})),x.aggregate("rtc-ping-loss",ue.loss,Object.assign({},fe?{deviceId:fe}:{})),x.aggregate("rtc-jitter",ue.jitter,Object.assign({},fe?{deviceId:fe}:{}))}},this._peerConnection=Z;const{isOffer:se}=q.baseConfig;se?this.initializeChannels(Z):Z.ondatachannel=ue=>{switch(ue.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=ue.channel;break;case"stream.reliable":this.reliableStreamChannel=ue.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=ue.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=ue.channel;break;case"heartbeat":return void(this.heartbeatChannel=ue.channel);default:return void this.dataChannelNotifier(ue.channel)}this.setupChannel(ue.channel)},this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:ue}=this;ue&&this.sendSystemMessage(ue,{type:"ping"})},this.pingUpdateTimeoutMs),this.pingV2UpdateTimeout=setInterval(this.sendPingV2,this.pingV2UpdateTimeoutMs),this.pingV2MetricsGatherTimeout=setInterval(this.gatherPingV2Metrics,this.pingV2MetricsGatherTimeoutMs),this.streamsInfoUpdateTimeout=setInterval(()=>{const{latestTtlStreamChannel:ue}=this;ue&&this.sendSystemMessage(ue,{type:"streams-info"})},this.streamsInfoUpdateTimeoutMs),this.reassemblyTableCleanupTimeout=setInterval(()=>{const ue=new Date().getTime();this.reassemblyTableLastTimestamp.forEach((fe,Ue,ce)=>{ue>Ue+this.reassemblyTimeoutMs&&this.reassemblyTable.delete(fe)})},this.reassemblyTableCleanupMs),this.heartbeatTimeout=setInterval(()=>{const{heartbeatChannel:ue}=this;ue&&ue.readyState==="open"&&ue.send(new Uint8Array([1]))},this.heartbeatTimeoutMs)}handleSignal(Z){return gt(this,void 0,void 0,function*(){const{peerConnection:L}=this,{track:q}=this.config.baseConfig,ie=(()=>{try{return JSON.parse(Z.getPayload())}catch{return}})();if(!ie)return void U.a.error("Received unparseable signal.");U.a.debug("Handling signal",{description:ie});const{sdp:se,type:ue}=ie;if(!se||!ue)return void U.a.warn("Received non-SDP signal");const{signalingState:fe,connectionState:Ue}=L;if(fe!=="stable"||Ue!=="connected")if(L.remoteDescription)U.a.warn("Received SDP after remote description was set: "+se);else{if(ue==="offer"){if(fe!=="stable")return void U.a.warn("Received offer SDP when signaling is ongoing.");yield L.setRemoteDescription(ie);const ce=yield L.createAnswer();yield L.setLocalDescription(ce);const le=Z.clone();return q==null||q("Answer Received",le),le.setPayload(JSON.stringify(ce)),le.setReceiverId(Z.getSenderId()),le.setSenderId(Z.getReceiverId()),le}if(ue==="answer"){if(fe==="stable")return void U.a.warn("Received answer SDP when signaling hasn't started.");yield L.setRemoteDescription(ie)}}else U.a.warn("Received SDP when already connected: "+se)})}send(Z,L){const q=this.getChannelFromLabel(L.channelLabel);q?this.sendOnChannel(q,Z):U.a.warn("Send called with unexpected channel label",{channelLabel:L.channelLabel})}controlRemoteStream(Z){var L;this.sendSystemMessage((re(L=this.reliableStreamChannel),L),{type:"stream-control",streamControl:Z})}isActive(){return new Set(["new","checking","connected","completed"]).has(this.peerConnection.iceConnectionState)||this.isReady()}isReady(){const{reliableStreamChannel:Z,latestTtlStreamChannel:L,latestTryOnceStreamChannel:q,latestReliableStreamChannel:ie}=this;return(Z==null?void 0:Z.readyState)==="open"&&(L==null?void 0:L.readyState)==="open"&&(q==null?void 0:q.readyState)==="open"&&(ie==null?void 0:ie.readyState)==="open"}close(){var Z,L,q,ie,se,ue,fe;return gt(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield(Z=this.sessionMetrics)===null||Z===void 0?void 0:Z.uploadMetrics(),ft(this.pingUpdateTimeout),ft(this.pingV2UpdateTimeout),ft(this.pingV2MetricsGatherTimeout),ft(this.reassemblyTableCleanupTimeout),ft(this.streamsInfoUpdateTimeout),ft(this.heartbeatTimeout),(L=this._peerConnection)===null||L===void 0||L.close(),(q=this.heartbeatChannel)===null||q===void 0||q.close(),(ie=this.latestReliableStreamChannel)===null||ie===void 0||ie.close(),(se=this.latestTryOnceStreamChannel)===null||se===void 0||se.close(),(ue=this.latestTtlStreamChannel)===null||ue===void 0||ue.close(),(fe=this.reliableStreamChannel)===null||fe===void 0||fe.close(),this._peerConnection=null,this.heartbeatChannel=null,this.latestReliableStreamChannel=null,this.latestTryOnceStreamChannel=null,this.latestTtlStreamChannel=null,this.reliableStreamChannel=null)})}getPing(){return this.pingTimeMs}getPingInfo(){return this.pingInfo}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionCreatedTimestamp(){var Z;return(Z=this.config.remoteConfig)===null||Z===void 0?void 0:Z.sessionCreatedTimestamp}setSessionCreatedTimestamp(Z){this.config.remoteConfig&&(this.config.remoteConfig.sessionCreatedTimestamp=Z)}getSessionId(){var Z;return(Z=this.config.remoteConfig)===null||Z===void 0?void 0:Z.sessionId}setSessionId(Z){this.config.remoteConfig&&(this.config.remoteConfig.sessionId=Z,this.sessionMetrics=new Et(Z,this))}getRemotePeerId(){return this.config.baseConfig.remotePeerId}getRemoteDeviceId(){var Z;return(Z=this.config.baseConfig)===null||Z===void 0?void 0:Z.remoteDeviceId}setRemoteDeviceId(Z){this.config.baseConfig.remoteDeviceId=Z}getSessionMetricsMessageCounts(){var Z;return(Z=this.sessionMetrics)===null||Z===void 0?void 0:Z.counts}getConnectionStatsInfo(){return gt(this,void 0,void 0,function*(){const{peerConnection:Z}=this;if(!Z)return;const L=yield Z.getStats(null),q=[];L.forEach(Ue=>{q.push(Ue)});const ie=q.find(Ue=>Ue.type==="transport");if(!ie)return;const se=q.find(Ue=>(Ue.type==="candidate-pair"||Ue.type==="candidatepair")&&Ue.id===ie.selectedCandidatePairId);if(!se)return;const ue=q.find(Ue=>Ue.id===se.localCandidateId),fe=q.find(Ue=>Ue.id===se.remoteCandidateId);return ue&&fe&&(ue.address=ue.address||ue.ip,fe.address=fe.address||fe.ip,ue.address!==void 0&&fe.address!==void 0)?{transport:ie,localCandidate:ue,remoteCandidate:fe,candidatePair:se}:void 0})}initializeChannels(Z){this.heartbeatChannel=Z.createDataChannel("heartbeat",ye),this.heartbeatChannel.binaryType="arraybuffer",this.latestTtlStreamChannel=Z.createDataChannel("stream.latest-ttl",oe),this.latestTtlStreamChannel.binaryType="arraybuffer",this.reliableStreamChannel=Z.createDataChannel("stream.reliable",ge),this.reliableStreamChannel.binaryType="arraybuffer",this.latestReliableStreamChannel=Z.createDataChannel("stream.latest-reliable",Se),this.latestReliableStreamChannel.binaryType="arraybuffer",this.latestTryOnceStreamChannel=Z.createDataChannel("stream.latest-try-once",ve),this.latestTryOnceStreamChannel.binaryType="arraybuffer",this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}getOffer(){var Z,L;return gt(this,void 0,void 0,function*(){const{gotOffer:q}=this,{peerConnection:ie,config:se}=this;if(this.config.baseConfig.isLan)throw new Error('"getOffer" method can only be called with internet connections. LAN connections should call the "getLanOffer" method.');const ue=(Z=this.config.remoteConfig)===null||Z===void 0?void 0:Z.sessionId;if(q)return void U.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,dt(this.peerConnection))return void U.a.debug("Failed to generate offer because the peer connection was inactive.");const fe=se.baseConfig.track;ie.onicecandidate=()=>{this.hasIceCandidate=!0},ie.oniceconnectionstatechange=()=>gt(this,void 0,void 0,function*(){const Ce=ie.iceConnectionState;if(Ce==="connected"||Ce==="completed"){const xe=yield this.getConnectionStatsInfo(),He=xe?Tt(xe):void 0;U.a.info("ICE connection state changed to "+Ce,{sessionId:ue,connectionStatsInfo:xe,iceMode:He}),fe==null||fe("ICE connection state change",{iceConnectionState:Ce,sessionId:ue,connectionStatsInfo:xe,iceMode:He})}}),yield ie.setLocalDescription(yield ie.createOffer());const Ue=ie.getConfiguration?ie.getConfiguration().iceTransportPolicy:"all",ce=new Date().getTime();for(;;){const Ce=new Date().getTime()-ce;if(Ce>this.connectTimeoutMs)return void U.a.debug("Failed to generate offer because ICE gathering timed out.");if(Ce>this.iceGatheringTimeoutMs&&this.hasIceCandidate){U.a.debug("ICE gathering partially completed; proceeding",{iceTransportPolicy:Ue,waitTime:Ce}),fe==null||fe("ICE gathering partially completed",{sessionId:ue,iceTransportPolicy:Ue,waitTime:Ce});break}if(ie.iceGatheringState==="complete"){U.a.debug("ICE gathering complete",{iceTransportPolicy:Ue,waitTime:Ce}),fe==null||fe("ICE gathering completed",{sessionId:ue,iceTransportPolicy:Ue,waitTime:Ce});break}yield Object(c.a)(.1*u.a.second)}const le=(L=this.iceServers)!==null&&L!==void 0?L:[];for(const Ce of le)"credentialType"in Ce&&(Ce.credentialType=void 0);const me=JSON.stringify(le),Ve=new G.Signal;return Ve.setPayload(JSON.stringify(ie.localDescription)),Ve.setSenderId(this.config.baseConfig.localPeerId),Ve.setReceiverId(this.config.baseConfig.remotePeerId),Ve.setIceServers(me),Ve.setIceTransportPolicy(Ue!=null?Ue:"all"),this.config.baseConfig.sessionType!==void 0?Ve.setSessionType(this.config.baseConfig.sessionType):Ve.setSessionType(G.SessionType.TELEOP),U.a.debug("Sending offer signal with description",{description:Ve.getPayload()}),Ve})}getLanOffer(){return gt(this,void 0,void 0,function*(){const{peerConnection:Z,gotOffer:L}=this;if(!this.config.baseConfig.isLan)throw new Error('"getLanOffer" method can only be used with LAN connections. Internet connections should call the "getOffer" method.');if(L)return void U.a.debug("Failed to generate offer because gotOffer was already called.");if(this.gotOffer=!0,dt(this.peerConnection))return void U.a.debug("Failed to generate offer because the peer connection was inactive.");yield Z.setLocalDescription(yield Z.createOffer());const q=new Date().getTime();for(;;){if(new Date().getTime()-q>this.iceGatheringTimeoutMs)return void U.a.debug("Failed to generate offer because ICE gathering timed out.");if(Z.iceGatheringState==="complete")break;yield Object(c.a)(.1*u.a.second)}const ie=Z.localDescription;if(ie)return U.a.debug("Sending LAN offer signal with description",{description:ie}),ie;U.a.error("Failed to generate LAN offer description")})}handleLanAnswer(Z){return gt(this,void 0,void 0,function*(){const{peerConnection:L}=this;if(!this.config.baseConfig.isLan)throw new Error('"handleLanAnswer" method can only be used with LAN connections. Internet connections should call the "handleSignal" method.');yield L.setRemoteDescription(Z)})}getChannelFromLabel(Z){switch(Z){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(Z,L){var q;let ie;try{ie=Object(te.encode)(JSON.stringify(L))}catch(se){return void U.a.warn("Failed to encode RTC message",{error:se})}try{Z.send(ie),(q=this.sessionMetrics)===null||q===void 0||q.incrementLocalSent(L)}catch(se){U.a.warn("Failed to send message to channel",{error:se,channel:Z.label})}}channelNotRecognized(Z){return Z!==this.latestTtlStreamChannel&&Z!==this.latestReliableStreamChannel&&Z!==this.latestTryOnceStreamChannel&&Z!==this.reliableStreamChannel}setupChannel(Z){Z.onmessage=L=>{if(this.channelNotRecognized(Z))return void U.a.warn("Received message on unrecognized data channel.");let q;try{q=JSON.parse(Object(te.decode)(L.data))}catch(ie){return void U.a.warn("Received unparseable message on RTC stream data channel",{error:ie,channel:Z.label})}q.communicationType==="message-chunk"?this.receiveChannelMessageChunk(Z,q):this.receiveChannelMessage(Z,q)},Z.onerror=L=>{U.a.warn("Channel error: "+L.error,{error:L.error,sessionId:this.getSessionId(),channelLabel:Z.label})},Z.onopen=()=>{U.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:Z.label})},Z.onclose=()=>{const L={bufferedAmount:Z.bufferedAmount,sessionId:this.getSessionId(),channelLabel:Z.label};this.closeCalled===!1?U.a.debug("Unexpected channel closed",L):U.a.debug("Channel closed",L)}}receiveChannelMessage(Z,L){var q;const{config:ie}=this,{remotePeerId:se}=this.config.baseConfig;this.lastMessageTimestamp=new Date().getTime(),L=vt(L),(q=this.sessionMetrics)===null||q===void 0||q.incrementLocalReceived(L),!this.handleSystemMessage(Z,L)&&((Z===this.latestTryOnceStreamChannel||Z===this.latestTtlStreamChannel||Z===this.latestReliableStreamChannel)&&!this.isLatestMessage(L)||ie.baseConfig.receive(se,L))}receiveChannelMessageChunk(Z,L){const q=this.reassemblyTable.get(L.id)||[];if(q.push(L),q.length===L.total){const ie=function(se){const ue=se.sort((fe,Ue)=>fe.seq<Ue.seq?-1:1).map(fe=>fe.part).reduce((fe,Ue)=>fe+Ue);try{return JSON.parse(ue)}catch{return void U.a.warn("Could not reassemble RTC message chunks")}}(q);return ie&&this.receiveChannelMessage(Z,ie),void this.reassemblyTable.delete(L.id)}this.reassemblyTable.set(L.id,q),this.reassemblyTableLastTimestamp.set(L.id,new Date().getTime())}handleSystemMessage(Z,L){var q,ie;const{config:se}=this,{baseConfig:ue}=se,{remotePeerId:fe,remoteDeviceId:Ue}=ue;switch(L.header.stream.streamType){case"ping":return this.sendSystemMessage(Z,{type:"pong",timestamp:O(L.payload.ping)}),!0;case"pong":{const ce=new Date().getTime()-O(L.payload.pong);return this.pingTimeMs=ce,x.aggregate("rtc-ping-time",ce,Object.assign({},Ue?{deviceId:Ue}:{})),!0}case"ping-v2":return this.sendPingV2(),!0;case"pong-v2":{const ce=O(L.payload.pongV2),le=this.pingV2Map.get(ce.id);return(le==null?void 0:le.sent)!==ce.timestamp&&U.a.warn("Pong timestamp doesn't match stored value",{currentEntry:le,pong:ce}),this.pingV2Map.set(ce.id,{sent:ce.timestamp,received:new Date().getTime()}),!0}case"streams-info":{const{sessionMetrics:ce}=this,le=(q=L.payload.streamsInfo)===null||q===void 0?void 0:q.timestamp;return!!le&&(ce==null||ce.updateRemoteMessagesCounts(L),(ie=ue.onStreamsInfoUpdate)===null||ie===void 0||ie.call(ue,fe,le),!0)}case"stream-control":return!0;default:return!1}}sendSystemMessage(Z,L){var q;const{localUserId:ie,localPeerId:se}=this.config.baseConfig;if(Z.readyState!=="open")return;const ue={entityId:ie!=null?ie:se,streamName:"$."+L.type,streamType:L.type};let fe;switch(L.type){case"ping":fe={ping:new Date().getTime()};break;case"pong":fe={pong:L.timestamp};break;case"ping-v2":fe={pingV2:L.payload};break;case"pong-v2":fe={pongV2:L.payload};break;case"stream-control":fe={streamControl:L.streamControl};break;case"streams-info":fe={streamsInfo:(q=this.sessionMetrics)===null||q===void 0?void 0:q.getLocalStreamsInfo(new Date().getTime())}}this.sendOnChannel(Z,Wt(ue,fe))}isLatestMessage(Z){const L=Oe(Z.header.stream),q=(this.streamLatestTimestamp.get(L)||0)<=Z.header.created;return q&&this.streamLatestTimestamp.set(L,Z.header.created),q}}function ft(Re){Re&&clearInterval(Re)}function Vt(){U.a.debug("forceGarbageCollection() triggered"),queueMicrotask(()=>{let Re=document.createElement("img");Re.src=window.URL.createObjectURL(new Blob([new ArrayBuffer(5e7)])),Re.onerror=function(){window.URL.revokeObjectURL(this.src),Re=null}})}function Zt(Re){try{return Re instanceof Error?`${Re.name}: ${Re.message}`:typeof Re=="object"?JSON.stringify(Re):String(Re)}catch{return"Unknown error"}}function pt(Re){var Z,L;return{userId:(Z=Re.getUserId())===null||Z===void 0?void 0:Z.getValue(),deviceId:(L=Re.getDeviceId())===null||L===void 0?void 0:L.getValue(),organizationId:Re.getOrganizationId(),id:Re.getPeerId(),capabilities:[],capabilitySet:{}}}var De=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};const Ft=Re=>Re.map(Z=>Object.assign(Object.assign(Object.assign({},Z),Z.username?{username:"<REDACTED>"}:null),Z.credential?{credential:"<REDACTED>"}:null));class Lt{constructor(Z){this.config=Z,this.grpcCallDeadline=5*u.a.second,this.refreshIntervalDelayMs=2*u.a.second,this.iceServersTtl=30*u.a.minute,this.connections=[],this.localConnections=[],this.isConnectionInitiator=new WeakSet,this.isOutgoingConnection=new Set,this.peerDataChannelListeners=[],this.rtcInstancesConstructed=0,this.statsLoopsExecuted=0;const{refreshIntervalDelayMs:L}=this;this.refreshInterval=T({func:()=>De(this,void 0,void 0,function*(){try{yield this.update()}catch(q){U.a.warn("RTC refresh failed",{error:q})}}),delay:L,immediate:!0})}send(Z,L,q){const ie=this.getActiveConnection(Z);ie?ie.isReady()?ie.send(L,q):U.a.warn("Send called with unready connection."):U.a.warn("Send called with no connection.")}controlRemoteStream(Z,L){const q=this.getActiveConnection(Z);q?q.isReady()?q.controlRemoteStream(L):U.a.warn("controlRemoteStream called with unready connection."):U.a.warn("controlRemoteStream called with no connection.")}getLocalPeer(){return De(this,void 0,void 0,function*(){for(;!this.localPeer;)yield Object(c.a)(.1*u.a.second);return pt(this.localPeer)})}connect(Z,L){var q,ie,se;return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode===!0)throw new Error("connect method called in local only mode.");const{track:ue,signalingClient:fe}=this.config,{localPeer:Ue,receiveSignalStream:ce,iceServers:le}=this;if(!Ue||!ce||!le)return void U.a.warn("Connect called prior to local peer, receiveSignalStream, and ICE servers ready");if(this.getActiveConnection(Z))return void U.a.warn("Connect called for peer with existing connection.");if(this.isOutgoingConnection.has(Z))return void U.a.warn("Connect called for peer with an existing outgoing connection offer.");this.isOutgoingConnection.add(Z);const me=function(Pe,Me,Le){const{rtcIceTransportPolicies:Ge,rtcIceServerProtocol:Ke,useAllServers:St}=Me||{},Xe=Pe.map(et=>Object.assign(Object.assign({},et),{urls:et.urls.filter(ut=>{const Nt=(Ge===void 0||Ge.some(Dt=>S(ut,Dt)))&&(Ke===void 0||V(ut,Ke));return Nt||U.a.debug("Ignoring ICE server: "+ut,{organizationId:Le}),Nt})})).filter(({urls:et})=>et.filter(ut=>ut).length>0);return St?Xe:[k(Xe,"stun"),k(Xe,"turn")].filter(et=>et!==void 0).map(et=>O(et))}(le,L);U.a.debug("Received ICE servers:",Ft(le)),U.a.debug("Using ICE servers:",Ft(me));const Ve=new _t(yield this.createRTCPeerConnection(me),me,{baseConfig:{isOffer:!0,isLan:!1,receive:(Pe,Me)=>this.config.receive(Pe,Me),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Pe,Me)=>{var Le,Ge;return(Ge=(Le=this.config).onStreamsInfoUpdate)===null||Ge===void 0?void 0:Ge.call(Le,Pe,Me)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(q=Ue.getUserId())===null||q===void 0?void 0:q.getValue(),localPeerId:Ue.getPeerId(),remotePeerId:Z,sessionType:this.config.sessionType},remoteConfig:{}},Pe=>this.onCustomDataChannel(Z,Pe)),Ce=yield Ve.getOffer();if(!Ce)return U.a.error("Failed to generate offer."),void this.isOutgoingConnection.delete(Z);U.a.debug("Sending offer."),ue==null||ue("Sending offer",Ce);const xe=new G.SendSignalRequest;xe.setSignal(Ce);const He=yield(()=>De(this,void 0,void 0,function*(){try{return yield Y.withDeadline(fe.sendSignal(xe,yield this.getMetadata()),this.grpcCallDeadline)}catch(Pe){U.a.warn("Error when sending signal",{error:Pe})}}))();if(!this.isOutgoingConnection.has(Z))return void U.a.debug("No offer set after receiving offer signal response.");U.a.debug("Offer sent.");const Ye=(ie=He==null?void 0:He.getSessionId())===null||ie===void 0?void 0:ie.getValue(),qe=(se=He==null?void 0:He.getSessionCreatedTimestamp())===null||se===void 0?void 0:se.getValue();return Ye&&qe?(Ve.setSessionId(Ye),Ve.setSessionCreatedTimestamp(qe),this.isOutgoingConnection.delete(Z),this.connections.push(Ve),this.isConnectionInitiator.add(Ve),this.setupHandlers(Ve),Ye):(U.a.warn("No session ID or no session created timestamp on send signal response."),void this.isOutgoingConnection.delete(Z))})}connectLan(Z){var L,q;return De(this,void 0,void 0,function*(){const ie=new P(Z),se=new _t(yield this.createRTCPeerConnection([]),[],{baseConfig:{isOffer:!0,isLan:!0,receive:(ce,le)=>this.config.receive(ce,le),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(ce,le)=>{var me,Ve;return(Ve=(me=this.config).onStreamsInfoUpdate)===null||Ve===void 0?void 0:Ve.call(me,ce,le)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localUserId:(q=(L=this.localPeer)===null||L===void 0?void 0:L.getUserId())===null||q===void 0?void 0:q.getValue(),localPeerId:"lan_client",remotePeerId:Z}},ce=>this.onCustomDataChannel(Z,ce)),ue=yield se.getLanOffer();if(!ue)return U.a.warn("Could not generate LAN offer"),!1;const fe=yield ie.postLanRtcOffer({offer:JSON.stringify(ue)}),Ue=new RTCSessionDescription(JSON.parse(fe.answer));return yield se.handleLanAnswer(Ue),this.localConnections.push(se),this.isConnectionInitiator.add(se),Object(D.a)()})}getConnections(){return[...this.connections,...this.localConnections]}createCustomDataChannel(Z,L,q,ie,se){const ue=this.getActiveConnection(Z);if(ue&&this.isConnectionInitiator.has(ue)){const Ue=ue.peerConnection.createDataChannel("custom."+L,q);return ie&&(Ue.binaryType="arraybuffer"),se(Z,Ue),()=>{}}const fe=(Ue,ce)=>{Z===Ue&&ce.label==="custom."+L&&se(Z,ce)};return this.peerDataChannelListeners.push(fe),()=>{this.peerDataChannelListeners=this.peerDataChannelListeners.filter(Ue=>Ue!==fe)}}onCustomDataChannel(Z,L){this.peerDataChannelListeners.forEach(q=>q(Z,L))}getConnectionStatus(Z){if(this.isOutgoingConnection.has(Z))return"connecting";const L=this.getActiveConnection(Z);return L?L.isReady()?"connected":"connecting":"disconnected"}getConnectionStatsInfo(Z){return De(this,void 0,void 0,function*(){const L=this.getActiveConnection(Z);if(L)return yield L.getConnectionStatsInfo()})}disconnect(Z){return De(this,void 0,void 0,function*(){const L=this.getActiveConnection(Z);L&&(yield L.close(),this.connections=this.connections.filter(q=>q!==L),this.localConnections=this.localConnections.filter(q=>q!==L))})}getPeers(){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:Z}=this.config,L=yield(()=>De(this,void 0,void 0,function*(){try{return yield Y.withDeadline(Z.getPeers(new G.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(se){U.a.warn("Error when getting peers",{error:se})}}))();if(!L)return[];const q=L.getPeersList();if(!q)return[];const ie=se=>{var ue,fe;return(fe=(ue=se.getPeerCreatedTimestamp())===null||ue===void 0?void 0:ue.getValue())!==null&&fe!==void 0?fe:0};return q.sort((se,ue)=>ie(ue)-ie(se)).map(se=>pt(se))})}getSessions(){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getPeers method cannot be used in local-only mode.");const{signalingClient:Z}=this.config,L=yield(()=>De(this,void 0,void 0,function*(){try{return yield Y.withDeadline(Z.getPeers(new G.GetPeersRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(se){U.a.warn("Error when getting peers",{error:se})}}))();if(!L)return{};const q=L.getPeersList(),ie={};for(const se of q)ie[se.getPeerId()]=se.getSessionIdsList();return ie})}getPing(Z){const L=this.getActiveConnection(Z);if(L)return L.getPing();U.a.warn("Attempted to get ping time from inactive peer.")}getPingInfo(Z){const L=this.getActiveConnection(Z);if(L)return L.getPingInfo();U.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(Z){const L=this.getActiveConnection(Z);if(L)return L.getLastMessageTimestamp();U.a.warn("Attempted to get last message time from inactive peer.")}getSessionMetricsMessageCounts(Z){const L=this.getActiveConnection(Z);if(L)return L.getSessionMetricsMessageCounts();U.a.warn("Attempted to get session metrics counts from inactive peer.")}isReady(){if(this.config.lanOnlyMode)return!0;const{localPeer:Z,receiveSignalStream:L,iceServers:q}=this;return!!(Z&&L&&q)}shutdown(){return De(this,void 0,void 0,function*(){yield this.refreshInterval.stop(),this.receiveSignalStream&&this.receiveSignalStream.cancel();const Z=this.connections;this.connections=[],yield this.closeConnections(Z);const L=this.localConnections;this.localConnections=[],yield this.closeConnections(L),this.isOutgoingConnection.clear(),this.peerDataChannelListeners=[];const{localPeer:q}=this;if(!q||this.config.lanOnlyMode)return;const{signalingClient:ie}=this.config;yield(()=>De(this,void 0,void 0,function*(){try{const se=new G.DeletePeerRequest;se.setPeerId(q.getPeerId()),yield Y.withDeadline(ie.deletePeer(se,yield this.getMetadata()),this.grpcCallDeadline)}catch(se){return void U.a.warn("Error deleting local peer",{error:se})}}))()})}createPeer(){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createPeer method cannot be used in local-only mode.");const{signalingClient:Z}=this.config,L=yield(()=>De(this,void 0,void 0,function*(){try{return yield Y.withDeadline(Z.createPeer(new G.CreatePeerRequest,yield this.getMetadata()),this.grpcCallDeadline)}catch(ie){const se=ie;U.a.debug("createPeer failed",{error:se});const ue=Zt(se);throw new Error("Was not able to create peer: "+ue)}}))(),q=L==null?void 0:L.getPeer();if(!q)throw new Error("Response did not provide peer.");return this.localPeer=q})}createReceiveSignalStream(){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("createReceiveSignalStream method cannot be used in local-only mode.");const{signalingClient:Z}=this.config,{localPeer:L,iceServers:q}=this;if(!L||!q)return;const{receiveSignalStream:ie}=this;ie&&ie.cancel();const se=new G.ReceiveSignalStreamRequest;se.setPeerId(L.getPeerId());const ue=yield(()=>De(this,void 0,void 0,function*(){try{return Z.receiveSignalStream(se,yield this.getMetadata({hasDeadline:!1}))}catch(fe){U.a.debug("createReceiveSignalStream failed",{error:fe});const Ue=Zt(fe);throw new Error("Unable to create receive signal stream: "+Ue)}}))();if(!ue)throw new Error("Response did not provide stream.");return ue.on("data",fe=>De(this,void 0,void 0,function*(){var Ue,ce,le,me;const Ve=fe.getSignal(),Ce=(Ue=Ve==null?void 0:Ve.getSessionId())===null||Ue===void 0?void 0:Ue.getValue(),xe=Ve==null?void 0:Ve.getSenderId(),He=Ve==null?void 0:Ve.getReceiverId(),Ye=(ce=Ve==null?void 0:Ve.getSessionCreatedTimestamp())===null||ce===void 0?void 0:ce.getValue();if(!(Ve&&Ce&&xe&&He&&Ye))return void U.a.warn("Received signal with missing information.");const qe=this.getActiveConnection(xe);if(qe)if(qe.getSessionId()!==Ce){if(U.a.debug("Received signal: different session for a peer we're already connected to."),(qe.getSessionCreatedTimestamp()||0)>Ye)return;const Pe=new _t(yield this.createRTCPeerConnection(q),q,{baseConfig:{isOffer:!1,isLan:!1,receive:(Me,Le)=>this.config.receive(Me,Le),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Me,Le)=>{var Ge,Ke;return(Ke=(Ge=this.config).onStreamsInfoUpdate)===null||Ke===void 0?void 0:Ke.call(Ge,Me,Le)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:L.getPeerId(),localUserId:(me=L.getUserId())===null||me===void 0?void 0:me.getValue(),remotePeerId:xe},remoteConfig:{sessionId:Ce,sessionCreatedTimestamp:Ye}},Me=>this.onCustomDataChannel(xe,Me));yield Pe.handleSignal(Ve),this.connections.push(Pe)}else U.a.debug("Received signal: for an existing connection."),yield qe.handleSignal(Ve);else{U.a.debug("Received signal: new connection.");const Pe=new _t(yield this.createRTCPeerConnection(q),q,{baseConfig:{isOffer:!1,isLan:!1,receive:(Me,Le)=>this.config.receive(Me,Le),onStreamsInfoUpdate:this.config.onStreamsInfoUpdate?(Me,Le)=>{var Ge,Ke;return(Ke=(Ge=this.config).onStreamsInfoUpdate)===null||Ke===void 0?void 0:Ke.call(Ge,Me,Le)}:void 0,track:this.config.lanOnlyMode?void 0:this.config.track,localPeerId:L.getPeerId(),localUserId:(le=L.getUserId())===null||le===void 0?void 0:le.getValue(),remotePeerId:xe},remoteConfig:{sessionId:Ce,sessionCreatedTimestamp:Ye}},Me=>this.onCustomDataChannel(xe,Me));yield Pe.handleSignal(Ve),this.connections.push(Pe)}})),ue.on("end",()=>{ue.cancel(),this.receiveSignalStream=void 0}),ue.on("error",fe=>{switch(fe.code){case v.StatusCode.CANCELLED:case v.StatusCode.UNAVAILABLE:case v.StatusCode.UNKNOWN:U.a.debug("Receive signal stream error",{error:fe});break;case v.StatusCode.UNAUTHENTICATED:U.a.warn("Receive signal stream error",{error:fe});break;default:U.a.error("Receive signal stream error",{error:fe})}ue.cancel(),this.receiveSignalStream=void 0}),this.receiveSignalStream=ue})}createRTCPeerConnection(Z){var L;return De(this,void 0,void 0,function*(){const q=(L=this.config.alternateRTCPeerConnection)!==null&&L!==void 0?L:window.RTCPeerConnection;if(!q)throw function(){if(typeof navigator=="undefined")throw new Error("not a browser");const{userAgent:ie}=navigator;return ie.includes("Firefox/")?"Firefox":ie.includes("Edg/")?"Edge":ie.includes("Chrome/")?"Chrome":ie.includes("Safari/")?"Safari":ie.includes("MSIE/")||ie.includes("Trident/")?"IE":"Other"}()!=="Chrome"?new Error("WebRTC is not enabled. Please try again with the latest version of Google Chrome."):new Error("WebRTC is not enabled. Please ensure WebRTC is not disabled by ad blocking software.");this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Vt();try{return new q({iceServers:Z})}catch(ie){throw U.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),ie}})}closeConnections(Z){return De(this,void 0,void 0,function*(){const L=yield $(Z.map(q=>De(this,void 0,void 0,function*(){yield q.close()})));for(const q of L)U.a.warn("Request to close session failed",{error:q})})}getActiveConnection(Z){return this.getConnections().find(L=>L.getRemotePeerId()===Z&&L.isActive())}update(){var Z;return De(this,void 0,void 0,function*(){if(this.localConnections=this.localConnections.filter(me=>me.isActive()),this.config.lanOnlyMode)return;const{signalingClient:L}=this.config;if(!this.localPeer||!this.receiveSignalStream||!this.iceServers){const me=[];return this.localPeer||me.push(this.createPeer()),this.iceServers||me.push(this.updateIceServers()),yield Promise.all(me),void(this.receiveSignalStream||(yield this.createReceiveSignalStream()))}const[q,ie]=(se=this.connections,ue=me=>me.isActive(),se.reduce((me,Ve,Ce,xe)=>{const[He,Ye]=me;return(ue(Ve,Ce,xe)?He:Ye).push(Ve),me},[[],[]]));var se,ue;yield this.closeConnections(ie),this.connections=q,this.gatherConnectionStats().catch(me=>{U.a.warn("Error calling gatherConnectionStats",{error:me})}),this.statsLoopsExecuted++;const{localPeer:fe}=this,Ue=this.connections.filter(me=>me.getSessionId).map(me=>O(me.getSessionId()));fe.setSessionIdsList(Ue);const ce=new G.RefreshPeerRequest;ce.setPeer(fe);try{yield Y.withDeadline(L.refreshPeer(ce,yield this.getMetadata()),this.grpcCallDeadline)}catch(me){me instanceof v.RpcError&&me.code===v.StatusCode.NOT_FOUND?(U.a.warn("Peer expired, creating new peer",{peerId:fe.getPeerId()}),yield this.reset()):U.a.warn("Error calling RefreshPeer",{error:me})}const le=yield this.getPeers();for(const me of this.connections)me.setRemoteDeviceId((Z=le.find(Ve=>Ve.id===me.getRemotePeerId()))===null||Z===void 0?void 0:Z.deviceId)})}gatherConnectionStats(){return De(this,void 0,void 0,function*(){if(this.statsLoopsExecuted%10!=0||this.connections.length!==1)return;const Z=yield this.connections[0].getConnectionStatsInfo(),L=Z?Tt(Z):void 0;L?x.setTag("rtc-connection-type",L):x.setTag("rtc-connection-type","unknown")})}reset(){return De(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.isOutgoingConnection.clear(),yield this.createPeer(),yield this.createReceiveSignalStream()})}updateIceServers(){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)return;const{iceServersLastUpdate:Z,iceServersTtl:L}=this,q=new Date().getTime();if(!Z||q-Z>L)try{const ie=(yield Y.withDeadline(this.config.signalingClient.getIceServers(new G.GetIceServersRequest,yield this.getMetadata()),this.grpcCallDeadline)).getIceServers();this.iceServers=JSON.parse(ie),this.iceServersLastUpdate=q}catch(ie){U.a.warn("Error in updateIceServers",{error:ie})}})}setupHandlers(Z){const{peerConnection:L}=Z,q=Z.getSessionCreatedTimestamp();L.onconnectionstatechange=()=>De(this,void 0,void 0,function*(){const ie=L.connectionState;if(!q)return;const se=Z.getRemoteDeviceId();switch(ie){case"connected":x.aggregate("rtc-connect-time",new Date().getTime()-q,Object.assign({},se?{deviceId:se}:{}));break;case"failed":x.increment("rtc-connect-failed",Object.assign({},se?{deviceId:se}:{}))}})}getMetadata(Z={}){return De(this,void 0,void 0,function*(){if(this.config.lanOnlyMode)throw new Error("getMetadata method cannot be called in local-only mode");const{getToken:L}=this.config,{grpcCallDeadline:q}=this,{hasDeadline:ie=!0}=Z,se=ie?{deadline:(Date.now()+q).toString(10)}:null;try{const ue=yield L();return Object.assign({authorization:ue},se)}catch(ue){throw U.a.error("getToken() failed",{error:ue}),new Error("Cannot get authorization token")}})}}var ot=n(12),Qt=n(11),Pt=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class Ct{constructor(Z,L){this.sentMessagesCounts=new Map,this.receivedMessagesCounts=new Map,this.sessionId=Z,this.connection=L}incrementMessageSent(Z){const L=Oe(Z.header.stream);this.sentMessagesCounts.set(L,(this.sentMessagesCounts.get(L)||0)+1)}incrementMessageReceived(Z){const L=Oe(Z.header.stream);this.receivedMessagesCounts.set(L,(this.receivedMessagesCounts.get(L)||0)+1)}uploadMetrics(){return Pt(this,void 0,void 0,function*(){const{sessionId:Z}=this,L=yield this.connection.peerConnection.getStats(),q={};L.forEach(se=>q[se.id]=se),U.a.debug("rtc-stats",Object.assign(Object.assign({},q),{sessionId:Z}));const ie=[...new Set(Array.from(this.sentMessagesCounts.keys()).concat(Array.from(this.receivedMessagesCounts.keys())))].reduce((se,ue)=>{const fe=this.sentMessagesCounts.get(ue),Ue=this.receivedMessagesCounts.get(ue);return Object.assign(Object.assign({},se),{[ue+"-sent"]:fe,[ue+"-received"]:Ue})},{sessionId:Z});U.a.debug("rtc-message-report",ie)})}}function Rt(Re,Z){return Oe(Re)===Oe(Z)}var it=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class kt{constructor(Z,L){this.peerConnection=Z,this.config=L,this.connectTimeoutMs=10*u.a.second,this.gatherIceTimeoutMs=5*u.a.second,this.pingUpdateTimeoutMs=2*u.a.second,this.streamLatestTimestamp=new Map,this.closeCalled=!1,this.connectCalled=!1,this.sentOffer=!1,this.receivedIceCandidate=!1;const{isOffer:q}=L;q?this.initializeChannels(Z):Z.ondatachannel=ie=>{switch(ie.channel.label){case"stream.latest-ttl":this.latestTtlStreamChannel=ie.channel;break;case"stream.reliable":this.reliableStreamChannel=ie.channel;break;case"stream.latest-reliable":this.latestReliableStreamChannel=ie.channel;break;case"stream.latest-try-once":this.latestTryOnceStreamChannel=ie.channel}this.setupChannel(ie.channel)},this.sessionMetrics=new Ct(this.getSessionId(),this)}connect(){return it(this,void 0,void 0,function*(){if(this.connectCalled)return;this.connectCalled=!0,this.pingUpdateTimeout=setInterval(()=>{const{reliableStreamChannel:ie}=this;ie&&this.sendSystemMessage(ie,{type:"ping"})},this.pingUpdateTimeoutMs),this.connectTimeout=setTimeout(()=>it(this,void 0,void 0,function*(){this.isReady()||(U.a.warn("RTC connect timed out, closing connection"),yield this.close())}),this.connectTimeoutMs);const{peerConnection:Z,config:{isOffer:L,sessionId:q}}=this;if(L){const ie=yield Z.createOffer();yield Z.setLocalDescription(ie)}L&&(this.gatherIceTimeout=setTimeout(()=>it(this,void 0,void 0,function*(){this.sentOffer||(U.a.warn("ICE gathering timed out"),this.receivedIceCandidate?(U.a.warn("Attempting to connect with partial ICE candidate pool"),yield this.sendOffer()):yield this.close())}),this.gatherIceTimeoutMs),Z.onicecandidate=ie=>it(this,void 0,void 0,function*(){ie.candidate?this.receivedIceCandidate=!0:yield this.sendOffer()}),Z.onicegatheringstatechange=()=>it(this,void 0,void 0,function*(){Z.iceGatheringState==="complete"&&(yield this.sendOffer())}),Z.onnegotiationneeded=()=>{U.a.debug("Negotiation needed",{sessionId:q})})})}handleSignal(Z){return it(this,void 0,void 0,function*(){const{peerConnection:L,config:{sessionId:q,sendSignal:ie}}=this,{description:se}=JSON.parse(Z.payload);if(U.a.debug("Handling signal",{sessionId:q,description:JSON.stringify(se)}),se)if(L.signalingState!=="stable"||L.connectionState!=="connected")if(L.remoteDescription)U.a.warn("Received SDP signal during negotiation when remote description is already set: "+JSON.stringify(Z));else if(se.type==="offer"){yield L.setRemoteDescription(se);const ue=yield L.createAnswer();yield L.setLocalDescription(ue),yield ie({payload:JSON.stringify({description:ue})})}else se.type==="answer"&&(yield L.setRemoteDescription(se));else U.a.warn("Received SDP signal when signaling is stable and connected: "+JSON.stringify(Z));else U.a.warn("Received non-SDP signal: "+JSON.stringify(Z))})}send(Z,L){const q=this.getChannelFromLabel(L.channelLabel);q?this.sendOnChannel(q,Z):U.a.warn("Send called with unexpected channel label",{channelLabel:L.channelLabel})}controlRemoteStream(Z){this.sendSystemMessage(O(this.reliableStreamChannel),{type:"stream-control",streamControl:Z})}isActive(){return new Set(["new","connecting","connected"]).has(this.peerConnection.connectionState)}isReady(){const{peerConnection:Z,latestTtlStreamChannel:L,reliableStreamChannel:q,latestTryOnceStreamChannel:ie}=this;return!!(q&&L&&ie)&&Z.connectionState==="connected"&&q.readyState==="open"&&L.readyState==="open"&&ie.readyState==="open"}isClosed(){const{peerConnection:Z,reliableStreamChannel:L,latestTryOnceStreamChannel:q,latestTtlStreamChannel:ie}=this;return!(Z.connectionState!=="closed"||L!==void 0&&L.readyState!=="closed"||q!==void 0&&q.readyState!=="closed"||ie!==void 0&&ie.readyState!=="closed")}needsClosing(){const{peerConnection:Z,latestTtlStreamChannel:L,reliableStreamChannel:q,latestTryOnceStreamChannel:ie}=this;if(this.isClosed())return!1;const se=new Set(["closing","closed"]),ue=fe=>fe&&se.has(fe.readyState);return dt(Z)||ue(L)||ue(q)||ue(ie)}close(){return it(this,void 0,void 0,function*(){this.closeCalled||(this.closeCalled=!0,yield this.sessionMetrics.uploadMetrics(),this.pingUpdateTimeout&&clearInterval(this.pingUpdateTimeout),this.connectTimeout&&clearTimeout(this.connectTimeout),this.gatherIceTimeout&&clearTimeout(this.gatherIceTimeout),this.peerConnection.close())})}getPing(){return this.pingTimeMs}getLastMessageTimestamp(){return this.lastMessageTimestamp}getSessionId(){return this.config.sessionId}getRemotePeer(){return this.config.remotePeer}initializeChannels(Z){this.latestTtlStreamChannel=Z.createDataChannel("stream.latest-ttl",oe),this.reliableStreamChannel=Z.createDataChannel("stream.reliable",ge),this.latestReliableStreamChannel=Z.createDataChannel("stream.latest-reliable",Se),this.latestTryOnceStreamChannel=Z.createDataChannel("stream.latest-try-once",ve),this.setupChannel(this.latestTtlStreamChannel),this.setupChannel(this.reliableStreamChannel),this.setupChannel(this.latestReliableStreamChannel),this.setupChannel(this.latestTryOnceStreamChannel)}sendOffer(){return it(this,void 0,void 0,function*(){if(this.sentOffer||(this.sentOffer=!0,dt(this.peerConnection)))return;const{peerConnection:Z,config:{sendSignal:L}}=this,q=yield Z.createOffer();yield Z.setLocalDescription(q);const ie={payload:JSON.stringify({description:q})};yield L(ie)})}getChannelFromLabel(Z){switch(Z){case"stream.latest-ttl":return this.latestTtlStreamChannel;case"stream.reliable":return this.reliableStreamChannel;case"stream.latest-reliable":return this.latestReliableStreamChannel;case"stream.latest-try-once":return this.latestTryOnceStreamChannel}}sendOnChannel(Z,L){let q;try{q=Object(te.encode)(JSON.stringify(L))}catch(ie){return void U.a.warn("Failed to encode RTC message",{error:ie})}try{Z.send(q),this.sessionMetrics.incrementMessageSent(L)}catch(ie){U.a.warn("Failed to send message to channel",{error:ie,channel:Z.label})}}channelNotRecognized(Z){return Z!==this.latestTtlStreamChannel&&Z!==this.latestReliableStreamChannel&&Z!==this.latestTryOnceStreamChannel&&Z!==this.reliableStreamChannel}setupChannel(Z){Z.onmessage=L=>{if(this.channelNotRecognized(Z))return void U.a.warn("Received message on unrecognized data channel.");let q;try{q=JSON.parse(Object(te.decode)(L.data))}catch(ie){return void U.a.warn("Received unparseable RTC message",{error:ie,channel:Z.label})}if(this.lastMessageTimestamp=new Date().getTime(),q=vt(q),this.sessionMetrics.incrementMessageReceived(q),!this.handleSystemMessage(Z,q)){if(!this.hasCapabilities(q))return void U.a.warn("Received RTC message that was not within the capability scope of the connection.");(Z===this.latestTryOnceStreamChannel||Z===this.latestTtlStreamChannel||Z===this.latestReliableStreamChannel)&&!this.isLatestMessage(q)||this.config.receive(this.config.remotePeer.id,q)}},Z.onerror=L=>{U.a.warn("Channel error: "+L.error,{error:L.error,sessionId:this.getSessionId(),channelLabel:Z.label})},Z.onopen=()=>{U.a.debug("Channel opened",{sessionId:this.getSessionId(),channelLabel:Z.label})},Z.onclose=()=>{const L={bufferedAmount:Z.bufferedAmount,sessionId:this.getSessionId(),channelLabel:Z.label};this.closeCalled===!1?U.a.debug("Unexpected channel closed",L):U.a.debug("Channel closed",L)}}handleSystemMessage(Z,L){switch(L.header.stream.streamType){case"ping":return this.sendSystemMessage(Z,{type:"pong",timestamp:O(L.payload.ping)}),!0;case"pong":{const q=new Date().getTime()-O(L.payload.pong);return this.pingTimeMs=q,x.aggregate("rtc-ping-time",q),!0}case"stream-control":return!0;default:return!1}}sendSystemMessage(Z,L){if(Z.readyState!=="open")return;const q={entityId:O(this.config.localPeer.deviceId||this.config.localPeer.userId),streamName:"$."+L.type,streamType:L.type};let ie;switch(L.type){case"ping":ie={ping:new Date().getTime()};break;case"pong":ie={pong:L.timestamp};break;case"stream-control":ie={streamControl:L.streamControl}}this.sendOnChannel(Z,Wt(q,ie))}hasCapabilities(Z){var L,q;const{localPeer:ie,remotePeer:se}=this.config,ue=(L=ie.capabilitySet.streaming)===null||L===void 0?void 0:L.streams,fe=ue&&ue.some(le=>le.receive&&Rt(le.stream,Z.header.stream)),Ue=(q=se.capabilitySet.streaming)===null||q===void 0?void 0:q.streams,ce=Ue&&Ue.some(le=>le.send&&Rt(le.stream,Z.header.stream));return fe||ce}isLatestMessage(Z){const L=Oe(Z.header.stream),q=(this.streamLatestTimestamp.get(L)||0)<=Z.header.created;return q&&this.streamLatestTimestamp.set(L,Z.header.created),q}}var Ae=function(Re,Z,L,q){return new(L||(L=Promise))(function(ie,se){function ue(ce){try{Ue(q.next(ce))}catch(le){se(le)}}function fe(ce){try{Ue(q.throw(ce))}catch(le){se(le)}}function Ue(ce){var le;ce.done?ie(ce.value):(le=ce.value,le instanceof L?le:new L(function(me){me(le)})).then(ue,fe)}Ue((q=q.apply(Re,Z||[])).next())})};class Mt{constructor(Z){this.config=Z,this.connections=[],this.connectingSessions=new Map,this.rtcInstancesConstructed=0,this.updateInterval=T({func:()=>Ae(this,void 0,void 0,function*(){try{yield this.update()}catch(L){U.a.warn("RTC update failed",{error:L})}}),delay:250*u.a.millisecond,immediate:!0}),this.localPeer=this.createPeer()}send(Z,L,q){const ie=this.getActiveConnection(Z);ie?ie.isReady()?ie.send(L,q):U.a.warn("Attempted to send with an active connection to that peer which was not yet ready."):U.a.warn("Attempted to send with no active connection to that peer.")}controlRemoteStream(Z,L){const q=this.getActiveConnection(Z);q?q.isReady()?q.controlRemoteStream(L):U.a.warn("Attempted to control remote stream with an active connection to that peer which was not yet ready."):U.a.warn("Attempted to control remote stream with no active connection to that peer.")}connect(Z){return Ae(this,void 0,void 0,function*(){const L=yield this.getLocalPeer();if(this.getActiveConnection(Z))return void U.a.warn("Attempted to connect to peer with an already active connection.");let q;try{q=yield this.config.signalingClient.createSession(yield this.config.getToken(),{offerPeerId:L.id,answerPeerId:Z})}catch(ie){Object(ot.a)(ie,Qt.a,se=>se.statusCode===404),U.a.warn("Attempted to connect to peer that does not exist.")}if(q)for(this.connectingSessions.set(q.id,new Date().getTime()),yield this.connectToSession(q);;)switch(yield Object(c.a)(.1),this.getConnectionStatus(Z)){case"connecting":continue;case"connected":return q.id;case"disconnected":return}})}getConnectionStatus(Z){const L=this.getActiveConnection(Z);return L?L.isReady()?"connected":"connecting":"disconnected"}getIceMode(Z){const L=this.getActiveConnection(Z);if(L)return L.iceMode}disconnect(Z){return Ae(this,void 0,void 0,function*(){const L=this.getActiveConnection(Z);L&&(yield this.closeConnection(L))})}getLocalPeer(){return Ae(this,void 0,void 0,function*(){return yield this.localPeer})}getPeers(){return Ae(this,void 0,void 0,function*(){return yield this.config.signalingClient.getPeers(yield this.config.getToken())})}getPing(Z){const L=this.getActiveConnection(Z);if(L)return L.getPing();U.a.warn("Attempted to get ping time from inactive peer.")}getLastMessageTimestamp(Z){const L=this.getActiveConnection(Z);if(L)return L.getLastMessageTimestamp();U.a.warn("Attempted to get ping time from inactive peer.")}shutdown(){return Ae(this,void 0,void 0,function*(){yield this.updateInterval.stop();const Z=this.connections;this.connections=[],yield this.closeConnections(Z)})}closeConnection(Z){return Ae(this,void 0,void 0,function*(){this.connectingSessions.delete(Z.getSessionId()),yield Z.close();try{yield this.config.signalingClient.deleteSession(yield this.config.getToken(),Z.getSessionId())}catch(L){Object(ot.a)(L,Qt.a,q=>q.statusCode===404)}})}getSessions(){return Ae(this,void 0,void 0,function*(){const Z=yield this.getLocalPeer();return(yield this.config.signalingClient.getSessions(yield this.config.getToken())).filter(L=>L.offer.peer.id===Z.id||L.answer.peer.id===Z.id)})}createPeer(){return Ae(this,void 0,void 0,function*(){return yield this.config.signalingClient.createPeer(yield this.config.getToken(),{capabilitySet:this.config.capabilitySet||{}})})}createRTCPeerConnection(Z={}){return Ae(this,void 0,void 0,function*(){const L=this.config.alternateRTCPeerConnection||RTCPeerConnection;this.rtcInstancesConstructed++,this.rtcInstancesConstructed%20||Vt();try{return new L(Object.assign({iceServers:yield this.config.signalingClient.getIceServers(yield this.config.getToken())},Z))}catch(q){throw U.a.debug(`Failed to create RTCPeerConnection: ${this.rtcInstancesConstructed} total allocated`),q}})}closeConnections(Z){return Ae(this,void 0,void 0,function*(){const L=yield $(Z.map(q=>Ae(this,void 0,void 0,function*(){yield this.closeConnection(q)})));for(const q of L)U.a.warn("Request to close session failed",{error:q})})}reset(){return Ae(this,void 0,void 0,function*(){yield this.closeConnections(this.connections),this.connections=[],this.connectingSessions=new Map,this.localPeer=this.createPeer(),yield this.localPeer})}getActiveConnection(Z){return this.connections.find(L=>L.getRemotePeer().id===Z&&L.isActive())}update(){return Ae(this,void 0,void 0,function*(){const Z=yield this.getLocalPeer();try{yield this.config.signalingClient.refreshPeer(yield this.config.getToken(),Z.id)}catch(L){Object(ot.a)(L,Qt.a,q=>q.statusCode===404),U.a.warn("Peer expired, creating new peer",{peerId:Z.id}),yield this.reset()}yield this.handleSessions(yield this.getSessions())})}handleSessions(Z){return Ae(this,void 0,void 0,function*(){yield this.syncConnectionsAndSessions(Z);const L=Z.map(q=>({session:q,connection:this.connections.find(ie=>ie.getSessionId()===q.id)}));yield Promise.all(L.map(({session:q,connection:ie})=>Ae(this,void 0,void 0,function*(){return yield this.maintainConnection(q,ie)})))})}syncConnectionsAndSessions(Z){return Ae(this,void 0,void 0,function*(){const L=new Set(Z.map(se=>se.id)),q=se=>L.has(se.getSessionId())||this.connectingSessions.has(se.getSessionId());this.connections=this.connections.filter(se=>q(se));const ie=this.connections.filter(se=>!q(se)||se.needsClosing());yield Promise.all(ie.map(se=>Ae(this,void 0,void 0,function*(){yield this.closeConnection(se)})))})}maintainConnection(Z,L){return Ae(this,void 0,void 0,function*(){const q=yield this.getLocalPeer(),ie=Z.offer.peer.id===q.id;if(L){if(L.isReady())try{yield this.config.signalingClient.refreshSession(yield this.config.getToken(),Z.id)}catch(se){Object(ot.a)(se,Qt.a,ue=>ue.statusCode===404),U.a.debug("Refresh session not found",{sessionId:Z.id})}else if(L.isActive())try{yield this.consumeSignals(L)}catch(se){U.a.warn("Failed to ingest signals, closing connection",{error:se}),yield this.closeConnection(L)}}else{if(ie)return;yield this.connectToSession(Z)}})}connectToSession(Z){return Ae(this,void 0,void 0,function*(){const L=yield this.getLocalPeer(),q=Z.offer.peer.id===L.id,ie=yield this.createRTCPeerConnection(),se=new kt(ie,{localPeer:q?Z.offer.peer:Z.answer.peer,remotePeer:q?Z.answer.peer:Z.offer.peer,sessionId:Z.id,isOffer:q,sendSignal:ue=>this.sendSignal(Z.id,ue),receive:(ue,fe)=>this.config.receive(ue,fe)});if(this.connections.find(ue=>ue.getSessionId()===Z.id))return U.a.warn("connectToSession called on a session that already has a connection.",{sessionId:Z.id}),void(yield se.close());this.setupHandlers(se),this.connections.push(se);try{yield se.connect()}catch(ue){U.a.warn("Failed to handle negotiation, closing connection",{error:ue}),yield this.closeConnection(se)}})}setupHandlers(Z){const{peerConnection:L}=Z,q=Z.getSessionId();L.onconnectionstatechange=()=>Ae(this,void 0,void 0,function*(){const ie=this.connectingSessions.get(q);if(ie===void 0)return;const se=L.connectionState;switch(dt(L)&&this.connectingSessions.delete(q),se){case"connected":{this.connectingSessions.delete(q);const ue=new Date().getTime()-ie;x.aggregate("rtc-connect-time",ue);break}case"failed":x.increment("rtc-connect-failed"),yield this.closeConnection(Z)}})}consumeSignals(Z){return Ae(this,void 0,void 0,function*(){let L=[];try{L=yield this.config.signalingClient.takeSignals(yield this.config.getToken(),Z.getSessionId())}catch(q){Object(ot.a)(q,Qt.a,ie=>ie.statusCode===404)}for(const q of L)yield Z.handleSignal(q)})}sendSignal(Z,L){return Ae(this,void 0,void 0,function*(){try{yield this.config.signalingClient.addSignals(yield this.config.getToken(),Z,{signals:[L]})}catch(q){Object(ot.a)(q,Qt.a,ie=>ie.statusCode===404)}})}}},,function(e,t,n){n.r(t),n.d(t,"LogClient",function(){return l});var r=n(26),o=n(12),s=n(11),g=function(u,c,d,B){return new(d||(d=Promise))(function(Q,f){function p(M){try{E(B.next(M))}catch(W){f(W)}}function U(M){try{E(B.throw(M))}catch(W){f(W)}}function E(M){var W;M.done?Q(M.value):(W=M.value,W instanceof d?W:new d(function(y){y(W)})).then(p,U)}E((B=B.apply(u,c||[])).next())})};class l extends r.a{log(c){return g(this,void 0,void 0,function*(){const d=l.token;try{yield this.fetch("logs",{token:d,method:"POST",body:{logs:c},allowUnsafeRetries:!0})}catch(B){Object(o.a)(B,s.a,Q=>Q.statusCode===401&&d!==void 0),l.token===d&&delete l.token,yield this.log(c)}})}}},function(e,t,n){var r={randomUUID:typeof crypto!="undefined"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};let o;const s=new Uint8Array(16);function g(){if(!o&&(o=typeof crypto!="undefined"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!o))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return o(s)}const l=[];for(let c=0;c<256;++c)l.push((c+256).toString(16).slice(1));function u(c,d=0){return(l[c[d+0]]+l[c[d+1]]+l[c[d+2]]+l[c[d+3]]+"-"+l[c[d+4]]+l[c[d+5]]+"-"+l[c[d+6]]+l[c[d+7]]+"-"+l[c[d+8]]+l[c[d+9]]+"-"+l[c[d+10]]+l[c[d+11]]+l[c[d+12]]+l[c[d+13]]+l[c[d+14]]+l[c[d+15]]).toLowerCase()}t.a=function(c,d,B){if(r.randomUUID&&!d&&!c)return r.randomUUID();const Q=(c=c||{}).random||(c.rng||g)();if(Q[6]=15&Q[6]|64,Q[8]=63&Q[8]|128,d){B=B||0;for(let f=0;f<16;++f)d[B+f]=Q[f];return d}return u(Q)}}])})})(dist);var distExports=dist.exports;const SessionTypes={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},SessionTypeConstants={...SessionTypes,Unknown:SessionTypes.UNKNOWN,Teleop:SessionTypes.TELEOP,PortForward:SessionTypes.PORT_FORWARD,Observe:SessionTypes.OBSERVE,Headless:SessionTypes.HEADLESS,unknown:SessionTypes.UNKNOWN,teleop:SessionTypes.TELEOP,portForward:SessionTypes.PORT_FORWARD,observe:SessionTypes.OBSERVE,headless:SessionTypes.HEADLESS},singleton=Symbol("RtcClientPool.instance");class RtcClientPool{constructor(t){he(this,nt,null);he(this,"createClient");he(this,"ttlMs");he(this,"proxyHandler");he(this,"proxyReceivers",new Map);he(this,"teardownTimeout",null);he(this,"dispatch",(t,n)=>{this.proxyReceivers.forEach(r=>r==null?void 0:r(t,n))});const{createClient:n,ttlMs:r=0}=t;this.createClient=n,this.ttlMs=Math.max(r,0),this.proxyHandler={get:(o,s,g)=>{switch(s){case"shutdown":return()=>this.releaseInstance(g);default:return Reflect.get(o,s,g)}}}}get isActive(){return this[singleton]!==null}get size(){return this.proxyReceivers.size}get(t){const n=new Proxy(this.allocate(),this.proxyHandler);return this.proxyReceivers.set(n,t!=null?t:null),n}allocate(){if(this[singleton])return this.teardownTimeout&&(clearTimeout(this.teardownTimeout),this.teardownTimeout=null),this[singleton];const t=this.createClient(this.dispatch);return this[singleton]=t,t}async teardown(){const t=this[singleton];if(!t){console.warn("singleton has already been shutdown!");return}try{await t.shutdown()}finally{this[singleton]=null}}async releaseInstance(t){return this.proxyReceivers.delete(t)?this.proxyReceivers.size!==0?!1:(!this.teardownTimeout&&Number.isFinite(this.ttlMs)&&(this.ttlMs===0?await this.teardown():this.teardownTimeout=setTimeout(()=>{this.teardown().catch(n=>console.error("teardown failed",{err:n})).finally(()=>this.teardownTimeout=null)},this.ttlMs)),!0):(console.warn("this instance has already been released!"),!1)}}nt=singleton;function defined$1(e,t){if(e!==void 0)return e;throw new Error(t||"Value is undefined")}function notNull(e,t){if(e!==null)return e;throw new Error(t||"Value is null")}function definedAndNotNull(e,t){return notNull(defined$1(e,t),t)}const getToken=async()=>defined$1(Authentication.token,"Realtime when user isn't authorized"),EnumRtcClientPools={[SessionTypes.UNKNOWN]:new RtcClientPool({ttlMs:2500,createClient:e=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(exports.FORMANT_API_URL),getToken,sessionType:SessionTypes.UNKNOWN,receive:e})}),[SessionTypes.TELEOP]:new RtcClientPool({ttlMs:2500,createClient:e=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(exports.FORMANT_API_URL),getToken,sessionType:SessionTypes.TELEOP,receive:e})}),[SessionTypes.PORT_FORWARD]:new RtcClientPool({ttlMs:2500,createClient:e=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(exports.FORMANT_API_URL),getToken,sessionType:SessionTypes.PORT_FORWARD,receive:e})}),[SessionTypes.OBSERVE]:new RtcClientPool({ttlMs:2500,createClient:e=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(exports.FORMANT_API_URL),getToken,sessionType:SessionTypes.OBSERVE,receive:e})}),[SessionTypes.HEADLESS]:new RtcClientPool({ttlMs:2500,createClient:e=>new distExports.RtcClient({signalingClient:new distExports.SignalingPromiseClient(exports.FORMANT_API_URL),getToken,sessionType:SessionTypes.HEADLESS,receive:e})})},AppRtcClientPools={...EnumRtcClientPools,unknown:EnumRtcClientPools[SessionTypes.UNKNOWN],teleop:EnumRtcClientPools[SessionTypes.TELEOP],portForward:EnumRtcClientPools[SessionTypes.PORT_FORWARD],observe:EnumRtcClientPools[SessionTypes.OBSERVE],headless:EnumRtcClientPools[SessionTypes.HEADLESS]},defaultRtcClientPool=EnumRtcClientPools[SessionTypes.TELEOP],getRtcClientPool=e=>{const{sessionType:t}=e;return t?AppRtcClientPools[t]:defaultRtcClientPool};function delay(e){return new Promise(t=>setTimeout(t,e))}const isRtcPeer=e=>e!==void 0&&e.capabilities!==void 0&&e.capabilitySet!==void 0;var eventemitter3={exports:{}};(function(e){var t=Object.prototype.hasOwnProperty,n="~";function r(){}Object.create&&(r.prototype=Object.create(null),new r().__proto__||(n=!1));function o(u,c,d){this.fn=u,this.context=c,this.once=d||!1}function s(u,c,d,B,Q){if(typeof d!="function")throw new TypeError("The listener must be a function");var f=new o(d,B||u,Q),p=n?n+c:c;return u._events[p]?u._events[p].fn?u._events[p]=[u._events[p],f]:u._events[p].push(f):(u._events[p]=f,u._eventsCount++),u}function g(u,c){--u._eventsCount===0?u._events=new r:delete u._events[c]}function l(){this._events=new r,this._eventsCount=0}l.prototype.eventNames=function(){var c=[],d,B;if(this._eventsCount===0)return c;for(B in d=this._events)t.call(d,B)&&c.push(n?B.slice(1):B);return Object.getOwnPropertySymbols?c.concat(Object.getOwnPropertySymbols(d)):c},l.prototype.listeners=function(c){var d=n?n+c:c,B=this._events[d];if(!B)return[];if(B.fn)return[B.fn];for(var Q=0,f=B.length,p=new Array(f);Q<f;Q++)p[Q]=B[Q].fn;return p},l.prototype.listenerCount=function(c){var d=n?n+c:c,B=this._events[d];return B?B.fn?1:B.length:0},l.prototype.emit=function(c,d,B,Q,f,p){var U=n?n+c:c;if(!this._events[U])return!1;var E=this._events[U],M=arguments.length,W,y;if(E.fn){switch(E.once&&this.removeListener(c,E.fn,void 0,!0),M){case 1:return E.fn.call(E.context),!0;case 2:return E.fn.call(E.context,d),!0;case 3:return E.fn.call(E.context,d,B),!0;case 4:return E.fn.call(E.context,d,B,Q),!0;case 5:return E.fn.call(E.context,d,B,Q,f),!0;case 6:return E.fn.call(E.context,d,B,Q,f,p),!0}for(y=1,W=new Array(M-1);y<M;y++)W[y-1]=arguments[y];E.fn.apply(E.context,W)}else{var m=E.length,h;for(y=0;y<m;y++)switch(E[y].once&&this.removeListener(c,E[y].fn,void 0,!0),M){case 1:E[y].fn.call(E[y].context);break;case 2:E[y].fn.call(E[y].context,d);break;case 3:E[y].fn.call(E[y].context,d,B);break;case 4:E[y].fn.call(E[y].context,d,B,Q);break;default:if(!W)for(h=1,W=new Array(M-1);h<M;h++)W[h-1]=arguments[h];E[y].fn.apply(E[y].context,W)}}return!0},l.prototype.on=function(c,d,B){return s(this,c,d,B,!1)},l.prototype.once=function(c,d,B){return s(this,c,d,B,!0)},l.prototype.removeListener=function(c,d,B,Q){var f=n?n+c:c;if(!this._events[f])return this;if(!d)return g(this,f),this;var p=this._events[f];if(p.fn)p.fn===d&&(!Q||p.once)&&(!B||p.context===B)&&g(this,f);else{for(var U=0,E=[],M=p.length;U<M;U++)(p[U].fn!==d||Q&&!p[U].once||B&&p[U].context!==B)&&E.push(p[U]);E.length?this._events[f]=E.length===1?E[0]:E:g(this,f)}return this},l.prototype.removeAllListeners=function(c){var d;return c?(d=n?n+c:c,this._events[d]&&g(this,d)):(this._events=new r,this._eventsCount=0),this},l.prototype.off=l.prototype.removeListener,l.prototype.addListener=l.prototype.on,l.prefixed=n,l.EventEmitter=l,e.exports=l})(eventemitter3);var eventemitter3Exports=eventemitter3.exports;const EventEmitter=getDefaultExportFromCjs(eventemitter3Exports);class Manipulator{constructor(t,n){he(this,"currentListeners",[]);he(this,"onRealtimeMessage",(t,n)=>{n.payload.jointState&&this.currentListeners.forEach(r=>{n.payload.jointState&&r(n.payload.jointState)})});this.device=t,this.config=n}async synchronize(){this.device.addRealtimeListener(this.onRealtimeMessage),this.device.startListeningToRealtimeDataStream(this.config.currentJointStateStream)}async desynchronize(){this.device.removeRealtimeListener(this.onRealtimeMessage),this.device.stopListeningToRealtimeDataStream(this.config.currentJointStateStream)}async addCurrentJointStateListener(t){this.currentListeners.push(t)}}class RequestDataChannel{constructor(t,n,r){he(this,"channel");he(this,"requestIdToResponseMap",new Map);this.device=t,this.channel_name=n,this.timeout=r}addOpenListener(t){defined$1(this.channel,"channel not initalized").addOpenListener(t)}removeOpenListener(t){defined$1(this.channel,"channel not initalized").removeOpenListener(t)}addCloseListener(t){defined$1(this.channel,"channel not initalized").addCloseListener(t)}removeCloseListener(t){defined$1(this.channel,"channel not initalized").removeCloseListener(t)}addErrorListener(t){defined$1(this.channel,"channel not initalized").addErrorListener(t)}removeErrorListener(t){defined$1(this.channel,"channel not initalized").removeErrorListener(t)}}class BinaryRequestDataChannel extends RequestDataChannel{constructor(){super(...arguments);he(this,"RESPONSE_SUCCESS_BYTE",0);he(this,"decoder",new TextDecoder)}generateBinaryId(){const n=new Uint8Array(16);for(let r=0;r<n.length;r++)n[r]=Math.floor(Math.random()*256);return n}async initialize(){this.channel=await this.device.createCustomDataChannel(this.channel_name),this.channel.addBinaryListener(n=>{const o=n.slice(0,16).toString();if(o.length===0)throw new Error("Invalid response");const s=n.slice(16);if(s.length===0)throw new Error("Invalid response");this.requestIdToResponseMap.has(o)&&this.requestIdToResponseMap.set(o,s)})}async request(n){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:r,requestIdToResponseMap:o,timeout:s}=this;await r.waitTilReady();const g=this.generateBinaryId(),l=g.toString();o.set(l,!0),r.sendBinary(new Uint8Array([...g,...n]));const u=new Date().getTime();for(;new Date().getTime()<u+s;)if(await delay(50),o.has(l)){const c=o.get(l);if(c!==!0){o.delete(l);const d=c[0]===this.RESPONSE_SUCCESS_BYTE,B=c.slice(1);if(d)return B;throw console.error({name:"AdapterError",message:this.decoder.decode(B)}),new Error("Binary request datachannel adapter error")}}throw o.delete(l),console.error({name:"TimeoutError",message:`Request timed out after ${s/1e3} seconds`}),new Error("Binary request data channel request timed out")}}class TextRequestDataChannel extends RequestDataChannel{generateTextId(){return Math.random().toString(36).substring(2)+"-"+Math.random().toString(36).substring(2)}async initialize(){this.channel=await this.device.createCustomDataChannel(this.channel_name),this.channel.addListener(t=>{const n=JSON.parse(t),{id:r,data:o,error:s}=n;if(!r)throw new Error("Invalid response");if(!o&&!s)throw new Error("Invalid response");this.requestIdToResponseMap.has(r)&&this.requestIdToResponseMap.set(r,n)})}async request(t){if(this.channel||await this.initialize(),!this.channel)throw new Error("Failed to create channel");const{channel:n,requestIdToResponseMap:r,timeout:o}=this;await n.waitTilReady();const s=this.generateTextId();r.set(s,!0),n.send(JSON.stringify({id:s,data:t}));const g=new Date().getTime();for(;new Date().getTime()<g+o;)if(await delay(50),r.has(s)){const l=r.get(s);if(l!==!0){r.delete(s);const{data:u,error:c}=l;if(u)return u;if(c)throw console.error({name:"AdapterError",message:c}),new Error("Text request datachannel adapter error")}}throw r.delete(s),console.error({name:"TimeoutError",message:`Request timed out after ${o/1e3} seconds`}),new Error("Text request datachannel request timed out")}}class BaseDevice extends EventEmitter{constructor(){super(...arguments);he(this,"rtcClient");he(this,"remoteDevicePeerId",null);he(this,"realtimeListeners",[]);he(this,"connectionMonitorInterval");he(this,"handleMessage",(n,r)=>{this.realtimeListeners.forEach(o=>o(n,r))})}stopConnectionMonitoring(){clearInterval(this.connectionMonitorInterval),this.connectionMonitorInterval=void 0}assertNotCancelled(n){if(n)throw new Error("Cancelled by deadline")}getRealtimeStatus(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getConnectionStatus(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}getRealtimePing(){if(this.rtcClient&&this.remoteDevicePeerId)return this.rtcClient.getPing(this.remoteDevicePeerId);throw new Error("Realtime connection hasn't been started")}addRealtimeListener(n){this.realtimeListeners.push(n)}removeRealtimeListener(n){const r=this.realtimeListeners.indexOf(n);if(r===-1)throw new Error("Could not find realtime listener to remove");this.realtimeListeners.splice(r,1)}async getRealtimeManipulators(){var o;const n=await this.getConfiguration(),r=[];for(const s of(o=n.teleop.rosStreams)!=null?o:[])s.topicType=="sensor_msgs/JointState"&&r.push(new Manipulator(this,{currentJointStateStream:{name:s.topicName},plannedJointStateStream:s.plannedTopic?{name:s.plannedTopic}:void 0,planValidStream:s.planValidTopic?{name:s.planValidTopic}:void 0,endEffectorStream:s.endEffectorTopic?{name:s.endEffectorTopic}:void 0,endEffectorLinkName:s.endEffectorLinkName,baseReferenceFrame:s.baseReferenceFrame,localFrame:s.localFrame}));return r}async getRealtimeVideoStreams(){var o,s,g,l,u,c;const n=await this.getConfiguration(),r=[];for(const d of(s=(o=n.teleop)==null?void 0:o.hardwareStreams)!=null?s:[])d.rtcStreamType==="h264-video-frame"&&r.push({name:d.name});for(const d of(l=(g=n.teleop)==null?void 0:g.rosStreams)!=null?l:[])d.topicType=="formant/H264VideoFrame"&&r.push({name:d.topicName}),(d.topicType==="sensor_msgs/Image"||d.topicType==="sensor_msgs/CompressedImage")&&d.encodeVideo&&r.push({name:d.topicName});for(const d of(c=(u=n.teleop)==null?void 0:u.customStreams)!=null?c:[])d.rtcStreamType==="h264-video-frame"&&r.push({name:d.name});return r}createCustomRequestDataChannel(n,r=3e3){return new TextRequestDataChannel(this,n,r)}createCustomBinaryRequestDataChannel(n,r=3e3){return new BinaryRequestDataChannel(this,n,r)}async startListeningToRealtimeVideo(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeVideo(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n.name,enable:!1,pipeline:"rtc"})}async startListeningToRealtimeDataStream(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n.name,enable:!0,pipeline:"rtc"})}async stopListeningToRealtimeDataStream(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n.name,enable:!1,pipeline:"rtc"})}async enableRealtimeTelemetryPriorityIngestion(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n,enablePriorityUpload:!0,pipeline:"telemetry"})}async disableRealtimeTelemetryPriorityIngestion(n){const r=defined$1(this.rtcClient,"Realtime connection has not been started"),o=await this.getRemotePeer();r.controlRemoteStream(defined$1(o).id,{streamName:n,enablePriorityUpload:!1,pipeline:"telemetry"})}async changeStreamAudioType(n,r){const o=defined$1(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeer();o.controlRemoteStream(defined$1(s).id,{streamName:n,setAudioFormat:r})}async createCustomDataChannel(n,r){const o=defined$1(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeer(),g=await new Promise(l=>{o.createCustomDataChannel(defined$1(s).id,n,{ordered:!0,...r},!1,(u,c)=>{const d=new DataChannel(c);l(d)})});return await g.waitTilReady(),g}async sendRealtimeMessage(n,r={channelLabel:"stream.reliable"}){const o=defined$1(this.rtcClient,"Realtime connection has not been started"),s=await this.getRemotePeer();o.send(defined$1(s).id,n,r)}async getRealtimeAudioStreams(){var o,s,g,l,u,c;const n=await this.getConfiguration(),r=[];for(const d of(s=(o=n.teleop)==null?void 0:o.hardwareStreams)!=null?s:[])d.rtcStreamType==="audio-chunk"&&r.push({name:d.name});for(const d of(l=(g=n.teleop)==null?void 0:g.rosStreams)!=null?l:[])d.topicType=="audio_common_msgs/AudioData"&&r.push({name:d.topicName});for(const d of(c=(u=n.teleop)==null?void 0:u.customStreams)!=null?c:[])d.rtcStreamType==="audio-chunk"&&r.push({name:d.name});return r}}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const Z_FIXED$1=4,Z_BINARY=0,Z_TEXT=1,Z_UNKNOWN$1=2;function zero$1(e){let t=e.length;for(;--t>=0;)e[t]=0}const STORED_BLOCK=0,STATIC_TREES=1,DYN_TREES=2,MIN_MATCH$1=3,MAX_MATCH$1=258,LENGTH_CODES$1=29,LITERALS$1=256,L_CODES$1=LITERALS$1+1+LENGTH_CODES$1,D_CODES$1=30,BL_CODES$1=19,HEAP_SIZE$1=2*L_CODES$1+1,MAX_BITS$1=15,Buf_size=16,MAX_BL_BITS=7,END_BLOCK=256,REP_3_6=16,REPZ_3_10=17,REPZ_11_138=18,extra_lbits=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),extra_dbits=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),extra_blbits=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),bl_order=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DIST_CODE_LEN=512,static_ltree=new Array((L_CODES$1+2)*2);zero$1(static_ltree);const static_dtree=new Array(D_CODES$1*2);zero$1(static_dtree);const _dist_code=new Array(DIST_CODE_LEN);zero$1(_dist_code);const _length_code=new Array(MAX_MATCH$1-MIN_MATCH$1+1);zero$1(_length_code);const base_length=new Array(LENGTH_CODES$1);zero$1(base_length);const base_dist=new Array(D_CODES$1);zero$1(base_dist);function StaticTreeDesc(e,t,n,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}let static_l_desc,static_d_desc,static_bl_desc;function TreeDesc(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const d_code=e=>e<256?_dist_code[e]:_dist_code[256+(e>>>7)],put_short=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},send_bits=(e,t,n)=>{e.bi_valid>Buf_size-n?(e.bi_buf|=t<<e.bi_valid&65535,put_short(e,e.bi_buf),e.bi_buf=t>>Buf_size-e.bi_valid,e.bi_valid+=n-Buf_size):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},send_code=(e,t,n)=>{send_bits(e,n[t*2],n[t*2+1])},bi_reverse=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},bi_flush=e=>{e.bi_valid===16?(put_short(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},gen_bitlen=(e,t)=>{const n=t.dyn_tree,r=t.max_code,o=t.stat_desc.static_tree,s=t.stat_desc.has_stree,g=t.stat_desc.extra_bits,l=t.stat_desc.extra_base,u=t.stat_desc.max_length;let c,d,B,Q,f,p,U=0;for(Q=0;Q<=MAX_BITS$1;Q++)e.bl_count[Q]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<HEAP_SIZE$1;c++)d=e.heap[c],Q=n[n[d*2+1]*2+1]+1,Q>u&&(Q=u,U++),n[d*2+1]=Q,!(d>r)&&(e.bl_count[Q]++,f=0,d>=l&&(f=g[d-l]),p=n[d*2],e.opt_len+=p*(Q+f),s&&(e.static_len+=p*(o[d*2+1]+f)));if(U!==0){do{for(Q=u-1;e.bl_count[Q]===0;)Q--;e.bl_count[Q]--,e.bl_count[Q+1]+=2,e.bl_count[u]--,U-=2}while(U>0);for(Q=u;Q!==0;Q--)for(d=e.bl_count[Q];d!==0;)B=e.heap[--c],!(B>r)&&(n[B*2+1]!==Q&&(e.opt_len+=(Q-n[B*2+1])*n[B*2],n[B*2+1]=Q),d--)}},gen_codes=(e,t,n)=>{const r=new Array(MAX_BITS$1+1);let o=0,s,g;for(s=1;s<=MAX_BITS$1;s++)o=o+n[s-1]<<1,r[s]=o;for(g=0;g<=t;g++){let l=e[g*2+1];l!==0&&(e[g*2]=bi_reverse(r[l]++,l))}},tr_static_init=()=>{let e,t,n,r,o;const s=new Array(MAX_BITS$1+1);for(n=0,r=0;r<LENGTH_CODES$1-1;r++)for(base_length[r]=n,e=0;e<1<<extra_lbits[r];e++)_length_code[n++]=r;for(_length_code[n-1]=r,o=0,r=0;r<16;r++)for(base_dist[r]=o,e=0;e<1<<extra_dbits[r];e++)_dist_code[o++]=r;for(o>>=7;r<D_CODES$1;r++)for(base_dist[r]=o<<7,e=0;e<1<<extra_dbits[r]-7;e++)_dist_code[256+o++]=r;for(t=0;t<=MAX_BITS$1;t++)s[t]=0;for(e=0;e<=143;)static_ltree[e*2+1]=8,e++,s[8]++;for(;e<=255;)static_ltree[e*2+1]=9,e++,s[9]++;for(;e<=279;)static_ltree[e*2+1]=7,e++,s[7]++;for(;e<=287;)static_ltree[e*2+1]=8,e++,s[8]++;for(gen_codes(static_ltree,L_CODES$1+1,s),e=0;e<D_CODES$1;e++)static_dtree[e*2+1]=5,static_dtree[e*2]=bi_reverse(e,5);static_l_desc=new StaticTreeDesc(static_ltree,extra_lbits,LITERALS$1+1,L_CODES$1,MAX_BITS$1),static_d_desc=new StaticTreeDesc(static_dtree,extra_dbits,0,D_CODES$1,MAX_BITS$1),static_bl_desc=new StaticTreeDesc(new Array(0),extra_blbits,0,BL_CODES$1,MAX_BL_BITS)},init_block=e=>{let t;for(t=0;t<L_CODES$1;t++)e.dyn_ltree[t*2]=0;for(t=0;t<D_CODES$1;t++)e.dyn_dtree[t*2]=0;for(t=0;t<BL_CODES$1;t++)e.bl_tree[t*2]=0;e.dyn_ltree[END_BLOCK*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},bi_windup=e=>{e.bi_valid>8?put_short(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},smaller=(e,t,n,r)=>{const o=t*2,s=n*2;return e[o]<e[s]||e[o]===e[s]&&r[t]<=r[n]},pqdownheap=(e,t,n)=>{const r=e.heap[n];let o=n<<1;for(;o<=e.heap_len&&(o<e.heap_len&&smaller(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!smaller(t,r,e.heap[o],e.depth));)e.heap[n]=e.heap[o],n=o,o<<=1;e.heap[n]=r},compress_block=(e,t,n)=>{let r,o,s=0,g,l;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+s++]&255,r+=(e.pending_buf[e.sym_buf+s++]&255)<<8,o=e.pending_buf[e.sym_buf+s++],r===0?send_code(e,o,t):(g=_length_code[o],send_code(e,g+LITERALS$1+1,t),l=extra_lbits[g],l!==0&&(o-=base_length[g],send_bits(e,o,l)),r--,g=d_code(r),send_code(e,g,n),l=extra_dbits[g],l!==0&&(r-=base_dist[g],send_bits(e,r,l)));while(s<e.sym_next);send_code(e,END_BLOCK,t)},build_tree=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,o=t.stat_desc.has_stree,s=t.stat_desc.elems;let g,l,u=-1,c;for(e.heap_len=0,e.heap_max=HEAP_SIZE$1,g=0;g<s;g++)n[g*2]!==0?(e.heap[++e.heap_len]=u=g,e.depth[g]=0):n[g*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=u<2?++u:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,o&&(e.static_len-=r[c*2+1]);for(t.max_code=u,g=e.heap_len>>1;g>=1;g--)pqdownheap(e,n,g);c=s;do g=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pqdownheap(e,n,1),l=e.heap[1],e.heap[--e.heap_max]=g,e.heap[--e.heap_max]=l,n[c*2]=n[g*2]+n[l*2],e.depth[c]=(e.depth[g]>=e.depth[l]?e.depth[g]:e.depth[l])+1,n[g*2+1]=n[l*2+1]=c,e.heap[1]=c++,pqdownheap(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],gen_bitlen(e,t),gen_codes(n,u,e.bl_count)},scan_tree=(e,t,n)=>{let r,o=-1,s,g=t[0*2+1],l=0,u=7,c=4;for(g===0&&(u=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)s=g,g=t[(r+1)*2+1],!(++l<u&&s===g)&&(l<c?e.bl_tree[s*2]+=l:s!==0?(s!==o&&e.bl_tree[s*2]++,e.bl_tree[REP_3_6*2]++):l<=10?e.bl_tree[REPZ_3_10*2]++:e.bl_tree[REPZ_11_138*2]++,l=0,o=s,g===0?(u=138,c=3):s===g?(u=6,c=3):(u=7,c=4))},send_tree=(e,t,n)=>{let r,o=-1,s,g=t[0*2+1],l=0,u=7,c=4;for(g===0&&(u=138,c=3),r=0;r<=n;r++)if(s=g,g=t[(r+1)*2+1],!(++l<u&&s===g)){if(l<c)do send_code(e,s,e.bl_tree);while(--l!==0);else s!==0?(s!==o&&(send_code(e,s,e.bl_tree),l--),send_code(e,REP_3_6,e.bl_tree),send_bits(e,l-3,2)):l<=10?(send_code(e,REPZ_3_10,e.bl_tree),send_bits(e,l-3,3)):(send_code(e,REPZ_11_138,e.bl_tree),send_bits(e,l-11,7));l=0,o=s,g===0?(u=138,c=3):s===g?(u=6,c=3):(u=7,c=4)}},build_bl_tree=e=>{let t;for(scan_tree(e,e.dyn_ltree,e.l_desc.max_code),scan_tree(e,e.dyn_dtree,e.d_desc.max_code),build_tree(e,e.bl_desc),t=BL_CODES$1-1;t>=3&&e.bl_tree[bl_order[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},send_all_trees=(e,t,n,r)=>{let o;for(send_bits(e,t-257,5),send_bits(e,n-1,5),send_bits(e,r-4,4),o=0;o<r;o++)send_bits(e,e.bl_tree[bl_order[o]*2+1],3);send_tree(e,e.dyn_ltree,t-1),send_tree(e,e.dyn_dtree,n-1)},detect_data_type=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return Z_BINARY;if(e.dyn_ltree[9*2]!==0||e.dyn_ltree[10*2]!==0||e.dyn_ltree[13*2]!==0)return Z_TEXT;for(n=32;n<LITERALS$1;n++)if(e.dyn_ltree[n*2]!==0)return Z_TEXT;return Z_BINARY};let static_init_done=!1;const _tr_init$1=e=>{static_init_done||(tr_static_init(),static_init_done=!0),e.l_desc=new TreeDesc(e.dyn_ltree,static_l_desc),e.d_desc=new TreeDesc(e.dyn_dtree,static_d_desc),e.bl_desc=new TreeDesc(e.bl_tree,static_bl_desc),e.bi_buf=0,e.bi_valid=0,init_block(e)},_tr_stored_block$1=(e,t,n,r)=>{send_bits(e,(STORED_BLOCK<<1)+(r?1:0),3),bi_windup(e),put_short(e,n),put_short(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},_tr_align$1=e=>{send_bits(e,STATIC_TREES<<1,3),send_code(e,END_BLOCK,static_ltree),bi_flush(e)},_tr_flush_block$1=(e,t,n,r)=>{let o,s,g=0;e.level>0?(e.strm.data_type===Z_UNKNOWN$1&&(e.strm.data_type=detect_data_type(e)),build_tree(e,e.l_desc),build_tree(e,e.d_desc),g=build_bl_tree(e),o=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=o&&(o=s)):o=s=n+5,n+4<=o&&t!==-1?_tr_stored_block$1(e,t,n,r):e.strategy===Z_FIXED$1||s===o?(send_bits(e,(STATIC_TREES<<1)+(r?1:0),3),compress_block(e,static_ltree,static_dtree)):(send_bits(e,(DYN_TREES<<1)+(r?1:0),3),send_all_trees(e,e.l_desc.max_code+1,e.d_desc.max_code+1,g+1),compress_block(e,e.dyn_ltree,e.dyn_dtree)),init_block(e),r&&bi_windup(e)},_tr_tally$1=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(_length_code[n]+LITERALS$1+1)*2]++,e.dyn_dtree[d_code(t)*2]++),e.sym_next===e.sym_end);var _tr_init_1=_tr_init$1,_tr_stored_block_1=_tr_stored_block$1,_tr_flush_block_1=_tr_flush_block$1,_tr_tally_1=_tr_tally$1,_tr_align_1=_tr_align$1,trees={_tr_init:_tr_init_1,_tr_stored_block:_tr_stored_block_1,_tr_flush_block:_tr_flush_block_1,_tr_tally:_tr_tally_1,_tr_align:_tr_align_1};const adler32=(e,t,n,r)=>{let o=e&65535|0,s=e>>>16&65535|0,g=0;for(;n!==0;){g=n>2e3?2e3:n,n-=g;do o=o+t[r++]|0,s=s+o|0;while(--g);o%=65521,s%=65521}return o|s<<16|0};var adler32_1=adler32;const makeTable=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},crcTable=new Uint32Array(makeTable()),crc32=(e,t,n,r)=>{const o=crcTable,s=r+n;e^=-1;for(let g=r;g<s;g++)e=e>>>8^o[(e^t[g])&255];return e^-1};var crc32_1=crc32,messages={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},constants$2={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init,_tr_stored_block,_tr_flush_block,_tr_tally,_tr_align}=trees,{Z_NO_FLUSH:Z_NO_FLUSH$2,Z_PARTIAL_FLUSH,Z_FULL_FLUSH:Z_FULL_FLUSH$1,Z_FINISH:Z_FINISH$3,Z_BLOCK:Z_BLOCK$1,Z_OK:Z_OK$3,Z_STREAM_END:Z_STREAM_END$3,Z_STREAM_ERROR:Z_STREAM_ERROR$2,Z_DATA_ERROR:Z_DATA_ERROR$2,Z_BUF_ERROR:Z_BUF_ERROR$1,Z_DEFAULT_COMPRESSION:Z_DEFAULT_COMPRESSION$1,Z_FILTERED,Z_HUFFMAN_ONLY,Z_RLE,Z_FIXED,Z_DEFAULT_STRATEGY:Z_DEFAULT_STRATEGY$1,Z_UNKNOWN,Z_DEFLATED:Z_DEFLATED$2}=constants$2,MAX_MEM_LEVEL=9,MAX_WBITS$1=15,DEF_MEM_LEVEL=8,LENGTH_CODES=29,LITERALS=256,L_CODES=LITERALS+1+LENGTH_CODES,D_CODES=30,BL_CODES=19,HEAP_SIZE=2*L_CODES+1,MAX_BITS=15,MIN_MATCH=3,MAX_MATCH=258,MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1,PRESET_DICT=32,INIT_STATE=42,GZIP_STATE=57,EXTRA_STATE=69,NAME_STATE=73,COMMENT_STATE=91,HCRC_STATE=103,BUSY_STATE=113,FINISH_STATE=666,BS_NEED_MORE=1,BS_BLOCK_DONE=2,BS_FINISH_STARTED=3,BS_FINISH_DONE=4,OS_CODE=3,err=(e,t)=>(e.msg=messages[t],t),rank=e=>e*2-(e>4?9:0),zero=e=>{let t=e.length;for(;--t>=0;)e[t]=0},slide_hash=e=>{let t,n,r,o=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=o?n-o:0;while(--t);t=o,r=t;do n=e.prev[--r],e.prev[r]=n>=o?n-o:0;while(--t)};let HASH_ZLIB=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,HASH=HASH_ZLIB;const flush_pending=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},flush_block_only=(e,t)=>{_tr_flush_block(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,flush_pending(e.strm)},put_byte=(e,t)=>{e.pending_buf[e.pending++]=t},putShortMSB=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},read_buf=(e,t,n,r)=>{let o=e.avail_in;return o>r&&(o=r),o===0?0:(e.avail_in-=o,t.set(e.input.subarray(e.next_in,e.next_in+o),n),e.state.wrap===1?e.adler=adler32_1(e.adler,t,o,n):e.state.wrap===2&&(e.adler=crc32_1(e.adler,t,o,n)),e.next_in+=o,e.total_in+=o,o)},longest_match=(e,t)=>{let n=e.max_chain_length,r=e.strstart,o,s,g=e.prev_length,l=e.nice_match;const u=e.strstart>e.w_size-MIN_LOOKAHEAD?e.strstart-(e.w_size-MIN_LOOKAHEAD):0,c=e.window,d=e.w_mask,B=e.prev,Q=e.strstart+MAX_MATCH;let f=c[r+g-1],p=c[r+g];e.prev_length>=e.good_match&&(n>>=2),l>e.lookahead&&(l=e.lookahead);do if(o=t,!(c[o+g]!==p||c[o+g-1]!==f||c[o]!==c[r]||c[++o]!==c[r+1])){r+=2,o++;do;while(c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&c[++r]===c[++o]&&r<Q);if(s=MAX_MATCH-(Q-r),r=Q-MAX_MATCH,s>g){if(e.match_start=t,g=s,s>=l)break;f=c[r+g-1],p=c[r+g]}}while((t=B[t&d])>u&&--n!==0);return g<=e.lookahead?g:e.lookahead},fill_window=e=>{const t=e.w_size;let n,r,o;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-MIN_LOOKAHEAD)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),slide_hash(e),r+=t),e.strm.avail_in===0)break;if(n=read_buf(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=MIN_MATCH)for(o=e.strstart-e.insert,e.ins_h=e.window[o],e.ins_h=HASH(e,e.ins_h,e.window[o+1]);e.insert&&(e.ins_h=HASH(e,e.ins_h,e.window[o+MIN_MATCH-1]),e.prev[o&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=o,o++,e.insert--,!(e.lookahead+e.insert<MIN_MATCH)););}while(e.lookahead<MIN_LOOKAHEAD&&e.strm.avail_in!==0)},deflate_stored=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,o,s,g=0,l=e.strm.avail_in;do{if(r=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,o=e.strstart-e.block_start,r>o+e.strm.avail_in&&(r=o+e.strm.avail_in),r>s&&(r=s),r<n&&(r===0&&t!==Z_FINISH$3||t===Z_NO_FLUSH$2||r!==o+e.strm.avail_in)))break;g=t===Z_FINISH$3&&r===o+e.strm.avail_in?1:0,_tr_stored_block(e,0,0,g),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,flush_pending(e.strm),o&&(o>r&&(o=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+o),e.strm.next_out),e.strm.next_out+=o,e.strm.avail_out-=o,e.strm.total_out+=o,e.block_start+=o,r-=o),r&&(read_buf(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(g===0);return l-=e.strm.avail_in,l&&(l>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=l&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-l,e.strm.next_in),e.strstart),e.strstart+=l,e.insert+=l>e.w_size-e.insert?e.w_size-e.insert:l),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),g?BS_FINISH_DONE:t!==Z_NO_FLUSH$2&&t!==Z_FINISH$3&&e.strm.avail_in===0&&e.strstart===e.block_start?BS_BLOCK_DONE:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(read_buf(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,n=s>e.w_size?e.w_size:s,o=e.strstart-e.block_start,(o>=n||(o||t===Z_FINISH$3)&&t!==Z_NO_FLUSH$2&&e.strm.avail_in===0&&o<=s)&&(r=o>s?s:o,g=t===Z_FINISH$3&&e.strm.avail_in===0&&r===o?1:0,_tr_stored_block(e,e.block_start,r,g),e.block_start+=r,flush_pending(e.strm)),g?BS_FINISH_STARTED:BS_NEED_MORE)},deflate_fast=(e,t)=>{let n,r;for(;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$2)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n)),e.match_length>=MIN_MATCH)if(r=_tr_tally(e,e.strstart-e.match_start,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=MIN_MATCH){e.match_length--;do e.strstart++,e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+1]);else r=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.sym_next&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_slow=(e,t)=>{let n,r,o;for(;;){if(e.lookahead<MIN_LOOKAHEAD){if(fill_window(e),e.lookahead<MIN_LOOKAHEAD&&t===Z_NO_FLUSH$2)return BS_NEED_MORE;if(e.lookahead===0)break}if(n=0,e.lookahead>=MIN_MATCH&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=MIN_MATCH-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-MIN_LOOKAHEAD&&(e.match_length=longest_match(e,n),e.match_length<=5&&(e.strategy===Z_FILTERED||e.match_length===MIN_MATCH&&e.strstart-e.match_start>4096)&&(e.match_length=MIN_MATCH-1)),e.prev_length>=MIN_MATCH&&e.match_length<=e.prev_length){o=e.strstart+e.lookahead-MIN_MATCH,r=_tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-MIN_MATCH),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=o&&(e.ins_h=HASH(e,e.ins_h,e.window[e.strstart+MIN_MATCH-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=MIN_MATCH-1,e.strstart++,r&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}else if(e.match_available){if(r=_tr_tally(e,0,e.window[e.strstart-1]),r&&flush_block_only(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return BS_NEED_MORE}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=_tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<MIN_MATCH-1?e.strstart:MIN_MATCH-1,t===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.sym_next&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_rle=(e,t)=>{let n,r,o,s;const g=e.window;for(;;){if(e.lookahead<=MAX_MATCH){if(fill_window(e),e.lookahead<=MAX_MATCH&&t===Z_NO_FLUSH$2)return BS_NEED_MORE;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=MIN_MATCH&&e.strstart>0&&(o=e.strstart-1,r=g[o],r===g[++o]&&r===g[++o]&&r===g[++o])){s=e.strstart+MAX_MATCH;do;while(r===g[++o]&&r===g[++o]&&r===g[++o]&&r===g[++o]&&r===g[++o]&&r===g[++o]&&r===g[++o]&&r===g[++o]&&o<s);e.match_length=MAX_MATCH-(s-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=MIN_MATCH?(n=_tr_tally(e,1,e.match_length-MIN_MATCH),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.sym_next&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE},deflate_huff=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(fill_window(e),e.lookahead===0)){if(t===Z_NO_FLUSH$2)return BS_NEED_MORE;break}if(e.match_length=0,n=_tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(flush_block_only(e,!1),e.strm.avail_out===0))return BS_NEED_MORE}return e.insert=0,t===Z_FINISH$3?(flush_block_only(e,!0),e.strm.avail_out===0?BS_FINISH_STARTED:BS_FINISH_DONE):e.sym_next&&(flush_block_only(e,!1),e.strm.avail_out===0)?BS_NEED_MORE:BS_BLOCK_DONE};function Config(e,t,n,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=o}const configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)],lm_init=e=>{e.window_size=2*e.w_size,zero(e.head),e.max_lazy_match=configuration_table[e.level].max_lazy,e.good_match=configuration_table[e.level].good_length,e.nice_match=configuration_table[e.level].nice_length,e.max_chain_length=configuration_table[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=MIN_MATCH-1,e.match_available=0,e.ins_h=0};function DeflateState(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Z_DEFLATED$2,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(HEAP_SIZE*2),this.dyn_dtree=new Uint16Array((2*D_CODES+1)*2),this.bl_tree=new Uint16Array((2*BL_CODES+1)*2),zero(this.dyn_ltree),zero(this.dyn_dtree),zero(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(MAX_BITS+1),this.heap=new Uint16Array(2*L_CODES+1),zero(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*L_CODES+1),zero(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const deflateStateCheck=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==INIT_STATE&&t.status!==GZIP_STATE&&t.status!==EXTRA_STATE&&t.status!==NAME_STATE&&t.status!==COMMENT_STATE&&t.status!==HCRC_STATE&&t.status!==BUSY_STATE&&t.status!==FINISH_STATE?1:0},deflateResetKeep=e=>{if(deflateStateCheck(e))return err(e,Z_STREAM_ERROR$2);e.total_in=e.total_out=0,e.data_type=Z_UNKNOWN;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?GZIP_STATE:t.wrap?INIT_STATE:BUSY_STATE,e.adler=t.wrap===2?0:1,t.last_flush=-2,_tr_init(t),Z_OK$3},deflateReset=e=>{const t=deflateResetKeep(e);return t===Z_OK$3&&lm_init(e.state),t},deflateSetHeader=(e,t)=>deflateStateCheck(e)||e.state.wrap!==2?Z_STREAM_ERROR$2:(e.state.gzhead=t,Z_OK$3),deflateInit2=(e,t,n,r,o,s)=>{if(!e)return Z_STREAM_ERROR$2;let g=1;if(t===Z_DEFAULT_COMPRESSION$1&&(t=6),r<0?(g=0,r=-r):r>15&&(g=2,r-=16),o<1||o>MAX_MEM_LEVEL||n!==Z_DEFLATED$2||r<8||r>15||t<0||t>9||s<0||s>Z_FIXED||r===8&&g!==1)return err(e,Z_STREAM_ERROR$2);r===8&&(r=9);const l=new DeflateState;return e.state=l,l.strm=e,l.status=INIT_STATE,l.wrap=g,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=o+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+MIN_MATCH-1)/MIN_MATCH),l.window=new Uint8Array(l.w_size*2),l.head=new Uint16Array(l.hash_size),l.prev=new Uint16Array(l.w_size),l.lit_bufsize=1<<o+6,l.pending_buf_size=l.lit_bufsize*4,l.pending_buf=new Uint8Array(l.pending_buf_size),l.sym_buf=l.lit_bufsize,l.sym_end=(l.lit_bufsize-1)*3,l.level=t,l.strategy=s,l.method=n,deflateReset(e)},deflateInit=(e,t)=>deflateInit2(e,t,Z_DEFLATED$2,MAX_WBITS$1,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY$1),deflate$2=(e,t)=>{if(deflateStateCheck(e)||t>Z_BLOCK$1||t<0)return e?err(e,Z_STREAM_ERROR$2):Z_STREAM_ERROR$2;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===FINISH_STATE&&t!==Z_FINISH$3)return err(e,e.avail_out===0?Z_BUF_ERROR$1:Z_STREAM_ERROR$2);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(flush_pending(e),e.avail_out===0)return n.last_flush=-1,Z_OK$3}else if(e.avail_in===0&&rank(t)<=rank(r)&&t!==Z_FINISH$3)return err(e,Z_BUF_ERROR$1);if(n.status===FINISH_STATE&&e.avail_in!==0)return err(e,Z_BUF_ERROR$1);if(n.status===INIT_STATE&&n.wrap===0&&(n.status=BUSY_STATE),n.status===INIT_STATE){let o=Z_DEFLATED$2+(n.w_bits-8<<4)<<8,s=-1;if(n.strategy>=Z_HUFFMAN_ONLY||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,o|=s<<6,n.strstart!==0&&(o|=PRESET_DICT),o+=31-o%31,putShortMSB(n,o),n.strstart!==0&&(putShortMSB(n,e.adler>>>16),putShortMSB(n,e.adler&65535)),e.adler=1,n.status=BUSY_STATE,flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3}if(n.status===GZIP_STATE){if(e.adler=0,put_byte(n,31),put_byte(n,139),put_byte(n,8),n.gzhead)put_byte(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),put_byte(n,n.gzhead.time&255),put_byte(n,n.gzhead.time>>8&255),put_byte(n,n.gzhead.time>>16&255),put_byte(n,n.gzhead.time>>24&255),put_byte(n,n.level===9?2:n.strategy>=Z_HUFFMAN_ONLY||n.level<2?4:0),put_byte(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(put_byte(n,n.gzhead.extra.length&255),put_byte(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=EXTRA_STATE;else if(put_byte(n,0),put_byte(n,0),put_byte(n,0),put_byte(n,0),put_byte(n,0),put_byte(n,n.level===9?2:n.strategy>=Z_HUFFMAN_ONLY||n.level<2?4:0),put_byte(n,OS_CODE),n.status=BUSY_STATE,flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3}if(n.status===EXTRA_STATE){if(n.gzhead.extra){let o=n.pending,s=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+s>n.pending_buf_size;){let l=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+l),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o)),n.gzindex+=l,flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3;o=0,s-=l}let g=new Uint8Array(n.gzhead.extra);n.pending_buf.set(g.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending+=s,n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o)),n.gzindex=0}n.status=NAME_STATE}if(n.status===NAME_STATE){if(n.gzhead.name){let o=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o)),flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3;o=0}n.gzindex<n.gzhead.name.length?s=n.gzhead.name.charCodeAt(n.gzindex++)&255:s=0,put_byte(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o)),n.gzindex=0}n.status=COMMENT_STATE}if(n.status===COMMENT_STATE){if(n.gzhead.comment){let o=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o)),flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3;o=0}n.gzindex<n.gzhead.comment.length?s=n.gzhead.comment.charCodeAt(n.gzindex++)&255:s=0,put_byte(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>o&&(e.adler=crc32_1(e.adler,n.pending_buf,n.pending-o,o))}n.status=HCRC_STATE}if(n.status===HCRC_STATE){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(flush_pending(e),n.pending!==0))return n.last_flush=-1,Z_OK$3;put_byte(n,e.adler&255),put_byte(n,e.adler>>8&255),e.adler=0}if(n.status=BUSY_STATE,flush_pending(e),n.pending!==0)return n.last_flush=-1,Z_OK$3}if(e.avail_in!==0||n.lookahead!==0||t!==Z_NO_FLUSH$2&&n.status!==FINISH_STATE){let o=n.level===0?deflate_stored(n,t):n.strategy===Z_HUFFMAN_ONLY?deflate_huff(n,t):n.strategy===Z_RLE?deflate_rle(n,t):configuration_table[n.level].func(n,t);if((o===BS_FINISH_STARTED||o===BS_FINISH_DONE)&&(n.status=FINISH_STATE),o===BS_NEED_MORE||o===BS_FINISH_STARTED)return e.avail_out===0&&(n.last_flush=-1),Z_OK$3;if(o===BS_BLOCK_DONE&&(t===Z_PARTIAL_FLUSH?_tr_align(n):t!==Z_BLOCK$1&&(_tr_stored_block(n,0,0,!1),t===Z_FULL_FLUSH$1&&(zero(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),flush_pending(e),e.avail_out===0))return n.last_flush=-1,Z_OK$3}return t!==Z_FINISH$3?Z_OK$3:n.wrap<=0?Z_STREAM_END$3:(n.wrap===2?(put_byte(n,e.adler&255),put_byte(n,e.adler>>8&255),put_byte(n,e.adler>>16&255),put_byte(n,e.adler>>24&255),put_byte(n,e.total_in&255),put_byte(n,e.total_in>>8&255),put_byte(n,e.total_in>>16&255),put_byte(n,e.total_in>>24&255)):(putShortMSB(n,e.adler>>>16),putShortMSB(n,e.adler&65535)),flush_pending(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?Z_OK$3:Z_STREAM_END$3)},deflateEnd=e=>{if(deflateStateCheck(e))return Z_STREAM_ERROR$2;const t=e.state.status;return e.state=null,t===BUSY_STATE?err(e,Z_DATA_ERROR$2):Z_OK$3},deflateSetDictionary=(e,t)=>{let n=t.length;if(deflateStateCheck(e))return Z_STREAM_ERROR$2;const r=e.state,o=r.wrap;if(o===2||o===1&&r.status!==INIT_STATE||r.lookahead)return Z_STREAM_ERROR$2;if(o===1&&(e.adler=adler32_1(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){o===0&&(zero(r.head),r.strstart=0,r.block_start=0,r.insert=0);let u=new Uint8Array(r.w_size);u.set(t.subarray(n-r.w_size,n),0),t=u,n=r.w_size}const s=e.avail_in,g=e.next_in,l=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,fill_window(r);r.lookahead>=MIN_MATCH;){let u=r.strstart,c=r.lookahead-(MIN_MATCH-1);do r.ins_h=HASH(r,r.ins_h,r.window[u+MIN_MATCH-1]),r.prev[u&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=u,u++;while(--c);r.strstart=u,r.lookahead=MIN_MATCH-1,fill_window(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=MIN_MATCH-1,r.match_available=0,e.next_in=g,e.input=l,e.avail_in=s,r.wrap=o,Z_OK$3};var deflateInit_1=deflateInit,deflateInit2_1=deflateInit2,deflateReset_1=deflateReset,deflateResetKeep_1=deflateResetKeep,deflateSetHeader_1=deflateSetHeader,deflate_2$1=deflate$2,deflateEnd_1=deflateEnd,deflateSetDictionary_1=deflateSetDictionary,deflateInfo="pako deflate (from Nodeca project)",deflate_1$2={deflateInit:deflateInit_1,deflateInit2:deflateInit2_1,deflateReset:deflateReset_1,deflateResetKeep:deflateResetKeep_1,deflateSetHeader:deflateSetHeader_1,deflate:deflate_2$1,deflateEnd:deflateEnd_1,deflateSetDictionary:deflateSetDictionary_1,deflateInfo};const _has=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var assign=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)_has(n,r)&&(e[r]=n[r])}}return e},flattenChunks=e=>{let t=0;for(let r=0,o=e.length;r<o;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,o=0,s=e.length;r<s;r++){let g=e[r];n.set(g,o),o+=g.length}return n},common={assign,flattenChunks};let STR_APPLY_UIA_OK=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){STR_APPLY_UIA_OK=!1}const _utf8len=new Uint8Array(256);for(let e=0;e<256;e++)_utf8len[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;_utf8len[254]=_utf8len[254]=1;var string2buf=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,o,s,g=e.length,l=0;for(o=0;o<g;o++)n=e.charCodeAt(o),(n&64512)===55296&&o+1<g&&(r=e.charCodeAt(o+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),o++)),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(l),s=0,o=0;s<l;o++)n=e.charCodeAt(o),(n&64512)===55296&&o+1<g&&(r=e.charCodeAt(o+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),o++)),n<128?t[s++]=n:n<2048?(t[s++]=192|n>>>6,t[s++]=128|n&63):n<65536?(t[s++]=224|n>>>12,t[s++]=128|n>>>6&63,t[s++]=128|n&63):(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63,t[s++]=128|n>>>6&63,t[s++]=128|n&63);return t};const buf2binstring=(e,t)=>{if(t<65534&&e.subarray&&STR_APPLY_UIA_OK)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var buf2string=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,o;const s=new Array(n*2);for(o=0,r=0;r<n;){let g=e[r++];if(g<128){s[o++]=g;continue}let l=_utf8len[g];if(l>4){s[o++]=65533,r+=l-1;continue}for(g&=l===2?31:l===3?15:7;l>1&&r<n;)g=g<<6|e[r++]&63,l--;if(l>1){s[o++]=65533;continue}g<65536?s[o++]=g:(g-=65536,s[o++]=55296|g>>10&1023,s[o++]=56320|g&1023)}return buf2binstring(s,o)},utf8border=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+_utf8len[e[n]]>t?n:t},strings={string2buf,buf2string,utf8border};function ZStream(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var zstream=ZStream;const toString$1=Object.prototype.toString,{Z_NO_FLUSH:Z_NO_FLUSH$1,Z_SYNC_FLUSH,Z_FULL_FLUSH,Z_FINISH:Z_FINISH$2,Z_OK:Z_OK$2,Z_STREAM_END:Z_STREAM_END$2,Z_DEFAULT_COMPRESSION,Z_DEFAULT_STRATEGY,Z_DEFLATED:Z_DEFLATED$1}=constants$2;function Deflate$1(e){this.options=common.assign({level:Z_DEFAULT_COMPRESSION,method:Z_DEFLATED$1,chunkSize:16384,windowBits:15,memLevel:8,strategy:Z_DEFAULT_STRATEGY},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let n=deflate_1$2.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==Z_OK$2)throw new Error(messages[n]);if(t.header&&deflate_1$2.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=strings.string2buf(t.dictionary):toString$1.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=deflate_1$2.deflateSetDictionary(this.strm,r),n!==Z_OK$2)throw new Error(messages[n]);this._dict_set=!0}}Deflate$1.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let o,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?Z_FINISH$2:Z_NO_FLUSH$1,typeof e=="string"?n.input=strings.string2buf(e):toString$1.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(s===Z_SYNC_FLUSH||s===Z_FULL_FLUSH)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(o=deflate_1$2.deflate(n,s),o===Z_STREAM_END$2)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),o=deflate_1$2.deflateEnd(this.strm),this.onEnd(o),this.ended=!0,o===Z_OK$2;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0},Deflate$1.prototype.onData=function(e){this.chunks.push(e)},Deflate$1.prototype.onEnd=function(e){e===Z_OK$2&&(this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function deflate$1(e,t){const n=new Deflate$1(t);if(n.push(e,!0),n.err)throw n.msg||messages[n.err];return n.result}function deflateRaw$1(e,t){return t=t||{},t.raw=!0,deflate$1(e,t)}function gzip$1(e,t){return t=t||{},t.gzip=!0,deflate$1(e,t)}var Deflate_1$1=Deflate$1,deflate_2=deflate$1,deflateRaw_1$1=deflateRaw$1,gzip_1$1=gzip$1,constants$1=constants$2,deflate_1$1={Deflate:Deflate_1$1,deflate:deflate_2,deflateRaw:deflateRaw_1$1,gzip:gzip_1$1,constants:constants$1};const BAD$1=16209,TYPE$1=16191;var inffast=function e(t,n){let r,o,s,g,l,u,c,d,B,Q,f,p,U,E,M,W,y,m,h,T,I,X,F,R;const x=t.state;r=t.next_in,F=t.input,o=r+(t.avail_in-5),s=t.next_out,R=t.output,g=s-(n-t.avail_out),l=s+(t.avail_out-257),u=x.dmax,c=x.wsize,d=x.whave,B=x.wnext,Q=x.window,f=x.hold,p=x.bits,U=x.lencode,E=x.distcode,M=(1<<x.lenbits)-1,W=(1<<x.distbits)-1;e:do{p<15&&(f+=F[r++]<<p,p+=8,f+=F[r++]<<p,p+=8),y=U[f&M];t:for(;;){if(m=y>>>24,f>>>=m,p-=m,m=y>>>16&255,m===0)R[s++]=y&65535;else if(m&16){h=y&65535,m&=15,m&&(p<m&&(f+=F[r++]<<p,p+=8),h+=f&(1<<m)-1,f>>>=m,p-=m),p<15&&(f+=F[r++]<<p,p+=8,f+=F[r++]<<p,p+=8),y=E[f&W];n:for(;;){if(m=y>>>24,f>>>=m,p-=m,m=y>>>16&255,m&16){if(T=y&65535,m&=15,p<m&&(f+=F[r++]<<p,p+=8,p<m&&(f+=F[r++]<<p,p+=8)),T+=f&(1<<m)-1,T>u){t.msg="invalid distance too far back",x.mode=BAD$1;break e}if(f>>>=m,p-=m,m=s-g,T>m){if(m=T-m,m>d&&x.sane){t.msg="invalid distance too far back",x.mode=BAD$1;break e}if(I=0,X=Q,B===0){if(I+=c-m,m<h){h-=m;do R[s++]=Q[I++];while(--m);I=s-T,X=R}}else if(B<m){if(I+=c+B-m,m-=B,m<h){h-=m;do R[s++]=Q[I++];while(--m);if(I=0,B<h){m=B,h-=m;do R[s++]=Q[I++];while(--m);I=s-T,X=R}}}else if(I+=B-m,m<h){h-=m;do R[s++]=Q[I++];while(--m);I=s-T,X=R}for(;h>2;)R[s++]=X[I++],R[s++]=X[I++],R[s++]=X[I++],h-=3;h&&(R[s++]=X[I++],h>1&&(R[s++]=X[I++]))}else{I=s-T;do R[s++]=R[I++],R[s++]=R[I++],R[s++]=R[I++],h-=3;while(h>2);h&&(R[s++]=R[I++],h>1&&(R[s++]=R[I++]))}}else if(m&64){t.msg="invalid distance code",x.mode=BAD$1;break e}else{y=E[(y&65535)+(f&(1<<m)-1)];continue n}break}}else if(m&64)if(m&32){x.mode=TYPE$1;break e}else{t.msg="invalid literal/length code",x.mode=BAD$1;break e}else{y=U[(y&65535)+(f&(1<<m)-1)];continue t}break}}while(r<o&&s<l);h=p>>3,r-=h,p-=h<<3,f&=(1<<p)-1,t.next_in=r,t.next_out=s,t.avail_in=r<o?5+(o-r):5-(r-o),t.avail_out=s<l?257+(l-s):257-(s-l),x.hold=f,x.bits=p};const MAXBITS=15,ENOUGH_LENS$1=852,ENOUGH_DISTS$1=592,CODES$1=0,LENS$1=1,DISTS$1=2,lbase=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),lext=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),dbase=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),dext=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),inflate_table=(e,t,n,r,o,s,g,l)=>{const u=l.bits;let c=0,d=0,B=0,Q=0,f=0,p=0,U=0,E=0,M=0,W=0,y,m,h,T,I,X=null,F;const R=new Uint16Array(MAXBITS+1),x=new Uint16Array(MAXBITS+1);let w=null,_,j,C;for(c=0;c<=MAXBITS;c++)R[c]=0;for(d=0;d<r;d++)R[t[n+d]]++;for(f=u,Q=MAXBITS;Q>=1&&R[Q]===0;Q--);if(f>Q&&(f=Q),Q===0)return o[s++]=1<<24|64<<16|0,o[s++]=1<<24|64<<16|0,l.bits=1,0;for(B=1;B<Q&&R[B]===0;B++);for(f<B&&(f=B),E=1,c=1;c<=MAXBITS;c++)if(E<<=1,E-=R[c],E<0)return-1;if(E>0&&(e===CODES$1||Q!==1))return-1;for(x[1]=0,c=1;c<MAXBITS;c++)x[c+1]=x[c]+R[c];for(d=0;d<r;d++)t[n+d]!==0&&(g[x[t[n+d]]++]=d);if(e===CODES$1?(X=w=g,F=20):e===LENS$1?(X=lbase,w=lext,F=257):(X=dbase,w=dext,F=0),W=0,d=0,c=B,I=s,p=f,U=0,h=-1,M=1<<f,T=M-1,e===LENS$1&&M>ENOUGH_LENS$1||e===DISTS$1&&M>ENOUGH_DISTS$1)return 1;for(;;){_=c-U,g[d]+1<F?(j=0,C=g[d]):g[d]>=F?(j=w[g[d]-F],C=X[g[d]-F]):(j=32+64,C=0),y=1<<c-U,m=1<<p,B=m;do m-=y,o[I+(W>>U)+m]=_<<24|j<<16|C|0;while(m!==0);for(y=1<<c-1;W&y;)y>>=1;if(y!==0?(W&=y-1,W+=y):W=0,d++,--R[c]===0){if(c===Q)break;c=t[n+g[d]]}if(c>f&&(W&T)!==h){for(U===0&&(U=f),I+=B,p=c-U,E=1<<p;p+U<Q&&(E-=R[p+U],!(E<=0));)p++,E<<=1;if(M+=1<<p,e===LENS$1&&M>ENOUGH_LENS$1||e===DISTS$1&&M>ENOUGH_DISTS$1)return 1;h=W&T,o[h]=f<<24|p<<16|I-s|0}}return W!==0&&(o[I+W]=c-U<<24|64<<16|0),l.bits=f,0};var inftrees=inflate_table;const CODES=0,LENS=1,DISTS=2,{Z_FINISH:Z_FINISH$1,Z_BLOCK,Z_TREES,Z_OK:Z_OK$1,Z_STREAM_END:Z_STREAM_END$1,Z_NEED_DICT:Z_NEED_DICT$1,Z_STREAM_ERROR:Z_STREAM_ERROR$1,Z_DATA_ERROR:Z_DATA_ERROR$1,Z_MEM_ERROR:Z_MEM_ERROR$1,Z_BUF_ERROR,Z_DEFLATED}=constants$2,HEAD=16180,FLAGS=16181,TIME=16182,OS=16183,EXLEN=16184,EXTRA=16185,NAME=16186,COMMENT=16187,HCRC=16188,DICTID=16189,DICT=16190,TYPE=16191,TYPEDO=16192,STORED=16193,COPY_=16194,COPY=16195,TABLE=16196,LENLENS=16197,CODELENS=16198,LEN_=16199,LEN=16200,LENEXT=16201,DIST=16202,DISTEXT=16203,MATCH=16204,LIT=16205,CHECK=16206,LENGTH=16207,DONE=16208,BAD=16209,MEM=16210,SYNC=16211,ENOUGH_LENS=852,ENOUGH_DISTS=592,MAX_WBITS=15,DEF_WBITS=MAX_WBITS,zswap32=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function InflateState(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const inflateStateCheck=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<HEAD||t.mode>SYNC?1:0},inflateResetKeep=e=>{if(inflateStateCheck(e))return Z_STREAM_ERROR$1;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=HEAD,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(ENOUGH_LENS),t.distcode=t.distdyn=new Int32Array(ENOUGH_DISTS),t.sane=1,t.back=-1,Z_OK$1},inflateReset=e=>{if(inflateStateCheck(e))return Z_STREAM_ERROR$1;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,inflateResetKeep(e)},inflateReset2=(e,t)=>{let n;if(inflateStateCheck(e))return Z_STREAM_ERROR$1;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?Z_STREAM_ERROR$1:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,inflateReset(e))},inflateInit2=(e,t)=>{if(!e)return Z_STREAM_ERROR$1;const n=new InflateState;e.state=n,n.strm=e,n.window=null,n.mode=HEAD;const r=inflateReset2(e,t);return r!==Z_OK$1&&(e.state=null),r},inflateInit=e=>inflateInit2(e,DEF_WBITS);let virgin=!0,lenfix,distfix;const fixedtables=e=>{if(virgin){lenfix=new Int32Array(512),distfix=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(inftrees(LENS,e.lens,0,288,lenfix,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;inftrees(DISTS,e.lens,0,32,distfix,0,e.work,{bits:5}),virgin=!1}e.lencode=lenfix,e.lenbits=9,e.distcode=distfix,e.distbits=5},updatewindow=(e,t,n,r)=>{let o;const s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(t.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(o=s.wsize-s.wnext,o>r&&(o=r),s.window.set(t.subarray(n-r,n-r+o),s.wnext),r-=o,r?(s.window.set(t.subarray(n-r,n),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=o,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=o))),0},inflate$2=(e,t)=>{let n,r,o,s,g,l,u,c,d,B,Q,f,p,U,E=0,M,W,y,m,h,T,I,X;const F=new Uint8Array(4);let R,x;const w=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(inflateStateCheck(e)||!e.output||!e.input&&e.avail_in!==0)return Z_STREAM_ERROR$1;n=e.state,n.mode===TYPE&&(n.mode=TYPEDO),g=e.next_out,o=e.output,u=e.avail_out,s=e.next_in,r=e.input,l=e.avail_in,c=n.hold,d=n.bits,B=l,Q=u,X=Z_OK$1;e:for(;;)switch(n.mode){case HEAD:if(n.wrap===0){n.mode=TYPEDO;break}for(;d<16;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,F[0]=c&255,F[1]=c>>>8&255,n.check=crc32_1(n.check,F,2,0),c=0,d=0,n.mode=FLAGS;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=BAD;break}if((c&15)!==Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(c>>>=4,d-=4,I=(c&15)+8,n.wbits===0&&(n.wbits=I),I>15||I>n.wbits){e.msg="invalid window size",n.mode=BAD;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?DICTID:TYPE,c=0,d=0;break;case FLAGS:for(;d<16;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(n.flags=c,(n.flags&255)!==Z_DEFLATED){e.msg="unknown compression method",n.mode=BAD;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=BAD;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=crc32_1(n.check,F,2,0)),c=0,d=0,n.mode=TIME;case TIME:for(;d<32;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,F[2]=c>>>16&255,F[3]=c>>>24&255,n.check=crc32_1(n.check,F,4,0)),c=0,d=0,n.mode=OS;case OS:for(;d<16;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=crc32_1(n.check,F,2,0)),c=0,d=0,n.mode=EXLEN;case EXLEN:if(n.flags&1024){for(;d<16;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(F[0]=c&255,F[1]=c>>>8&255,n.check=crc32_1(n.check,F,2,0)),c=0,d=0}else n.head&&(n.head.extra=null);n.mode=EXTRA;case EXTRA:if(n.flags&1024&&(f=n.length,f>l&&(f=l),f&&(n.head&&(I=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(s,s+f),I)),n.flags&512&&n.wrap&4&&(n.check=crc32_1(n.check,r,f,s)),l-=f,s+=f,n.length-=f),n.length))break e;n.length=0,n.mode=NAME;case NAME:if(n.flags&2048){if(l===0)break e;f=0;do I=r[s+f++],n.head&&I&&n.length<65536&&(n.head.name+=String.fromCharCode(I));while(I&&f<l);if(n.flags&512&&n.wrap&4&&(n.check=crc32_1(n.check,r,f,s)),l-=f,s+=f,I)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=COMMENT;case COMMENT:if(n.flags&4096){if(l===0)break e;f=0;do I=r[s+f++],n.head&&I&&n.length<65536&&(n.head.comment+=String.fromCharCode(I));while(I&&f<l);if(n.flags&512&&n.wrap&4&&(n.check=crc32_1(n.check,r,f,s)),l-=f,s+=f,I)break e}else n.head&&(n.head.comment=null);n.mode=HCRC;case HCRC:if(n.flags&512){for(;d<16;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=BAD;break}c=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=TYPE;break;case DICTID:for(;d<32;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}e.adler=n.check=zswap32(c),c=0,d=0,n.mode=DICT;case DICT:if(n.havedict===0)return e.next_out=g,e.avail_out=u,e.next_in=s,e.avail_in=l,n.hold=c,n.bits=d,Z_NEED_DICT$1;e.adler=n.check=1,n.mode=TYPE;case TYPE:if(t===Z_BLOCK||t===Z_TREES)break e;case TYPEDO:if(n.last){c>>>=d&7,d-=d&7,n.mode=CHECK;break}for(;d<3;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}switch(n.last=c&1,c>>>=1,d-=1,c&3){case 0:n.mode=STORED;break;case 1:if(fixedtables(n),n.mode=LEN_,t===Z_TREES){c>>>=2,d-=2;break e}break;case 2:n.mode=TABLE;break;case 3:e.msg="invalid block type",n.mode=BAD}c>>>=2,d-=2;break;case STORED:for(c>>>=d&7,d-=d&7;d<32;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=BAD;break}if(n.length=c&65535,c=0,d=0,n.mode=COPY_,t===Z_TREES)break e;case COPY_:n.mode=COPY;case COPY:if(f=n.length,f){if(f>l&&(f=l),f>u&&(f=u),f===0)break e;o.set(r.subarray(s,s+f),g),l-=f,s+=f,u-=f,g+=f,n.length-=f;break}n.mode=TYPE;break;case TABLE:for(;d<14;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(n.nlen=(c&31)+257,c>>>=5,d-=5,n.ndist=(c&31)+1,c>>>=5,d-=5,n.ncode=(c&15)+4,c>>>=4,d-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=BAD;break}n.have=0,n.mode=LENLENS;case LENLENS:for(;n.have<n.ncode;){for(;d<3;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.lens[w[n.have++]]=c&7,c>>>=3,d-=3}for(;n.have<19;)n.lens[w[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,R={bits:n.lenbits},X=inftrees(CODES,n.lens,0,19,n.lencode,0,n.work,R),n.lenbits=R.bits,X){e.msg="invalid code lengths set",n.mode=BAD;break}n.have=0,n.mode=CODELENS;case CODELENS:for(;n.have<n.nlen+n.ndist;){for(;E=n.lencode[c&(1<<n.lenbits)-1],M=E>>>24,W=E>>>16&255,y=E&65535,!(M<=d);){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(y<16)c>>>=M,d-=M,n.lens[n.have++]=y;else{if(y===16){for(x=M+2;d<x;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(c>>>=M,d-=M,n.have===0){e.msg="invalid bit length repeat",n.mode=BAD;break}I=n.lens[n.have-1],f=3+(c&3),c>>>=2,d-=2}else if(y===17){for(x=M+3;d<x;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}c>>>=M,d-=M,I=0,f=3+(c&7),c>>>=3,d-=3}else{for(x=M+7;d<x;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}c>>>=M,d-=M,I=0,f=11+(c&127),c>>>=7,d-=7}if(n.have+f>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=BAD;break}for(;f--;)n.lens[n.have++]=I}}if(n.mode===BAD)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=BAD;break}if(n.lenbits=9,R={bits:n.lenbits},X=inftrees(LENS,n.lens,0,n.nlen,n.lencode,0,n.work,R),n.lenbits=R.bits,X){e.msg="invalid literal/lengths set",n.mode=BAD;break}if(n.distbits=6,n.distcode=n.distdyn,R={bits:n.distbits},X=inftrees(DISTS,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,R),n.distbits=R.bits,X){e.msg="invalid distances set",n.mode=BAD;break}if(n.mode=LEN_,t===Z_TREES)break e;case LEN_:n.mode=LEN;case LEN:if(l>=6&&u>=258){e.next_out=g,e.avail_out=u,e.next_in=s,e.avail_in=l,n.hold=c,n.bits=d,inffast(e,Q),g=e.next_out,o=e.output,u=e.avail_out,s=e.next_in,r=e.input,l=e.avail_in,c=n.hold,d=n.bits,n.mode===TYPE&&(n.back=-1);break}for(n.back=0;E=n.lencode[c&(1<<n.lenbits)-1],M=E>>>24,W=E>>>16&255,y=E&65535,!(M<=d);){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(W&&!(W&240)){for(m=M,h=W,T=y;E=n.lencode[T+((c&(1<<m+h)-1)>>m)],M=E>>>24,W=E>>>16&255,y=E&65535,!(m+M<=d);){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}c>>>=m,d-=m,n.back+=m}if(c>>>=M,d-=M,n.back+=M,n.length=y,W===0){n.mode=LIT;break}if(W&32){n.back=-1,n.mode=TYPE;break}if(W&64){e.msg="invalid literal/length code",n.mode=BAD;break}n.extra=W&15,n.mode=LENEXT;case LENEXT:if(n.extra){for(x=n.extra;d<x;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=DIST;case DIST:for(;E=n.distcode[c&(1<<n.distbits)-1],M=E>>>24,W=E>>>16&255,y=E&65535,!(M<=d);){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(!(W&240)){for(m=M,h=W,T=y;E=n.distcode[T+((c&(1<<m+h)-1)>>m)],M=E>>>24,W=E>>>16&255,y=E&65535,!(m+M<=d);){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}c>>>=m,d-=m,n.back+=m}if(c>>>=M,d-=M,n.back+=M,W&64){e.msg="invalid distance code",n.mode=BAD;break}n.offset=y,n.extra=W&15,n.mode=DISTEXT;case DISTEXT:if(n.extra){for(x=n.extra;d<x;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=BAD;break}n.mode=MATCH;case MATCH:if(u===0)break e;if(f=Q-u,n.offset>f){if(f=n.offset-f,f>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=BAD;break}f>n.wnext?(f-=n.wnext,p=n.wsize-f):p=n.wnext-f,f>n.length&&(f=n.length),U=n.window}else U=o,p=g-n.offset,f=n.length;f>u&&(f=u),u-=f,n.length-=f;do o[g++]=U[p++];while(--f);n.length===0&&(n.mode=LEN);break;case LIT:if(u===0)break e;o[g++]=n.length,u--,n.mode=LEN;break;case CHECK:if(n.wrap){for(;d<32;){if(l===0)break e;l--,c|=r[s++]<<d,d+=8}if(Q-=u,e.total_out+=Q,n.total+=Q,n.wrap&4&&Q&&(e.adler=n.check=n.flags?crc32_1(n.check,o,Q,g-Q):adler32_1(n.check,o,Q,g-Q)),Q=u,n.wrap&4&&(n.flags?c:zswap32(c))!==n.check){e.msg="incorrect data check",n.mode=BAD;break}c=0,d=0}n.mode=LENGTH;case LENGTH:if(n.wrap&&n.flags){for(;d<32;){if(l===0)break e;l--,c+=r[s++]<<d,d+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=BAD;break}c=0,d=0}n.mode=DONE;case DONE:X=Z_STREAM_END$1;break e;case BAD:X=Z_DATA_ERROR$1;break e;case MEM:return Z_MEM_ERROR$1;case SYNC:default:return Z_STREAM_ERROR$1}return e.next_out=g,e.avail_out=u,e.next_in=s,e.avail_in=l,n.hold=c,n.bits=d,(n.wsize||Q!==e.avail_out&&n.mode<BAD&&(n.mode<CHECK||t!==Z_FINISH$1))&&updatewindow(e,e.output,e.next_out,Q-e.avail_out),B-=e.avail_in,Q-=e.avail_out,e.total_in+=B,e.total_out+=Q,n.total+=Q,n.wrap&4&&Q&&(e.adler=n.check=n.flags?crc32_1(n.check,o,Q,e.next_out-Q):adler32_1(n.check,o,Q,e.next_out-Q)),e.data_type=n.bits+(n.last?64:0)+(n.mode===TYPE?128:0)+(n.mode===LEN_||n.mode===COPY_?256:0),(B===0&&Q===0||t===Z_FINISH$1)&&X===Z_OK$1&&(X=Z_BUF_ERROR),X},inflateEnd=e=>{if(inflateStateCheck(e))return Z_STREAM_ERROR$1;let t=e.state;return t.window&&(t.window=null),e.state=null,Z_OK$1},inflateGetHeader=(e,t)=>{if(inflateStateCheck(e))return Z_STREAM_ERROR$1;const n=e.state;return n.wrap&2?(n.head=t,t.done=!1,Z_OK$1):Z_STREAM_ERROR$1},inflateSetDictionary=(e,t)=>{const n=t.length;let r,o,s;return inflateStateCheck(e)||(r=e.state,r.wrap!==0&&r.mode!==DICT)?Z_STREAM_ERROR$1:r.mode===DICT&&(o=1,o=adler32_1(o,t,n,0),o!==r.check)?Z_DATA_ERROR$1:(s=updatewindow(e,t,n,n),s?(r.mode=MEM,Z_MEM_ERROR$1):(r.havedict=1,Z_OK$1))};var inflateReset_1=inflateReset,inflateReset2_1=inflateReset2,inflateResetKeep_1=inflateResetKeep,inflateInit_1=inflateInit,inflateInit2_1=inflateInit2,inflate_2$1=inflate$2,inflateEnd_1=inflateEnd,inflateGetHeader_1=inflateGetHeader,inflateSetDictionary_1=inflateSetDictionary,inflateInfo="pako inflate (from Nodeca project)",inflate_1$2={inflateReset:inflateReset_1,inflateReset2:inflateReset2_1,inflateResetKeep:inflateResetKeep_1,inflateInit:inflateInit_1,inflateInit2:inflateInit2_1,inflate:inflate_2$1,inflateEnd:inflateEnd_1,inflateGetHeader:inflateGetHeader_1,inflateSetDictionary:inflateSetDictionary_1,inflateInfo};function GZheader(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var gzheader=GZheader;const toString=Object.prototype.toString,{Z_NO_FLUSH,Z_FINISH,Z_OK,Z_STREAM_END,Z_NEED_DICT,Z_STREAM_ERROR,Z_DATA_ERROR,Z_MEM_ERROR}=constants$2;function Inflate$1(e){this.options=common.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15||(t.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new zstream,this.strm.avail_out=0;let n=inflate_1$2.inflateInit2(this.strm,t.windowBits);if(n!==Z_OK)throw new Error(messages[n]);if(this.header=new gzheader,inflate_1$2.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=strings.string2buf(t.dictionary):toString.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=inflate_1$2.inflateSetDictionary(this.strm,t.dictionary),n!==Z_OK)))throw new Error(messages[n])}Inflate$1.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,o=this.options.dictionary;let s,g,l;if(this.ended)return!1;for(t===~~t?g=t:g=t===!0?Z_FINISH:Z_NO_FLUSH,toString.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),s=inflate_1$2.inflate(n,g),s===Z_NEED_DICT&&o&&(s=inflate_1$2.inflateSetDictionary(n,o),s===Z_OK?s=inflate_1$2.inflate(n,g):s===Z_DATA_ERROR&&(s=Z_NEED_DICT));n.avail_in>0&&s===Z_STREAM_END&&n.state.wrap>0&&e[n.next_in]!==0;)inflate_1$2.inflateReset(n),s=inflate_1$2.inflate(n,g);switch(s){case Z_STREAM_ERROR:case Z_DATA_ERROR:case Z_NEED_DICT:case Z_MEM_ERROR:return this.onEnd(s),this.ended=!0,!1}if(l=n.avail_out,n.next_out&&(n.avail_out===0||s===Z_STREAM_END))if(this.options.to==="string"){let u=strings.utf8border(n.output,n.next_out),c=n.next_out-u,d=strings.buf2string(n.output,u);n.next_out=c,n.avail_out=r-c,c&&n.output.set(n.output.subarray(u,u+c),0),this.onData(d)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===Z_OK&&l===0)){if(s===Z_STREAM_END)return s=inflate_1$2.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0},Inflate$1.prototype.onData=function(e){this.chunks.push(e)},Inflate$1.prototype.onEnd=function(e){e===Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=common.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};const{Deflate,deflate,deflateRaw,gzip}=deflate_1$1;for(var deflate_1=deflate,fromByteArray_1=fromByteArray,lookup=[],code="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",i=0,len=code.length;i<len;++i)lookup[i]=code[i];function tripletToBase64(e){return lookup[e>>18&63]+lookup[e>>12&63]+lookup[e>>6&63]+lookup[e&63]}function encodeChunk(e,t,n){for(var r,o=[],s=t;s<n;s+=3)r=(e[s]<<16&16711680)+(e[s+1]<<8&65280)+(e[s+2]&255),o.push(tripletToBase64(r));return o.join("")}function fromByteArray(e){for(var t,n=e.length,r=n%3,o=[],s=16383,g=0,l=n-r;g<l;g+=s)o.push(encodeChunk(e,g,g+s>l?l:g+s));return r===1?(t=e[n-1],o.push(lookup[t>>2]+lookup[t<<4&63]+"==")):r===2&&(t=(e[n-2]<<8)+e[n-1],o.push(lookup[t>>10]+lookup[t>>4&63]+lookup[t<<2&63]+"=")),o.join("")}const encoder=new TextEncoder;new TextDecoder;function serializeHash(e){const t=JSON.stringify(e),n=encoder.encode(t),r=deflate_1(n);return fromByteArray_1(r)}async function getViews(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/views`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function createShareLink(e,t){if(!Authentication.token)throw new Error("Not authenticated");const r=(await getViews()).filter(l=>l.name===t);if(r.length===0)return console.warn("View does not exist or it is misspell"),null;const o=await fetch(`${exports.FORMANT_API_URL}/v1/admin/shares`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),s=exports.FORMANT_API_URL.replace("api","app"),{code:g}=await o.json();return`${s}/shares/${g}#${serializeHash({viewId:r[0].id})}`}const vailableAggregationIntervals=["day","week","month","year","hour","minute","quarter"],aggregateFunctions=["interval","start","end","sub","get"];function getVariance(e){return e.count<2?0:e.sumOfSquares/(e.count-1)}function getStandardDeviation(e){return Math.sqrt(getVariance(e))}function getMax(e){return e.max}function getMin(e){return e.min}function getAverage(e){return e.count===0?-1:e.sum/e.count}function getSum(e){return e.sum}function getCount(e){return e.count}const aggregateFunctionMap={min:getMin,max:getMax,"standard deviation":getStandardDeviation,average:getAverage,sum:getSum,count:getCount},aggregateByDateFunctions={day:{interval:eachDayOfInterval,start:startOfDay,end:endOfDay,sub:subDays,get:getDay},week:{interval:eachWeekOfInterval,start:startOfWeek,end:endOfWeek,sub:subWeeks,get:getWeek},month:{interval:eachMonthOfInterval,start:startOfMonth,end:endOfMonth,sub:subMonths,get:getMonth},year:{interval:eachYearOfInterval,start:startOfYear,end:endOfYear,sub:subYears,get:getYear},hour:{interval:eachHourOfInterval,start:startOfHour,end:endOfHour,sub:subHours,get:getHours},minute:{interval:eachMinuteOfInterval,start:startOfMinute,end:endOfMinute,sub:subMinutes,get:getMinutes},quarter:{interval:eachQuarterOfInterval,start:startOfQuarter,end:endOfQuarter,sub:subQuarters,get:getQuarter}},formatTimeFrameText=(e,t)=>e.split("/")[0]+"/"+e.split("/")[1]+"–"+t.split("/")[0]+"/"+t.split("/")[1];async function queryEvents(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/events/query`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function eventsCounter(e,t,n,r,o){const s=aggregateByDateFunctions[t];return await Promise.all(Array(n).fill(0).map(async(g,l)=>{const u=new Date(r),c=s.sub(s.start(u),n-l-1),d=s.sub(s.end(u),n-l-1),B=formatTimeFrameText(c.toLocaleDateString(),d.toLocaleDateString()),Q=await queryEvents({...o,eventTypes:e,start:new Date(c).toISOString(),end:new Date(d).toISOString()});return{date:B,events:Q}}))}async function getAnnotationCount(e,t){return(await queryEvents({...e,eventTypes:["annotation"]})).filter(s=>!!s.tags&&Object.keys(s.tags).includes(t)).reduce((s,g)=>{const l=g.tags[t];return l in s?(s[l]+=1,s):(s[l]=1,s)},{})}async function getAnnotationCountByIntervals(e,t,n){const{end:r,start:o}=e,g=aggregateByDateFunctions[n].interval({start:new Date(o),end:new Date(r)}),l=g.map((c,d)=>{const B=new Date(c).toISOString(),Q=d===g.length-1?new Date(Date.now()).toISOString():new Date(g[d+1]);return getAnnotationCount({...e,start:B,end:Q},t)}),u=await Promise.all(l);return g.map((c,d)=>({date:new Date(c).toISOString(),annotations:u[d]}))}async function getTelemetry(e,t,n,r,o,s){let g=e;Array.isArray(e)||(g=[e]);let l=t;return Array.isArray(t)||(l=[t]),(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify({deviceIds:g,end:r.toISOString(),names:l,start:n.toISOString(),tags:o,latestOnly:s}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getRealtimeSessions(){if(!Authentication.token)throw new Error("Not authenticated");const e=defaultRtcClientPool.get();try{return await e.getSessions()}finally{await e.shutdown()}}async function getPeers(){if(!Authentication.token)throw new Error("Not authenticated");const e=defaultRtcClientPool.get();try{return await e.getPeers()}finally{await e.shutdown()}}async function createDevice(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchDevice(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getDevicesData(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function queryDevicesData(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function disableDevice(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}/disable`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}class Device extends BaseDevice{constructor(t,n,r,o){super(),this.id=t,this.name=n,this.organizationId=r,this.tags=o}async getLatestTelemetry(){return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async getConfiguration(t=!1){let n=await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});const r=await n.json();if(!r.state.reportedConfiguration)throw new Error("Device has no configuration, has it ever been turned on?");const o=t?r.desiredConfigurationVersion:r.state.reportedConfiguration.version;return n=await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${this.id}/configurations/${o}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),(await n.json()).document}async getAgentVersion(){var r;const n=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${this.id}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return(r=n==null?void 0:n.state)==null?void 0:r.agentVersion}async getFileUrl(t){return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[t]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).fileUrls}async startRealtimeConnection(t={}){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const{sessionType:n,deadlineMs:r=1e4,maxConnectRetries:o=3}=typeof t=="number"?{sessionType:t}:t,g=getRtcClientPool({sessionType:n}).get(this.handleMessage);let l=!1;const u=new Promise((d,B)=>setTimeout(()=>{l=!0,B(new Error("Connection timed out: the connection could not be finalized in time, possibly due to network issues or misconfigured settings."))},r)),c=async()=>{if("isReady"in g)for(;!g.isReady();)this.assertNotCancelled(l),await delay(100);const d=await this.getRemoteDevicePeerId(g);this.assertNotCancelled(l);let B;for(let f=0;f<o&&(B=await g.connect(d),!B);f++)delay(100),this.assertNotCancelled(l);if(!B)throw new Error(`Session could not be created: exhausted ${o} retries`);let Q=0;for(;!l&&g.getConnectionStatus(d)!=="connected";)await delay(100),Q+=1;return this.assertNotCancelled(l),console.debug(`${new Date().toISOString()} :: Connection completed after ${Q} retries`),d};return Promise.race([c(),u]).then(d=>{this.remoteDevicePeerId=d,this.initConnectionMonitoring(),this.rtcClient=g,this.emit("connect")}).catch(d=>{throw console.debug(`${new Date().toISOString()} :: Connection failed: %o`,d),this.remoteDevicePeerId=null,g.shutdown().catch(B=>{console.error("rtcClient cannot shutdown: %o",B)}),this.emit("connection_failed",d),d})}async getRemoteDevicePeerId(t){const r=(await t.getPeers()).find(o=>o.deviceId===this.id);if(!isRtcPeer(r))throw new Error("Cannot find peer, is the robot offline?");return r.id}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let t=!1;if(this.rtcClient){const r=this.rtcClient.getConnections().find(o=>o.getRemotePeerId()===this.remoteDevicePeerId&&o.isActive());(r===void 0||!r.isReady())&&(console.debug(`${new Date().toISOString()} :: data channel closed`),t=!0)}(!this.rtcClient||!this.remoteDevicePeerId||await this.rtcClient.getConnectionStatsInfo(this.remoteDevicePeerId)===void 0||t)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(n=>{console.error(n)}))},1e3)}async getRemotePeer(){const n=(await defined$1(this.rtcClient,"Realtime connection has not been started").getPeers()).find(r=>r.deviceId===this.id);return defined$1(n,"Could not find remote peer for device "+this.id)}async stopRealtimeConnection(){let t=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.remoteDevicePeerId?(await this.rtcClient.disconnect(this.remoteDevicePeerId),this.remoteDevicePeerId=null):t=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(t)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async isInRealtimeSession(){const t=await getPeers(),n=await getRealtimeSessions(),r=t.find(o=>o.deviceId===this.id);return r?n[r.id].length>0:!1}async getAvailableCommands(){return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/command-templates/`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(r=>({name:r.name,id:r.id,command:r.command,description:r.description,parameterEnabled:r.parameterEnabled,parameterValue:r.parameterValue,parameterMeta:r.parameterMeta,enabled:r.enabled,tags:r.tags}))}async sendCommand(t,n,r,o){var d;const g=(await this.getAvailableCommands()).find(B=>B.name===t);if(!g)throw new Error(`Could not find command with name "${t}"`);let l="";n===void 0?g.parameterEnabled&&g.parameterValue&&(l=g.parameterValue):l=n;let u={value:l,scrubberTime:(r||new Date).toISOString(),meta:{...g.parameterMeta,...o}};return await fetch(`${exports.FORMANT_API_URL}/v1/admin/commands`,{method:"POST",body:JSON.stringify({commandTemplateId:g.id,organizationId:this.organizationId,deviceId:this.id,command:g.command,parameter:u,userId:(d=Authentication.currentUser)==null?void 0:d.id}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async getCommand(t){return await fetch(`${exports.FORMANT_API_URL}/v1/admin/commands/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async createCaptureStream(t){const r=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/capture-sessions`,{method:"POST",body:JSON.stringify({deviceId:this.id,streamName:t,tags:{}}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return new CaptureStream(r)}async getTelemetry(t,n,r,o,s,g,l){if(s!==void 0||g!==void 0)throw new Error("Limit and offset are not supported in this method");return await getTelemetry(this.id,t,n,r,o,l)}async queryEvents(t){if(t.deviceIds)throw new Error("Cannot filter multiple devices via Device class");return t.deviceIds=[this.id],queryEvents(t)}async getTelemetryStreams(){var l,u;const t=await this.getConfiguration(),n=await fetch(`${exports.FORMANT_API_URL}/v1/queries/metadata/stream-names`,{method:"POST",body:JSON.stringify({deviceIds:[this.id]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),r=[],o=[];return(u=(l=t.telemetry)==null?void 0:l.streams)==null||u.forEach(c=>{c.disabled!==!0&&r.push(c.name),c.onDemand===!0&&o.push(c.name)}),console.log(o),(await n.json()).items.filter(c=>!r.includes(c)).map(c=>({name:c,onDemand:o.includes(c)}))}async createInterventionRequest(t,n,r,o){return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"POST",body:JSON.stringify({message:t,interventionType:n,time:new Date().toISOString(),deviceId:this.id,tags:o,data:r}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async addInterventionResponse(t,n,r){return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/intervention-responses`,{method:"POST",body:JSON.stringify({interventionId:t,interventionType:n,data:r}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async getAnnotationCount(t,n){return await getAnnotationCount({...t,deviceIds:[this.id]},n)}async getAnnotationCountByIntervals(t,n,r){return await getAnnotationCountByIntervals({...t,deviceIds:[this.id]},n,r)}async eventsCounter(t,n,r,o,s){return await eventsCounter(t,n,r,o,{...s,deviceIds:[this.id]})}async createShareLink(t,n){return t.scope.deviceIds=[this.id],await createShareLink(t,n)}}he(Device,"createDevice",createDevice),he(Device,"patchDevice",patchDevice),he(Device,"getDevicesData",getDevicesData),he(Device,"queryDevicesData",queryDevicesData),he(Device,"disableDevice",disableDevice);class PeerDevice extends BaseDevice{constructor(n){super();he(this,"id");he(this,"telemetryStreamActive",!1);he(this,"streamTelemetry",{});this.peerUrl=n}async getLatestTelemetry(){this.telemetryStreamActive||this.subscribeToTelemetry();const n=this.streamTelemetry;return Object.entries(n).map(([o,s])=>({deviceId:this.id,streamName:o,streamType:"json",currentValue:s,currentValueTime:s.timestamp,tags:{}}))}async getTelemetry(n,r,o,s,g,l,u){if(Array.isArray(n))throw new Error("Multiple stream names not supported");if(s)throw new Error("Tags not supported");if(u&&g===void 0)g=1;else if(u&&g!==void 0)throw new Error("latestOnly and limit cannot be used together");let c=`${this.peerUrl}/v1/querydatapoints?stream_name=${n}&start=${r.toISOString()}&end=${o.toISOString()}`;g!=null&&g>0&&(c+=`&limit=${g}`),l!=null&&l>=0&&(c+=`&offset=${l}`);const B=await(await fetch(c)).json(),Q=[];for(const f of B.results){const p=parseInt(f.timestamp),U=f.tags.data_type;delete f.tags.data_type,Q.push({deviceId:this.id,name:f.stream,points:[[p,this.getPointPayload(U,f)]],tags:f.tags,type:U})}return Q.reverse()}async queryEvents(n){const r=["id","viewed","keyword","message","sort","eventTypes","notificationEnabled","userIds","annotationTemplateIds","disableNullMatches","severities","deviceIds","names","types","tags","notNames"];this.checkKeysAndThrow(n,r);let o=`${this.peerUrl}/v1/queryevents?start=${n.start}&end=${n.end}`;n.count!=null&&n.count>0&&(o+=`&limit=${n.count}`),n.offset!=null&&n.offset>=0&&(o+=`&offset=${n.offset}`);const g=await(await fetch(o)).json(),l=[];for(const u of g.results){const c=parseInt(u.timestamp),d={deviceId:this.id,time:new Date(c).toISOString(),message:u.message,notificationEnabled:u.notificationEnabled,type:u.type,tags:u.tags};u.id!==""&&(d.id=u.id),u.type!==""&&(d.type=u.type),u.streamName!==""&&(d.streamName=u.streamName),u.streamType!==""&&(d.streamType=u.streamType),u.severity!==""&&(d.severity=u.severity.toLowerCase()),u.tags&&(d.tags=u.tags),u.endTimestamp!=="0"&&(d.endTime=new Date(parseInt(u.endTimestamp)).toISOString()),l.push(d)}return l.reverse()}checkKeysAndThrow(n,r){const o=r.filter(s=>s in n);if(o.length>0)throw new Error(`Filters not currently supported: ${o.join(", ")}.`)}getPointPayload(n,r){switch(n){case"numeric":return r.numeric.value;case"numeric set":return r.numericSet.numerics;case"text":return r.text.value;case"json":return r.json.value;case"bitset":const o=[],s=[];for(const g of r.bitset.bits)o.push(g.key),s.push(g.value);return{keys:o,values:s};case"location":return r.location;case"health":return r.health;case"battery":return r.battery;default:return{}}}subscribeToTelemetry(){this.telemetryStreamActive=!0;let n=0;const r=new XMLHttpRequest;r.responseType="text",r.addEventListener("error",o=>{this.handleXHRError("error")}),r.addEventListener("abort",o=>{this.handleXHRError("abort")}),r.addEventListener("timeout",o=>{this.handleXHRError("timeout")}),r.addEventListener("readystatechange",o=>{r.readyState===XMLHttpRequest.DONE&&this.handleXHRError("closed")}),r.addEventListener("progress",o=>{const s=o.loaded,g=s-n;n=s,r.responseText.substr(-g).split(`
|
|
63
|
-
`).forEach(c=>{var d;if(c.length>0){const B=JSON.parse(c);if((d=B.result)!=null&&d.datapoint){const Q=B.result.datapoint,f=Q.stream;delete Q.stream,this.streamTelemetry[f]=Q}}})}),r.open("POST",`${this.peerUrl}/v1/telemetry`),r.send()}handleXHRError(n){console.warn(`Telemetry stream ended: ${n}`),this.telemetryStreamActive=!1}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.document}async getViews(){return(await(await fetch(`${this.peerUrl}/v1/views`)).json()).views}async startRealtimeConnection(n){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const r=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:n});for(await r.connectLan(this.peerUrl);r.getConnectionStatus(this.peerUrl)!=="connected";)await delay(100);this.rtcClient=r,this.initConnectionMonitoring()}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let n=!1;this.rtcClient&&this.rtcClient.getConnectionStatus(this.peerUrl)!=="connected"&&(console.debug(`${new Date().toISOString()} :: data channel closed`),n=!0),(!this.rtcClient||n)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(r=>{console.error(r)}))},1e3)}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){let n=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.id?(await this.rtcClient.disconnect(this.id),this.remoteDevicePeerId=null):n=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(n)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async getCommandMetadata(){return(await fetch(`${this.peerUrl}/v1/commands`)).json()}async sendCommand(n,r,o,s){const g={value:r,scrubberTime:(o||new Date).toISOString(),meta:s};return await fetch(`${this.peerUrl}/v1/enqueue-command`,{method:"POST",body:JSON.stringify({command:n,parameter:g}),headers:{"Content-Type":"application/json"}})}}async function addDeviceToFleet(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}`,{method:"PATCH",body:JSON.stringify({fleetId:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function aggregateTelemetry(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}async function deleteFleet(e){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async function getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsRows(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryDevices(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(r=>new Device(r.id,r.name,r.organizationId,r.tags))}async function getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let e=new URLSearchParams("");typeof window!="undefined"&&window.location&&(e=new URLSearchParams(window.location.search));const t=e.get("group");if(t===null||t.trim()==="")return;const n=await fetch(`${exports.FORMANT_API_URL}/v1/admin/groups/`+t,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:r,tagValue:o}=await n.json();return await queryDevices({tags:{[r]:[o]},enabled:!0,type:"default"})}async function getDevice(e){if(!Authentication.token)throw new Error("Not authenticated");const n=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),r=n.name;return new Device(e,r,n.organizationId,n.tags)}async function getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const t=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return t.items,t.items.map(n=>new Device(n.id,n.name,defined$1(Authentication.currentOrganization),n.tags))}async function getEvent(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/events/query/id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getFileUrl(e){const n=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[e]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(n.fileUrls.length===0)throw new Error("File not found");return n.fileUrls[0]}async function getFleet(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getFleetDevices(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}/devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getLatestTelemetry(...e){const t=e.flat().filter(o=>!!o);return t.length===0?[]:(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await getDevices()).filter(o=>n.includes(o.id))}async function getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=(await(await fetch(`${exports.FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>o.deviceId);return(await getDevices()).filter(o=>n.includes(o.id))}async function getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(n=>n.enabled)}async function getTaskReportRows(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function listFleets(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function patchFleet(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchStream(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/streams/${e.id}`,{method:"PATCH",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchView(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/views/${e.id}`,{method:"PATCH",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryAnalytics(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function createFleet(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getAllEventTriggerGroup(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getEventTriggerGroup(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchEventTriggerGroup(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups/${e}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}const $e=class{static async setDefaultDevice(t){$e.defaultDeviceId=t}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!$e.defaultDeviceId)throw new Error("No known default device");const r=(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(g=>g.id===$e.defaultDeviceId),o=r.name,s=new Device($e.defaultDeviceId,o,defined$1(Authentication.currentOrganization),r.tags);return $e.knownContext.push(new WeakRef(s)),s}static async getPeerDevice(t){const n=new PeerDevice(t);return n.id=await n.getDeviceId(),n}static async getDevice(t){const n=await getDevice(t);return $e.knownContext.push(new WeakRef(n)),n}};let Fleet=$e;he(Fleet,"defaultDeviceId"),he(Fleet,"knownContext",[]),he(Fleet,"createFleet",createFleet),he(Fleet,"listFleets",listFleets),he(Fleet,"getFleet",getFleet),he(Fleet,"patchFleet",patchFleet),he(Fleet,"deleteFleet",deleteFleet),he(Fleet,"addDeviceToFleet",addDeviceToFleet),he(Fleet,"getFleetDevices",getFleetDevices),he(Fleet,"aggregateTelemetry",aggregateTelemetry),he(Fleet,"createShareLink",createShareLink),he(Fleet,"eventsCounter",eventsCounter),he(Fleet,"getAnalyticStreams",getAnalyticStreams),he(Fleet,"getAnalyticsModules",getAnalyticsModules),he(Fleet,"getAnalyticsRows",getAnalyticsRows),he(Fleet,"getAnnotationCount",getAnnotationCount),he(Fleet,"getAnnotationCountByIntervals",getAnnotationCountByIntervals),he(Fleet,"getCurrentGroup",getCurrentGroup),he(Fleet,"getDevices",getDevices),he(Fleet,"getEvent",getEvent),he(Fleet,"getFileUrl",getFileUrl),he(Fleet,"getInterventions",getInterventions),he(Fleet,"getLatestTelemetry",getLatestTelemetry),he(Fleet,"getOnlineDevices",getOnlineDevices),he(Fleet,"getPeers",getPeers),he(Fleet,"getRealtimeDevices",getRealtimeDevices),he(Fleet,"getRealtimeSessions",getRealtimeSessions),he(Fleet,"getStreams",getStreams),he(Fleet,"getTaskReportRows",getTaskReportRows),he(Fleet,"getTaskReportTables",getTaskReportTables),he(Fleet,"getTelemetry",getTelemetry),he(Fleet,"getViews",getViews),he(Fleet,"patchStream",patchStream),he(Fleet,"patchView",patchView),he(Fleet,"queryAnalytics",queryAnalytics),he(Fleet,"queryDevices",queryDevices),he(Fleet,"queryEvents",queryEvents),he(Fleet,"queryTelemetry",queryTelemetry),he(Fleet,"getAllEventTriggerGroup",getAllEventTriggerGroup),he(Fleet,"getEventTriggerGroup",getEventTriggerGroup),he(Fleet,"patchEventTriggergroup",patchEventTriggerGroup);class KeyValue{static async set(t,n,r){try{const o=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value",{method:"POST",body:JSON.stringify({organizationId:defined$1(Authentication.currentUser).organizationId,key:t,value:n,tags:r}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),s=await o.json();if(o.status!==200)throw new Error(s.message)}catch(o){throw o}}static async get(t){try{const n=await fetch(exports.FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),r=await n.json();if(n.status!==200)throw new Error(r.message);return r.value}catch(n){throw n}}static async list(){try{const t=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),n=await t.json();if(t.status!==200)throw new Error(n.message);return n.items}catch(t){throw t}}static async delete(t){try{if(!(await fetch(exports.FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to handle request");return}catch(n){throw n}}static async query(t){try{const n=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value/query",{method:"POST",body:JSON.stringify({keys:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});if(!n.ok)throw new Error("Unable to handle request");return(await n.json()).items}catch(n){throw n}}}class Role{static async listRoles(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createRole(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getRole(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchRole(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteRole(t){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}}class User{static async listUsers(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createUser(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getUser(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchUser(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteUser(t){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"PATCH",body:JSON.stringify({enabled:!1,roleId:null,teamId:null}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}}const viewer="viewer",operator="operator",administrator="administrator",accessLevels=["viewer","operator","administrator"],aggregateLevels=["year","month","week","day","hour","minute"],annotationTypes=["tag","sheet","user"],eventTypes=["triggered-event","datapoint-event","device-online","device-offline","intervention-request","teleop-session-record","port-forwarding-session-record","command-request","command-response","command-delivery","intervention-response","custom","comment","system","annotation","task-summary","stateful"],healthStatuses=["unknown","operational","offline","error"],interventionTypes=["selection","labeling","teleop"],severities=["info","warning","error","critical"],videoMimeTypes=["video/mp4"],timeout=e=>new Promise(t=>setTimeout(t,e*1e3));try{const e=typeof window!="undefined"&&window.location?new URLSearchParams(window.location.search):new URLSearchParams(""),t=e.get("device");t&&Fleet.setDefaultDevice(t);const n=e.get("auth");n&&Authentication.loginWithToken(n),e.get("module")&&Authentication.listenForRefresh(),typeof window!="undefined"&&App.listenForConnectionEvents()}catch(e){}var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,typeof t!="symbol"?t+"":t,n),n);const millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};class H264Decoder{constructor(t,n,r){__publicField(this,"worker"),__publicField(this,"onReceive"),__publicField(this,"onError"),__publicField(this,"onReceiveMessage",s=>{const{data:g}=s;if(g.error){const l=new Error(`${g.error}`);l.cause=g.error,console.warn("H264 worker failure",{error:l}),this.onError(g.index);return}this.onReceive(g)});var o;this.worker=t,(o=this.worker)==null||o.addEventListener("message",this.onReceiveMessage),this.onReceive=n,this.onError=r}post(t,n,r,o){var s;(s=this.worker)==null||s.postMessage({timestamp:t,encodedFrame:n,flags:r,index:o})}release(){var t,n;(t=this.worker)==null||t.removeEventListener("message",this.onReceiveMessage),(n=this.worker)==null||n.terminate(),this.worker=void 0}}class YUVCanvas{constructor(t){__publicField(this,"gl"),__publicField(this,"program"),__publicField(this,"texturePosBuffer"),__publicField(this,"textureRef"),__publicField(this,"height",0),__publicField(this,"width",0),this.gl=t,this.program=this.initProgram();const{texturePosBuffer:n}=this.initBuffers();this.texturePosBuffer=n;const{textureRef:r}=this.initTextures();this.textureRef=r}draw(t){const{gl:n,height:r,width:o,texturePosBuffer:s,textureRef:g}=this;n.viewport(0,0,o,r);const l=new Float32Array([1,0,0,0,1,1,0,1]);return n.bindBuffer(n.ARRAY_BUFFER,s),n.bufferData(n.ARRAY_BUFFER,l,n.DYNAMIC_DRAW),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,g),n.texImage2D(n.TEXTURE_2D,0,n.LUMINANCE,o,r+r/2,0,n.LUMINANCE,n.UNSIGNED_BYTE,t),n.drawArrays(n.TRIANGLE_STRIP,0,4),n.getError()}initProgram(){const{gl:t}=this,n=`
|
|
63
|
+
`).forEach(c=>{var d;if(c.length>0){const B=JSON.parse(c);if((d=B.result)!=null&&d.datapoint){const Q=B.result.datapoint,f=Q.stream;delete Q.stream,this.streamTelemetry[f]=Q}}})}),r.open("POST",`${this.peerUrl}/v1/telemetry`),r.send()}handleXHRError(n){console.warn(`Telemetry stream ended: ${n}`),this.telemetryStreamActive=!1}async getDeviceId(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.id}async getConfiguration(){return(await(await fetch(`${this.peerUrl}/v1/config`)).json()).configuration.document}async getViews(){return(await(await fetch(`${this.peerUrl}/v1/views`)).json()).views}async startRealtimeConnection(n){if(console.debug(`${new Date().toISOString()} :: Connection start requested`),this.rtcClient&&this.connectionMonitorInterval!==void 0)throw new Error(`Already created realtime connection to device ${this.id}`);this.rtcClient&&console.warn("overwriting existing rtcClient due to missing connectionMonitorInterval");const r=new distExports.RtcClient({lanOnlyMode:!0,receive:this.handleMessage,sessionType:n});for(await r.connectLan(this.peerUrl);r.getConnectionStatus(this.peerUrl)!=="connected";)await delay(100);this.rtcClient=r,this.initConnectionMonitoring()}initConnectionMonitoring(){this.connectionMonitorInterval=setInterval(async()=>{let n=!1;this.rtcClient&&this.rtcClient.getConnectionStatus(this.peerUrl)!=="connected"&&(console.debug(`${new Date().toISOString()} :: data channel closed`),n=!0),(!this.rtcClient||n)&&(this.emit("disconnect"),this.stopRealtimeConnection().catch(r=>{console.error(r)}))},1e3)}async getRemotePeer(){return{id:this.peerUrl,organizationId:"",deviceId:this.id,capabilities:[],capabilitySet:{}}}async stopRealtimeConnection(){let n=!1;if(this.rtcClient){this.stopConnectionMonitoring(),this.id?(await this.rtcClient.disconnect(this.id),this.remoteDevicePeerId=null):n=!0;try{await this.rtcClient.shutdown()}finally{this.rtcClient=void 0}}if(n)throw new Error(`Realtime connection hasn't been started for ${this.id}`)}async getCommandMetadata(){return(await fetch(`${this.peerUrl}/v1/commands`)).json()}async sendCommand(n,r,o,s){const g={value:r,scrubberTime:(o||new Date).toISOString(),meta:s};return await fetch(`${this.peerUrl}/v1/enqueue-command`,{method:"POST",body:JSON.stringify({command:n,parameter:g}),headers:{"Content-Type":"application/json"}})}}async function addDeviceToFleet(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}`,{method:"PATCH",body:JSON.stringify({fleetId:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function aggregateTelemetry(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/queries`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).aggregates}async function deleteFleet(e){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}async function getAnalyticStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsModules(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/analytics-modules`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getAnalyticsRows(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/rows`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryDevices(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/query`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(r=>new Device(r.id,r.name,r.organizationId,r.tags))}async function getCurrentGroup(){if(!Authentication.token)throw new Error("Not authenticated");let e=new URLSearchParams("");typeof window!="undefined"&&window.location&&(e=new URLSearchParams(window.location.search));const t=e.get("group");if(t===null||t.trim()==="")return;const n=await fetch(`${exports.FORMANT_API_URL}/v1/admin/groups/`+t,{headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),{tagKey:r,tagValue:o}=await n.json();return await queryDevices({tags:{[r]:[o]},enabled:!0,type:"default"})}async function getDevice(e){if(!Authentication.token)throw new Error("Not authenticated");const n=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/devices/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json(),r=n.name;return new Device(e,r,n.organizationId,n.tags)}async function getDevices(){if(!Authentication.token)throw new Error("Not authenticated");const t=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",body:JSON.stringify({enabled:!0,type:"default"}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();return t.items,t.items.map(n=>new Device(n.id,n.name,defined$1(Authentication.currentOrganization),n.tags))}async function getEvent(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/events/query/id=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getFileUrl(e){const n=await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/files/query`,{method:"POST",body:JSON.stringify({fileIds:[e]}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json();if(n.fileUrls.length===0)throw new Error("File not found");return n.fileUrls[0]}async function getFleet(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getFleetDevices(e){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}/devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getInterventions(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/intervention-requests`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getLatestTelemetry(...e){const t=e.flat().filter(o=>!!o);return t.length===0?[]:(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/stream-current-value`,{method:"POST",body:JSON.stringify({deviceIds:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getOnlineDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/online-devices`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items;return(await getDevices()).filter(o=>n.includes(o.id))}async function getRealtimeDevices(){if(!Authentication.token)throw new Error("Not authenticated");const n=(await(await fetch(`${exports.FORMANT_API_URL}/v1/signaling/peers`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.map(o=>o.deviceId);return(await getDevices()).filter(o=>n.includes(o.id))}async function getStreams(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/streams`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.filter(n=>n.enabled)}async function getTaskReportRows(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/task-report-rows`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getTaskReportTables(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics/task-reports`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function listFleets(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function patchFleet(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets/${e}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchStream(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/streams/${e.id}`,{method:"PATCH",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchView(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/views/${e.id}`,{method:"PATCH",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function queryAnalytics(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/queries/analytics`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function createFleet(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/fleets`,{method:"POST",body:JSON.stringify(e),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function getAllEventTriggerGroup(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}async function getEventTriggerGroup(e){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups/${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}async function patchEventTriggerGroup(e,t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/event-trigger-groups/${e}`,{method:"PATCH",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}const $e=class{static async setDefaultDevice(t){$e.defaultDeviceId=t}static async getCurrentDevice(){if(!Authentication.token)throw new Error("Not authenticated");if(!$e.defaultDeviceId)throw new Error("No known default device");const r=(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/device-details/query`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items.find(g=>g.id===$e.defaultDeviceId),o=r.name,s=new Device($e.defaultDeviceId,o,defined$1(Authentication.currentOrganization),r.tags);return $e.knownContext.push(new WeakRef(s)),s}static async getPeerDevice(t){const n=new PeerDevice(t);return n.id=await n.getDeviceId(),n}static async getDevice(t){const n=await getDevice(t);return $e.knownContext.push(new WeakRef(n)),n}};let Fleet=$e;he(Fleet,"defaultDeviceId"),he(Fleet,"knownContext",[]),he(Fleet,"createFleet",createFleet),he(Fleet,"listFleets",listFleets),he(Fleet,"getFleet",getFleet),he(Fleet,"patchFleet",patchFleet),he(Fleet,"deleteFleet",deleteFleet),he(Fleet,"addDeviceToFleet",addDeviceToFleet),he(Fleet,"getFleetDevices",getFleetDevices),he(Fleet,"aggregateTelemetry",aggregateTelemetry),he(Fleet,"createShareLink",createShareLink),he(Fleet,"eventsCounter",eventsCounter),he(Fleet,"getAnalyticStreams",getAnalyticStreams),he(Fleet,"getAnalyticsModules",getAnalyticsModules),he(Fleet,"getAnalyticsRows",getAnalyticsRows),he(Fleet,"getAnnotationCount",getAnnotationCount),he(Fleet,"getAnnotationCountByIntervals",getAnnotationCountByIntervals),he(Fleet,"getCurrentGroup",getCurrentGroup),he(Fleet,"getDevices",getDevices),he(Fleet,"getEvent",getEvent),he(Fleet,"getFileUrl",getFileUrl),he(Fleet,"getInterventions",getInterventions),he(Fleet,"getLatestTelemetry",getLatestTelemetry),he(Fleet,"getOnlineDevices",getOnlineDevices),he(Fleet,"getPeers",getPeers),he(Fleet,"getRealtimeDevices",getRealtimeDevices),he(Fleet,"getRealtimeSessions",getRealtimeSessions),he(Fleet,"getStreams",getStreams),he(Fleet,"getTaskReportRows",getTaskReportRows),he(Fleet,"getTaskReportTables",getTaskReportTables),he(Fleet,"getTelemetry",getTelemetry),he(Fleet,"getViews",getViews),he(Fleet,"patchStream",patchStream),he(Fleet,"patchView",patchView),he(Fleet,"queryAnalytics",queryAnalytics),he(Fleet,"queryDevices",queryDevices),he(Fleet,"queryEvents",queryEvents),he(Fleet,"queryTelemetry",queryTelemetry),he(Fleet,"getAllEventTriggerGroup",getAllEventTriggerGroup),he(Fleet,"getEventTriggerGroup",getEventTriggerGroup),he(Fleet,"patchEventTriggergroup",patchEventTriggerGroup);class KeyValue{static async set(t,n,r){try{const o=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value",{method:"POST",body:JSON.stringify({organizationId:defined$1(Authentication.currentUser).organizationId,key:t,value:n,tags:r}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),s=await o.json();if(o.status!==200)throw new Error(s.message)}catch(o){throw o}}static async get(t){try{const n=await fetch(exports.FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),r=await n.json();if(n.status!==200)throw new Error(r.message);return r.value}catch(n){throw n}}static async list(){try{const t=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value",{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}}),n=await t.json();if(t.status!==200)throw new Error(n.message);return n.items}catch(t){throw t}}static async delete(t){try{if(!(await fetch(exports.FORMANT_API_URL+`/v1/admin/key-value/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).ok)throw new Error("Unable to handle request");return}catch(n){throw n}}static async query(t){try{const n=await fetch(exports.FORMANT_API_URL+"/v1/admin/key-value/query",{method:"POST",body:JSON.stringify({keys:t}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}});if(!n.ok)throw new Error("Unable to handle request");return(await n.json()).items}catch(n){throw n}}}class Role{static async listRoles(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createRole(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getRole(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchRole(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteRole(t){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/roles/${t}`,{method:"DELETE",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}}class User{static async listUsers(){if(!Authentication.token)throw new Error("Not authenticated");return(await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()).items}static async createUser(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users`,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async getUser(t){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async patchUser(t,n){if(!Authentication.token)throw new Error("Not authenticated");return await(await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"PATCH",body:JSON.stringify(n),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})).json()}static async deleteUser(t){if(!Authentication.token)throw new Error("Not authenticated");await fetch(`${exports.FORMANT_API_URL}/v1/admin/users/${t}`,{method:"PATCH",body:JSON.stringify({enabled:!1,roleId:null,teamId:null}),headers:{"Content-Type":"application/json",Authorization:"Bearer "+Authentication.token}})}}async function request(e,t){if(!Authentication.token)throw new Error("Not authenticated");const n=await fetch(`${exports.FORMANT_API_URL}/v1${e}`,{...t,headers:{"Content-Type":"application/json",Authorization:`Bearer ${Authentication.token}`,...t==null?void 0:t.headers}});if(!n.ok)throw new Error(`Error: ${n.statusText}`);return n.status===204||n.headers.get("content-length")==="0"?null:await n.json()}async function fetchTeleopViews(){return(await request("/admin/teleop-views")).items}async function getTeleopView(e){return await request(`/admin/teleop-views/${e}`)}async function createTeleopView(e){return await request("/admin/teleop-views",{method:"POST",body:JSON.stringify(e)})}async function updateTeleopView(e,t){return await request(`/admin/teleop-views/${e}`,{method:"PATCH",body:JSON.stringify(t)})}async function deleteTeleopView(e){await request(`/admin/teleop-views/${e}`,{method:"DELETE"})}class Views{constructor(){}}he(Views,"createTeleopView",createTeleopView),he(Views,"updateTeleopView",updateTeleopView),he(Views,"deleteTeleopView",deleteTeleopView),he(Views,"getTeleopView",getTeleopView),he(Views,"fetchTeleopViews",fetchTeleopViews);const viewer="viewer",operator="operator",administrator="administrator",accessLevels=["viewer","operator","administrator"],aggregateLevels=["year","month","week","day","hour","minute"],annotationTypes=["tag","sheet","user"],eventTypes=["triggered-event","datapoint-event","device-online","device-offline","intervention-request","teleop-session-record","port-forwarding-session-record","command-request","command-response","command-delivery","intervention-response","custom","comment","system","annotation","task-summary","stateful"],healthStatuses=["unknown","operational","offline","error"],interventionTypes=["selection","labeling","teleop"],severities=["info","warning","error","critical"],videoMimeTypes=["video/mp4"],timeout=e=>new Promise(t=>setTimeout(t,e*1e3));try{const e=typeof window!="undefined"&&window.location?new URLSearchParams(window.location.search):new URLSearchParams(""),t=e.get("device");t&&Fleet.setDefaultDevice(t);const n=e.get("auth");n&&Authentication.loginWithToken(n),e.get("module")&&Authentication.listenForRefresh(),typeof window!="undefined"&&App.listenForConnectionEvents()}catch(e){}var __defProp=Object.defineProperty,__defProps=Object.defineProperties,__getOwnPropDescs=Object.getOwnPropertyDescriptors,__getOwnPropSymbols=Object.getOwnPropertySymbols,__hasOwnProp=Object.prototype.hasOwnProperty,__propIsEnum=Object.prototype.propertyIsEnumerable,__defNormalProp=(e,t,n)=>t in e?__defProp(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,__spreadValues=(e,t)=>{for(var n in t||(t={}))__hasOwnProp.call(t,n)&&__defNormalProp(e,n,t[n]);if(__getOwnPropSymbols)for(var n of __getOwnPropSymbols(t))__propIsEnum.call(t,n)&&__defNormalProp(e,n,t[n]);return e},__spreadProps=(e,t)=>__defProps(e,__getOwnPropDescs(t)),__publicField=(e,t,n)=>(__defNormalProp(e,typeof t!="symbol"?t+"":t,n),n);const millisecond$1=1,second$1=1e3,minute$1=60*second$1,hour$1=60*minute$1,day$1=24*hour$1,week$1=7*day$1,month$1=30*day$1,year$1=365*day$1,duration$1={millisecond:millisecond$1,second:second$1,minute:minute$1,hour:hour$1,day:day$1,week:week$1,month:month$1,year:year$1};class H264Decoder{constructor(t,n,r){__publicField(this,"worker"),__publicField(this,"onReceive"),__publicField(this,"onError"),__publicField(this,"onReceiveMessage",s=>{const{data:g}=s;if(g.error){const l=new Error(`${g.error}`);l.cause=g.error,console.warn("H264 worker failure",{error:l}),this.onError(g.index);return}this.onReceive(g)});var o;this.worker=t,(o=this.worker)==null||o.addEventListener("message",this.onReceiveMessage),this.onReceive=n,this.onError=r}post(t,n,r,o){var s;(s=this.worker)==null||s.postMessage({timestamp:t,encodedFrame:n,flags:r,index:o})}release(){var t,n;(t=this.worker)==null||t.removeEventListener("message",this.onReceiveMessage),(n=this.worker)==null||n.terminate(),this.worker=void 0}}class YUVCanvas{constructor(t){__publicField(this,"gl"),__publicField(this,"program"),__publicField(this,"texturePosBuffer"),__publicField(this,"textureRef"),__publicField(this,"height",0),__publicField(this,"width",0),this.gl=t,this.program=this.initProgram();const{texturePosBuffer:n}=this.initBuffers();this.texturePosBuffer=n;const{textureRef:r}=this.initTextures();this.textureRef=r}draw(t){const{gl:n,height:r,width:o,texturePosBuffer:s,textureRef:g}=this;n.viewport(0,0,o,r);const l=new Float32Array([1,0,0,0,1,1,0,1]);return n.bindBuffer(n.ARRAY_BUFFER,s),n.bufferData(n.ARRAY_BUFFER,l,n.DYNAMIC_DRAW),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,g),n.texImage2D(n.TEXTURE_2D,0,n.LUMINANCE,o,r+r/2,0,n.LUMINANCE,n.UNSIGNED_BYTE,t),n.drawArrays(n.TRIANGLE_STRIP,0,4),n.getError()}initProgram(){const{gl:t}=this,n=`
|
|
64
64
|
attribute vec4 vertexPos;
|
|
65
65
|
attribute vec4 texturePos;
|
|
66
66
|
varying vec2 textureCoord;
|
|
@@ -99,4 +99,4 @@ Found: ${s.toString().split(`
|
|
|
99
99
|
//# sourceURL=`+s)}.call(goog.global),goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the "transpile" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=goog.global.$gwtExport.$jscomp.transpile,r=goog.global.$jscomp,o=r.transpile}}return o||(o=r.transpile=function(l,u){return goog.logToConsole_(u+" requires transpilation but no transpiler was found."),l}),o(e,t,n)},goog.typeOf=function(e){var t=typeof e;if(t=="object")if(e){if(e instanceof Array)return"array";if(e instanceof Object)return t;var n=Object.prototype.toString.call(e);if(n=="[object Window]")return"object";if(n=="[object Array]"||typeof e.length=="number"&&typeof e.splice!="undefined"&&typeof e.propertyIsEnumerable!="undefined"&&!e.propertyIsEnumerable("splice"))return"array";if(n=="[object Function]"||typeof e.call!="undefined"&&typeof e.propertyIsEnumerable!="undefined"&&!e.propertyIsEnumerable("call"))return"function"}else return"null";else if(t=="function"&&typeof e.call=="undefined")return"object";return t},goog.isArray=function(e){return goog.typeOf(e)=="array"},goog.isArrayLike=function(e){var t=goog.typeOf(e);return t=="array"||t=="object"&&typeof e.length=="number"},goog.isDateLike=function(e){return goog.isObject(e)&&typeof e.getFullYear=="function"},goog.isFunction=function(e){return goog.typeOf(e)=="function"},goog.isObject=function(e){var t=typeof e;return t=="object"&&e!=null||t=="function"},goog.getUid=function(e){return Object.prototype.hasOwnProperty.call(e,goog.UID_PROPERTY_)&&e[goog.UID_PROPERTY_]||(e[goog.UID_PROPERTY_]=++goog.uidCounter_)},goog.hasUid=function(e){return!!e[goog.UID_PROPERTY_]},goog.removeUid=function(e){e!==null&&"removeAttribute"in e&&e.removeAttribute(goog.UID_PROPERTY_);try{delete e[goog.UID_PROPERTY_]}catch{}},goog.UID_PROPERTY_="closure_uid_"+(1e9*Math.random()>>>0),goog.uidCounter_=0,goog.getHashCode=goog.getUid,goog.removeHashCode=goog.removeUid,goog.cloneObject=function(e){var t=goog.typeOf(e);if(t=="object"||t=="array"){if(typeof e.clone=="function")return e.clone();t=t=="array"?[]:{};for(var n in e)t[n]=goog.cloneObject(e[n]);return t}return e},goog.bindNative_=function(e,t,n){return e.call.apply(e.bind,arguments)},goog.bindJs_=function(e,t,n){if(!e)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var o=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(o,r),e.apply(t,o)}}return function(){return e.apply(t,arguments)}},goog.bind=function(e,t,n){return Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_,goog.bind.apply(null,arguments)},goog.partial=function(e,t){var n=Array.prototype.slice.call(arguments,1);return function(){var r=n.slice();return r.push.apply(r,arguments),e.apply(this,r)}},goog.mixin=function(e,t){for(var n in t)e[n]=t[n]},goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date},goog.globalEval=function(e){if(goog.global.execScript)goog.global.execScript(e,"JavaScript");else if(goog.global.eval){if(goog.evalWorksForGlobals_==null){try{goog.global.eval("var _evalTest_ = 1;")}catch{}if(typeof goog.global._evalTest_!="undefined"){try{delete goog.global._evalTest_}catch{}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(e);else{var t=goog.global.document,n=t.createElement("script");n.type="text/javascript",n.defer=!1,n.appendChild(t.createTextNode(e)),t.head.appendChild(n),t.head.removeChild(n)}}else throw Error("goog.globalEval not available")},goog.evalWorksForGlobals_=null,goog.getCssName=function(e,t){if(String(e).charAt(0)==".")throw Error('className passed in goog.getCssName must not start with ".". You passed: '+e);var n=function(o){return goog.cssNameMapping_[o]||o},r=function(o){o=o.split("-");for(var s=[],g=0;g<o.length;g++)s.push(n(o[g]));return s.join("-")};return r=goog.cssNameMapping_?goog.cssNameMappingStyle_=="BY_WHOLE"?n:r:function(o){return o},e=t?e+"-"+r(t):r(e),goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(e):e},goog.setCssNameMapping=function(e,t){goog.cssNameMapping_=e,goog.cssNameMappingStyle_=t},goog.getMsg=function(e,t,n){return n&&n.html&&(e=e.replace(/</g,"<")),t&&(e=e.replace(/\{\$([^}]+)}/g,function(r,o){return t!=null&&o in t?t[o]:r})),e},goog.getMsgWithFallback=function(e,t){return e},goog.exportSymbol=function(e,t,n){goog.exportPath_(e,t,n)},goog.exportProperty=function(e,t,n){e[t]=n},goog.inherits=function(e,t){function n(){}n.prototype=t.prototype,e.superClass_=t.prototype,e.prototype=new n,e.prototype.constructor=e,e.base=function(r,o,s){for(var g=Array(arguments.length-2),l=2;l<arguments.length;l++)g[l-2]=arguments[l];return t.prototype[o].apply(r,g)}},goog.scope=function(e){if(goog.isInModuleLoader_())throw Error("goog.scope is not supported within a module.");e.call(goog.global)},goog.defineClass=function(e,t){var n=t.constructor,r=t.statics;return n&&n!=Object.prototype.constructor||(n=function(){throw Error("cannot instantiate an interface (no constructor defined).")}),n=goog.defineClass.createSealingConstructor_(n,e),e&&goog.inherits(n,e),delete t.constructor,delete t.statics,goog.defineClass.applyProperties_(n.prototype,t),r!=null&&(r instanceof Function?r(n):goog.defineClass.applyProperties_(n,r)),n},goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG,goog.defineClass.createSealingConstructor_=function(e,t){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return e;var n=!goog.defineClass.isUnsealable_(t),r=function(){var o=e.apply(this,arguments)||this;return o[goog.UID_PROPERTY_]=o[goog.UID_PROPERTY_],this.constructor===r&&n&&Object.seal instanceof Function&&Object.seal(o),o};return r},goog.defineClass.isUnsealable_=function(e){return e&&e.prototype&&e.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]},goog.defineClass.OBJECT_PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.defineClass.applyProperties_=function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n]);for(var r=0;r<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;r++)n=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[r],Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},goog.tagUnsealableClass=function(e){},goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_="goog_defineClass_legacy_unsealable",goog.TRUSTED_TYPES_POLICY_NAME="",goog.identity_=function(e){return e},goog.createTrustedTypesPolicy=function(e){var t=null,n=goog.global.trustedTypes||goog.global.TrustedTypes;if(!n||!n.createPolicy)return t;try{t=n.createPolicy(e,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(r){goog.logToConsole_(r.message)}return t},goog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#base"):null,goog.object={},goog.object.is=function(e,t){return e===t?e!==0||1/e===1/t:e!==e&&t!==t},goog.object.forEach=function(e,t,n){for(var r in e)t.call(n,e[r],r,e)},goog.object.filter=function(e,t,n){var r={},o;for(o in e)t.call(n,e[o],o,e)&&(r[o]=e[o]);return r},goog.object.map=function(e,t,n){var r={},o;for(o in e)r[o]=t.call(n,e[o],o,e);return r},goog.object.some=function(e,t,n){for(var r in e)if(t.call(n,e[r],r,e))return!0;return!1},goog.object.every=function(e,t,n){for(var r in e)if(!t.call(n,e[r],r,e))return!1;return!0},goog.object.getCount=function(e){var t=0,n;for(n in e)t++;return t},goog.object.getAnyKey=function(e){for(var t in e)return t},goog.object.getAnyValue=function(e){for(var t in e)return e[t]},goog.object.contains=function(e,t){return goog.object.containsValue(e,t)},goog.object.getValues=function(e){var t=[],n=0,r;for(r in e)t[n++]=e[r];return t},goog.object.getKeys=function(e){var t=[],n=0,r;for(r in e)t[n++]=r;return t},goog.object.getValueByKeys=function(e,t){var n=goog.isArrayLike(t),r=n?t:arguments;for(n=n?0:1;n<r.length;n++){if(e==null)return;e=e[r[n]]}return e},goog.object.containsKey=function(e,t){return e!==null&&t in e},goog.object.containsValue=function(e,t){for(var n in e)if(e[n]==t)return!0;return!1},goog.object.findKey=function(e,t,n){for(var r in e)if(t.call(n,e[r],r,e))return r},goog.object.findValue=function(e,t,n){return(t=goog.object.findKey(e,t,n))&&e[t]},goog.object.isEmpty=function(e){for(var t in e)return!1;return!0},goog.object.clear=function(e){for(var t in e)delete e[t]},goog.object.remove=function(e,t){var n;return(n=t in e)&&delete e[t],n},goog.object.add=function(e,t,n){if(e!==null&&t in e)throw Error('The object already contains the key "'+t+'"');goog.object.set(e,t,n)},goog.object.get=function(e,t,n){return e!==null&&t in e?e[t]:n},goog.object.set=function(e,t,n){e[t]=n},goog.object.setIfUndefined=function(e,t,n){return t in e?e[t]:e[t]=n},goog.object.setWithReturnValueIfNotSet=function(e,t,n){return t in e?e[t]:(n=n(),e[t]=n)},goog.object.equals=function(e,t){for(var n in e)if(!(n in t)||e[n]!==t[n])return!1;for(var r in t)if(!(r in e))return!1;return!0},goog.object.clone=function(e){var t={},n;for(n in e)t[n]=e[n];return t},goog.object.unsafeClone=function(e){var t=goog.typeOf(e);if(t=="object"||t=="array"){if(goog.isFunction(e.clone))return e.clone();t=t=="array"?[]:{};for(var n in e)t[n]=goog.object.unsafeClone(e[n]);return t}return e},goog.object.transpose=function(e){var t={},n;for(n in e)t[e[n]]=n;return t},goog.object.PROTOTYPE_FIELDS_="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),goog.object.extend=function(e,t){for(var n,r,o=1;o<arguments.length;o++){r=arguments[o];for(n in r)e[n]=r[n];for(var s=0;s<goog.object.PROTOTYPE_FIELDS_.length;s++)n=goog.object.PROTOTYPE_FIELDS_[s],Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}},goog.object.create=function(e){var t=arguments.length;if(t==1&&Array.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(t%2)throw Error("Uneven number of arguments");for(var n={},r=0;r<t;r+=2)n[arguments[r]]=arguments[r+1];return n},goog.object.createSet=function(e){var t=arguments.length;if(t==1&&Array.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var n={},r=0;r<t;r++)n[arguments[r]]=!0;return n},goog.object.createImmutableView=function(e){var t=e;return Object.isFrozen&&!Object.isFrozen(e)&&(t=Object.create(e),Object.freeze(t)),t},goog.object.isImmutableView=function(e){return!!Object.isFrozen&&Object.isFrozen(e)},goog.object.getAllPropertyNames=function(e,t,n){if(!e)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(e);for(var r={};e&&(e!==Object.prototype||t)&&(e!==Function.prototype||n);){for(var o=Object.getOwnPropertyNames(e),s=0;s<o.length;s++)r[o[s]]=!0;e=Object.getPrototypeOf(e)}return goog.object.getKeys(r)},goog.object.getSuperClass=function(e){return(e=Object.getPrototypeOf(e.prototype))&&e.constructor};var jspb={asserts:{}};jspb.asserts.doAssertFailure=function(e,t,n,r){var o="Assertion failed";if(n){o+=": "+n;var s=r}else e&&(o+=": "+e,s=t);throw Error(""+o,s||[])},jspb.asserts.assert=function(e,t,n){for(var r=[],o=2;o<arguments.length;++o)r[o-2]=arguments[o];return e||jspb.asserts.doAssertFailure("",null,t,r),e},jspb.asserts.assertString=function(e,t,n){for(var r=[],o=2;o<arguments.length;++o)r[o-2]=arguments[o];return typeof e!="string"&&jspb.asserts.doAssertFailure("Expected string but got %s: %s.",[goog.typeOf(e),e],t,r),e},jspb.asserts.assertArray=function(e,t,n){for(var r=[],o=2;o<arguments.length;++o)r[o-2]=arguments[o];return Array.isArray(e)||jspb.asserts.doAssertFailure("Expected array but got %s: %s.",[goog.typeOf(e),e],t,r),e},jspb.asserts.fail=function(e,t){for(var n=[],r=1;r<arguments.length;++r)n[r-1]=arguments[r];throw Error("Failure"+(e?": "+e:""),n)},jspb.asserts.assertInstanceof=function(e,t,n,r){for(var o=[],s=3;s<arguments.length;++s)o[s-3]=arguments[s];return e instanceof t||jspb.asserts.doAssertFailure("Expected instanceof %s but got %s.",[jspb.asserts.getType(t),jspb.asserts.getType(e)],n,o),e},jspb.asserts.getType=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):e===null?"null":typeof e},jspb.BinaryConstants={},jspb.ConstBinaryMessage=function(){},jspb.BinaryMessage=function(){},jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31},jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5},jspb.BinaryConstants.FieldTypeToWireType=function(e){var t=jspb.BinaryConstants.FieldType,n=jspb.BinaryConstants.WireType;switch(e){case t.INT32:case t.INT64:case t.UINT32:case t.UINT64:case t.SINT32:case t.SINT64:case t.BOOL:case t.ENUM:case t.VHASH64:return n.VARINT;case t.DOUBLE:case t.FIXED64:case t.SFIXED64:case t.FHASH64:return n.FIXED64;case t.STRING:case t.MESSAGE:case t.BYTES:return n.DELIMITED;case t.FLOAT:case t.FIXED32:case t.SFIXED32:return n.FIXED32;default:return n.INVALID}},jspb.BinaryConstants.INVALID_FIELD_NUMBER=-1,jspb.BinaryConstants.FLOAT32_EPS=1401298464324817e-60,jspb.BinaryConstants.FLOAT32_MIN=11754943508222875e-54,jspb.BinaryConstants.FLOAT32_MAX=34028234663852886e22,jspb.BinaryConstants.FLOAT64_EPS=5e-324,jspb.BinaryConstants.FLOAT64_MIN=22250738585072014e-324,jspb.BinaryConstants.FLOAT64_MAX=17976931348623157e292,jspb.BinaryConstants.TWO_TO_20=1048576,jspb.BinaryConstants.TWO_TO_23=8388608,jspb.BinaryConstants.TWO_TO_31=2147483648,jspb.BinaryConstants.TWO_TO_32=4294967296,jspb.BinaryConstants.TWO_TO_52=4503599627370496,jspb.BinaryConstants.TWO_TO_63=9223372036854776e3,jspb.BinaryConstants.TWO_TO_64=18446744073709552e3,jspb.BinaryConstants.ZERO_HASH="\0\0\0\0\0\0\0\0",goog.debug={},goog.debug.Error=function(e){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var t=Error().stack;t&&(this.stack=t)}e&&(this.message=String(e)),this.reportErrorToServer=!0},goog.inherits(goog.debug.Error,Error),goog.debug.Error.prototype.name="CustomError",goog.dom={},goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12},goog.asserts={},goog.asserts.ENABLE_ASSERTS=goog.DEBUG,goog.asserts.AssertionError=function(e,t){goog.debug.Error.call(this,goog.asserts.subs_(e,t)),this.messagePattern=e},goog.inherits(goog.asserts.AssertionError,goog.debug.Error),goog.asserts.AssertionError.prototype.name="AssertionError",goog.asserts.DEFAULT_ERROR_HANDLER=function(e){throw e},goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER,goog.asserts.subs_=function(e,t){e=e.split("%s");for(var n="",r=e.length-1,o=0;o<r;o++)n+=e[o]+(o<t.length?t[o]:"%s");return n+e[r]},goog.asserts.doAssertFailure_=function(e,t,n,r){var o="Assertion failed";if(n){o+=": "+n;var s=r}else e&&(o+=": "+e,s=t);e=new goog.asserts.AssertionError(""+o,s||[]),goog.asserts.errorHandler_(e)},goog.asserts.setErrorHandler=function(e){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=e)},goog.asserts.assert=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&!e&&goog.asserts.doAssertFailure_("",null,t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertExists=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&e==null&&goog.asserts.doAssertFailure_("Expected to exist: %s.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.fail=function(e,t){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError("Failure"+(e?": "+e:""),Array.prototype.slice.call(arguments,1)))},goog.asserts.assertNumber=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&typeof e!="number"&&goog.asserts.doAssertFailure_("Expected number but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertString=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&typeof e!="string"&&goog.asserts.doAssertFailure_("Expected string but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertFunction=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(e)&&goog.asserts.doAssertFailure_("Expected function but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObject=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&!goog.isObject(e)&&goog.asserts.doAssertFailure_("Expected object but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertArray=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&!Array.isArray(e)&&goog.asserts.doAssertFailure_("Expected array but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertBoolean=function(e,t,n){return goog.asserts.ENABLE_ASSERTS&&typeof e!="boolean"&&goog.asserts.doAssertFailure_("Expected boolean but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertElement=function(e,t,n){return!goog.asserts.ENABLE_ASSERTS||goog.isObject(e)&&e.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_("Expected Element but got %s: %s.",[goog.typeOf(e),e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertInstanceof=function(e,t,n,r){return!goog.asserts.ENABLE_ASSERTS||e instanceof t||goog.asserts.doAssertFailure_("Expected instanceof %s but got %s.",[goog.asserts.getType_(t),goog.asserts.getType_(e)],n,Array.prototype.slice.call(arguments,3)),e},goog.asserts.assertFinite=function(e,t,n){return!goog.asserts.ENABLE_ASSERTS||typeof e=="number"&&isFinite(e)||goog.asserts.doAssertFailure_("Expected %s to be a finite number but it is not.",[e],t,Array.prototype.slice.call(arguments,2)),e},goog.asserts.assertObjectPrototypeIsIntact=function(){for(var e in Object.prototype)goog.asserts.fail(e+" should not be enumerable in Object.prototype.")},goog.asserts.getType_=function(e){return e instanceof Function?e.displayName||e.name||"unknown type name":e instanceof Object?e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e):e===null?"null":typeof e},goog.array={},goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE,goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR,goog.array.peek=function(e){return e[e.length-1]},goog.array.last=goog.array.peek,goog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.indexOf.call(e,t,n)}:function(e,t,n){if(n=n==null?0:0>n?Math.max(0,e.length+n):n,typeof e=="string")return typeof t!="string"||t.length!=1?-1:e.indexOf(t,n);for(;n<e.length;n++)if(n in e&&e[n]===t)return n;return-1},goog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.lastIndexOf.call(e,t,n==null?e.length-1:n)}:function(e,t,n){if(n=n==null?e.length-1:n,0>n&&(n=Math.max(0,e.length+n)),typeof e=="string")return typeof t!="string"||t.length!=1?-1:e.lastIndexOf(t,n);for(;0<=n;n--)if(n in e&&e[n]===t)return n;return-1},goog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(e,t,n){goog.asserts.assert(e.length!=null),Array.prototype.forEach.call(e,t,n)}:function(e,t,n){for(var r=e.length,o=typeof e=="string"?e.split(""):e,s=0;s<r;s++)s in o&&t.call(n,o[s],s,e)},goog.array.forEachRight=function(e,t,n){var r=e.length,o=typeof e=="string"?e.split(""):e;for(--r;0<=r;--r)r in o&&t.call(n,o[r],r,e)},goog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.filter.call(e,t,n)}:function(e,t,n){for(var r=e.length,o=[],s=0,g=typeof e=="string"?e.split(""):e,l=0;l<r;l++)if(l in g){var u=g[l];t.call(n,u,l,e)&&(o[s++]=u)}return o},goog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.map.call(e,t,n)}:function(e,t,n){for(var r=e.length,o=Array(r),s=typeof e=="string"?e.split(""):e,g=0;g<r;g++)g in s&&(o[g]=t.call(n,s[g],g,e));return o},goog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(e,t,n,r){return goog.asserts.assert(e.length!=null),r&&(t=goog.bind(t,r)),Array.prototype.reduce.call(e,t,n)}:function(e,t,n,r){var o=n;return goog.array.forEach(e,function(s,g){o=t.call(r,o,s,g,e)}),o},goog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(e,t,n,r){return goog.asserts.assert(e.length!=null),goog.asserts.assert(t!=null),r&&(t=goog.bind(t,r)),Array.prototype.reduceRight.call(e,t,n)}:function(e,t,n,r){var o=n;return goog.array.forEachRight(e,function(s,g){o=t.call(r,o,s,g,e)}),o},goog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.some.call(e,t,n)}:function(e,t,n){for(var r=e.length,o=typeof e=="string"?e.split(""):e,s=0;s<r;s++)if(s in o&&t.call(n,o[s],s,e))return!0;return!1},goog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(e,t,n){return goog.asserts.assert(e.length!=null),Array.prototype.every.call(e,t,n)}:function(e,t,n){for(var r=e.length,o=typeof e=="string"?e.split(""):e,s=0;s<r;s++)if(s in o&&!t.call(n,o[s],s,e))return!1;return!0},goog.array.count=function(e,t,n){var r=0;return goog.array.forEach(e,function(o,s,g){t.call(n,o,s,g)&&++r},n),r},goog.array.find=function(e,t,n){return t=goog.array.findIndex(e,t,n),0>t?null:typeof e=="string"?e.charAt(t):e[t]},goog.array.findIndex=function(e,t,n){for(var r=e.length,o=typeof e=="string"?e.split(""):e,s=0;s<r;s++)if(s in o&&t.call(n,o[s],s,e))return s;return-1},goog.array.findRight=function(e,t,n){return t=goog.array.findIndexRight(e,t,n),0>t?null:typeof e=="string"?e.charAt(t):e[t]},goog.array.findIndexRight=function(e,t,n){var r=e.length,o=typeof e=="string"?e.split(""):e;for(--r;0<=r;r--)if(r in o&&t.call(n,o[r],r,e))return r;return-1},goog.array.contains=function(e,t){return 0<=goog.array.indexOf(e,t)},goog.array.isEmpty=function(e){return e.length==0},goog.array.clear=function(e){if(!Array.isArray(e))for(var t=e.length-1;0<=t;t--)delete e[t];e.length=0},goog.array.insert=function(e,t){goog.array.contains(e,t)||e.push(t)},goog.array.insertAt=function(e,t,n){goog.array.splice(e,n,0,t)},goog.array.insertArrayAt=function(e,t,n){goog.partial(goog.array.splice,e,n,0).apply(null,t)},goog.array.insertBefore=function(e,t,n){var r;arguments.length==2||0>(r=goog.array.indexOf(e,n))?e.push(t):goog.array.insertAt(e,t,r)},goog.array.remove=function(e,t){t=goog.array.indexOf(e,t);var n;return(n=0<=t)&&goog.array.removeAt(e,t),n},goog.array.removeLast=function(e,t){return t=goog.array.lastIndexOf(e,t),0<=t?(goog.array.removeAt(e,t),!0):!1},goog.array.removeAt=function(e,t){return goog.asserts.assert(e.length!=null),Array.prototype.splice.call(e,t,1).length==1},goog.array.removeIf=function(e,t,n){return t=goog.array.findIndex(e,t,n),0<=t?(goog.array.removeAt(e,t),!0):!1},goog.array.removeAllIf=function(e,t,n){var r=0;return goog.array.forEachRight(e,function(o,s){t.call(n,o,s,e)&&goog.array.removeAt(e,s)&&r++}),r},goog.array.concat=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.join=function(e){return Array.prototype.concat.apply([],arguments)},goog.array.toArray=function(e){var t=e.length;if(0<t){for(var n=Array(t),r=0;r<t;r++)n[r]=e[r];return n}return[]},goog.array.clone=goog.array.toArray,goog.array.extend=function(e,t){for(var n=1;n<arguments.length;n++){var r=arguments[n];if(goog.isArrayLike(r)){var o=e.length||0,s=r.length||0;e.length=o+s;for(var g=0;g<s;g++)e[o+g]=r[g]}else e.push(r)}},goog.array.splice=function(e,t,n,r){return goog.asserts.assert(e.length!=null),Array.prototype.splice.apply(e,goog.array.slice(arguments,1))},goog.array.slice=function(e,t,n){return goog.asserts.assert(e.length!=null),2>=arguments.length?Array.prototype.slice.call(e,t):Array.prototype.slice.call(e,t,n)},goog.array.removeDuplicates=function(e,t,n){t=t||e;var r=function(u){return goog.isObject(u)?"o"+goog.getUid(u):(typeof u).charAt(0)+u};n=n||r,r={};for(var o=0,s=0;s<e.length;){var g=e[s++],l=n(g);Object.prototype.hasOwnProperty.call(r,l)||(r[l]=!0,t[o++]=g)}t.length=o},goog.array.binarySearch=function(e,t,n){return goog.array.binarySearch_(e,n||goog.array.defaultCompare,!1,t)},goog.array.binarySelect=function(e,t,n){return goog.array.binarySearch_(e,t,!0,void 0,n)},goog.array.binarySearch_=function(e,t,n,r,o){for(var s=0,g=e.length,l;s<g;){var u=s+(g-s>>>1),c=n?t.call(o,e[u],u,e):t(r,e[u]);0<c?s=u+1:(g=u,l=!c)}return l?s:-s-1},goog.array.sort=function(e,t){e.sort(t||goog.array.defaultCompare)},goog.array.stableSort=function(e,t){for(var n=Array(e.length),r=0;r<e.length;r++)n[r]={index:r,value:e[r]};var o=t||goog.array.defaultCompare;for(goog.array.sort(n,function(s,g){return o(s.value,g.value)||s.index-g.index}),r=0;r<e.length;r++)e[r]=n[r].value},goog.array.sortByKey=function(e,t,n){var r=n||goog.array.defaultCompare;goog.array.sort(e,function(o,s){return r(t(o),t(s))})},goog.array.sortObjectsByKey=function(e,t,n){goog.array.sortByKey(e,function(r){return r[t]},n)},goog.array.isSorted=function(e,t,n){t=t||goog.array.defaultCompare;for(var r=1;r<e.length;r++){var o=t(e[r-1],e[r]);if(0<o||o==0&&n)return!1}return!0},goog.array.equals=function(e,t,n){if(!goog.isArrayLike(e)||!goog.isArrayLike(t)||e.length!=t.length)return!1;var r=e.length;n=n||goog.array.defaultCompareEquality;for(var o=0;o<r;o++)if(!n(e[o],t[o]))return!1;return!0},goog.array.compare3=function(e,t,n){n=n||goog.array.defaultCompare;for(var r=Math.min(e.length,t.length),o=0;o<r;o++){var s=n(e[o],t[o]);if(s!=0)return s}return goog.array.defaultCompare(e.length,t.length)},goog.array.defaultCompare=function(e,t){return e>t?1:e<t?-1:0},goog.array.inverseDefaultCompare=function(e,t){return-goog.array.defaultCompare(e,t)},goog.array.defaultCompareEquality=function(e,t){return e===t},goog.array.binaryInsert=function(e,t,n){return n=goog.array.binarySearch(e,t,n),0>n?(goog.array.insertAt(e,t,-(n+1)),!0):!1},goog.array.binaryRemove=function(e,t,n){return t=goog.array.binarySearch(e,t,n),0<=t?goog.array.removeAt(e,t):!1},goog.array.bucket=function(e,t,n){for(var r={},o=0;o<e.length;o++){var s=e[o],g=t.call(n,s,o,e);g!==void 0&&(r[g]||(r[g]=[])).push(s)}return r},goog.array.toObject=function(e,t,n){var r={};return goog.array.forEach(e,function(o,s){r[t.call(n,o,s,e)]=o}),r},goog.array.range=function(e,t,n){var r=[],o=0,s=e;if(n=n||1,t!==void 0&&(o=e,s=t),0>n*(s-o))return[];if(0<n)for(e=o;e<s;e+=n)r.push(e);else for(e=o;e>s;e+=n)r.push(e);return r},goog.array.repeat=function(e,t){for(var n=[],r=0;r<t;r++)n[r]=e;return n},goog.array.flatten=function(e){for(var t=[],n=0;n<arguments.length;n++){var r=arguments[n];if(Array.isArray(r))for(var o=0;o<r.length;o+=8192){var s=goog.array.slice(r,o,o+8192);s=goog.array.flatten.apply(null,s);for(var g=0;g<s.length;g++)t.push(s[g])}else t.push(r)}return t},goog.array.rotate=function(e,t){return goog.asserts.assert(e.length!=null),e.length&&(t%=e.length,0<t?Array.prototype.unshift.apply(e,e.splice(-t,t)):0>t&&Array.prototype.push.apply(e,e.splice(0,-t))),e},goog.array.moveItem=function(e,t,n){goog.asserts.assert(0<=t&&t<e.length),goog.asserts.assert(0<=n&&n<e.length),t=Array.prototype.splice.call(e,t,1),Array.prototype.splice.call(e,n,0,t[0])},goog.array.zip=function(e){if(!arguments.length)return[];for(var t=[],n=arguments[0].length,r=1;r<arguments.length;r++)arguments[r].length<n&&(n=arguments[r].length);for(r=0;r<n;r++){for(var o=[],s=0;s<arguments.length;s++)o.push(arguments[s][r]);t.push(o)}return t},goog.array.shuffle=function(e,t){t=t||Math.random;for(var n=e.length-1;0<n;n--){var r=Math.floor(t()*(n+1)),o=e[n];e[n]=e[r],e[r]=o}},goog.array.copyByIndex=function(e,t){var n=[];return goog.array.forEach(t,function(r){n.push(e[r])}),n},goog.array.concatMap=function(e,t,n){return goog.array.concat.apply([],goog.array.map(e,t,n))},goog.crypt={},goog.crypt.stringToByteArray=function(e){for(var t=[],n=0,r=0;r<e.length;r++){var o=e.charCodeAt(r);255<o&&(t[n++]=o&255,o>>=8),t[n++]=o}return t},goog.crypt.byteArrayToString=function(e){if(8192>=e.length)return String.fromCharCode.apply(null,e);for(var t="",n=0;n<e.length;n+=8192){var r=goog.array.slice(e,n,n+8192);t+=String.fromCharCode.apply(null,r)}return t},goog.crypt.byteArrayToHex=function(e,t){return goog.array.map(e,function(n){return n=n.toString(16),1<n.length?n:"0"+n}).join(t||"")},goog.crypt.hexToByteArray=function(e){goog.asserts.assert(e.length%2==0,"Key string length must be multiple of 2");for(var t=[],n=0;n<e.length;n+=2)t.push(parseInt(e.substring(n,n+2),16));return t},goog.crypt.stringToUtf8ByteArray=function(e){for(var t=[],n=0,r=0;r<e.length;r++){var o=e.charCodeAt(r);128>o?t[n++]=o:(2048>o?t[n++]=o>>6|192:((o&64512)==55296&&r+1<e.length&&(e.charCodeAt(r+1)&64512)==56320?(o=65536+((o&1023)<<10)+(e.charCodeAt(++r)&1023),t[n++]=o>>18|240,t[n++]=o>>12&63|128):t[n++]=o>>12|224,t[n++]=o>>6&63|128),t[n++]=o&63|128)}return t},goog.crypt.utf8ByteArrayToString=function(e){for(var t=[],n=0,r=0;n<e.length;){var o=e[n++];if(128>o)t[r++]=String.fromCharCode(o);else if(191<o&&224>o){var s=e[n++];t[r++]=String.fromCharCode((o&31)<<6|s&63)}else if(239<o&&365>o){s=e[n++];var g=e[n++],l=e[n++];o=((o&7)<<18|(s&63)<<12|(g&63)<<6|l&63)-65536,t[r++]=String.fromCharCode(55296+(o>>10)),t[r++]=String.fromCharCode(56320+(o&1023))}else s=e[n++],g=e[n++],t[r++]=String.fromCharCode((o&15)<<12|(s&63)<<6|g&63)}return t.join("")},goog.crypt.xorByteArray=function(e,t){goog.asserts.assert(e.length==t.length,"XOR array lengths must match");for(var n=[],r=0;r<e.length;r++)n.push(e[r]^t[r]);return n},goog.dom.asserts={},goog.dom.asserts.assertIsLocation=function(e){if(goog.asserts.ENABLE_ASSERTS){var t=goog.dom.asserts.getWindow_(e);t&&(!e||!(e instanceof t.Location)&&e instanceof t.Element)&&goog.asserts.fail("Argument is not a Location (or a non-Element mock); got: %s",goog.dom.asserts.debugStringForType_(e))}return e},goog.dom.asserts.assertIsElementType_=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var n=goog.dom.asserts.getWindow_(e);n&&typeof n[t]!="undefined"&&(e&&(e instanceof n[t]||!(e instanceof n.Location||e instanceof n.Element))||goog.asserts.fail("Argument is not a %s (or a non-Element, non-Location mock); got: %s",t,goog.dom.asserts.debugStringForType_(e)))}return e},goog.dom.asserts.assertIsHTMLAnchorElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAnchorElement")},goog.dom.asserts.assertIsHTMLButtonElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLButtonElement")},goog.dom.asserts.assertIsHTMLLinkElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLLinkElement")},goog.dom.asserts.assertIsHTMLImageElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLImageElement")},goog.dom.asserts.assertIsHTMLAudioElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLAudioElement")},goog.dom.asserts.assertIsHTMLVideoElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLVideoElement")},goog.dom.asserts.assertIsHTMLInputElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLInputElement")},goog.dom.asserts.assertIsHTMLTextAreaElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLTextAreaElement")},goog.dom.asserts.assertIsHTMLCanvasElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLCanvasElement")},goog.dom.asserts.assertIsHTMLEmbedElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLEmbedElement")},goog.dom.asserts.assertIsHTMLFormElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFormElement")},goog.dom.asserts.assertIsHTMLFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLFrameElement")},goog.dom.asserts.assertIsHTMLIFrameElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLIFrameElement")},goog.dom.asserts.assertIsHTMLObjectElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLObjectElement")},goog.dom.asserts.assertIsHTMLScriptElement=function(e){return goog.dom.asserts.assertIsElementType_(e,"HTMLScriptElement")},goog.dom.asserts.debugStringForType_=function(e){if(goog.isObject(e))try{return e.constructor.displayName||e.constructor.name||Object.prototype.toString.call(e)}catch{return"<object could not be stringified>"}else return e===void 0?"undefined":e===null?"null":typeof e},goog.dom.asserts.getWindow_=function(e){try{var t=e&&e.ownerDocument,n=t&&(t.defaultView||t.parentWindow);if(n=n||goog.global,n.Element&&n.Location)return n}catch{}return null},goog.functions={},goog.functions.constant=function(e){return function(){return e}},goog.functions.FALSE=function(){return!1},goog.functions.TRUE=function(){return!0},goog.functions.NULL=function(){return null},goog.functions.identity=function(e,t){return e},goog.functions.error=function(e){return function(){throw Error(e)}},goog.functions.fail=function(e){return function(){throw e}},goog.functions.lock=function(e,t){return t=t||0,function(){return e.apply(this,Array.prototype.slice.call(arguments,0,t))}},goog.functions.nth=function(e){return function(){return arguments[e]}},goog.functions.partialRight=function(e,t){var n=Array.prototype.slice.call(arguments,1);return function(){var r=Array.prototype.slice.call(arguments);return r.push.apply(r,n),e.apply(this,r)}},goog.functions.withReturnValue=function(e,t){return goog.functions.sequence(e,goog.functions.constant(t))},goog.functions.equalTo=function(e,t){return function(n){return t?e==n:e===n}},goog.functions.compose=function(e,t){var n=arguments,r=n.length;return function(){var o;r&&(o=n[r-1].apply(this,arguments));for(var s=r-2;0<=s;s--)o=n[s].call(this,o);return o}},goog.functions.sequence=function(e){var t=arguments,n=t.length;return function(){for(var r,o=0;o<n;o++)r=t[o].apply(this,arguments);return r}},goog.functions.and=function(e){var t=arguments,n=t.length;return function(){for(var r=0;r<n;r++)if(!t[r].apply(this,arguments))return!1;return!0}},goog.functions.or=function(e){var t=arguments,n=t.length;return function(){for(var r=0;r<n;r++)if(t[r].apply(this,arguments))return!0;return!1}},goog.functions.not=function(e){return function(){return!e.apply(this,arguments)}},goog.functions.create=function(e,t){var n=function(){};return n.prototype=e.prototype,n=new n,e.apply(n,Array.prototype.slice.call(arguments,1)),n},goog.functions.CACHE_RETURN_VALUE=!0,goog.functions.cacheReturnValue=function(e){var t=!1,n;return function(){return goog.functions.CACHE_RETURN_VALUE?(t||(n=e(),t=!0),n):e()}},goog.functions.once=function(e){var t=e;return function(){if(t){var n=t;t=null,n()}}},goog.functions.debounce=function(e,t,n){var r=0;return function(o){goog.global.clearTimeout(r);var s=arguments;r=goog.global.setTimeout(function(){e.apply(n,s)},t)}},goog.functions.throttle=function(e,t,n){var r=0,o=!1,s=[],g=function(){r=0,o&&(o=!1,l())},l=function(){r=goog.global.setTimeout(g,t),e.apply(n,s)};return function(u){s=arguments,r?o=!0:l()}},goog.functions.rateLimit=function(e,t,n){var r=0,o=function(){r=0};return function(s){r||(r=goog.global.setTimeout(o,t),e.apply(n,arguments))}},goog.dom.HtmlElement=function(){},goog.dom.TagName=function(e){this.tagName_=e},goog.dom.TagName.prototype.toString=function(){return this.tagName_},goog.dom.TagName.A=new goog.dom.TagName("A"),goog.dom.TagName.ABBR=new goog.dom.TagName("ABBR"),goog.dom.TagName.ACRONYM=new goog.dom.TagName("ACRONYM"),goog.dom.TagName.ADDRESS=new goog.dom.TagName("ADDRESS"),goog.dom.TagName.APPLET=new goog.dom.TagName("APPLET"),goog.dom.TagName.AREA=new goog.dom.TagName("AREA"),goog.dom.TagName.ARTICLE=new goog.dom.TagName("ARTICLE"),goog.dom.TagName.ASIDE=new goog.dom.TagName("ASIDE"),goog.dom.TagName.AUDIO=new goog.dom.TagName("AUDIO"),goog.dom.TagName.B=new goog.dom.TagName("B"),goog.dom.TagName.BASE=new goog.dom.TagName("BASE"),goog.dom.TagName.BASEFONT=new goog.dom.TagName("BASEFONT"),goog.dom.TagName.BDI=new goog.dom.TagName("BDI"),goog.dom.TagName.BDO=new goog.dom.TagName("BDO"),goog.dom.TagName.BIG=new goog.dom.TagName("BIG"),goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName("BLOCKQUOTE"),goog.dom.TagName.BODY=new goog.dom.TagName("BODY"),goog.dom.TagName.BR=new goog.dom.TagName("BR"),goog.dom.TagName.BUTTON=new goog.dom.TagName("BUTTON"),goog.dom.TagName.CANVAS=new goog.dom.TagName("CANVAS"),goog.dom.TagName.CAPTION=new goog.dom.TagName("CAPTION"),goog.dom.TagName.CENTER=new goog.dom.TagName("CENTER"),goog.dom.TagName.CITE=new goog.dom.TagName("CITE"),goog.dom.TagName.CODE=new goog.dom.TagName("CODE"),goog.dom.TagName.COL=new goog.dom.TagName("COL"),goog.dom.TagName.COLGROUP=new goog.dom.TagName("COLGROUP"),goog.dom.TagName.COMMAND=new goog.dom.TagName("COMMAND"),goog.dom.TagName.DATA=new goog.dom.TagName("DATA"),goog.dom.TagName.DATALIST=new goog.dom.TagName("DATALIST"),goog.dom.TagName.DD=new goog.dom.TagName("DD"),goog.dom.TagName.DEL=new goog.dom.TagName("DEL"),goog.dom.TagName.DETAILS=new goog.dom.TagName("DETAILS"),goog.dom.TagName.DFN=new goog.dom.TagName("DFN"),goog.dom.TagName.DIALOG=new goog.dom.TagName("DIALOG"),goog.dom.TagName.DIR=new goog.dom.TagName("DIR"),goog.dom.TagName.DIV=new goog.dom.TagName("DIV"),goog.dom.TagName.DL=new goog.dom.TagName("DL"),goog.dom.TagName.DT=new goog.dom.TagName("DT"),goog.dom.TagName.EM=new goog.dom.TagName("EM"),goog.dom.TagName.EMBED=new goog.dom.TagName("EMBED"),goog.dom.TagName.FIELDSET=new goog.dom.TagName("FIELDSET"),goog.dom.TagName.FIGCAPTION=new goog.dom.TagName("FIGCAPTION"),goog.dom.TagName.FIGURE=new goog.dom.TagName("FIGURE"),goog.dom.TagName.FONT=new goog.dom.TagName("FONT"),goog.dom.TagName.FOOTER=new goog.dom.TagName("FOOTER"),goog.dom.TagName.FORM=new goog.dom.TagName("FORM"),goog.dom.TagName.FRAME=new goog.dom.TagName("FRAME"),goog.dom.TagName.FRAMESET=new goog.dom.TagName("FRAMESET"),goog.dom.TagName.H1=new goog.dom.TagName("H1"),goog.dom.TagName.H2=new goog.dom.TagName("H2"),goog.dom.TagName.H3=new goog.dom.TagName("H3"),goog.dom.TagName.H4=new goog.dom.TagName("H4"),goog.dom.TagName.H5=new goog.dom.TagName("H5"),goog.dom.TagName.H6=new goog.dom.TagName("H6"),goog.dom.TagName.HEAD=new goog.dom.TagName("HEAD"),goog.dom.TagName.HEADER=new goog.dom.TagName("HEADER"),goog.dom.TagName.HGROUP=new goog.dom.TagName("HGROUP"),goog.dom.TagName.HR=new goog.dom.TagName("HR"),goog.dom.TagName.HTML=new goog.dom.TagName("HTML"),goog.dom.TagName.I=new goog.dom.TagName("I"),goog.dom.TagName.IFRAME=new goog.dom.TagName("IFRAME"),goog.dom.TagName.IMG=new goog.dom.TagName("IMG"),goog.dom.TagName.INPUT=new goog.dom.TagName("INPUT"),goog.dom.TagName.INS=new goog.dom.TagName("INS"),goog.dom.TagName.ISINDEX=new goog.dom.TagName("ISINDEX"),goog.dom.TagName.KBD=new goog.dom.TagName("KBD"),goog.dom.TagName.KEYGEN=new goog.dom.TagName("KEYGEN"),goog.dom.TagName.LABEL=new goog.dom.TagName("LABEL"),goog.dom.TagName.LEGEND=new goog.dom.TagName("LEGEND"),goog.dom.TagName.LI=new goog.dom.TagName("LI"),goog.dom.TagName.LINK=new goog.dom.TagName("LINK"),goog.dom.TagName.MAIN=new goog.dom.TagName("MAIN"),goog.dom.TagName.MAP=new goog.dom.TagName("MAP"),goog.dom.TagName.MARK=new goog.dom.TagName("MARK"),goog.dom.TagName.MATH=new goog.dom.TagName("MATH"),goog.dom.TagName.MENU=new goog.dom.TagName("MENU"),goog.dom.TagName.MENUITEM=new goog.dom.TagName("MENUITEM"),goog.dom.TagName.META=new goog.dom.TagName("META"),goog.dom.TagName.METER=new goog.dom.TagName("METER"),goog.dom.TagName.NAV=new goog.dom.TagName("NAV"),goog.dom.TagName.NOFRAMES=new goog.dom.TagName("NOFRAMES"),goog.dom.TagName.NOSCRIPT=new goog.dom.TagName("NOSCRIPT"),goog.dom.TagName.OBJECT=new goog.dom.TagName("OBJECT"),goog.dom.TagName.OL=new goog.dom.TagName("OL"),goog.dom.TagName.OPTGROUP=new goog.dom.TagName("OPTGROUP"),goog.dom.TagName.OPTION=new goog.dom.TagName("OPTION"),goog.dom.TagName.OUTPUT=new goog.dom.TagName("OUTPUT"),goog.dom.TagName.P=new goog.dom.TagName("P"),goog.dom.TagName.PARAM=new goog.dom.TagName("PARAM"),goog.dom.TagName.PICTURE=new goog.dom.TagName("PICTURE"),goog.dom.TagName.PRE=new goog.dom.TagName("PRE"),goog.dom.TagName.PROGRESS=new goog.dom.TagName("PROGRESS"),goog.dom.TagName.Q=new goog.dom.TagName("Q"),goog.dom.TagName.RP=new goog.dom.TagName("RP"),goog.dom.TagName.RT=new goog.dom.TagName("RT"),goog.dom.TagName.RTC=new goog.dom.TagName("RTC"),goog.dom.TagName.RUBY=new goog.dom.TagName("RUBY"),goog.dom.TagName.S=new goog.dom.TagName("S"),goog.dom.TagName.SAMP=new goog.dom.TagName("SAMP"),goog.dom.TagName.SCRIPT=new goog.dom.TagName("SCRIPT"),goog.dom.TagName.SECTION=new goog.dom.TagName("SECTION"),goog.dom.TagName.SELECT=new goog.dom.TagName("SELECT"),goog.dom.TagName.SMALL=new goog.dom.TagName("SMALL"),goog.dom.TagName.SOURCE=new goog.dom.TagName("SOURCE"),goog.dom.TagName.SPAN=new goog.dom.TagName("SPAN"),goog.dom.TagName.STRIKE=new goog.dom.TagName("STRIKE"),goog.dom.TagName.STRONG=new goog.dom.TagName("STRONG"),goog.dom.TagName.STYLE=new goog.dom.TagName("STYLE"),goog.dom.TagName.SUB=new goog.dom.TagName("SUB"),goog.dom.TagName.SUMMARY=new goog.dom.TagName("SUMMARY"),goog.dom.TagName.SUP=new goog.dom.TagName("SUP"),goog.dom.TagName.SVG=new goog.dom.TagName("SVG"),goog.dom.TagName.TABLE=new goog.dom.TagName("TABLE"),goog.dom.TagName.TBODY=new goog.dom.TagName("TBODY"),goog.dom.TagName.TD=new goog.dom.TagName("TD"),goog.dom.TagName.TEMPLATE=new goog.dom.TagName("TEMPLATE"),goog.dom.TagName.TEXTAREA=new goog.dom.TagName("TEXTAREA"),goog.dom.TagName.TFOOT=new goog.dom.TagName("TFOOT"),goog.dom.TagName.TH=new goog.dom.TagName("TH"),goog.dom.TagName.THEAD=new goog.dom.TagName("THEAD"),goog.dom.TagName.TIME=new goog.dom.TagName("TIME"),goog.dom.TagName.TITLE=new goog.dom.TagName("TITLE"),goog.dom.TagName.TR=new goog.dom.TagName("TR"),goog.dom.TagName.TRACK=new goog.dom.TagName("TRACK"),goog.dom.TagName.TT=new goog.dom.TagName("TT"),goog.dom.TagName.U=new goog.dom.TagName("U"),goog.dom.TagName.UL=new goog.dom.TagName("UL"),goog.dom.TagName.VAR=new goog.dom.TagName("VAR"),goog.dom.TagName.VIDEO=new goog.dom.TagName("VIDEO"),goog.dom.TagName.WBR=new goog.dom.TagName("WBR"),goog.dom.tags={},goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},goog.dom.tags.isVoidTag=function(e){return goog.dom.tags.VOID_TAGS_[e]===!0},goog.html={},goog.html.trustedtypes={},goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+"#html"):null,goog.string={},goog.string.TypedString=function(){},goog.string.Const=function(e,t){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=e===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_},goog.string.Const.prototype.implementsGoogStringTypedString=!0,goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_},goog.DEBUG&&(goog.string.Const.prototype.toString=function(){return"Const{"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+"}"}),goog.string.Const.unwrap=function(e){return e instanceof goog.string.Const&&e.constructor===goog.string.Const&&e.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_?e.stringConstValueWithSecurityContract__googStringSecurityPrivate_:(goog.asserts.fail("expected object of type Const, got '"+e+"'"),"type_error:Const")},goog.string.Const.from=function(e){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.string.Const.TYPE_MARKER_={},goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.Const.EMPTY=goog.string.Const.from(""),goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_="",this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0,goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeScript.fromConstant=function(e){return e=goog.string.Const.unwrap(e),e.length===0?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeScript.fromConstantAndArgs=function(e,t){for(var n=[],r=1;r<arguments.length;r++)n.push(goog.html.SafeScript.stringify_(arguments[r]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse("("+goog.string.Const.unwrap(e)+")("+n.join(", ")+");")},goog.html.SafeScript.fromJson=function(e){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(e))},goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return"SafeScript{"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+"}"}),goog.html.SafeScript.unwrap=function(e){return goog.html.SafeScript.unwrapTrustedScript(e).toString()},goog.html.SafeScript.unwrapTrustedScript=function(e){return e instanceof goog.html.SafeScript&&e.constructor===goog.html.SafeScript&&e.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeScriptWrappedValue_:(goog.asserts.fail("expected object of type SafeScript, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeScript")},goog.html.SafeScript.stringify_=function(e){return JSON.stringify(e).replace(/</g,"\\x3c")},goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeScript().initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(e):e,this},goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(""),goog.fs={},goog.fs.url={},goog.fs.url.createObjectUrl=function(e){return goog.fs.url.getUrlObject_().createObjectURL(e)},goog.fs.url.revokeObjectUrl=function(e){goog.fs.url.getUrlObject_().revokeObjectURL(e)},goog.fs.url.UrlObject_=function(){},goog.fs.url.UrlObject_.prototype.createObjectURL=function(e){},goog.fs.url.UrlObject_.prototype.revokeObjectURL=function(e){},goog.fs.url.getUrlObject_=function(){var e=goog.fs.url.findUrlObject_();if(e!=null)return e;throw Error("This browser doesn't seem to support blob URLs")},goog.fs.url.findUrlObject_=function(){return goog.global.URL!==void 0&&goog.global.URL.createObjectURL!==void 0?goog.global.URL:goog.global.webkitURL!==void 0&&goog.global.webkitURL.createObjectURL!==void 0?goog.global.webkitURL:goog.global.createObjectURL!==void 0?goog.global:null},goog.fs.url.browserSupportsObjectUrls=function(){return goog.fs.url.findUrlObject_()!=null},goog.fs.blob={},goog.fs.blob.getBlob=function(e){var t=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(t!==void 0){t=new t;for(var n=0;n<arguments.length;n++)t.append(arguments[n]);return t.getBlob()}return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments))},goog.fs.blob.getBlobWithProperties=function(e,t,n){var r=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(r!==void 0){r=new r;for(var o=0;o<e.length;o++)r.append(e[o],n);return r.getBlob(t)}if(goog.global.Blob!==void 0)return r={},t&&(r.type=t),n&&(r.endings=n),new Blob(e,r);throw Error("This browser doesn't seem to support creating Blobs")},goog.i18n={},goog.i18n.bidi={},goog.i18n.bidi.FORCE_RTL=!1,goog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(goog.LOCALE.substring(0,2).toLowerCase()=="ar"||goog.LOCALE.substring(0,2).toLowerCase()=="fa"||goog.LOCALE.substring(0,2).toLowerCase()=="he"||goog.LOCALE.substring(0,2).toLowerCase()=="iw"||goog.LOCALE.substring(0,2).toLowerCase()=="ps"||goog.LOCALE.substring(0,2).toLowerCase()=="sd"||goog.LOCALE.substring(0,2).toLowerCase()=="ug"||goog.LOCALE.substring(0,2).toLowerCase()=="ur"||goog.LOCALE.substring(0,2).toLowerCase()=="yi")&&(goog.LOCALE.length==2||goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")||3<=goog.LOCALE.length&&goog.LOCALE.substring(0,3).toLowerCase()=="ckb"&&(goog.LOCALE.length==3||goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")||7<=goog.LOCALE.length&&(goog.LOCALE.substring(2,3)=="-"||goog.LOCALE.substring(2,3)=="_")&&(goog.LOCALE.substring(3,7).toLowerCase()=="adlm"||goog.LOCALE.substring(3,7).toLowerCase()=="arab"||goog.LOCALE.substring(3,7).toLowerCase()=="hebr"||goog.LOCALE.substring(3,7).toLowerCase()=="nkoo"||goog.LOCALE.substring(3,7).toLowerCase()=="rohg"||goog.LOCALE.substring(3,7).toLowerCase()=="thaa")||8<=goog.LOCALE.length&&(goog.LOCALE.substring(3,4)=="-"||goog.LOCALE.substring(3,4)=="_")&&(goog.LOCALE.substring(4,8).toLowerCase()=="adlm"||goog.LOCALE.substring(4,8).toLowerCase()=="arab"||goog.LOCALE.substring(4,8).toLowerCase()=="hebr"||goog.LOCALE.substring(4,8).toLowerCase()=="nkoo"||goog.LOCALE.substring(4,8).toLowerCase()=="rohg"||goog.LOCALE.substring(4,8).toLowerCase()=="thaa"),goog.i18n.bidi.Format={LRE:"",RLE:"",PDF:"",LRM:"",RLM:""},goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0},goog.i18n.bidi.RIGHT="right",goog.i18n.bidi.LEFT="left",goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT,goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,goog.i18n.bidi.toDir=function(e,t){return typeof e=="number"?0<e?goog.i18n.bidi.Dir.LTR:0>e?goog.i18n.bidi.Dir.RTL:t?null:goog.i18n.bidi.Dir.NEUTRAL:e==null?null:e?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.ltrChars_="A-Za-zÀ-ÖØ-öø-ʸ̀-ऀ-Ⰰ-\uD801\uD804-\uD839\uD83C-\uDBFF豈-︀--",goog.i18n.bidi.rtlChars_="֑-ۯۺ-ࣿ\uD802-\uD803\uD83A-\uD83Bיִ-﷿ﹰ-ﻼ",goog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g,goog.i18n.bidi.stripHtmlIfNeeded_=function(e,t){return t?e.replace(goog.i18n.bidi.htmlSkipReg_,""):e},goog.i18n.bidi.rtlCharReg_=new RegExp("["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.ltrCharReg_=new RegExp("["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.hasAnyRtl=function(e,t){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl,goog.i18n.bidi.hasAnyLtr=function(e,t){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.ltrRe_=new RegExp("^["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlRe_=new RegExp("^["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.isRtlChar=function(e){return goog.i18n.bidi.rtlRe_.test(e)},goog.i18n.bidi.isLtrChar=function(e){return goog.i18n.bidi.ltrRe_.test(e)},goog.i18n.bidi.isNeutralChar=function(e){return!goog.i18n.bidi.isLtrChar(e)&&!goog.i18n.bidi.isRtlChar(e)},goog.i18n.bidi.ltrDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.rtlChars_+"]*["+goog.i18n.bidi.ltrChars_+"]"),goog.i18n.bidi.rtlDirCheckRe_=new RegExp("^[^"+goog.i18n.bidi.ltrChars_+"]*["+goog.i18n.bidi.rtlChars_+"]"),goog.i18n.bidi.startsWithRtl=function(e,t){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl,goog.i18n.bidi.startsWithLtr=function(e,t){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr,goog.i18n.bidi.isRequiredLtrRe_=/^http:\/\/.*/,goog.i18n.bidi.isNeutralText=function(e,t){return e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t),goog.i18n.bidi.isRequiredLtrRe_.test(e)||!goog.i18n.bidi.hasAnyLtr(e)&&!goog.i18n.bidi.hasAnyRtl(e)},goog.i18n.bidi.ltrExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.ltrChars_+"][^"+goog.i18n.bidi.rtlChars_+"]*$"),goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp("["+goog.i18n.bidi.rtlChars_+"][^"+goog.i18n.bidi.ltrChars_+"]*$"),goog.i18n.bidi.endsWithLtr=function(e,t){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr,goog.i18n.bidi.endsWithRtl=function(e,t){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(e,t))},goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl,goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i,goog.i18n.bidi.isRtlLanguage=function(e){return goog.i18n.bidi.rtlLocalesRe_.test(e)},goog.i18n.bidi.bracketGuardTextRe_=/(\(.*?\)+)|(\[.*?\]+)|(\{.*?\}+)|(<.*?>+)/g,goog.i18n.bidi.guardBracketInText=function(e,t){return t=(t===void 0?goog.i18n.bidi.hasAnyRtl(e):t)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM,e.replace(goog.i18n.bidi.bracketGuardTextRe_,t+"$&"+t)},goog.i18n.bidi.enforceRtlInHtml=function(e){return e.charAt(0)=="<"?e.replace(/<\w+/,"$& dir=rtl"):`
|
|
100
100
|
<span dir=rtl>`+e+"</span>"},goog.i18n.bidi.enforceRtlInText=function(e){return goog.i18n.bidi.Format.RLE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.enforceLtrInHtml=function(e){return e.charAt(0)=="<"?e.replace(/<\w+/,"$& dir=ltr"):`
|
|
101
101
|
<span dir=ltr>`+e+"</span>"},goog.i18n.bidi.enforceLtrInText=function(e){return goog.i18n.bidi.Format.LRE+e+goog.i18n.bidi.Format.PDF},goog.i18n.bidi.dimensionsRe_=/:\s*([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)\s+([.\d][.\w]*)/g,goog.i18n.bidi.leftRe_=/left/gi,goog.i18n.bidi.rightRe_=/right/gi,goog.i18n.bidi.tempRe_=/%%%%/g,goog.i18n.bidi.mirrorCSS=function(e){return e.replace(goog.i18n.bidi.dimensionsRe_,":$1 $4 $3 $2").replace(goog.i18n.bidi.leftRe_,"%%%%").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)},goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\u0591-\u05f2])"/g,goog.i18n.bidi.singleQuoteSubstituteRe_=/([\u0591-\u05f2])'/g,goog.i18n.bidi.normalizeHebrewQuote=function(e){return e.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,"$1״").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,"$1׳")},goog.i18n.bidi.wordSeparatorRe_=/\s+/,goog.i18n.bidi.hasNumeralsRe_=/[\d\u06f0-\u06f9]/,goog.i18n.bidi.rtlDetectionThreshold_=.4,goog.i18n.bidi.estimateDirection=function(e,t){var n=0,r=0,o=!1;for(e=goog.i18n.bidi.stripHtmlIfNeeded_(e,t).split(goog.i18n.bidi.wordSeparatorRe_),t=0;t<e.length;t++){var s=e[t];goog.i18n.bidi.startsWithRtl(s)?(n++,r++):goog.i18n.bidi.isRequiredLtrRe_.test(s)?o=!0:goog.i18n.bidi.hasAnyLtr(s)?r++:goog.i18n.bidi.hasNumeralsRe_.test(s)&&(o=!0)}return r==0?o?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:n/r>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR},goog.i18n.bidi.detectRtlDirectionality=function(e,t){return goog.i18n.bidi.estimateDirection(e,t)==goog.i18n.bidi.Dir.RTL},goog.i18n.bidi.setElementDirAndAlign=function(e,t){e&&(t=goog.i18n.bidi.toDir(t))&&(e.style.textAlign=t==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,e.dir=t==goog.i18n.bidi.Dir.RTL?"rtl":"ltr")},goog.i18n.bidi.setElementDirByTextDirectionality=function(e,t){switch(goog.i18n.bidi.estimateDirection(t)){case goog.i18n.bidi.Dir.LTR:e.dir="ltr";break;case goog.i18n.bidi.Dir.RTL:e.dir="rtl";break;default:e.removeAttribute("dir")}},goog.i18n.bidi.DirectionalString=function(){},goog.html.TrustedResourceUrl=function(e,t){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=e===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0,goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()},goog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.html.TrustedResourceUrl.prototype.cloneWithParams=function(e,t){var n=goog.html.TrustedResourceUrl.unwrap(this);n=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(n);var r=n[3]||"";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(n[1]+goog.html.TrustedResourceUrl.stringifyParams_("?",n[2]||"",e)+goog.html.TrustedResourceUrl.stringifyParams_("#",r,t))},goog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return"TrustedResourceUrl{"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+"}"}),goog.html.TrustedResourceUrl.unwrap=function(e){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(e).toString()},goog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(e){return e instanceof goog.html.TrustedResourceUrl&&e.constructor===goog.html.TrustedResourceUrl&&e.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_:(goog.asserts.fail("expected object of type TrustedResourceUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:TrustedResourceUrl")},goog.html.TrustedResourceUrl.format=function(e,t){var n=goog.string.Const.unwrap(e);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(n))throw Error("Invalid TrustedResourceUrl format: "+n);return e=n.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(r,o){if(!Object.prototype.hasOwnProperty.call(t,o))throw Error('Found marker, "'+o+'", in format string, "'+n+'", but no valid label mapping found in args: '+JSON.stringify(t));return r=t[o],r instanceof goog.string.Const?goog.string.Const.unwrap(r):encodeURIComponent(String(r))}),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\w+)}/g,goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\/\/[0-9a-z.:[\]-]+\/|\/[^/\\]|[^:/\\%]+\/|[^:/\\%]*[?#]|about:blank#)/i,goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\?[^#]*)?(#[\s\S]*)?/,goog.html.TrustedResourceUrl.formatWithParams=function(e,t,n,r){return goog.html.TrustedResourceUrl.format(e,t).cloneWithParams(n,r)},goog.html.TrustedResourceUrl.fromConstant=function(e){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.TrustedResourceUrl.fromConstants=function(e){for(var t="",n=0;n<e.length;n++)t+=goog.string.Const.unwrap(e[n]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.TrustedResourceUrl.fromSafeScript=function(e){return e=goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(e)],"text/javascript"),e=goog.fs.url.createObjectUrl(e),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(e){return e=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(e):e,new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.TrustedResourceUrl.stringifyParams_=function(e,t,n){if(n==null)return t;if(typeof n=="string")return n?e+encodeURIComponent(n):"";for(var r in n){var o=n[r];o=Array.isArray(o)?o:[o];for(var s=0;s<o.length;s++){var g=o[s];g!=null&&(t||(t=e),t+=(t.length>e.length?"&":"")+encodeURIComponent(r)+"="+encodeURIComponent(String(g)))}}return t},goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.string.internal={},goog.string.internal.startsWith=function(e,t){return e.lastIndexOf(t,0)==0},goog.string.internal.endsWith=function(e,t){var n=e.length-t.length;return 0<=n&&e.indexOf(t,n)==n},goog.string.internal.caseInsensitiveStartsWith=function(e,t){return goog.string.internal.caseInsensitiveCompare(t,e.substr(0,t.length))==0},goog.string.internal.caseInsensitiveEndsWith=function(e,t){return goog.string.internal.caseInsensitiveCompare(t,e.substr(e.length-t.length,t.length))==0},goog.string.internal.caseInsensitiveEquals=function(e,t){return e.toLowerCase()==t.toLowerCase()},goog.string.internal.isEmptyOrWhitespace=function(e){return/^[\s\xa0]*$/.test(e)},goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(e){return e.trim()}:function(e){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(e)[1]},goog.string.internal.caseInsensitiveCompare=function(e,t){return e=String(e).toLowerCase(),t=String(t).toLowerCase(),e<t?-1:e==t?0:1},goog.string.internal.newLineToBr=function(e,t){return e.replace(/(\r\n|\r|\n)/g,t?"<br />":"<br>")},goog.string.internal.htmlEscape=function(e,t){if(t)e=e.replace(goog.string.internal.AMP_RE_,"&").replace(goog.string.internal.LT_RE_,"<").replace(goog.string.internal.GT_RE_,">").replace(goog.string.internal.QUOT_RE_,""").replace(goog.string.internal.SINGLE_QUOTE_RE_,"'").replace(goog.string.internal.NULL_RE_,"�");else{if(!goog.string.internal.ALL_RE_.test(e))return e;e.indexOf("&")!=-1&&(e=e.replace(goog.string.internal.AMP_RE_,"&")),e.indexOf("<")!=-1&&(e=e.replace(goog.string.internal.LT_RE_,"<")),e.indexOf(">")!=-1&&(e=e.replace(goog.string.internal.GT_RE_,">")),e.indexOf('"')!=-1&&(e=e.replace(goog.string.internal.QUOT_RE_,""")),e.indexOf("'")!=-1&&(e=e.replace(goog.string.internal.SINGLE_QUOTE_RE_,"'")),e.indexOf("\0")!=-1&&(e=e.replace(goog.string.internal.NULL_RE_,"�"))}return e},goog.string.internal.AMP_RE_=/&/g,goog.string.internal.LT_RE_=/</g,goog.string.internal.GT_RE_=/>/g,goog.string.internal.QUOT_RE_=/"/g,goog.string.internal.SINGLE_QUOTE_RE_=/'/g,goog.string.internal.NULL_RE_=/\x00/g,goog.string.internal.ALL_RE_=/[\x00&<>"']/,goog.string.internal.whitespaceEscape=function(e,t){return goog.string.internal.newLineToBr(e.replace(/ /g,"  "),t)},goog.string.internal.contains=function(e,t){return e.indexOf(t)!=-1},goog.string.internal.caseInsensitiveContains=function(e,t){return goog.string.internal.contains(e.toLowerCase(),t.toLowerCase())},goog.string.internal.compareVersions=function(e,t){var n=0;e=goog.string.internal.trim(String(e)).split("."),t=goog.string.internal.trim(String(t)).split(".");for(var r=Math.max(e.length,t.length),o=0;n==0&&o<r;o++){var s=e[o]||"",g=t[o]||"";do{if(s=/(\d*)(\D*)(.*)/.exec(s)||["","","",""],g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""],s[0].length==0&&g[0].length==0)break;n=s[1].length==0?0:parseInt(s[1],10);var l=g[1].length==0?0:parseInt(g[1],10);n=goog.string.internal.compareElements_(n,l)||goog.string.internal.compareElements_(s[2].length==0,g[2].length==0)||goog.string.internal.compareElements_(s[2],g[2]),s=s[3],g=g[3]}while(n==0)}return n},goog.string.internal.compareElements_=function(e,t){return e<t?-1:e>t?1:0},goog.html.SafeUrl=function(e,t){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=e===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&t||"",this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeUrl.INNOCUOUS_STRING="about:invalid#zClosurez",goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0,goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()},goog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR},goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return"SafeUrl{"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+"}"}),goog.html.SafeUrl.unwrap=function(e){return e instanceof goog.html.SafeUrl&&e.constructor===goog.html.SafeUrl&&e.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeUrlWrappedValue_:(goog.asserts.fail("expected object of type SafeUrl, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeUrl")},goog.html.SafeUrl.fromConstant=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(e))},goog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\w+=(?:\w+|"[\w;,= ]+"))*$/i,goog.html.SafeUrl.isSafeMimeType=function(e){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(e)},goog.html.SafeUrl.fromBlob=function(e){return e=goog.html.SafeUrl.isSafeMimeType(e.type)?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromMediaSource=function(e){return goog.asserts.assert("MediaSource"in goog.global,"No support for MediaSource"),e=e instanceof MediaSource?goog.fs.url.createObjectUrl(e):goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\/]+=*$/i,goog.html.SafeUrl.fromDataUrl=function(e){e=e.replace(/(%0A|%0D)/g,"");var t=e.match(goog.html.DATA_URL_PATTERN_);return t=t&&goog.html.SafeUrl.isSafeMimeType(t[1]),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t?e:goog.html.SafeUrl.INNOCUOUS_STRING)},goog.html.SafeUrl.fromTelUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"tel:")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\/=^`{|}~-]+@([a-z0-9-]+\.)+[a-z0-9]{2,63}$/i,goog.html.SafeUrl.fromSipUrl=function(e){return goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(e))||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromFacebookMessengerUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"fb-messenger://share")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromWhatsAppUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"whatsapp://send")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.fromSmsUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"sms:")&&goog.html.SafeUrl.isSmsUrlBodyValid_(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.isSmsUrlBodyValid_=function(e){var t=e.indexOf("#");if(0<t&&(e=e.substring(0,t)),t=e.match(/[?&]body=/gi),!t)return!0;if(1<t.length)return!1;if(e=e.match(/[?&]body=([^&]*)/)[1],!e)return!0;try{decodeURIComponent(e)}catch{return!1}return/^(?:[a-z0-9\-_.~]|%[0-9a-f]{2})+$/i.test(e)},goog.html.SafeUrl.fromSshUrl=function(e){return goog.string.internal.caseInsensitiveStartsWith(e,"ssh://")||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeUrl.sanitizeChromeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(e,t){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\/\/([^\/]+)\//,e,t)},goog.html.SafeUrl.sanitizeExtensionUrl_=function(e,t,n){return(e=e.exec(t))?(e=e[1],(n instanceof goog.string.Const?[goog.string.Const.unwrap(n)]:n.map(function(r){return goog.string.Const.unwrap(r)})).indexOf(e)==-1&&(t=goog.html.SafeUrl.INNOCUOUS_STRING)):t=goog.html.SafeUrl.INNOCUOUS_STRING,goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeUrl.fromTrustedResourceUrl=function(e){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(e))},goog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i,goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_,goog.html.SafeUrl.sanitize=function(e){return e instanceof goog.html.SafeUrl?e:(e=typeof e=="object"&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SAFE_URL_PATTERN_.test(e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeUrl.sanitizeAssertUnchanged=function(e,t){return e instanceof goog.html.SafeUrl?e:(e=typeof e=="object"&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),t&&/^data:/i.test(e)&&(t=goog.html.SafeUrl.fromDataUrl(e),t.getTypedStringValue()==e)?t:(goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(e),"%s does not match the safe URL pattern",e)||(e=goog.html.SafeUrl.INNOCUOUS_STRING),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(e)))},goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,e)},goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse("about:blank"),goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={},goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_="",this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyle.fromConstant=function(e){return e=goog.string.Const.unwrap(e),e.length===0?goog.html.SafeStyle.EMPTY:(goog.asserts.assert(goog.string.internal.endsWith(e,";"),"Last character of style string is not ';': "+e),goog.asserts.assert(goog.string.internal.contains(e,":"),`Style string must contain at least one ':', to specify a "name: value" pair: `+e),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_},goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return"SafeStyle{"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+"}"}),goog.html.SafeStyle.unwrap=function(e){return e instanceof goog.html.SafeStyle&&e.constructor===goog.html.SafeStyle&&e.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleWrappedValue_:(goog.asserts.fail("expected object of type SafeStyle, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyle")},goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeStyle().initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_=e,this},goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(""),goog.html.SafeStyle.INNOCUOUS_STRING="zClosurez",goog.html.SafeStyle.create=function(e){var t="",n;for(n in e){if(!/^[-_a-zA-Z0-9]+$/.test(n))throw Error("Name allows only [-_a-zA-Z0-9], got: "+n);var r=e[n];r!=null&&(r=Array.isArray(r)?goog.array.map(r,goog.html.SafeStyle.sanitizePropertyValue_).join(" "):goog.html.SafeStyle.sanitizePropertyValue_(r),t+=n+":"+r+";")}return t?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeStyle.EMPTY},goog.html.SafeStyle.sanitizePropertyValue_=function(e){if(e instanceof goog.html.SafeUrl)return'url("'+goog.html.SafeUrl.unwrap(e).replace(/</g,"%3c").replace(/[\\"]/g,"\\$&")+'")';if(e=e instanceof goog.string.Const?goog.string.Const.unwrap(e):goog.html.SafeStyle.sanitizePropertyValueString_(String(e)),/[{;}]/.test(e))throw new goog.asserts.AssertionError("Value does not allow [{;}], got: %s.",[e]);return e},goog.html.SafeStyle.sanitizePropertyValueString_=function(e){var t=e.replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.FUNCTIONS_RE_,"$1").replace(goog.html.SafeStyle.URL_RE_,"url");if(goog.html.SafeStyle.VALUE_RE_.test(t)){if(goog.html.SafeStyle.COMMENT_RE_.test(e))return goog.asserts.fail("String value disallows comments, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedQuotes_(e))return goog.asserts.fail("String value requires balanced quotes, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedSquareBrackets_(e))return goog.asserts.fail("String value requires balanced square brackets and one identifier per pair of brackets, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING}else return goog.asserts.fail("String value allows only "+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+" and simple functions, got: "+e),goog.html.SafeStyle.INNOCUOUS_STRING;return goog.html.SafeStyle.sanitizeUrl_(e)},goog.html.SafeStyle.hasBalancedQuotes_=function(e){for(var t=!0,n=!0,r=0;r<e.length;r++){var o=e.charAt(r);o=="'"&&n?t=!t:o=='"'&&t&&(n=!n)}return t&&n},goog.html.SafeStyle.hasBalancedSquareBrackets_=function(e){for(var t=!0,n=/^[-_a-zA-Z0-9]$/,r=0;r<e.length;r++){var o=e.charAt(r);if(o=="]"){if(t)return!1;t=!0}else if(o=="["){if(!t)return!1;t=!1}else if(!t&&!n.test(o))return!1}return t},goog.html.SafeStyle.VALUE_ALLOWED_CHARS_=`[-,."'%_!# a-zA-Z0-9\\[\\]]`,goog.html.SafeStyle.VALUE_RE_=new RegExp("^"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+"+$"),goog.html.SafeStyle.URL_RE_=/\b(url\([ \t\n]*)('[ -&(-\[\]-~]*'|"[ !#-\[\]-~]*"|[!#-&*-\[\]-~]*)([ \t\n]*\))/g,goog.html.SafeStyle.ALLOWED_FUNCTIONS_="calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?".split(" "),goog.html.SafeStyle.FUNCTIONS_RE_=new RegExp("\\b("+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join("|")+")\\([-+*/0-9a-z.%\\[\\], ]+\\)","g"),goog.html.SafeStyle.COMMENT_RE_=/\/\*/,goog.html.SafeStyle.sanitizeUrl_=function(e){return e.replace(goog.html.SafeStyle.URL_RE_,function(t,n,r,o){var s="";return r=r.replace(/^(['"])(.*)\1$/,function(g,l,u){return s=l,u}),t=goog.html.SafeUrl.sanitize(r).getTypedStringValue(),n+s+t+s+o})},goog.html.SafeStyle.concat=function(e){var t="",n=function(r){Array.isArray(r)?goog.array.forEach(r,n):t+=goog.html.SafeStyle.unwrap(r)};return goog.array.forEach(arguments,n),t?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t):goog.html.SafeStyle.EMPTY},goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_="",this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_},goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0,goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeStyleSheet.createRule=function(e,t){if(goog.string.internal.contains(e,"<"))throw Error("Selector does not allow '<', got: "+e);var n=e.replace(/('|")((?!\1)[^\r\n\f\\]|\\[\s\S])*\1/g,"");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\]()=^$|]+$/.test(n))throw Error("Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|] and strings, got: "+e);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(n))throw Error("() and [] in selector must be balanced, got: "+e);return t instanceof goog.html.SafeStyle||(t=goog.html.SafeStyle.create(t)),e=e+"{"+goog.html.SafeStyle.unwrap(t).replace(/</g,"\\3C ")+"}",goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e)},goog.html.SafeStyleSheet.hasBalancedBrackets_=function(e){for(var t={"(":")","[":"]"},n=[],r=0;r<e.length;r++){var o=e[r];if(t[o])n.push(t[o]);else if(goog.object.contains(t,o)&&n.pop()!=o)return!1}return n.length==0},goog.html.SafeStyleSheet.concat=function(e){var t="",n=function(r){Array.isArray(r)?goog.array.forEach(r,n):t+=goog.html.SafeStyleSheet.unwrap(r)};return goog.array.forEach(arguments,n),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.SafeStyleSheet.fromConstant=function(e){return e=goog.string.Const.unwrap(e),e.length===0?goog.html.SafeStyleSheet.EMPTY:(goog.asserts.assert(!goog.string.internal.contains(e,"<"),"Forbidden '<' character in style sheet string: "+e),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(e))},goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_},goog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return"SafeStyleSheet{"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+"}"}),goog.html.SafeStyleSheet.unwrap=function(e){return e instanceof goog.html.SafeStyleSheet&&e.constructor===goog.html.SafeStyleSheet&&e.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_:(goog.asserts.fail("expected object of type SafeStyleSheet, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeStyleSheet")},goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(e){return new goog.html.SafeStyleSheet().initSecurityPrivateDoNotAccessOrElse_(e)},goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=e,this},goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(""),goog.labs={},goog.labs.userAgent={},goog.labs.userAgent.util={},goog.labs.userAgent.util.getNativeUserAgentString_=function(){var e=goog.labs.userAgent.util.getNavigator_();return e&&(e=e.userAgent)?e:""},goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator},goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_(),goog.labs.userAgent.util.setUserAgent=function(e){goog.labs.userAgent.util.userAgent_=e||goog.labs.userAgent.util.getNativeUserAgentString_()},goog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_},goog.labs.userAgent.util.matchUserAgent=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(t,e)},goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(e){var t=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(t,e)},goog.labs.userAgent.util.extractVersionTuples=function(e){for(var t=/(\w[\w ]+)\/([^\s]+)\s*(?:\((.*?)\))?/g,n=[],r;r=t.exec(e);)n.push([r[1],r[2],r[3]||void 0]);return n},goog.labs.userAgent.browser={},goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent("Opera")},goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("Edg/")},goog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent("OPR")},goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent("Firefox")||goog.labs.userAgent.util.matchUserAgent("FxiOS")},goog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent("Safari")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent("Android"))},goog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent("Coast")},goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent("iPad")||goog.labs.userAgent.util.matchUserAgent("iPhone"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent("AppleWebKit")},goog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent("Chrome")||goog.labs.userAgent.util.matchUserAgent("CriOS"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()},goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent("Android")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())},goog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_,goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_,goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_,goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_,goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_,goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_,goog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_,goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_,goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_,goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_,goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_,goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent("Silk")},goog.labs.userAgent.browser.getVersion=function(){function e(o){return o=goog.array.find(o,r),n[o]||""}var t=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(t);t=goog.labs.userAgent.util.extractVersionTuples(t);var n={};goog.array.forEach(t,function(o){n[o[0]]=o[1]});var r=goog.partial(goog.object.containsKey,n);return goog.labs.userAgent.browser.isOpera()?e(["Version","Opera"]):goog.labs.userAgent.browser.isEdge()?e(["Edge"]):goog.labs.userAgent.browser.isEdgeChromium()?e(["Edg"]):goog.labs.userAgent.browser.isChrome()?e(["Chrome","CriOS","HeadlessChrome"]):(t=t[2])&&t[1]||""},goog.labs.userAgent.browser.isVersionOrHigher=function(e){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),e)},goog.labs.userAgent.browser.getIEVersion_=function(e){var t=/rv: *([\d\.]*)/.exec(e);if(t&&t[1])return t[1];t="";var n=/MSIE +([\d\.]+)/.exec(e);if(n&&n[1])if(e=/Trident\/(\d.\d)/.exec(e),n[1]=="7.0")if(e&&e[1])switch(e[1]){case"4.0":t="8.0";break;case"5.0":t="9.0";break;case"6.0":t="10.0";break;case"7.0":t="11.0"}else t="7.0";else t=n[1];return t},goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_="",this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_,this.dir_=null},goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG,goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0,goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0,goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_},goog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0,goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()},goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return"SafeHtml{"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+"}"}),goog.html.SafeHtml.unwrap=function(e){return goog.html.SafeHtml.unwrapTrustedHTML(e).toString()},goog.html.SafeHtml.unwrapTrustedHTML=function(e){return e instanceof goog.html.SafeHtml&&e.constructor===goog.html.SafeHtml&&e.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_?e.privateDoNotAccessOrElseSafeHtmlWrappedValue_:(goog.asserts.fail("expected object of type SafeHtml, got '"+e+"' of type "+goog.typeOf(e)),"type_error:SafeHtml")},goog.html.SafeHtml.htmlEscape=function(e){if(e instanceof goog.html.SafeHtml)return e;var t=typeof e=="object",n=null;return t&&e.implementsGoogI18nBidiDirectionalString&&(n=e.getDirection()),e=t&&e.implementsGoogStringTypedString?e.getTypedStringValue():String(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(e),n)},goog.html.SafeHtml.htmlEscapePreservingNewlines=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(e){return e instanceof goog.html.SafeHtml?e:(e=goog.html.SafeHtml.htmlEscape(e),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(e)),e.getDirection()))},goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape,goog.html.SafeHtml.comment=function(e){return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!--"+goog.string.internal.htmlEscape(e)+"-->",null)},goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/,goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0},goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.html.SafeHtml.create=function(e,t,n){return goog.html.SafeHtml.verifyTagName(String(e)),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(e),t,n)},goog.html.SafeHtml.verifyTagName=function(e){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Invalid tag name <"+e+">.":"");if(e.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"Tag name <"+e+"> is not allowed for SafeHtml.":"")},goog.html.SafeHtml.createIframe=function(e,t,n,r){e&&goog.html.TrustedResourceUrl.unwrap(e);var o={};return o.src=e||null,o.srcdoc=t&&goog.html.SafeHtml.unwrap(t),e=goog.html.SafeHtml.combineAttributes(o,{sandbox:""},n),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,r)},goog.html.SafeHtml.createSandboxIframe=function(e,t,n,r){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?"The browser does not support sandboxed iframes.":"");var o={};return o.src=e?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)):null,o.srcdoc=t||null,o.sandbox="",e=goog.html.SafeHtml.combineAttributes(o,{},n),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("iframe",e,r)},goog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&"sandbox"in goog.global.HTMLIFrameElement.prototype},goog.html.SafeHtml.createScriptSrc=function(e,t){return goog.html.TrustedResourceUrl.unwrap(e),e=goog.html.SafeHtml.combineAttributes({src:e},{},t),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",e)},goog.html.SafeHtml.createScript=function(e,t){for(var n in t){var r=n.toLowerCase();if(r=="language"||r=="src"||r=="text"||r=="type")throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set "'+r+'" attribute':"")}for(n="",e=goog.array.concat(e),r=0;r<e.length;r++)n+=goog.html.SafeScript.unwrap(e[r]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("script",t,e)},goog.html.SafeHtml.createStyle=function(e,t){t=goog.html.SafeHtml.combineAttributes({type:"text/css"},{},t);var n="";e=goog.array.concat(e);for(var r=0;r<e.length;r++)n+=goog.html.SafeStyleSheet.unwrap(e[r]);return e=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(n,goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("style",t,e)},goog.html.SafeHtml.createMetaRefresh=function(e,t){return e=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(e)),(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(e,";")&&(e="'"+e.replace(/'/g,"%27")+"'"),goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse("meta",{"http-equiv":"refresh",content:(t||0)+"; url="+e})},goog.html.SafeHtml.getAttrNameAndValue_=function(e,t,n){if(n instanceof goog.string.Const)n=goog.string.Const.unwrap(n);else if(t.toLowerCase()=="style")if(goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)n=goog.html.SafeHtml.getStyleValue_(n);else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "style" not supported.':"");else{if(/^on/i.test(t))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" requires goog.string.Const value, "'+n+'" given.':"");if(t.toLowerCase()in goog.html.SafeHtml.URL_ATTRIBUTES_)if(n instanceof goog.html.TrustedResourceUrl)n=goog.html.TrustedResourceUrl.unwrap(n);else if(n instanceof goog.html.SafeUrl)n=goog.html.SafeUrl.unwrap(n);else if(typeof n=="string")n=goog.html.SafeUrl.sanitize(n).getTypedStringValue();else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute "'+t+'" on tag "'+e+'" requires goog.html.SafeUrl, goog.string.Const, or string, value "'+n+'" given.':"")}return n.implementsGoogStringTypedString&&(n=n.getTypedStringValue()),goog.asserts.assert(typeof n=="string"||typeof n=="number","String or number value expected, got "+typeof n+" with value: "+n),t+'="'+goog.string.internal.htmlEscape(String(n))+'"'},goog.html.SafeHtml.getStyleValue_=function(e){if(!goog.isObject(e))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The "style" attribute requires goog.html.SafeStyle or map of style properties, '+typeof e+" given: "+e:"");return e instanceof goog.html.SafeStyle||(e=goog.html.SafeStyle.create(e)),goog.html.SafeStyle.unwrap(e)},goog.html.SafeHtml.createWithDir=function(e,t,n,r){return t=goog.html.SafeHtml.create(t,n,r),t.dir_=e,t},goog.html.SafeHtml.join=function(e,t){e=goog.html.SafeHtml.htmlEscape(e);var n=e.getDirection(),r=[],o=function(s){Array.isArray(s)?goog.array.forEach(s,o):(s=goog.html.SafeHtml.htmlEscape(s),r.push(goog.html.SafeHtml.unwrap(s)),s=s.getDirection(),n==goog.i18n.bidi.Dir.NEUTRAL?n=s:s!=goog.i18n.bidi.Dir.NEUTRAL&&n!=s&&(n=null))};return goog.array.forEach(t,o),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(r.join(goog.html.SafeHtml.unwrap(e)),n)},goog.html.SafeHtml.concat=function(e){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))},goog.html.SafeHtml.concatWithDir=function(e,t){var n=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));return n.dir_=e,n},goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={},goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(e,t){return new goog.html.SafeHtml().initSecurityPrivateDoNotAccessOrElse_(e,t)},goog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(e,t){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(e):e,this.dir_=t,this},goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(e,t,n){var r=null,o="<"+e+goog.html.SafeHtml.stringifyAttributes(e,t);return n==null?n=[]:Array.isArray(n)||(n=[n]),goog.dom.tags.isVoidTag(e.toLowerCase())?(goog.asserts.assert(!n.length,"Void tag <"+e+"> does not allow content."),o+=">"):(r=goog.html.SafeHtml.concat(n),o+=">"+goog.html.SafeHtml.unwrap(r)+"</"+e+">",r=r.getDirection()),(e=t&&t.dir)&&(r=/^(ltr|rtl|auto)$/i.test(e)?goog.i18n.bidi.Dir.NEUTRAL:null),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(o,r)},goog.html.SafeHtml.stringifyAttributes=function(e,t){var n="";if(t)for(var r in t){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(r))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name "'+r+'".':"");var o=t[r];o!=null&&(n+=" "+goog.html.SafeHtml.getAttrNameAndValue_(e,r,o))}return n},goog.html.SafeHtml.combineAttributes=function(e,t,n){var r={},o;for(o in e)goog.asserts.assert(o.toLowerCase()==o,"Must be lower case"),r[o]=e[o];for(o in t)goog.asserts.assert(o.toLowerCase()==o,"Must be lower case"),r[o]=t[o];if(n)for(o in n){var s=o.toLowerCase();if(s in e)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override "'+s+'" attribute, got "'+o+'" with value "'+n[o]+'"':"");s in t&&delete r[s],r[o]=n[o]}return r},goog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<!DOCTYPE html>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("",goog.i18n.bidi.Dir.NEUTRAL),goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse("<br>",goog.i18n.bidi.Dir.NEUTRAL),goog.html.uncheckedconversions={},goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(e,t,n){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(t,n||null)},goog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(t)},goog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(e,t){return goog.asserts.assertString(goog.string.Const.unwrap(e),"must provide justification"),goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(e)),"must provide non-empty justification"),goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(t)},goog.dom.safe={},goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:"afterbegin",AFTEREND:"afterend",BEFOREBEGIN:"beforebegin",BEFOREEND:"beforeend"},goog.dom.safe.insertAdjacentHtml=function(e,t,n){e.insertAdjacentHTML(t,goog.html.SafeHtml.unwrapTrustedHTML(n))},goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0},goog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue(function(){if(goog.DEBUG&&typeof document=="undefined")return!1;var e=document.createElement("div"),t=document.createElement("div");return t.appendChild(document.createElement("div")),e.appendChild(t),goog.DEBUG&&!e.firstChild?!1:(t=e.firstChild.firstChild,e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY),!t.parentElement)}),goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(e,t){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;e.lastChild;)e.removeChild(e.lastChild);e.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setInnerHtml=function(e,t){if(goog.asserts.ENABLE_ASSERTS){var n=e.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[n])throw Error("goog.dom.safe.setInnerHtml cannot be used to set content of "+e.tagName+".")}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(e,t)},goog.dom.safe.setOuterHtml=function(e,t){e.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setFormElementAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLFormElement(e).action=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setButtonFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLButtonElement(e).formAction=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setInputFormAction=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),goog.dom.asserts.assertIsHTMLInputElement(e).formAction=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setStyle=function(e,t){e.style.cssText=goog.html.SafeStyle.unwrap(t)},goog.dom.safe.documentWrite=function(e,t){e.write(goog.html.SafeHtml.unwrapTrustedHTML(t))},goog.dom.safe.setAnchorHref=function(e,t){goog.dom.asserts.assertIsHTMLAnchorElement(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setImageSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLImageElement(e),!(t instanceof goog.html.SafeUrl)){var n=/^data:image\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,n)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setAudioSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLAudioElement(e),!(t instanceof goog.html.SafeUrl)){var n=/^data:audio\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,n)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setVideoSrc=function(e,t){if(goog.dom.asserts.assertIsHTMLVideoElement(e),!(t instanceof goog.html.SafeUrl)){var n=/^data:video\//i.test(t);t=goog.html.SafeUrl.sanitizeAssertUnchanged(t,n)}e.src=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.setEmbedSrc=function(e,t){goog.dom.asserts.assertIsHTMLEmbedElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setFrameSrc=function(e,t){goog.dom.asserts.assertIsHTMLFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.src=goog.html.TrustedResourceUrl.unwrap(t)},goog.dom.safe.setIframeSrcdoc=function(e,t){goog.dom.asserts.assertIsHTMLIFrameElement(e),e.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(t)},goog.dom.safe.setLinkHrefAndRel=function(e,t,n){goog.dom.asserts.assertIsHTMLLinkElement(e),e.rel=n,goog.string.internal.caseInsensitiveContains(n,"stylesheet")?(goog.asserts.assert(t instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because "rel" contains "stylesheet"'),e.href=goog.html.TrustedResourceUrl.unwrap(t)):e.href=t instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(t):t instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(t):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(t))},goog.dom.safe.setObjectData=function(e,t){goog.dom.asserts.assertIsHTMLObjectElement(e),e.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t)},goog.dom.safe.setScriptSrc=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setScriptContent=function(e,t){goog.dom.asserts.assertIsHTMLScriptElement(e),e.text=goog.html.SafeScript.unwrapTrustedScript(t),(t=goog.getScriptNonce())&&e.setAttribute("nonce",t)},goog.dom.safe.setLocationHref=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.href=goog.html.SafeUrl.unwrap(t)},goog.dom.safe.assignLocation=function(e,t){goog.dom.asserts.assertIsLocation(e),t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.assign(goog.html.SafeUrl.unwrap(t))},goog.dom.safe.replaceLocation=function(e,t){t=t instanceof goog.html.SafeUrl?t:goog.html.SafeUrl.sanitizeAssertUnchanged(t),e.replace(goog.html.SafeUrl.unwrap(t))},goog.dom.safe.openInWindow=function(e,t,n,r,o){return e=e instanceof goog.html.SafeUrl?e:goog.html.SafeUrl.sanitizeAssertUnchanged(e),t=t||goog.global,n=n instanceof goog.string.Const?goog.string.Const.unwrap(n):n||"",t.open(goog.html.SafeUrl.unwrap(e),n,r,o)},goog.dom.safe.parseFromStringHtml=function(e,t){return goog.dom.safe.parseFromString(e,t,"text/html")},goog.dom.safe.parseFromString=function(e,t,n){return e.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(t),n)},goog.dom.safe.createImageFromBlob=function(e){if(!/^image\/.*/g.test(e.type))throw Error("goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.");var t=goog.global.URL.createObjectURL(e);return e=new goog.global.Image,e.onload=function(){goog.global.URL.revokeObjectURL(t)},goog.dom.safe.setImageSrc(e,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Image blob URL."),t)),e},goog.string.DETECT_DOUBLE_ESCAPING=!1,goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1,goog.string.Unicode={NBSP:" "},goog.string.startsWith=goog.string.internal.startsWith,goog.string.endsWith=goog.string.internal.endsWith,goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith,goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith,goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals,goog.string.subs=function(e,t){for(var n=e.split("%s"),r="",o=Array.prototype.slice.call(arguments,1);o.length&&1<n.length;)r+=n.shift()+o.shift();return r+n.join("%s")},goog.string.collapseWhitespace=function(e){return e.replace(/[\s\xa0]+/g," ").replace(/^\s+|\s+$/g,"")},goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace,goog.string.isEmptyString=function(e){return e.length==0},goog.string.isEmpty=goog.string.isEmptyOrWhitespace,goog.string.isEmptyOrWhitespaceSafe=function(e){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(e))},goog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe,goog.string.isBreakingWhitespace=function(e){return!/[^\t\n\r ]/.test(e)},goog.string.isAlpha=function(e){return!/[^a-zA-Z]/.test(e)},goog.string.isNumeric=function(e){return!/[^0-9]/.test(e)},goog.string.isAlphaNumeric=function(e){return!/[^a-zA-Z0-9]/.test(e)},goog.string.isSpace=function(e){return e==" "},goog.string.isUnicodeChar=function(e){return e.length==1&&" "<=e&&"~">=e||""<=e&&"�">=e},goog.string.stripNewlines=function(e){return e.replace(/(\r\n|\r|\n)+/g," ")},goog.string.canonicalizeNewlines=function(e){return e.replace(/(\r\n|\r|\n)/g,`
|
|
102
|
-
`)},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(e,t,n){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var r=e.toLowerCase().match(n),o=t.toLowerCase().match(n),s=Math.min(r.length,o.length),g=0;g<s;g++){n=r[g];var l=o[g];if(n!=l)return e=parseInt(n,10),!isNaN(e)&&(t=parseInt(l,10),!isNaN(t)&&e-t)?e-t:n<l?-1:1}return r.length!=o.length?r.length-o.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(e,t){return e=goog.string.internal.htmlEscape(e,t),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"e")),e},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var n={"&":"&","<":"<",">":">",""":'"'},r=t?t.createElement("div"):goog.global.document.createElement("div");return e.replace(goog.string.HTML_ENTITY_PATTERN_,function(o,s){var g=n[o];return g||(s.charAt(0)=="#"&&(s=+("0"+s.substr(1)),isNaN(s)||(g=String.fromCharCode(s))),g||(goog.dom.safe.setInnerHtml(r,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),o+" ")),g=r.firstChild.nodeValue.slice(0,-1)),n[o]=g)})},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,function(t,n){switch(n){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return n.charAt(0)!="#"||(n=+("0"+n.substr(1)),isNaN(n))?t:String.fromCharCode(n)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/ /g,"  "),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var n=t.length,r=0;r<n;r++){var o=n==1?t:t.charAt(r);if(e.charAt(0)==o&&e.charAt(e.length-1)==o)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,n){return n&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),n&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,n,r){if(n&&(e=goog.string.unescapeEntities(e)),r&&e.length>t){r>t&&(r=t);var o=e.length-r;e=e.substring(0,t-r)+"..."+e.substring(o)}else e.length>t&&(r=Math.floor(t/2),o=e.length-r,e=e.substring(0,r+t%2)+"..."+e.substring(o));return n&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var t=['"'],n=0;n<e.length;n++){var r=e.charAt(n),o=r.charCodeAt(0);t[n+1]=goog.string.specialEscapeChars_[r]||(31<o&&127>o?r:goog.string.escapeChar(r))}return t.push('"'),t.join("")},goog.string.escapeString=function(e){for(var t=[],n=0;n<e.length;n++)t[n]=goog.string.escapeChar(e.charAt(n));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t=e.charCodeAt(0);if(31<t&&127>t)var n=e;else 256>t?(n="\\x",(16>t||256<t)&&(n+="0")):(n="\\u",4096>t&&(n+="0")),n+=t.toString(16).toUpperCase();return goog.string.jsEscapeCache_[e]=n},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,n){var r=e;return 0<=t&&t<e.length&&0<n&&(r=e.substr(0,t)+e.substr(t+n,e.length-t-n)),r},goog.string.remove=function(e,t){return e.replace(t,"")},goog.string.removeAll=function(e,t){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,"")},goog.string.replaceAll=function(e,t,n){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,n.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,n){return e=n!==void 0?e.toFixed(n):String(e),n=e.indexOf("."),n==-1&&(n=e.length),goog.string.repeat("0",Math.max(0,t-n))+e},goog.string.makeSafe=function(e){return e==null?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(e){for(var t=0,n=0;n<e.length;++n)t=31*t+e.charCodeAt(n)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return t==0&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,function(t,n){return n.toUpperCase()})},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){return t=typeof t=="string"?goog.string.regExpEscape(t):"\\s",e.replace(new RegExp("(^"+(t?"|["+t+"]+":"")+")([a-z])","g"),function(n,r,o){return r+o.toUpperCase()})},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),typeof e=="string"?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,n){e=e.split(t);for(var r=[];0<n&&e.length;)r.push(e.shift()),n--;return e.length&&r.push(e.join(t)),r},goog.string.lastComponent=function(e,t){if(t)typeof t=="string"&&(t=[t]);else return e;for(var n=-1,r=0;r<t.length;r++)if(t[r]!=""){var o=e.lastIndexOf(t[r]);o>n&&(n=o)}return n==-1?e:e.slice(n+1)},goog.string.editDistance=function(e,t){var n=[],r=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var o=0;o<t.length+1;o++)n[o]=o;for(o=0;o<e.length;o++){r[0]=o+1;for(var s=0;s<t.length;s++)r[s+1]=Math.min(r[s]+1,n[s+1]+1,n[s]+ +(e[o]!=t[s]));for(s=0;s<n.length;s++)n[s]=r[s]}return r[t.length]},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent();if(e){e=goog.labs.userAgent.util.extractVersionTuples(e);var t=goog.labs.userAgent.engine.getEngineTuple_(e);if(t)return t[0]=="Gecko"?goog.labs.userAgent.engine.getVersionForKey_(e,"Firefox"):t[1];e=e[0];var n;if(e&&(n=e[2])&&(n=/Trident\/([^\s;]+)/.exec(n)))return n[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var t=0;t<e.length;t++){var n=e[t];if(n[0]=="Edge")return n}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,t){return(e=goog.array.find(e,function(n){return t==n[0]}))&&e[1]||""},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent("CrKey")},goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),t="";return goog.labs.userAgent.platform.isWindows()?(t=/Windows (?:NT|Phone) ([0-9.]+)/,t=(e=t.exec(e))?e[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(t=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,t=(e=t.exec(e))&&e[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(t=/Mac OS X ([0-9_.]+)/,t=(e=t.exec(e))?e[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isKaiOS()?(t=/(?:KaiOS)\/(\S+)/i,t=(e=t.exec(e))&&e[1]):goog.labs.userAgent.platform.isAndroid()?(t=/Android\s+([^\);]+)(\)|;)/,t=(e=t.exec(e))&&e[1]):goog.labs.userAgent.platform.isChromeOS()&&(t=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,t=(e=t.exec(e))&&e[1]),t||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.reflect={},goog.reflect.object=function(e,t){return t},goog.reflect.objectProperty=function(e,t){return e},goog.reflect.sinkValue=function(e){return goog.reflect.sinkValue[" "](e),e},goog.reflect.sinkValue[" "]=goog.nullFunction,goog.reflect.canAccessProperty=function(e,t){try{return goog.reflect.sinkValue(e[t]),!0}catch{}return!1},goog.reflect.cache=function(e,t,n,r){return r=r?r(t):t,Object.prototype.hasOwnProperty.call(e,r)?e[r]:e[r]=n(t)},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null},goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigatorTyped();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.ASSUME_IPOD=!1,goog.userAgent.ASSUME_KAIOS=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh(),goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigatorTyped();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod(),goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos(),goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS(),goog.userAgent.determineVersion_=function(){var e="",t=goog.userAgent.getVersionRegexResult_();return t&&(e=t?t[1]:""),goog.userAgent.IE&&(t=goog.userAgent.getDocumentMode_(),t!=null&&t>parseFloat(e))?String(t):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(e);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(e);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(e);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(e)},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,t){return goog.string.compareVersions(e,t)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,e,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,e)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE){var e=goog.userAgent.getDocumentMode_();return e||parseInt(goog.userAgent.VERSION,10)||void 0}}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(e){return goog.string.contains(goog.crypt.base64.paddingChars_,e)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(e,t){goog.asserts.assert(goog.isArrayLike(e),"encodeByteArray takes an array as a parameter"),t===void 0&&(t=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),t=goog.crypt.base64.byteToCharMaps_[t];for(var n=[],r=0;r<e.length;r+=3){var o=e[r],s=r+1<e.length,g=s?e[r+1]:0,l=r+2<e.length,u=l?e[r+2]:0,c=o>>2;o=(o&3)<<4|g>>4,g=(g&15)<<2|u>>6,u&=63,l||(u=64,s||(g=64)),n.push(t[c],t[o],t[g]||"",t[u]||"")}return n.join("")},goog.crypt.base64.encodeString=function(e,t){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!t?goog.global.btoa(e):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(e),t)},goog.crypt.base64.decodeString=function(e,t){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!t)return goog.global.atob(e);var n="";return goog.crypt.base64.decodeStringInternal_(e,function(r){n+=String.fromCharCode(r)}),n},goog.crypt.base64.decodeStringToByteArray=function(e,t){var n=[];return goog.crypt.base64.decodeStringInternal_(e,function(r){n.push(r)}),n},goog.crypt.base64.decodeStringToUint8Array=function(e){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var t=e.length,n=3*t/4;n%3?n=Math.floor(n):goog.crypt.base64.isPadding_(e[t-1])&&(n=goog.crypt.base64.isPadding_(e[t-2])?n-2:n-1);var r=new Uint8Array(n),o=0;return goog.crypt.base64.decodeStringInternal_(e,function(s){r[o++]=s}),r.subarray(0,o)},goog.crypt.base64.decodeStringInternal_=function(e,t){function n(u){for(;r<e.length;){var c=e.charAt(r++),d=goog.crypt.base64.charToByteMap_[c];if(d!=null)return d;if(!goog.string.isEmptyOrWhitespace(c))throw Error("Unknown base64 encoding at char: "+c)}return u}goog.crypt.base64.init_();for(var r=0;;){var o=n(-1),s=n(0),g=n(64),l=n(64);if(l===64&&o===-1)break;t(o<<2|s>>4),g!=64&&(t(s<<4&240|g>>2),l!=64&&t(g<<6&192|l))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var e=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var r=e.concat(t[n].split(""));goog.crypt.base64.byteToCharMaps_[n]=r;for(var o=0;o<r.length;o++){var s=r[o],g=goog.crypt.base64.charToByteMap_[s];g===void 0?goog.crypt.base64.charToByteMap_[s]=o:goog.asserts.assert(g===o)}}}},jspb.utils={},jspb.utils.split64Low=0,jspb.utils.split64High=0,jspb.utils.splitUint64=function(e){var t=e>>>0;e=Math.floor((e-t)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=t,jspb.utils.split64High=e},jspb.utils.splitInt64=function(e){var t=0>e;e=Math.abs(e);var n=e>>>0;e=Math.floor((e-n)/jspb.BinaryConstants.TWO_TO_32),e>>>=0,t&&(e=~e>>>0,n=(~n>>>0)+1,4294967295<n&&(n=0,e++,4294967295<e&&(e=0))),jspb.utils.split64Low=n,jspb.utils.split64High=e},jspb.utils.splitZigzag64=function(e){var t=0>e;e=2*Math.abs(e),jspb.utils.splitUint64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;t&&(e==0?n==0?n=e=4294967295:(n--,e=4294967295):e--),jspb.utils.split64Low=e,jspb.utils.split64High=n},jspb.utils.splitFloat32=function(e){var t=0>e?1:0;if(e=t?-e:e,e===0)0<1/e?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(e))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(e>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|2139095040)>>>0;else if(e<jspb.BinaryConstants.FLOAT32_MIN)e=Math.round(e/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|e)>>>0;else{var n=Math.floor(Math.log(e)/Math.LN2);e*=Math.pow(2,-n),e=Math.round(e*jspb.BinaryConstants.TWO_TO_23),16777216<=e&&++n,jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|n+127<<23|e&8388607)>>>0}},jspb.utils.splitFloat64=function(e){var t=0>e?1:0;if(e=t?-e:e,e===0)jspb.utils.split64High=0<1/e?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(e))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(e>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(t<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(e<jspb.BinaryConstants.FLOAT64_MIN){var n=e/Math.pow(2,-1074);e=n/jspb.BinaryConstants.TWO_TO_32,jspb.utils.split64High=(t<<31|e)>>>0,jspb.utils.split64Low=n>>>0}else{n=e;var r=0;if(2<=n)for(;2<=n&&1023>r;)r++,n/=2;else for(;1>n&&-1022<r;)n*=2,r--;n=e*Math.pow(2,-r),e=n*jspb.BinaryConstants.TWO_TO_20&1048575,n=n*jspb.BinaryConstants.TWO_TO_52>>>0,jspb.utils.split64High=(t<<31|r+1023<<20|e)>>>0,jspb.utils.split64Low=n}},jspb.utils.splitHash64=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),s=e.charCodeAt(4),g=e.charCodeAt(5),l=e.charCodeAt(6);e=e.charCodeAt(7),jspb.utils.split64Low=t+(n<<8)+(r<<16)+(o<<24)>>>0,jspb.utils.split64High=s+(g<<8)+(l<<16)+(e<<24)>>>0},jspb.utils.joinUint64=function(e,t){return t*jspb.BinaryConstants.TWO_TO_32+(e>>>0)},jspb.utils.joinInt64=function(e,t){var n=t&2147483648;return n&&(e=~e+1>>>0,t=~t>>>0,e==0&&(t=t+1>>>0)),e=jspb.utils.joinUint64(e,t),n?-e:e},jspb.utils.toZigzag64=function(e,t,n){var r=t>>31;return n(e<<1^r,(t<<1|e>>>31)^r)},jspb.utils.joinZigzag64=function(e,t){return jspb.utils.fromZigzag64(e,t,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(e,t,n){var r=-(e&1);return n((e>>>1|t<<31)^r,t>>>1^r)},jspb.utils.joinFloat32=function(e,t){t=2*(e>>31)+1;var n=e>>>23&255;return e&=8388607,n==255?e?NaN:1/0*t:n==0?t*Math.pow(2,-149)*e:t*Math.pow(2,n-150)*(e+Math.pow(2,23))},jspb.utils.joinFloat64=function(e,t){var n=2*(t>>31)+1,r=t>>>20&2047;return e=jspb.BinaryConstants.TWO_TO_32*(t&1048575)+e,r==2047?e?NaN:1/0*n:r==0?n*Math.pow(2,-1074)*e:n*Math.pow(2,r-1075)*(e+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(e,t){function n(o,s){return o=o?String(o):"",s?"0000000".slice(o.length)+o:o}if(2097151>=t)return""+jspb.utils.joinUint64(e,t);var r=(e>>>24|t<<8)>>>0&16777215;return t=t>>16&65535,e=(e&16777215)+6777216*r+6710656*t,r+=8147497*t,t*=2,1e7<=e&&(r+=Math.floor(e/1e7),e%=1e7),1e7<=r&&(t+=Math.floor(r/1e7),r%=1e7),n(t,0)+n(r,t)+n(e,1)},jspb.utils.joinSignedDecimalString=function(e,t){var n=t&2147483648;return n&&(e=~e+1>>>0,t=~t+(e==0?1:0)>>>0),e=jspb.utils.joinUnsignedDecimalString(e,t),n?"-"+e:e},jspb.utils.hash64ToDecimalString=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;return t?jspb.utils.joinSignedDecimalString(e,n):jspb.utils.joinUnsignedDecimalString(e,n)},jspb.utils.hash64ArrayToDecimalStrings=function(e,t){for(var n=Array(e.length),r=0;r<e.length;r++)n[r]=jspb.utils.hash64ToDecimalString(e[r],t);return n},jspb.utils.decimalStringToHash64=function(e){function t(g,l){for(var u=0;8>u&&(g!==1||0<l);u++)l=g*o[u]+l,o[u]=l&255,l>>>=8}function n(){for(var g=0;8>g;g++)o[g]=~o[g]&255}jspb.asserts.assert(0<e.length);var r=!1;e[0]==="-"&&(r=!0,e=e.slice(1));for(var o=[0,0,0,0,0,0,0,0],s=0;s<e.length;s++)t(10,e.charCodeAt(s)-jspb.utils.ZERO_CHAR_CODE_);return r&&(n(),t(1,1)),goog.crypt.byteArrayToString(o)},jspb.utils.splitDecimalString=function(e){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e))},jspb.utils.toHexDigit_=function(e){return String.fromCharCode(10>e?jspb.utils.ZERO_CHAR_CODE_+e:jspb.utils.A_CHAR_CODE_-10+e)},jspb.utils.fromHexCharCode_=function(e){return e>=jspb.utils.A_CHAR_CODE_?e-jspb.utils.A_CHAR_CODE_+10:e-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(e){var t=Array(18);t[0]="0",t[1]="x";for(var n=0;8>n;n++){var r=e.charCodeAt(7-n);t[2*n+2]=jspb.utils.toHexDigit_(r>>4),t[2*n+3]=jspb.utils.toHexDigit_(r&15)}return t.join("")},jspb.utils.hexStringToHash64=function(e){e=e.toLowerCase(),jspb.asserts.assert(e.length==18),jspb.asserts.assert(e[0]=="0"),jspb.asserts.assert(e[1]=="x");for(var t="",n=0;8>n;n++){var r=jspb.utils.fromHexCharCode_(e.charCodeAt(2*n+2)),o=jspb.utils.fromHexCharCode_(e.charCodeAt(2*n+3));t=String.fromCharCode(16*r+o)+t}return t},jspb.utils.hash64ToNumber=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;return t?jspb.utils.joinInt64(e,n):jspb.utils.joinUint64(e,n)},jspb.utils.numberToHash64=function(e){return jspb.utils.splitInt64(e),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(e,t,n){for(var r=0,o=t;o<n;o++)r+=e[o]>>7;return n-t-r},jspb.utils.countVarintFields=function(e,t,n,r){var o=0;if(r=8*r+jspb.BinaryConstants.WireType.VARINT,128>r)for(;t<n&&e[t++]==r;)for(o++;;){var s=e[t++];if(!(s&128))break}else for(;t<n;){for(s=r;128<s;){if(e[t]!=(s&127|128))return o;t++,s>>=7}if(e[t++]!=s)break;for(o++;s=e[t++],(s&128)!=0;);}return o},jspb.utils.countFixedFields_=function(e,t,n,r,o){var s=0;if(128>r)for(;t<n&&e[t++]==r;)s++,t+=o;else for(;t<n;){for(var g=r;128<g;){if(e[t++]!=(g&127|128))return s;g>>=7}if(e[t++]!=g)break;s++,t+=o}return s},jspb.utils.countFixed32Fields=function(e,t,n,r){return jspb.utils.countFixedFields_(e,t,n,8*r+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(e,t,n,r){return jspb.utils.countFixedFields_(e,t,n,8*r+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(e,t,n,r){var o=0;for(r=8*r+jspb.BinaryConstants.WireType.DELIMITED;t<n;){for(var s=r;128<s;){if(e[t++]!=(s&127|128))return o;s>>=7}if(e[t++]!=s)break;o++;for(var g=0,l=1;s=e[t++],g+=(s&127)*l,l*=128,(s&128)!=0;);t+=g}return o},jspb.utils.debugBytesToTextFormat=function(e){var t='"';if(e){e=jspb.utils.byteSourceToUint8Array(e);for(var n=0;n<e.length;n++)t+="\\x",16>e[n]&&(t+="0"),t+=e[n].toString(16)}return t+'"'},jspb.utils.debugScalarToTextFormat=function(e){return typeof e=="string"?goog.string.quote(e):e.toString()},jspb.utils.stringToByteArray=function(e){for(var t=new Uint8Array(e.length),n=0;n<e.length;n++){var r=e.charCodeAt(n);if(255<r)throw Error("Conversion error: string contains codepoint outside of byte range");t[n]=r}return t},jspb.utils.byteSourceToUint8Array=function(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?goog.crypt.base64.decodeStringToUint8Array(e):e instanceof Uint8Array?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(jspb.asserts.fail("Type not convertible to Uint8Array."),new Uint8Array(0))},jspb.BinaryDecoder=function(e,t,n){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1,e&&this.setBlock(e,t,n)},jspb.BinaryDecoder.instanceCache_=[],jspb.BinaryDecoder.alloc=function(e,t,n){if(jspb.BinaryDecoder.instanceCache_.length){var r=jspb.BinaryDecoder.instanceCache_.pop();return e&&r.setBlock(e,t,n),r}return new jspb.BinaryDecoder(e,t,n)},jspb.BinaryDecoder.prototype.free=function(){this.clear(),100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(e,t,n){this.bytes_=jspb.utils.byteSourceToUint8Array(e),this.start_=t!==void 0?t:0,this.end_=n!==void 0?this.start_+n:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(e){this.end_=e},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(e){this.cursor_=e},jspb.BinaryDecoder.prototype.advance=function(e){this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(e){for(var t=128,n=0,r=0,o=0;4>o&&128<=t;o++)t=this.bytes_[this.cursor_++],n|=(t&127)<<7*o;if(128<=t&&(t=this.bytes_[this.cursor_++],n|=(t&127)<<28,r|=(t&127)>>4),128<=t)for(o=0;5>o&&128<=t;o++)t=this.bytes_[this.cursor_++],r|=(t&127)<<7*o+3;if(128>t)return e(n>>>0,r>>>0);jspb.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(e){return this.readSplitVarint64(function(t,n){return jspb.utils.fromZigzag64(t,n,e)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(e){var t=this.bytes_,n=this.cursor_;this.cursor_+=8;for(var r=0,o=0,s=n+7;s>=n;s--)r=r<<8|t[s],o=o<<8|t[s+4];return e(r,o)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;this.bytes_[this.cursor_]&128;)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(e){for(;128<e;)this.cursor_--,e>>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var e=this.bytes_,t=e[this.cursor_+0],n=t&127;return 128>t?(this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+1],n|=(t&127)<<7,128>t?(this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+2],n|=(t&127)<<14,128>t?(this.cursor_+=3,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+3],n|=(t&127)<<21,128>t?(this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+4],n|=(t&15)<<28,128>t?(this.cursor_+=5,jspb.asserts.assert(this.cursor_<=this.end_),n>>>0):(this.cursor_+=5,128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&jspb.asserts.assert(!1),jspb.asserts.assert(this.cursor_<=this.end_),n)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=function(){return~~this.readUnsignedVarint32()},jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var e=this.readUnsignedVarint32();return e>>>1^-(e&1)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e},jspb.BinaryDecoder.prototype.readUint16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],n=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8|n<<16|r<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUint64(e,t)},jspb.BinaryDecoder.prototype.readUint64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUnsignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readInt8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],n=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8|n<<16|r<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinInt64(e,t)},jspb.BinaryDecoder.prototype.readInt64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinSignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readFloat=function(){var e=this.readUint32();return jspb.utils.joinFloat32(e,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinFloat64(e,t)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(e){var t=this.bytes_,n=this.cursor_;e=n+e;for(var r=[],o="";n<e;){var s=t[n++];if(128>s)r.push(s);else{if(192>s)continue;if(224>s){var g=t[n++];r.push((s&31)<<6|g&63)}else if(240>s){g=t[n++];var l=t[n++];r.push((s&15)<<12|(g&63)<<6|l&63)}else if(248>s){g=t[n++],l=t[n++];var u=t[n++];s=(s&7)<<18|(g&63)<<12|(l&63)<<6|u&63,s-=65536,r.push((s>>10&1023)+55296,(s&1023)+56320)}}8192<=r.length&&(o+=String.fromCharCode.apply(null,r),r.length=0)}return o+=goog.crypt.byteArrayToString(r),this.cursor_=n,o},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var e=this.readUnsignedVarint32();return this.readString(e)},jspb.BinaryDecoder.prototype.readBytes=function(e){if(0>e||this.cursor_+e>this.bytes_.length)return this.error_=!0,jspb.asserts.fail("Invalid byte length!"),new Uint8Array(0);var t=this.bytes_.subarray(this.cursor_,this.cursor_+e);return this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_),t},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var e=this.bytes_,t=this.cursor_,n=e[t+0],r=e[t+1],o=e[t+2],s=e[t+3],g=e[t+4],l=e[t+5],u=e[t+6];return e=e[t+7],this.cursor_+=8,String.fromCharCode(n,r,o,s,g,l,u,e)},jspb.BinaryReader=function(e,t,n){this.decoder_=jspb.BinaryDecoder.alloc(e,t,n),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(e,t,n){if(jspb.BinaryReader.instanceCache_.length){var r=jspb.BinaryReader.instanceCache_.pop();return e&&r.decoder_.setBlock(e,t,n),r}return new jspb.BinaryReader(e,t,n)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},goog.exportProperty(jspb.BinaryReader.prototype,"getFieldNumber",jspb.BinaryReader.prototype.getFieldNumber),jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},goog.exportProperty(jspb.BinaryReader.prototype,"isDelimited",jspb.BinaryReader.prototype.isDelimited),jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},goog.exportProperty(jspb.BinaryReader.prototype,"isEndGroup",jspb.BinaryReader.prototype.isEndGroup),jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(e,t,n){this.decoder_.setBlock(e,t,n),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(e){this.decoder_.advance(e)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return jspb.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var e=this.decoder_.readUnsignedVarint32(),t=e>>>3;return e&=7,e!=jspb.BinaryConstants.WireType.VARINT&&e!=jspb.BinaryConstants.WireType.FIXED32&&e!=jspb.BinaryConstants.WireType.FIXED64&&e!=jspb.BinaryConstants.WireType.DELIMITED&&e!=jspb.BinaryConstants.WireType.START_GROUP&&e!=jspb.BinaryConstants.WireType.END_GROUP?(jspb.asserts.fail("Invalid wire type: %s (at position %s)",e,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=t,this.nextWireType_=e,!0)},goog.exportProperty(jspb.BinaryReader.prototype,"nextField",jspb.BinaryReader.prototype.nextField),jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var e=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==e;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(jspb.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)jspb.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var e=this.decoder_.readUnsignedVarint32();this.decoder_.advance(e)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(jspb.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(jspb.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){var e=this.nextField_;do{if(!this.nextField()){jspb.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=e&&(jspb.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}while(1)},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:jspb.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(e,t){this.readCallbacks_===null&&(this.readCallbacks_={}),jspb.asserts.assert(!this.readCallbacks_[e]),this.readCallbacks_[e]=t},jspb.BinaryReader.prototype.runReadCallback=function(e){return jspb.asserts.assert(this.readCallbacks_!==null),e=this.readCallbacks_[e],jspb.asserts.assert(e),e(this)},jspb.BinaryReader.prototype.readAny=function(e){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(e);var t=jspb.BinaryConstants.FieldType;switch(e){case t.DOUBLE:return this.readDouble();case t.FLOAT:return this.readFloat();case t.INT64:return this.readInt64();case t.UINT64:return this.readUint64();case t.INT32:return this.readInt32();case t.FIXED64:return this.readFixed64();case t.FIXED32:return this.readFixed32();case t.BOOL:return this.readBool();case t.STRING:return this.readString();case t.GROUP:jspb.asserts.fail("Group field type not supported in readAny()");case t.MESSAGE:jspb.asserts.fail("Message field type not supported in readAny()");case t.BYTES:return this.readBytes();case t.UINT32:return this.readUint32();case t.ENUM:return this.readEnum();case t.SFIXED32:return this.readSfixed32();case t.SFIXED64:return this.readSfixed64();case t.SINT32:return this.readSint32();case t.SINT64:return this.readSint64();case t.FHASH64:return this.readFixedHash64();case t.VHASH64:return this.readVarintHash64();default:jspb.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(e,t){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var n=this.decoder_.getEnd(),r=this.decoder_.readUnsignedVarint32();r=this.decoder_.getCursor()+r,this.decoder_.setEnd(r),t(e,this),this.decoder_.setCursor(r),this.decoder_.setEnd(n)},goog.exportProperty(jspb.BinaryReader.prototype,"readMessage",jspb.BinaryReader.prototype.readMessage),jspb.BinaryReader.prototype.readGroup=function(e,t,n){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),jspb.asserts.assert(this.nextField_==e),n(t,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(jspb.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},goog.exportProperty(jspb.BinaryReader.prototype,"readGroup",jspb.BinaryReader.prototype.readGroup),jspb.BinaryReader.prototype.getFieldDecoder=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32(),t=this.decoder_.getCursor(),n=t+e;return e=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),t,e),this.decoder_.setCursor(n),e},jspb.BinaryReader.prototype.readInt32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt32",jspb.BinaryReader.prototype.readInt32),jspb.BinaryReader.prototype.readInt32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt64",jspb.BinaryReader.prototype.readInt64),jspb.BinaryReader.prototype.readInt64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint32",jspb.BinaryReader.prototype.readUint32),jspb.BinaryReader.prototype.readUint32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint64",jspb.BinaryReader.prototype.readUint64),jspb.BinaryReader.prototype.readUint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint32",jspb.BinaryReader.prototype.readSint32),jspb.BinaryReader.prototype.readSint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint64",jspb.BinaryReader.prototype.readSint64),jspb.BinaryReader.prototype.readSint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed32",jspb.BinaryReader.prototype.readFixed32),jspb.BinaryReader.prototype.readFixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed64",jspb.BinaryReader.prototype.readFixed64),jspb.BinaryReader.prototype.readFixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed32",jspb.BinaryReader.prototype.readSfixed32),jspb.BinaryReader.prototype.readSfixed32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed64",jspb.BinaryReader.prototype.readSfixed64),jspb.BinaryReader.prototype.readSfixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},goog.exportProperty(jspb.BinaryReader.prototype,"readFloat",jspb.BinaryReader.prototype.readFloat),jspb.BinaryReader.prototype.readDouble=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},goog.exportProperty(jspb.BinaryReader.prototype,"readDouble",jspb.BinaryReader.prototype.readDouble),jspb.BinaryReader.prototype.readBool=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readBool",jspb.BinaryReader.prototype.readBool),jspb.BinaryReader.prototype.readEnum=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readEnum",jspb.BinaryReader.prototype.readEnum),jspb.BinaryReader.prototype.readString=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readString",jspb.BinaryReader.prototype.readString),jspb.BinaryReader.prototype.readBytes=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readBytes",jspb.BinaryReader.prototype.readBytes),jspb.BinaryReader.prototype.readVarintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(e)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(t,n){return jspb.utils.fromZigzag64(t,n,e)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(e)},jspb.BinaryReader.prototype.readPackedField_=function(e){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var t=this.decoder_.readUnsignedVarint32();t=this.decoder_.getCursor()+t;for(var n=[];this.decoder_.getCursor()<t;)n.push(e.call(this.decoder_));return n},jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt32",jspb.BinaryReader.prototype.readPackedInt32),jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)},jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt64",jspb.BinaryReader.prototype.readPackedInt64),jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)},jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint32",jspb.BinaryReader.prototype.readPackedUint32),jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)},jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint64",jspb.BinaryReader.prototype.readPackedUint64),jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)},jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint32",jspb.BinaryReader.prototype.readPackedSint32),jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint64",jspb.BinaryReader.prototype.readPackedSint64),jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)},jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed32",jspb.BinaryReader.prototype.readPackedFixed32),jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed64",jspb.BinaryReader.prototype.readPackedFixed64),jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)},jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed32",jspb.BinaryReader.prototype.readPackedSfixed32),jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed64",jspb.BinaryReader.prototype.readPackedSfixed64),jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)},jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFloat",jspb.BinaryReader.prototype.readPackedFloat),jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedDouble",jspb.BinaryReader.prototype.readPackedDouble),jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedBool",jspb.BinaryReader.prototype.readPackedBool),jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedEnum",jspb.BinaryReader.prototype.readPackedEnum),jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)},jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)},jspb.BinaryEncoder=function(){this.buffer_=[]},jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length},jspb.BinaryEncoder.prototype.end=function(){var e=this.buffer_;return this.buffer_=[],e},jspb.BinaryEncoder.prototype.writeSplitVarint64=function(e,t){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32);0<t||127<e;)this.buffer_.push(e&127|128),e=(e>>>7|t<<25)>>>0,t>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(e,t){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUint32(e),this.writeUint32(t)},jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(e){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32);127<e;)this.buffer_.push(e&127|128),e>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(e){if(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),0<=e)this.writeUnsignedVarint32(e);else{for(var t=0;9>t;t++)this.buffer_.push(e&127|128),e>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeSignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeUnsignedVarint32((e<<1^e>>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitZigzag64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(e){this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(e))},jspb.BinaryEncoder.prototype.writeZigzagVarintHash64=function(e){var t=this;jspb.utils.splitHash64(e),jspb.utils.toZigzag64(jspb.utils.split64Low,jspb.utils.split64High,function(n,r){t.writeSplitVarint64(n>>>0,r>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&256>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&65536>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitUint64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-128<=e&&128>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-32768<=e&&32768>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt64String=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(+e>=-jspb.BinaryConstants.TWO_TO_63&&+e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e)),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFloat=function(e){jspb.asserts.assert(e===1/0||e===-1/0||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT32_MAX&&e<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(e),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(e){jspb.asserts.assert(e===1/0||e===-1/0||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT64_MAX&&e<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(e){jspb.asserts.assert(typeof e=="boolean"||typeof e=="number"),this.buffer_.push(e?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32(e)},jspb.BinaryEncoder.prototype.writeBytes=function(e){this.buffer_.push.apply(this.buffer_,e)},jspb.BinaryEncoder.prototype.writeVarintHash64=function(e){jspb.utils.splitHash64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFixedHash64=function(e){jspb.utils.splitHash64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeString=function(e){var t=this.buffer_.length;jspb.asserts.assertString(e);for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(128>r)this.buffer_.push(r);else if(2048>r)this.buffer_.push(r>>6|192),this.buffer_.push(r&63|128);else if(65536>r)if(55296<=r&&56319>=r&&n+1<e.length){var o=e.charCodeAt(n+1);56320<=o&&57343>=o&&(r=1024*(r-55296)+o-56320+65536,this.buffer_.push(r>>18|240),this.buffer_.push(r>>12&63|128),this.buffer_.push(r>>6&63|128),this.buffer_.push(r&63|128),n++)}else this.buffer_.push(r>>12|224),this.buffer_.push(r>>6&63|128),this.buffer_.push(r&63|128)}return this.buffer_.length-t},jspb.arith={},jspb.arith.UInt64=function(e,t){this.lo=e,this.hi=t},jspb.arith.UInt64.prototype.cmp=function(e){return this.hi<e.hi||this.hi==e.hi&&this.lo<e.lo?-1:this.hi==e.hi&&this.lo==e.lo?0:1},jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(this.hi&2147483648)},jspb.arith.UInt64.prototype.lsb=function(){return!!(this.lo&1)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(e){return new jspb.arith.UInt64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(e){return new jspb.arith.UInt64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(e,t){var n=e&65535;e>>>=16;var r=t&65535,o=t>>>16;for(t=n*r+65536*(n*o&65535)+65536*(e*r&65535),n=e*o+(n*o>>>16)+(e*r>>>16);4294967296<=t;)t-=4294967296,n+=1;return new jspb.arith.UInt64(t>>>0,n>>>0)},jspb.arith.UInt64.prototype.mul=function(e){var t=jspb.arith.UInt64.mul32x32(this.lo,e);return e=jspb.arith.UInt64.mul32x32(this.hi,e),e.hi=e.lo,e.lo=0,t.add(e)},jspb.arith.UInt64.prototype.div=function(e){if(e==0)return[];var t=new jspb.arith.UInt64(0,0),n=new jspb.arith.UInt64(this.lo,this.hi);e=new jspb.arith.UInt64(e,0);for(var r=new jspb.arith.UInt64(1,0);!e.msb();)e=e.leftShift(),r=r.leftShift();for(;!r.zero();)0>=e.cmp(n)&&(t=t.add(r),n=n.sub(e)),e=e.rightShift(),r=r.rightShift();return[t,n]},jspb.arith.UInt64.prototype.toString=function(){for(var e="",t=this;!t.zero();){t=t.div(10);var n=t[0];e=t[1].lo+e,t=n}return e==""&&(e="0"),e},jspb.arith.UInt64.fromString=function(e){for(var t=new jspb.arith.UInt64(0,0),n=new jspb.arith.UInt64(0,0),r=0;r<e.length;r++){if("0">e[r]||"9"<e[r])return null;var o=parseInt(e[r],10);n.lo=o,t=t.mul(10).add(n)}return t},jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)},jspb.arith.Int64=function(e,t){this.lo=e,this.hi=t},jspb.arith.Int64.prototype.add=function(e){return new jspb.arith.Int64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(e){return new jspb.arith.Int64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var e=(this.hi&2147483648)!=0,t=new jspb.arith.UInt64(this.lo,this.hi);return e&&(t=new jspb.arith.UInt64(0,0).sub(t)),(e?"-":"")+t.toString()},jspb.arith.Int64.fromString=function(e){var t=0<e.length&&e[0]=="-";return t&&(e=e.substring(1)),e=jspb.arith.UInt64.fromString(e),e===null?null:(t&&(e=new jspb.arith.UInt64(0,0).sub(e)),new jspb.arith.Int64(e.lo,e.hi))},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(e){var t=this.encoder_.end();this.blocks_.push(t),this.blocks_.push(e),this.totalLength_+=t.length+e.length},jspb.BinaryWriter.prototype.beginDelimited_=function(e){return this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),e=this.encoder_.end(),this.blocks_.push(e),this.totalLength_+=e.length,e.push(this.totalLength_),e},jspb.BinaryWriter.prototype.endDelimited_=function(e){var t=e.pop();for(t=this.totalLength_+this.encoder_.length()-t,jspb.asserts.assert(0<=t);127<t;)e.push(t&127|128),t>>>=7,this.totalLength_++;e.push(t),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(e,t,n){this.appendUint8Array_(e.subarray(t,n))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(e,t,n){e!=null&&t!=null&&n!=null&&this.writeSerializedMessage(e,t,n)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){jspb.asserts.assert(this.bookmarks_.length==0);for(var e=new Uint8Array(this.totalLength_+this.encoder_.length()),t=this.blocks_,n=t.length,r=0,o=0;o<n;o++){var s=t[o];e.set(s,r),r+=s.length}return t=this.encoder_.end(),e.set(t,r),r+=t.length,jspb.asserts.assert(r==e.length),this.blocks_=[e],e},goog.exportProperty(jspb.BinaryWriter.prototype,"getResultBuffer",jspb.BinaryWriter.prototype.getResultBuffer),jspb.BinaryWriter.prototype.getResultBase64String=function(e){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),e)},jspb.BinaryWriter.prototype.beginSubMessage=function(e){this.bookmarks_.push(this.beginDelimited_(e))},jspb.BinaryWriter.prototype.endSubMessage=function(){jspb.asserts.assert(0<=this.bookmarks_.length),this.endDelimited_(this.bookmarks_.pop())},jspb.BinaryWriter.prototype.writeFieldHeader_=function(e,t){jspb.asserts.assert(1<=e&&e==Math.floor(e)),this.encoder_.writeUnsignedVarint32(8*e+t)},jspb.BinaryWriter.prototype.writeAny=function(e,t,n){var r=jspb.BinaryConstants.FieldType;switch(e){case r.DOUBLE:this.writeDouble(t,n);break;case r.FLOAT:this.writeFloat(t,n);break;case r.INT64:this.writeInt64(t,n);break;case r.UINT64:this.writeUint64(t,n);break;case r.INT32:this.writeInt32(t,n);break;case r.FIXED64:this.writeFixed64(t,n);break;case r.FIXED32:this.writeFixed32(t,n);break;case r.BOOL:this.writeBool(t,n);break;case r.STRING:this.writeString(t,n);break;case r.GROUP:jspb.asserts.fail("Group field type not supported in writeAny()");break;case r.MESSAGE:jspb.asserts.fail("Message field type not supported in writeAny()");break;case r.BYTES:this.writeBytes(t,n);break;case r.UINT32:this.writeUint32(t,n);break;case r.ENUM:this.writeEnum(t,n);break;case r.SFIXED32:this.writeSfixed32(t,n);break;case r.SFIXED64:this.writeSfixed64(t,n);break;case r.SINT32:this.writeSint32(t,n);break;case r.SINT64:this.writeSint64(t,n);break;case r.FHASH64:this.writeFixedHash64(t,n);break;case r.VHASH64:this.writeVarintHash64(t,n);break;default:jspb.asserts.fail("Invalid field type in writeAny()")}},jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(t))},jspb.BinaryWriter.prototype.writeSignedVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(t))},jspb.BinaryWriter.prototype.writeSignedVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(t))},jspb.BinaryWriter.prototype.writeZigzagVarintHash64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarintHash64(t))},jspb.BinaryWriter.prototype.writeInt32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt32",jspb.BinaryWriter.prototype.writeInt32),jspb.BinaryWriter.prototype.writeInt32String=function(e,t){t!=null&&(t=parseInt(t,10),jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt64",jspb.BinaryWriter.prototype.writeInt64),jspb.BinaryWriter.prototype.writeInt64String=function(e,t){t!=null&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeUint32=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint32",jspb.BinaryWriter.prototype.writeUint32),jspb.BinaryWriter.prototype.writeUint32String=function(e,t){t!=null&&(t=parseInt(t,10),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint64=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint64",jspb.BinaryWriter.prototype.writeUint64),jspb.BinaryWriter.prototype.writeUint64String=function(e,t){t!=null&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSint32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint32",jspb.BinaryWriter.prototype.writeSint32),jspb.BinaryWriter.prototype.writeSint64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint64",jspb.BinaryWriter.prototype.writeSint64),jspb.BinaryWriter.prototype.writeSintHash64=function(e,t){t!=null&&this.writeZigzagVarintHash64_(e,t)},jspb.BinaryWriter.prototype.writeSint64String=function(e,t){t!=null&&this.writeZigzagVarint64String_(e,t)},jspb.BinaryWriter.prototype.writeFixed32=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed32",jspb.BinaryWriter.prototype.writeFixed32),jspb.BinaryWriter.prototype.writeFixed64=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed64",jspb.BinaryWriter.prototype.writeFixed64),jspb.BinaryWriter.prototype.writeFixed64String=function(e,t){t!=null&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSfixed32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed32",jspb.BinaryWriter.prototype.writeSfixed32),jspb.BinaryWriter.prototype.writeSfixed64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed64",jspb.BinaryWriter.prototype.writeSfixed64),jspb.BinaryWriter.prototype.writeSfixed64String=function(e,t){t!=null&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeFloat=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFloat",jspb.BinaryWriter.prototype.writeFloat),jspb.BinaryWriter.prototype.writeDouble=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeDouble",jspb.BinaryWriter.prototype.writeDouble),jspb.BinaryWriter.prototype.writeBool=function(e,t){t!=null&&(jspb.asserts.assert(typeof t=="boolean"||typeof t=="number"),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBool",jspb.BinaryWriter.prototype.writeBool),jspb.BinaryWriter.prototype.writeEnum=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeEnum",jspb.BinaryWriter.prototype.writeEnum),jspb.BinaryWriter.prototype.writeString=function(e,t){t!=null&&(e=this.beginDelimited_(e),this.encoder_.writeString(t),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeString",jspb.BinaryWriter.prototype.writeString),jspb.BinaryWriter.prototype.writeBytes=function(e,t){t!=null&&(t=jspb.utils.byteSourceToUint8Array(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),this.appendUint8Array_(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBytes",jspb.BinaryWriter.prototype.writeBytes),jspb.BinaryWriter.prototype.writeMessage=function(e,t,n){t!=null&&(e=this.beginDelimited_(e),n(t,this),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeMessage",jspb.BinaryWriter.prototype.writeMessage),jspb.BinaryWriter.prototype.writeMessageSet=function(e,t,n){t!=null&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(e),e=this.beginDelimited_(3),n(t,this),this.endDelimited_(e),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeGroup=function(e,t,n){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),n(t,this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeGroup",jspb.BinaryWriter.prototype.writeGroup),jspb.BinaryWriter.prototype.writeFixedHash64=function(e,t){t!=null&&(jspb.asserts.assert(t.length==8),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(t))},jspb.BinaryWriter.prototype.writeVarintHash64=function(e,t){t!=null&&(jspb.asserts.assert(t.length==8),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(t))},jspb.BinaryWriter.prototype.writeSplitFixed64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t,n)},jspb.BinaryWriter.prototype.writeSplitVarint64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t,n)},jspb.BinaryWriter.prototype.writeSplitZigzagVarint64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT);var r=this.encoder_;jspb.utils.toZigzag64(t,n,function(o,s){r.writeSplitVarint64(o>>>0,s>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSignedVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt32",jspb.BinaryWriter.prototype.writeRepeatedInt32),jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeInt32String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedInt64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSignedVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt64",jspb.BinaryWriter.prototype.writeRepeatedInt64),jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitFixed64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitVarint64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitZigzagVarint64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeInt64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedUint32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUnsignedVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint32",jspb.BinaryWriter.prototype.writeRepeatedUint32),jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUint32String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedUint64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUnsignedVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint64",jspb.BinaryWriter.prototype.writeRepeatedUint64),jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUint64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedSint32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint32",jspb.BinaryWriter.prototype.writeRepeatedSint32),jspb.BinaryWriter.prototype.writeRepeatedSint64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint64",jspb.BinaryWriter.prototype.writeRepeatedSint64),jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint64String_(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedSintHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarintHash64_(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed32(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed32",jspb.BinaryWriter.prototype.writeRepeatedFixed32),jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed64(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64",jspb.BinaryWriter.prototype.writeRepeatedFixed64),jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed64String(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64String",jspb.BinaryWriter.prototype.writeRepeatedFixed64String),jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed32(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed32",jspb.BinaryWriter.prototype.writeRepeatedSfixed32),jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed64(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed64",jspb.BinaryWriter.prototype.writeRepeatedSfixed64),jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedFloat=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFloat(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFloat",jspb.BinaryWriter.prototype.writeRepeatedFloat),jspb.BinaryWriter.prototype.writeRepeatedDouble=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeDouble(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedDouble",jspb.BinaryWriter.prototype.writeRepeatedDouble),jspb.BinaryWriter.prototype.writeRepeatedBool=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeBool(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBool",jspb.BinaryWriter.prototype.writeRepeatedBool),jspb.BinaryWriter.prototype.writeRepeatedEnum=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeEnum(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedEnum",jspb.BinaryWriter.prototype.writeRepeatedEnum),jspb.BinaryWriter.prototype.writeRepeatedString=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeString(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedString",jspb.BinaryWriter.prototype.writeRepeatedString),jspb.BinaryWriter.prototype.writeRepeatedBytes=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeBytes(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBytes",jspb.BinaryWriter.prototype.writeRepeatedBytes),jspb.BinaryWriter.prototype.writeRepeatedMessage=function(e,t,n){if(t!=null)for(var r=0;r<t.length;r++){var o=this.beginDelimited_(e);n(t[r],this),this.endDelimited_(o)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedMessage",jspb.BinaryWriter.prototype.writeRepeatedMessage),jspb.BinaryWriter.prototype.writeRepeatedGroup=function(e,t,n){if(t!=null)for(var r=0;r<t.length;r++)this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),n(t[r],this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP)},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedGroup",jspb.BinaryWriter.prototype.writeRepeatedGroup),jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixedHash64(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeVarintHash64(e,t[n])},jspb.BinaryWriter.prototype.writePackedInt32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt32",jspb.BinaryWriter.prototype.writePackedInt32),jspb.BinaryWriter.prototype.writePackedInt32String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint32(parseInt(t[n],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt64",jspb.BinaryWriter.prototype.writePackedInt64),jspb.BinaryWriter.prototype.writePackedSplitFixed64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSplitFixed64(n(t[o]),r(t[o]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitVarint64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSplitVarint64(n(t[o]),r(t[o]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=this.encoder_,s=0;s<t.length;s++)jspb.utils.toZigzag64(n(t[s]),r(t[s]),function(g,l){o.writeSplitVarint64(g>>>0,l>>>0)});this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++){var r=jspb.arith.Int64.fromString(t[n]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint32",jspb.BinaryWriter.prototype.writePackedUint32),jspb.BinaryWriter.prototype.writePackedUint32String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint32(parseInt(t[n],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint64",jspb.BinaryWriter.prototype.writePackedUint64),jspb.BinaryWriter.prototype.writePackedUint64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++){var r=jspb.arith.UInt64.fromString(t[n]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint32",jspb.BinaryWriter.prototype.writePackedSint32),jspb.BinaryWriter.prototype.writePackedSint64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint64",jspb.BinaryWriter.prototype.writePackedSint64),jspb.BinaryWriter.prototype.writePackedSint64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(t[n]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSintHash64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarintHash64(t[n]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedFixed32=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeUint32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed32",jspb.BinaryWriter.prototype.writePackedFixed32),jspb.BinaryWriter.prototype.writePackedFixed64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeUint64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed64",jspb.BinaryWriter.prototype.writePackedFixed64),jspb.BinaryWriter.prototype.writePackedFixed64String=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++){var n=jspb.arith.UInt64.fromString(t[e]);this.encoder_.writeSplitFixed64(n.lo,n.hi)}},jspb.BinaryWriter.prototype.writePackedSfixed32=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeInt32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed32",jspb.BinaryWriter.prototype.writePackedSfixed32),jspb.BinaryWriter.prototype.writePackedSfixed64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed64",jspb.BinaryWriter.prototype.writePackedSfixed64),jspb.BinaryWriter.prototype.writePackedSfixed64String=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64String(t[e])},jspb.BinaryWriter.prototype.writePackedFloat=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeFloat(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFloat",jspb.BinaryWriter.prototype.writePackedFloat),jspb.BinaryWriter.prototype.writePackedDouble=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeDouble(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedDouble",jspb.BinaryWriter.prototype.writePackedDouble),jspb.BinaryWriter.prototype.writePackedBool=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),e=0;e<t.length;e++)this.encoder_.writeBool(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedBool",jspb.BinaryWriter.prototype.writePackedBool),jspb.BinaryWriter.prototype.writePackedEnum=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeEnum(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedEnum",jspb.BinaryWriter.prototype.writePackedEnum),jspb.BinaryWriter.prototype.writePackedFixedHash64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeFixedHash64(t[e])},jspb.BinaryWriter.prototype.writePackedVarintHash64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeVarintHash64(t[n]);this.endDelimited_(e)}},jspb.Map=function(e,t){this.arr_=e,this.valueCtor_=t,this.map_={},this.arrClean=!0,0<this.arr_.length&&this.loadFromArray_()},goog.exportSymbol("jspb.Map",jspb.Map),jspb.Map.prototype.loadFromArray_=function(){for(var e=0;e<this.arr_.length;e++){var t=this.arr_[e],n=t[0];this.map_[n.toString()]=new jspb.Map.Entry_(n,t[1])}this.arrClean=!0},jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var e=this.map_,t;for(t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t].valueWrapper;n&&n.toArray()}}}else{for(this.arr_.length=0,e=this.stringKeys_(),e.sort(),t=0;t<e.length;t++){var r=this.map_[e[t]];(n=r.valueWrapper)&&n.toArray(),this.arr_.push([r.key,r.value])}this.arrClean=!0}return this.arr_},goog.exportProperty(jspb.Map.prototype,"toArray",jspb.Map.prototype.toArray),jspb.Map.prototype.toObject=function(e,t){for(var n=this.toArray(),r=[],o=0;o<n.length;o++){var s=this.map_[n[o][0].toString()];this.wrapEntry_(s);var g=s.valueWrapper;g?(jspb.asserts.assert(t),r.push([s.key,t(e,g)])):r.push([s.key,s.value])}return r},goog.exportProperty(jspb.Map.prototype,"toObject",jspb.Map.prototype.toObject),jspb.Map.fromObject=function(e,t,n){t=new jspb.Map([],t);for(var r=0;r<e.length;r++){var o=e[r][0],s=n(e[r][1]);t.set(o,s)}return t},goog.exportProperty(jspb.Map,"fromObject",jspb.Map.fromObject),jspb.Map.ArrayIteratorIterable_=function(e){this.idx_=0,this.arr_=e},jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}},typeof Symbol!="undefined"&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this}),jspb.Map.prototype.getLength=function(){return this.stringKeys_().length},goog.exportProperty(jspb.Map.prototype,"getLength",jspb.Map.prototype.getLength),jspb.Map.prototype.clear=function(){this.map_={},this.arrClean=!1},goog.exportProperty(jspb.Map.prototype,"clear",jspb.Map.prototype.clear),jspb.Map.prototype.del=function(e){e=e.toString();var t=this.map_.hasOwnProperty(e);return delete this.map_[e],this.arrClean=!1,t},goog.exportProperty(jspb.Map.prototype,"del",jspb.Map.prototype.del),jspb.Map.prototype.getEntryList=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++){var r=this.map_[t[n]];e.push([r.key,r.value])}return e},goog.exportProperty(jspb.Map.prototype,"getEntryList",jspb.Map.prototype.getEntryList),jspb.Map.prototype.entries=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++){var r=this.map_[t[n]];e.push([r.key,this.wrapEntry_(r)])}return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"entries",jspb.Map.prototype.entries),jspb.Map.prototype.keys=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++)e.push(this.map_[t[n]].key);return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"keys",jspb.Map.prototype.keys),jspb.Map.prototype.values=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++)e.push(this.wrapEntry_(this.map_[t[n]]));return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"values",jspb.Map.prototype.values),jspb.Map.prototype.forEach=function(e,t){var n=this.stringKeys_();n.sort();for(var r=0;r<n.length;r++){var o=this.map_[n[r]];e.call(t,this.wrapEntry_(o),o.key,this)}},goog.exportProperty(jspb.Map.prototype,"forEach",jspb.Map.prototype.forEach),jspb.Map.prototype.set=function(e,t){var n=new jspb.Map.Entry_(e);return this.valueCtor_?(n.valueWrapper=t,n.value=t.toArray()):n.value=t,this.map_[e.toString()]=n,this.arrClean=!1,this},goog.exportProperty(jspb.Map.prototype,"set",jspb.Map.prototype.set),jspb.Map.prototype.wrapEntry_=function(e){return this.valueCtor_?(e.valueWrapper||(e.valueWrapper=new this.valueCtor_(e.value)),e.valueWrapper):e.value},jspb.Map.prototype.get=function(e){if(e=this.map_[e.toString()])return this.wrapEntry_(e)},goog.exportProperty(jspb.Map.prototype,"get",jspb.Map.prototype.get),jspb.Map.prototype.has=function(e){return e.toString()in this.map_},goog.exportProperty(jspb.Map.prototype,"has",jspb.Map.prototype.has),jspb.Map.prototype.serializeBinary=function(e,t,n,r,o){var s=this.stringKeys_();s.sort();for(var g=0;g<s.length;g++){var l=this.map_[s[g]];t.beginSubMessage(e),n.call(t,1,l.key),this.valueCtor_?r.call(t,2,this.wrapEntry_(l),o):r.call(t,2,l.value),t.endSubMessage()}},goog.exportProperty(jspb.Map.prototype,"serializeBinary",jspb.Map.prototype.serializeBinary),jspb.Map.deserializeBinary=function(e,t,n,r,o,s,g){for(;t.nextField()&&!t.isEndGroup();){var l=t.getFieldNumber();l==1?s=n.call(t):l==2&&(e.valueCtor_?(jspb.asserts.assert(o),g||(g=new e.valueCtor_),r.call(t,g,o)):g=r.call(t))}jspb.asserts.assert(s!=null),jspb.asserts.assert(g!=null),e.set(s,g)},goog.exportProperty(jspb.Map,"deserializeBinary",jspb.Map.deserializeBinary),jspb.Map.prototype.stringKeys_=function(){var e=this.map_,t=[],n;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},jspb.Map.Entry_=function(e,t){this.key=e,this.value=t,this.valueWrapper=void 0},jspb.ExtensionFieldInfo=function(e,t,n,r,o){this.fieldIndex=e,this.fieldName=t,this.ctor=n,this.toObjectFn=r,this.isRepeated=o},goog.exportSymbol("jspb.ExtensionFieldInfo",jspb.ExtensionFieldInfo),jspb.ExtensionFieldBinaryInfo=function(e,t,n,r,o,s){this.fieldInfo=e,this.binaryReaderFn=t,this.binaryWriterFn=n,this.binaryMessageSerializeFn=r,this.binaryMessageDeserializeFn=o,this.isPacked=s},goog.exportSymbol("jspb.ExtensionFieldBinaryInfo",jspb.ExtensionFieldBinaryInfo),jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor},goog.exportProperty(jspb.ExtensionFieldInfo.prototype,"isMessageType",jspb.ExtensionFieldInfo.prototype.isMessageType),jspb.Message=function(){},goog.exportSymbol("jspb.Message",jspb.Message),jspb.Message.GENERATE_TO_OBJECT=!0,goog.exportProperty(jspb.Message,"GENERATE_TO_OBJECT",jspb.Message.GENERATE_TO_OBJECT),jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE,goog.exportProperty(jspb.Message,"GENERATE_FROM_OBJECT",jspb.Message.GENERATE_FROM_OBJECT),jspb.Message.GENERATE_TO_STRING=!0,jspb.Message.ASSUME_LOCAL_ARRAYS=!1,jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0,jspb.Message.SUPPORTS_UINT8ARRAY_=typeof Uint8Array=="function",jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_},goog.exportProperty(jspb.Message.prototype,"getJsPbMessageId",jspb.Message.prototype.getJsPbMessageId),jspb.Message.getIndex_=function(e,t){return t+e.arrayIndexOffset_},jspb.Message.hiddenES6Property_=function(){},jspb.Message.getFieldNumber_=function(e,t){return t-e.arrayIndexOffset_},jspb.Message.initialize=function(e,t,n,r,o,s){if(e.wrappers_=null,t||(t=n?[n]:[]),e.messageId_=n?String(n):void 0,e.arrayIndexOffset_=n===0?-1:0,e.array=t,jspb.Message.initPivotAndExtensionObject_(e,r),e.convertedPrimitiveFields_={},jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(e.repeatedFields=o),o)for(t=0;t<o.length;t++)n=o[t],n<e.pivot_?(n=jspb.Message.getIndex_(e,n),e.array[n]=e.array[n]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[n]=e.extensionObject_[n]||jspb.Message.EMPTY_LIST_SENTINEL_);if(s&&s.length)for(t=0;t<s.length;t++)jspb.Message.computeOneofCase(e,s[t])},goog.exportProperty(jspb.Message,"initialize",jspb.Message.initialize),jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[],jspb.Message.isArray_=function(e){return jspb.Message.ASSUME_LOCAL_ARRAYS?e instanceof Array:Array.isArray(e)},jspb.Message.isExtensionObject_=function(e){return e!==null&&typeof e=="object"&&!jspb.Message.isArray_(e)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)},jspb.Message.initPivotAndExtensionObject_=function(e,t){var n=e.array.length,r=-1;if(n&&(r=n-1,n=e.array[r],jspb.Message.isExtensionObject_(n))){e.pivot_=jspb.Message.getFieldNumber_(e,r),e.extensionObject_=n;return}-1<t?(e.pivot_=Math.max(t,jspb.Message.getFieldNumber_(e,r+1)),e.extensionObject_=null):e.pivot_=Number.MAX_VALUE},jspb.Message.maybeInitEmptyExtensionObject_=function(e){var t=jspb.Message.getIndex_(e,e.pivot_);e.array[t]||(e.extensionObject_=e.array[t]={})},jspb.Message.toObjectList=function(e,t,n){for(var r=[],o=0;o<e.length;o++)r[o]=t.call(e[o],n,e[o]);return r},goog.exportProperty(jspb.Message,"toObjectList",jspb.Message.toObjectList),jspb.Message.toObjectExtension=function(e,t,n,r,o){for(var s in n){var g=n[s],l=r.call(e,g);if(l!=null){for(var u in g.fieldName)if(g.fieldName.hasOwnProperty(u))break;t[u]=g.toObjectFn?g.isRepeated?jspb.Message.toObjectList(l,g.toObjectFn,o):g.toObjectFn(o,l):l}}},goog.exportProperty(jspb.Message,"toObjectExtension",jspb.Message.toObjectExtension),jspb.Message.serializeBinaryExtensions=function(e,t,n,r){for(var o in n){var s=n[o],g=s.fieldInfo;if(!s.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var l=r.call(e,g);if(l!=null)if(g.isMessageType())if(s.binaryMessageSerializeFn)s.binaryWriterFn.call(t,g.fieldIndex,l,s.binaryMessageSerializeFn);else throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");else s.binaryWriterFn.call(t,g.fieldIndex,l)}},goog.exportProperty(jspb.Message,"serializeBinaryExtensions",jspb.Message.serializeBinaryExtensions),jspb.Message.readBinaryExtension=function(e,t,n,r,o){var s=n[t.getFieldNumber()];if(s){if(n=s.fieldInfo,!s.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");if(n.isMessageType()){var g=new n.ctor;s.binaryReaderFn.call(t,g,s.binaryMessageDeserializeFn)}else g=s.binaryReaderFn.call(t);n.isRepeated&&!s.isPacked?(t=r.call(e,n))?t.push(g):o.call(e,n,[g]):o.call(e,n,g)}else t.skipField()},goog.exportProperty(jspb.Message,"readBinaryExtension",jspb.Message.readBinaryExtension),jspb.Message.getField=function(e,t){if(t<e.pivot_){t=jspb.Message.getIndex_(e,t);var n=e.array[t];return n===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[t]=[]:n}if(e.extensionObject_)return n=e.extensionObject_[t],n===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:n},goog.exportProperty(jspb.Message,"getField",jspb.Message.getField),jspb.Message.getRepeatedField=function(e,t){return jspb.Message.getField(e,t)},goog.exportProperty(jspb.Message,"getRepeatedField",jspb.Message.getRepeatedField),jspb.Message.getOptionalFloatingPointField=function(e,t){return e=jspb.Message.getField(e,t),e==null?e:+e},goog.exportProperty(jspb.Message,"getOptionalFloatingPointField",jspb.Message.getOptionalFloatingPointField),jspb.Message.getBooleanField=function(e,t){return e=jspb.Message.getField(e,t),e==null?e:!!e},goog.exportProperty(jspb.Message,"getBooleanField",jspb.Message.getBooleanField),jspb.Message.getRepeatedFloatingPointField=function(e,t){var n=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<n.length;r++)n[r]=+n[r];e.convertedPrimitiveFields_[t]=!0}return n},goog.exportProperty(jspb.Message,"getRepeatedFloatingPointField",jspb.Message.getRepeatedFloatingPointField),jspb.Message.getRepeatedBooleanField=function(e,t){var n=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<n.length;r++)n[r]=!!n[r];e.convertedPrimitiveFields_[t]=!0}return n},goog.exportProperty(jspb.Message,"getRepeatedBooleanField",jspb.Message.getRepeatedBooleanField),jspb.Message.bytesAsB64=function(e){return e==null||typeof e=="string"?e:jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array?goog.crypt.base64.encodeByteArray(e):(jspb.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsB64",jspb.Message.bytesAsB64),jspb.Message.bytesAsU8=function(e){return e==null||e instanceof Uint8Array?e:typeof e=="string"?goog.crypt.base64.decodeStringToUint8Array(e):(jspb.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsU8",jspb.Message.bytesAsU8),jspb.Message.bytesListAsB64=function(e){return jspb.Message.assertConsistentTypes_(e),e.length&&typeof e[0]!="string"?goog.array.map(e,jspb.Message.bytesAsB64):e},goog.exportProperty(jspb.Message,"bytesListAsB64",jspb.Message.bytesListAsB64),jspb.Message.bytesListAsU8=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||e[0]instanceof Uint8Array?e:goog.array.map(e,jspb.Message.bytesAsU8)},goog.exportProperty(jspb.Message,"bytesListAsU8",jspb.Message.bytesListAsU8),jspb.Message.assertConsistentTypes_=function(e){if(goog.DEBUG&&e&&1<e.length){var t=goog.typeOf(e[0]);goog.array.forEach(e,function(n){goog.typeOf(n)!=t&&jspb.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(n)+" expected "+t)})}},jspb.Message.getFieldWithDefault=function(e,t,n){return e=jspb.Message.getField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getFieldWithDefault",jspb.Message.getFieldWithDefault),jspb.Message.getBooleanFieldWithDefault=function(e,t,n){return e=jspb.Message.getBooleanField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getBooleanFieldWithDefault",jspb.Message.getBooleanFieldWithDefault),jspb.Message.getFloatingPointFieldWithDefault=function(e,t,n){return e=jspb.Message.getOptionalFloatingPointField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getFloatingPointFieldWithDefault",jspb.Message.getFloatingPointFieldWithDefault),jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault,goog.exportProperty(jspb.Message,"getFieldProto3",jspb.Message.getFieldProto3),jspb.Message.getMapField=function(e,t,n,r){if(e.wrappers_||(e.wrappers_={}),t in e.wrappers_)return e.wrappers_[t];var o=jspb.Message.getField(e,t);if(!o){if(n)return;o=[],jspb.Message.setField(e,t,o)}return e.wrappers_[t]=new jspb.Map(o,r)},goog.exportProperty(jspb.Message,"getMapField",jspb.Message.getMapField),jspb.Message.setField=function(e,t,n){return jspb.asserts.assertInstanceof(e,jspb.Message),t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=n:(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[t]=n),e},goog.exportProperty(jspb.Message,"setField",jspb.Message.setField),jspb.Message.setProto3IntField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3IntField",jspb.Message.setProto3IntField),jspb.Message.setProto3FloatField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3FloatField",jspb.Message.setProto3FloatField),jspb.Message.setProto3BooleanField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,!1)},goog.exportProperty(jspb.Message,"setProto3BooleanField",jspb.Message.setProto3BooleanField),jspb.Message.setProto3StringField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"")},goog.exportProperty(jspb.Message,"setProto3StringField",jspb.Message.setProto3StringField),jspb.Message.setProto3BytesField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"")},goog.exportProperty(jspb.Message,"setProto3BytesField",jspb.Message.setProto3BytesField),jspb.Message.setProto3EnumField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3EnumField",jspb.Message.setProto3EnumField),jspb.Message.setProto3StringIntField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"0")},goog.exportProperty(jspb.Message,"setProto3StringIntField",jspb.Message.setProto3StringIntField),jspb.Message.setFieldIgnoringDefault_=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),n!==r?jspb.Message.setField(e,t,n):t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=null:(jspb.Message.maybeInitEmptyExtensionObject_(e),delete e.extensionObject_[t]),e},jspb.Message.addToRepeatedField=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),t=jspb.Message.getRepeatedField(e,t),r!=null?t.splice(r,0,n):t.push(n),e},goog.exportProperty(jspb.Message,"addToRepeatedField",jspb.Message.addToRepeatedField),jspb.Message.setOneofField=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),(n=jspb.Message.computeOneofCase(e,n))&&n!==t&&r!==void 0&&(e.wrappers_&&n in e.wrappers_&&(e.wrappers_[n]=void 0),jspb.Message.setField(e,n,void 0)),jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setOneofField",jspb.Message.setOneofField),jspb.Message.computeOneofCase=function(e,t){for(var n,r,o=0;o<t.length;o++){var s=t[o],g=jspb.Message.getField(e,s);g!=null&&(n=s,r=g,jspb.Message.setField(e,s,void 0))}return n?(jspb.Message.setField(e,n,r),n):0},goog.exportProperty(jspb.Message,"computeOneofCase",jspb.Message.computeOneofCase),jspb.Message.getWrapperField=function(e,t,n,r){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[n]){var o=jspb.Message.getField(e,n);(r||o)&&(e.wrappers_[n]=new t(o))}return e.wrappers_[n]},goog.exportProperty(jspb.Message,"getWrapperField",jspb.Message.getWrapperField),jspb.Message.getRepeatedWrapperField=function(e,t,n){return jspb.Message.wrapRepeatedField_(e,t,n),t=e.wrappers_[n],t==jspb.Message.EMPTY_LIST_SENTINEL_&&(t=e.wrappers_[n]=[]),t},goog.exportProperty(jspb.Message,"getRepeatedWrapperField",jspb.Message.getRepeatedWrapperField),jspb.Message.wrapRepeatedField_=function(e,t,n){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[n]){for(var r=jspb.Message.getRepeatedField(e,n),o=[],s=0;s<r.length;s++)o[s]=new t(r[s]);e.wrappers_[n]=o}},jspb.Message.setWrapperField=function(e,t,n){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var r=n&&n.toArray();return e.wrappers_[t]=n,jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setWrapperField",jspb.Message.setWrapperField),jspb.Message.setOneofWrapperField=function(e,t,n,r){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var o=r&&r.toArray();return e.wrappers_[t]=r,jspb.Message.setOneofField(e,t,n,o)},goog.exportProperty(jspb.Message,"setOneofWrapperField",jspb.Message.setOneofWrapperField),jspb.Message.setRepeatedWrapperField=function(e,t,n){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={}),n=n||[];for(var r=[],o=0;o<n.length;o++)r[o]=n[o].toArray();return e.wrappers_[t]=n,jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setRepeatedWrapperField",jspb.Message.setRepeatedWrapperField),jspb.Message.addToRepeatedWrapperField=function(e,t,n,r,o){jspb.Message.wrapRepeatedField_(e,r,t);var s=e.wrappers_[t];return s||(s=e.wrappers_[t]=[]),n=n||new r,e=jspb.Message.getRepeatedField(e,t),o!=null?(s.splice(o,0,n),e.splice(o,0,n.toArray())):(s.push(n),e.push(n.toArray())),n},goog.exportProperty(jspb.Message,"addToRepeatedWrapperField",jspb.Message.addToRepeatedWrapperField),jspb.Message.toMap=function(e,t,n,r){for(var o={},s=0;s<e.length;s++)o[t.call(e[s])]=n?n.call(e[s],r,e[s]):e[s];return o},goog.exportProperty(jspb.Message,"toMap",jspb.Message.toMap),jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var e in this.wrappers_){var t=this.wrappers_[e];if(Array.isArray(t))for(var n=0;n<t.length;n++)t[n]&&t[n].toArray();else t&&t.toArray()}},jspb.Message.prototype.toArray=function(){return this.syncMapFields_(),this.array},goog.exportProperty(jspb.Message.prototype,"toArray",jspb.Message.prototype.toArray),jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){return this.syncMapFields_(),this.array.toString()}),jspb.Message.prototype.getExtension=function(e){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var t=e.fieldIndex;if(e.isRepeated){if(e.isMessageType())return this.wrappers_[t]||(this.wrappers_[t]=goog.array.map(this.extensionObject_[t]||[],function(n){return new e.ctor(n)})),this.wrappers_[t]}else if(e.isMessageType())return!this.wrappers_[t]&&this.extensionObject_[t]&&(this.wrappers_[t]=new e.ctor(this.extensionObject_[t])),this.wrappers_[t];return this.extensionObject_[t]}},goog.exportProperty(jspb.Message.prototype,"getExtension",jspb.Message.prototype.getExtension),jspb.Message.prototype.setExtension=function(e,t){this.wrappers_||(this.wrappers_={}),jspb.Message.maybeInitEmptyExtensionObject_(this);var n=e.fieldIndex;return e.isRepeated?(t=t||[],e.isMessageType()?(this.wrappers_[n]=t,this.extensionObject_[n]=goog.array.map(t,function(r){return r.toArray()})):this.extensionObject_[n]=t):e.isMessageType()?(this.wrappers_[n]=t,this.extensionObject_[n]=t&&t.toArray()):this.extensionObject_[n]=t,this},goog.exportProperty(jspb.Message.prototype,"setExtension",jspb.Message.prototype.setExtension),jspb.Message.difference=function(e,t){if(!(e instanceof t.constructor))throw Error("Messages have different types.");var n=e.toArray();t=t.toArray();var r=[],o=0,s=n.length>t.length?n.length:t.length;for(e.getJsPbMessageId()&&(r[0]=e.getJsPbMessageId(),o=1);o<s;o++)jspb.Message.compareFields(n[o],t[o])||(r[o]=t[o]);return new e.constructor(r)},goog.exportProperty(jspb.Message,"difference",jspb.Message.difference),jspb.Message.equals=function(e,t){return e==t||!(!e||!t)&&e instanceof t.constructor&&jspb.Message.compareFields(e.toArray(),t.toArray())},goog.exportProperty(jspb.Message,"equals",jspb.Message.equals),jspb.Message.compareExtensions=function(e,t){e=e||{},t=t||{};var n={},r;for(r in e)n[r]=0;for(r in t)n[r]=0;for(r in n)if(!jspb.Message.compareFields(e[r],t[r]))return!1;return!0},goog.exportProperty(jspb.Message,"compareExtensions",jspb.Message.compareExtensions),jspb.Message.compareFields=function(e,t){if(e==t)return!0;if(!goog.isObject(e)||!goog.isObject(t))return typeof e=="number"&&isNaN(e)||typeof t=="number"&&isNaN(t)?String(e)==String(t):!1;if(e.constructor!=t.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e.constructor===Uint8Array){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}if(e.constructor===Array){var r=void 0,o=void 0,s=Math.max(e.length,t.length);for(n=0;n<s;n++){var g=e[n],l=t[n];if(g&&g.constructor==Object&&(jspb.asserts.assert(r===void 0),jspb.asserts.assert(n===e.length-1),r=g,g=void 0),l&&l.constructor==Object&&(jspb.asserts.assert(o===void 0),jspb.asserts.assert(n===t.length-1),o=l,l=void 0),!jspb.Message.compareFields(g,l))return!1}return r||o?(r=r||{},o=o||{},jspb.Message.compareExtensions(r,o)):!0}if(e.constructor===Object)return jspb.Message.compareExtensions(e,t);throw Error("Invalid type in JSPB array")},goog.exportProperty(jspb.Message,"compareFields",jspb.Message.compareFields),jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"cloneMessage",jspb.Message.prototype.cloneMessage),jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"clone",jspb.Message.prototype.clone),jspb.Message.clone=function(e){return jspb.Message.cloneMessage(e)},goog.exportProperty(jspb.Message,"clone",jspb.Message.clone),jspb.Message.cloneMessage=function(e){return new e.constructor(jspb.Message.clone_(e.toArray()))},jspb.Message.copyInto=function(e,t){jspb.asserts.assertInstanceof(e,jspb.Message),jspb.asserts.assertInstanceof(t,jspb.Message),jspb.asserts.assert(e.constructor==t.constructor,"Copy source and target message should have the same type."),e=jspb.Message.clone(e);for(var n=t.toArray(),r=e.toArray(),o=n.length=0;o<r.length;o++)n[o]=r[o];t.wrappers_=e.wrappers_,t.extensionObject_=e.extensionObject_},goog.exportProperty(jspb.Message,"copyInto",jspb.Message.copyInto),jspb.Message.clone_=function(e){if(Array.isArray(e)){for(var t=Array(e.length),n=0;n<e.length;n++){var r=e[n];r!=null&&(t[n]=typeof r=="object"?jspb.Message.clone_(jspb.asserts.assert(r)):r)}return t}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)return new Uint8Array(e);t={};for(n in e)r=e[n],r!=null&&(t[n]=typeof r=="object"?jspb.Message.clone_(jspb.asserts.assert(r)):r);return t},jspb.Message.registerMessageType=function(e,t){t.messageId=e},goog.exportProperty(jspb.Message,"registerMessageType",jspb.Message.registerMessageType),jspb.Message.messageSetExtensions={},jspb.Message.messageSetExtensionsBinary={},jspb.Export={},exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf})(googleProtobuf);var wrappers_pb={};(function(e){var t=googleProtobuf,n=t,r=typeof globalThis!="undefined"&&globalThis||typeof window!="undefined"&&window||typeof r!="undefined"&&r||typeof self!="undefined"&&self||function(){return this}.call(null)||Function("return this")();n.exportSymbol("proto.google.protobuf.BoolValue",null,r),n.exportSymbol("proto.google.protobuf.BytesValue",null,r),n.exportSymbol("proto.google.protobuf.DoubleValue",null,r),n.exportSymbol("proto.google.protobuf.FloatValue",null,r),n.exportSymbol("proto.google.protobuf.Int32Value",null,r),n.exportSymbol("proto.google.protobuf.Int64Value",null,r),n.exportSymbol("proto.google.protobuf.StringValue",null,r),n.exportSymbol("proto.google.protobuf.UInt32Value",null,r),n.exportSymbol("proto.google.protobuf.UInt64Value",null,r),proto.google.protobuf.DoubleValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.DoubleValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.DoubleValue.displayName="proto.google.protobuf.DoubleValue"),proto.google.protobuf.FloatValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.FloatValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.FloatValue.displayName="proto.google.protobuf.FloatValue"),proto.google.protobuf.Int64Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.Int64Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.Int64Value.displayName="proto.google.protobuf.Int64Value"),proto.google.protobuf.UInt64Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.UInt64Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.UInt64Value.displayName="proto.google.protobuf.UInt64Value"),proto.google.protobuf.Int32Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.Int32Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.Int32Value.displayName="proto.google.protobuf.Int32Value"),proto.google.protobuf.UInt32Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.UInt32Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.UInt32Value.displayName="proto.google.protobuf.UInt32Value"),proto.google.protobuf.BoolValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.BoolValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.BoolValue.displayName="proto.google.protobuf.BoolValue"),proto.google.protobuf.StringValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.StringValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.StringValue.displayName="proto.google.protobuf.StringValue"),proto.google.protobuf.BytesValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.BytesValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.BytesValue.displayName="proto.google.protobuf.BytesValue"),t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.DoubleValue.prototype.toObject=function(o){return proto.google.protobuf.DoubleValue.toObject(o,this)},proto.google.protobuf.DoubleValue.toObject=function(o,s){var g={value:t.Message.getFloatingPointFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.DoubleValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.DoubleValue;return proto.google.protobuf.DoubleValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.DoubleValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readDouble();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.DoubleValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.DoubleValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.DoubleValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeDouble(1,g)},proto.google.protobuf.DoubleValue.prototype.getValue=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.google.protobuf.DoubleValue.prototype.setValue=function(o){return t.Message.setProto3FloatField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.FloatValue.prototype.toObject=function(o){return proto.google.protobuf.FloatValue.toObject(o,this)},proto.google.protobuf.FloatValue.toObject=function(o,s){var g={value:t.Message.getFloatingPointFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.FloatValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.FloatValue;return proto.google.protobuf.FloatValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.FloatValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readFloat();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.FloatValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.FloatValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.FloatValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeFloat(1,g)},proto.google.protobuf.FloatValue.prototype.getValue=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.google.protobuf.FloatValue.prototype.setValue=function(o){return t.Message.setProto3FloatField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Int64Value.prototype.toObject=function(o){return proto.google.protobuf.Int64Value.toObject(o,this)},proto.google.protobuf.Int64Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.Int64Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.Int64Value;return proto.google.protobuf.Int64Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.Int64Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readInt64();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.Int64Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.Int64Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.Int64Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeInt64(1,g)},proto.google.protobuf.Int64Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.Int64Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.UInt64Value.prototype.toObject=function(o){return proto.google.protobuf.UInt64Value.toObject(o,this)},proto.google.protobuf.UInt64Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.UInt64Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.UInt64Value;return proto.google.protobuf.UInt64Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.UInt64Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readUint64();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.UInt64Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.UInt64Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.UInt64Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeUint64(1,g)},proto.google.protobuf.UInt64Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.UInt64Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Int32Value.prototype.toObject=function(o){return proto.google.protobuf.Int32Value.toObject(o,this)},proto.google.protobuf.Int32Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.Int32Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.Int32Value;return proto.google.protobuf.Int32Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.Int32Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readInt32();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.Int32Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.Int32Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.Int32Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeInt32(1,g)},proto.google.protobuf.Int32Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.Int32Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.UInt32Value.prototype.toObject=function(o){return proto.google.protobuf.UInt32Value.toObject(o,this)},proto.google.protobuf.UInt32Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.UInt32Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.UInt32Value;return proto.google.protobuf.UInt32Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.UInt32Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readUint32();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.UInt32Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.UInt32Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.UInt32Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeUint32(1,g)},proto.google.protobuf.UInt32Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.UInt32Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BoolValue.prototype.toObject=function(o){return proto.google.protobuf.BoolValue.toObject(o,this)},proto.google.protobuf.BoolValue.toObject=function(o,s){var g={value:t.Message.getBooleanFieldWithDefault(s,1,!1)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.BoolValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.BoolValue;return proto.google.protobuf.BoolValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.BoolValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readBool();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.BoolValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.BoolValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.BoolValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g&&s.writeBool(1,g)},proto.google.protobuf.BoolValue.prototype.getValue=function(){return t.Message.getBooleanFieldWithDefault(this,1,!1)},proto.google.protobuf.BoolValue.prototype.setValue=function(o){return t.Message.setProto3BooleanField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.StringValue.prototype.toObject=function(o){return proto.google.protobuf.StringValue.toObject(o,this)},proto.google.protobuf.StringValue.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,"")};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.StringValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.StringValue;return proto.google.protobuf.StringValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.StringValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readString();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.StringValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.StringValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.StringValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g.length>0&&s.writeString(1,g)},proto.google.protobuf.StringValue.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(o){return t.Message.setProto3StringField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(o){return proto.google.protobuf.BytesValue.toObject(o,this)},proto.google.protobuf.BytesValue.toObject=function(o,s){var g={value:s.getValue_asB64()};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.BytesValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readBytes();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue_asU8(),g.length>0&&s.writeBytes(1,g)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return t.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return t.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(o){return t.Message.setProto3BytesField(this,1,o)},n.object.extend(e,proto.google.protobuf)})(wrappers_pb),function(e){var t=googleProtobuf,n=t,r=typeof globalThis!="undefined"&&globalThis||typeof window!="undefined"&&window||typeof r!="undefined"&&r||typeof self!="undefined"&&self||function(){return this}.call(null)||Function("return this")(),o=wrappers_pb;n.object.extend(proto,o),n.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,r),n.exportSymbol("proto.v1.signaling.api.Peer",null,r),n.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,r),n.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,r),n.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.RtcSession",null,r),n.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,r),n.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,r),n.exportSymbol("proto.v1.signaling.api.SessionType",null,r),n.exportSymbol("proto.v1.signaling.api.Signal",null,r),proto.v1.signaling.api.Peer=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.Peer,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.Signal,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RtcSession,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetSessionsRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.GetSessionsResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetHealthRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetHealthResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.CreatePeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.CreatePeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.DeletePeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.DeletePeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RefreshPeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RefreshPeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetPeersRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.GetPeersResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetIceServersRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetIceServersResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.SendSignalRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.SendSignalResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(s){return proto.v1.signaling.api.Peer.toObject(s,this)},proto.v1.signaling.api.Peer.toObject=function(s,g){var l,u={peerId:t.Message.getFieldWithDefault(g,1,""),organizationId:t.Message.getFieldWithDefault(g,2,""),userId:(l=g.getUserId())&&o.StringValue.toObject(s,l),deviceId:(l=g.getDeviceId())&&o.StringValue.toObject(s,l),sessionIdsList:(l=t.Message.getRepeatedField(g,5))==null?void 0:l,peerCreatedTimestamp:(l=g.getPeerCreatedTimestamp())&&o.Int64Value.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.Peer.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;case 2:var u=g.readString();s.setOrganizationId(u);break;case 3:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setUserId(u);break;case 4:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setDeviceId(u);break;case 5:var u=g.readString();s.addSessionIds(u);break;case 6:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setPeerCreatedTimestamp(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l),l=s.getOrganizationId(),l.length>0&&g.writeString(2,l),l=s.getUserId(),l!=null&&g.writeMessage(3,l,o.StringValue.serializeBinaryToWriter),l=s.getDeviceId(),l!=null&&g.writeMessage(4,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionIdsList(),l.length>0&&g.writeRepeatedString(5,l),l=s.getPeerCreatedTimestamp(),l!=null&&g.writeMessage(6,l,o.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(s){return t.Message.setProto3StringField(this,2,s)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return t.Message.getWrapperField(this,o.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(s){return t.Message.setWrapperField(this,3,s)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return t.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return t.Message.getWrapperField(this,o.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(s){return t.Message.setWrapperField(this,4,s)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return t.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return t.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(s){return t.Message.setField(this,5,s||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(s,g){return t.Message.addToRepeatedField(this,5,s,g)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(s){return t.Message.setWrapperField(this,6,s)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return t.Message.getField(this,6)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(s){return proto.v1.signaling.api.Signal.toObject(s,this)},proto.v1.signaling.api.Signal.toObject=function(s,g){var l,u={sessionId:(l=g.getSessionId())&&o.StringValue.toObject(s,l),sessionCreatedTimestamp:(l=g.getSessionCreatedTimestamp())&&o.Int64Value.toObject(s,l),senderId:t.Message.getFieldWithDefault(g,3,""),receiverId:t.Message.getFieldWithDefault(g,4,""),payload:t.Message.getFieldWithDefault(g,5,""),iceServers:t.Message.getFieldWithDefault(g,6,""),iceTransportPolicy:t.Message.getFieldWithDefault(g,7,""),sessionType:t.Message.getFieldWithDefault(g,8,0)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.Signal.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setSessionId(u);break;case 2:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setSessionCreatedTimestamp(u);break;case 3:var u=g.readString();s.setSenderId(u);break;case 4:var u=g.readString();s.setReceiverId(u);break;case 5:var u=g.readString();s.setPayload(u);break;case 6:var u=g.readString();s.setIceServers(u);break;case 7:var u=g.readString();s.setIceTransportPolicy(u);break;case 8:var u=g.readEnum();s.setSessionType(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l!=null&&g.writeMessage(1,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionCreatedTimestamp(),l!=null&&g.writeMessage(2,l,o.Int64Value.serializeBinaryToWriter),l=s.getSenderId(),l.length>0&&g.writeString(3,l),l=s.getReceiverId(),l.length>0&&g.writeString(4,l),l=s.getPayload(),l.length>0&&g.writeString(5,l),l=s.getIceServers(),l.length>0&&g.writeString(6,l),l=s.getIceTransportPolicy(),l.length>0&&g.writeString(7,l),l=s.getSessionType(),l!==0&&g.writeEnum(8,l)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return t.Message.getWrapperField(this,o.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(s){return t.Message.setWrapperField(this,2,s)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return t.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(s){return t.Message.setProto3StringField(this,3,s)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(s){return t.Message.setProto3StringField(this,4,s)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return t.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(s){return t.Message.setProto3StringField(this,5,s)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return t.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(s){return t.Message.setProto3StringField(this,6,s)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return t.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(s){return t.Message.setProto3StringField(this,7,s)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return t.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(s){return t.Message.setProto3EnumField(this,8,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(s){return proto.v1.signaling.api.RtcSession.toObject(s,this)},proto.v1.signaling.api.RtcSession.toObject=function(s,g){var l={sessionId:t.Message.getFieldWithDefault(g,1,""),offerPeerId:t.Message.getFieldWithDefault(g,2,""),answerPeerId:t.Message.getFieldWithDefault(g,3,""),organizationId:t.Message.getFieldWithDefault(g,4,""),sessionType:t.Message.getFieldWithDefault(g,5,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setSessionId(u);break;case 2:var u=g.readString();s.setOfferPeerId(u);break;case 3:var u=g.readString();s.setAnswerPeerId(u);break;case 4:var u=g.readString();s.setOrganizationId(u);break;case 5:var u=g.readString();s.setSessionType(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l.length>0&&g.writeString(1,l),l=s.getOfferPeerId(),l.length>0&&g.writeString(2,l),l=s.getAnswerPeerId(),l.length>0&&g.writeString(3,l),l=s.getOrganizationId(),l.length>0&&g.writeString(4,l),l=s.getSessionType(),l.length>0&&g.writeString(5,l)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(s){return t.Message.setProto3StringField(this,1,s)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(s){return t.Message.setProto3StringField(this,2,s)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(s){return t.Message.setProto3StringField(this,3,s)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(s){return t.Message.setProto3StringField(this,4,s)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return t.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(s){return t.Message.setProto3StringField(this,5,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetSessionsRequest.toObject(s,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(s,g){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetSessionsResponse.toObject(s,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(s,g){var l={sessionsList:t.Message.toObjectList(g.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,s)};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.RtcSession;g.readMessage(u,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),s.addSessions(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionsList(),l.length>0&&g.writeRepeatedMessage(1,l,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return t.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(s){return t.Message.setRepeatedWrapperField(this,1,s)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(s,g){return t.Message.addToRepeatedWrapperField(this,1,s,proto.v1.signaling.api.RtcSession,g)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetHealthRequest.toObject(s,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetHealthResponse.toObject(s,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(s,g){var l={version:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setVersion(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getVersion(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.CreatePeerRequest.toObject(s,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.CreatePeerResponse.toObject(s,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(s,g){var l,u={peer:(l=g.getPeer())&&proto.v1.signaling.api.Peer.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.setPeer(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeer(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.DeletePeerRequest.toObject(s,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(s,g){var l={peerId:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.DeletePeerResponse.toObject(s,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.RefreshPeerRequest.toObject(s,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(s,g){var l,u={peer:(l=g.getPeer())&&proto.v1.signaling.api.Peer.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.setPeer(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeer(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.RefreshPeerResponse.toObject(s,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetPeersRequest.toObject(s,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(s,g){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetPeersResponse.toObject(s,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(s,g){var l={peersList:t.Message.toObjectList(g.getPeersList(),proto.v1.signaling.api.Peer.toObject,s)};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.addPeers(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeersList(),l.length>0&&g.writeRepeatedMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return t.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(s){return t.Message.setRepeatedWrapperField(this,1,s)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(s,g){return t.Message.addToRepeatedWrapperField(this,1,s,proto.v1.signaling.api.Peer,g)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetIceServersRequest.toObject(s,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetIceServersResponse.toObject(s,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(s,g){var l={iceServers:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setIceServers(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getIceServers(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(s){return proto.v1.signaling.api.SendSignalRequest.toObject(s,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(s,g){var l,u={signal:(l=g.getSignal())&&proto.v1.signaling.api.Signal.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Signal;g.readMessage(u,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),s.setSignal(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSignal(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(s){return proto.v1.signaling.api.SendSignalResponse.toObject(s,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(s,g){var l,u={sessionId:(l=g.getSessionId())&&o.StringValue.toObject(s,l),sessionCreatedTimestamp:(l=g.getSessionCreatedTimestamp())&&o.Int64Value.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setSessionId(u);break;case 2:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setSessionCreatedTimestamp(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l!=null&&g.writeMessage(1,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionCreatedTimestamp(),l!=null&&g.writeMessage(2,l,o.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return t.Message.getWrapperField(this,o.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(s){return t.Message.setWrapperField(this,2,s)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return t.Message.getField(this,2)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(s){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(s,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(s,g){var l={peerId:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(s){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(s,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(s,g){var l,u={signal:(l=g.getSignal())&&proto.v1.signaling.api.Signal.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Signal;g.readMessage(u,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),s.setSignal(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSignal(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},n.object.extend(e,proto.v1.signaling.api)}(signaling_pb);const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$2=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let e;try{if(e=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}const millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};function filterDataByTime(e,t,n){const r=t.getTime(),o=n.getTime();return e.map(s=>({...s,points:s.points.filter(([g])=>g>=r&&g<o)})).filter(({points:s})=>s.length>0)}function filterDataByType(e,t){return e.filter(n=>n.type===t)}function fork(e){}class StoreCache{constructor({capacity:t,timeout:n}={}){he(this,"entries",new Map);he(this,"metadata",new Map);he(this,"capacity");he(this,"timeout");this.capacity=t||1e4,this.timeout=n||duration.minute}get(t,n){const r=this.keyToCacheKey(t),o=this.entries.get(r),s=this.metadata.get(r);return(o===void 0||s&&(s==null?void 0:s.expiration.getTime())<Date.now())&&!(s!=null&&s.generating)&&n&&this.generate(t,n()),o===void 0&&s&&s.lastValue!==void 0?s.lastValue:o}set(t,n){const r=this.keyToCacheKey(t);this.metadata.set(r,{generating:!1,expiration:new Date(Date.now()+this.timeout),lastValue:n}),this.entries.set(r,n),this.metadata.size>this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(t=>t.generating=!1)}clearKey(t){this.metadata.delete(t),this.entries.delete(t)}keyToCacheKey(t){return JSON.stringify(t)}deleteOldestEntry(){if(this.metadata.size<1)return;const[t]=[...this.metadata.entries()].reduce(([n,r],[o,s])=>s.expiration.getTime()<r.expiration.getTime()?[o,s]:[n,r]);this.clearKey(t)}generate(t,n){const r=this.keyToCacheKey(t),o=this.metadata.get(r)||{};this.metadata.set(r,{...o,generating:!0,expiration:new Date(Date.now()+this.timeout)}),setTimeout(()=>{n.then(s=>{const g=this.metadata.get(r);!(g!=null&&g.generating)||this.set(t,s)})},0)}}function roundToNearestSecond(e){return new Date(Math.round(e.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration.second}));he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration.second}))}moduleQuery(t,n,r,o,s,g=!1){const l={...t,names:[n],types:[r],start:o.toISOString(),end:s.toISOString(),latestOnly:g},u=this.query(l);return u===void 0||u==="too much data"?u:filterDataByType(u,r)}query(t){const n=new Date(t.end)>addSeconds(new Date,-20),r=startOfMinute(new Date(t.start)).toISOString(),o=t.latestOnly?addSeconds(roundToNearestSecond(new Date(t.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(t.end)),1).toISOString();let s;return n?s=this.liveQueryCache({...t,start:r,end:o}):s=this.queryCache({...t,start:r,end:o}),!s||s==="too much data"||t.latestOnly?s:filterDataByTime(s,new Date(r),new Date(o))}queryCache(t){return this.queryStoreCache.get(t,async()=>{try{return await Fleet.queryTelemetry(t)}catch(n){throw n}})}liveQueryCache(t){return this.liveQueryStoreCache.get(t,async()=>{try{return await Fleet.queryTelemetry(t)}catch(n){throw n}})}}const debug=new URLSearchParams(window.location.search).get("debug")==="true";class BasicUniverseDataConnector{constructor(){he(this,"subscriberSources",new Map);he(this,"subscriberLoaders",new Map);he(this,"subscriberDistributorsLoaders",new Map);he(this,"mapRealtimeConnections",new Map);he(this,"lastQueriedHistoricTime");he(this,"time");he(this,"timeChangeListeners",[]);he(this,"queryStore",new QueryStore);this.time="live";const t=async()=>{if(Array.from(this.subscriberLoaders.keys()).length>0){const n=[],r=this.generateTelemetryFilter(),o=this.queryStore.query(r);if(!o||o==="too much data")return;o.forEach(u=>{n.push(u.deviceId)});const s=Array.from(new Set(n)),g=[];s.forEach(u=>{const c=this.subscriberLoaders.get(u);c&&c.forEach(d=>{g.push(d(o))})}),(await Promise.all(g)).forEach(u=>{if(u.data){const c=this.subscriberDistributorsLoaders.get(u.deviceId);if(c){const d=c.get(u.sourceId);d&&d.forEach(B=>{B(u.data)})}}})}setTimeout(()=>t(),0)};setTimeout(()=>t(),0)}setTime(t){t!=="live"&&(this.time=t),this.timeChangeListeners.forEach(n=>n(t))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}generateTelemetryFilter(){const t=Array.from(this.subscriberSources.keys()),n=[];return t.forEach(r=>{const o=this.subscriberSources.get(r);o&&Array.from(o==null?void 0:o.values()).forEach(s=>{s.sourceType==="telemetry"&&n.push(s.streamName)})}),{deviceIds:t,names:n,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(t,n){await this.createRealtimeConnection(t);const r=this.mapRealtimeConnections.get(t);r&&r!=="loading"&&r&&r.sendRealtimeMessage(n,{channelLabel:"stream.reliable"})}async createRealtimeConnection(t,n=signaling_pb.SessionType.TELEOP){const r=this.mapRealtimeConnections.get(t);if(r===void 0){this.mapRealtimeConnections.set(t,"loading");const o=t.startsWith("http");console.log("Creating {} realtime connection",o?"peer":"cloud");let s;o?s=new PeerDevice(t):s=await Fleet.getDevice(t),await s.startRealtimeConnection(n),debug&&s.addRealtimeListener((g,l)=>{console.log("received message from peer",g,l)}),this.mapRealtimeConnections.set(t,s)}else r==="loading"&&await new Promise(o=>{const s=setInterval(()=>{const g=this.mapRealtimeConnections.get(t);g&&g!=="loading"&&(clearInterval(s),o())},100)})}addRemovableTelemetrySubscription(t,n,r,o){let s=this.subscriberLoaders.get(t);s||(s=new Map,this.subscriberLoaders.set(t,s)),s.get(n.id)||s.set(n.id,r);let l=this.subscriberDistributorsLoaders.get(t);l||(l=new Map,this.subscriberDistributorsLoaders.set(t,l));const u=l.get(n.id);u?u.push(o):l.set(n.id,[o]);let c=this.subscriberSources.get(t);return c||(c=new Map,this.subscriberSources.set(t,c)),c.set(n.id,n),()=>{const d=this.subscriberLoaders.get(t);d&&d.delete(n.id);const B=this.subscriberDistributorsLoaders.get(t);if(B){const f=B.get(n.id);if(f){const p=f.indexOf(o);p>-1&&f.splice(p,1)}}const Q=this.subscriberSources.get(t);Q&&Q.delete(n.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(t,n,r){const o=this.mapRealtimeConnections.get(t);if(o==="loading"||o===void 0)throw new Error("Device is not ready or doesnt exist");await o.sendCommand(n,r)}async sendRealtimePose(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"pose"},{pose:r},"vision");await this.sendRtcMessage(t,o)}async sendRealtimeBoolean(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"boolean"},{boolean:r});await this.sendRtcMessage(t,o)}async sendRealtimeBitset(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"bitset"},{bitset:{bits:r.keys.map((s,g)=>({key:s,value:r.values[g]}))}});await this.sendRtcMessage(t,o)}async getUrdfs(t){const r=await(await Fleet.getDevice(t)).getConfiguration();return!r.urdfFiles||r.urdfFiles.length===0?[]:[await Fleet.getFileUrl(r.urdfFiles[0])]}async getTelemetryStreams(t){throw new Error("Not implemented")}async getTeleopRosStreams(t){throw new Error("Not implemented")}async getHardwareStreams(t){throw new Error("Not implemented")}addInteraction(t){throw new Error("Method not implemented.")}removeInteraction(t){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(t){throw new Error("Method not implemented.")}addInteractionListener(t){throw new Error("Method not implemented.")}getRealtimeButtons(t){throw new Error("Method not implemented.")}async getLatestTransformTrees(t){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(t){throw new Error("Not implemented")}async getTelemetryStreamType(t,n){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(t,n,r){return()=>{}}async fetchImage(t){const n=new Image;return n.src=t,n.setAttribute("crossOrigin",""),await new Promise(r=>{n.onload=r}),n}}function defined(e,t){if(e!==void 0)return e;throw new Error(t||"Value is undefined")}const encodedJs$1="dmFyIFI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBHPShNLGIseCk9PmIgaW4gTT9SKE0sYix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pOk1bYl09eDt2YXIgST0oTSxiLHgpPT4oRyhNLHR5cGVvZiBiIT0ic3ltYm9sIj9iKyIiOmIseCkseCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IFM9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24gcShvKXt9Y2xhc3MgX3tjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6dCx0aW1lb3V0Om59PXt9KXtJKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO0kodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO0kodGhpcywiY2FwYWNpdHkiKTtJKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PXR8fDFlNCx0aGlzLnRpbWVvdXQ9bnx8Uy5taW51dGV9Z2V0KHQsbil7Y29uc3QgZT10aGlzLmtleVRvQ2FjaGVLZXkodCksYz10aGlzLmVudHJpZXMuZ2V0KGUpLGk9dGhpcy5tZXRhZGF0YS5nZXQoZSk7cmV0dXJuKGM9PT12b2lkIDB8fGkmJihpPT1udWxsP3ZvaWQgMDppLmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmIShpIT1udWxsJiZpLmdlbmVyYXRpbmcpJiZuJiZ0aGlzLmdlbmVyYXRlKHQsbigpKSxjPT09dm9pZCAwJiZpJiZpLmxhc3RWYWx1ZSE9PXZvaWQgMD9pLmxhc3RWYWx1ZTpjfXNldCh0LG4pe2NvbnN0IGU9dGhpcy5rZXlUb0NhY2hlS2V5KHQpO3RoaXMubWV0YWRhdGEuc2V0KGUse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOm59KSx0aGlzLmVudHJpZXMuc2V0KGUsbiksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKHQ9PnQuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkodCl7dGhpcy5tZXRhZGF0YS5kZWxldGUodCksdGhpcy5lbnRyaWVzLmRlbGV0ZSh0KX1rZXlUb0NhY2hlS2V5KHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFt0XT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW24sZV0sW2MsaV0pPT5pLmV4cGlyYXRpb24uZ2V0VGltZSgpPGUuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2MsaV06W24sZV0pO3RoaXMuY2xlYXJLZXkodCl9Z2VuZXJhdGUodCxuKXtjb25zdCBlPXRoaXMua2V5VG9DYWNoZUtleSh0KSxjPXRoaXMubWV0YWRhdGEuZ2V0KGUpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChlLHsuLi5jLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57bi50aGVuKGk9Pntjb25zdCByPXRoaXMubWV0YWRhdGEuZ2V0KGUpOyEociE9bnVsbCYmci5nZW5lcmF0aW5nKXx8dGhpcy5zZXQodCxpKX0pfSwwKX19LyoqCiAqIExaRiBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIG1vZHVsZS4gUG9ydGVkIGZyb20gdGhlIEMKICogaW1wbGVtZW50YXRpb24gb2YgbGlibHpmLCBzcGVjZmljYWxseSBsemZfYy5jIGFuZCBsemZfZC5jCiAqIEBsaWNlbnNlIEJTRC0yLUNsYXVzZQogKi9mdW5jdGlvbiBLKG8pe3ZhciB0PW5ldyBVaW50OEFycmF5KG8pLG49W10sZT0wLGM9MDtkb3t2YXIgaT10W2UrK107aWYoaTwxPDw1KXtpZihpKyssZStpPnQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO2Zvcig7aS0tOyluW2MrK109dFtlKytdfWVsc2V7dmFyIHI9aT4+NSxmPWMtKChpJjMxKTw8OCktMTtpZihlPj10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihyPT03JiYocis9dFtlKytdLGU+PXQubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihmLT10W2UrK10sZjwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO3IrPTI7ZG8gbltjKytdPW5bZisrXTt3aGlsZSgtLXIpfX13aGlsZShlPHQubGVuZ3RoKTtpZih0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihuKTt2YXIgdT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7cmV0dXJuIHUuc2V0KG4pLHV9ZnVuY3Rpb24gTyhvKXt2YXIgdD0xNixuPTE8PHQsZT0xPDwxMyxjPSgxPDw4KSsoMTw8MyksaT0xPDw1O2Z1bmN0aW9uIHIodixUKXtyZXR1cm4gdltUXTw8OHx2W1QrMV19ZnVuY3Rpb24gZih2LFQsUCl7cmV0dXJuIHY8PDh8VFtQKzJdfWZ1bmN0aW9uIHUodil7cmV0dXJuIHYqNTA2ODMyODI5Pj4zMi10LTgmbi0xfWZvcih2YXIgcz1uZXcgVWludDhBcnJheShvKSxhPVtdLGQ9bmV3IFVpbnQzMkFycmF5KG4pLHk9cy5sZW5ndGgsaD0wLGc9cihzLGgpLHA9MSxsPTA7aDx5LTI7KXtnPWYoZyxvLGgpO3ZhciB6PXUoZyksbT1kW3pdO2Rbel09aDt2YXIgRTtpZihtPGgmJihFPWgtbS0xKTxlJiZtPjAmJnNbbSsyXT09c1toKzJdJiZzW20rMV09PXNbaCsxXSYmc1ttXT09c1toXSl7dmFyIHc9MixGPXktaC13O0Y9Rj5jP2M6RixhW3AtbC0xXT1sLTEmMjU1LGw9PTAmJihwLT0xKTtkbyB3Kys7d2hpbGUodzxGJiZzW20rd109PXNbaCt3XSk7aWYody09MixoKyssdzw3P2FbcCsrXT0oRT4+OCkrKHc8PDUpJjI1NTooYVtwKytdPShFPj44KSsoNzw8NSkmMjU1LGFbcCsrXT13LTcmMjU1KSxhW3ArK109RSYyNTUsbD0wLHArKyxoKz13KzEsaD49eS0yKWJyZWFrOy0taCwtLWgsZz1yKHMsaCksZz1mKGcscyxoKSxkW3UoZyldPWgrKyxnPWYoZyxzLGgpLGRbdShnKV09aCsrfWVsc2UgbCsrLGFbcCsrXT1zW2grK10sbD09aSYmKGFbcC1sLTFdPWwtMSYyNTUsbD0wLHArKyl9Zm9yKDtoPHk7KWwrKyxhW3ArK109c1toKytdLGw9PWkmJihhW3AtbC0xXT1sLTEmMjU1LGw9MCxwKyspO2lmKGwhPTAmJihhW3AtbC0xXT1sLTEmMjU1KSx0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihhKTt2YXIgVT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7cmV0dXJuIFUuc2V0KGEpLFV9dmFyIEI9e2RlY29tcHJlc3M6Syxjb21wcmVzczpPfTtjb25zdCBDPShvLHQpPT50PD1vP1tdOm5ldyBBcnJheSh0LW8pLmZpbGwoMCkubWFwKChuLGUpPT5lK28pLEE9ITA7ZnVuY3Rpb24gSChvKXtjb25zdCB0PWF0b2Iobyksbj10Lmxlbmd0aCxlPW5ldyBVaW50OEFycmF5KG4pO2ZvcihsZXQgYz0wO2M8bjtjKz0xKWVbY109dC5jaGFyQ29kZUF0KGMpO3JldHVybiBlLmJ1ZmZlcn1mdW5jdGlvbiBMKG8pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IG49IiIsZT0wO2Zvcig7ZTx0Lmxlbmd0aCYmbi5zZWFyY2goL1tcclxuXURBVEFccyhcUyopXHMvaSk9PT0tMTtlKz0xKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtlXSk7cmV0dXJue2JvZHk6by5zbGljZShlKSxoZWFkZXI6bi5yZXBsYWNlKC8jLiovZ2ksIiIpfX1mdW5jdGlvbiBWKG8pe2NvbnN0IG49bmV3IFVpbnQzMkFycmF5KG8sMCwyKVswXTtyZXR1cm4gbj09PTA/bmV3IEFycmF5QnVmZmVyKDApOkIuZGVjb21wcmVzcyhuZXcgVWludDhBcnJheShvLDgsbikpLmJ1ZmZlcn1mdW5jdGlvbiBrKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09TChvKSxlPS9WRVJTSU9OICguKikvaS5leGVjKHQpO2lmKGU9PT1udWxsKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyB2ZXJzaW9uLiBIZWFkZXIgJHt0fWApO2NvbnN0IGM9ZVsxXSxpPS9GSUVMRFMgKC4qKS9pLmV4ZWModCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGZpZWxkcyIpO2NvbnN0IHI9aVsxXS5zcGxpdCgiICIpLGY9L1NJWkUgKC4qKS9pLmV4ZWModCk7aWYoIWYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHNpemUiKTtjb25zdCB1PWZbMV0uc3BsaXQoIiAiKS5tYXAodj0+cGFyc2VJbnQodiwxMCkpLHM9L1RZUEUgKC4qKS9pLmV4ZWModCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHR5cGUiKTtjb25zdCBhPXNbMV0uc3BsaXQoIiAiKSxkPS9DT1VOVCAoLiopL2kuZXhlYyh0KTtsZXQgeTtkJiYoeT1kWzFdLnNwbGl0KCIgIikubWFwKHY9PnBhcnNlSW50KHYsMTApKSk7Y29uc3QgaD15fHxyLm1hcCh2PT4xKSxnPS9XSURUSCAoLiopL2kuZXhlYyh0KTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgd2lkdGgiKTtjb25zdCBwPXBhcnNlSW50KGdbMV0sMTApLGw9L0hFSUdIVCAoLiopL2kuZXhlYyh0KTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgaGVpZ2h0Iik7Y29uc3Qgej1wYXJzZUludChsWzFdLDEwKSxtPS9QT0lOVFMgKC4qKS9pLmV4ZWModCk7bGV0IEU7bSYmKEU9cGFyc2VJbnQobVsxXSwxMCkpO2NvbnN0IHc9RXx8cCp6LEY9L0RBVEEgKC4qKS9pLmV4ZWModCk7aWYoIUYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGRhdGEiKTtjb25zdCBVPUZbMV07cmV0dXJue2JvZHk6bixoZWFkZXI6e2NvdW50OmgsZGF0YTpVLGZpZWxkczpyLGhlaWdodDp6LHBvaW50czp3LHNpemU6dSx0eXBlOmEsdmVyc2lvbjpjLHdpZHRoOnB9fX1mdW5jdGlvbiBOKG8pe2NvbnN0IHQ9e307cmV0dXJuIG8uZmllbGRzLnJlZHVjZSgoe29mZnNldHM6bixzaXplOmV9LGMsaSk9PntsZXQgcj1lO3JldHVybiBjPT09IngiJiYobi54PXIpLGM9PT0ieSImJihuLnk9ciksYz09PSJ6IiYmKG4uej1yKSxjPT09InJnYiImJihuLnJnYj1yKSxjPT09InJnYmEiJiYobi5yZ2JhPXIpLGM9PT0iaW50ZW5zaXR5IiYmKG4uaW50ZW5zaXR5PXIpLG8uZGF0YT09PSJhc2NpaSI/cis9MTpvLmRhdGE9PT0iYmluYXJ5Ij9yKz1vLnNpemVbaV0qby5jb3VudFtpXTpvLmRhdGE9PT0iYmluYXJ5X2NvbXByZXNzZWQiJiYocis9by5zaXplW2ldKm8uY291bnRbaV0qby5wb2ludHMpLHtvZmZzZXRzOm4sc2l6ZTpyfX0se29mZnNldHM6dCxzaXplOjB9KX1mdW5jdGlvbiBEKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09ayhvKSx7b2Zmc2V0czplLHNpemU6Y309Tih0KTtsZXQgaTtlLnghPT12b2lkIDAmJmUueSE9PXZvaWQgMCYmZS56IT09dm9pZCAwJiYoaT1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKjMpKTtsZXQgcjsoZS5yZ2IhPT12b2lkIDB8fGUucmdiYSE9PXZvaWQgMCkmJihyPW5ldyBGbG9hdDMyQXJyYXkodC5wb2ludHMqNCkpO2xldCBmO2lmKGUuaW50ZW5zaXR5IT09dm9pZCAwJiYoZj1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKSksdC5kYXRhPT09ImFzY2lpIilTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLm5ldyBVaW50OEFycmF5KG4pKS5zcGxpdChgCmApLmZvckVhY2goKGEsZCk9Pntjb25zdCB5PWEuc3BsaXQoIiAiKTtpZihpIT09dm9pZCAwJiYoaVtkKjMrMF09cGFyc2VGbG9hdCh5W2UueHx8MF0pLGlbZCozKzFdPXBhcnNlRmxvYXQoeVtlLnl8fDBdKSxpW2QqMysyXT1wYXJzZUZsb2F0KHlbZS56fHwwXSkpLHIhPT12b2lkIDApe2NvbnN0IGg9bmV3IEludDMyQXJyYXkoW3BhcnNlSW50KHlbZS5yZ2J8fGUucmdiYXx8MF0sMTApXSksZz1uZXcgRGF0YVZpZXcoaC5idWZmZXIsMCk7cltkKjMrMF09Zy5nZXRVaW50OCgyKS8yNTUscltkKjMrMV09Zy5nZXRVaW50OCgxKS8yNTUscltkKjMrMl09Zy5nZXRVaW50OCgwKS8yNTV9ZiE9PXZvaWQgMCYmKGZbZF09cGFyc2VGbG9hdCh5W2UuaW50ZW5zaXR5fHwwXSkpfSk7ZWxzZSBpZih0LmRhdGE9PT0iYmluYXJ5Iil7Y29uc3QgdT1uZXcgRGF0YVZpZXcobik7QygwLHQucG9pbnRzKS5mb3JFYWNoKHM9Pntjb25zdCBhPWMqcztpZihpIT09dm9pZCAwJiYoaVtzKjMrMF09dS5nZXRGbG9hdDMyKGErKGUueHx8MCksQSksaVtzKjMrMV09dS5nZXRGbG9hdDMyKGErKGUueXx8MCksQSksaVtzKjMrMl09dS5nZXRGbG9hdDMyKGErKGUuenx8MCksQSkpLHIhPT12b2lkIDApe2NvbnN0IGQ9YSsoZS5yZ2J8fGUucmdiYXx8MCk7ZCsyPD11LmJ5dGVMZW5ndGgmJihyW3MqNCswXT11LmdldFVpbnQ4KGQrMikvMjU1LHJbcyo0KzFdPXUuZ2V0VWludDgoZCsxKS8yNTUscltzKjQrMl09dS5nZXRVaW50OChkKzApLzI1NSxyW3MqNCszXT0xKX1mIT09dm9pZCAwJiYoZltzXT11LmdldEZsb2F0MzIoYSsoZS5pbnRlbnNpdHl8fDApLEEpKX0pfWVsc2UgaWYodC5kYXRhPT09ImJpbmFyeV9jb21wcmVzc2VkIil7Y29uc3QgdT1WKG4pLHM9bmV3IERhdGFWaWV3KHUpO0MoMCx0LnBvaW50cykuZm9yRWFjaChhPT57aWYoaSE9PXZvaWQgMCYmKGlbYSozKzBdPXMuZ2V0RmxvYXQzMigoZS54fHwwKSthKjQsQSksaVthKjMrMV09cy5nZXRGbG9hdDMyKChlLnl8fDApK2EqNCxBKSxpW2EqMysyXT1zLmdldEZsb2F0MzIoKGUuenx8MCkrYSo0LEEpKSxyIT09dm9pZCAwKXtjb25zdCBkPShlLnJnYnx8ZS5yZ2JhfHwwKSthKjQ7ZCsyPD1zLmJ5dGVMZW5ndGgmJihyW2EqNCswXT1zLmdldFVpbnQ4KGQrMikvMjU1LHJbYSo0KzFdPXMuZ2V0VWludDgoZCsxKS8yNTUsclthKjQrMl09cy5nZXRVaW50OChkKzApLzI1NSxyW2EqNCszXT0xKX1mIT09dm9pZCAwJiYoZlthXT1zLmdldEZsb2F0MzIoKGUuaW50ZW5zaXR5fHwwKSthKjQsQSkpfSl9cmV0dXJue2NvbG9yczpyLGhlYWRlcjp0LGludGVuc2l0eTpmLHBvc2l0aW9uczppfX1mdW5jdGlvbiBYKG8pe3JldHVybiBEKEgobykpfWNvbnN0IFo9bmV3IF8oe2NhcGFjaXR5OjFlMyx0aW1lb3V0OjEqUy5taW51dGV9KTtvbm1lc3NhZ2U9YXN5bmMgbz0+e2NvbnN0e3VybDp0LGlkOm4scG9pbnRDbG91ZDplfT1vLmRhdGE7aWYodCl7Y29uc3QgYz1aLmdldCh0LGFzeW5jKCk9PkQoYXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyJ9KS50aGVuKHI9PnIuYXJyYXlCdWZmZXIoKSkpKTtjJiZwb3N0TWVzc2FnZSh7dXJsOnQscGNkOmN9KX1pZihuJiZlKXtjb25zdCBjPVgoZSk7cG9zdE1lc3NhZ2Uoe2lkOm4scGNkOmN9KX19fSkoKTsK",blob$1=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(){let e;try{if(e=blob$1&&(window.URL||window.webkitURL).createObjectURL(blob$1),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$1)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(t,n,r){throw new Error("Method not implemented.")}subscribeToImage(t,n,r){throw new Error("Method not implemented.")}subcribeToVideo(t,n,r){throw new Error("Method not implemented.")}subscribeToBitset(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{if(g.payload.bitset){const l=g.payload.bitset,u={keys:[],values:[]};l.bits.forEach(c=>{u.keys.push(c.key),u.values.push(c.value)}),r(u)}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(t,n,r,o){if(n.sourceType==="realtime"){const s=(g,l)=>{if(l.payload.odometry){const u=l.payload.odometry;r({worldToLocal:u.worldToLocal,pose:{translation:{x:u.pose.translation.x,y:u.pose.translation.y,z:u.pose.translation.z},rotation:{x:u.pose.rotation.x,y:u.pose.rotation.y,z:u.pose.rotation.z,w:u.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,s),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,s)}}if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async s=>{let g,l;for(let u=0;u<s.length;u+=1){const c=s[u];if(c.deviceId===t&&c.name===n.streamName&&c.type==="localization"){const[d,B]=c.points[c.points.length-1];g=B}}return g&&g.odometry&&(l={worldToLocal:g.odometry.worldToLocal,pose:{translation:{x:g.odometry.pose.translation.x,y:g.odometry.pose.translation.y,z:g.odometry.pose.translation.z},rotation:{x:g.odometry.pose.rotation.x,y:g.odometry.pose.rotation.y,z:g.odometry.pose.rotation.z,w:g.odometry.pose.rotation.w}},covariance:[]}),{deviceId:t,sourceId:n.id,data:l}},r);throw new Error("unexpected")}subscribeToPose(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.pose&&r(g.payload.pose)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}throw new Error("unexpected")}subscribeToNumeric(t,n,r){if(n.sourceType==="realtime"){const o=async(s,g)=>{g.payload.numeric&&r([[Date.now(),g.payload.numeric.value]])};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToNumericSet(t,n,r){if(n.sourceType==="telemetry"){let o;const s=setInterval(async()=>{o||(o=await Fleet.getDevice(t));const g=new Date,l=new Date(g.getTime()-15*1e3),u=await o.getTelemetry(n.streamName,l,g);if(u.length>0){const c=u[0].points;r(c)}},1e3);return()=>{clearInterval(s)}}return()=>{}}async subscribeToRealtimeMessages(t,n,r){await this.createRealtimeConnection(t,signaling_pb.SessionType.OBSERVE);const o=this.mapRealtimeConnections.get(t);o&&o!=="loading"&&(o.startListeningToRealtimeDataStream({name:n}),o.addRealtimeListener((s,g)=>{g.header.stream.streamName===n&&r(s,g)}))}async unsubscribeToRealtimeMessages(t,n,r){const o=this.mapRealtimeConnections.get(t);o&&o!=="loading"&&(o.stopListeningToRealtimeDataStream({name:n}),o.removeRealtimeListener(r))}subscribeToJson(t,n,r){if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="json"){const[c,d]=u.points[u.points.length-1];s=d}}return s&&(g=await fetch(s).then(l=>l.json())),{deviceId:t,sourceId:n.id,data:g}},r);if(n.sourceType==="realtime"){const o=async(s,g)=>{g.payload.jsonString&&r(JSON.parse(g.payload.jsonString.value))};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToText(t,n,r){return n.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="text"){const[c,d]=u.points[u.points.length-1];s=d}}return s&&(g=await fetch(s).then(l=>l.text())),{deviceId:t,sourceId:n.id,data:g}},r):()=>{}}subscribeToPointCloud(t,n,r){let o;const s=new WorkerWrapper$1;if(n.sourceType==="telemetry"&&n.streamType!=="localization"&&(o=this.addRemovableTelemetrySubscription(t,n,async g=>{let l,u;for(let c=0;c<g.length;c+=1){const d=g[c];if(d.deviceId===t&&d.name===n.streamName&&d.type==="point cloud"){const[B,Q]=d.points[d.points.length-1];l=Q;break}}if(l){const{url:c}=l;u=await new Promise(d=>{s.postMessage({url:c}),s.onmessage=B=>{B.data.url===c&&d(B.data.pcd)}})}return{deviceId:t,sourceId:n.id,data:{worldToLocal:l==null?void 0:l.worldToLocal,pcd:u}}},r)),n.sourceType==="telemetry"&&n.streamType==="localization"&&(o=this.addRemovableTelemetrySubscription(t,n,async g=>{let l,u;for(let c=0;c<g.length;c+=1){const d=g[c];if(d.deviceId===t&&d.name===n.streamName&&d.type==="localization"){const[B,Q]=d.points[d.points.length-1];l=Q;break}}if(l&&l.pointClouds){const{url:c}=l.pointClouds[0];u=await new Promise(d=>{s.postMessage({url:c}),s.onmessage=B=>{B.data.url===c&&d(B.data.pcd)}})}return{deviceId:t,sourceId:n.id,data:{worldToLocal:l&&(l!=null&&l.pointClouds)&&(l!=null&&l.pointClouds[0])?l.pointClouds[0].worldToLocal:void 0,pcd:u}}},r)),n.sourceType==="realtime"){const g=async(l,u)=>{var c;if(u.payload.pointCloud){const d=Math.random(),B=await new Promise(Q=>{s.postMessage({id:d,pointCloud:defined(u.payload.pointCloud).data}),s.onmessage=f=>{f.data.id===d&&Q(f.data.pcd)}});r({worldToLocal:(c=u.payload.pointCloud)==null?void 0:c.world_to_local,pcd:B})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,g),()=>{s.terminate(),this.unsubscribeToRealtimeMessages(t,n.rosTopicName,g)}}return()=>{s.terminate(),o==null||o()}}subscribeToGeometry(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.markerArray&&r(g.payload.markerArray)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToJointState(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.jointState&&r(g.payload.jointState)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToGridMap(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{if(g.payload.jsonString){const l=JSON.parse(g.payload.jsonString.value);r({width:l.info.width,height:l.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:l.info.resolution,origin:{translation:l.info.origin.position,rotation:l.info.origin.orientation},data:l.data,alpha:l.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}else if(n.sourceType==="telemetry"&&n.streamType==="localization")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="localization"){const[c,d]=u.points[u.points.length-1];s=d}}if(s&&s.map){const l=document.createElement("canvas"),u=await this.fetchImage(s.map.url);l.width=u.width,l.height=u.height;const c=l.getContext("2d",{willReadFrequently:!0});c&&c.drawImage(u,0,0);const d=c==null?void 0:c.getImageData(0,0,u.width,u.height),B=[],Q=[];if(d)for(let f=0;f<d.data.length;f+=4){const p=d.data[f],U=d.data[f+3];B.push(p),Q.push(U)}g={width:s.map.width,height:s.map.height,worldToLocal:s.map.worldToLocal,resolution:s.map.resolution,origin:s.map.origin,alpha:Q,data:B}}return{deviceId:t,sourceId:n.id,data:g}},r);throw new Error("Not implemented")}subscribeToVideo(t,n,r){const o=this.createH264Drawer(),s=document.createElement("CANVAS");if(s.width=0,s.height=0,o.setCanvas(s),o.start(),n.sourceType==="realtime"){const g=(l,u)=>{u.payload.h264VideoFrame&&(o.receiveEncodedFrame(u.payload.h264VideoFrame),o&&o.canvas&&o.canvas.width>0&&o.canvas.height>0&&r(o.canvas))};return this.subscribeToRealtimeMessages(t,n.rosTopicName,g),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,g)}}if(n.sourceType==="hardware"){const g=(l,u)=>{u.payload.h264VideoFrame&&(o.receiveEncodedFrame(u.payload.h264VideoFrame),o&&o.canvas&&o.canvas.width>0&&o.canvas.height>0&&r(o.canvas))};return this.subscribeToRealtimeMessages(t,n.rtcStreamName,g),()=>{this.unsubscribeToRealtimeMessages(t,n.rtcStreamName,g)}}return()=>{o.stop()}}subscribeToTransformTree(t,n,r){if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s;for(let g=0;g<o.length;g+=1){const l=o[g];if(l.deviceId===t&&l.name===n.streamName&&l.type==="transform tree"){const[u,c]=l.points[l.points.length-1];s=c}}return{deviceId:t,sourceId:n.id,data:s}},r);throw new Error("not implemented for this source type "+n.sourceType)}subscribeToLocation(t,n,r){throw new Error("Not implemented")}}const NoData=Symbol("no_data"),LoadingData=Symbol("loading_data"),FailedData=Symbol("failed_data"),encodedJs="dmFyIGw9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBnPShjLG4sbyk9Pm4gaW4gYz9sKGMsbix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pOmNbbl09bzt2YXIgcj0oYyxuLG8pPT4oZyhjLHR5cGVvZiBuIT0ic3ltYm9sIj9uKyIiOm4sbyksbyk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IHU9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24geChoKXt9Y2xhc3MgbXtjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6ZSx0aW1lb3V0OnN9PXt9KXtyKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO3IodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO3IodGhpcywiY2FwYWNpdHkiKTtyKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PWV8fDFlNCx0aGlzLnRpbWVvdXQ9c3x8dS5taW51dGV9Z2V0KGUscyl7Y29uc3QgYT10aGlzLmtleVRvQ2FjaGVLZXkoZSksaT10aGlzLmVudHJpZXMuZ2V0KGEpLHQ9dGhpcy5tZXRhZGF0YS5nZXQoYSk7cmV0dXJuKGk9PT12b2lkIDB8fHQmJih0PT1udWxsP3ZvaWQgMDp0LmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmISh0IT1udWxsJiZ0LmdlbmVyYXRpbmcpJiZzJiZ0aGlzLmdlbmVyYXRlKGUscygpKSxpPT09dm9pZCAwJiZ0JiZ0Lmxhc3RWYWx1ZSE9PXZvaWQgMD90Lmxhc3RWYWx1ZTppfXNldChlLHMpe2NvbnN0IGE9dGhpcy5rZXlUb0NhY2hlS2V5KGUpO3RoaXMubWV0YWRhdGEuc2V0KGEse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOnN9KSx0aGlzLmVudHJpZXMuc2V0KGEscyksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKGU9PmUuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkoZSl7dGhpcy5tZXRhZGF0YS5kZWxldGUoZSksdGhpcy5lbnRyaWVzLmRlbGV0ZShlKX1rZXlUb0NhY2hlS2V5KGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFtlXT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW3MsYV0sW2ksdF0pPT50LmV4cGlyYXRpb24uZ2V0VGltZSgpPGEuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2ksdF06W3MsYV0pO3RoaXMuY2xlYXJLZXkoZSl9Z2VuZXJhdGUoZSxzKXtjb25zdCBhPXRoaXMua2V5VG9DYWNoZUtleShlKSxpPXRoaXMubWV0YWRhdGEuZ2V0KGEpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChhLHsuLi5pLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57cy50aGVuKHQ9Pntjb25zdCBkPXRoaXMubWV0YWRhdGEuZ2V0KGEpOyEoZCE9bnVsbCYmZC5nZW5lcmF0aW5nKXx8dGhpcy5zZXQoZSx0KX0pfSwwKX19Y29uc3QgeT1uZXcgbSh7Y2FwYWNpdHk6MWUzLHRpbWVvdXQ6MSp1Lm1pbnV0ZX0pO29ubWVzc2FnZT1hc3luYyBoPT57Y29uc3R7dXJsOmV9PWguZGF0YTtpZihlKXtjb25zdCBzPXkuZ2V0KGUsYXN5bmMoKT0+YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KS50aGVuKGk9PmkuanNvbigpKSk7cyYmcG9zdE1lc3NhZ2Uoe3VybDplLHJlc3BvbnNlOnN9KX19fSkoKTsK",blob=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){let e;try{if(e=blob&&(window.URL||window.webkitURL).createObjectURL(blob),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}class TelemetryUniverseData extends BasicUniverseDataConnector{constructor(){super();he(this,"liveIntervalHandle");he(this,"timeFinders",[]);he(this,"videoCache",new StoreCache({capacity:50}));this.timeChangeListeners.push(this.onTimeChange.bind(this)),this.onTimeChange("live")}subscribeToBitset(n,r,o){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToPath(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=new WorkerWrapper;let g=0,l=0;const u=this.subscribeTelemetry(n,r,"localization",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}const d=this.getNearestPoint(c),B=d[1],Q=d[0],f=this.time==="live",p=f?new Date().getTime():this.time.getTime(),U=!f&&l-p>2e3;if(!((Q<=l||Q<=g)&&!U)){if(g=Q,B.url){try{const E=await fetch(B.url).then(M=>M.json());E.path&&(U||Q>l)&&(o(E.path),l=Q)}catch(E){console.error("Failed to fetch path data:",E)}return}else if(B.path&&(U||Q>l)){o(B.path),l=Q;return}}});return()=>{s.terminate(),u()}}onTimeChange(n){n==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(n))}findDataForTime(n){this.timeFinders.forEach(r=>{r(n)})}addFinder(n,r,o,s,g){const l=u=>{const c=g?addYears(u,-1):addSeconds(u,-60),d=g?addMilliseconds(u,1):addSeconds(u,5),B=this.queryStore.moduleQuery({deviceIds:[r]},o,s,c,d,g);if(B===void 0){n(void 0);return}if(B==="too much data"){n("too much data");return}if(B.length===0){n(void 0);return}const Q=B.reduce((f,p)=>f.concat(p.points),[]);if(!Q||Q.length===0){n(void 0);return}if(g){const p=Q[Q.length-1][0],U=Q.filter(E=>E[0]>addSeconds(p,-15).getTime());n(U);return}n(Q)};return this.timeFinders.push(l),l}getNearestPoint(n,r=this.time){const o=r==="live"?addMilliseconds(new Date,1):this.time;let s=n[0][0],g=n[0][1];return n.forEach(l=>{const u=l[0],c=l[1];Math.abs(u-o.getTime())<Math.abs(s-o.getTime())&&(s=u,g=c)}),[s,g]}removeFinder(n){this.timeFinders=this.timeFinders.filter(r=>r!==n)}subscribeTelemetry(n,r,o,s){if(r.sourceType!=="telemetry")throw new Error("Invalid source type");const g=this.addFinder(s,n,r.streamName,o,r.latestDataPoint||!1);return()=>{this.removeFinder(g)}}subscribeToPointCloud(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=new WorkerWrapper$1,g=new WorkerWrapper;let l=()=>{},u=()=>{};return r.streamType==="point cloud"?l=this.subscribeTelemetry(n,r,"point cloud",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}const d=this.getNearestPoint(c)[1];if(typeof d=="string")o(JSON.parse(d));else{const{url:B}=d;s.postMessage({url:B}),s.onmessage=Q=>{Q.data.url===B&&o({worldToLocal:d.worldToLocal,pcd:Q.data.pcd})}}}):r.streamType==="localization"&&(u=this.subscribeTelemetry(n,r,"localization",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}let d=this.getNearestPoint(c)[1];d.url&&(g.postMessage({url:d.url}),g.onmessage=B=>{if(d=B.data.response,d.pointClouds){const{url:Q,worldToLocal:f}=d.pointClouds[0];s.postMessage({url:Q}),s.onmessage=p=>{p.data.url===Q&&o({worldToLocal:f,pcd:p.data.pcd})}}})})),()=>{s.terminate(),g.terminate(),l(),u()}}subscribeToOdometry(n,r,o,s=0){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const g=new WorkerWrapper;let l=0,u=0;const c=this.subscribeTelemetry(n,r,"localization",async d=>{if(d==="too much data"||d===void 0){o(NoData);return}const B=this.getNearestPoint(d),Q=B[0],f=this.time==="live",p=f?new Date().getTime():this.time.getTime(),U=!f&&l-p>2e3;if((Q<=l||Q<=u)&&!U)return;u=Q;let E;if(B[1].url)try{E=(await(await fetch(B[1].url)).json()).odometry}catch(M){console.error("Failed to fetch odometry data:",M)}else E=B[1].odometry;if(s){const W=d.filter(y=>y[0]<=B[0]&&y[0]>=B[0]-s*1e3).map(async y=>{var m,h;if(y[1].url)try{const I=await(await fetch(y[1].url)).json();return[y[0],(m=I.odometry)==null?void 0:m.pose]}catch(T){console.error("Failed to fetch trail odometry data:",T)}return[y[0],(h=y[1].odometry)==null?void 0:h.pose]});try{const y=await Promise.all(W);(U||Q>l)&&(o({worldToLocal:E.worldToLocal,pose:E.pose,trail:y,covariance:[]}),l=Q);return}catch(y){console.error("Failed to process trail data:",y)}}(U||Q>l)&&(o({worldToLocal:E.worldToLocal,pose:E.pose,covariance:[]}),l=Q)});return()=>{g.terminate(),c()}}subscribeToPose(n,r,o){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(n,r,o){if(r.sourceType==="telemetry"){const s=new WorkerWrapper,g=this.subscribeTelemetry(n,r,"json",async l=>{if(l==="too much data"||l===void 0){o(NoData);return}let u=this.getNearestPoint(l)[1];u.startsWith("http")?(s.postMessage({url:u}),s.onmessage=c=>{u=JSON.stringify(c.data.response),o(JSON.parse(u))}):o(JSON.parse(u))});return()=>{s.terminate(),g()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(n,r,o){return this.subscribeToJson(n,r,o)}subscribeToGridMap(n,r,o){const s={};if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const g=new WorkerWrapper,l=this.subscribeTelemetry(n,r,"localization",async u=>{if(u==="too much data"||u===void 0){o(NoData);return}const c=this.getNearestPoint(u)[1];if(c.url){if(s[c.url]){o(s[c.url]);return}g.postMessage({url:c.url}),g.onmessage=async d=>{const B=d.data.response.map;if(B){const Q={width:B.width,height:B.height,worldToLocal:B.worldToLocal,resolution:B.resolution,origin:B.origin,url:B.url};s[c.url]=JSON.parse(JSON.stringify(Q)),o(Q)}}}});return()=>{g.terminate(),l()}}subscribeToVideo(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"video",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}const g=this.getNearestPoint(s)[1],{url:l}=g,u=this.videoCache.get(l,async()=>new Promise(c=>{const d=document.createElement("video");d.src=l,d.onload=()=>{}}));if(u){const c=document.createElement("canvas");c.width=u.videoWidth,c.height=u.videoHeight;const d=c.getContext("2d");d&&d.drawImage(u,0,0),o(c)}})}subscribeToTransformTree(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"transform tree",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(this.getNearestPoint(s)[1])})}subscribeToLocation(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=this.subscribeToJson(n,r,o),g=this.subscribeTelemetry(n,r,"location",async l=>{if(l==="too much data"||l===void 0){o(NoData);return}const u=this.getNearestPoint(l)[1];o(u)});return()=>{s(),g()}}subscribeToJson(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"json",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}let g=this.getNearestPoint(s)[1];g.startsWith("http")&&(g=await(await fetch(g)).text()),o(JSON.parse(g))})}subscribeToText(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"text",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(this.getNearestPoint(s)[1])})}subscribeToNumeric(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"numeric",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(s)})}subscribeToNumericSet(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"numeric set",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(s)})}subscribeToImage(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"image",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}const g=this.getNearestPoint(s)[1].url,l=new Image;l.src=g,l.onload=()=>{const u=document.createElement("canvas");u.width=l.width,u.height=l.height;const c=u.getContext("2d");c&&(c.drawImage(l,0,0),o(u))}})}}exports.Account=Account,exports.App=App,exports.AudioPlayer=AudioPlayer,exports.Authentication=Authentication,exports.BasicUniverseDataConnector=BasicUniverseDataConnector,exports.BinaryRequestDataChannel=BinaryRequestDataChannel,exports.CaptureStream=CaptureStream,exports.DataChannel=DataChannel,exports.Device=Device,exports.FailedData=FailedData,exports.Fleet=Fleet,exports.KeyValue=KeyValue,exports.LiveUniverseData=LiveUniverseData,exports.LoadingData=LoadingData,exports.Manipulator=Manipulator,exports.NoData=NoData,exports.PeerDevice=PeerDevice,exports.QueryStore=QueryStore,exports.Role=Role,exports.RtcClient=distExports.RtcClient,exports.RtcClientV1=distExports.RtcClientV1,exports.RtcSignalingClient=distExports.RtcSignalingClient,exports.SessionType=SessionTypeConstants,exports.TelemetryUniverseData=TelemetryUniverseData,exports.TextRequestDataChannel=TextRequestDataChannel,exports.User=User,exports.accessLevels=accessLevels,exports.administrator=administrator,exports.aggregateByDateFunctions=aggregateByDateFunctions,exports.aggregateFunctionMap=aggregateFunctionMap,exports.aggregateFunctions=aggregateFunctions,exports.aggregateLevels=aggregateLevels,exports.annotationTypes=annotationTypes,exports.createRtcStreamMessage=distExports.createRtcStreamMessage,exports.defined=defined$1,exports.definedAndNotNull=definedAndNotNull,exports.eventTypes=eventTypes,exports.formatTimeFrameText=formatTimeFrameText,exports.getAverage=getAverage,exports.getCount=getCount,exports.getMax=getMax,exports.getMin=getMin,exports.getStandardDeviation=getStandardDeviation,exports.getSum=getSum,exports.getVariance=getVariance,exports.healthStatuses=healthStatuses,exports.interventionTypes=interventionTypes,exports.operator=operator,exports.severities=severities,exports.timeout=timeout,exports.vailableAggregationIntervals=vailableAggregationIntervals,exports.videoMimeTypes=videoMimeTypes,exports.viewer=viewer,exports.whichFormantApiUrl=whichFormantApiUrl,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|
|
102
|
+
`)},goog.string.normalizeWhitespace=function(e){return e.replace(/\xa0|\s/g," ")},goog.string.normalizeSpaces=function(e){return e.replace(/\xa0|[ \t]+/g," ")},goog.string.collapseBreakingSpaces=function(e){return e.replace(/[\t\r\n ]+/g," ").replace(/^[\t\r\n ]+|[\t\r\n ]+$/g,"")},goog.string.trim=goog.string.internal.trim,goog.string.trimLeft=function(e){return e.replace(/^[\s\xa0]+/,"")},goog.string.trimRight=function(e){return e.replace(/[\s\xa0]+$/,"")},goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare,goog.string.numberAwareCompare_=function(e,t,n){if(e==t)return 0;if(!e)return-1;if(!t)return 1;for(var r=e.toLowerCase().match(n),o=t.toLowerCase().match(n),s=Math.min(r.length,o.length),g=0;g<s;g++){n=r[g];var l=o[g];if(n!=l)return e=parseInt(n,10),!isNaN(e)&&(t=parseInt(l,10),!isNaN(t)&&e-t)?e-t:n<l?-1:1}return r.length!=o.length?r.length-o.length:e<t?-1:1},goog.string.intAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\D+/g)},goog.string.floatAwareCompare=function(e,t){return goog.string.numberAwareCompare_(e,t,/\d+|\.\d+|\D+/g)},goog.string.numerateCompare=goog.string.floatAwareCompare,goog.string.urlEncode=function(e){return encodeURIComponent(String(e))},goog.string.urlDecode=function(e){return decodeURIComponent(e.replace(/\+/g," "))},goog.string.newLineToBr=goog.string.internal.newLineToBr,goog.string.htmlEscape=function(e,t){return e=goog.string.internal.htmlEscape(e,t),goog.string.DETECT_DOUBLE_ESCAPING&&(e=e.replace(goog.string.E_RE_,"e")),e},goog.string.E_RE_=/e/g,goog.string.unescapeEntities=function(e){return goog.string.contains(e,"&")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&"document"in goog.global?goog.string.unescapeEntitiesUsingDom_(e):goog.string.unescapePureXmlEntities_(e):e},goog.string.unescapeEntitiesWithDocument=function(e,t){return goog.string.contains(e,"&")?goog.string.unescapeEntitiesUsingDom_(e,t):e},goog.string.unescapeEntitiesUsingDom_=function(e,t){var n={"&":"&","<":"<",">":">",""":'"'},r=t?t.createElement("div"):goog.global.document.createElement("div");return e.replace(goog.string.HTML_ENTITY_PATTERN_,function(o,s){var g=n[o];return g||(s.charAt(0)=="#"&&(s=+("0"+s.substr(1)),isNaN(s)||(g=String.fromCharCode(s))),g||(goog.dom.safe.setInnerHtml(r,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from("Single HTML entity."),o+" ")),g=r.firstChild.nodeValue.slice(0,-1)),n[o]=g)})},goog.string.unescapePureXmlEntities_=function(e){return e.replace(/&([^;]+);/g,function(t,n){switch(n){case"amp":return"&";case"lt":return"<";case"gt":return">";case"quot":return'"';default:return n.charAt(0)!="#"||(n=+("0"+n.substr(1)),isNaN(n))?t:String.fromCharCode(n)}})},goog.string.HTML_ENTITY_PATTERN_=/&([^;\s<&]+);?/g,goog.string.whitespaceEscape=function(e,t){return goog.string.newLineToBr(e.replace(/ /g,"  "),t)},goog.string.preserveSpaces=function(e){return e.replace(/(^|[\n ]) /g,"$1"+goog.string.Unicode.NBSP)},goog.string.stripQuotes=function(e,t){for(var n=t.length,r=0;r<n;r++){var o=n==1?t:t.charAt(r);if(e.charAt(0)==o&&e.charAt(e.length-1)==o)return e.substring(1,e.length-1)}return e},goog.string.truncate=function(e,t,n){return n&&(e=goog.string.unescapeEntities(e)),e.length>t&&(e=e.substring(0,t-3)+"..."),n&&(e=goog.string.htmlEscape(e)),e},goog.string.truncateMiddle=function(e,t,n,r){if(n&&(e=goog.string.unescapeEntities(e)),r&&e.length>t){r>t&&(r=t);var o=e.length-r;e=e.substring(0,t-r)+"..."+e.substring(o)}else e.length>t&&(r=Math.floor(t/2),o=e.length-r,e=e.substring(0,r+t%2)+"..."+e.substring(o));return n&&(e=goog.string.htmlEscape(e)),e},goog.string.specialEscapeChars_={"\0":"\\0","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r"," ":"\\t","\v":"\\x0B",'"':'\\"',"\\":"\\\\","<":"\\u003C"},goog.string.jsEscapeCache_={"'":"\\'"},goog.string.quote=function(e){e=String(e);for(var t=['"'],n=0;n<e.length;n++){var r=e.charAt(n),o=r.charCodeAt(0);t[n+1]=goog.string.specialEscapeChars_[r]||(31<o&&127>o?r:goog.string.escapeChar(r))}return t.push('"'),t.join("")},goog.string.escapeString=function(e){for(var t=[],n=0;n<e.length;n++)t[n]=goog.string.escapeChar(e.charAt(n));return t.join("")},goog.string.escapeChar=function(e){if(e in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[e];if(e in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[e]=goog.string.specialEscapeChars_[e];var t=e.charCodeAt(0);if(31<t&&127>t)var n=e;else 256>t?(n="\\x",(16>t||256<t)&&(n+="0")):(n="\\u",4096>t&&(n+="0")),n+=t.toString(16).toUpperCase();return goog.string.jsEscapeCache_[e]=n},goog.string.contains=goog.string.internal.contains,goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains,goog.string.countOf=function(e,t){return e&&t?e.split(t).length-1:0},goog.string.removeAt=function(e,t,n){var r=e;return 0<=t&&t<e.length&&0<n&&(r=e.substr(0,t)+e.substr(t+n,e.length-t-n)),r},goog.string.remove=function(e,t){return e.replace(t,"")},goog.string.removeAll=function(e,t){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,"")},goog.string.replaceAll=function(e,t,n){return t=new RegExp(goog.string.regExpEscape(t),"g"),e.replace(t,n.replace(/\$/g,"$$$$"))},goog.string.regExpEscape=function(e){return String(e).replace(/([-()\[\]{}+?*.$\^|,:#<!\\])/g,"\\$1").replace(/\x08/g,"\\x08")},goog.string.repeat=String.prototype.repeat?function(e,t){return e.repeat(t)}:function(e,t){return Array(t+1).join(e)},goog.string.padNumber=function(e,t,n){return e=n!==void 0?e.toFixed(n):String(e),n=e.indexOf("."),n==-1&&(n=e.length),goog.string.repeat("0",Math.max(0,t-n))+e},goog.string.makeSafe=function(e){return e==null?"":String(e)},goog.string.buildString=function(e){return Array.prototype.join.call(arguments,"")},goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)},goog.string.compareVersions=goog.string.internal.compareVersions,goog.string.hashCode=function(e){for(var t=0,n=0;n<e.length;++n)t=31*t+e.charCodeAt(n)>>>0;return t},goog.string.uniqueStringCounter_=2147483648*Math.random()|0,goog.string.createUniqueString=function(){return"goog_"+goog.string.uniqueStringCounter_++},goog.string.toNumber=function(e){var t=Number(e);return t==0&&goog.string.isEmptyOrWhitespace(e)?NaN:t},goog.string.isLowerCamelCase=function(e){return/^[a-z]+([A-Z][a-z]*)*$/.test(e)},goog.string.isUpperCamelCase=function(e){return/^([A-Z][a-z]*)+$/.test(e)},goog.string.toCamelCase=function(e){return String(e).replace(/\-([a-z])/g,function(t,n){return n.toUpperCase()})},goog.string.toSelectorCase=function(e){return String(e).replace(/([A-Z])/g,"-$1").toLowerCase()},goog.string.toTitleCase=function(e,t){return t=typeof t=="string"?goog.string.regExpEscape(t):"\\s",e.replace(new RegExp("(^"+(t?"|["+t+"]+":"")+")([a-z])","g"),function(n,r,o){return r+o.toUpperCase()})},goog.string.capitalize=function(e){return String(e.charAt(0)).toUpperCase()+String(e.substr(1)).toLowerCase()},goog.string.parseInt=function(e){return isFinite(e)&&(e=String(e)),typeof e=="string"?/^\s*-?0x/i.test(e)?parseInt(e,16):parseInt(e,10):NaN},goog.string.splitLimit=function(e,t,n){e=e.split(t);for(var r=[];0<n&&e.length;)r.push(e.shift()),n--;return e.length&&r.push(e.join(t)),r},goog.string.lastComponent=function(e,t){if(t)typeof t=="string"&&(t=[t]);else return e;for(var n=-1,r=0;r<t.length;r++)if(t[r]!=""){var o=e.lastIndexOf(t[r]);o>n&&(n=o)}return n==-1?e:e.slice(n+1)},goog.string.editDistance=function(e,t){var n=[],r=[];if(e==t)return 0;if(!e.length||!t.length)return Math.max(e.length,t.length);for(var o=0;o<t.length+1;o++)n[o]=o;for(o=0;o<e.length;o++){r[0]=o+1;for(var s=0;s<t.length;s++)r[s+1]=Math.min(r[s]+1,n[s+1]+1,n[s]+ +(e[o]!=t[s]));for(s=0;s<n.length;s++)n[s]=r[s]}return r[t.length]},goog.labs.userAgent.engine={},goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent("Presto")},goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent("Trident")||goog.labs.userAgent.util.matchUserAgent("MSIE")},goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent("Edge")},goog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("WebKit")&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent("Gecko")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()},goog.labs.userAgent.engine.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent();if(e){e=goog.labs.userAgent.util.extractVersionTuples(e);var t=goog.labs.userAgent.engine.getEngineTuple_(e);if(t)return t[0]=="Gecko"?goog.labs.userAgent.engine.getVersionForKey_(e,"Firefox"):t[1];e=e[0];var n;if(e&&(n=e[2])&&(n=/Trident\/([^\s;]+)/.exec(n)))return n[1]}return""},goog.labs.userAgent.engine.getEngineTuple_=function(e){if(!goog.labs.userAgent.engine.isEdge())return e[1];for(var t=0;t<e.length;t++){var n=e[t];if(n[0]=="Edge")return n}},goog.labs.userAgent.engine.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),e)},goog.labs.userAgent.engine.getVersionForKey_=function(e,t){return(e=goog.array.find(e,function(n){return t==n[0]}))&&e[1]||""},goog.labs.userAgent.platform={},goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent("Android")},goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent("iPod")},goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent("iPhone")&&!goog.labs.userAgent.util.matchUserAgent("iPod")&&!goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent("iPad")},goog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()},goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent("Macintosh")},goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent("Linux")},goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent("Windows")},goog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent("CrOS")},goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent("CrKey")},goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase("KaiOS")},goog.labs.userAgent.platform.getVersion=function(){var e=goog.labs.userAgent.util.getUserAgent(),t="";return goog.labs.userAgent.platform.isWindows()?(t=/Windows (?:NT|Phone) ([0-9.]+)/,t=(e=t.exec(e))?e[1]:"0.0"):goog.labs.userAgent.platform.isIos()?(t=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,t=(e=t.exec(e))&&e[1].replace(/_/g,".")):goog.labs.userAgent.platform.isMacintosh()?(t=/Mac OS X ([0-9_.]+)/,t=(e=t.exec(e))?e[1].replace(/_/g,"."):"10"):goog.labs.userAgent.platform.isKaiOS()?(t=/(?:KaiOS)\/(\S+)/i,t=(e=t.exec(e))&&e[1]):goog.labs.userAgent.platform.isAndroid()?(t=/Android\s+([^\);]+)(\)|;)/,t=(e=t.exec(e))&&e[1]):goog.labs.userAgent.platform.isChromeOS()&&(t=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,t=(e=t.exec(e))&&e[1]),t||""},goog.labs.userAgent.platform.isVersionOrHigher=function(e){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),e)},goog.reflect={},goog.reflect.object=function(e,t){return t},goog.reflect.objectProperty=function(e,t){return e},goog.reflect.sinkValue=function(e){return goog.reflect.sinkValue[" "](e),e},goog.reflect.sinkValue[" "]=goog.nullFunction,goog.reflect.canAccessProperty=function(e,t){try{return goog.reflect.sinkValue(e[t]),!0}catch{}return!1},goog.reflect.cache=function(e,t,n,r){return r=r?r(t):t,Object.prototype.hasOwnProperty.call(e,r)?e[r]:e[r]=n(t)},goog.userAgent={},goog.userAgent.ASSUME_IE=!1,goog.userAgent.ASSUME_EDGE=!1,goog.userAgent.ASSUME_GECKO=!1,goog.userAgent.ASSUME_WEBKIT=!1,goog.userAgent.ASSUME_MOBILE_WEBKIT=!1,goog.userAgent.ASSUME_OPERA=!1,goog.userAgent.ASSUME_ANY_VERSION=!1,goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA,goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()},goog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null},goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()},goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera(),goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE(),goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge(),goog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE,goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko(),goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit(),goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent("Mobile")},goog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_(),goog.userAgent.SAFARI=goog.userAgent.WEBKIT,goog.userAgent.determinePlatform_=function(){var e=goog.userAgent.getNavigatorTyped();return e&&e.platform||""},goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_(),goog.userAgent.ASSUME_MAC=!1,goog.userAgent.ASSUME_WINDOWS=!1,goog.userAgent.ASSUME_LINUX=!1,goog.userAgent.ASSUME_X11=!1,goog.userAgent.ASSUME_ANDROID=!1,goog.userAgent.ASSUME_IPHONE=!1,goog.userAgent.ASSUME_IPAD=!1,goog.userAgent.ASSUME_IPOD=!1,goog.userAgent.ASSUME_KAIOS=!1,goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD,goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh(),goog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows(),goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()},goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_(),goog.userAgent.isX11_=function(){var e=goog.userAgent.getNavigatorTyped();return!!e&&goog.string.contains(e.appVersion||"","X11")},goog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_(),goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid(),goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone(),goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod(),goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos(),goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS(),goog.userAgent.determineVersion_=function(){var e="",t=goog.userAgent.getVersionRegexResult_();return t&&(e=t?t[1]:""),goog.userAgent.IE&&(t=goog.userAgent.getDocumentMode_(),t!=null&&t>parseFloat(e))?String(t):e},goog.userAgent.getVersionRegexResult_=function(){var e=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\);]+)(\)|;)/.exec(e);if(goog.userAgent.EDGE)return/Edge\/([\d\.]+)/.exec(e);if(goog.userAgent.IE)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(e);if(goog.userAgent.WEBKIT)return/WebKit\/(\S+)/.exec(e);if(goog.userAgent.OPERA)return/(?:Version)[ \/]?(\S+)/.exec(e)},goog.userAgent.getDocumentMode_=function(){var e=goog.global.document;return e?e.documentMode:void 0},goog.userAgent.VERSION=goog.userAgent.determineVersion_(),goog.userAgent.compare=function(e,t){return goog.string.compareVersions(e,t)},goog.userAgent.isVersionOrHigherCache_={},goog.userAgent.isVersionOrHigher=function(e){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,e,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,e)})},goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher,goog.userAgent.isDocumentModeOrHigher=function(e){return Number(goog.userAgent.DOCUMENT_MODE)>=e},goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher,goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE){var e=goog.userAgent.getDocumentMode_();return e||parseInt(goog.userAgent.VERSION,10)||void 0}}(),goog.userAgent.product={},goog.userAgent.product.ASSUME_FIREFOX=!1,goog.userAgent.product.ASSUME_IPHONE=!1,goog.userAgent.product.ASSUME_IPAD=!1,goog.userAgent.product.ASSUME_ANDROID=!1,goog.userAgent.product.ASSUME_CHROME=!1,goog.userAgent.product.ASSUME_SAFARI=!1,goog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI,goog.userAgent.product.OPERA=goog.userAgent.OPERA,goog.userAgent.product.IE=goog.userAgent.IE,goog.userAgent.product.EDGE=goog.userAgent.EDGE,goog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox(),goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()},goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_(),goog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad(),goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser(),goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome(),goog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()},goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_(),goog.crypt.base64={},goog.crypt.base64.DEFAULT_ALPHABET_COMMON_="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"+/=",goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+"-_.",goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4},goog.crypt.base64.paddingChars_="=.",goog.crypt.base64.isPadding_=function(e){return goog.string.contains(goog.crypt.base64.paddingChars_,e)},goog.crypt.base64.byteToCharMaps_={},goog.crypt.base64.charToByteMap_=null,goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA,goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||typeof goog.global.btoa=="function",goog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&typeof goog.global.atob=="function",goog.crypt.base64.encodeByteArray=function(e,t){goog.asserts.assert(goog.isArrayLike(e),"encodeByteArray takes an array as a parameter"),t===void 0&&(t=goog.crypt.base64.Alphabet.DEFAULT),goog.crypt.base64.init_(),t=goog.crypt.base64.byteToCharMaps_[t];for(var n=[],r=0;r<e.length;r+=3){var o=e[r],s=r+1<e.length,g=s?e[r+1]:0,l=r+2<e.length,u=l?e[r+2]:0,c=o>>2;o=(o&3)<<4|g>>4,g=(g&15)<<2|u>>6,u&=63,l||(u=64,s||(g=64)),n.push(t[c],t[o],t[g]||"",t[u]||"")}return n.join("")},goog.crypt.base64.encodeString=function(e,t){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!t?goog.global.btoa(e):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(e),t)},goog.crypt.base64.decodeString=function(e,t){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!t)return goog.global.atob(e);var n="";return goog.crypt.base64.decodeStringInternal_(e,function(r){n+=String.fromCharCode(r)}),n},goog.crypt.base64.decodeStringToByteArray=function(e,t){var n=[];return goog.crypt.base64.decodeStringInternal_(e,function(r){n.push(r)}),n},goog.crypt.base64.decodeStringToUint8Array=function(e){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher("10"),"Browser does not support typed arrays");var t=e.length,n=3*t/4;n%3?n=Math.floor(n):goog.crypt.base64.isPadding_(e[t-1])&&(n=goog.crypt.base64.isPadding_(e[t-2])?n-2:n-1);var r=new Uint8Array(n),o=0;return goog.crypt.base64.decodeStringInternal_(e,function(s){r[o++]=s}),r.subarray(0,o)},goog.crypt.base64.decodeStringInternal_=function(e,t){function n(u){for(;r<e.length;){var c=e.charAt(r++),d=goog.crypt.base64.charToByteMap_[c];if(d!=null)return d;if(!goog.string.isEmptyOrWhitespace(c))throw Error("Unknown base64 encoding at char: "+c)}return u}goog.crypt.base64.init_();for(var r=0;;){var o=n(-1),s=n(0),g=n(64),l=n(64);if(l===64&&o===-1)break;t(o<<2|s>>4),g!=64&&(t(s<<4&240|g>>2),l!=64&&t(g<<6&192|l))}},goog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var e=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(""),t=["+/=","+/","-_=","-_.","-_"],n=0;5>n;n++){var r=e.concat(t[n].split(""));goog.crypt.base64.byteToCharMaps_[n]=r;for(var o=0;o<r.length;o++){var s=r[o],g=goog.crypt.base64.charToByteMap_[s];g===void 0?goog.crypt.base64.charToByteMap_[s]=o:goog.asserts.assert(g===o)}}}},jspb.utils={},jspb.utils.split64Low=0,jspb.utils.split64High=0,jspb.utils.splitUint64=function(e){var t=e>>>0;e=Math.floor((e-t)/jspb.BinaryConstants.TWO_TO_32)>>>0,jspb.utils.split64Low=t,jspb.utils.split64High=e},jspb.utils.splitInt64=function(e){var t=0>e;e=Math.abs(e);var n=e>>>0;e=Math.floor((e-n)/jspb.BinaryConstants.TWO_TO_32),e>>>=0,t&&(e=~e>>>0,n=(~n>>>0)+1,4294967295<n&&(n=0,e++,4294967295<e&&(e=0))),jspb.utils.split64Low=n,jspb.utils.split64High=e},jspb.utils.splitZigzag64=function(e){var t=0>e;e=2*Math.abs(e),jspb.utils.splitUint64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;t&&(e==0?n==0?n=e=4294967295:(n--,e=4294967295):e--),jspb.utils.split64Low=e,jspb.utils.split64High=n},jspb.utils.splitFloat32=function(e){var t=0>e?1:0;if(e=t?-e:e,e===0)0<1/e?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(e))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(e>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|2139095040)>>>0;else if(e<jspb.BinaryConstants.FLOAT32_MIN)e=Math.round(e/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|e)>>>0;else{var n=Math.floor(Math.log(e)/Math.LN2);e*=Math.pow(2,-n),e=Math.round(e*jspb.BinaryConstants.TWO_TO_23),16777216<=e&&++n,jspb.utils.split64High=0,jspb.utils.split64Low=(t<<31|n+127<<23|e&8388607)>>>0}},jspb.utils.splitFloat64=function(e){var t=0>e?1:0;if(e=t?-e:e,e===0)jspb.utils.split64High=0<1/e?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(e))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(e>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(t<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(e<jspb.BinaryConstants.FLOAT64_MIN){var n=e/Math.pow(2,-1074);e=n/jspb.BinaryConstants.TWO_TO_32,jspb.utils.split64High=(t<<31|e)>>>0,jspb.utils.split64Low=n>>>0}else{n=e;var r=0;if(2<=n)for(;2<=n&&1023>r;)r++,n/=2;else for(;1>n&&-1022<r;)n*=2,r--;n=e*Math.pow(2,-r),e=n*jspb.BinaryConstants.TWO_TO_20&1048575,n=n*jspb.BinaryConstants.TWO_TO_52>>>0,jspb.utils.split64High=(t<<31|r+1023<<20|e)>>>0,jspb.utils.split64Low=n}},jspb.utils.splitHash64=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),s=e.charCodeAt(4),g=e.charCodeAt(5),l=e.charCodeAt(6);e=e.charCodeAt(7),jspb.utils.split64Low=t+(n<<8)+(r<<16)+(o<<24)>>>0,jspb.utils.split64High=s+(g<<8)+(l<<16)+(e<<24)>>>0},jspb.utils.joinUint64=function(e,t){return t*jspb.BinaryConstants.TWO_TO_32+(e>>>0)},jspb.utils.joinInt64=function(e,t){var n=t&2147483648;return n&&(e=~e+1>>>0,t=~t>>>0,e==0&&(t=t+1>>>0)),e=jspb.utils.joinUint64(e,t),n?-e:e},jspb.utils.toZigzag64=function(e,t,n){var r=t>>31;return n(e<<1^r,(t<<1|e>>>31)^r)},jspb.utils.joinZigzag64=function(e,t){return jspb.utils.fromZigzag64(e,t,jspb.utils.joinInt64)},jspb.utils.fromZigzag64=function(e,t,n){var r=-(e&1);return n((e>>>1|t<<31)^r,t>>>1^r)},jspb.utils.joinFloat32=function(e,t){t=2*(e>>31)+1;var n=e>>>23&255;return e&=8388607,n==255?e?NaN:1/0*t:n==0?t*Math.pow(2,-149)*e:t*Math.pow(2,n-150)*(e+Math.pow(2,23))},jspb.utils.joinFloat64=function(e,t){var n=2*(t>>31)+1,r=t>>>20&2047;return e=jspb.BinaryConstants.TWO_TO_32*(t&1048575)+e,r==2047?e?NaN:1/0*n:r==0?n*Math.pow(2,-1074)*e:n*Math.pow(2,r-1075)*(e+jspb.BinaryConstants.TWO_TO_52)},jspb.utils.joinHash64=function(e,t){return String.fromCharCode(e>>>0&255,e>>>8&255,e>>>16&255,e>>>24&255,t>>>0&255,t>>>8&255,t>>>16&255,t>>>24&255)},jspb.utils.DIGITS="0123456789abcdef".split(""),jspb.utils.ZERO_CHAR_CODE_=48,jspb.utils.A_CHAR_CODE_=97,jspb.utils.joinUnsignedDecimalString=function(e,t){function n(o,s){return o=o?String(o):"",s?"0000000".slice(o.length)+o:o}if(2097151>=t)return""+jspb.utils.joinUint64(e,t);var r=(e>>>24|t<<8)>>>0&16777215;return t=t>>16&65535,e=(e&16777215)+6777216*r+6710656*t,r+=8147497*t,t*=2,1e7<=e&&(r+=Math.floor(e/1e7),e%=1e7),1e7<=r&&(t+=Math.floor(r/1e7),r%=1e7),n(t,0)+n(r,t)+n(e,1)},jspb.utils.joinSignedDecimalString=function(e,t){var n=t&2147483648;return n&&(e=~e+1>>>0,t=~t+(e==0?1:0)>>>0),e=jspb.utils.joinUnsignedDecimalString(e,t),n?"-"+e:e},jspb.utils.hash64ToDecimalString=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;return t?jspb.utils.joinSignedDecimalString(e,n):jspb.utils.joinUnsignedDecimalString(e,n)},jspb.utils.hash64ArrayToDecimalStrings=function(e,t){for(var n=Array(e.length),r=0;r<e.length;r++)n[r]=jspb.utils.hash64ToDecimalString(e[r],t);return n},jspb.utils.decimalStringToHash64=function(e){function t(g,l){for(var u=0;8>u&&(g!==1||0<l);u++)l=g*o[u]+l,o[u]=l&255,l>>>=8}function n(){for(var g=0;8>g;g++)o[g]=~o[g]&255}jspb.asserts.assert(0<e.length);var r=!1;e[0]==="-"&&(r=!0,e=e.slice(1));for(var o=[0,0,0,0,0,0,0,0],s=0;s<e.length;s++)t(10,e.charCodeAt(s)-jspb.utils.ZERO_CHAR_CODE_);return r&&(n(),t(1,1)),goog.crypt.byteArrayToString(o)},jspb.utils.splitDecimalString=function(e){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e))},jspb.utils.toHexDigit_=function(e){return String.fromCharCode(10>e?jspb.utils.ZERO_CHAR_CODE_+e:jspb.utils.A_CHAR_CODE_-10+e)},jspb.utils.fromHexCharCode_=function(e){return e>=jspb.utils.A_CHAR_CODE_?e-jspb.utils.A_CHAR_CODE_+10:e-jspb.utils.ZERO_CHAR_CODE_},jspb.utils.hash64ToHexString=function(e){var t=Array(18);t[0]="0",t[1]="x";for(var n=0;8>n;n++){var r=e.charCodeAt(7-n);t[2*n+2]=jspb.utils.toHexDigit_(r>>4),t[2*n+3]=jspb.utils.toHexDigit_(r&15)}return t.join("")},jspb.utils.hexStringToHash64=function(e){e=e.toLowerCase(),jspb.asserts.assert(e.length==18),jspb.asserts.assert(e[0]=="0"),jspb.asserts.assert(e[1]=="x");for(var t="",n=0;8>n;n++){var r=jspb.utils.fromHexCharCode_(e.charCodeAt(2*n+2)),o=jspb.utils.fromHexCharCode_(e.charCodeAt(2*n+3));t=String.fromCharCode(16*r+o)+t}return t},jspb.utils.hash64ToNumber=function(e,t){jspb.utils.splitHash64(e),e=jspb.utils.split64Low;var n=jspb.utils.split64High;return t?jspb.utils.joinInt64(e,n):jspb.utils.joinUint64(e,n)},jspb.utils.numberToHash64=function(e){return jspb.utils.splitInt64(e),jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.utils.countVarints=function(e,t,n){for(var r=0,o=t;o<n;o++)r+=e[o]>>7;return n-t-r},jspb.utils.countVarintFields=function(e,t,n,r){var o=0;if(r=8*r+jspb.BinaryConstants.WireType.VARINT,128>r)for(;t<n&&e[t++]==r;)for(o++;;){var s=e[t++];if(!(s&128))break}else for(;t<n;){for(s=r;128<s;){if(e[t]!=(s&127|128))return o;t++,s>>=7}if(e[t++]!=s)break;for(o++;s=e[t++],(s&128)!=0;);}return o},jspb.utils.countFixedFields_=function(e,t,n,r,o){var s=0;if(128>r)for(;t<n&&e[t++]==r;)s++,t+=o;else for(;t<n;){for(var g=r;128<g;){if(e[t++]!=(g&127|128))return s;g>>=7}if(e[t++]!=g)break;s++,t+=o}return s},jspb.utils.countFixed32Fields=function(e,t,n,r){return jspb.utils.countFixedFields_(e,t,n,8*r+jspb.BinaryConstants.WireType.FIXED32,4)},jspb.utils.countFixed64Fields=function(e,t,n,r){return jspb.utils.countFixedFields_(e,t,n,8*r+jspb.BinaryConstants.WireType.FIXED64,8)},jspb.utils.countDelimitedFields=function(e,t,n,r){var o=0;for(r=8*r+jspb.BinaryConstants.WireType.DELIMITED;t<n;){for(var s=r;128<s;){if(e[t++]!=(s&127|128))return o;s>>=7}if(e[t++]!=s)break;o++;for(var g=0,l=1;s=e[t++],g+=(s&127)*l,l*=128,(s&128)!=0;);t+=g}return o},jspb.utils.debugBytesToTextFormat=function(e){var t='"';if(e){e=jspb.utils.byteSourceToUint8Array(e);for(var n=0;n<e.length;n++)t+="\\x",16>e[n]&&(t+="0"),t+=e[n].toString(16)}return t+'"'},jspb.utils.debugScalarToTextFormat=function(e){return typeof e=="string"?goog.string.quote(e):e.toString()},jspb.utils.stringToByteArray=function(e){for(var t=new Uint8Array(e.length),n=0;n<e.length;n++){var r=e.charCodeAt(n);if(255<r)throw Error("Conversion error: string contains codepoint outside of byte range");t[n]=r}return t},jspb.utils.byteSourceToUint8Array=function(e){return e.constructor===Uint8Array?e:e.constructor===ArrayBuffer||e.constructor===Array?new Uint8Array(e):e.constructor===String?goog.crypt.base64.decodeStringToUint8Array(e):e instanceof Uint8Array?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):(jspb.asserts.fail("Type not convertible to Uint8Array."),new Uint8Array(0))},jspb.BinaryDecoder=function(e,t,n){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1,e&&this.setBlock(e,t,n)},jspb.BinaryDecoder.instanceCache_=[],jspb.BinaryDecoder.alloc=function(e,t,n){if(jspb.BinaryDecoder.instanceCache_.length){var r=jspb.BinaryDecoder.instanceCache_.pop();return e&&r.setBlock(e,t,n),r}return new jspb.BinaryDecoder(e,t,n)},jspb.BinaryDecoder.prototype.free=function(){this.clear(),100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)},jspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)},jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null,this.cursor_=this.end_=this.start_=0,this.error_=!1},jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_},jspb.BinaryDecoder.prototype.setBlock=function(e,t,n){this.bytes_=jspb.utils.byteSourceToUint8Array(e),this.start_=t!==void 0?t:0,this.end_=n!==void 0?this.start_+n:this.bytes_.length,this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_},jspb.BinaryDecoder.prototype.setEnd=function(e){this.end_=e},jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_},jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_},jspb.BinaryDecoder.prototype.setCursor=function(e){this.cursor_=e},jspb.BinaryDecoder.prototype.advance=function(e){this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_)},jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_},jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_},jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_},jspb.BinaryDecoder.prototype.readSplitVarint64=function(e){for(var t=128,n=0,r=0,o=0;4>o&&128<=t;o++)t=this.bytes_[this.cursor_++],n|=(t&127)<<7*o;if(128<=t&&(t=this.bytes_[this.cursor_++],n|=(t&127)<<28,r|=(t&127)>>4),128<=t)for(o=0;5>o&&128<=t;o++)t=this.bytes_[this.cursor_++],r|=(t&127)<<7*o+3;if(128>t)return e(n>>>0,r>>>0);jspb.asserts.fail("Failed to read varint, encoding is invalid."),this.error_=!0},jspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(e){return this.readSplitVarint64(function(t,n){return jspb.utils.fromZigzag64(t,n,e)})},jspb.BinaryDecoder.prototype.readSplitFixed64=function(e){var t=this.bytes_,n=this.cursor_;this.cursor_+=8;for(var r=0,o=0,s=n+7;s>=n;s--)r=r<<8|t[s],o=o<<8|t[s+4];return e(r,o)},jspb.BinaryDecoder.prototype.skipVarint=function(){for(;this.bytes_[this.cursor_]&128;)this.cursor_++;this.cursor_++},jspb.BinaryDecoder.prototype.unskipVarint=function(e){for(;128<e;)this.cursor_--,e>>>=7;this.cursor_--},jspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var e=this.bytes_,t=e[this.cursor_+0],n=t&127;return 128>t?(this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+1],n|=(t&127)<<7,128>t?(this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+2],n|=(t&127)<<14,128>t?(this.cursor_+=3,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+3],n|=(t&127)<<21,128>t?(this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),n):(t=e[this.cursor_+4],n|=(t&15)<<28,128>t?(this.cursor_+=5,jspb.asserts.assert(this.cursor_<=this.end_),n>>>0):(this.cursor_+=5,128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&128<=e[this.cursor_++]&&jspb.asserts.assert(!1),jspb.asserts.assert(this.cursor_<=this.end_),n)))))},jspb.BinaryDecoder.prototype.readSignedVarint32=function(){return~~this.readUnsignedVarint32()},jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()},jspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()},jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var e=this.readUnsignedVarint32();return e>>>1^-(e&1)},jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)},jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)},jspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)},jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)},jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)},jspb.BinaryDecoder.prototype.readUint8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e},jspb.BinaryDecoder.prototype.readUint16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8},jspb.BinaryDecoder.prototype.readUint32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],n=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8|n<<16|r<<24)>>>0},jspb.BinaryDecoder.prototype.readUint64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUint64(e,t)},jspb.BinaryDecoder.prototype.readUint64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinUnsignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readInt8=function(){var e=this.bytes_[this.cursor_+0];return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),e<<24>>24},jspb.BinaryDecoder.prototype.readInt16=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1];return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),(e<<0|t<<8)<<16>>16},jspb.BinaryDecoder.prototype.readInt32=function(){var e=this.bytes_[this.cursor_+0],t=this.bytes_[this.cursor_+1],n=this.bytes_[this.cursor_+2],r=this.bytes_[this.cursor_+3];return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=this.end_),e<<0|t<<8|n<<16|r<<24},jspb.BinaryDecoder.prototype.readInt64=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinInt64(e,t)},jspb.BinaryDecoder.prototype.readInt64String=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinSignedDecimalString(e,t)},jspb.BinaryDecoder.prototype.readFloat=function(){var e=this.readUint32();return jspb.utils.joinFloat32(e,0)},jspb.BinaryDecoder.prototype.readDouble=function(){var e=this.readUint32(),t=this.readUint32();return jspb.utils.joinFloat64(e,t)},jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]},jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()},jspb.BinaryDecoder.prototype.readString=function(e){var t=this.bytes_,n=this.cursor_;e=n+e;for(var r=[],o="";n<e;){var s=t[n++];if(128>s)r.push(s);else{if(192>s)continue;if(224>s){var g=t[n++];r.push((s&31)<<6|g&63)}else if(240>s){g=t[n++];var l=t[n++];r.push((s&15)<<12|(g&63)<<6|l&63)}else if(248>s){g=t[n++],l=t[n++];var u=t[n++];s=(s&7)<<18|(g&63)<<12|(l&63)<<6|u&63,s-=65536,r.push((s>>10&1023)+55296,(s&1023)+56320)}}8192<=r.length&&(o+=String.fromCharCode.apply(null,r),r.length=0)}return o+=goog.crypt.byteArrayToString(r),this.cursor_=n,o},jspb.BinaryDecoder.prototype.readStringWithLength=function(){var e=this.readUnsignedVarint32();return this.readString(e)},jspb.BinaryDecoder.prototype.readBytes=function(e){if(0>e||this.cursor_+e>this.bytes_.length)return this.error_=!0,jspb.asserts.fail("Invalid byte length!"),new Uint8Array(0);var t=this.bytes_.subarray(this.cursor_,this.cursor_+e);return this.cursor_+=e,jspb.asserts.assert(this.cursor_<=this.end_),t},jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)},jspb.BinaryDecoder.prototype.readFixedHash64=function(){var e=this.bytes_,t=this.cursor_,n=e[t+0],r=e[t+1],o=e[t+2],s=e[t+3],g=e[t+4],l=e[t+5],u=e[t+6];return e=e[t+7],this.cursor_+=8,String.fromCharCode(n,r,o,s,g,l,u,e)},jspb.BinaryReader=function(e,t,n){this.decoder_=jspb.BinaryDecoder.alloc(e,t,n),this.fieldCursor_=this.decoder_.getCursor(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null},jspb.BinaryReader.instanceCache_=[],jspb.BinaryReader.alloc=function(e,t,n){if(jspb.BinaryReader.instanceCache_.length){var r=jspb.BinaryReader.instanceCache_.pop();return e&&r.decoder_.setBlock(e,t,n),r}return new jspb.BinaryReader(e,t,n)},jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc,jspb.BinaryReader.prototype.free=function(){this.decoder_.clear(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID,this.error_=!1,this.readCallbacks_=null,100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)},jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_},jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()},jspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()},jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_},goog.exportProperty(jspb.BinaryReader.prototype,"getFieldNumber",jspb.BinaryReader.prototype.getFieldNumber),jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_},jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED},goog.exportProperty(jspb.BinaryReader.prototype,"isDelimited",jspb.BinaryReader.prototype.isDelimited),jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP},goog.exportProperty(jspb.BinaryReader.prototype,"isEndGroup",jspb.BinaryReader.prototype.isEndGroup),jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()},jspb.BinaryReader.prototype.setBlock=function(e,t,n){this.decoder_.setBlock(e,t,n),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset(),this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER,this.nextWireType_=jspb.BinaryConstants.WireType.INVALID},jspb.BinaryReader.prototype.advance=function(e){this.decoder_.advance(e)},jspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return jspb.asserts.fail("Decoder hit an error"),!1;this.fieldCursor_=this.decoder_.getCursor();var e=this.decoder_.readUnsignedVarint32(),t=e>>>3;return e&=7,e!=jspb.BinaryConstants.WireType.VARINT&&e!=jspb.BinaryConstants.WireType.FIXED32&&e!=jspb.BinaryConstants.WireType.FIXED64&&e!=jspb.BinaryConstants.WireType.DELIMITED&&e!=jspb.BinaryConstants.WireType.START_GROUP&&e!=jspb.BinaryConstants.WireType.END_GROUP?(jspb.asserts.fail("Invalid wire type: %s (at position %s)",e,this.fieldCursor_),this.error_=!0,!1):(this.nextField_=t,this.nextWireType_=e,!0)},goog.exportProperty(jspb.BinaryReader.prototype,"nextField",jspb.BinaryReader.prototype.nextField),jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)},jspb.BinaryReader.prototype.skipMatchingFields=function(){var e=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==e;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()},jspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(jspb.asserts.fail("Invalid wire type for skipVarintField"),this.skipField()):this.decoder_.skipVarint()},jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)jspb.asserts.fail("Invalid wire type for skipDelimitedField"),this.skipField();else{var e=this.decoder_.readUnsignedVarint32();this.decoder_.advance(e)}},jspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(jspb.asserts.fail("Invalid wire type for skipFixed32Field"),this.skipField()):this.decoder_.advance(4)},jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(jspb.asserts.fail("Invalid wire type for skipFixed64Field"),this.skipField()):this.decoder_.advance(8)},jspb.BinaryReader.prototype.skipGroup=function(){var e=this.nextField_;do{if(!this.nextField()){jspb.asserts.fail("Unmatched start-group tag: stream EOF"),this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=e&&(jspb.asserts.fail("Unmatched end-group tag"),this.error_=!0);break}this.skipField()}while(1)},jspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:jspb.asserts.fail("Invalid wire encoding for field.")}},jspb.BinaryReader.prototype.registerReadCallback=function(e,t){this.readCallbacks_===null&&(this.readCallbacks_={}),jspb.asserts.assert(!this.readCallbacks_[e]),this.readCallbacks_[e]=t},jspb.BinaryReader.prototype.runReadCallback=function(e){return jspb.asserts.assert(this.readCallbacks_!==null),e=this.readCallbacks_[e],jspb.asserts.assert(e),e(this)},jspb.BinaryReader.prototype.readAny=function(e){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(e);var t=jspb.BinaryConstants.FieldType;switch(e){case t.DOUBLE:return this.readDouble();case t.FLOAT:return this.readFloat();case t.INT64:return this.readInt64();case t.UINT64:return this.readUint64();case t.INT32:return this.readInt32();case t.FIXED64:return this.readFixed64();case t.FIXED32:return this.readFixed32();case t.BOOL:return this.readBool();case t.STRING:return this.readString();case t.GROUP:jspb.asserts.fail("Group field type not supported in readAny()");case t.MESSAGE:jspb.asserts.fail("Message field type not supported in readAny()");case t.BYTES:return this.readBytes();case t.UINT32:return this.readUint32();case t.ENUM:return this.readEnum();case t.SFIXED32:return this.readSfixed32();case t.SFIXED64:return this.readSfixed64();case t.SINT32:return this.readSint32();case t.SINT64:return this.readSint64();case t.FHASH64:return this.readFixedHash64();case t.VHASH64:return this.readVarintHash64();default:jspb.asserts.fail("Invalid field type in readAny()")}return 0},jspb.BinaryReader.prototype.readMessage=function(e,t){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var n=this.decoder_.getEnd(),r=this.decoder_.readUnsignedVarint32();r=this.decoder_.getCursor()+r,this.decoder_.setEnd(r),t(e,this),this.decoder_.setCursor(r),this.decoder_.setEnd(n)},goog.exportProperty(jspb.BinaryReader.prototype,"readMessage",jspb.BinaryReader.prototype.readMessage),jspb.BinaryReader.prototype.readGroup=function(e,t,n){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP),jspb.asserts.assert(this.nextField_==e),n(t,this),this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(jspb.asserts.fail("Group submessage did not end with an END_GROUP tag"),this.error_=!0)},goog.exportProperty(jspb.BinaryReader.prototype,"readGroup",jspb.BinaryReader.prototype.readGroup),jspb.BinaryReader.prototype.getFieldDecoder=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32(),t=this.decoder_.getCursor(),n=t+e;return e=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),t,e),this.decoder_.setCursor(n),e},jspb.BinaryReader.prototype.readInt32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt32",jspb.BinaryReader.prototype.readInt32),jspb.BinaryReader.prototype.readInt32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint32String()},jspb.BinaryReader.prototype.readInt64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readInt64",jspb.BinaryReader.prototype.readInt64),jspb.BinaryReader.prototype.readInt64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64String()},jspb.BinaryReader.prototype.readUint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint32",jspb.BinaryReader.prototype.readUint32),jspb.BinaryReader.prototype.readUint32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint32String()},jspb.BinaryReader.prototype.readUint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readUint64",jspb.BinaryReader.prototype.readUint64),jspb.BinaryReader.prototype.readUint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readUnsignedVarint64String()},jspb.BinaryReader.prototype.readSint32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint32",jspb.BinaryReader.prototype.readSint32),jspb.BinaryReader.prototype.readSint64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSint64",jspb.BinaryReader.prototype.readSint64),jspb.BinaryReader.prototype.readSint64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarint64String()},jspb.BinaryReader.prototype.readFixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readUint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed32",jspb.BinaryReader.prototype.readFixed32),jspb.BinaryReader.prototype.readFixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readFixed64",jspb.BinaryReader.prototype.readFixed64),jspb.BinaryReader.prototype.readFixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readUint64String()},jspb.BinaryReader.prototype.readSfixed32=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed32",jspb.BinaryReader.prototype.readSfixed32),jspb.BinaryReader.prototype.readSfixed32String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readInt32().toString()},jspb.BinaryReader.prototype.readSfixed64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64()},goog.exportProperty(jspb.BinaryReader.prototype,"readSfixed64",jspb.BinaryReader.prototype.readSfixed64),jspb.BinaryReader.prototype.readSfixed64String=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readInt64String()},jspb.BinaryReader.prototype.readFloat=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32),this.decoder_.readFloat()},goog.exportProperty(jspb.BinaryReader.prototype,"readFloat",jspb.BinaryReader.prototype.readFloat),jspb.BinaryReader.prototype.readDouble=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readDouble()},goog.exportProperty(jspb.BinaryReader.prototype,"readDouble",jspb.BinaryReader.prototype.readDouble),jspb.BinaryReader.prototype.readBool=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),!!this.decoder_.readUnsignedVarint32()},goog.exportProperty(jspb.BinaryReader.prototype,"readBool",jspb.BinaryReader.prototype.readBool),jspb.BinaryReader.prototype.readEnum=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSignedVarint64()},goog.exportProperty(jspb.BinaryReader.prototype,"readEnum",jspb.BinaryReader.prototype.readEnum),jspb.BinaryReader.prototype.readString=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readString",jspb.BinaryReader.prototype.readString),jspb.BinaryReader.prototype.readBytes=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var e=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(e)},goog.exportProperty(jspb.BinaryReader.prototype,"readBytes",jspb.BinaryReader.prototype.readBytes),jspb.BinaryReader.prototype.readVarintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readVarintHash64()},jspb.BinaryReader.prototype.readSintHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readZigzagVarintHash64()},jspb.BinaryReader.prototype.readSplitVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(e)},jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT),this.decoder_.readSplitVarint64(function(t,n){return jspb.utils.fromZigzag64(t,n,e)})},jspb.BinaryReader.prototype.readFixedHash64=function(){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readFixedHash64()},jspb.BinaryReader.prototype.readSplitFixed64=function(e){return jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64),this.decoder_.readSplitFixed64(e)},jspb.BinaryReader.prototype.readPackedField_=function(e){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var t=this.decoder_.readUnsignedVarint32();t=this.decoder_.getCursor()+t;for(var n=[];this.decoder_.getCursor()<t;)n.push(e.call(this.decoder_));return n},jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt32",jspb.BinaryReader.prototype.readPackedInt32),jspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)},jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedInt64",jspb.BinaryReader.prototype.readPackedInt64),jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)},jspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint32",jspb.BinaryReader.prototype.readPackedUint32),jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)},jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedUint64",jspb.BinaryReader.prototype.readPackedUint64),jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)},jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint32",jspb.BinaryReader.prototype.readPackedSint32),jspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSint64",jspb.BinaryReader.prototype.readPackedSint64),jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)},jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed32",jspb.BinaryReader.prototype.readPackedFixed32),jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFixed64",jspb.BinaryReader.prototype.readPackedFixed64),jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)},jspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed32",jspb.BinaryReader.prototype.readPackedSfixed32),jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedSfixed64",jspb.BinaryReader.prototype.readPackedSfixed64),jspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)},jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedFloat",jspb.BinaryReader.prototype.readPackedFloat),jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedDouble",jspb.BinaryReader.prototype.readPackedDouble),jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedBool",jspb.BinaryReader.prototype.readPackedBool),jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)},goog.exportProperty(jspb.BinaryReader.prototype,"readPackedEnum",jspb.BinaryReader.prototype.readPackedEnum),jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)},jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)},jspb.BinaryEncoder=function(){this.buffer_=[]},jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length},jspb.BinaryEncoder.prototype.end=function(){var e=this.buffer_;return this.buffer_=[],e},jspb.BinaryEncoder.prototype.writeSplitVarint64=function(e,t){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32);0<t||127<e;)this.buffer_.push(e&127|128),e=(e>>>7|t<<25)>>>0,t>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSplitFixed64=function(e,t){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(t==Math.floor(t)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUint32(e),this.writeUint32(t)},jspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(e){for(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32);127<e;)this.buffer_.push(e&127|128),e>>>=7;this.buffer_.push(e)},jspb.BinaryEncoder.prototype.writeSignedVarint32=function(e){if(jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),0<=e)this.writeUnsignedVarint32(e);else{for(var t=0;9>t;t++)this.buffer_.push(e&127|128),e>>=7;this.buffer_.push(1)}},jspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeSignedVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeUnsignedVarint32((e<<1^e>>31)>>>0)},jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitZigzag64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(e){this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(e))},jspb.BinaryEncoder.prototype.writeZigzagVarintHash64=function(e){var t=this;jspb.utils.splitHash64(e),jspb.utils.toZigzag64(jspb.utils.split64Low,jspb.utils.split64High,function(n,r){t.writeSplitVarint64(n>>>0,r>>>0)})},jspb.BinaryEncoder.prototype.writeUint8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&256>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeUint16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&65536>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeUint32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_32),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeUint64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(0<=e&&e<jspb.BinaryConstants.TWO_TO_64),jspb.utils.splitUint64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt8=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-128<=e&&128>e),this.buffer_.push(e>>>0&255)},jspb.BinaryEncoder.prototype.writeInt16=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(-32768<=e&&32768>e),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255)},jspb.BinaryEncoder.prototype.writeInt32=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.buffer_.push(e>>>0&255),this.buffer_.push(e>>>8&255),this.buffer_.push(e>>>16&255),this.buffer_.push(e>>>24&255)},jspb.BinaryEncoder.prototype.writeInt64=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_63&&e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitInt64(e),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeInt64String=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(+e>=-jspb.BinaryConstants.TWO_TO_63&&+e<jspb.BinaryConstants.TWO_TO_63),jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(e)),this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFloat=function(e){jspb.asserts.assert(e===1/0||e===-1/0||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT32_MAX&&e<=jspb.BinaryConstants.FLOAT32_MAX),jspb.utils.splitFloat32(e),this.writeUint32(jspb.utils.split64Low)},jspb.BinaryEncoder.prototype.writeDouble=function(e){jspb.asserts.assert(e===1/0||e===-1/0||isNaN(e)||e>=-jspb.BinaryConstants.FLOAT64_MAX&&e<=jspb.BinaryConstants.FLOAT64_MAX),jspb.utils.splitFloat64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeBool=function(e){jspb.asserts.assert(typeof e=="boolean"||typeof e=="number"),this.buffer_.push(e?1:0)},jspb.BinaryEncoder.prototype.writeEnum=function(e){jspb.asserts.assert(e==Math.floor(e)),jspb.asserts.assert(e>=-jspb.BinaryConstants.TWO_TO_31&&e<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32(e)},jspb.BinaryEncoder.prototype.writeBytes=function(e){this.buffer_.push.apply(this.buffer_,e)},jspb.BinaryEncoder.prototype.writeVarintHash64=function(e){jspb.utils.splitHash64(e),this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeFixedHash64=function(e){jspb.utils.splitHash64(e),this.writeUint32(jspb.utils.split64Low),this.writeUint32(jspb.utils.split64High)},jspb.BinaryEncoder.prototype.writeString=function(e){var t=this.buffer_.length;jspb.asserts.assertString(e);for(var n=0;n<e.length;n++){var r=e.charCodeAt(n);if(128>r)this.buffer_.push(r);else if(2048>r)this.buffer_.push(r>>6|192),this.buffer_.push(r&63|128);else if(65536>r)if(55296<=r&&56319>=r&&n+1<e.length){var o=e.charCodeAt(n+1);56320<=o&&57343>=o&&(r=1024*(r-55296)+o-56320+65536,this.buffer_.push(r>>18|240),this.buffer_.push(r>>12&63|128),this.buffer_.push(r>>6&63|128),this.buffer_.push(r&63|128),n++)}else this.buffer_.push(r>>12|224),this.buffer_.push(r>>6&63|128),this.buffer_.push(r&63|128)}return this.buffer_.length-t},jspb.arith={},jspb.arith.UInt64=function(e,t){this.lo=e,this.hi=t},jspb.arith.UInt64.prototype.cmp=function(e){return this.hi<e.hi||this.hi==e.hi&&this.lo<e.lo?-1:this.hi==e.hi&&this.lo==e.lo?0:1},jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)},jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)},jspb.arith.UInt64.prototype.msb=function(){return!!(this.hi&2147483648)},jspb.arith.UInt64.prototype.lsb=function(){return!!(this.lo&1)},jspb.arith.UInt64.prototype.zero=function(){return this.lo==0&&this.hi==0},jspb.arith.UInt64.prototype.add=function(e){return new jspb.arith.UInt64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.UInt64.prototype.sub=function(e){return new jspb.arith.UInt64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.UInt64.mul32x32=function(e,t){var n=e&65535;e>>>=16;var r=t&65535,o=t>>>16;for(t=n*r+65536*(n*o&65535)+65536*(e*r&65535),n=e*o+(n*o>>>16)+(e*r>>>16);4294967296<=t;)t-=4294967296,n+=1;return new jspb.arith.UInt64(t>>>0,n>>>0)},jspb.arith.UInt64.prototype.mul=function(e){var t=jspb.arith.UInt64.mul32x32(this.lo,e);return e=jspb.arith.UInt64.mul32x32(this.hi,e),e.hi=e.lo,e.lo=0,t.add(e)},jspb.arith.UInt64.prototype.div=function(e){if(e==0)return[];var t=new jspb.arith.UInt64(0,0),n=new jspb.arith.UInt64(this.lo,this.hi);e=new jspb.arith.UInt64(e,0);for(var r=new jspb.arith.UInt64(1,0);!e.msb();)e=e.leftShift(),r=r.leftShift();for(;!r.zero();)0>=e.cmp(n)&&(t=t.add(r),n=n.sub(e)),e=e.rightShift(),r=r.rightShift();return[t,n]},jspb.arith.UInt64.prototype.toString=function(){for(var e="",t=this;!t.zero();){t=t.div(10);var n=t[0];e=t[1].lo+e,t=n}return e==""&&(e="0"),e},jspb.arith.UInt64.fromString=function(e){for(var t=new jspb.arith.UInt64(0,0),n=new jspb.arith.UInt64(0,0),r=0;r<e.length;r++){if("0">e[r]||"9"<e[r])return null;var o=parseInt(e[r],10);n.lo=o,t=t.mul(10).add(n)}return t},jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)},jspb.arith.Int64=function(e,t){this.lo=e,this.hi=t},jspb.arith.Int64.prototype.add=function(e){return new jspb.arith.Int64((this.lo+e.lo&4294967295)>>>0>>>0,((this.hi+e.hi&4294967295)>>>0)+(4294967296<=this.lo+e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.sub=function(e){return new jspb.arith.Int64((this.lo-e.lo&4294967295)>>>0>>>0,((this.hi-e.hi&4294967295)>>>0)-(0>this.lo-e.lo?1:0)>>>0)},jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)},jspb.arith.Int64.prototype.toString=function(){var e=(this.hi&2147483648)!=0,t=new jspb.arith.UInt64(this.lo,this.hi);return e&&(t=new jspb.arith.UInt64(0,0).sub(t)),(e?"-":"")+t.toString()},jspb.arith.Int64.fromString=function(e){var t=0<e.length&&e[0]=="-";return t&&(e=e.substring(1)),e=jspb.arith.UInt64.fromString(e),e===null?null:(t&&(e=new jspb.arith.UInt64(0,0).sub(e)),new jspb.arith.Int64(e.lo,e.hi))},jspb.BinaryWriter=function(){this.blocks_=[],this.totalLength_=0,this.encoder_=new jspb.BinaryEncoder,this.bookmarks_=[]},jspb.BinaryWriter.prototype.appendUint8Array_=function(e){var t=this.encoder_.end();this.blocks_.push(t),this.blocks_.push(e),this.totalLength_+=t.length+e.length},jspb.BinaryWriter.prototype.beginDelimited_=function(e){return this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),e=this.encoder_.end(),this.blocks_.push(e),this.totalLength_+=e.length,e.push(this.totalLength_),e},jspb.BinaryWriter.prototype.endDelimited_=function(e){var t=e.pop();for(t=this.totalLength_+this.encoder_.length()-t,jspb.asserts.assert(0<=t);127<t;)e.push(t&127|128),t>>>=7,this.totalLength_++;e.push(t),this.totalLength_++},jspb.BinaryWriter.prototype.writeSerializedMessage=function(e,t,n){this.appendUint8Array_(e.subarray(t,n))},jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(e,t,n){e!=null&&t!=null&&n!=null&&this.writeSerializedMessage(e,t,n)},jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[],this.encoder_.end(),this.totalLength_=0,this.bookmarks_=[]},jspb.BinaryWriter.prototype.getResultBuffer=function(){jspb.asserts.assert(this.bookmarks_.length==0);for(var e=new Uint8Array(this.totalLength_+this.encoder_.length()),t=this.blocks_,n=t.length,r=0,o=0;o<n;o++){var s=t[o];e.set(s,r),r+=s.length}return t=this.encoder_.end(),e.set(t,r),r+=t.length,jspb.asserts.assert(r==e.length),this.blocks_=[e],e},goog.exportProperty(jspb.BinaryWriter.prototype,"getResultBuffer",jspb.BinaryWriter.prototype.getResultBuffer),jspb.BinaryWriter.prototype.getResultBase64String=function(e){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),e)},jspb.BinaryWriter.prototype.beginSubMessage=function(e){this.bookmarks_.push(this.beginDelimited_(e))},jspb.BinaryWriter.prototype.endSubMessage=function(){jspb.asserts.assert(0<=this.bookmarks_.length),this.endDelimited_(this.bookmarks_.pop())},jspb.BinaryWriter.prototype.writeFieldHeader_=function(e,t){jspb.asserts.assert(1<=e&&e==Math.floor(e)),this.encoder_.writeUnsignedVarint32(8*e+t)},jspb.BinaryWriter.prototype.writeAny=function(e,t,n){var r=jspb.BinaryConstants.FieldType;switch(e){case r.DOUBLE:this.writeDouble(t,n);break;case r.FLOAT:this.writeFloat(t,n);break;case r.INT64:this.writeInt64(t,n);break;case r.UINT64:this.writeUint64(t,n);break;case r.INT32:this.writeInt32(t,n);break;case r.FIXED64:this.writeFixed64(t,n);break;case r.FIXED32:this.writeFixed32(t,n);break;case r.BOOL:this.writeBool(t,n);break;case r.STRING:this.writeString(t,n);break;case r.GROUP:jspb.asserts.fail("Group field type not supported in writeAny()");break;case r.MESSAGE:jspb.asserts.fail("Message field type not supported in writeAny()");break;case r.BYTES:this.writeBytes(t,n);break;case r.UINT32:this.writeUint32(t,n);break;case r.ENUM:this.writeEnum(t,n);break;case r.SFIXED32:this.writeSfixed32(t,n);break;case r.SFIXED64:this.writeSfixed64(t,n);break;case r.SINT32:this.writeSint32(t,n);break;case r.SINT64:this.writeSint64(t,n);break;case r.FHASH64:this.writeFixedHash64(t,n);break;case r.VHASH64:this.writeVarintHash64(t,n);break;default:jspb.asserts.fail("Invalid field type in writeAny()")}},jspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(t))},jspb.BinaryWriter.prototype.writeSignedVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(t))},jspb.BinaryWriter.prototype.writeSignedVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(t))},jspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(t))},jspb.BinaryWriter.prototype.writeZigzagVarintHash64_=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarintHash64(t))},jspb.BinaryWriter.prototype.writeInt32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt32",jspb.BinaryWriter.prototype.writeInt32),jspb.BinaryWriter.prototype.writeInt32String=function(e,t){t!=null&&(t=parseInt(t,10),jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeInt64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeInt64",jspb.BinaryWriter.prototype.writeInt64),jspb.BinaryWriter.prototype.writeInt64String=function(e,t){t!=null&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeUint32=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint32",jspb.BinaryWriter.prototype.writeUint32),jspb.BinaryWriter.prototype.writeUint32String=function(e,t){t!=null&&(t=parseInt(t,10),jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(e,t))},jspb.BinaryWriter.prototype.writeUint64=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeUint64",jspb.BinaryWriter.prototype.writeUint64),jspb.BinaryWriter.prototype.writeUint64String=function(e,t){t!=null&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSint32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint32",jspb.BinaryWriter.prototype.writeSint32),jspb.BinaryWriter.prototype.writeSint64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(e,t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSint64",jspb.BinaryWriter.prototype.writeSint64),jspb.BinaryWriter.prototype.writeSintHash64=function(e,t){t!=null&&this.writeZigzagVarintHash64_(e,t)},jspb.BinaryWriter.prototype.writeSint64String=function(e,t){t!=null&&this.writeZigzagVarint64String_(e,t)},jspb.BinaryWriter.prototype.writeFixed32=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed32",jspb.BinaryWriter.prototype.writeFixed32),jspb.BinaryWriter.prototype.writeFixed64=function(e,t){t!=null&&(jspb.asserts.assert(0<=t&&t<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFixed64",jspb.BinaryWriter.prototype.writeFixed64),jspb.BinaryWriter.prototype.writeFixed64String=function(e,t){t!=null&&(t=jspb.arith.UInt64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeSfixed32=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed32",jspb.BinaryWriter.prototype.writeSfixed32),jspb.BinaryWriter.prototype.writeSfixed64=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_63&&t<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeSfixed64",jspb.BinaryWriter.prototype.writeSfixed64),jspb.BinaryWriter.prototype.writeSfixed64String=function(e,t){t!=null&&(t=jspb.arith.Int64.fromString(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t.lo,t.hi))},jspb.BinaryWriter.prototype.writeFloat=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeFloat",jspb.BinaryWriter.prototype.writeFloat),jspb.BinaryWriter.prototype.writeDouble=function(e,t){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeDouble",jspb.BinaryWriter.prototype.writeDouble),jspb.BinaryWriter.prototype.writeBool=function(e,t){t!=null&&(jspb.asserts.assert(typeof t=="boolean"||typeof t=="number"),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBool",jspb.BinaryWriter.prototype.writeBool),jspb.BinaryWriter.prototype.writeEnum=function(e,t){t!=null&&(jspb.asserts.assert(t>=-jspb.BinaryConstants.TWO_TO_31&&t<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeEnum",jspb.BinaryWriter.prototype.writeEnum),jspb.BinaryWriter.prototype.writeString=function(e,t){t!=null&&(e=this.beginDelimited_(e),this.encoder_.writeString(t),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeString",jspb.BinaryWriter.prototype.writeString),jspb.BinaryWriter.prototype.writeBytes=function(e,t){t!=null&&(t=jspb.utils.byteSourceToUint8Array(t),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),this.appendUint8Array_(t))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeBytes",jspb.BinaryWriter.prototype.writeBytes),jspb.BinaryWriter.prototype.writeMessage=function(e,t,n){t!=null&&(e=this.beginDelimited_(e),n(t,this),this.endDelimited_(e))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeMessage",jspb.BinaryWriter.prototype.writeMessage),jspb.BinaryWriter.prototype.writeMessageSet=function(e,t,n){t!=null&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(e),e=this.beginDelimited_(3),n(t,this),this.endDelimited_(e),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))},jspb.BinaryWriter.prototype.writeGroup=function(e,t,n){t!=null&&(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),n(t,this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP))},goog.exportProperty(jspb.BinaryWriter.prototype,"writeGroup",jspb.BinaryWriter.prototype.writeGroup),jspb.BinaryWriter.prototype.writeFixedHash64=function(e,t){t!=null&&(jspb.asserts.assert(t.length==8),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(t))},jspb.BinaryWriter.prototype.writeVarintHash64=function(e,t){t!=null&&(jspb.asserts.assert(t.length==8),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(t))},jspb.BinaryWriter.prototype.writeSplitFixed64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(t,n)},jspb.BinaryWriter.prototype.writeSplitVarint64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(t,n)},jspb.BinaryWriter.prototype.writeSplitZigzagVarint64=function(e,t,n){this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.VARINT);var r=this.encoder_;jspb.utils.toZigzag64(t,n,function(o,s){r.writeSplitVarint64(o>>>0,s>>>0)})},jspb.BinaryWriter.prototype.writeRepeatedInt32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSignedVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt32",jspb.BinaryWriter.prototype.writeRepeatedInt32),jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeInt32String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedInt64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSignedVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedInt64",jspb.BinaryWriter.prototype.writeRepeatedInt64),jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitFixed64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedSplitVarint64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitVarint64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64=function(e,t,n,r){if(t!=null)for(var o=0;o<t.length;o++)this.writeSplitZigzagVarint64(e,n(t[o]),r(t[o]))},jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeInt64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedUint32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUnsignedVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint32",jspb.BinaryWriter.prototype.writeRepeatedUint32),jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUint32String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedUint64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUnsignedVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedUint64",jspb.BinaryWriter.prototype.writeRepeatedUint64),jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeUint64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedSint32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint32_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint32",jspb.BinaryWriter.prototype.writeRepeatedSint32),jspb.BinaryWriter.prototype.writeRepeatedSint64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint64_(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSint64",jspb.BinaryWriter.prototype.writeRepeatedSint64),jspb.BinaryWriter.prototype.writeRepeatedSint64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarint64String_(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedSintHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeZigzagVarintHash64_(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed32(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed32",jspb.BinaryWriter.prototype.writeRepeatedFixed32),jspb.BinaryWriter.prototype.writeRepeatedFixed64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed64(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64",jspb.BinaryWriter.prototype.writeRepeatedFixed64),jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixed64String(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFixed64String",jspb.BinaryWriter.prototype.writeRepeatedFixed64String),jspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed32(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed32",jspb.BinaryWriter.prototype.writeRepeatedSfixed32),jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed64(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedSfixed64",jspb.BinaryWriter.prototype.writeRepeatedSfixed64),jspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeSfixed64String(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedFloat=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFloat(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedFloat",jspb.BinaryWriter.prototype.writeRepeatedFloat),jspb.BinaryWriter.prototype.writeRepeatedDouble=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeDouble(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedDouble",jspb.BinaryWriter.prototype.writeRepeatedDouble),jspb.BinaryWriter.prototype.writeRepeatedBool=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeBool(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBool",jspb.BinaryWriter.prototype.writeRepeatedBool),jspb.BinaryWriter.prototype.writeRepeatedEnum=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeEnum(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedEnum",jspb.BinaryWriter.prototype.writeRepeatedEnum),jspb.BinaryWriter.prototype.writeRepeatedString=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeString(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedString",jspb.BinaryWriter.prototype.writeRepeatedString),jspb.BinaryWriter.prototype.writeRepeatedBytes=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeBytes(e,t[n])},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedBytes",jspb.BinaryWriter.prototype.writeRepeatedBytes),jspb.BinaryWriter.prototype.writeRepeatedMessage=function(e,t,n){if(t!=null)for(var r=0;r<t.length;r++){var o=this.beginDelimited_(e);n(t[r],this),this.endDelimited_(o)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedMessage",jspb.BinaryWriter.prototype.writeRepeatedMessage),jspb.BinaryWriter.prototype.writeRepeatedGroup=function(e,t,n){if(t!=null)for(var r=0;r<t.length;r++)this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.START_GROUP),n(t[r],this),this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.END_GROUP)},goog.exportProperty(jspb.BinaryWriter.prototype,"writeRepeatedGroup",jspb.BinaryWriter.prototype.writeRepeatedGroup),jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeFixedHash64(e,t[n])},jspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(e,t){if(t!=null)for(var n=0;n<t.length;n++)this.writeVarintHash64(e,t[n])},jspb.BinaryWriter.prototype.writePackedInt32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt32",jspb.BinaryWriter.prototype.writePackedInt32),jspb.BinaryWriter.prototype.writePackedInt32String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint32(parseInt(t[n],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeSignedVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedInt64",jspb.BinaryWriter.prototype.writePackedInt64),jspb.BinaryWriter.prototype.writePackedSplitFixed64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSplitFixed64(n(t[o]),r(t[o]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitVarint64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=0;o<t.length;o++)this.encoder_.writeSplitVarint64(n(t[o]),r(t[o]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64=function(e,t,n,r){if(t!=null){e=this.beginDelimited_(e);for(var o=this.encoder_,s=0;s<t.length;s++)jspb.utils.toZigzag64(n(t[s]),r(t[s]),function(g,l){o.writeSplitVarint64(g>>>0,l>>>0)});this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedInt64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++){var r=jspb.arith.Int64.fromString(t[n]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint32",jspb.BinaryWriter.prototype.writePackedUint32),jspb.BinaryWriter.prototype.writePackedUint32String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint32(parseInt(t[n],10));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedUint64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeUnsignedVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedUint64",jspb.BinaryWriter.prototype.writePackedUint64),jspb.BinaryWriter.prototype.writePackedUint64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++){var r=jspb.arith.UInt64.fromString(t[n]);this.encoder_.writeSplitVarint64(r.lo,r.hi)}this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSint32=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarint32(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint32",jspb.BinaryWriter.prototype.writePackedSint32),jspb.BinaryWriter.prototype.writePackedSint64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarint64(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSint64",jspb.BinaryWriter.prototype.writePackedSint64),jspb.BinaryWriter.prototype.writePackedSint64String=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(t[n]));this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedSintHash64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeZigzagVarintHash64(t[n]);this.endDelimited_(e)}},jspb.BinaryWriter.prototype.writePackedFixed32=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeUint32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed32",jspb.BinaryWriter.prototype.writePackedFixed32),jspb.BinaryWriter.prototype.writePackedFixed64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeUint64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFixed64",jspb.BinaryWriter.prototype.writePackedFixed64),jspb.BinaryWriter.prototype.writePackedFixed64String=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++){var n=jspb.arith.UInt64.fromString(t[e]);this.encoder_.writeSplitFixed64(n.lo,n.hi)}},jspb.BinaryWriter.prototype.writePackedSfixed32=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeInt32(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed32",jspb.BinaryWriter.prototype.writePackedSfixed32),jspb.BinaryWriter.prototype.writePackedSfixed64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedSfixed64",jspb.BinaryWriter.prototype.writePackedSfixed64),jspb.BinaryWriter.prototype.writePackedSfixed64String=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeInt64String(t[e])},jspb.BinaryWriter.prototype.writePackedFloat=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*t.length),e=0;e<t.length;e++)this.encoder_.writeFloat(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedFloat",jspb.BinaryWriter.prototype.writePackedFloat),jspb.BinaryWriter.prototype.writePackedDouble=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeDouble(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedDouble",jspb.BinaryWriter.prototype.writePackedDouble),jspb.BinaryWriter.prototype.writePackedBool=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(t.length),e=0;e<t.length;e++)this.encoder_.writeBool(t[e])},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedBool",jspb.BinaryWriter.prototype.writePackedBool),jspb.BinaryWriter.prototype.writePackedEnum=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeEnum(t[n]);this.endDelimited_(e)}},goog.exportProperty(jspb.BinaryWriter.prototype,"writePackedEnum",jspb.BinaryWriter.prototype.writePackedEnum),jspb.BinaryWriter.prototype.writePackedFixedHash64=function(e,t){if(t!=null&&t.length)for(this.writeFieldHeader_(e,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*t.length),e=0;e<t.length;e++)this.encoder_.writeFixedHash64(t[e])},jspb.BinaryWriter.prototype.writePackedVarintHash64=function(e,t){if(t!=null&&t.length){e=this.beginDelimited_(e);for(var n=0;n<t.length;n++)this.encoder_.writeVarintHash64(t[n]);this.endDelimited_(e)}},jspb.Map=function(e,t){this.arr_=e,this.valueCtor_=t,this.map_={},this.arrClean=!0,0<this.arr_.length&&this.loadFromArray_()},goog.exportSymbol("jspb.Map",jspb.Map),jspb.Map.prototype.loadFromArray_=function(){for(var e=0;e<this.arr_.length;e++){var t=this.arr_[e],n=t[0];this.map_[n.toString()]=new jspb.Map.Entry_(n,t[1])}this.arrClean=!0},jspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var e=this.map_,t;for(t in e)if(Object.prototype.hasOwnProperty.call(e,t)){var n=e[t].valueWrapper;n&&n.toArray()}}}else{for(this.arr_.length=0,e=this.stringKeys_(),e.sort(),t=0;t<e.length;t++){var r=this.map_[e[t]];(n=r.valueWrapper)&&n.toArray(),this.arr_.push([r.key,r.value])}this.arrClean=!0}return this.arr_},goog.exportProperty(jspb.Map.prototype,"toArray",jspb.Map.prototype.toArray),jspb.Map.prototype.toObject=function(e,t){for(var n=this.toArray(),r=[],o=0;o<n.length;o++){var s=this.map_[n[o][0].toString()];this.wrapEntry_(s);var g=s.valueWrapper;g?(jspb.asserts.assert(t),r.push([s.key,t(e,g)])):r.push([s.key,s.value])}return r},goog.exportProperty(jspb.Map.prototype,"toObject",jspb.Map.prototype.toObject),jspb.Map.fromObject=function(e,t,n){t=new jspb.Map([],t);for(var r=0;r<e.length;r++){var o=e[r][0],s=n(e[r][1]);t.set(o,s)}return t},goog.exportProperty(jspb.Map,"fromObject",jspb.Map.fromObject),jspb.Map.ArrayIteratorIterable_=function(e){this.idx_=0,this.arr_=e},jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}},typeof Symbol!="undefined"&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this}),jspb.Map.prototype.getLength=function(){return this.stringKeys_().length},goog.exportProperty(jspb.Map.prototype,"getLength",jspb.Map.prototype.getLength),jspb.Map.prototype.clear=function(){this.map_={},this.arrClean=!1},goog.exportProperty(jspb.Map.prototype,"clear",jspb.Map.prototype.clear),jspb.Map.prototype.del=function(e){e=e.toString();var t=this.map_.hasOwnProperty(e);return delete this.map_[e],this.arrClean=!1,t},goog.exportProperty(jspb.Map.prototype,"del",jspb.Map.prototype.del),jspb.Map.prototype.getEntryList=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++){var r=this.map_[t[n]];e.push([r.key,r.value])}return e},goog.exportProperty(jspb.Map.prototype,"getEntryList",jspb.Map.prototype.getEntryList),jspb.Map.prototype.entries=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++){var r=this.map_[t[n]];e.push([r.key,this.wrapEntry_(r)])}return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"entries",jspb.Map.prototype.entries),jspb.Map.prototype.keys=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++)e.push(this.map_[t[n]].key);return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"keys",jspb.Map.prototype.keys),jspb.Map.prototype.values=function(){var e=[],t=this.stringKeys_();t.sort();for(var n=0;n<t.length;n++)e.push(this.wrapEntry_(this.map_[t[n]]));return new jspb.Map.ArrayIteratorIterable_(e)},goog.exportProperty(jspb.Map.prototype,"values",jspb.Map.prototype.values),jspb.Map.prototype.forEach=function(e,t){var n=this.stringKeys_();n.sort();for(var r=0;r<n.length;r++){var o=this.map_[n[r]];e.call(t,this.wrapEntry_(o),o.key,this)}},goog.exportProperty(jspb.Map.prototype,"forEach",jspb.Map.prototype.forEach),jspb.Map.prototype.set=function(e,t){var n=new jspb.Map.Entry_(e);return this.valueCtor_?(n.valueWrapper=t,n.value=t.toArray()):n.value=t,this.map_[e.toString()]=n,this.arrClean=!1,this},goog.exportProperty(jspb.Map.prototype,"set",jspb.Map.prototype.set),jspb.Map.prototype.wrapEntry_=function(e){return this.valueCtor_?(e.valueWrapper||(e.valueWrapper=new this.valueCtor_(e.value)),e.valueWrapper):e.value},jspb.Map.prototype.get=function(e){if(e=this.map_[e.toString()])return this.wrapEntry_(e)},goog.exportProperty(jspb.Map.prototype,"get",jspb.Map.prototype.get),jspb.Map.prototype.has=function(e){return e.toString()in this.map_},goog.exportProperty(jspb.Map.prototype,"has",jspb.Map.prototype.has),jspb.Map.prototype.serializeBinary=function(e,t,n,r,o){var s=this.stringKeys_();s.sort();for(var g=0;g<s.length;g++){var l=this.map_[s[g]];t.beginSubMessage(e),n.call(t,1,l.key),this.valueCtor_?r.call(t,2,this.wrapEntry_(l),o):r.call(t,2,l.value),t.endSubMessage()}},goog.exportProperty(jspb.Map.prototype,"serializeBinary",jspb.Map.prototype.serializeBinary),jspb.Map.deserializeBinary=function(e,t,n,r,o,s,g){for(;t.nextField()&&!t.isEndGroup();){var l=t.getFieldNumber();l==1?s=n.call(t):l==2&&(e.valueCtor_?(jspb.asserts.assert(o),g||(g=new e.valueCtor_),r.call(t,g,o)):g=r.call(t))}jspb.asserts.assert(s!=null),jspb.asserts.assert(g!=null),e.set(s,g)},goog.exportProperty(jspb.Map,"deserializeBinary",jspb.Map.deserializeBinary),jspb.Map.prototype.stringKeys_=function(){var e=this.map_,t=[],n;for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&t.push(n);return t},jspb.Map.Entry_=function(e,t){this.key=e,this.value=t,this.valueWrapper=void 0},jspb.ExtensionFieldInfo=function(e,t,n,r,o){this.fieldIndex=e,this.fieldName=t,this.ctor=n,this.toObjectFn=r,this.isRepeated=o},goog.exportSymbol("jspb.ExtensionFieldInfo",jspb.ExtensionFieldInfo),jspb.ExtensionFieldBinaryInfo=function(e,t,n,r,o,s){this.fieldInfo=e,this.binaryReaderFn=t,this.binaryWriterFn=n,this.binaryMessageSerializeFn=r,this.binaryMessageDeserializeFn=o,this.isPacked=s},goog.exportSymbol("jspb.ExtensionFieldBinaryInfo",jspb.ExtensionFieldBinaryInfo),jspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor},goog.exportProperty(jspb.ExtensionFieldInfo.prototype,"isMessageType",jspb.ExtensionFieldInfo.prototype.isMessageType),jspb.Message=function(){},goog.exportSymbol("jspb.Message",jspb.Message),jspb.Message.GENERATE_TO_OBJECT=!0,goog.exportProperty(jspb.Message,"GENERATE_TO_OBJECT",jspb.Message.GENERATE_TO_OBJECT),jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE,goog.exportProperty(jspb.Message,"GENERATE_FROM_OBJECT",jspb.Message.GENERATE_FROM_OBJECT),jspb.Message.GENERATE_TO_STRING=!0,jspb.Message.ASSUME_LOCAL_ARRAYS=!1,jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0,jspb.Message.SUPPORTS_UINT8ARRAY_=typeof Uint8Array=="function",jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_},goog.exportProperty(jspb.Message.prototype,"getJsPbMessageId",jspb.Message.prototype.getJsPbMessageId),jspb.Message.getIndex_=function(e,t){return t+e.arrayIndexOffset_},jspb.Message.hiddenES6Property_=function(){},jspb.Message.getFieldNumber_=function(e,t){return t-e.arrayIndexOffset_},jspb.Message.initialize=function(e,t,n,r,o,s){if(e.wrappers_=null,t||(t=n?[n]:[]),e.messageId_=n?String(n):void 0,e.arrayIndexOffset_=n===0?-1:0,e.array=t,jspb.Message.initPivotAndExtensionObject_(e,r),e.convertedPrimitiveFields_={},jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(e.repeatedFields=o),o)for(t=0;t<o.length;t++)n=o[t],n<e.pivot_?(n=jspb.Message.getIndex_(e,n),e.array[n]=e.array[n]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[n]=e.extensionObject_[n]||jspb.Message.EMPTY_LIST_SENTINEL_);if(s&&s.length)for(t=0;t<s.length;t++)jspb.Message.computeOneofCase(e,s[t])},goog.exportProperty(jspb.Message,"initialize",jspb.Message.initialize),jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[],jspb.Message.isArray_=function(e){return jspb.Message.ASSUME_LOCAL_ARRAYS?e instanceof Array:Array.isArray(e)},jspb.Message.isExtensionObject_=function(e){return e!==null&&typeof e=="object"&&!jspb.Message.isArray_(e)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)},jspb.Message.initPivotAndExtensionObject_=function(e,t){var n=e.array.length,r=-1;if(n&&(r=n-1,n=e.array[r],jspb.Message.isExtensionObject_(n))){e.pivot_=jspb.Message.getFieldNumber_(e,r),e.extensionObject_=n;return}-1<t?(e.pivot_=Math.max(t,jspb.Message.getFieldNumber_(e,r+1)),e.extensionObject_=null):e.pivot_=Number.MAX_VALUE},jspb.Message.maybeInitEmptyExtensionObject_=function(e){var t=jspb.Message.getIndex_(e,e.pivot_);e.array[t]||(e.extensionObject_=e.array[t]={})},jspb.Message.toObjectList=function(e,t,n){for(var r=[],o=0;o<e.length;o++)r[o]=t.call(e[o],n,e[o]);return r},goog.exportProperty(jspb.Message,"toObjectList",jspb.Message.toObjectList),jspb.Message.toObjectExtension=function(e,t,n,r,o){for(var s in n){var g=n[s],l=r.call(e,g);if(l!=null){for(var u in g.fieldName)if(g.fieldName.hasOwnProperty(u))break;t[u]=g.toObjectFn?g.isRepeated?jspb.Message.toObjectList(l,g.toObjectFn,o):g.toObjectFn(o,l):l}}},goog.exportProperty(jspb.Message,"toObjectExtension",jspb.Message.toObjectExtension),jspb.Message.serializeBinaryExtensions=function(e,t,n,r){for(var o in n){var s=n[o],g=s.fieldInfo;if(!s.binaryWriterFn)throw Error("Message extension present that was generated without binary serialization support");var l=r.call(e,g);if(l!=null)if(g.isMessageType())if(s.binaryMessageSerializeFn)s.binaryWriterFn.call(t,g.fieldIndex,l,s.binaryMessageSerializeFn);else throw Error("Message extension present holding submessage without binary support enabled, and message is being serialized to binary format");else s.binaryWriterFn.call(t,g.fieldIndex,l)}},goog.exportProperty(jspb.Message,"serializeBinaryExtensions",jspb.Message.serializeBinaryExtensions),jspb.Message.readBinaryExtension=function(e,t,n,r,o){var s=n[t.getFieldNumber()];if(s){if(n=s.fieldInfo,!s.binaryReaderFn)throw Error("Deserializing extension whose generated code does not support binary format");if(n.isMessageType()){var g=new n.ctor;s.binaryReaderFn.call(t,g,s.binaryMessageDeserializeFn)}else g=s.binaryReaderFn.call(t);n.isRepeated&&!s.isPacked?(t=r.call(e,n))?t.push(g):o.call(e,n,[g]):o.call(e,n,g)}else t.skipField()},goog.exportProperty(jspb.Message,"readBinaryExtension",jspb.Message.readBinaryExtension),jspb.Message.getField=function(e,t){if(t<e.pivot_){t=jspb.Message.getIndex_(e,t);var n=e.array[t];return n===jspb.Message.EMPTY_LIST_SENTINEL_?e.array[t]=[]:n}if(e.extensionObject_)return n=e.extensionObject_[t],n===jspb.Message.EMPTY_LIST_SENTINEL_?e.extensionObject_[t]=[]:n},goog.exportProperty(jspb.Message,"getField",jspb.Message.getField),jspb.Message.getRepeatedField=function(e,t){return jspb.Message.getField(e,t)},goog.exportProperty(jspb.Message,"getRepeatedField",jspb.Message.getRepeatedField),jspb.Message.getOptionalFloatingPointField=function(e,t){return e=jspb.Message.getField(e,t),e==null?e:+e},goog.exportProperty(jspb.Message,"getOptionalFloatingPointField",jspb.Message.getOptionalFloatingPointField),jspb.Message.getBooleanField=function(e,t){return e=jspb.Message.getField(e,t),e==null?e:!!e},goog.exportProperty(jspb.Message,"getBooleanField",jspb.Message.getBooleanField),jspb.Message.getRepeatedFloatingPointField=function(e,t){var n=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<n.length;r++)n[r]=+n[r];e.convertedPrimitiveFields_[t]=!0}return n},goog.exportProperty(jspb.Message,"getRepeatedFloatingPointField",jspb.Message.getRepeatedFloatingPointField),jspb.Message.getRepeatedBooleanField=function(e,t){var n=jspb.Message.getRepeatedField(e,t);if(e.convertedPrimitiveFields_||(e.convertedPrimitiveFields_={}),!e.convertedPrimitiveFields_[t]){for(var r=0;r<n.length;r++)n[r]=!!n[r];e.convertedPrimitiveFields_[t]=!0}return n},goog.exportProperty(jspb.Message,"getRepeatedBooleanField",jspb.Message.getRepeatedBooleanField),jspb.Message.bytesAsB64=function(e){return e==null||typeof e=="string"?e:jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array?goog.crypt.base64.encodeByteArray(e):(jspb.asserts.fail("Cannot coerce to b64 string: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsB64",jspb.Message.bytesAsB64),jspb.Message.bytesAsU8=function(e){return e==null||e instanceof Uint8Array?e:typeof e=="string"?goog.crypt.base64.decodeStringToUint8Array(e):(jspb.asserts.fail("Cannot coerce to Uint8Array: "+goog.typeOf(e)),null)},goog.exportProperty(jspb.Message,"bytesAsU8",jspb.Message.bytesAsU8),jspb.Message.bytesListAsB64=function(e){return jspb.Message.assertConsistentTypes_(e),e.length&&typeof e[0]!="string"?goog.array.map(e,jspb.Message.bytesAsB64):e},goog.exportProperty(jspb.Message,"bytesListAsB64",jspb.Message.bytesListAsB64),jspb.Message.bytesListAsU8=function(e){return jspb.Message.assertConsistentTypes_(e),!e.length||e[0]instanceof Uint8Array?e:goog.array.map(e,jspb.Message.bytesAsU8)},goog.exportProperty(jspb.Message,"bytesListAsU8",jspb.Message.bytesListAsU8),jspb.Message.assertConsistentTypes_=function(e){if(goog.DEBUG&&e&&1<e.length){var t=goog.typeOf(e[0]);goog.array.forEach(e,function(n){goog.typeOf(n)!=t&&jspb.asserts.fail("Inconsistent type in JSPB repeated field array. Got "+goog.typeOf(n)+" expected "+t)})}},jspb.Message.getFieldWithDefault=function(e,t,n){return e=jspb.Message.getField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getFieldWithDefault",jspb.Message.getFieldWithDefault),jspb.Message.getBooleanFieldWithDefault=function(e,t,n){return e=jspb.Message.getBooleanField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getBooleanFieldWithDefault",jspb.Message.getBooleanFieldWithDefault),jspb.Message.getFloatingPointFieldWithDefault=function(e,t,n){return e=jspb.Message.getOptionalFloatingPointField(e,t),e==null?n:e},goog.exportProperty(jspb.Message,"getFloatingPointFieldWithDefault",jspb.Message.getFloatingPointFieldWithDefault),jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault,goog.exportProperty(jspb.Message,"getFieldProto3",jspb.Message.getFieldProto3),jspb.Message.getMapField=function(e,t,n,r){if(e.wrappers_||(e.wrappers_={}),t in e.wrappers_)return e.wrappers_[t];var o=jspb.Message.getField(e,t);if(!o){if(n)return;o=[],jspb.Message.setField(e,t,o)}return e.wrappers_[t]=new jspb.Map(o,r)},goog.exportProperty(jspb.Message,"getMapField",jspb.Message.getMapField),jspb.Message.setField=function(e,t,n){return jspb.asserts.assertInstanceof(e,jspb.Message),t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=n:(jspb.Message.maybeInitEmptyExtensionObject_(e),e.extensionObject_[t]=n),e},goog.exportProperty(jspb.Message,"setField",jspb.Message.setField),jspb.Message.setProto3IntField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3IntField",jspb.Message.setProto3IntField),jspb.Message.setProto3FloatField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3FloatField",jspb.Message.setProto3FloatField),jspb.Message.setProto3BooleanField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,!1)},goog.exportProperty(jspb.Message,"setProto3BooleanField",jspb.Message.setProto3BooleanField),jspb.Message.setProto3StringField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"")},goog.exportProperty(jspb.Message,"setProto3StringField",jspb.Message.setProto3StringField),jspb.Message.setProto3BytesField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"")},goog.exportProperty(jspb.Message,"setProto3BytesField",jspb.Message.setProto3BytesField),jspb.Message.setProto3EnumField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,0)},goog.exportProperty(jspb.Message,"setProto3EnumField",jspb.Message.setProto3EnumField),jspb.Message.setProto3StringIntField=function(e,t,n){return jspb.Message.setFieldIgnoringDefault_(e,t,n,"0")},goog.exportProperty(jspb.Message,"setProto3StringIntField",jspb.Message.setProto3StringIntField),jspb.Message.setFieldIgnoringDefault_=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),n!==r?jspb.Message.setField(e,t,n):t<e.pivot_?e.array[jspb.Message.getIndex_(e,t)]=null:(jspb.Message.maybeInitEmptyExtensionObject_(e),delete e.extensionObject_[t]),e},jspb.Message.addToRepeatedField=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),t=jspb.Message.getRepeatedField(e,t),r!=null?t.splice(r,0,n):t.push(n),e},goog.exportProperty(jspb.Message,"addToRepeatedField",jspb.Message.addToRepeatedField),jspb.Message.setOneofField=function(e,t,n,r){return jspb.asserts.assertInstanceof(e,jspb.Message),(n=jspb.Message.computeOneofCase(e,n))&&n!==t&&r!==void 0&&(e.wrappers_&&n in e.wrappers_&&(e.wrappers_[n]=void 0),jspb.Message.setField(e,n,void 0)),jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setOneofField",jspb.Message.setOneofField),jspb.Message.computeOneofCase=function(e,t){for(var n,r,o=0;o<t.length;o++){var s=t[o],g=jspb.Message.getField(e,s);g!=null&&(n=s,r=g,jspb.Message.setField(e,s,void 0))}return n?(jspb.Message.setField(e,n,r),n):0},goog.exportProperty(jspb.Message,"computeOneofCase",jspb.Message.computeOneofCase),jspb.Message.getWrapperField=function(e,t,n,r){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[n]){var o=jspb.Message.getField(e,n);(r||o)&&(e.wrappers_[n]=new t(o))}return e.wrappers_[n]},goog.exportProperty(jspb.Message,"getWrapperField",jspb.Message.getWrapperField),jspb.Message.getRepeatedWrapperField=function(e,t,n){return jspb.Message.wrapRepeatedField_(e,t,n),t=e.wrappers_[n],t==jspb.Message.EMPTY_LIST_SENTINEL_&&(t=e.wrappers_[n]=[]),t},goog.exportProperty(jspb.Message,"getRepeatedWrapperField",jspb.Message.getRepeatedWrapperField),jspb.Message.wrapRepeatedField_=function(e,t,n){if(e.wrappers_||(e.wrappers_={}),!e.wrappers_[n]){for(var r=jspb.Message.getRepeatedField(e,n),o=[],s=0;s<r.length;s++)o[s]=new t(r[s]);e.wrappers_[n]=o}},jspb.Message.setWrapperField=function(e,t,n){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var r=n&&n.toArray();return e.wrappers_[t]=n,jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setWrapperField",jspb.Message.setWrapperField),jspb.Message.setOneofWrapperField=function(e,t,n,r){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={});var o=r&&r.toArray();return e.wrappers_[t]=r,jspb.Message.setOneofField(e,t,n,o)},goog.exportProperty(jspb.Message,"setOneofWrapperField",jspb.Message.setOneofWrapperField),jspb.Message.setRepeatedWrapperField=function(e,t,n){jspb.asserts.assertInstanceof(e,jspb.Message),e.wrappers_||(e.wrappers_={}),n=n||[];for(var r=[],o=0;o<n.length;o++)r[o]=n[o].toArray();return e.wrappers_[t]=n,jspb.Message.setField(e,t,r)},goog.exportProperty(jspb.Message,"setRepeatedWrapperField",jspb.Message.setRepeatedWrapperField),jspb.Message.addToRepeatedWrapperField=function(e,t,n,r,o){jspb.Message.wrapRepeatedField_(e,r,t);var s=e.wrappers_[t];return s||(s=e.wrappers_[t]=[]),n=n||new r,e=jspb.Message.getRepeatedField(e,t),o!=null?(s.splice(o,0,n),e.splice(o,0,n.toArray())):(s.push(n),e.push(n.toArray())),n},goog.exportProperty(jspb.Message,"addToRepeatedWrapperField",jspb.Message.addToRepeatedWrapperField),jspb.Message.toMap=function(e,t,n,r){for(var o={},s=0;s<e.length;s++)o[t.call(e[s])]=n?n.call(e[s],r,e[s]):e[s];return o},goog.exportProperty(jspb.Message,"toMap",jspb.Message.toMap),jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var e in this.wrappers_){var t=this.wrappers_[e];if(Array.isArray(t))for(var n=0;n<t.length;n++)t[n]&&t[n].toArray();else t&&t.toArray()}},jspb.Message.prototype.toArray=function(){return this.syncMapFields_(),this.array},goog.exportProperty(jspb.Message.prototype,"toArray",jspb.Message.prototype.toArray),jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){return this.syncMapFields_(),this.array.toString()}),jspb.Message.prototype.getExtension=function(e){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var t=e.fieldIndex;if(e.isRepeated){if(e.isMessageType())return this.wrappers_[t]||(this.wrappers_[t]=goog.array.map(this.extensionObject_[t]||[],function(n){return new e.ctor(n)})),this.wrappers_[t]}else if(e.isMessageType())return!this.wrappers_[t]&&this.extensionObject_[t]&&(this.wrappers_[t]=new e.ctor(this.extensionObject_[t])),this.wrappers_[t];return this.extensionObject_[t]}},goog.exportProperty(jspb.Message.prototype,"getExtension",jspb.Message.prototype.getExtension),jspb.Message.prototype.setExtension=function(e,t){this.wrappers_||(this.wrappers_={}),jspb.Message.maybeInitEmptyExtensionObject_(this);var n=e.fieldIndex;return e.isRepeated?(t=t||[],e.isMessageType()?(this.wrappers_[n]=t,this.extensionObject_[n]=goog.array.map(t,function(r){return r.toArray()})):this.extensionObject_[n]=t):e.isMessageType()?(this.wrappers_[n]=t,this.extensionObject_[n]=t&&t.toArray()):this.extensionObject_[n]=t,this},goog.exportProperty(jspb.Message.prototype,"setExtension",jspb.Message.prototype.setExtension),jspb.Message.difference=function(e,t){if(!(e instanceof t.constructor))throw Error("Messages have different types.");var n=e.toArray();t=t.toArray();var r=[],o=0,s=n.length>t.length?n.length:t.length;for(e.getJsPbMessageId()&&(r[0]=e.getJsPbMessageId(),o=1);o<s;o++)jspb.Message.compareFields(n[o],t[o])||(r[o]=t[o]);return new e.constructor(r)},goog.exportProperty(jspb.Message,"difference",jspb.Message.difference),jspb.Message.equals=function(e,t){return e==t||!(!e||!t)&&e instanceof t.constructor&&jspb.Message.compareFields(e.toArray(),t.toArray())},goog.exportProperty(jspb.Message,"equals",jspb.Message.equals),jspb.Message.compareExtensions=function(e,t){e=e||{},t=t||{};var n={},r;for(r in e)n[r]=0;for(r in t)n[r]=0;for(r in n)if(!jspb.Message.compareFields(e[r],t[r]))return!1;return!0},goog.exportProperty(jspb.Message,"compareExtensions",jspb.Message.compareExtensions),jspb.Message.compareFields=function(e,t){if(e==t)return!0;if(!goog.isObject(e)||!goog.isObject(t))return typeof e=="number"&&isNaN(e)||typeof t=="number"&&isNaN(t)?String(e)==String(t):!1;if(e.constructor!=t.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e.constructor===Uint8Array){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0}if(e.constructor===Array){var r=void 0,o=void 0,s=Math.max(e.length,t.length);for(n=0;n<s;n++){var g=e[n],l=t[n];if(g&&g.constructor==Object&&(jspb.asserts.assert(r===void 0),jspb.asserts.assert(n===e.length-1),r=g,g=void 0),l&&l.constructor==Object&&(jspb.asserts.assert(o===void 0),jspb.asserts.assert(n===t.length-1),o=l,l=void 0),!jspb.Message.compareFields(g,l))return!1}return r||o?(r=r||{},o=o||{},jspb.Message.compareExtensions(r,o)):!0}if(e.constructor===Object)return jspb.Message.compareExtensions(e,t);throw Error("Invalid type in JSPB array")},goog.exportProperty(jspb.Message,"compareFields",jspb.Message.compareFields),jspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"cloneMessage",jspb.Message.prototype.cloneMessage),jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)},goog.exportProperty(jspb.Message.prototype,"clone",jspb.Message.prototype.clone),jspb.Message.clone=function(e){return jspb.Message.cloneMessage(e)},goog.exportProperty(jspb.Message,"clone",jspb.Message.clone),jspb.Message.cloneMessage=function(e){return new e.constructor(jspb.Message.clone_(e.toArray()))},jspb.Message.copyInto=function(e,t){jspb.asserts.assertInstanceof(e,jspb.Message),jspb.asserts.assertInstanceof(t,jspb.Message),jspb.asserts.assert(e.constructor==t.constructor,"Copy source and target message should have the same type."),e=jspb.Message.clone(e);for(var n=t.toArray(),r=e.toArray(),o=n.length=0;o<r.length;o++)n[o]=r[o];t.wrappers_=e.wrappers_,t.extensionObject_=e.extensionObject_},goog.exportProperty(jspb.Message,"copyInto",jspb.Message.copyInto),jspb.Message.clone_=function(e){if(Array.isArray(e)){for(var t=Array(e.length),n=0;n<e.length;n++){var r=e[n];r!=null&&(t[n]=typeof r=="object"?jspb.Message.clone_(jspb.asserts.assert(r)):r)}return t}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&e instanceof Uint8Array)return new Uint8Array(e);t={};for(n in e)r=e[n],r!=null&&(t[n]=typeof r=="object"?jspb.Message.clone_(jspb.asserts.assert(r)):r);return t},jspb.Message.registerMessageType=function(e,t){t.messageId=e},goog.exportProperty(jspb.Message,"registerMessageType",jspb.Message.registerMessageType),jspb.Message.messageSetExtensions={},jspb.Message.messageSetExtensionsBinary={},jspb.Export={},exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf})(googleProtobuf);var wrappers_pb={};(function(e){var t=googleProtobuf,n=t,r=typeof globalThis!="undefined"&&globalThis||typeof window!="undefined"&&window||typeof r!="undefined"&&r||typeof self!="undefined"&&self||function(){return this}.call(null)||Function("return this")();n.exportSymbol("proto.google.protobuf.BoolValue",null,r),n.exportSymbol("proto.google.protobuf.BytesValue",null,r),n.exportSymbol("proto.google.protobuf.DoubleValue",null,r),n.exportSymbol("proto.google.protobuf.FloatValue",null,r),n.exportSymbol("proto.google.protobuf.Int32Value",null,r),n.exportSymbol("proto.google.protobuf.Int64Value",null,r),n.exportSymbol("proto.google.protobuf.StringValue",null,r),n.exportSymbol("proto.google.protobuf.UInt32Value",null,r),n.exportSymbol("proto.google.protobuf.UInt64Value",null,r),proto.google.protobuf.DoubleValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.DoubleValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.DoubleValue.displayName="proto.google.protobuf.DoubleValue"),proto.google.protobuf.FloatValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.FloatValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.FloatValue.displayName="proto.google.protobuf.FloatValue"),proto.google.protobuf.Int64Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.Int64Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.Int64Value.displayName="proto.google.protobuf.Int64Value"),proto.google.protobuf.UInt64Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.UInt64Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.UInt64Value.displayName="proto.google.protobuf.UInt64Value"),proto.google.protobuf.Int32Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.Int32Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.Int32Value.displayName="proto.google.protobuf.Int32Value"),proto.google.protobuf.UInt32Value=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.UInt32Value,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.UInt32Value.displayName="proto.google.protobuf.UInt32Value"),proto.google.protobuf.BoolValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.BoolValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.BoolValue.displayName="proto.google.protobuf.BoolValue"),proto.google.protobuf.StringValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.StringValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.StringValue.displayName="proto.google.protobuf.StringValue"),proto.google.protobuf.BytesValue=function(o){t.Message.initialize(this,o,0,-1,null,null)},n.inherits(proto.google.protobuf.BytesValue,t.Message),n.DEBUG&&!COMPILED&&(proto.google.protobuf.BytesValue.displayName="proto.google.protobuf.BytesValue"),t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.DoubleValue.prototype.toObject=function(o){return proto.google.protobuf.DoubleValue.toObject(o,this)},proto.google.protobuf.DoubleValue.toObject=function(o,s){var g={value:t.Message.getFloatingPointFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.DoubleValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.DoubleValue;return proto.google.protobuf.DoubleValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.DoubleValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readDouble();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.DoubleValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.DoubleValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.DoubleValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeDouble(1,g)},proto.google.protobuf.DoubleValue.prototype.getValue=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.google.protobuf.DoubleValue.prototype.setValue=function(o){return t.Message.setProto3FloatField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.FloatValue.prototype.toObject=function(o){return proto.google.protobuf.FloatValue.toObject(o,this)},proto.google.protobuf.FloatValue.toObject=function(o,s){var g={value:t.Message.getFloatingPointFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.FloatValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.FloatValue;return proto.google.protobuf.FloatValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.FloatValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readFloat();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.FloatValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.FloatValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.FloatValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeFloat(1,g)},proto.google.protobuf.FloatValue.prototype.getValue=function(){return t.Message.getFloatingPointFieldWithDefault(this,1,0)},proto.google.protobuf.FloatValue.prototype.setValue=function(o){return t.Message.setProto3FloatField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Int64Value.prototype.toObject=function(o){return proto.google.protobuf.Int64Value.toObject(o,this)},proto.google.protobuf.Int64Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.Int64Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.Int64Value;return proto.google.protobuf.Int64Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.Int64Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readInt64();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.Int64Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.Int64Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.Int64Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeInt64(1,g)},proto.google.protobuf.Int64Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.Int64Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.UInt64Value.prototype.toObject=function(o){return proto.google.protobuf.UInt64Value.toObject(o,this)},proto.google.protobuf.UInt64Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.UInt64Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.UInt64Value;return proto.google.protobuf.UInt64Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.UInt64Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readUint64();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.UInt64Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.UInt64Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.UInt64Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeUint64(1,g)},proto.google.protobuf.UInt64Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.UInt64Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.Int32Value.prototype.toObject=function(o){return proto.google.protobuf.Int32Value.toObject(o,this)},proto.google.protobuf.Int32Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.Int32Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.Int32Value;return proto.google.protobuf.Int32Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.Int32Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readInt32();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.Int32Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.Int32Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.Int32Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeInt32(1,g)},proto.google.protobuf.Int32Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.Int32Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.UInt32Value.prototype.toObject=function(o){return proto.google.protobuf.UInt32Value.toObject(o,this)},proto.google.protobuf.UInt32Value.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,0)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.UInt32Value.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.UInt32Value;return proto.google.protobuf.UInt32Value.deserializeBinaryFromReader(g,s)},proto.google.protobuf.UInt32Value.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readUint32();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.UInt32Value.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.UInt32Value.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.UInt32Value.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g!==0&&s.writeUint32(1,g)},proto.google.protobuf.UInt32Value.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,0)},proto.google.protobuf.UInt32Value.prototype.setValue=function(o){return t.Message.setProto3IntField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BoolValue.prototype.toObject=function(o){return proto.google.protobuf.BoolValue.toObject(o,this)},proto.google.protobuf.BoolValue.toObject=function(o,s){var g={value:t.Message.getBooleanFieldWithDefault(s,1,!1)};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.BoolValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.BoolValue;return proto.google.protobuf.BoolValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.BoolValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readBool();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.BoolValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.BoolValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.BoolValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g&&s.writeBool(1,g)},proto.google.protobuf.BoolValue.prototype.getValue=function(){return t.Message.getBooleanFieldWithDefault(this,1,!1)},proto.google.protobuf.BoolValue.prototype.setValue=function(o){return t.Message.setProto3BooleanField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.StringValue.prototype.toObject=function(o){return proto.google.protobuf.StringValue.toObject(o,this)},proto.google.protobuf.StringValue.toObject=function(o,s){var g={value:t.Message.getFieldWithDefault(s,1,"")};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.StringValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.StringValue;return proto.google.protobuf.StringValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.StringValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readString();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.StringValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.StringValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.StringValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue(),g.length>0&&s.writeString(1,g)},proto.google.protobuf.StringValue.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.StringValue.prototype.setValue=function(o){return t.Message.setProto3StringField(this,1,o)},t.Message.GENERATE_TO_OBJECT&&(proto.google.protobuf.BytesValue.prototype.toObject=function(o){return proto.google.protobuf.BytesValue.toObject(o,this)},proto.google.protobuf.BytesValue.toObject=function(o,s){var g={value:s.getValue_asB64()};return o&&(g.$jspbMessageInstance=s),g}),proto.google.protobuf.BytesValue.deserializeBinary=function(o){var s=new t.BinaryReader(o),g=new proto.google.protobuf.BytesValue;return proto.google.protobuf.BytesValue.deserializeBinaryFromReader(g,s)},proto.google.protobuf.BytesValue.deserializeBinaryFromReader=function(o,s){for(;s.nextField()&&!s.isEndGroup();){var g=s.getFieldNumber();switch(g){case 1:var l=s.readBytes();o.setValue(l);break;default:s.skipField();break}}return o},proto.google.protobuf.BytesValue.prototype.serializeBinary=function(){var o=new t.BinaryWriter;return proto.google.protobuf.BytesValue.serializeBinaryToWriter(this,o),o.getResultBuffer()},proto.google.protobuf.BytesValue.serializeBinaryToWriter=function(o,s){var g=void 0;g=o.getValue_asU8(),g.length>0&&s.writeBytes(1,g)},proto.google.protobuf.BytesValue.prototype.getValue=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.google.protobuf.BytesValue.prototype.getValue_asB64=function(){return t.Message.bytesAsB64(this.getValue())},proto.google.protobuf.BytesValue.prototype.getValue_asU8=function(){return t.Message.bytesAsU8(this.getValue())},proto.google.protobuf.BytesValue.prototype.setValue=function(o){return t.Message.setProto3BytesField(this,1,o)},n.object.extend(e,proto.google.protobuf)})(wrappers_pb),function(e){var t=googleProtobuf,n=t,r=typeof globalThis!="undefined"&&globalThis||typeof window!="undefined"&&window||typeof r!="undefined"&&r||typeof self!="undefined"&&self||function(){return this}.call(null)||Function("return this")(),o=wrappers_pb;n.object.extend(proto,o),n.exportSymbol("proto.v1.signaling.api.CreatePeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.CreatePeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.DeletePeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.DeletePeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetHealthRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetHealthResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetIceServersRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetIceServersResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetPeersRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetPeersResponse",null,r),n.exportSymbol("proto.v1.signaling.api.GetSessionsRequest",null,r),n.exportSymbol("proto.v1.signaling.api.GetSessionsResponse",null,r),n.exportSymbol("proto.v1.signaling.api.Peer",null,r),n.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamRequest",null,r),n.exportSymbol("proto.v1.signaling.api.ReceiveSignalStreamResponse",null,r),n.exportSymbol("proto.v1.signaling.api.RefreshPeerRequest",null,r),n.exportSymbol("proto.v1.signaling.api.RefreshPeerResponse",null,r),n.exportSymbol("proto.v1.signaling.api.RtcSession",null,r),n.exportSymbol("proto.v1.signaling.api.SendSignalRequest",null,r),n.exportSymbol("proto.v1.signaling.api.SendSignalResponse",null,r),n.exportSymbol("proto.v1.signaling.api.SessionType",null,r),n.exportSymbol("proto.v1.signaling.api.Signal",null,r),proto.v1.signaling.api.Peer=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.Peer.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.Peer,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Peer.displayName="proto.v1.signaling.api.Peer"),proto.v1.signaling.api.Signal=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.Signal,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.Signal.displayName="proto.v1.signaling.api.Signal"),proto.v1.signaling.api.RtcSession=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RtcSession,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RtcSession.displayName="proto.v1.signaling.api.RtcSession"),proto.v1.signaling.api.GetSessionsRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetSessionsRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsRequest.displayName="proto.v1.signaling.api.GetSessionsRequest"),proto.v1.signaling.api.GetSessionsResponse=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.GetSessionsResponse.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.GetSessionsResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetSessionsResponse.displayName="proto.v1.signaling.api.GetSessionsResponse"),proto.v1.signaling.api.GetHealthRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetHealthRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthRequest.displayName="proto.v1.signaling.api.GetHealthRequest"),proto.v1.signaling.api.GetHealthResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetHealthResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetHealthResponse.displayName="proto.v1.signaling.api.GetHealthResponse"),proto.v1.signaling.api.CreatePeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.CreatePeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerRequest.displayName="proto.v1.signaling.api.CreatePeerRequest"),proto.v1.signaling.api.CreatePeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.CreatePeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.CreatePeerResponse.displayName="proto.v1.signaling.api.CreatePeerResponse"),proto.v1.signaling.api.DeletePeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.DeletePeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerRequest.displayName="proto.v1.signaling.api.DeletePeerRequest"),proto.v1.signaling.api.DeletePeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.DeletePeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.DeletePeerResponse.displayName="proto.v1.signaling.api.DeletePeerResponse"),proto.v1.signaling.api.RefreshPeerRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RefreshPeerRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerRequest.displayName="proto.v1.signaling.api.RefreshPeerRequest"),proto.v1.signaling.api.RefreshPeerResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.RefreshPeerResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.RefreshPeerResponse.displayName="proto.v1.signaling.api.RefreshPeerResponse"),proto.v1.signaling.api.GetPeersRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetPeersRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersRequest.displayName="proto.v1.signaling.api.GetPeersRequest"),proto.v1.signaling.api.GetPeersResponse=function(s){t.Message.initialize(this,s,0,-1,proto.v1.signaling.api.GetPeersResponse.repeatedFields_,null)},n.inherits(proto.v1.signaling.api.GetPeersResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetPeersResponse.displayName="proto.v1.signaling.api.GetPeersResponse"),proto.v1.signaling.api.GetIceServersRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetIceServersRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersRequest.displayName="proto.v1.signaling.api.GetIceServersRequest"),proto.v1.signaling.api.GetIceServersResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.GetIceServersResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.GetIceServersResponse.displayName="proto.v1.signaling.api.GetIceServersResponse"),proto.v1.signaling.api.SendSignalRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.SendSignalRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalRequest.displayName="proto.v1.signaling.api.SendSignalRequest"),proto.v1.signaling.api.SendSignalResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.SendSignalResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.SendSignalResponse.displayName="proto.v1.signaling.api.SendSignalResponse"),proto.v1.signaling.api.ReceiveSignalStreamRequest=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.ReceiveSignalStreamRequest,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.displayName="proto.v1.signaling.api.ReceiveSignalStreamRequest"),proto.v1.signaling.api.ReceiveSignalStreamResponse=function(s){t.Message.initialize(this,s,0,-1,null,null)},n.inherits(proto.v1.signaling.api.ReceiveSignalStreamResponse,t.Message),n.DEBUG&&!COMPILED&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.displayName="proto.v1.signaling.api.ReceiveSignalStreamResponse"),proto.v1.signaling.api.Peer.repeatedFields_=[5],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Peer.prototype.toObject=function(s){return proto.v1.signaling.api.Peer.toObject(s,this)},proto.v1.signaling.api.Peer.toObject=function(s,g){var l,u={peerId:t.Message.getFieldWithDefault(g,1,""),organizationId:t.Message.getFieldWithDefault(g,2,""),userId:(l=g.getUserId())&&o.StringValue.toObject(s,l),deviceId:(l=g.getDeviceId())&&o.StringValue.toObject(s,l),sessionIdsList:(l=t.Message.getRepeatedField(g,5))==null?void 0:l,peerCreatedTimestamp:(l=g.getPeerCreatedTimestamp())&&o.Int64Value.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.Peer.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.Peer;return proto.v1.signaling.api.Peer.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.Peer.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;case 2:var u=g.readString();s.setOrganizationId(u);break;case 3:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setUserId(u);break;case 4:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setDeviceId(u);break;case 5:var u=g.readString();s.addSessionIds(u);break;case 6:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setPeerCreatedTimestamp(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.Peer.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.Peer.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.Peer.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l),l=s.getOrganizationId(),l.length>0&&g.writeString(2,l),l=s.getUserId(),l!=null&&g.writeMessage(3,l,o.StringValue.serializeBinaryToWriter),l=s.getDeviceId(),l!=null&&g.writeMessage(4,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionIdsList(),l.length>0&&g.writeRepeatedString(5,l),l=s.getPeerCreatedTimestamp(),l!=null&&g.writeMessage(6,l,o.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.Peer.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.Peer.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},proto.v1.signaling.api.Peer.prototype.getOrganizationId=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.Peer.prototype.setOrganizationId=function(s){return t.Message.setProto3StringField(this,2,s)},proto.v1.signaling.api.Peer.prototype.getUserId=function(){return t.Message.getWrapperField(this,o.StringValue,3)},proto.v1.signaling.api.Peer.prototype.setUserId=function(s){return t.Message.setWrapperField(this,3,s)},proto.v1.signaling.api.Peer.prototype.clearUserId=function(){return this.setUserId(void 0)},proto.v1.signaling.api.Peer.prototype.hasUserId=function(){return t.Message.getField(this,3)!=null},proto.v1.signaling.api.Peer.prototype.getDeviceId=function(){return t.Message.getWrapperField(this,o.StringValue,4)},proto.v1.signaling.api.Peer.prototype.setDeviceId=function(s){return t.Message.setWrapperField(this,4,s)},proto.v1.signaling.api.Peer.prototype.clearDeviceId=function(){return this.setDeviceId(void 0)},proto.v1.signaling.api.Peer.prototype.hasDeviceId=function(){return t.Message.getField(this,4)!=null},proto.v1.signaling.api.Peer.prototype.getSessionIdsList=function(){return t.Message.getRepeatedField(this,5)},proto.v1.signaling.api.Peer.prototype.setSessionIdsList=function(s){return t.Message.setField(this,5,s||[])},proto.v1.signaling.api.Peer.prototype.addSessionIds=function(s,g){return t.Message.addToRepeatedField(this,5,s,g)},proto.v1.signaling.api.Peer.prototype.clearSessionIdsList=function(){return this.setSessionIdsList([])},proto.v1.signaling.api.Peer.prototype.getPeerCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,6)},proto.v1.signaling.api.Peer.prototype.setPeerCreatedTimestamp=function(s){return t.Message.setWrapperField(this,6,s)},proto.v1.signaling.api.Peer.prototype.clearPeerCreatedTimestamp=function(){return this.setPeerCreatedTimestamp(void 0)},proto.v1.signaling.api.Peer.prototype.hasPeerCreatedTimestamp=function(){return t.Message.getField(this,6)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.Signal.prototype.toObject=function(s){return proto.v1.signaling.api.Signal.toObject(s,this)},proto.v1.signaling.api.Signal.toObject=function(s,g){var l,u={sessionId:(l=g.getSessionId())&&o.StringValue.toObject(s,l),sessionCreatedTimestamp:(l=g.getSessionCreatedTimestamp())&&o.Int64Value.toObject(s,l),senderId:t.Message.getFieldWithDefault(g,3,""),receiverId:t.Message.getFieldWithDefault(g,4,""),payload:t.Message.getFieldWithDefault(g,5,""),iceServers:t.Message.getFieldWithDefault(g,6,""),iceTransportPolicy:t.Message.getFieldWithDefault(g,7,""),sessionType:t.Message.getFieldWithDefault(g,8,0)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.Signal.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.Signal;return proto.v1.signaling.api.Signal.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.Signal.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setSessionId(u);break;case 2:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setSessionCreatedTimestamp(u);break;case 3:var u=g.readString();s.setSenderId(u);break;case 4:var u=g.readString();s.setReceiverId(u);break;case 5:var u=g.readString();s.setPayload(u);break;case 6:var u=g.readString();s.setIceServers(u);break;case 7:var u=g.readString();s.setIceTransportPolicy(u);break;case 8:var u=g.readEnum();s.setSessionType(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.Signal.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.Signal.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.Signal.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l!=null&&g.writeMessage(1,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionCreatedTimestamp(),l!=null&&g.writeMessage(2,l,o.Int64Value.serializeBinaryToWriter),l=s.getSenderId(),l.length>0&&g.writeString(3,l),l=s.getReceiverId(),l.length>0&&g.writeString(4,l),l=s.getPayload(),l.length>0&&g.writeString(5,l),l=s.getIceServers(),l.length>0&&g.writeString(6,l),l=s.getIceTransportPolicy(),l.length>0&&g.writeString(7,l),l=s.getSessionType(),l!==0&&g.writeEnum(8,l)},proto.v1.signaling.api.Signal.prototype.getSessionId=function(){return t.Message.getWrapperField(this,o.StringValue,1)},proto.v1.signaling.api.Signal.prototype.setSessionId=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.Signal.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionId=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.Signal.prototype.getSessionCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,2)},proto.v1.signaling.api.Signal.prototype.setSessionCreatedTimestamp=function(s){return t.Message.setWrapperField(this,2,s)},proto.v1.signaling.api.Signal.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.Signal.prototype.hasSessionCreatedTimestamp=function(){return t.Message.getField(this,2)!=null},proto.v1.signaling.api.Signal.prototype.getSenderId=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.Signal.prototype.setSenderId=function(s){return t.Message.setProto3StringField(this,3,s)},proto.v1.signaling.api.Signal.prototype.getReceiverId=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.Signal.prototype.setReceiverId=function(s){return t.Message.setProto3StringField(this,4,s)},proto.v1.signaling.api.Signal.prototype.getPayload=function(){return t.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.Signal.prototype.setPayload=function(s){return t.Message.setProto3StringField(this,5,s)},proto.v1.signaling.api.Signal.prototype.getIceServers=function(){return t.Message.getFieldWithDefault(this,6,"")},proto.v1.signaling.api.Signal.prototype.setIceServers=function(s){return t.Message.setProto3StringField(this,6,s)},proto.v1.signaling.api.Signal.prototype.getIceTransportPolicy=function(){return t.Message.getFieldWithDefault(this,7,"")},proto.v1.signaling.api.Signal.prototype.setIceTransportPolicy=function(s){return t.Message.setProto3StringField(this,7,s)},proto.v1.signaling.api.Signal.prototype.getSessionType=function(){return t.Message.getFieldWithDefault(this,8,0)},proto.v1.signaling.api.Signal.prototype.setSessionType=function(s){return t.Message.setProto3EnumField(this,8,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RtcSession.prototype.toObject=function(s){return proto.v1.signaling.api.RtcSession.toObject(s,this)},proto.v1.signaling.api.RtcSession.toObject=function(s,g){var l={sessionId:t.Message.getFieldWithDefault(g,1,""),offerPeerId:t.Message.getFieldWithDefault(g,2,""),answerPeerId:t.Message.getFieldWithDefault(g,3,""),organizationId:t.Message.getFieldWithDefault(g,4,""),sessionType:t.Message.getFieldWithDefault(g,5,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.RtcSession.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RtcSession;return proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setSessionId(u);break;case 2:var u=g.readString();s.setOfferPeerId(u);break;case 3:var u=g.readString();s.setAnswerPeerId(u);break;case 4:var u=g.readString();s.setOrganizationId(u);break;case 5:var u=g.readString();s.setSessionType(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.RtcSession.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RtcSession.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RtcSession.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l.length>0&&g.writeString(1,l),l=s.getOfferPeerId(),l.length>0&&g.writeString(2,l),l=s.getAnswerPeerId(),l.length>0&&g.writeString(3,l),l=s.getOrganizationId(),l.length>0&&g.writeString(4,l),l=s.getSessionType(),l.length>0&&g.writeString(5,l)},proto.v1.signaling.api.RtcSession.prototype.getSessionId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionId=function(s){return t.Message.setProto3StringField(this,1,s)},proto.v1.signaling.api.RtcSession.prototype.getOfferPeerId=function(){return t.Message.getFieldWithDefault(this,2,"")},proto.v1.signaling.api.RtcSession.prototype.setOfferPeerId=function(s){return t.Message.setProto3StringField(this,2,s)},proto.v1.signaling.api.RtcSession.prototype.getAnswerPeerId=function(){return t.Message.getFieldWithDefault(this,3,"")},proto.v1.signaling.api.RtcSession.prototype.setAnswerPeerId=function(s){return t.Message.setProto3StringField(this,3,s)},proto.v1.signaling.api.RtcSession.prototype.getOrganizationId=function(){return t.Message.getFieldWithDefault(this,4,"")},proto.v1.signaling.api.RtcSession.prototype.setOrganizationId=function(s){return t.Message.setProto3StringField(this,4,s)},proto.v1.signaling.api.RtcSession.prototype.getSessionType=function(){return t.Message.getFieldWithDefault(this,5,"")},proto.v1.signaling.api.RtcSession.prototype.setSessionType=function(s){return t.Message.setProto3StringField(this,5,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetSessionsRequest.toObject(s,this)},proto.v1.signaling.api.GetSessionsRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetSessionsRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetSessionsRequest;return proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetSessionsRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetSessionsRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetSessionsRequest.serializeBinaryToWriter=function(s,g){},proto.v1.signaling.api.GetSessionsResponse.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetSessionsResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetSessionsResponse.toObject(s,this)},proto.v1.signaling.api.GetSessionsResponse.toObject=function(s,g){var l={sessionsList:t.Message.toObjectList(g.getSessionsList(),proto.v1.signaling.api.RtcSession.toObject,s)};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetSessionsResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetSessionsResponse;return proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetSessionsResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.RtcSession;g.readMessage(u,proto.v1.signaling.api.RtcSession.deserializeBinaryFromReader),s.addSessions(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetSessionsResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetSessionsResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionsList(),l.length>0&&g.writeRepeatedMessage(1,l,proto.v1.signaling.api.RtcSession.serializeBinaryToWriter)},proto.v1.signaling.api.GetSessionsResponse.prototype.getSessionsList=function(){return t.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.RtcSession,1)},proto.v1.signaling.api.GetSessionsResponse.prototype.setSessionsList=function(s){return t.Message.setRepeatedWrapperField(this,1,s)},proto.v1.signaling.api.GetSessionsResponse.prototype.addSessions=function(s,g){return t.Message.addToRepeatedWrapperField(this,1,s,proto.v1.signaling.api.RtcSession,g)},proto.v1.signaling.api.GetSessionsResponse.prototype.clearSessionsList=function(){return this.setSessionsList([])},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetHealthRequest.toObject(s,this)},proto.v1.signaling.api.GetHealthRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetHealthRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetHealthRequest;return proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetHealthRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetHealthRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetHealthRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetHealthResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetHealthResponse.toObject(s,this)},proto.v1.signaling.api.GetHealthResponse.toObject=function(s,g){var l={version:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetHealthResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetHealthResponse;return proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetHealthResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setVersion(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetHealthResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetHealthResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getVersion(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.GetHealthResponse.prototype.getVersion=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetHealthResponse.prototype.setVersion=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.CreatePeerRequest.toObject(s,this)},proto.v1.signaling.api.CreatePeerRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.CreatePeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.CreatePeerRequest;return proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.CreatePeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.CreatePeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.CreatePeerRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.CreatePeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.CreatePeerResponse.toObject(s,this)},proto.v1.signaling.api.CreatePeerResponse.toObject=function(s,g){var l,u={peer:(l=g.getPeer())&&proto.v1.signaling.api.Peer.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.CreatePeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.CreatePeerResponse;return proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.CreatePeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.setPeer(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.CreatePeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.CreatePeerResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeer(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.CreatePeerResponse.prototype.getPeer=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.CreatePeerResponse.prototype.setPeer=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.CreatePeerResponse.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.CreatePeerResponse.prototype.hasPeer=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.DeletePeerRequest.toObject(s,this)},proto.v1.signaling.api.DeletePeerRequest.toObject=function(s,g){var l={peerId:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.DeletePeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.DeletePeerRequest;return proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.DeletePeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.DeletePeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.DeletePeerRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.DeletePeerRequest.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.DeletePeerRequest.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.DeletePeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.DeletePeerResponse.toObject(s,this)},proto.v1.signaling.api.DeletePeerResponse.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.DeletePeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.DeletePeerResponse;return proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.DeletePeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.DeletePeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.DeletePeerResponse.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerRequest.prototype.toObject=function(s){return proto.v1.signaling.api.RefreshPeerRequest.toObject(s,this)},proto.v1.signaling.api.RefreshPeerRequest.toObject=function(s,g){var l,u={peer:(l=g.getPeer())&&proto.v1.signaling.api.Peer.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.RefreshPeerRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RefreshPeerRequest;return proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RefreshPeerRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.setPeer(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.RefreshPeerRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RefreshPeerRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeer(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.RefreshPeerRequest.prototype.getPeer=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.RefreshPeerRequest.prototype.setPeer=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.RefreshPeerRequest.prototype.clearPeer=function(){return this.setPeer(void 0)},proto.v1.signaling.api.RefreshPeerRequest.prototype.hasPeer=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.RefreshPeerResponse.prototype.toObject=function(s){return proto.v1.signaling.api.RefreshPeerResponse.toObject(s,this)},proto.v1.signaling.api.RefreshPeerResponse.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.RefreshPeerResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.RefreshPeerResponse;return proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.RefreshPeerResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.RefreshPeerResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.RefreshPeerResponse.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetPeersRequest.toObject(s,this)},proto.v1.signaling.api.GetPeersRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetPeersRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetPeersRequest;return proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetPeersRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetPeersRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetPeersRequest.serializeBinaryToWriter=function(s,g){},proto.v1.signaling.api.GetPeersResponse.repeatedFields_=[1],t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetPeersResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetPeersResponse.toObject(s,this)},proto.v1.signaling.api.GetPeersResponse.toObject=function(s,g){var l={peersList:t.Message.toObjectList(g.getPeersList(),proto.v1.signaling.api.Peer.toObject,s)};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetPeersResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetPeersResponse;return proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetPeersResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Peer;g.readMessage(u,proto.v1.signaling.api.Peer.deserializeBinaryFromReader),s.addPeers(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetPeersResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetPeersResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeersList(),l.length>0&&g.writeRepeatedMessage(1,l,proto.v1.signaling.api.Peer.serializeBinaryToWriter)},proto.v1.signaling.api.GetPeersResponse.prototype.getPeersList=function(){return t.Message.getRepeatedWrapperField(this,proto.v1.signaling.api.Peer,1)},proto.v1.signaling.api.GetPeersResponse.prototype.setPeersList=function(s){return t.Message.setRepeatedWrapperField(this,1,s)},proto.v1.signaling.api.GetPeersResponse.prototype.addPeers=function(s,g){return t.Message.addToRepeatedWrapperField(this,1,s,proto.v1.signaling.api.Peer,g)},proto.v1.signaling.api.GetPeersResponse.prototype.clearPeersList=function(){return this.setPeersList([])},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersRequest.prototype.toObject=function(s){return proto.v1.signaling.api.GetIceServersRequest.toObject(s,this)},proto.v1.signaling.api.GetIceServersRequest.toObject=function(s,g){var l={};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetIceServersRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetIceServersRequest;return proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetIceServersRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){default:g.skipField();break}}return s},proto.v1.signaling.api.GetIceServersRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetIceServersRequest.serializeBinaryToWriter=function(s,g){},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.GetIceServersResponse.prototype.toObject=function(s){return proto.v1.signaling.api.GetIceServersResponse.toObject(s,this)},proto.v1.signaling.api.GetIceServersResponse.toObject=function(s,g){var l={iceServers:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.GetIceServersResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.GetIceServersResponse;return proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.GetIceServersResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setIceServers(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.GetIceServersResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.GetIceServersResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getIceServers(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.GetIceServersResponse.prototype.getIceServers=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.GetIceServersResponse.prototype.setIceServers=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalRequest.prototype.toObject=function(s){return proto.v1.signaling.api.SendSignalRequest.toObject(s,this)},proto.v1.signaling.api.SendSignalRequest.toObject=function(s,g){var l,u={signal:(l=g.getSignal())&&proto.v1.signaling.api.Signal.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.SendSignalRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.SendSignalRequest;return proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.SendSignalRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Signal;g.readMessage(u,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),s.setSignal(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.SendSignalRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.SendSignalRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSignal(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalRequest.prototype.getSignal=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.SendSignalRequest.prototype.setSignal=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.SendSignalRequest.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.SendSignalRequest.prototype.hasSignal=function(){return t.Message.getField(this,1)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.SendSignalResponse.prototype.toObject=function(s){return proto.v1.signaling.api.SendSignalResponse.toObject(s,this)},proto.v1.signaling.api.SendSignalResponse.toObject=function(s,g){var l,u={sessionId:(l=g.getSessionId())&&o.StringValue.toObject(s,l),sessionCreatedTimestamp:(l=g.getSessionCreatedTimestamp())&&o.Int64Value.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.SendSignalResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.SendSignalResponse;return proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.SendSignalResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new o.StringValue;g.readMessage(u,o.StringValue.deserializeBinaryFromReader),s.setSessionId(u);break;case 2:var u=new o.Int64Value;g.readMessage(u,o.Int64Value.deserializeBinaryFromReader),s.setSessionCreatedTimestamp(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.SendSignalResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.SendSignalResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSessionId(),l!=null&&g.writeMessage(1,l,o.StringValue.serializeBinaryToWriter),l=s.getSessionCreatedTimestamp(),l!=null&&g.writeMessage(2,l,o.Int64Value.serializeBinaryToWriter)},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionId=function(){return t.Message.getWrapperField(this,o.StringValue,1)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionId=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionId=function(){return this.setSessionId(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionId=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.SendSignalResponse.prototype.getSessionCreatedTimestamp=function(){return t.Message.getWrapperField(this,o.Int64Value,2)},proto.v1.signaling.api.SendSignalResponse.prototype.setSessionCreatedTimestamp=function(s){return t.Message.setWrapperField(this,2,s)},proto.v1.signaling.api.SendSignalResponse.prototype.clearSessionCreatedTimestamp=function(){return this.setSessionCreatedTimestamp(void 0)},proto.v1.signaling.api.SendSignalResponse.prototype.hasSessionCreatedTimestamp=function(){return t.Message.getField(this,2)!=null},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.toObject=function(s){return proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject(s,this)},proto.v1.signaling.api.ReceiveSignalStreamRequest.toObject=function(s,g){var l={peerId:t.Message.getFieldWithDefault(g,1,"")};return s&&(l.$jspbMessageInstance=g),l}),proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.ReceiveSignalStreamRequest;return proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.ReceiveSignalStreamRequest.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=g.readString();s.setPeerId(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamRequest.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getPeerId(),l.length>0&&g.writeString(1,l)},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.getPeerId=function(){return t.Message.getFieldWithDefault(this,1,"")},proto.v1.signaling.api.ReceiveSignalStreamRequest.prototype.setPeerId=function(s){return t.Message.setProto3StringField(this,1,s)},t.Message.GENERATE_TO_OBJECT&&(proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.toObject=function(s){return proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject(s,this)},proto.v1.signaling.api.ReceiveSignalStreamResponse.toObject=function(s,g){var l,u={signal:(l=g.getSignal())&&proto.v1.signaling.api.Signal.toObject(s,l)};return s&&(u.$jspbMessageInstance=g),u}),proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinary=function(s){var g=new t.BinaryReader(s),l=new proto.v1.signaling.api.ReceiveSignalStreamResponse;return proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader(l,g)},proto.v1.signaling.api.ReceiveSignalStreamResponse.deserializeBinaryFromReader=function(s,g){for(;g.nextField()&&!g.isEndGroup();){var l=g.getFieldNumber();switch(l){case 1:var u=new proto.v1.signaling.api.Signal;g.readMessage(u,proto.v1.signaling.api.Signal.deserializeBinaryFromReader),s.setSignal(u);break;default:g.skipField();break}}return s},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.serializeBinary=function(){var s=new t.BinaryWriter;return proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter(this,s),s.getResultBuffer()},proto.v1.signaling.api.ReceiveSignalStreamResponse.serializeBinaryToWriter=function(s,g){var l=void 0;l=s.getSignal(),l!=null&&g.writeMessage(1,l,proto.v1.signaling.api.Signal.serializeBinaryToWriter)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.getSignal=function(){return t.Message.getWrapperField(this,proto.v1.signaling.api.Signal,1)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.setSignal=function(s){return t.Message.setWrapperField(this,1,s)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.clearSignal=function(){return this.setSignal(void 0)},proto.v1.signaling.api.ReceiveSignalStreamResponse.prototype.hasSignal=function(){return t.Message.getField(this,1)!=null},proto.v1.signaling.api.SessionType={UNKNOWN:0,TELEOP:1,PORT_FORWARD:2,OBSERVE:3,HEADLESS:4},n.object.extend(e,proto.v1.signaling.api)}(signaling_pb);const encodedJs$2="KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiOyhmdW5jdGlvbihTKXt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShTKTpTKCl9KShmdW5jdGlvbigpe2NvbnN0IEo9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07dmFyIHk9e30sRj17fSxhPXt9O09iamVjdC5kZWZpbmVQcm9wZXJ0eShhLCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBHPSJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWmFiY2RlZmdoaWprbG1ub3BxcnN0dXZ3eHl6MDEyMzQ1Njc4OSsvPSI7ZnVuY3Rpb24gaChBKXtsZXQgST1BLmxlbmd0aDtBW0EubGVuZ3RoLTJdPT09Ij0iP0ktPTI6QVtBLmxlbmd0aC0xXT09PSI9IiYmSS0tO2NvbnN0IGc9SS80KjN8MCxCPW5ldyBVaW50OEFycmF5KGcpO2ZvcihsZXQgUT0wLEM9MDtRPGc7USs9Myl7Y29uc3QgRD1HLmluZGV4T2YoQVtDKytdKSxFPUcuaW5kZXhPZihBW0MrK10pO2lmKEJbUV09RDw8MnxFPj40LEM9PT1JKWJyZWFrO2NvbnN0IHc9Ry5pbmRleE9mKEFbQysrXXx8Ij0iKTtpZihCW1ErMV09KEUmMTUpPDw0fHc+PjIsQz09PUkpYnJlYWs7Y29uc3Qgbz1HLmluZGV4T2YoQVtDKytdfHwiPSIpO0JbUSsyXT0odyYzKTw8NnxvfXJldHVybiBCfWEuZGVjb2RlPWgsT2JqZWN0LmRlZmluZVByb3BlcnR5KEYsIl9fZXNNb2R1bGUiLHt2YWx1ZTohMH0pO2NvbnN0IEw9IkFHRnpiUUVBQUFBQmx3RVRZQUovZndGL1lBUi9mMzkvQVg5Z0FuOS9BR0FEZjM5L0FYOWdBWDhBWUFsL2YzOS9mMzkvZjM4QVlBRi9BWDlnQkg5L2YzOEFZQVovZjM5L2YzOEJmMkFJZjM5L2YzOS9mMzhBWUFOL2YzOEFZQVYvZjM5L2Z3Ri9ZQUFBWUFWL2YzOS9md0JnQm45L2YzOS9md0JnQ245L2YzOS9mMzkvZjM4QVlBQUJmMkFIZjM5L2YzOS9md0YvWUFoL2YzOS9mMzkvZndGL0FqQURCR2d5TmpRR2JXVnRZM0I1QUFNRWFESTJOQVp5WlhOcGVtVUFCZ1JvTWpZMEJtMWxiVzl5ZVFJQmdBS0FnQUlEWTJJQUFBUUFBUU1LQVFZQUJRTUZCZ2NBQndZQUF3NERCd2NGQWdBQ0F3UUFCUVVGQlFvRUFnUUpBUWNBQXdZR0FnSUJCZ1FEQWdJQkN3RUJBd01MRFFJQkFBQUNDUWtKRHdJRkJRQUJDZ0FTQ3hFSUNBY0lDQWNFQVFRSUNBWUJFQWdBQVFZSkFYOEJRYkRFd0FJTEJ5WUVCbTFoYkd4dll3QUtDV2d5TmpSaGJHeHZZd0JnQm1SbFkyOWtaUUJoQkdsdWFYUUFZZ3IycFFWaXdBSUJBbjhnQUJBUElnSkJmMHdFUUNBQVFRRVFDeG9nQVVFQU5nSUFRUUFQQ3dKQUFrQWdBa0dBZ0lDQUJFOEVRQ0FBUVFNUUMwRi9SZ1JBUVFFUEN5QUJJQUpCSFhaQkFYRkJBV28yQWdBTUFRc2dBa0dBZ0lDQUFrOEVRQ0FBUVFVUUMwRi9SZ1JBUVFFUEN5QUJJQUpCRzNaQkEzRkJBMm8yQWdBTUFRc2dBa0dBZ0lDQUFVOEVRQ0FBUVFjUUMwRi9SZ1JBUVFFUEN5QUJJQUpCR1haQkIzRkJCMm8yQWdBTUFRc2dBaEF2SWdOQkJHb2lBa0VnUmdSQUlBRkJBRFlDQUNBQVFTQVFDeHBCQVNFQ0lBQkJBUkFEUVFGSERRSWdBQkFQSVFNZ0FFRWdFQXRCZjBZTkFpQURRUUZMRFFJZ0EwRUJhd1JBSUFGQmZ6WUNBQXdDQ3lBQlFYODJBZ0JCQVE4TElBQWdBMEVGYWhBTEdpQUFJQUlRQXlJQVFYOUdCRUJCQVE4TElBRWdBRUYvSUFKMFFYOXphallDQUF0QkFDRUNDeUFDQzRnQ0FRZC9JQUFvQWdRaEJBSkFJQUFvQWd4QkEzUWlCeUFBS0FJUUlnaHJJZ0pCSUU0RVFDQUVLQUFBSWdOQkdIUWdBMEVJZEVHQWdQd0hjWElnQTBFSWRrR0EvZ054SUFOQkdIWnljaUVESUFBb0FnZ2lBa1VOQVNBRElBSjBJQVF0QUFSQkNDQUNhM1p5SVFNTUFRc2dBa0VCU0FSQURBRUxJQVF0QUFBZ0FDZ0NDQ0lGUVJocUlnWjBJUU1nQWlBRmFrRjRhaUlDUVFGSURRQURRQ0FFTFFBQklBWkJlR29pQm5RZ0EzSWhBeUFDUVFoS0lRVWdCRUVCYWlFRUlBSkJlR29oQWlBRkRRQUxDeUFBSUFFZ0NHb2lCRFlDRUNBQUlBUkJCM0UyQWdoQmZ5RUNJQVFnQjAwRWZ5QUFJQUFvQWdBZ0JFRURkbW8yQWdRZ0EwRWdJQUZyZGdWQmZ3c0xxZzBCQjM4Q1FDQUFSUTBBSUFCQmVHb2lBeUFBUVh4cUtBSUFJZ0ZCZUhFaUFHb2hCUUpBSUFGQkFYRU5BQ0FCUVFOeFJRMEJJQU1nQXlnQ0FDSUNheUlEUWNUQUFDZ0NBQ0lFU1EwQklBQWdBbW9oQUNBRFFjakFBQ2dDQUVjRVFDQUNRZjhCVFFSQUlBTW9BZ2dpQkNBQ1FRTjJJZ0pCQTNSQjNNQUFha2NhSUFRZ0F5Z0NEQ0lCUmdSQVFiVEFBRUcwd0FBb0FnQkJmaUFDZDNFMkFnQU1Bd3NnQkNBQk5nSU1JQUVnQkRZQ0NBd0NDeUFES0FJWUlRWUNRQ0FESUFNb0Fnd2lBVWNFUUNBRUlBTW9BZ2dpQWswRVFDQUNLQUlNR2dzZ0FpQUJOZ0lNSUFFZ0FqWUNDQXdCQ3dKQUlBTkJGR29pQWlnQ0FDSUVEUUFnQTBFUWFpSUNLQUlBSWdRTkFFRUFJUUVNQVFzRFFDQUNJUWNnQkNJQlFSUnFJZ0lvQWdBaUJBMEFJQUZCRUdvaEFpQUJLQUlRSWdRTkFBc2dCMEVBTmdJQUN5QUdSUTBCQWtBZ0F5QURLQUljSWdKQkFuUkI1TUlBYWlJRUtBSUFSZ1JBSUFRZ0FUWUNBQ0FCRFFGQnVNQUFRYmpBQUNnQ0FFRitJQUozY1RZQ0FBd0RDeUFHUVJCQkZDQUdLQUlRSUFOR0cyb2dBVFlDQUNBQlJRMENDeUFCSUFZMkFoZ2dBeWdDRUNJQ0JFQWdBU0FDTmdJUUlBSWdBVFlDR0FzZ0F5Z0NGQ0lDUlEwQklBRWdBallDRkNBQ0lBRTJBaGdNQVFzZ0JTZ0NCQ0lCUVFOeFFRTkhEUUJCdk1BQUlBQTJBZ0FnQlNBQlFYNXhOZ0lFSUFNZ0FFRUJjallDQkNBQUlBTnFJQUEyQWdBUEN5QUZJQU5ORFFBZ0JTZ0NCQ0lCUVFGeFJRMEFBa0FnQVVFQ2NVVUVRQ0FGUWN6QUFDZ0NBRVlFUUVITXdBQWdBellDQUVIQXdBQkJ3TUFBS0FJQUlBQnFJZ0EyQWdBZ0F5QUFRUUZ5TmdJRUlBTkJ5TUFBS0FJQVJ3MERRYnpBQUVFQU5nSUFRY2pBQUVFQU5nSUFEd3NnQlVISXdBQW9BZ0JHQkVCQnlNQUFJQU0yQWdCQnZNQUFRYnpBQUNnQ0FDQUFhaUlBTmdJQUlBTWdBRUVCY2pZQ0JDQUFJQU5xSUFBMkFnQVBDeUFCUVhoeElBQnFJUUFDUUNBQlFmOEJUUVJBSUFVb0Fnd2hBaUFGS0FJSUlnUWdBVUVEZGlJQlFRTjBRZHpBQUdvaUIwY0VRRUhFd0FBb0FnQWFDeUFDSUFSR0JFQkJ0TUFBUWJUQUFDZ0NBRUYrSUFGM2NUWUNBQXdDQ3lBQ0lBZEhCRUJCeE1BQUtBSUFHZ3NnQkNBQ05nSU1JQUlnQkRZQ0NBd0JDeUFGS0FJWUlRWUNRQ0FGSUFVb0Fnd2lBVWNFUUVIRXdBQW9BZ0FnQlNnQ0NDSUNUUVJBSUFJb0Fnd2FDeUFDSUFFMkFnd2dBU0FDTmdJSURBRUxBa0FnQlVFVWFpSUNLQUlBSWdRTkFDQUZRUkJxSWdJb0FnQWlCQTBBUVFBaEFRd0JDd05BSUFJaEJ5QUVJZ0ZCRkdvaUFpZ0NBQ0lFRFFBZ0FVRVFhaUVDSUFFb0FoQWlCQTBBQ3lBSFFRQTJBZ0FMSUFaRkRRQUNRQ0FGSUFVb0Fod2lBa0VDZEVIa3dnQnFJZ1FvQWdCR0JFQWdCQ0FCTmdJQUlBRU5BVUc0d0FCQnVNQUFLQUlBUVg0Z0FuZHhOZ0lBREFJTElBWkJFRUVVSUFZb0FoQWdCVVliYWlBQk5nSUFJQUZGRFFFTElBRWdCallDR0NBRktBSVFJZ0lFUUNBQklBSTJBaEFnQWlBQk5nSVlDeUFGS0FJVUlnSkZEUUFnQVNBQ05nSVVJQUlnQVRZQ0dBc2dBeUFBUVFGeU5nSUVJQUFnQTJvZ0FEWUNBQ0FEUWNqQUFDZ0NBRWNOQVVHOHdBQWdBRFlDQUE4TElBVWdBVUYrY1RZQ0JDQURJQUJCQVhJMkFnUWdBQ0FEYWlBQU5nSUFDeUFBUWY4QlRRUkFJQUJCQTNZaUFVRURkRUhjd0FCcUlRQUNmMEcwd0FBb0FnQWlBa0VCSUFGMElnRnhSUVJBUWJUQUFDQUJJQUp5TmdJQUlBQU1BUXNnQUNnQ0NBc2hBaUFBSUFNMkFnZ2dBaUFETmdJTUlBTWdBRFlDRENBRElBSTJBZ2dQQ3lBRFFnQTNBaEFnQXdKL1FRQWdBRUVJZGlJQlJRMEFHa0VmSUFCQi8vLy9CMHNOQUJvZ0FTQUJRWUQrUDJwQkVIWkJDSEVpQVhRaUFpQUNRWURnSDJwQkVIWkJCSEVpQW5RaUJDQUVRWUNBRDJwQkVIWkJBbkVpQkhSQkQzWWdBU0FDY2lBRWNtc2lBVUVCZENBQUlBRkJGV3AyUVFGeGNrRWNhZ3NpQWpZQ0hDQUNRUUowUWVUQ0FHb2hBUUpBQWtBQ1FFRzR3QUFvQWdBaUJFRUJJQUowSWdkeFJRUkFRYmpBQUNBRUlBZHlOZ0lBSUFFZ0F6WUNBQ0FESUFFMkFoZ01BUXNnQUVFQVFSa2dBa0VCZG1zZ0FrRWZSaHQwSVFJZ0FTZ0NBQ0VCQTBBZ0FTSUVLQUlFUVhoeElBQkdEUUlnQWtFZGRpRUJJQUpCQVhRaEFpQUVJQUZCQkhGcUlnZEJFR29vQWdBaUFRMEFDeUFISUFNMkFoQWdBeUFFTmdJWUN5QURJQU0yQWd3Z0F5QUROZ0lJREFFTElBUW9BZ2dpQUNBRE5nSU1JQVFnQXpZQ0NDQURRUUEyQWhnZ0F5QUVOZ0lNSUFNZ0FEWUNDQXRCMU1BQVFkVEFBQ2dDQUVGL2FpSUFOZ0lBSUFBTkFFSDh3d0FoQXdOQUlBTW9BZ0FpQUVFSWFpRURJQUFOQUF0QjFNQUFRWDgyQWdBTEMzUUJBbjhqQUVFUWF5SUNKQUFnQWtFQU5nSU1JQUFnQWtFTWFoQUNJUUFDZnlBQ0tBSU1JZ05CZjBZRVFFRUJJQUJGRFFFYUlBRkJnSUNBZ0hnMkFnQkJBQXdCQzBFQklBQU5BQm9nQVNBRFFRRnFRUUYySWdGQkFDQUJheUFEUVFGeEd6WUNBRUVBQ3lFQUlBSkJFR29rQUNBQUM4Y0xBUlIvSUFGQm9EMXFMUUFBUVF4c0lnWkIxRHhxS0FJQUlRVWdCa0hRUEdvb0FnQWdBVUdRUEdvdEFBQWlCM1FoQkNBQ1JRUkFJQUFnQUNnQ0FDQUViRFlDQUFzZ0JTQUhkQ0VCQWtBQ1FDQURRWnovQTNFRVFDQUFJQVpCMkR4cUtBSUFJQWQwSWdNZ0FDZ0NQR3cyQWp3Z0FDQUFLQUk0SUFGc05nSTRRUUVoQWlBQUlBQW9BaXdnQkd3aUJ5QUFLQUlNSUFSc0lnVnFJZ2tnQUNnQ0lDQUJiQ0lLSUFBb0FqUWdBV3dpRDBFQmRXb2lFR3NpQmpZQ0xDQUFLQUlvSVFnZ0FDQUZJQWRySWdVZ0NrRUJkU0FQYXlJS2F5SUhOZ0lvSUFBb0FpUWhEaUFBSUFVZ0Ntb2lCVFlDSkNBQUlBQW9BaHdnQVd3aUR5QUFLQUlJSUFGc0lndHFJaE1nQUNnQ0VDQURiQ0lSSUFBb0FqQWdBMndpREVFQmRXb2lGV3NpQ2pZQ0hDQUFLQUlZSVEwZ0FDQUxJQTlySWdzZ0VVRUJkU0FNYXlJUmF5SVBOZ0lZSUFBb0FoUWhEQ0FBSUFzZ0VXb2lDellDRkNBQUlBUWdER3dpQkNBQUtBSUFJZ3hxSWhRZ0FDZ0NCQ0FCYkNJU0lBRWdEV3dpRFVFQmRXb2lGbXNpRVRZQ0RDQUFJQXdnQkdzaUJDQVNRUUYxSUExcklnMXJJZ3cyQWdnZ0FDQUVJQTFxSWcwMkFnUWdBQ0FCSUE1c0lnUWdBQ2dDT0NJT2F5SVNJQU1nQ0d3aUNFRUJkU0FBS0FJOEloZHJJZ05ySWdFMkFqZ2dBQ0FESUJKcUlnTTJBalFnQUNBRUlBNXFJZzRnRjBFQmRTQUlhaUlJYXlJRU5nSThJQUFnRkNBV2FpSVVJQWtnRUdvaUVHdEJJR29pRWlBSUlBNXFJZ2tnRXlBVmFpSUlRUUYxSWc1cmFrRUdkU0lUTmdJZ0lBQWdFaUFPSUFscmFrRUdkU0lPTmdJUUlBQWdFQ0FVYWtFZ2FpSVFJQWxCQVhVZ0NHb2lDV3RCQm5VaUNEWUNNQ0FBSUFrZ0VHcEJCblVpQ1RZQ0FDQUpRWUFFYWlBT1FZQUVhbkpCL3dkTERRSWdDRUdBQkdvZ0UwR0FCR3B5UWY4SFN3MENJQUFnQlNBTmFrRWdhaUlKSUFOQkFYVWdDMm9pRUd0QkJuVWlDRFlDTkNBQUlBMGdCV3RCSUdvaUJTQURJQXRCQVhVaUMydHFRUVoxSWcwMkFpUWdBQ0FGSUFzZ0EydHFRUVoxSWdNMkFoUWdBQ0FKSUJCcVFRWjFJZ1UyQWdRZ0JVR0FCR29nQTBHQUJHcHlRZjhIU3cwQ0lBaEJnQVJxSUExQmdBUnFja0gvQjBzTkFpQUFJQWNnREdwQklHb2lBeUFCUVFGMUlBOXFJZ1ZyUVFaMUlnczJBamdnQUNBTUlBZHJRU0JxSWdjZ0FTQVBRUUYxSWc5cmFrRUdkU0lNTmdJb0lBQWdCeUFQSUFGcmFrRUdkU0lCTmdJWUlBQWdBeUFGYWtFR2RTSUROZ0lJSUFOQmdBUnFJQUZCZ0FScWNrSC9CMHNOQWlBTFFZQUVhaUFNUVlBRWFuSkIvd2RMRFFJZ0FDQUdJQkZxUVNCcUlnRWdCRUVCZFNBS2FpSURhMEVHZFNJSE5nSThJQUFnRVNBR2EwRWdhaUlHSUFRZ0NrRUJkU0lGYTJwQkJuVWlDallDTENBQUlBWWdCU0FFYTJwQkJuVWlCRFlDSENBQUlBRWdBMnBCQm5VaUFEWUNEQ0FBUVlBRWFpQUVRWUFFYW5KQi93ZExEUUlnQjBHQUJHb2dDa0dBQkdweVFmOEhUUTBCREFJTElBTkI0Z0J4UlFSQVFRRWhBaUFBS0FJQVFTQnFRUVoxSWdGQmdBUnFRZjhIU3cwQ0lBQWdBVFlDT0NBQUlBRTJBandnQUNBQk5nSTBJQUFnQVRZQ01DQUFJQUUyQWl3Z0FDQUJOZ0lvSUFBZ0FUWUNKQ0FBSUFFMkFpQWdBQ0FCTmdJY0lBQWdBVFlDR0NBQUlBRTJBaFFnQUNBQk5nSVFJQUFnQVRZQ0RDQUFJQUUyQWdnZ0FDQUJOZ0lFSUFBZ0FUWUNBQXdCQzBFQklRSWdBQ0FBS0FJRUlBRnNJZ2NnQUNnQ0dDQUJiQ0lHUVFGMWFpSURJQUFvQWdBaUJTQUFLQUlVSUFSc0lnUnFJZ3BxUVNCcVFRWjFJZ0UyQWpBZ0FDQUtJQU5yUVNCcVFRWjFJZ00yQWd3Z0FDQUZJQVJySWdVZ0JpQUhRUUYxSWdkcmFrRWdha0VHZFNJRU5nSUlJQUFnQnlBR2F5QUZha0VnYWtFR2RTSUdOZ0lFSUFBZ0FUWUNBQ0FBSUFFMkFpQWdBQ0FHTmdJMElBQWdBVFlDRUNBQUlBWTJBaVFnQUNBRU5nSTRJQUFnQmpZQ0ZDQUFJQVEyQWlnZ0FDQUROZ0k4SUFBZ0JEWUNHQ0FBSUFNMkFpd2dBQ0FETmdJY0lBTkJnQVJxSUFGQmdBUnFJQVJCZ0FScUlBWkJnQVJxY25KeVFmOEhTdzBCQzBFQUlRSUxJQUlMOHdJQ0FuOEJmZ0pBSUFKRkRRQWdBQ0FDYWlJRFFYOXFJQUU2QUFBZ0FDQUJPZ0FBSUFKQkEwa05BQ0FEUVg1cUlBRTZBQUFnQUNBQk9nQUJJQU5CZldvZ0FUb0FBQ0FBSUFFNkFBSWdBa0VIU1EwQUlBTkJmR29nQVRvQUFDQUFJQUU2QUFNZ0FrRUpTUTBBSUFCQkFDQUFhMEVEY1NJRWFpSURJQUZCL3dGeFFZR0NoQWhzSWdFMkFnQWdBeUFDSUFSclFYeHhJZ1JxSWdKQmZHb2dBVFlDQUNBRVFRbEpEUUFnQXlBQk5nSUlJQU1nQVRZQ0JDQUNRWGhxSUFFMkFnQWdBa0YwYWlBQk5nSUFJQVJCR1VrTkFDQURJQUUyQWhnZ0F5QUJOZ0lVSUFNZ0FUWUNFQ0FESUFFMkFnd2dBa0Z3YWlBQk5nSUFJQUpCYkdvZ0FUWUNBQ0FDUVdocUlBRTJBZ0FnQWtGa2FpQUJOZ0lBSUFRZ0EwRUVjVUVZY2lJRWF5SUNRU0JKRFFBZ0FhMGlCVUlnaGlBRmhDRUZJQU1nQkdvaEFRTkFJQUVnQlRjREdDQUJJQVUzQXhBZ0FTQUZOd01JSUFFZ0JUY0RBQ0FCUVNCcUlRRWdBa0ZnYWlJQ1FSOUxEUUFMQ3lBQUMvSURBUU4vSUFFb0FnQWlBMEgvLy84SFJ3UkFJQUVvQWdRaEJDQUFJQUlnQWtFRGNTQUNRUkJKSWdJYlFRSjBJZ1ZCOENscUtBSUFRUkJCQ0NBQ0d5SUNiR29nQlVHd0tXb29BZ0JxSWdBZ0F5QUFMUUFBYWtHd0xtb3RBQUE2QUFBZ0FTZ0NDQ0VESUFBZ0JDQUFMUUFCYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VFSUFBZ0F5QUFMUUFDYWtHd0xtb3RBQUE2QUFJZ0FDQUVJQUF0QUFOcVFiQXVhaTBBQURvQUF5QUJLQUlVSVFNZ0FDQUNhaUlBSUFFb0FoQWdBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BaGdoQkNBQUlBTWdBQzBBQVdwQnNDNXFMUUFBT2dBQklBRW9BaHdoQXlBQUlBUWdBQzBBQW1wQnNDNXFMUUFBT2dBQ0lBQWdBeUFBTFFBRGFrR3dMbW90QUFBNkFBTWdBU2dDSkNFRElBQWdBbW9pQUNBQktBSWdJQUF0QUFCcVFiQXVhaTBBQURvQUFDQUJLQUlvSVFRZ0FDQURJQUF0QUFGcVFiQXVhaTBBQURvQUFTQUJLQUlzSVFNZ0FDQUVJQUF0QUFKcVFiQXVhaTBBQURvQUFpQUFJQU1nQUMwQUEycEJzQzVxTFFBQU9nQURJQUVvQWpRaEF5QUFJQUpxSWdBZ0FTZ0NNQ0FBTFFBQWFrR3dMbW90QUFBNkFBQWdBU2dDT0NFQ0lBQWdBeUFBTFFBQmFrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQWdBaUFBTFFBQ2FrR3dMbW90QUFBNkFBSWdBQ0FCSUFBdEFBTnFRYkF1YWkwQUFEb0FBd3NMMHhBQkRIOGpBRUdBQVdzaUNpUUFJQUFRRHlFRVFRRWhCUUpBQWtBQ2Z5QUNRUUZOQkVBZ0JFRUFTQTBDSUFSQkdYWkIvZ0J4UVlBSWFpQUVRWUNBZ09BQVR3MEJHaUFFUVJWMlFmNFBjVUhBQ0dvZ0JFR0FnSUFJVHcwQkdpQUVRUkYyUWY3L0FYRkJrQWxxSUFSQmdJQ0FBVThOQVJvZ0JFRVFka0VCZEVHUUNtb01BUXNnQWtFRFRRUkFJQVJCZjB3RVFFRUNRYUlRSUFSQmdJQ0FnQVJ4R3lFRkRBTUxJQVJCR1haQi9nQnhRZEFLYWlBRVFZQ0FnSUFCVHcwQkdpQUVRUloyUWY0SGNVR1FDMm9nQkVHQWdJQVFUdzBCR2lBRVFSRjJRZjcvQVhGQjBBdHFEQUVMSUFKQkIwMEVRQ0FFUVJwMklnSkJlR3BCT0VrRVFDQUNRUUYwUWRBTmFnd0NDeUFFUVJWMlFmNFBjVUhRRG1vTUFRc2dCRUVaZGtIK0FIRkIwQkJxSUFKQkVFME5BQm9nQkVFZGRpSUNCRUFnQWtFQmRFSFFFV29NQVFzZ0JFRVhka0grQTNGQjRCRnFDeThCQUNJRkRRQkJBU0VMREFFTFFRRWhDeUFGUVF0Mklna2dBMHNOQUVFZ0lBVkJIM0VpQm1zaEFnSkFJQWxGQkVBTUFRc2dCQ0FHZENFRUFrQWdCVUVGZGtFL2NTSU1SUVJBREFFTElBSWdERWtFUUNBQUlBWVFDMEYvUmcwRElBQVFEeUVFUVNBaEFnc2dCQ0FNZENFR1FRRWdERUYvYW5RaEJ5QUVRU0FnREd0MklRUURRQ0FLUVVCcklBaEJBblJxUVg5QkFTQUVJQWR4R3pZQ0FDQUlRUUZxSVFnZ0IwRUJkaUlIRFFBTElBSWdER3NoQWlBR0lRUUxJQWdnQ1VrRVFDQU1RUU5KSWc4Z0JVSC9yd0ZMY1NFRkEwQWdBa0VQVFFSQUlBQkJJQ0FDYXhBTFFYOUdCRUFNQlFzZ0FCQVBJUVJCSUNFQ0MwRUFJUVlDUUFKQUFuOENRQ0FFUVFCSURRQkJBU0VHSUFSQi8vLy8vd05MRFFCQkFpRUdJQVJCLy8vLy93RkxEUUJCQXlFR0lBUkIvLy8vL3dCTERRQkJCQ0VHSUFSQi8vLy9QMHNOQUVFRklRWWdCRUgvLy84ZlN3MEFRUVloQmlBRVFmLy8vdzlMRFFCQkJ5RUdJQVJCLy8vL0Iwc05BRUVJSVFZZ0JFSC8vLzhEU3cwQVFRa2hCaUFFUWYvLy93RkxEUUJCQ2lFR0lBUkIvLy8vQUVzTkFFRUxJUVlnQkVILy96OUxEUUJCRENFR0lBUkIvLzhmU3cwQVFRMGhCaUFFUWYvL0Qwc05BQUovQWtBZ0JFSC8vd2ROQkVBZ0JFR0FnSHh4UVlDQUJFWU5BUXdLQ3lBRlFRUWdCUnNoQmlBRVFROTBJUVJCRGlFSElBSkJjV29NQVFzZ0JVRUJJQVViSVFVZ0JFRVFkQ0VFUVF3aEJrRVBJUWNnQWtGd2Fnc2hBaUFISUFWMElRY2dCVVVNQVFzZ0JpQUZkQ0VIUVFFaERpQUNJQVpCQVdvaUJtc2hBaUFFSUFaMElRUWdCVVVOQVNBRklRWkJBQXNoRGlBQ0lBWlBCSDhnQkFVZ0FFRWdJQUpyRUF0QmYwWUVRQXdIQzBFZ0lRSWdBQkFQQ3lFTklBSWdCbXNoQWlBTklBWjBJUVFnRFVFZ0lBWnJkaUFIYWlFSERBRUxRUUFoQlFzZ0NrRkFheUFJUVFKMGFrRUFJQWRCQW1vZ0J5QUlJQXhHR3lBSElBOGJJZzFCQW1wQkFYWWlCbXNnQmlBTlFRRnhHellDQUVFQklBVWdEaHNpQlNBRlFRWkpJQVpCQXlBRlFYOXFkRXB4YWlFRklBaEJBV29pQ0NBSlJ3MEFDd3RCQUNFSEFrQWdDU0FEVHdSQVFRQWhDQXdCQ3dKQUlBSkJDRXNFUUNBQ0lRVU1BUXRCSUNFRklBQkJJQ0FDYXhBTFFYOUdEUU1nQUJBUElRUUxBa0FDUUFKL0FrQWdBMEVFUndSQUlBbEJmMm9pQWtFTlN3MERBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQWdBa0VCYXc0TkFBRUNBd1FGQmdjSUNRb0xEQTRMSUFSQkduWkI0QkpxREE0TElBUkJHblpCb0JOcURBMExJQVJCRzNaQjRCTnFEQXdMSUFSQkczWkJnQlJxREFzTElBUkJHblpCb0JScURBb0xJQVJCR25aQjRCUnFEQWtMSUFSQkduWkJvQlZxREFnTElBUkJHblpCNEJWcURBY0xJQVJCRzNaQm9CWnFEQVlMSUFSQkhIWkJ3QlpxREFVTElBUkJISFpCMEJacURBUUxJQVJCSFhaQjRCWnFEQU1MSUFSQkhuWkI2QlpxREFJTElBUkJBRWdFUUVFQklRSU1CQXRCRVNFQ0lBbEJBMFlOQTBFU0lRSWdCRUgvLy8vL0Ewc05BMEVpSVFJZ0NVRUNSZzBEUVNOQk15QUVRZi8vLy84QlN4c2hBZ3dEQ3lBRVFSdDJRYUFTYWlBRVFSZDJRY0FTYWlBRVFmLy8vLzhBU3hzTExRQUFJZ0lOQVF3RUMwRVJRUUVnQkVFQVNCc2hBZ3NnQWtFRWRpRUlJQVVnQWtFUGNTSURheUVDSUFRZ0EzUWhCQXNnQ1VGL2FpSURCRUFEUUFKL0lBZ0VRQ0FDUVFwTkJFQWdBRUVnSUFKckVBdEJmMFlFUUF3SEN5QUFFQThoQkVFZ0lRSUxBa0FDZndKQUlBaEJmMm9pQlVFRlRRUkFBa0FDUUFKQUFrQUNRQ0FGUVFGckRnVUFBUUlEQkFZTElBUkJIblpCN2hacURBWUxJQVJCSG5aQjhoWnFEQVVMSUFSQkhYWkI5aFpxREFRTElBUkJIWFpCL2hacURBTUxJQVJCSFhaQmhoZHFEQUlMQW45Qjh3QWdCRUVaZGtId0FIRnJJQVJCZ0lDQWdBSlBEUUFhUWZRQUlBUkIvLy8vL3dCTERRQWFRWVVCSUFSQi8vLy9QMHNOQUJwQmxnRWdCRUgvLy84ZlN3MEFHa0duQVNBRVFmLy8vdzlMRFFBYVFiZ0JJQVJCLy8vL0Iwc05BQnBCeVFFZ0JFSC8vLzhEU3cwQUdrSGFBU0FFUWYvLy93RkxEUUFhUVFCQjZ3RWdCRUdBZ0lBQlNSc0xJZ1ZCQkhZZ0NFME5BZ3dJQ3lBRVFSOTJRZXdXYWdzdEFBQWhCUXNnQlVVRVFBd0dDeUFLSUFkQkFuUnFJQVZCQkhZaUJrRUJhallDQUNBQ0lBVkJEM0VpQldzaEFpQUVJQVYwSVFRZ0NDQUdhd3dCQ3lBS0lBZEJBblJxUVFFMkFnQkJBQXNoQ0NBSFFRRnFJZ2NnQTBjTkFBc2dBU0FJUVFKMGFpQUtRVUJySUFOQkFuUnFLQUlBTmdJQUlBbEJmbW9oQlVFQklBaDBJUWNEUUNBQklBb2dCU0lEUVFKMElnVnFLQUlBSUFocUlnaEJBblJxSUFwQlFHc2dCV29vQWdBMkFnQWdBMEYvYWlFRlFRRWdDSFFnQjNJaEJ5QUREUUFMREFFTElBRWdDRUVDZEdvZ0NrRkFheUFEUVFKMGFpZ0NBRFlDQUVFQklBaDBJUWNMSUFCQklDQUNheEFMRFFBZ0IwRVFkQ0FKUVFSMGNpRUxDeUFLUVlBQmFpUUFJQXNMelM0QkMzOGpBRUVRYXlJTEpBQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFCQjlBRk5CRUJCdE1BQUtBSUFJZ1pCRUNBQVFRdHFRWGh4SUFCQkMwa2JJZ1ZCQTNZaUFIWWlBVUVEY1FSQUlBRkJmM05CQVhFZ0FHb2lBa0VEZENJRVFlVEFBR29vQWdBaUFVRUlhaUVBQWtBZ0FTZ0NDQ0lESUFSQjNNQUFhaUlFUmdSQVFiVEFBQ0FHUVg0Z0FuZHhOZ0lBREFFTFFjVEFBQ2dDQUJvZ0F5QUVOZ0lNSUFRZ0F6WUNDQXNnQVNBQ1FRTjBJZ0pCQTNJMkFnUWdBU0FDYWlJQklBRW9BZ1JCQVhJMkFnUU1EQXNnQlVHOHdBQW9BZ0FpQ0UwTkFTQUJCRUFDUUVFQ0lBQjBJZ0pCQUNBQ2EzSWdBU0FBZEhFaUFFRUFJQUJyY1VGL2FpSUFJQUJCREhaQkVIRWlBSFlpQVVFRmRrRUljU0lDSUFCeUlBRWdBbllpQUVFQ2RrRUVjU0lCY2lBQUlBRjJJZ0JCQVhaQkFuRWlBWElnQUNBQmRpSUFRUUYyUVFGeElnRnlJQUFnQVhacUlnSkJBM1FpQTBIa3dBQnFLQUlBSWdFb0FnZ2lBQ0FEUWR6QUFHb2lBMFlFUUVHMHdBQWdCa0YrSUFKM2NTSUdOZ0lBREFFTFFjVEFBQ2dDQUJvZ0FDQUROZ0lNSUFNZ0FEWUNDQXNnQVVFSWFpRUFJQUVnQlVFRGNqWUNCQ0FCSUFWcUlnY2dBa0VEZENJQ0lBVnJJZ05CQVhJMkFnUWdBU0FDYWlBRE5nSUFJQWdFUUNBSVFRTjJJZ1JCQTNSQjNNQUFhaUVCUWNqQUFDZ0NBQ0VDQW44Z0JrRUJJQVIwSWdSeFJRUkFRYlRBQUNBRUlBWnlOZ0lBSUFFTUFRc2dBU2dDQ0FzaEJDQUJJQUkyQWdnZ0JDQUNOZ0lNSUFJZ0FUWUNEQ0FDSUFRMkFnZ0xRY2pBQUNBSE5nSUFRYnpBQUNBRE5nSUFEQXdMUWJqQUFDZ0NBQ0lLUlEwQklBcEJBQ0FLYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQWlBQWNpQUJJQUoySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJZ0VvQWdSQmVIRWdCV3NoQXlBQklRSURRQUpBSUFJb0FoQWlBRVVFUUNBQ0tBSVVJZ0JGRFFFTElBQW9BZ1JCZUhFZ0JXc2lBaUFESUFJZ0Ewa2lBaHNoQXlBQUlBRWdBaHNoQVNBQUlRSU1BUXNMSUFFb0FoZ2hDU0FCSUFFb0Fnd2lCRWNFUUVIRXdBQW9BZ0FnQVNnQ0NDSUFUUVJBSUFBb0Fnd2FDeUFBSUFRMkFnd2dCQ0FBTmdJSURBc0xJQUZCRkdvaUFpZ0NBQ0lBUlFSQUlBRW9BaEFpQUVVTkF5QUJRUkJxSVFJTEEwQWdBaUVISUFBaUJFRVVhaUlDS0FJQUlnQU5BQ0FFUVJCcUlRSWdCQ2dDRUNJQURRQUxJQWRCQURZQ0FBd0tDMEYvSVFVZ0FFRy9mMHNOQUNBQVFRdHFJZ0JCZUhFaEJVRzR3QUFvQWdBaUIwVU5BRUVBSUFWcklRSUNRQUpBQWtBQ2YwRUFJQUJCQ0hZaUFFVU5BQnBCSHlBRlFmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnTWdBMEdBZ0E5cVFSQjJRUUp4SWdOMFFROTJJQUFnQVhJZ0EzSnJJZ0JCQVhRZ0JTQUFRUlZxZGtFQmNYSkJIR29MSWdoQkFuUkI1TUlBYWlnQ0FDSURSUVJBUVFBaEFBd0JDeUFGUVFCQkdTQUlRUUYyYXlBSVFSOUdHM1FoQVVFQUlRQURRQUpBSUFNb0FnUkJlSEVnQldzaUJpQUNUdzBBSUFNaEJDQUdJZ0lOQUVFQUlRSWdBeUVBREFNTElBQWdBeWdDRkNJR0lBWWdBeUFCUVIxMlFRUnhhaWdDRUNJRFJoc2dBQ0FHR3lFQUlBRWdBMEVBUjNRaEFTQUREUUFMQ3lBQUlBUnlSUVJBUVFJZ0NIUWlBRUVBSUFCcmNpQUhjU0lBUlEwRElBQkJBQ0FBYTNGQmYyb2lBQ0FBUVF4MlFSQnhJZ0IySWdGQkJYWkJDSEVpQXlBQWNpQUJJQU4ySWdCQkFuWkJCSEVpQVhJZ0FDQUJkaUlBUVFGMlFRSnhJZ0Z5SUFBZ0FYWWlBRUVCZGtFQmNTSUJjaUFBSUFGMmFrRUNkRUhrd2dCcUtBSUFJUUFMSUFCRkRRRUxBMEFnQUNnQ0JFRjRjU0FGYXlJRElBSkpJUUVnQXlBQ0lBRWJJUUlnQUNBRUlBRWJJUVFnQUNnQ0VDSUJCSDhnQVFVZ0FDZ0NGQXNpQUEwQUN3c2dCRVVOQUNBQ1FiekFBQ2dDQUNBRmEwOE5BQ0FFS0FJWUlRZ2dCQ0FFS0FJTUlnRkhCRUJCeE1BQUtBSUFJQVFvQWdnaUFFMEVRQ0FBS0FJTUdnc2dBQ0FCTmdJTUlBRWdBRFlDQ0F3SkN5QUVRUlJxSWdNb0FnQWlBRVVFUUNBRUtBSVFJZ0JGRFFNZ0JFRVFhaUVEQ3dOQUlBTWhCaUFBSWdGQkZHb2lBeWdDQUNJQURRQWdBVUVRYWlFRElBRW9BaEFpQUEwQUN5QUdRUUEyQWdBTUNBdEJ2TUFBS0FJQUlnRWdCVThFUUVISXdBQW9BZ0FoQUFKQUlBRWdCV3NpQWtFUVR3UkFRYnpBQUNBQ05nSUFRY2pBQUNBQUlBVnFJZ00yQWdBZ0F5QUNRUUZ5TmdJRUlBQWdBV29nQWpZQ0FDQUFJQVZCQTNJMkFnUU1BUXRCeU1BQVFRQTJBZ0JCdk1BQVFRQTJBZ0FnQUNBQlFRTnlOZ0lFSUFBZ0FXb2lBU0FCS0FJRVFRRnlOZ0lFQ3lBQVFRaHFJUUFNQ2d0QndNQUFLQUlBSWdFZ0JVc0VRRUhBd0FBZ0FTQUZheUlCTmdJQVFjekFBRUhNd0FBb0FnQWlBQ0FGYWlJQ05nSUFJQUlnQVVFQmNqWUNCQ0FBSUFWQkEzSTJBZ1FnQUVFSWFpRUFEQW9MUVFBaEFDQUZRUzlxSWdRQ2YwR014QUFvQWdBRVFFR1V4QUFvQWdBTUFRdEJtTVFBUW44M0FnQkJrTVFBUW9DZ2dJQ0FnQVEzQWdCQmpNUUFJQXRCREdwQmNIRkIyS3JWcWdWek5nSUFRYURFQUVFQU5nSUFRZkREQUVFQU5nSUFRWUFnQ3lJQ2FpSUdRUUFnQW1zaUIzRWlBaUFGVFEwSlFlekRBQ2dDQUNJREJFQkI1TU1BS0FJQUlnZ2dBbW9pQ1NBSVRRMEtJQWtnQTBzTkNndEI4TU1BTFFBQVFRUnhEUVFDUUFKQVFjekFBQ2dDQUNJREJFQkI5TU1BSVFBRFFDQUFLQUlBSWdnZ0EwMEVRQ0FJSUFBb0FnUnFJQU5MRFFNTElBQW9BZ2dpQUEwQUN3dEJBQkFUSWdGQmYwWU5CU0FDSVFaQmtNUUFLQUlBSWdCQmYyb2lBeUFCY1FSQUlBSWdBV3NnQVNBRGFrRUFJQUJyY1dvaEJnc2dCaUFGVFEwRklBWkIvdi8vL3dkTERRVkI3TU1BS0FJQUlnQUVRRUhrd3dBb0FnQWlBeUFHYWlJSElBTk5EUVlnQnlBQVN3MEdDeUFHRUJNaUFDQUJSdzBCREFjTElBWWdBV3NnQjNFaUJrSCsvLy8vQjBzTkJDQUdFQk1pQVNBQUtBSUFJQUFvQWdScVJnMERJQUVoQUFzQ1FDQUZRVEJxSUFaTkRRQWdBRUYvUmcwQVFaVEVBQ2dDQUNJQklBUWdCbXRxUVFBZ0FXdHhJZ0ZCL3YvLy93ZExCRUFnQUNFQkRBY0xJQUVRRTBGL1J3UkFJQUVnQm1vaEJpQUFJUUVNQnd0QkFDQUdheEFUR2d3RUN5QUFJZ0ZCZjBjTkJRd0RDMEVBSVFRTUJ3dEJBQ0VCREFVTElBRkJmMGNOQWd0QjhNTUFRZkREQUNnQ0FFRUVjallDQUFzZ0FrSCsvLy8vQjBzTkFTQUNFQk1pQVVFQUVCTWlBRThOQVNBQlFYOUdEUUVnQUVGL1JnMEJJQUFnQVdzaUJpQUZRU2hxVFEwQkMwSGt3d0JCNU1NQUtBSUFJQVpxSWdBMkFnQWdBRUhvd3dBb0FnQkxCRUJCNk1NQUlBQTJBZ0FMQWtBQ1FBSkFRY3pBQUNnQ0FDSURCRUJCOU1NQUlRQURRQ0FCSUFBb0FnQWlBaUFBS0FJRUlnUnFSZzBDSUFBb0FnZ2lBQTBBQ3d3Q0MwSEV3QUFvQWdBaUFFRUFJQUVnQUU4YlJRUkFRY1RBQUNBQk5nSUFDMEVBSVFCQitNTUFJQVkyQWdCQjlNTUFJQUUyQWdCQjFNQUFRWDgyQWdCQjJNQUFRWXpFQUNnQ0FEWUNBRUdBeEFCQkFEWUNBQU5BSUFCQkEzUWlBa0hrd0FCcUlBSkIzTUFBYWlJRE5nSUFJQUpCNk1BQWFpQUROZ0lBSUFCQkFXb2lBRUVnUncwQUMwSEF3QUFnQmtGWWFpSUFRWGdnQVd0QkIzRkJBQ0FCUVFocVFRZHhHeUlDYXlJRE5nSUFRY3pBQUNBQklBSnFJZ0kyQWdBZ0FpQURRUUZ5TmdJRUlBQWdBV3BCS0RZQ0JFSFF3QUJCbk1RQUtBSUFOZ0lBREFJTElBQXRBQXhCQ0hFTkFDQUJJQU5ORFFBZ0FpQURTdzBBSUFBZ0JDQUdhallDQkVITXdBQWdBMEY0SUFOclFRZHhRUUFnQTBFSWFrRUhjUnNpQUdvaUFUWUNBRUhBd0FCQndNQUFLQUlBSUFacUlnSWdBR3NpQURZQ0FDQUJJQUJCQVhJMkFnUWdBaUFEYWtFb05nSUVRZERBQUVHY3hBQW9BZ0EyQWdBTUFRc2dBVUhFd0FBb0FnQWlCRWtFUUVIRXdBQWdBVFlDQUNBQklRUUxJQUVnQm1vaEFrSDB3d0FoQUFKQUFrQUNRQUpBQWtBQ1FBTkFJQUlnQUNnQ0FFY0VRQ0FBS0FJSUlnQU5BUXdDQ3dzZ0FDMEFERUVJY1VVTkFRdEI5TU1BSVFBRFFDQUFLQUlBSWdJZ0EwMEVRQ0FDSUFBb0FnUnFJZ1FnQTBzTkF3c2dBQ2dDQ0NFQURBQUFDd0FMSUFBZ0FUWUNBQ0FBSUFBb0FnUWdCbW8yQWdRZ0FVRjRJQUZyUVFkeFFRQWdBVUVJYWtFSGNSdHFJZ2tnQlVFRGNqWUNCQ0FDUVhnZ0FtdEJCM0ZCQUNBQ1FRaHFRUWR4RzJvaUFTQUpheUFGYXlFQUlBVWdDV29oQnlBQklBTkdCRUJCek1BQUlBYzJBZ0JCd01BQVFjREFBQ2dDQUNBQWFpSUFOZ0lBSUFjZ0FFRUJjallDQkF3REN5QUJRY2pBQUNnQ0FFWUVRRUhJd0FBZ0J6WUNBRUc4d0FCQnZNQUFLQUlBSUFCcUlnQTJBZ0FnQnlBQVFRRnlOZ0lFSUFBZ0Iyb2dBRFlDQUF3REN5QUJLQUlFSWdKQkEzRkJBVVlFUUNBQ1FYaHhJUW9DUUNBQ1FmOEJUUVJBSUFFb0FnZ2lBeUFDUVFOMklnUkJBM1JCM01BQWFrY2FJQU1nQVNnQ0RDSUNSZ1JBUWJUQUFFRzB3QUFvQWdCQmZpQUVkM0UyQWdBTUFnc2dBeUFDTmdJTUlBSWdBellDQ0F3QkN5QUJLQUlZSVFnQ1FDQUJJQUVvQWd3aUJrY0VRQ0FFSUFFb0FnZ2lBazBFUUNBQ0tBSU1HZ3NnQWlBR05nSU1JQVlnQWpZQ0NBd0JDd0pBSUFGQkZHb2lBeWdDQUNJRkRRQWdBVUVRYWlJREtBSUFJZ1VOQUVFQUlRWU1BUXNEUUNBRElRSWdCU0lHUVJScUlnTW9BZ0FpQlEwQUlBWkJFR29oQXlBR0tBSVFJZ1VOQUFzZ0FrRUFOZ0lBQ3lBSVJRMEFBa0FnQVNBQktBSWNJZ0pCQW5SQjVNSUFhaUlES0FJQVJnUkFJQU1nQmpZQ0FDQUdEUUZCdU1BQVFiakFBQ2dDQUVGK0lBSjNjVFlDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQUZHRzJvZ0JqWUNBQ0FHUlEwQkN5QUdJQWcyQWhnZ0FTZ0NFQ0lDQkVBZ0JpQUNOZ0lRSUFJZ0JqWUNHQXNnQVNnQ0ZDSUNSUTBBSUFZZ0FqWUNGQ0FDSUFZMkFoZ0xJQUVnQ21vaEFTQUFJQXBxSVFBTElBRWdBU2dDQkVGK2NUWUNCQ0FISUFCQkFYSTJBZ1FnQUNBSGFpQUFOZ0lBSUFCQi93Rk5CRUFnQUVFRGRpSUJRUU4wUWR6QUFHb2hBQUovUWJUQUFDZ0NBQ0lDUVFFZ0FYUWlBWEZGQkVCQnRNQUFJQUVnQW5JMkFnQWdBQXdCQ3lBQUtBSUlDeUVCSUFBZ0J6WUNDQ0FCSUFjMkFnd2dCeUFBTmdJTUlBY2dBVFlDQ0F3REN5QUhBbjlCQUNBQVFRaDJJZ0ZGRFFBYVFSOGdBRUgvLy84SFN3MEFHaUFCSUFGQmdQNC9ha0VRZGtFSWNTSUJkQ0lDSUFKQmdPQWZha0VRZGtFRWNTSUNkQ0lESUFOQmdJQVBha0VRZGtFQ2NTSURkRUVQZGlBQklBSnlJQU55YXlJQlFRRjBJQUFnQVVFVmFuWkJBWEZ5UVJ4cUN5SUJOZ0ljSUFkQ0FEY0NFQ0FCUVFKMFFlVENBR29oQWdKQVFiakFBQ2dDQUNJRFFRRWdBWFFpQkhGRkJFQkJ1TUFBSUFNZ0JISTJBZ0FnQWlBSE5nSUFEQUVMSUFCQkFFRVpJQUZCQVhacklBRkJIMFliZENFRElBSW9BZ0FoQVFOQUlBRWlBaWdDQkVGNGNTQUFSZzBESUFOQkhYWWhBU0FEUVFGMElRTWdBaUFCUVFSeGFpSUVLQUlRSWdFTkFBc2dCQ0FITmdJUUN5QUhJQUkyQWhnZ0J5QUhOZ0lNSUFjZ0J6WUNDQXdDQzBIQXdBQWdCa0ZZYWlJQVFYZ2dBV3RCQjNGQkFDQUJRUWhxUVFkeEd5SUNheUlITmdJQVFjekFBQ0FCSUFKcUlnSTJBZ0FnQWlBSFFRRnlOZ0lFSUFBZ0FXcEJLRFlDQkVIUXdBQkJuTVFBS0FJQU5nSUFJQU1nQkVFbklBUnJRUWR4UVFBZ0JFRlpha0VIY1J0cVFWRnFJZ0FnQUNBRFFSQnFTUnNpQWtFYk5nSUVJQUpCL01NQUtRSUFOd0lRSUFKQjlNTUFLUUlBTndJSVFmekRBQ0FDUVFocU5nSUFRZmpEQUNBR05nSUFRZlREQUNBQk5nSUFRWURFQUVFQU5nSUFJQUpCR0dvaEFBTkFJQUJCQnpZQ0JDQUFRUWhxSVFFZ0FFRUVhaUVBSUFRZ0FVc05BQXNnQWlBRFJnMERJQUlnQWlnQ0JFRitjVFlDQkNBRElBSWdBMnNpQkVFQmNqWUNCQ0FDSUFRMkFnQWdCRUgvQVUwRVFDQUVRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQVFMSUFOQ0FEY0NFQ0FEQW45QkFDQUVRUWgySWdCRkRRQWFRUjhnQkVILy8vOEhTdzBBR2lBQUlBQkJnUDQvYWtFUWRrRUljU0lBZENJQklBRkJnT0FmYWtFUWRrRUVjU0lCZENJQ0lBSkJnSUFQYWtFUWRrRUNjU0lDZEVFUGRpQUFJQUZ5SUFKeWF5SUFRUUYwSUFRZ0FFRVZhblpCQVhGeVFSeHFDeUlBTmdJY0lBQkJBblJCNU1JQWFpRUJBa0JCdU1BQUtBSUFJZ0pCQVNBQWRDSUdjVVVFUUVHNHdBQWdBaUFHY2pZQ0FDQUJJQU0yQWdBZ0F5QUJOZ0lZREFFTElBUkJBRUVaSUFCQkFYWnJJQUJCSDBZYmRDRUFJQUVvQWdBaEFRTkFJQUVpQWlnQ0JFRjRjU0FFUmcwRUlBQkJIWFloQVNBQVFRRjBJUUFnQWlBQlFRUnhhaUlHS0FJUUlnRU5BQXNnQmlBRE5nSVFJQU1nQWpZQ0dBc2dBeUFETmdJTUlBTWdBellDQ0F3REN5QUNLQUlJSWdBZ0J6WUNEQ0FDSUFjMkFnZ2dCMEVBTmdJWUlBY2dBallDRENBSElBQTJBZ2dMSUFsQkNHb2hBQXdGQ3lBQ0tBSUlJZ0FnQXpZQ0RDQUNJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FqWUNEQ0FESUFBMkFnZ0xRY0RBQUNnQ0FDSUFJQVZORFFCQndNQUFJQUFnQldzaUFUWUNBRUhNd0FCQnpNQUFLQUlBSWdBZ0JXb2lBallDQUNBQ0lBRkJBWEkyQWdRZ0FDQUZRUU55TmdJRUlBQkJDR29oQUF3REMwR3d3QUJCTURZQ0FFRUFJUUFNQWdzQ1FDQUlSUTBBQWtBZ0JDZ0NIQ0lBUVFKMFFlVENBR29pQXlnQ0FDQUVSZ1JBSUFNZ0FUWUNBQ0FCRFFGQnVNQUFJQWRCZmlBQWQzRWlCellDQUF3Q0N5QUlRUkJCRkNBSUtBSVFJQVJHRzJvZ0FUWUNBQ0FCUlEwQkN5QUJJQWcyQWhnZ0JDZ0NFQ0lBQkVBZ0FTQUFOZ0lRSUFBZ0FUWUNHQXNnQkNnQ0ZDSUFSUTBBSUFFZ0FEWUNGQ0FBSUFFMkFoZ0xBa0FnQWtFUFRRUkFJQVFnQWlBRmFpSUFRUU55TmdJRUlBQWdCR29pQUNBQUtBSUVRUUZ5TmdJRURBRUxJQVFnQlVFRGNqWUNCQ0FFSUFWcUlnTWdBa0VCY2pZQ0JDQUNJQU5xSUFJMkFnQWdBa0gvQVUwRVFDQUNRUU4ySWdGQkEzUkIzTUFBYWlFQUFuOUJ0TUFBS0FJQUlnSkJBU0FCZENJQmNVVUVRRUcwd0FBZ0FTQUNjallDQUNBQURBRUxJQUFvQWdnTElRRWdBQ0FETmdJSUlBRWdBellDRENBRElBQTJBZ3dnQXlBQk5nSUlEQUVMSUFNQ2YwRUFJQUpCQ0hZaUFFVU5BQnBCSHlBQ1FmLy8vd2RMRFFBYUlBQWdBRUdBL2o5cVFSQjJRUWh4SWdCMElnRWdBVUdBNEI5cVFSQjJRUVJ4SWdGMElnVWdCVUdBZ0E5cVFSQjJRUUp4SWdWMFFROTJJQUFnQVhJZ0JYSnJJZ0JCQVhRZ0FpQUFRUlZxZGtFQmNYSkJIR29MSWdBMkFod2dBMElBTndJUUlBQkJBblJCNU1JQWFpRUJBa0FDUUNBSFFRRWdBSFFpQlhGRkJFQkJ1TUFBSUFVZ0IzSTJBZ0FnQVNBRE5nSUFEQUVMSUFKQkFFRVpJQUJCQVhacklBQkJIMFliZENFQUlBRW9BZ0FoQlFOQUlBVWlBU2dDQkVGNGNTQUNSZzBDSUFCQkhYWWhCU0FBUVFGMElRQWdBU0FGUVFSeGFpSUdLQUlRSWdVTkFBc2dCaUFETmdJUUN5QURJQUUyQWhnZ0F5QUROZ0lNSUFNZ0F6WUNDQXdCQ3lBQktBSUlJZ0FnQXpZQ0RDQUJJQU0yQWdnZ0EwRUFOZ0lZSUFNZ0FUWUNEQ0FESUFBMkFnZ0xJQVJCQ0dvaEFBd0JDd0pBSUFsRkRRQUNRQ0FCS0FJY0lnQkJBblJCNU1JQWFpSUNLQUlBSUFGR0JFQWdBaUFFTmdJQUlBUU5BVUc0d0FBZ0NrRitJQUIzY1RZQ0FBd0NDeUFKUVJCQkZDQUpLQUlRSUFGR0cyb2dCRFlDQUNBRVJRMEJDeUFFSUFrMkFoZ2dBU2dDRUNJQUJFQWdCQ0FBTmdJUUlBQWdCRFlDR0FzZ0FTZ0NGQ0lBUlEwQUlBUWdBRFlDRkNBQUlBUTJBaGdMQWtBZ0EwRVBUUVJBSUFFZ0F5QUZhaUlBUVFOeU5nSUVJQUFnQVdvaUFDQUFLQUlFUVFGeU5nSUVEQUVMSUFFZ0JVRURjallDQkNBQklBVnFJZ1FnQTBFQmNqWUNCQ0FESUFScUlBTTJBZ0FnQ0FSQUlBaEJBM1lpQlVFRGRFSGN3QUJxSVFCQnlNQUFLQUlBSVFJQ2YwRUJJQVYwSWdVZ0JuRkZCRUJCdE1BQUlBVWdCbkkyQWdBZ0FBd0JDeUFBS0FJSUN5RUZJQUFnQWpZQ0NDQUZJQUkyQWd3Z0FpQUFOZ0lNSUFJZ0JUWUNDQXRCeU1BQUlBUTJBZ0JCdk1BQUlBTTJBZ0FMSUFGQkNHb2hBQXNnQzBFUWFpUUFJQUFMUkFFQmZ5QUFJQUFvQWhBZ0FXb2lBVFlDRUNBQUlBRkJCM0UyQWdoQmZ5RUNJQUVnQUNnQ0RFRURkRTBFZnlBQUlBQW9BZ0FnQVVFRGRtbzJBZ1JCQUFWQmZ3c0w1UWNCQ0g4Z0FDQUVRUUFnQm1zZ0FpQUNJQVpxUVFCSUd5SUNJQUlnQkVvYklnSnFJQUFnQWtFQVNoc2lDU0FGUVFBZ0Iyc2dBeUFESUFkcVFRQklHeUlBSUFBZ0JVb2JJZ0FnQkd4cUlBa2dBRUVBU2hzaEF5QUhRUUFnQUdzZ0FFRWZkWEVpQ1dzZ0FDQUhhaUlBSUFWcklneEJBQ0FBSUFWS0d5SVBheUVMSUFaQkFDQUNheUlPSUFKQkgzVnhJZzFySUFJZ0Jtb2lBQ0FFYTBFQUlBQWdCRW9pQlJzaUNtc2hBQUpBSUFKQkFFZ2dCWElpRUVVRVFDQUpCRUFEUUNBQklBTWdBQkFWSUFocUlRRWdDVUYvYWlJSkRRQUxDeUFMUlEwQkEwQWdBU0FESUFBUUZTQUlhaUVCSUFNZ0JHb2hBeUFMUVg5cUlnc05BQXNNQVFzQ1FDQUpSUTBBSUExRkJFQURRQ0FBSVFjZ0FTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQVNBSWFpRUJJQWxCZjJvaUNRMEFEQUlBQ3dBTElBRWdEbW9oQmdOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0JpRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQmlBSWFpRUdJQUVnQ0dvaEFTQUpRWDlxSWdrTkFBc0xJQXRGRFFBZ0RVVUVRQU5BSUFBaEJ5QUJJUUlnQXlFRklBQUVRQU5BSUFJZ0JTMEFBRG9BQUNBQ1FRRnFJUUlnQlVFQmFpRUZJQWRCZjJvaUJ3MEFDd3NnQ2dSQUlBSWdCVUYvYWkwQUFDQUtFQWNhQ3lBQklBaHFJUUVnQXlBRWFpRURJQXRCZjJvaUN3MEFEQUlBQ3dBTElBRWdEbW9oQ1FOQUlBRWdBeTBBQUNBTkVBY2hBU0FBSVFjZ0NTRUNJQU1oQlNBQUJFQURRQ0FDSUFVdEFBQTZBQUFnQWtFQmFpRUNJQVZCQVdvaEJTQUhRWDlxSWdjTkFBc0xJQW9FUUNBQ0lBVkJmMm90QUFBZ0NoQUhHZ3NnQ0NBSmFpRUpJQUVnQ0dvaEFTQURJQVJxSVFNZ0MwRi9haUlMRFFBTEN3SkFJQTlGRFFBZ0F5QUVheUVESUJCRkJFQURRQ0FCSUFNZ0FCQVZJQWhxSVFFZ0RFRi9haUlNRFFBTUFnQUxBQXNnRFVVRVFBTkFJQU1oQWlBQklRVWdBQ0VISUFBRVFBTkFJQVVnQWkwQUFEb0FBQ0FGUVFGcUlRVWdBa0VCYWlFQ0lBZEJmMm9pQncwQUN3c2dDZ1JBSUFVZ0FrRi9haTBBQUNBS0VBY2FDeUFCSUFocUlRRWdERUYvYWlJTURRQU1BZ0FMQUFzZ0FTQU9haUVKQTBBZ0FTQURMUUFBSUEwUUJ5RUJJQUFoQnlBSklRSWdBeUVGSUFBRVFBTkFJQUlnQlMwQUFEb0FBQ0FDUVFGcUlRSWdCVUVCYWlFRklBZEJmMm9pQncwQUN3c2dDZ1JBSUFJZ0JVRi9haTBBQUNBS0VBY2FDeUFJSUFscUlRa2dBU0FJYWlFQklBeEJmMm9pREEwQUN3c0w5QUlCQTM4Z0FVRURkRUh3Tm1vaUF5Z0NBQ0VGSUFNdEFBUWhBeUFCUVFOMFFiQTFhaUlCTFFBRUlRUUNRQ0FCS0FJQVFRUkdCRUFnQWlBRVFRRjBhaTRCQUNFQklBVkJCRVlFUUNBQklBSWdBMEVCZEdvdUFRQnFRUUZxUVFGMUR3c0NmeUFBS0FMTUFTSUNCRUFnQUNnQ0JDQUNLQUlFUmd3QkMwRUFDMFVOQVNBQklBQW9Bc3dCSUFOQkFYUnFMZ0VjYWtFQmFrRUJkUThMSUFWQkJFWUVRQ0FDSUFOQkFYUnFMZ0VBSVFFQ2Z5QUFLQUxJQVNJQ0JFQWdBQ2dDQkNBQ0tBSUVSZ3dCQzBFQUMwVU5BU0FCSUFBb0FzZ0JJQVJCQVhScUxnRWNha0VCYWtFQmRROExBbjhDZnlBQUtBTElBU0lCQkVBZ0FDZ0NCQ0FCS0FJRVJnd0JDMEVBQzBVRVFFRUFJUUpCQUF3QkMwRUJJUUlnQUNnQ3lBRWdCRUVCZEdvdUFSd0xJUUVDZnlBQUtBTE1BU0lFQkVBZ0FDZ0NCQ0FFS0FJRVJnd0JDMEVBQzBVTkFDQUFLQUxNQVNBRFFRRjBhaTRCSENFQUlBSkZCRUFnQUE4TElBQWdBV3BCQVdwQkFYVWhBUXNnQVF1SkJ3RUhmeUFESUFWcUlnMGdBUzRCQUNJTVFRSjFhaUVESUFRZ0Jtb2lEaUFCTGdFQ0lnOUJBblZxSVFRZ0FpZ0NDRUVFZENFSklBSW9BZ1JCQkhRaENpQUFJQVpCQkhScUlBVnFJUXNDUUNBTVFRTnhRUVIwSUE5QkEzRkJBblJ5UWRBN2FpZ0NBQ0lNUVE1TkJFQUNRQUpBQWtBQ1FBSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnREVFQmF3NE9BUUlEQkFVR0J3Z0pDZ3NNRFE0QUN5QUNLQUlBSUFzZ0F5QUVJQW9nQ1NBSElBaEJFQkFNREE4TElBSW9BZ0FnQ3lBRElBUkJmbW9nQ2lBSklBY2dDRUVBRUNRTURnc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJRUVjTURRc2dBaWdDQUNBTElBTWdCRUYrYWlBS0lBa2dCeUFJUVFFUUpBd01DeUFDS0FJQUlBc2dBMEYrYWlBRUlBb2dDU0FISUFoQkFCQWpEQXNMSUFJb0FnQWdDeUFEUVg1cUlBUkJmbW9nQ2lBSklBY2dDRUVBRUJvTUNnc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRQVFJUXdKQ3lBQ0tBSUFJQXNnQTBGK2FpQUVRWDVxSUFvZ0NTQUhJQWhCQWhBYURBZ0xJQUlvQWdBZ0N5QURRWDVxSUFRZ0NpQUpJQWNnQ0JCR0RBY0xJQUlvQWdBZ0N5QURRWDVxSUFSQmZtb2dDaUFKSUFjZ0NFRUFFQ0lNQmdzZ0FpZ0NBQ0FMSUFOQmZtb2dCRUYrYWlBS0lBa2dCeUFJRUVVTUJRc2dBaWdDQUNBTElBTkJmbW9nQkVGK2FpQUtJQWtnQnlBSVFRRVFJZ3dFQ3lBQ0tBSUFJQXNnQTBGK2FpQUVJQW9nQ1NBSElBaEJBUkFqREFNTElBSW9BZ0FnQ3lBRFFYNXFJQVJCZm1vZ0NpQUpJQWNnQ0VFQkVCb01BZ3NnQWlnQ0FDQUxJQU5CZm1vZ0JFRithaUFLSUFrZ0J5QUlRUUVRSVF3QkN5QUNLQUlBSUFzZ0EwRithaUFFUVg1cUlBb2dDU0FISUFoQkF4QWFDeUFOUVFGMklBRXVBUUFpQ1VFRGRXb2hBeUFPUVFGMklBRXVBUUlpQVVFRGRXb2hCQ0FDS0FJQUlBSW9BZ1FpQ2lBQ0tBSUlJZ3RzUVFoMGFpRUNJQUFnQmtFQ2RFRjRjV29nQlVFQmRtcEJnQUpxSVFVZ0NFRUJkaUVHSUFkQkFYWWhCeUFCUVFkeElRZ2dDMEVEZENFQUlBcEJBM1FoQVFKQUlBbEJCM0VpQ1VVTkFDQUlSUTBBSUFJZ0JTQURJQVFnQVNBQUlBa2dDQ0FISUFZUVNBOExJQWtFUUNBQ0lBVWdBeUFFSUFFZ0FDQUpJQWNnQmhCTER3c2dDQVJBSUFJZ0JTQURJQVFnQVNBQUlBZ2dCeUFHRUVvUEN5QUNJQVVnQXlBRUlBRWdBQ0FISUFaQkNCQU1JQUlnQUNBQmJHb2dCVUZBYXlBRElBUWdBU0FBSUFjZ0JrRUlFQXdMeHdFQkJIOGdBQ2dDQkNFQ0FrQWdBQ2dDREVFRGRDQUFLQUlRYXlJRFFTQk9CRUFnQWlnQUFDSUJRUmgwSUFGQkNIUkJnSUQ4QjNGeUlBRkJDSFpCZ1A0RGNTQUJRUmgyY25JaEFTQUFLQUlJSWdCRkRRRWdBU0FBZENBQ0xRQUVRUWdnQUd0MmNnOExJQU5CQVVnRVFFRUFEd3NnQWkwQUFDQUFLQUlJSWdCQkdHb2lCSFFoQVNBQUlBTnFRWGhxSWdCQkFVZ05BQU5BSUFJdEFBRWdCRUY0YWlJRWRDQUJjaUVCSUFCQkNFb2hBeUFDUVFGcUlRSWdBRUY0YWlFQUlBTU5BQXNMSUFFTGpBUUJCMzhDUUNBQVFYOXFJZ2d0QUFBaUJTQUFMUUFBSWdacklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJRVR3MEFJQUJCZm1vdEFBQWlCQ0FGYXlJSElBZEJIM1VpQjJvZ0IzTWdBaWdDQ0NJSlR3MEFJQUF0QUFFaUJ5QUdheUlLSUFwQkgzVWlDbW9nQ25NZ0NVOE5BQ0FCUVFOTkJFQWdDQ0FGSUFFZ0FpZ0NBR3BCZjJvdEFBQWlDRUYvY3lJSklBaEJBV29pQ0NBR0lBVnJRUUowSUFkcklBUnFRUVJxUVFOMUlnVWdCU0FJU2hzZ0JTQUpTQnNpQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFGYTBHd0xtb3RBQUE2QUFBTUFRc2dDQ0FGSUFkcUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFBZ0JpQUhRUUYwYWlBRWFrRUNha0VDZGpvQUFBc0NRQ0FBSUFOcUlnQkJmMm9pQnkwQUFDSURJQUF0QUFBaUJXc2lCaUFHUVI5MUlnWnFJQVp6SUFJb0FnUlBEUUFnQUVGK2FpMEFBQ0lHSUFOcklnUWdCRUVmZFNJRWFpQUVjeUFDS0FJSUlnaFBEUUFnQUMwQUFTSUVJQVZySWdrZ0NVRWZkU0lKYWlBSmN5QUlUdzBBSUFGQkEwMEVRQ0FISUFFZ0FpZ0NBR3BCZjJvdEFBQWlBVUYvY3lJQ0lBRkJBV29pQnlBRklBTnJRUUowSUFScklBWnFRUVJxUVFOMUlnRWdBU0FIU2hzZ0FTQUNTQnNpQVNBRGFrR3dMbW90QUFBNkFBQWdBQ0FGSUFGclFiQXVhaTBBQURvQUFBOExJQWNnQXlBRWFpQUdRUUYwYWtFQ2FrRUNkam9BQUNBQUlBVWdCRUVCZEdvZ0JtcEJBbXBCQW5ZNkFBQUxDMGNBQWtBZ0FVRUVUUVJBQWtBQ1FBSkFBa0FnQVVFQmF3NEVBUUlEQlFBTElBQW9Bc2dCRHdzZ0FDZ0N6QUVQQ3lBQUtBTFFBUThMSUFBb0F0UUJEd3RCQUNFQUN5QUFDNlVEQVF0L1FRQWdBMnNpQzBFQmRDRUVJQUVnQWlnQ0FHcEJmMm90QUFBaUFVRUJhaUVKSUFGQmYzTWhDZ0pBSUFBZ0Eyc2lCeTBBQUNJRklBQXRBQUFpQm1zaUFTQUJRUjkxSWdGcUlBRnpJQUlvQWdRaUFVOE5BQ0FBSUFScUxRQUFJZzBnQldzaUNDQUlRUjkxSWdocUlBaHpJQUlvQWdnaUNFOE5BQ0FBSUFOcUxRQUFJZzRnQm1zaURDQU1RUjkxSWd4cUlBeHpJQWhQRFFBZ0J5QUtJQWtnQmlBRmEwRUNkQ0FPYXlBTmFrRUVha0VEZFNJQklBRWdDVW9iSUFFZ0NrZ2JJZ0VnQldwQnNDNXFMUUFBT2dBQUlBQWdCaUFCYTBHd0xtb3RBQUE2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJBV29pQlNBTGFpSUxMUUFBSWdZZ0FDMEFBU0lBYXlJSElBZEJIM1VpQjJvZ0IzTWdBVThOQUNBRUlBVnFMUUFBSWdFZ0Jtc2lCQ0FFUVI5MUlnUnFJQVJ6SUFJb0FnZ2lBazhOQUNBRElBVnFMUUFBSWdNZ0FHc2lCQ0FFUVI5MUlnUnFJQVJ6SUFKUERRQWdDeUFLSUFrZ0FDQUdhMEVDZENBRGF5QUJha0VFYWtFRGRTSUJJQUVnQ1VvYklBRWdDa2diSWdFZ0JtcEJzQzVxTFFBQU9nQUFJQVVnQUNBQmEwR3dMbW90QUFBNkFBQUxDMFFCQW44L0FDRUJBa0JCc01RQUtBSUFJZ0lnQUVFRGFrRjhjV29pQUNBQlFSQjBUUTBBSUFBUUFRMEFRYkRBQUVFd05nSUFRWDhQQzBHd3hBQWdBRFlDQUNBQ0N6UUJBWDhDUUNBQlFSQkxEUUFnQUNnQ0JDQUJRUUowYWlnQ0FDSUFSUTBBSUFBb0FoUkJBa2tOQUNBQUtBSUFJUUlMSUFJTGdnUUJBMzhnQWtHQUJFOEVRQ0FBSUFFZ0FoQUFHaUFBRHdzZ0FDQUNhaUVEQWtBZ0FDQUJjMEVEY1VVRVFBSkFJQUpCQVVnRVFDQUFJUUlNQVFzZ0FFRURjVVVFUUNBQUlRSU1BUXNnQUNFQ0EwQWdBaUFCTFFBQU9nQUFJQUZCQVdvaEFTQUNRUUZxSWdJZ0EwOE5BU0FDUVFOeERRQUxDd0pBSUFOQmZIRWlCRUhBQUVrTkFDQUNJQVJCUUdvaUJVc05BQU5BSUFJZ0FTZ0NBRFlDQUNBQ0lBRW9BZ1EyQWdRZ0FpQUJLQUlJTmdJSUlBSWdBU2dDRERZQ0RDQUNJQUVvQWhBMkFoQWdBaUFCS0FJVU5nSVVJQUlnQVNnQ0dEWUNHQ0FDSUFFb0FodzJBaHdnQWlBQktBSWdOZ0lnSUFJZ0FTZ0NKRFlDSkNBQ0lBRW9BaWcyQWlnZ0FpQUJLQUlzTmdJc0lBSWdBU2dDTURZQ01DQUNJQUVvQWpRMkFqUWdBaUFCS0FJNE5nSTRJQUlnQVNnQ1BEWUNQQ0FCUVVCcklRRWdBa0ZBYXlJQ0lBVk5EUUFMQ3lBQ0lBUlBEUUVEUUNBQ0lBRW9BZ0EyQWdBZ0FVRUVhaUVCSUFKQkJHb2lBaUFFU1EwQUN3d0JDeUFEUVFSSkJFQWdBQ0VDREFFTElBTkJmR29pQkNBQVNRUkFJQUFoQWd3QkN5QUFJUUlEUUNBQ0lBRXRBQUE2QUFBZ0FpQUJMUUFCT2dBQklBSWdBUzBBQWpvQUFpQUNJQUV0QUFNNkFBTWdBVUVFYWlFQklBSkJCR29pQWlBRVRRMEFDd3NnQWlBRFNRUkFBMEFnQWlBQkxRQUFPZ0FBSUFGQkFXb2hBU0FDUVFGcUlnSWdBMGNOQUFzTElBQUx3UmdCSUg4akFFSFFBMnNpQmlRQUlBRW9BZ2doRkNBQklBRW9BZ1FpQ2lBQ2JDSWFJQU5xRUIwZ0FTZ0NBQ0VKSUFCQkFEWUNDQ0FBUWlnM0FoUWdBRUlBTndJTUlBQkJCallDQUNBRFFRUjBJUWNDUUFKQUFrQWdCRUYrYWlJRVFRVkxEUUFDUUNBRVFRRnJEZ1FCQVFFQkFBc01BUXNnQmtFQU5nSU1JQVlnRkRZQ0dDQUdJQW8yQWhRZ0JpQUZOZ0lRSUFVRVFDQUdRZEFBYWlBR1FReHFJQVpCRUdvZ0J5QUNRUVIwUVFCQkFFRVFRUkFRRGd3Q0N3c2dCa0hRQUdwQkFFR0FBeEFIR2lBSklCcEJDSFJxSUFkcUlRd2dCa0lBTndOSUlBWkJRR3RDQURjREFDQUdRZ0EzQXpnZ0JrSUFOd013SUFaQ0FEY0RLQ0FHUWdBM0F5QWdCa0lBTndNWUlBWkNBRGNERUVFQUlRa0NmMEVBSUFKRkRRQWFRUUFnQUVFQUlBcHJRZGdCYkdvb0FzUUJSUTBBR2lBR0lBd2dDa0VFZEdzaUJDMEFCU0FFTFFBRWFpQUVMUUFHYWlBRUxRQUhhaUlYSUFRdEFBTWdCQzBBQWlBRUxRQUJJQVF0QUFCcWFtb2lGbW9pQlNBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSWFtcHFJaEpySUFRdEFBOGdCQzBBRGlBRUxRQU5JQVF0QUF4cWFtb2lFMnNpQ0RZQ0ZDQUdJQVVnRW1vZ0Uyb2lDVFlDRUVFQkN5RUZBbjhDUUNBQ0lCUkJmMnBIQkVBZ0FDQUtRZGdCYkdvb0FzUUJEUUVMSUFVTUFRc2dCaUFNSUFwQkNIUnFJZ0l0QUFVZ0FpMEFCR29nQWkwQUJtb2dBaTBBQjJvaUhpQUNMUUFESUFJdEFBSWdBaTBBQVNBQ0xRQUFhbXBxSWg5cUlnUWdBaTBBQ3lBQ0xRQUtJQUl0QUFrZ0FpMEFDR3BxYWlJWWF5QUNMUUFQSUFJdEFBNGdBaTBBRFNBQ0xRQU1hbXBxSWhscklBaHFJZ2cyQWhRZ0JpQUVJQmhxSUFscUlCbHFJZ2syQWhCQkFTRVFJQVZCQVdvTElRZEJBQ0VFQW44Q1FDQURSUTBBSUFCQmJHb29BZ0JGRFFBZ0JpQU1RWDlxSWdJZ0NrRUdkQ0lPYWlJRUlBcEJCSFFpQzJvdEFBQWdCQzBBQUdvZ0JDQUtRUVYwSWc5cUxRQUFhaUFFSUFwQk1Hd2lEV290QUFCcUloc2dBaUFOYWkwQUFDQUNJQTlxTFFBQUlBSWdDMm90QUFBZ0FpMEFBR3BxYWlJY2FpSVJJQVFnRG1vaUFpQUxhaTBBQUNBQ0xRQUFhaUFDSUE5cUxRQUFhaUFDSUExcUxRQUFhaUlWYXlBQ0lBNXFJZ0lnQzJvdEFBQWdBaTBBQUdvZ0FpQVBhaTBBQUdvZ0FpQU5haTBBQUdvaUQyc2lCRFlDSUNBR0lCRWdGV29nQ1dvZ0Qyb2lDVFlDRUNBSFFRRnFJUXRCQVF3QkN5QUhJUXRCQUFzaEFnSkFBa0FDUUFKQUFrQUNRQ0FESUFwQmYycEhCRUFnQUNnQ25BTU5BUXRCQUNFT0lBSkJBRWNoRVNBSERRRU1BZ3NnQmlBRUlBeEJFR29pQkNBS1FRWjBJaDFxSWdBZ0NrRUVkQ0lOYWkwQUFDQUFMUUFBYWlBQUlBcEJCWFFpRG1vdEFBQnFJQUFnQ2tFd2JDSVJhaTBBQUdvaUlDQUVJQkZxTFFBQUlBUWdEbW90QUFBZ0JDQU5haTBBQUNBTUxRQVFhbXBxSWlGcUlpSWdBQ0FkYWlJQUlBMXFMUUFBSUFBdEFBQnFJQUFnRG1vdEFBQnFJQUFnRVdvdEFBQnFJZ3hySUFBZ0hXb2lBQ0FOYWkwQUFDQUFMUUFBYWlBQUlBNXFMUUFBYWlBQUlCRnFMUUFBYWlJTmEyb2lCRFlDSUNBR0lBd2dJbW9nQ1dvZ0RXb2lDVFlDRUNBQ1FRQkhJUkZCQVNFT0lBSkJBV29oQUNBTFFRRnFJUXNDUUNBSERRQWdBa1VOQUNBR0lCc2dIR29nRldvZ0Qyb2dJV3NnSUdzZ0RHc2dEV3RCQlhVaUNEWUNGQXdEQ3lBSFJRMENJQUFoQWdzZ0JpQUlJQWRCQTJwMUlnZzJBaFFMQWtBZ0VFVU5BQ0FGUlEwQUlBSU5BQ0FHSUJZZ0Yyb2dFbW9nRTJvZ0dXc2dHR3NnSG1zZ0gydEJCWFVpQkRZQ0lFRUJJUkJCQVNFTkRBTUxJQkJCQUVjaEVDQUZRUUJISVEwZ0FrVU5BZ3dCQ3lBUVFRQkhJUkFnQlVFQVJ5RU5JQUFoQWdzZ0JpQUVJQUpCQTJwMUlnUTJBaUFMSUFZQ2Z5QUxRWDlxSWdCQkFrMEVRQUpBQWtBQ1FDQUFRUUZyRGdJQkFnQUxJQWxCQkhZTUF3c2dDVUVGZGd3Q0N5QUpRUlZzUVFwMURBRUxJQWxCQm5ZTElnQTJBaEFDUUNBRUlBaHlSUVJBSUFZZ0FEWUNTQ0FHSUFBMkFrd2dCaUFBTmdKRUlBWWdBRFlDUUNBR0lBQTJBandnQmlBQU5nSTRJQVlnQURZQ05DQUdJQUEyQWpBZ0JpQUFOZ0lzSUFZZ0FEWUNLQ0FHSUFBMkFpUWdCaUFBTmdJZ0lBWWdBRFlDSENBR0lBQTJBaGdnQmlBQU5nSVVEQUVMSUFZZ0FDQUlhaUlGSUFSck5nSkFJQVlnQlNBRVFRRjFJZ0pyTmdJd0lBWWdBaUFGYWpZQ0lDQUdJQVFnQldvMkFoQWdCaUFBSUFocklnVWdCR3MyQWt3Z0JpQUZJQUpyTmdJOElBWWdBaUFGYWpZQ0xDQUdJQVFnQldvMkFod2dCaUFBSUFoQkFYVWlCMm9pQlNBRWF6WUNSQ0FHSUFVZ0FtczJBalFnQmlBQ0lBVnFOZ0lrSUFZZ0JDQUZhallDRkNBR0lBQWdCMnNpQUNBRWF6WUNTQ0FHSUFBZ0FtczJBamdnQmlBQUlBSnFOZ0lvSUFZZ0FDQUVhallDR0FzZ0JrSFFBR29oQ0NBR1FSQnFJUUJCQUNFRUEwQWdDQ0FBSUFSQkRIRnFLQUlBSWdKQi93RWdBa0gvQVVnYklnSkJBQ0FDUVFCS0d6b0FBQ0FBSUFCQkVHb2dCRUVCYWlJRVFUOXhHeUVBSUFoQkFXb2hDQ0FFUVlBQ1J3MEFDeUFCS0FJQUlBb2dGR3dpQUVFSWRHb2dHa0VHZEdvZ0EwRURkR29oQXlBS1FRUjBJUXdnQ2tFR2RDRWFJQUJCQm5RaEhVRUFJQXBCQTNRaUMyc2hJQ0FHUWRBQ2FpRWhJQVpCUUdzaElrRUFJUVVEUUNBR1FnQTNBMGdnSWtJQU53TUFJQVpDQURjRE9DQUdRZ0EzQXpBZ0JrSUFOd01vSUFaQ0FEY0RJQ0FHUWdBM0F4Z2dCa0lBTndNUVFRQWhDRUVBSVFSQkFDRUpJQTBFUUNBR0lBTWdJR29pQUMwQUF5QUFMUUFDYWlJWElBQXRBQUVnQUMwQUFHb2lGbW9pQWlBQUxRQUZJQUF0QUFScUloSnJJQUF0QUFjZ0FDMEFCbW9pRTJzaUNEWUNGQ0FHSUFJZ0Vtb2dFMm9pQkRZQ0VFRUJJUWtMSUJBRVFDQUdJQU1nR21vaUFDMEFBeUFBTFFBQ2FpSWVJQUF0QUFFZ0FDMEFBR29pSDJvaUFpQUFMUUFGSUFBdEFBUnFJaGhySUFBdEFBY2dBQzBBQm1vaUdXc2dDR29pQ0RZQ0ZDQUdJQUlnR0dvZ0JHb2dHV29pQkRZQ0VDQUpRUUZxSVFrTFFRQWhBQUovSUJGRkJFQWdDU0VIUVFBTUFRc2dCaUFEUVg5cUlnQWdER29pQWlBTGFpMEFBQ0FDTFFBQWFpSWJJQUFnQzJvdEFBQWdBQzBBQUdvaUhHb2lCeUFDSUF4cUlnQWdDMm90QUFBZ0FDMEFBR29pRldzZ0FDQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlnOXJJZ0EyQWlBZ0JpQUhJQlZxSUFScUlBOXFJZ1EyQWhBZ0NVRUJhaUVIUVFFTElRSUNRQ0FHQW44Q1FBSkFBa0FnRGtVRVFDQUpEUUVNQWdzZ0JpQUFJQU5CQ0dvaUNpQU1haUlBSUF0cUxRQUFJQUF0QUFCcUlpTWdDaUFMYWkwQUFDQURMUUFJYWlJa2FpSWxJQUFnREdvaUFDQUxhaTBBQUNBQUxRQUFhaUlLYXlBQUlBeHFJZ0FnQzJvdEFBQWdBQzBBQUdvaUZHdHFJZ0EyQWlBZ0JpQUtJQ1ZxSUFScUlCUnFJZ1EyQWhBZ0FrRUJhaUVDSUFkQkFXb2hCeUFSUVFGeklBbEJBRWR5UlFSQUlBWWdHeUFjYWlBVmFpQVBhaUFrYXlBamF5QUtheUFVYTBFRWRTSUlOZ0lVREFNTElBbEZEUUlMSUFZZ0NDQUpRUUpxZFNJSU5nSVVDeUFXSUJkcUlCSnFJQk5xSUJscklCaHJJQjVySUI5clFRUjFJQkFnRFNBQ1JYRnhRUUZHRFFFYUlBSkZEUUlMSUFBZ0FrRUNhblVMSWdBMkFpQUxJQVlDZnlBSFFYOXFJZ0pCQWswRVFBSkFBa0FDUUNBQ1FRRnJEZ0lCQWdBTElBUkJBM1lNQXdzZ0JFRUVkZ3dDQ3lBRVFSVnNRUWwyREFFTElBUkJCWFlMSWdRMkFoQUNRQ0FBSUFoeVJRUkFJQVlnQkRZQ1NDQUdJQVEyQWt3Z0JpQUVOZ0pFSUFZZ0JEWUNRQ0FHSUFRMkFqd2dCaUFFTmdJNElBWWdCRFlDTkNBR0lBUTJBakFnQmlBRU5nSXNJQVlnQkRZQ0tDQUdJQVEyQWlRZ0JpQUVOZ0lnSUFZZ0JEWUNIQ0FHSUFRMkFoZ2dCaUFFTmdJVURBRUxJQVlnQkNBSWFpSUhJQUJyTmdKQUlBWWdCeUFBUVFGMUlnSnJOZ0l3SUFZZ0FpQUhhallDSUNBR0lBQWdCMm8yQWhBZ0JpQUVJQWhySWdjZ0FHczJBa3dnQmlBSElBSnJOZ0k4SUFZZ0FpQUhhallDTENBR0lBQWdCMm8yQWh3Z0JpQUVJQWhCQVhVaUNXb2lCeUFBYXpZQ1JDQUdJQWNnQW1zMkFqUWdCaUFDSUFkcU5nSWtJQVlnQUNBSGFqWUNGQ0FHSUFRZ0NXc2lCQ0FBYXpZQ1NDQUdJQVFnQW1zMkFqZ2dCaUFDSUFScU5nSW9JQVlnQUNBRWFqWUNHQXNnSVNBRlFRWjBhaUVJUVFBaEFDQUdRUkJxSVFRRFFDQUlJQVFnQUVFQmRFRU1jV29vQWdBaUFrSC9BU0FDUWY4QlNCc2lBa0VBSUFKQkFFb2JPZ0FBSUFRZ0JFRVFhaUFBUVFGcUlnQkJEM0ViSVFRZ0NFRUJhaUVJSUFCQndBQkhEUUFMSUFNZ0hXb2hBeUFGUVFGcUlnVkJBa2NOQUFzTElBRWdCa0hRQUdvUUd5QUdRZEFEYWlRQUN6WUFJQUlFUUNBQUlBRVFBZzhMUVFFaEFpQUJJQUJCQVJBRElnQTJBZ0FnQUVGL1J3Ui9JQUVnQUVFQmN6WUNBRUVBQlVFQkN3dk1Bd0VTZnlBRFFRRjBJUThnQTBGOWJDRVFRUUFnQTJzaUVVRUJkQ0VTSUFFZ0FpZ0NBR3BCZjJvdEFBQWlCMEVCYWlFVFFRQWdCMnNoQ2tFRUlRRURRQUpBSUFBZ0VXb2lGQzBBQUNJRklBQXRBQUFpQ0dzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdSUERRQWdBQ0FTYWlJTExRQUFJZ3dnQldzaUJDQUVRUjkxSWdScUlBUnpJQUlvQWdnaUJrOE5BQ0FBSUFOcUloVXRBQUFpRFNBSWF5SUVJQVJCSDNVaUJHb2dCSE1nQms4TkFDQUhJUVFnQUNBUWFpMEFBQ0lKSUFWcklnNGdEa0VmZFNJT2FpQU9jeUFHU1FSQUlBc2dEQ0FLSUFjZ0JTQUlha0VCYWtFQmRpQU1RUUYwYXlBSmFrRUJkU0lFSUFRZ0Iwb2JJQVFnQ2tnYmFqb0FBQ0FDS0FJSUlRWWdFeUVFQ3lBVUlBVUNmeUFBSUE5cUxRQUFJZ3NnQ0dzaUNTQUpRUjkxSWdscUlBbHpJQVpKQkVBZ0ZTQU5JQW9nQnlBRklBaHFRUUZxUVFGMklBMUJBWFJySUF0cVFRRjFJZ1lnQmlBSFNoc2dCaUFLU0J0cU9nQUFJQVJCQVdvaEJBdEJBQ0FFYXlJR0N5QUVJQWdnQld0QkFuUWdEV3NnREdwQkJHcEJBM1VpQlNBRklBUktHeUFGSUFaSUd5SUVha0d3TG1vdEFBQTZBQUFnQUNBSUlBUnJRYkF1YWkwQUFEb0FBQXNnQUVFQmFpRUFJQUZCZjJvaUFRMEFDd3Y3QmdFT2Z5QUNLQUlJSVFvZ0FpZ0NCQ0VQQWtBZ0FVRUVUd1JBSUE5QkFuWkJBbW9oRUVFRUlRSURRQUpBSUFCQmYyb2lCUzBBQUNJSElBQXRBQUFpQ0dzaUFTQUJRUjkxSWdGcUlBRnpJZzBnRDA4TkFDQUFRWDVxSWc0dEFBQWlBU0FIYXlJRUlBUkJIM1VpQkdvZ0JITWdDazhOQUNBQUxRQUJJZ2tnQ0dzaUJDQUVRUjkxSWdScUlBUnpJQXBQRFFBQ1FDQU5JQkJKQkVBZ0FDMEFBaUVMQW44Z0FFRjlhaUlOTFFBQUlnUWdCMnNpQmlBR1FSOTFJZ1pxSUFaeklBcEpCRUJCQXlFR0lBVWdDU0FISUFocUlBRnFJZ1ZCQVhScUlBUnFRUVJxUVFOMk9nQUFJQTRnQkNBRmFrRUNha0VDZGpvQUFDQUVRUU5zSVE0Z0JVRUVhaUVNSUFCQmZHb3RBQUFNQVFzZ0J5QUphaUVNUVFJaERrRUNJUVlnQlNFTklBRUxJUVFnRFNBTUlBNXFJQVJCQVhScUlBWjJPZ0FBSUFzZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFwUERRRWdBQ0FISUFscUlBaHFJZ1VnQzJwQkFtcEJBblk2QUFFZ0FDQUZJQXRCQTJ4cUlBQXRBQU5CQVhScVFRUnFRUU4yT2dBQ0lBQWdBU0FGUVFGMGFpQUxha0VFYWtFRGRqb0FBQXdDQ3lBRklBY2dDV29nQVVFQmRHcEJBbXBCQW5ZNkFBQUxJQUFnQVNBSWFpQUpRUUYwYWtFQ2FrRUNkam9BQUFzZ0FDQURhaUVBSUFKQmYyb2lBZzBBQ3d3QkN5QUJJQUlvQWdCcVFYOXFMUUFBSWdWQkFXb2hEVUVBSUFWcklRaEJCQ0VDQTBBQ1FDQUFRWDlxSWc0dEFBQWlCQ0FBTFFBQUlnZHJJZ0VnQVVFZmRTSUJhaUFCY3lBUFR3MEFJQUJCZm1vaURDMEFBQ0lKSUFScklnRWdBVUVmZFNJQmFpQUJjeUFLVHcwQUlBQXRBQUVpQ3lBSGF5SUJJQUZCSDNVaUFXb2dBWE1nQ2s4TkFDQUFMUUFDSVFZZ0JTRUJJQUJCZldvdEFBQWlFQ0FFYXlJUklCRkJIM1VpRVdvZ0VYTWdDa2tFUUNBTUlBa2dDQ0FGSUFRZ0IycEJBV3BCQVhZZ0NVRUJkR3NnRUdwQkFYVWlBU0FCSUFWS0d5QUJJQWhJRzJvNkFBQWdEU0VCQ3lBT0lBUUNmeUFHSUFkcklnd2dERUVmZFNJTWFpQU1jeUFLU1FSQUlBQWdDeUFJSUFVZ0JDQUhha0VCYWtFQmRpQUxRUUYwYXlBR2FrRUJkU0lHSUFZZ0JVb2JJQVlnQ0VnYmFqb0FBU0FCUVFGcUlRRUxRUUFnQVdzaUJnc2dBU0FKSUF0cklBY2dCR3RCQW5ScVFRUnFRUU4xSWdRZ0JDQUJTaHNnQkNBR1NCc2lBV3BCc0M1cUxRQUFPZ0FBSUFBZ0J5QUJhMEd3TG1vdEFBQTZBQUFMSUFBZ0Eyb2hBQ0FDUVg5cUlnSU5BQXNMQzlvSEFRMS9Jd0JCd0FOckloRWtBQ0FHUVFWcUlRa0NRQUpBSUFKQkFFZ05BQ0FEUVFCSURRQWdBaUFKYWlBRVN3MEFJQU1nQjJwQkJXb2dCVXNOQUNBRUlRa2dBeUVLREFFTElBQWdFU0FDSUFNZ0JDQUZJQWtnQjBFRmFpQUpFQXdnRVNFQVFRQWhBZ3NDUUNBSFJRMEFJQUFnQ1NBS2JDQUNhbW9oRTBFUUlBWnJJUlFDUUNBR1FRSjJJaElFUUNBSklBWnJJUlVnRXlBSklBaEJBWFpCQVhGQkFuSnNha0VGYWlFQ0lBY2hCQU5BSUFKQmYyb3RBQUFoQUNBQ1FYNXFMUUFBSVFNZ0FrRjlhaTBBQUNFRklBSkJmR290QUFBaEN5QUNRWHRxTFFBQUlRMGdFaUVQQTBBZ0FTQUNMUUFBSWdvZ0RTQUFJQXRxSWd4cklBTWdCV3BCRkd4cUlBeEJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQUFnQVNBQ0xRQUJJZ3dnQ3lBQUlBTnFRUlJzYWlBRklBcHFJZ3RySUF0QkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBRWdBU0FDTFFBQ0loQWdCU0FBSUFwcVFSUnNhaUFESUF4cUlnVnJJQVZCQW5ScmFrRVFha0VGZFVHd0xtb3RBQUE2QUFJZ0FTQUNMUUFESWc0Z0F5QUtJQXhxUVJSc2FpQUFJQkJxSWdOcklBTkJBblJyYWtFUWFrRUZkVUd3TG1vdEFBQTZBQU1nQVVFRWFpRUJJQUpCQkdvaEFpQUFJUTBnQ2lFTElBd2hCU0FRSVFNZ0RpRUFJQTlCZjJvaUR3MEFDeUFCSUJScUlRRWdBaUFWYWlFQ0lBUkJmMm9pQkEwQUN3d0JDeUFIUVg5cUlCUnNJQVpySUFGcVFSQnFJUUVMSUFkQkFuWWlCRVVOQUVIQUFDQUdheUVRSUFsQkFYUWhDaUFKUVFKMElBWnJJUXRCQUNBSmF5SU1RUUYwSVJJZ0FTQUhRUVIwYXlFQ0lBa2dFMm9nQ0VFQmNXcEJBbW9pQUNBSlFRVnNhaUVCQTBBZ0JpSURCRUFEUUNBQ0lBQWdDbW90QUFBaUJTQUJJQXBxTFFBQUlBRWdDV290QUFBaURpQUJJQkpxTFFBQUlnZHFJZ2hySUFoQkFuUnJhaUFCTFFBQUlnMGdBU0FNYWkwQUFDSUlha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQUl0QURCcVFRRnFRUUYyT2dBd0lBSWdBQ0FKYWkwQUFDSVBJQTRnQnlBSWFrRVViR29nQlNBTmFpSU9heUFPUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFDQnFRUUZxUVFGMk9nQWdJQUlnQUMwQUFDSU9JQTBnQlNBSGFrRVViR29nQ0NBUGFpSU5heUFOUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBSUFJdEFCQnFRUUZxUVFGMk9nQVFJQUlnQUNBTWFpMEFBQ0FJSUFVZ0QycEJGR3hxSUFjZ0Rtb2lCV3NnQlVFQ2RHdHFRUkJxUVFWMVFiQXVhaTBBQUNBQ0xRQUFha0VCYWtFQmRqb0FBQ0FBUVFGcUlRQWdBa0VCYWlFQ0lBRkJBV29oQVNBRFFYOXFJZ01OQUFzTElBSWdFR29oQWlBQklBdHFJUUVnQUNBTGFpRUFJQVJCZjJvaUJBMEFDd3NnRVVIQUEyb2tBQXUxQlFFRWZ5QUFLQUlVSVFNZ0FDZ0NFQ0VFSUFBb0FnUWhCU0FBS0FJTUlnSWdBU2tDQURjQ0FDQUNJQUVwQWdnM0FnZ2dBaUFGUVFSMElnQnFJZ0lnQVNrQ0VEY0NBQ0FDSUFFcEFoZzNBZ2dnQUNBQ2FpSUNJQUVwQWlBM0FnQWdBaUFCS1FJb053SUlJQUFnQW1vaUFpQUJLUUl3TndJQUlBSWdBU2tDT0RjQ0NDQUFJQUpxSWdJZ0FTa0NRRGNDQUNBQ0lBRXBBa2czQWdnZ0FDQUNhaUlDSUFFcEFsQTNBZ0FnQWlBQktRSllOd0lJSUFBZ0Ftb2lBaUFCS1FKZ053SUFJQUlnQVNrQ2FEY0NDQ0FBSUFKcUlnSWdBU2tDY0RjQ0FDQUNJQUVwQW5nM0FnZ2dBQ0FDYWlJQ0lBRXBBb0FCTndJQUlBSWdBU2tDaUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcEFCTndJQUlBSWdBU2tDbUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBcUFCTndJQUlBSWdBU2tDcUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBckFCTndJQUlBSWdBU2tDdUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBc0FCTndJQUlBSWdBU2tDeUFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdEFCTndJQUlBSWdBU2tDMkFFM0FnZ2dBQ0FDYWlJQ0lBRXBBdUFCTndJQUlBSWdBU2tDNkFFM0FnZ2dBQ0FDYWlJQUlBRXBBdkFCTndJQUlBQWdBU2tDK0FFM0FnZ2dCQ0FCS1FLQUFqY0NBQ0FFSUFWQkEzUWlBR29pQkNBQktRS0lBamNDQUNBQUlBUnFJZ1FnQVNrQ2tBSTNBZ0FnQUNBRWFpSUVJQUVwQXBnQ053SUFJQUFnQkdvaUJDQUJLUUtnQWpjQ0FDQUFJQVJxSWdRZ0FTa0NxQUkzQWdBZ0FDQUVhaUlFSUFFcEFyQUNOd0lBSUFBZ0JHb2dBU2tDdUFJM0FnQWdBeUFCS1FMQUFqY0NBQ0FBSUFOcUlnTWdBU2tDeUFJM0FnQWdBQ0FEYWlJRElBRXBBdEFDTndJQUlBQWdBMm9pQXlBQktRTFlBamNDQUNBQUlBTnFJZ01nQVNrQzRBSTNBZ0FnQUNBRGFpSURJQUVwQXVnQ053SUFJQUFnQTJvaUF5QUJLUUx3QWpjQ0FDQUFJQU5xSUFFcEF2Z0NOd0lBQytnQ0FRVi9Ba0FnQUNBQkVBSWlBdzBBUVFFaEF5QUJJQUVvQWdCQkFXb2lBallDQUNBQ1FTQkxEUUFnQUVFRUVBTWlBa0YvUmcwQUlBRWdBallDQkNBQVFRUVFBeUlDUVg5R0RRQWdBU0FDTmdJSUlBRW9BZ0FFUUFOQUlBQWdBU0FGUVFKMGFpSUNJZ1JCREdvUUFpSUREUUpCQVNFRElBUW9BZ3dpQmtGL1JnMENJQVFnQmtFQmFpSUROZ0lNSUFRZ0F5QUJLQUlFUVFacWREWUNEQ0FBSUFKQmpBRnFFQUlpQXcwQ1FRRWhBeUFDS0FLTUFTSUVRWDlHRFFJZ0FpQUVRUUZxSWdRMkFvd0JJQUlnQkNBQktBSUlRUVJxZERZQ2pBRWdBRUVCRUFNaUJFRi9SZzBDSUFJZ0JFRUJSallDakFJZ0JVRUJhaUlGSUFFb0FnQkpEUUFMQ3lBQVFRVVFBeUlDUVg5R0RRQWdBU0FDUVFGcU5nS01BeUFBUVFVUUF5SUNRWDlHRFFBZ0FTQUNRUUZxTmdLUUF5QUFRUVVRQXlJQ1FYOUdEUUFnQVNBQ1FRRnFOZ0tVQXlBQVFRVVFBeUlBUVg5R0RRQWdBU0FBTmdLWUEwRUFJUU1MSUFNTFd3RURmeUFBSUFBb0FnQWlCQ0FCSUFBb0FnUWlBbkFpQTBFRWRHb2dBU0FEYXlJQlFRaDBhallDRENBQUlBUWdBaUFBS0FJSWJDSUNRUWgwYWlBQlFRWjBhaUFEUVFOMGFpSUJOZ0lRSUFBZ0FTQUNRUVowYWpZQ0ZBdFZBUUovSUFFZ0FrRUJhaUlESUFNZ0FVa2JJUU1nQUNBQ1FRSjBhaWdDQUNFRUEwQUNRQ0FDUVFGcUlnSWdBVThFUUNBRElRSU1BUXNnQUNBQ1FRSjBhaWdDQUNBRVJ3MEJDd3RCQUNBQ0lBRWdBa1liQ3ljQUlBQkJDQ0FBS0FJSUlnQnJFQU5CZjBZRVFBOExRUUFnQUd0QkFuUkJ6RDlxS0FJQUdndDZBUUovSXdCQklHc2lBaVFBSUFJZ0FDZ0NFRFlDRUNBQ0lBQXBBZ2czQXdnZ0FpQUFLUUlBTndNQUFrQWdBaUFDUVJ4cUVBSWlBQTBBSUFJZ0FrRWNhaEFDSWdBTkFDQUNJQUpCSEdvUUFpSUFEUUJCQVNFQUlBSW9BaHdpQTBIL0FVc05BQ0FCSUFNMkFnQkJBQ0VBQ3lBQ1FTQnFKQUFnQUF2bkJ3RVNmeU1BUVlBT2F5SU1KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQTBFQVNBMEFJQUlnQ1dvZ0JFc05BQ0FESUFkcVFRVnFJQVZMRFFBZ0F5RUtEQUVMSUFBZ0RFSEFDbW9nQWlBRElBUWdCU0FKSUFkQkJXb2dDUkFNSUF4QndBcHFJUUFnQ1NFRVFRQWhBZ3NDUUNBSFFRSjJJaFJGRFFBZ0NVVU5BQ0FFUVFGMElSVkJBQ0FFYXlJV1FRRjBJUm9nQkVFQ2RDQUdhMEY3YWlFWElBQWdCQ0FLYkNBQ2Ftb2dCR29pQUNBRVFRVnNhaUVDSUF3Z0NVRUNkQ0lRYWlFRElBbEJBM1FoRFVFQUlBbHJRUUowSVE0Z0NVRURiRUVDZENFUEEwQWdDU0VGQTBBZ0F5QU5haUFBSUJWcUxRQUFJaEVnQWlBVmFpMEFBQ0FDSUFScUxRQUFJZ3NnQWlBYWFpMEFBQ0lTYWlJS2F5QUtRUUowYTJvZ0FpMEFBQ0lZSUFJZ0Ztb3RBQUFpRTJwQkZHeHFOZ0lBSUFNZ0VHb2dBQ0FFYWkwQUFDSVpJQXNnRWlBVGFrRVViR29nRVNBWWFpSUtheUFLUVFKMGEybzJBZ0FnQXlBQUxRQUFJZ3NnR0NBUklCSnFRUlJzYWlBVElCbHFJZ3BySUFwQkFuUnJhallDQUNBRElBNXFJQUFnRm1vdEFBQWdFeUFSSUJscVFSUnNhaUFMSUJKcUlncHJJQXBCQW5ScmFqWUNBQ0FBUVFGcUlRQWdBMEVFYWlFRElBSkJBV29oQWlBRlFYOXFJZ1VOQUFzZ0FpQVhhaUVDSUFBZ0Yyb2hBQ0FESUE5cUlRTWdGRUYvYWlJVURRQUxDeUFIQkVCQkVDQUdheUVRSUFaQkFuWWhDaUFNSUFoQkFuUnFRUWhxSVFBZ0RFRVVhaUVDQTBBZ0NnUkFJQUpCYkdvb0FnQWhCQ0FDUVhCcUtBSUFJUThnQWtGMGFpZ0NBQ0VOSUFKQmVHb29BZ0FoQlNBQ1FYeHFLQUlBSVFNZ0NpRUpBMEFnQVNBQ0tBSUFJZzRnQkNBRElBOXFJZ1JySUFVZ0RXcEJGR3hxSUFSQkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQUlBQW9BZ0JCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlvQWdRaUN5QVBJQU1nQldwQkZHeHFJQTBnRG1vaUJHc2dCRUVDZEd0cVFZQUVha0VLZFVHd0xtb3RBQUFnQUNnQ0JFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FCSUFFZ0FpZ0NDQ0lJSUEwZ0F5QU9ha0VVYkdvZ0JTQUxhaUlFYXlBRVFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlJUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBSWdBU0FDS0FJTUlnWWdCU0FMSUE1cVFSUnNhaUFESUFocUlnUnJJQVJCQW5ScmFrR0FCR3BCQ25WQnNDNXFMUUFBSUFBb0FneEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQXlBQlFRUnFJUUVnQUVFUWFpRUFJQUpCRUdvaEFpQURJUVFnRGlFUElBc2hEU0FJSVFVZ0JpRURJQWxCZjJvaUNRMEFDd3NnQVNBUWFpRUJJQUJCRkdvaEFDQUNRUlJxSVFJZ0IwRi9haUlIRFFBTEN5QU1RWUFPYWlRQUM5RUhBUXgvSXdCQmdBNXJJZzhrQUNBR1FRVnFJUWtDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSmFpQUVTdzBBSUFkQkJXb2lEaUFEYWlBRlN3MEFJQVFoQ1NBRElRb01BUXNnQUNBUFFjQUthaUFDSUFNZ0JDQUZJQWtnQjBFRmFpSU9JQWtRRENBUFFjQUthaUVBUVFBaEFnc0NRQ0FPUlEwQUlBWkJBbllpRWtVTkFDQUpJQVpySVJNZ0FDQUpJQXBzSUFKcWFrRUZhaUVDSUE4aEFBTkFJQUpCZjJvdEFBQWhDU0FDUVg1cUxRQUFJUU1nQWtGOWFpMEFBQ0VGSUFKQmZHb3RBQUFoQ2lBQ1FYdHFMUUFBSVF3Z0VpRU5BMEFnQUNBQ0xRQUFJZ1FnRENBSklBcHFJZ3RySUFNZ0JXcEJGR3hxSUF0QkFuUnJhallDQUNBQUlBSXRBQUVpQ3lBRElBbHFRUlJzSUFwcUlBUWdCV29pQ21zZ0NrRUNkR3RxTmdJRUlBQWdBaTBBQWlJUUlBUWdDV3BCRkd3Z0JXb2dBeUFMYWlJRmF5QUZRUUowYTJvMkFnZ2dBQ0FDTFFBREloUWdCQ0FMYWtFVWJDQURhaUFKSUJCcUlnTnJJQU5CQW5ScmFqWUNEQ0FBUVJCcUlRQWdBa0VFYWlFQ0lBa2hEQ0FFSVFvZ0N5RUZJQkFoQXlBVUlRa2dEVUYvYWlJTkRRQUxJQUlnRTJvaEFpQU9RWDlxSWc0TkFBc0xJQWRCQW5ZaUJ3UkFRY0FBSUFacklSUWdEeUFHUVFKMElnUnFJZ2tnQmtFVWJHb2hBaUFKSUFoQkFtb2dCbXhCQW5ScUlRQWdCa0VEYkVFQ2RDRUZRUUFnQm1zaURrRURkQ0VUSUFaQkEzUWhDQU5BSUFZaEF5QUdCRUFEUUNBQklBZ2dDV29vQWdBaUNpQUNJQWhxS0FJQUlBSWdCR29vQWdBaUVTQUNJQk5xS0FJQUlndHFJZ3hySUF4QkFuUnJhaUFDS0FJQUlnMGdBaUFPUVFKMEloQnFLQUlBSWd4cVFSUnNha0dBQkdwQkNuVkJzQzVxTFFBQUlBQWdDR29vQWdCQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FNQ0FCSUFRZ0NXb29BZ0FpRWlBUklBc2dER3BCRkd4cUlBb2dEV29pRVdzZ0VVRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQWdBQ0FFYWlnQ0FFRVFha0VGZFVHd0xtb3RBQUJxUVFGcVFRRjJPZ0FnSUFFZ0NTZ0NBQ0lSSUEwZ0NpQUxha0VVYkdvZ0RDQVNhaUlOYXlBTlFRSjBhMnBCZ0FScVFRcDFRYkF1YWkwQUFDQUFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFCQWdBU0FKSUJCcUtBSUFJQXdnQ2lBU2FrRVViR29nQ3lBUmFpSUtheUFLUVFKMGEycEJnQVJxUVFwMVFiQXVhaTBBQUNBQUlCQnFLQUlBUVJCcVFRVjFRYkF1YWkwQUFHcEJBV3BCQVhZNkFBQWdBRUVFYWlFQUlBbEJCR29oQ1NBQlFRRnFJUUVnQWtFRWFpRUNJQU5CZjJvaUF3MEFDd3NnQVNBVWFpRUJJQUFnQldvaEFDQUNJQVZxSVFJZ0JTQUphaUVKSUFkQmYyb2lCdzBBQ3dzZ0QwR0FEbW9rQUF1MEJnRUpmeU1BUWNBRGF5SU5KQUFnQmtFRmFpRUpBa0FDUUNBQ1FRQklEUUFnQXlBSGFpQUZTdzBBSUFOQkFFZ05BQ0FDSUFscUlBUkxEUUFnQkNFSklBTWhDZ3dCQ3lBQUlBMGdBaUFESUFRZ0JTQUpJQWNnQ1JBTUlBMGhBRUVBSVFJTElBY0VRRUVRSUFacklSQWdDU0FHYXlFUklBWkJBblloRHlBQUlBa2dDbXdnQW1wcVFRVnFJUWtEUUFKQUlBOUZEUUFnQ1VGL2FpMEFBQ0VDSUFsQmZtb3RBQUFoQmlBSlFYMXFMUUFBSVFNZ0NVRjhhaTBBQUNFRklBbEJlMm90QUFBaENpQVBJZ0FoQ3lBSUJFQURRQ0FCSUFZZ0NTMEFBQ0lFSUFvZ0FpQUZhaUlLYXlBRElBWnFRUlJzYWlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFDQUJJQUlnQ1MwQUFTSUxJQVVnQWlBR2FrRVViR29nQXlBRWFpSUZheUFGUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQVNBQklBUWdDUzBBQWlJTUlBTWdBaUFFYWtFVWJHb2dCaUFMYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBaUFCSUFzZ0NTMEFBeUlPSUFZZ0JDQUxha0VVYkdvZ0FpQU1haUlEYXlBRFFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUF5QUJRUVJxSVFFZ0NVRUVhaUVKSUFJaENpQUVJUVVnQ3lFRElBd2hCaUFPSVFJZ0FFRi9haUlBRFFBTUFnQUxBQXNEUUNBQklBTWdDUzBBQUNJQUlBb2dBaUFGYWlJRWF5QURJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBQ0FCSUFZZ0NTMEFBU0lFSUFVZ0FpQUdha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQWFrRUJha0VCZGpvQUFTQUJJQUlnQ1MwQUFpSU1JQU1nQUNBQ2FrRVViR29nQkNBR2FpSURheUFEUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBYWtFQmFrRUJkam9BQWlBQklBQWdDUzBBQXlJT0lBWWdBQ0FFYWtFVWJHb2dBaUFNYWlJRGF5QURRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFha0VCYWtFQmRqb0FBeUFCUVFScUlRRWdDVUVFYWlFSklBSWhDaUFBSVFVZ0JDRURJQXdoQmlBT0lRSWdDMEYvYWlJTERRQUxDeUFCSUJCcUlRRWdDU0FSYWlFSklBZEJmMm9pQncwQUN3c2dEVUhBQTJva0FBdkdCQUVMZnlNQVFjQURheUlOSkFBQ1FBSkFJQUpCQUVnTkFDQURRUUJJRFFBZ0FpQUdhaUFFU3cwQUlBTWdCMnBCQldvZ0JVc05BQ0FESVFrTUFRc2dBQ0FOSUFJZ0F5QUVJQVVnQmlBSFFRVnFJQVlRRENBTklRQWdCaUVFUVFBaEFnc2dCMEVDZGlJUUJFQkJ3QUFnQm1zaEVpQUVRUUYwSVFVZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVRJQUFnQkNBSmJDQUNhbW9nQkdvaUFDQUVRUVZzYWlFQ0lBQWdCQ0FJUVFKcWJHb2hCd05BSUFZaEF5QUdCRUFEUUNBQklBQWdCV290QUFBaUNDQUNJQVZxTFFBQUlBSWdCR290QUFBaUNpQUNJQk5xTFFBQUlnbHFJZ3RySUF0QkFuUnJhaUFDTFFBQUlnd2dBaUFQYWkwQUFDSUxha0VVYkdwQkVHcEJCWFZCc0M1cUxRQUFJQVVnQjJvdEFBQnFRUUZxUVFGMk9nQXdJQUVnQUNBRWFpMEFBQ0lSSUFvZ0NTQUxha0VVYkdvZ0NDQU1haUlLYXlBS1FRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQUlBUWdCMm90QUFCcVFRRnFRUUYyT2dBZ0lBRWdBQzBBQUNJS0lBd2dDQ0FKYWtFVWJHb2dDeUFSYWlJTWF5QU1RUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFJQWN0QUFCcVFRRnFRUUYyT2dBUUlBRWdBQ0FQYWkwQUFDQUxJQWdnRVdwQkZHeHFJQWtnQ21vaUNHc2dDRUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBQ0FISUE5cUxRQUFha0VCYWtFQmRqb0FBQ0FIUVFGcUlRY2dBRUVCYWlFQUlBRkJBV29oQVNBQ1FRRnFJUUlnQTBGL2FpSUREUUFMQ3lBQklCSnFJUUVnQnlBT2FpRUhJQUlnRG1vaEFpQUFJQTVxSVFBZ0VFRi9haUlRRFFBTEN5QU5RY0FEYWlRQUM0OEhBUXgvSUFFb0FnZ2hDeUFCS0FJRUlRWUNRQUpBQWtBZ0FrRUZTdzBBSUFKQkFXc09CQUFBQUFBQkN5QUFLQUs0R2cwQURBRUxJQUJCeEFscUlRUURRQ0FFSUFNUUZDRUhJQU5CRGtzTkFTQURRUUZxSVFNZ0IwVU5BQXNMQWtBQ1FBSkFBa0FnQUNnQ21Ba2lDQVJBSUFBb0Fyd0pJUXBCQUNFRFFRQWhCQU5BSUFvZ0EwSFlBV3hxS0FMRUFVVUVRRUVBSUFSQkFXb2lCQ0FFSUFaR0lnVWJJUVFnQlNBSmFpRUpJQU5CQVdvaUF5QUlTUTBCQ3dzZ0F5QUlSdzBCQ3dKQUFrQWdBa0YrYWlJQ1FRVkxEUUFDUUNBQ1FRRnJEZ1FCQVFFQkFBc2dCMFVOQVNBQUtBSzRHa1VOQVF3REN5QUhEUUlMSUFFb0FnQkJnQUVnQmlBTGJFR0FBMndRQnhvTUFnc2dBQ2dDdkFrZ0JpQUpiRUhZQVd4cUlRZ2dCQVJBSUFRaEF3TkFJQWdnQTBGL2FpSURRZGdCYkdvaUNpQUJJQWtnQXlBQ0lBY1FGaUFLUVFFMkFzUUJJQUFnQUNnQ3RBbEJBV28yQXJRSklBTU5BQXNMSUFSQkFXb2lBeUFHU1FSQUEwQWdDQ0FEUWRnQmJHb2lCQ2dDeEFGRkJFQWdCQ0FCSUFrZ0F5QUNJQWNRRmlBRVFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpDeUFEUVFGcUlnTWdCa2NOQUFzTEFrQWdDVVVOQUNBR1JRMEFRUUFoQlNBSlFYOXFJZ3dnQm13aERTQU1SUVJBQTBBZ0FDZ0N2QWtnRFVIWUFXeHFJQVZCMkFGc2FpSUVJQUZCQUNBRklBSWdCeEFXSUFSQkFUWUN4QUVnQUNBQUtBSzBDVUVCYWpZQ3RBa2dCVUVCYWlJRklBWkhEUUFNQWdBTEFBc2dDVUYrYWlFSVFRQWdCbXRCMkFGc0lRNERRQ0FBS0FLOENTQU5RZGdCYkdvZ0JVSFlBV3hxSWdNZ0FTQU1JQVVnQWlBSEVCWWdBMEVCTmdMRUFTQUFJQUFvQXJRSlFRRnFOZ0swQ1NBSUlRUURRQ0FESUE1cUlnTWdBU0FFSWdvZ0JTQUNJQWNRRmlBRFFRRTJBc1FCSUFBZ0FDZ0N0QWxCQVdvMkFyUUpJQVJCZjJvaEJDQUtEUUFMSUFWQkFXb2lCU0FHUncwQUN3c2dDVUVCYWlJRklBdFBEUUlnQmtVTkFnTkFJQUFvQXJ3SklBVWdCbXhCMkFGc2FpRUlRUUFoQXdOQUlBZ2dBMEhZQVd4cUlnUW9Bc1FCUlFSQUlBUWdBU0FGSUFNZ0FpQUhFQllnQkVFQk5nTEVBU0FBSUFBb0FyUUpRUUZxTmdLMENRc2dBMEVCYWlJRElBWkhEUUFMSUFWQkFXb2lCU0FMUncwQUN3d0NDeUFCS0FJQUlBY2dCaUFMYkVHQUEyd1FGUm9MSUFBZ0FDZ0NtQWtpQVRZQ3RBa2dBVVVOQUNBQUtBSzhDU0VBUVFBaEF3TkFJQUFnQTBIWUFXeHFRUUUyQWdnZ0EwRUJhaUlESUFGSERRQUxDd3MyQVFKL0lBQW9BaWdpQWdSQUEwQWdBQ2dDQkNBQlFRSjBhaUFBS0FJQUlBRkJLR3hxTmdJQUlBRkJBV29pQVNBQ1J3MEFDd3NMOXdRQ0RIOEJma0VISVFVakFFRWdheUlJSVF3RFFDQUZJQUZKQkVBZ0FFRUFJQVZyUVNoc2FpRUtJQVVoQmdOQUlBQWdCa0VvYkdvaUFpZ0NDQ0VKSUFJcEFnQWhEaUFJSUFJcEFndzNBeGdnQWlnQ0dDRU5JQUlvQWhRaEN5QU1JQUlvQWlRMkFoQWdDQ0FDS1FJY053TUlBa0FnQmlJRElBVkpEUUFDUUNBTFJRUkFBMEFnQ2lBRFFTaHNJZ0pxSWdRb0FoUU5BaUFOUlEwQ0lBUW9BaGdOQWlBQUlBSnFJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3lBTFFYOXFRUUZOQkVBRFFBSi9Ba0FnQ2lBRFFTaHNJZ0pxSWdRb0FoUWlCMFVOQUNBSFFYOXFRUUZMRFFBZ0JDZ0NDQ0lISUFsS0RRUWdBQ0FDYWlJRUlBY2dDVWdOQVJvZ0JDRUNEQVVMSUFBZ0Ftb0xJZ1FnQUNBRElBVnJJZ05CS0d4cUlnSXBBZ0EzQWdBZ0JDQUNLUUlnTndJZ0lBUWdBaWtDR0RjQ0dDQUVJQUlwQWhBM0FoQWdCQ0FDS1FJSU53SUlJQU1nQlU4TkFBd0RBQXNBQ3dOQUlBb2dBMEVvYkNJQ2FpSUVLQUlVSWdjRVFDQUhRWDlxUVFKSkRRSWdCQ2dDQ0NBSlRBMENDeUFBSUFKcUlnUWdBQ0FESUFWcklnTkJLR3hxSWdJcEFnQTNBZ0FnQkNBQ0tRSWdOd0lnSUFRZ0Fpa0NHRGNDR0NBRUlBSXBBaEEzQWhBZ0JDQUNLUUlJTndJSUlBTWdCVThOQUFzTUFRc2dBQ0FEUVNoc2FpRUNDeUFDSUE0M0FnQWdBQ0FEUVNoc2FpSURJQWsyQWdnZ0NDa0RHQ0VPSUFNZ0RUWUNHQ0FESUFzMkFoUWdBeUFPTndJTUlBTWdDQ2tEQ0RjQ0hDQURJQXdvQWhBMkFpUWdCa0VCYWlJR0lBRkhEUUFMQ3lBRlFRRjJJZ1VOQUFzTHJRVUJBWDhDUUNBQUtBSUFJZ0VvQWhSRkRRQWdBVUVBTmdJVUlBRW9BaGdOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ1BFVU5BQ0FCUVFBMkFqd2dBVUZBYXlnQ0FBMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUprUlEwQUlBRkJBRFlDWkNBQktBSm9EUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQW93QlJRMEFJQUZCQURZQ2pBRWdBU2dDa0FFTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0N0QUZGRFFBZ0FVRUFOZ0swQVNBQktBSzRBUTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMY0FVVU5BQ0FCUVFBMkF0d0JJQUVvQXVBQkRRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9Bb1FDUlEwQUlBRkJBRFlDaEFJZ0FTZ0NpQUlOQUNBQUlBQW9BaXhCZjJvMkFpd0xBa0FnQVNnQ3JBSkZEUUFnQVVFQU5nS3NBaUFCS0FLd0FnMEFJQUFnQUNnQ0xFRi9hallDTEFzQ1FDQUJLQUxVQWtVTkFDQUJRUUEyQXRRQ0lBRW9BdGdDRFFBZ0FDQUFLQUlzUVg5cU5nSXNDd0pBSUFFb0F2d0NSUTBBSUFGQkFEWUMvQUlnQVNnQ2dBTU5BQ0FBSUFBb0FpeEJmMm8yQWl3TEFrQWdBU2dDcEFORkRRQWdBVUVBTmdLa0F5QUJLQUtvQXcwQUlBQWdBQ2dDTEVGL2FqWUNMQXNDUUNBQktBTE1BMFVOQUNBQlFRQTJBc3dESUFFb0F0QUREUUFnQUNBQUtBSXNRWDlxTmdJc0N3SkFJQUVvQXZRRFJRMEFJQUZCQURZQzlBTWdBU2dDK0FNTkFDQUFJQUFvQWl4QmYybzJBaXdMQWtBZ0FTZ0NuQVJGRFFBZ0FVRUFOZ0tjQkNBQktBS2dCQTBBSUFBZ0FDZ0NMRUYvYWpZQ0xBc0NRQ0FCS0FMRUJFVU5BQ0FCUVFBMkFzUUVJQUVvQXNnRURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3dKQUlBRW9BdXdFUlEwQUlBRkJBRFlDN0FRZ0FTZ0M4QVFOQUNBQUlBQW9BaXhCZjJvMkFpd0xBMEFnQUJCZVJRMEFDeUFBUVFBMkFqQWdBRUwvL3dNM0FpUUwzUTRCQ1g4Z0FpZ0NBQ0FBS0FJSUlnSW9BZ0JHQkVBZ0FFRUFOZ0kwSUFBb0FqZ2lDMFVoRFFKQUlBRkZCRUFnQWlBRE5nSU1JQUpCQURZQ0ZDQUNJQTAyQWhnZ0FpQUVOZ0lRSUFJZ0F6WUNDQ0FMRFFFZ0FDQUFLQUlzUVFGcU5nSXNEQUVMSUFVRVFDQUFRZ0EzQWhBZ0FCQW9Ba0FnQVNnQ0FFVUVRQ0FBS0FJNFJRMEJDeUFBUWdBM0FoQUxJQUFvQWdnaUFrRURRUUlnQVNnQ0JDSUJHellDRkNBQVFRQkIvLzhESUFFYk5nSWtJQUlnRFRZQ0dDQUNRUUEyQWhBZ0FrSUFOd0lJSUFCQ2dZQ0FnQkEzQWlnTUFRc0NRQUpBQWtBZ0FTZ0NDQVJBUVFBaEN3TkFJQUVnQzBFVWJHb2lDQ2dDRENJQ1FRWkxEUUlDUUFKQUFrQUNRQUpBQWtBQ1FDQUNRUUZyRGdZQUFRSURCQVVKQ3lBQUtBSVlJZ2xGRFFnZ0F5QUlLQUlRYXlFTUlBQW9BZ0FoQ2tFQUlRZ0RRQUpBSUFvZ0NFRW9iR29pQWlnQ0ZFRi9ha0VCVFFSQUlBSW9BZ2dnREVZTkFRc2dDRUVCYWlJSUlBbEhEUUVNQ2dzTElBaEJBRWdOQ0NBQ1FRQTJBaFFnQUNBQUtBSW9RWDlxTmdJb0lBSW9BaGdOQlNBQUlBQW9BaXhCZjJvMkFpd2dDMEVCYWlFTERBWUxJQUFvQWhnaUNVVU5CeUFJS0FJVUlRd2dBQ2dDQUNFS1FRQWhDQU5BQWtBZ0NpQUlRU2hzYWlJQ0tBSVVRUU5HQkVBZ0FpZ0NDQ0FNUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdKQ3dzZ0NFRUFTQTBISUFKQkFEWUNGQ0FBSUFBb0FpaEJmMm8yQWlnZ0FpZ0NHQTBFSUFBZ0FDZ0NMRUYvYWpZQ0xDQUxRUUZxSVFzTUJRc2dBQ2dDSkNJQ1FmLy9BMFlOQmlBQ0lBZ29BaGdpREVrTkJpQUFLQUlZSWdsRkRRWWdDQ2dDRUNFT0lBQW9BZ0FoQ2tFQUlRSURRQUpBQWtBZ0NpQUNRU2hzYWlJSUtBSVVRUU5IRFFBZ0NDZ0NDQ0FNUncwQUlBaEJBRFlDRkNBQUlBQW9BaWhCZjJvMkFpZ2dDQ2dDR0EwQklBQWdBQ2dDTEVGL2FqWUNMQXdCQ3lBQ1FRRnFJZ0lnQ1VjTkFRc0xJQWxCQVNBSlFRRkxHeUVKSUFNZ0Rtc2hEa0VBSVFnRFFBSkFJQW9nQ0VFb2JHb2lBaWdDRkNJUFFYOXFRUUZOQkVBZ0FpZ0NDQ0FPUmcwQkN5QUlRUUZxSWdnZ0NVY05BUXdJQ3dzZ0NFRUFTQTBHSUE5QkFra05CaUFDUVFNMkFoUWdBaUFNTmdJSUlBdEJBV29oQ3d3RUN5QUFJQWdvQWh3aUNUWUNKQ0FBS0FJWUlneEZEUUlnQUNnQ0FDRUtRUUFoQWlBSlFmLy9BMFlFUUFOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDRUVBTmdJVUlBQWdBQ2dDS0VGL2FqWUNLQ0FJS0FJWURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQ1FRRnFJZ0lnREVjTkFBd0VBQXNBQ3dOQUFrQWdDaUFDUVNoc2FpSUlLQUlVUVFOSERRQWdDQ2dDQ0NBSlRRMEFJQWhCQURZQ0ZDQUFJQUFvQWloQmYybzJBaWdnQ0NnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FrRUJhaUlDSUF4SERRQUxEQUlMSUFBUUtDQUFRUUUyQWpSQkFDRURJQXRCQVdvaEN3d0NDeUFBS0FJa0lnSkIvLzhEUmcwRElBSWdDQ2dDR0NJTVNRMERJQUFvQWhnaUNrVU5BeUFBS0FJQUlRaEJBQ0VDQWtBRFFBSkFJQWdnQWtFb2JHb2lDU2dDRkVFRFJ3MEFJQWtvQWdnZ0RFY05BQ0FKUVFBMkFoUWdBQ0FBS0FJb1FYOXFJZ2cyQWlnZ0NTZ0NHQTBDSUFBZ0FDZ0NMRUYvYWpZQ0xBd0NDeUFDUVFGcUlnSWdDa2NOQUFzZ0FDZ0NLQ0VJQ3lBSUlBcFBEUU1nQUNnQ0NDSUNRUU0yQWhRZ0FpQUVOZ0lRSUFJZ0REWUNDQ0FDSUFNMkFnd2dBaUFBS0FJNFJUWUNHRUVCSVJBZ0FDQUlRUUZxTmdJb0lBQWdBQ2dDTEVFQmFqWUNMQXNnQzBFQmFpRUxEQUFBQ3dBTFFRQWhBaUFBS0FJb0lna2dBQ2dDR0NJTFNRMEJJQWxGQkVCQkFDRUpEQUlMSUFBb0FnQWhERUYvSVFFRFFDQU1JQUpCS0d4cUlnb29BaFJCZjJwQkFVMEVRQ0FLS0FJSUlnb2dDQ0FCUVg5R0lBb2dDRWh5SWdvYklRZ2dBaUFCSUFvYklRRUxJQUpCQVdvaUFpQUpSdzBBQ3lBQlFRQklEUUVnRENBQlFTaHNhaUlCUVFBMkFoUWdBQ0FKUVg5cUlnazJBaWdnQVNnQ0dBMEJJQUFnQUNnQ0xFRi9hallDTEF3QkN5QVFEUUVnQUNnQ0dDRUxJQUFvQWlnaENRc2dDU0FMVHcwQklBQW9BZ2dpQVNBTk5nSVlJQUZCQWpZQ0ZDQUJJQVEyQWhBZ0FTQUROZ0lJSUFFZ0F6WUNEQ0FBSUFsQkFXbzJBaWdnQUNBQUtBSXNRUUZxTmdJc0N3c2dBQ2dDQ0NJQklBYzJBaUFnQVNBR05nSWNJQUVnQlRZQ0pBSkFJQUFvQWpoRkJFQWdBQ2dDTENJSklBQW9BaHdpQTAwTkFTQUFLQUlBSVFRRFFFSC8vLy8vQnlFRlFRQWhCa0VBSVFJRFFDQUVJQUpCS0d4cUlnRW9BaGdFUUNBQklBWWdBU2dDRUNJQklBVklJZ2NiSVFZZ0FTQUZJQWNiSVFVTElBSkJBV29pQWlBRFRRMEFDd0pBSUFaRkRRQWdBQ2dDRENBQUtBSVFJZ0pCQkhScUlnRWdCaWdDQURZQ0FDQUJJQVlvQWlRMkFnd2dBU0FHS0FJY05nSUVJQUVnQmlnQ0lEWUNDQ0FBSUFKQkFXbzJBaEFnQmtFQU5nSVlJQVlvQWhRTkFDQUFJQWxCZjJvaUNUWUNMQXNnQ1NBRFN3MEFDd3dCQ3lBQktBSUFJUUlnQUNnQ0RDQUFLQUlRSWdOQkJIUnFJZ0VnQlRZQ0RDQUJJQUkyQWdBZ0FTQUhOZ0lJSUFFZ0JqWUNCQ0FBSUFOQkFXbzJBaEFnQUNnQ0hDRURDeUFBS0FJQUlBTkJBV29RSndzTDFBc0NBbjhCZmlNQVFaQUJheUlFSkFBZ0JFRUFOZ0lNQWtBQ1FBSkFJQUFvQXBBYVJRMEFJQUFvQXBRYUlBRkhEUUFnQkNBQVFhUWFhaWtDQURjREdDQUFLUUtjR2lFR0lBUkJBRFlDR0NBRUlBWTNBeEFnQkVFQU5nSWdJQVFnQmo0Q0ZDQURJQUFvQXBnYU5nSUFEQUVMUVFNaEJTQUJJQUlnQkVFUWFpQURFR01OQVNBQUlBUXBBeEEzQXB3YUlBQkJyQnBxSUFRb0FpQTJBZ0FnQUVHa0dtb2dCQ2tER0RjQ0FDQURLQUlBSVFJZ0FDQUJOZ0tVR2lBQUlBSTJBcGdhQzBFQUlRVWdBRUVBTmdLUUdpQUVRUkJxSUFSQmlBRnFFRThFUUVFRElRVU1BUXNnQkNnQ2lBRkJmMnBCQzBzTkFDQUVRUkJxSUFSQmlBRnFJQUFnQkVFTWFoQXlJZ0VFUUVFRUlRVWdBVUh3L3dOR0RRRkJBeUVGREFFTEFrQWdCQ2dDREFSQUFrQWdBQ2dDb0FsRkRRQWdBQ2dDRUVVTkFFRURJUVVnQUNnQ3RCb05Bd0pBSUFBb0FxUUpSUVJBSUFCQnhBbHFJZ0lpQVNBQktBSUFJQUVvQWh4QktHeHFJZ0UyQWdnZ0FDQUJLQUlBTmdLNENpQUNFQ1lnQUNBQVFiZ0tha0VBRUNVTUFRc2dBQ0FBUWJnS2FpQUFRZHdLYWlnQ0FCQWxDeUFEUVFBMkFnQWdBRUVBTmdLY0NTQUFRUUUyQXBBYURBSUxJQUJCQURZQ25Ba2dBRUVBTmdLa0NRc2dCQ2dDaUFGQmYyb2lBVUVIU3cwQkFrQUNRQUpBSUFGQkFXc09Cd1FFQkFJRUFBRUNDeUFFUVJCcUlBUkJLR29RUXdSQUlBUW9BbEFRQkNBRVFRQTJBbEFnQkNnQ2ZCQUVJQVJCQURZQ2ZFRURJUVVNQkFzZ0FDQUVRU2hxRURjTUF3c2dCRUVRYWlBRVFTaHFFRXdFUUNBRUtBSThFQVFnQkVFQU5nSThJQVFvQWtBUUJDQUVRUUEyQWtBZ0JDZ0NSQkFFSUFSQkFEWUNSQ0FFS0FKVUVBUWdCRUVBTmdKVVFRTWhCUXdEQ3lBQUlBUkJLR29RTmd3Q0N5QUFLQUtjQ1EwQklBQkJBVFlDb0FrQ1FDQUFLQUtrQ1EwQUlBQkNBRGNDdEFrZ0JFRVFhaUFFUVNocUVDQWFJQUFvQWdnaEFTQUFJQVFvQWlnZ0JDZ0NpQUZCQlVZUU5TSUNCRUFnQUVLQWdvQ0FnQVEzQWdRZ0FFRUFOZ0swR2lBQVFnQTNBZ3hCQlVFRUlBSkIvLzhEUmhzaEJRd0RDeUFCSUFBb0FnaEdEUUFnQUNnQ0VDRUJJQVJCQVRZQ0NDQUFLQUlBSWdKQkgwMEVRQ0FBSUFKQkFuUnFLQUlVSVFVTElBTkJBRFlDQUNBQVFRRTJBcEFhQWtBQ1FBSkFJQVFvQW9nQlFRVkhEUUFnQkVFSWFpQUVRUkJxSUFFZ0FDZ0NEQkE0SUFRb0FnaHlEUUFnQlVVTkFDQUFRZndKYWlnQ0FBMEFJQVVvQWpRZ0FTZ0NORWNOQUNBRktBSTRJQUVvQWpoSERRQWdCU2dDV0NBQktBSllSZzBCQ3lBQVFZQUtha0VBTmdJQURBRUxJQUJCeEFscUVGa0xJQUFnQUNnQ0NEWUNBRUVDSVFVTUFnc2dBQ2dDdEJvRVFFRURJUVVNQWdzZ0JFRVFhaUFBUWJRU2FpSUNJQUFvQWhBZ0FDZ0NEQ0FFUVlnQmFoQStCRUJCQXlFRkRBSUxJQUFvQXFRSlJRUkFBa0FnQkNnQ2lBRkJCVVlOQUNBQVFjUUphaUFBUWNBU2FpZ0NBQ0FFS0FLTUFVRUFSeUFBS0FJUUtBSXdFRnBGRFFCQkF5RUZEQU1MSUFCQnhBbHFJZ0VnQVNnQ0FDQUJLQUljUVNoc2FpSUJOZ0lJSUFBZ0FTZ0NBRFlDdUFvTElBQkIyQXBxSUFKQjNBY1FGU0VCSUFCQkFUWUNwQWtnQUNBRUtRT0lBVGNDMEFvZ0FDZ0NsQWtnQUNnQ0RDQUFRWmdMYWlnQ0FDQUFLQUlRSWdJb0FqUWdBaWdDT0JBL0lBQkJ4QWxxSWdJUUppQUNJQUJCbkF0cUlBQkI1QXBxS0FJQUlBQkJoQXRxS0FJQUVGOEVRRUVESVFVTUFnc2dCRUVRYWlBQUlBQkJ1QXBxSUFFUVFRUkFJQUFnQUNnQzJBb1FRRUVESVFVTUFnc2dBQkF6UlEwQklBQkJBVFlDbkFrTElBQkJ1QXBxSWdFZ0FDZ0N2QWtRU1NBQUVEUWdBRUdFQ21vZ0FDZ0NFQ0FBUWRnS2FpQUFRZEFLYWhCTklRSUNRQ0FBS0FLa0NVVU5BQ0FBUWNRSmFpRURJQUJCMUFwcUtBSUFCRUFnQXlBQVFld01haUFCSUFCQjVBcHFLQUlBSUFJZ0FDZ0MwQXBCQlVZZ0FDZ0N1QWtnQUNnQ3RBa1FLUXdCQ3lBRFFRQWdBU0FBUWVRS2FpZ0NBQ0FDSUFBb0F0QUtRUVZHSUFBb0FyZ0pJQUFvQXJRSkVDa0xJQUJDQURjQ29BbEJBU0VGQ3lBRVFaQUJhaVFBSUFVTHFBd0JDMzhDUUNBQlFRUlBCRUJCQUNBRGF5SU5RUUYwSVFvQ1FDQUFJQU5ySWdVdEFBQWlCaUFBTFFBQUlnaHJJZ0VnQVVFZmRTSUJhaUFCY3lBQ0tBSUVJZ0ZQRFFBZ0FDQUthaTBBQUNJSElBWnJJZ1FnQkVFZmRTSUVhaUFFY3lBQ0tBSUlJZ3hQRFFBZ0FDQURhaTBBQUNJRUlBaHJJZ3NnQzBFZmRTSUxhaUFMY3lBTVR3MEFJQVVnQkNBR2FpQUhRUUYwYWtFQ2FrRUNkam9BQUNBQUlBZ2dCRUVCZEdvZ0IycEJBbXBCQW5ZNkFBQWdBaWdDQkNFQkN3SkFJQUJCQVdvaUJpQU5haUlNTFFBQUlnZ2dBQzBBQVNJSGF5SUVJQVJCSDNVaUJHb2dCSE1nQVU4TkFDQUdJQXBxTFFBQUlnUWdDR3NpQlNBRlFSOTFJZ1ZxSUFWeklBSW9BZ2dpQzA4TkFDQURJQVpxTFFBQUlnVWdCMnNpQ1NBSlFSOTFJZ2xxSUFseklBdFBEUUFnRENBRklBaHFJQVJCQVhScVFRSnFRUUoyT2dBQUlBWWdCeUFGUVFGMGFpQUVha0VDYWtFQ2Rqb0FBQ0FDS0FJRUlRRUxBa0FnQUVFQ2FpSUdJQTFxSWd3dEFBQWlDQ0FBTFFBQ0lnZHJJZ1FnQkVFZmRTSUVhaUFFY3lBQlR3MEFJQVlnQ21vdEFBQWlCQ0FJYXlJRklBVkJIM1VpQldvZ0JYTWdBaWdDQ0NJTFR3MEFJQU1nQm1vdEFBQWlCU0FIYXlJSklBbEJIM1VpQ1dvZ0NYTWdDMDhOQUNBTUlBVWdDR29nQkVFQmRHcEJBbXBCQW5ZNkFBQWdCaUFISUFWQkFYUnFJQVJxUVFKcVFRSjJPZ0FBSUFJb0FnUWhBUXNDUUNBQVFRTnFJZ1lnRFdvaURDMEFBQ0lJSUFBdEFBTWlCMnNpQkNBRVFSOTFJZ1JxSUFSeklBRlBEUUFnQmlBS2FpMEFBQ0lFSUFocklnVWdCVUVmZFNJRmFpQUZjeUFDS0FJSUlndFBEUUFnQXlBR2FpMEFBQ0lGSUFkcklna2dDVUVmZFNJSmFpQUpjeUFMVHcwQUlBd2dCU0FJYWlBRVFRRjBha0VDYWtFQ2Rqb0FBQ0FHSUFjZ0JVRUJkR29nQkdwQkFtcEJBblk2QUFBZ0FpZ0NCQ0VCQ3dKQUlBQkJCR29pQmlBTmFpSU1MUUFBSWdnZ0FDMEFCQ0lIYXlJRUlBUkJIM1VpQkdvZ0JITWdBVThOQUNBR0lBcHFMUUFBSWdRZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6SUFJb0FnZ2lDMDhOQUNBRElBWnFMUUFBSWdVZ0Iyc2lDU0FKUVI5MUlnbHFJQWx6SUF0UERRQWdEQ0FGSUFocUlBUkJBWFJxUVFKcVFRSjJPZ0FBSUFZZ0J5QUZRUUYwYWlBRWFrRUNha0VDZGpvQUFDQUNLQUlFSVFFTEFrQWdBRUVGYWlJR0lBMXFJZ3d0QUFBaUNDQUFMUUFGSWdkcklnUWdCRUVmZFNJRWFpQUVjeUFCVHcwQUlBWWdDbW90QUFBaUJDQUlheUlGSUFWQkgzVWlCV29nQlhNZ0FpZ0NDQ0lMVHcwQUlBTWdCbW90QUFBaUJTQUhheUlKSUFsQkgzVWlDV29nQ1hNZ0MwOE5BQ0FNSUFVZ0NHb2dCRUVCZEdwQkFtcEJBblk2QUFBZ0JpQUhJQVZCQVhScUlBUnFRUUpxUVFKMk9nQUFJQUlvQWdRaEFRc0NRQ0FBUVFacUlnWWdEV29pREMwQUFDSUlJQUF0QUFZaUIyc2lCQ0FFUVI5MUlnUnFJQVJ6SUFGUERRQWdCaUFLYWkwQUFDSUVJQWhySWdVZ0JVRWZkU0lGYWlBRmN5QUNLQUlJSWd0UERRQWdBeUFHYWkwQUFDSUZJQWRySWdrZ0NVRWZkU0lKYWlBSmN5QUxUdzBBSUF3Z0JTQUlhaUFFUVFGMGFrRUNha0VDZGpvQUFDQUdJQWNnQlVFQmRHb2dCR3BCQW1wQkFuWTZBQUFnQWlnQ0JDRUJDeUFOSUFCQkIyb2lEV29pQ0MwQUFDSUdJQUF0QUFjaUFHc2lCeUFIUVI5MUlnZHFJQWR6SUFGUERRRWdDaUFOYWkwQUFDSUJJQVpySWdvZ0NrRWZkU0lLYWlBS2N5QUNLQUlJSWdwUERRRWdBeUFOYWkwQUFDSUNJQUJySWdNZ0EwRWZkU0lEYWlBRGN5QUtUdzBCSUFnZ0FpQUdhaUFCUVFGMGFrRUNha0VDZGpvQUFDQU5JQUFnQWtFQmRHb2dBV3BCQW1wQkFuWTZBQUFQQzBFQUlBTnJJZ2RCQVhRaEJDQUJJQUlvQWdCcVFYOXFMUUFBSWdGQkFXb2hCaUFCUVg5eklRaEJDQ0VCQTBBQ1FDQUFJQWRxSWdVdEFBQWlDaUFBTFFBQUlnMXJJZ3dnREVFZmRTSU1haUFNY3lBQ0tBSUVUdzBBSUFBZ0JHb3RBQUFpRENBS2F5SUxJQXRCSDNVaUMyb2dDM01nQWlnQ0NDSUxUdzBBSUFBZ0Eyb3RBQUFpQ1NBTmF5SU9JQTVCSDNVaURtb2dEbk1nQzA4TkFDQUZJQW9nQ0NBR0lBMGdDbXRCQW5RZ0NXc2dER3BCQkdwQkEzVWlDaUFLSUFaS0d5QUtJQWhJR3lJS2FrR3dMbW90QUFBNkFBQWdBQ0FOSUFwclFiQXVhaTBBQURvQUFBc2dBRUVCYWlFQUlBRkJmMm9pQVEwQUN3c0w2Z2dCQW44Z0FVRUFRYmdIRUFjaEFrRUJJUUVDUUFKQUlBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBZ0FDUUNBRFFRRkhEUUFnQUVFSUVBTWlBMEYvUmcwQklBSWdBellDQkNBRFFmOEJSdzBBSUFCQkVCQURJZ05CZjBZTkFTQUNJQU0yQWdnZ0FFRVFFQU1pQTBGL1JnMEJJQUlnQXpZQ0RBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDRUNBRFFRRkdCRUFnQUVFQkVBTWlBMEYvUmcwQklBSWdBMEVCUmpZQ0ZBc2dBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDR0FKQUFrQWdBMEVCUmdSQUlBQkJBeEFESWdOQmYwWU5BeUFDSUFNMkFod2dBRUVCRUFNaUEwRi9SZzBESUFJZ0EwRUJSallDSUNBQVFRRVFBeUlEUVg5R0RRTWdBaUFEUVFGR05nSWtJQU5CQVVjTkFTQUFRUWdRQXlJRFFYOUdEUU1nQWlBRE5nSW9JQUJCQ0JBRElnTkJmMFlOQXlBQ0lBTTJBaXdnQUVFSUVBTWlBMEYvUncwQ0RBTUxJQUpCQlRZQ0hBc2dBa0tDZ0lDQUlEY0NLRUVDSVFNTElBSWdBellDTUNBQVFRRVFBeUlEUVg5R0RRQWdBaUFEUVFGR05nSTBBa0FnQTBFQlJ3MEFJQUFnQWtFNGFoQUNJZ0VOQVNBQ0tBSTRRUVZMRFFJZ0FDQUNRVHhxRUFJaUFRMEJJQUlvQWp4QkJVME5BQXdDQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBBSUFJZ0EwRUJSallDUUNBRFFRRkdCRUFnQUJBUElRRWdBRUVnRUFzaEF5QUJSUTBDSUFOQmYwWU5BaUFDSUFFMkFrUWdBQkFQSVFFZ0FFRWdFQXNoQXlBQlJRMENJQU5CZjBZTkFpQUNJQUUyQWtoQkFTRUJJQUJCQVJBRElnTkJmMFlOQVNBQ0lBTkJBVVkyQWt3TElBQkJBUkFESWdOQmYwWU5BQ0FDSUFOQkFVWTJBbEFDUUNBRFFRRkdCRUFnQUNBQ1FkUUFhaEFjSWdGRkRRRU1BZ3NnQWtFQk5nSlVJQUpDbUlDQWdJQUROd0xvQXlBQ1FwaUFnSUNBQXpjQzRBTWdBa0dCa0txSkFUWUM0QUVnQWtHQmtLcUpBVFlDWUF0QkFTRUJJQUJCQVJBRElnTkJmMFlOQUNBQ0lBTkJBVVkyQXZBREFrQWdBMEVCUmdSQUlBQWdBa0gwQTJvUUhDSUJSUTBCREFJTElBSkJBVFlDOUFNZ0FrS1lnSUNBZ0FNM0FvZ0hJQUpDbUlDQWdJQUROd0tBQnlBQ1FZRzR1UElBTmdLQUJTQUNRWUc0dVBJQU5nS0FCQXNDUUNBQ0tBSlFSUVJBSUFJb0F2QURSUTBCQzBFQklRRWdBRUVCRUFNaUEwRi9SZzBCSUFJZ0EwRUJSallDa0FjTFFRRWhBU0FBUVFFUUF5SURRWDlHRFFBZ0FpQURRUUZHTmdLVUJ5QUFRUUVRQXlJRFFYOUdEUUFnQWlBRFFRRkdOZ0tZQndKQUlBTkJBVVlFUUNBQVFRRVFBeUlEUVg5R0RRSWdBaUFEUVFGR05nS2NCeUFBSUFKQm9BZHFFQUlpQVEwQ0lBSW9BcUFIUVJCTERRTWdBQ0FDUWFRSGFoQUNJZ0VOQWlBQ0tBS2tCMEVRU3cwRElBQWdBa0dvQjJvUUFpSUJEUUlnQWlnQ3FBZEJFRXNOQXlBQUlBSkJyQWRxRUFJaUFRMENRUUVoQVNBQ0tBS3NCMEVRU3cwQ0lBQWdBa0d3QjJvUUFpSUJEUUlnQUNBQ1FiUUhhaEFDSWdGRkRRRU1BZ3NnQWtFUU5nSzBCeUFDUXBDQWdJQ0FBamNDckFjZ0FrS0JnSUNBZ0FJM0FxUUhJQUpDZ1lDQWdDQTNBcHdIQzBFQUlRRUxJQUVQQzBFQkMwMEJBbjhqQUVFUWF5SURKQUJCQVNFRUFrQWdBQ0FEUVF4cUVBSU5BQ0FES0FJTUlnQkJMMHNOQUNBQlFkQS9RWURBQUNBQ0d5QUFhaTBBQURZQ0FFRUFJUVFMSUFOQkVHb2tBQ0FFQ3o0QkFuOENRQ0FBS0FJTVFRTjBJQUFvQWhCcklnRkZCRUFNQVF0QkFTRUNJQUZCQ0VzTkFFRUJJQUZCZjJwMElBQVFEMEVnSUFGcmRrY1BDeUFDQ3pJQkFuOENRRUdBZ0lEQUFDSUJJQUJ4RFFBRFFDQUNRUUZxSVFJZ0FVRUJkaUlCUlEwQklBQWdBWEZGRFFBTEN5QUNDNG9DQVFkL0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRUNRUUVoQXlBQlFRWlBCRUJCQUNFRElBSWdBVUdRUEdvdEFBQkJmMnAwSVFJTElBQWdBQ2dDQUNJQklBQW9BZ2dpQkdzaUJTQUFLQUlFSWdZZ0FDZ0NEQ0lIYXlJSWF5QUNiQ0FEZFRZQ0RDQUFJQVVnQ0dvZ0Ftd2dBM1UyQWdnZ0FDQUJJQVJxSWdFZ0JpQUhhaUlFYXlBQ2JDQURkVFlDQkNBQUlBRWdCR29nQW13Z0EzVTJBZ0FnQUNBQUtBSWNJZ0VnQUNnQ0ZDSUVhaUlGSUFBb0FoZ2lCaUFBS0FJUUlnZHFJZ2hxSUFKc0lBTjFOZ0lRSUFBZ0JDQUJheUlCSUFjZ0Jtc2lCR29nQW13Z0EzVTJBaGdnQUNBSUlBVnJJQUpzSUFOMU5nSVVJQUFnQkNBQmF5QUNiQ0FEZFRZQ0hBdlBDQUVVZnlBQUlBQW9BaXdpQWlBQUtBSU1JZ1pxSWdVZ0FDZ0NOQ0lFSUFBb0FpQWlFR29pQ21zaUVUWUNMQ0FBS0FJb0lRTWdBQ0FHSUFKcklnY2dFQ0FFYXlJRWF5SUdOZ0lvSUFBb0FpUWhBaUFBSUFRZ0Iyb2lCRFlDSkNBQUlBVWdDbW9pQlRZQ0lDQUFJQUFvQWh3aUNpQUFLQUlJSWdkcUlnZ2dBQ2dDTUNJTUlBQW9BaEFpQ1dvaUMyc2lFRFlDSENBQUtBSVlJUThnQUNBSElBcHJJZ2NnQ1NBTWF5SU1heUlLTmdJWUlBQW9BaFFoQ1NBQUlBY2dER29pQnpZQ0ZDQUFJQWdnQzJvaUNEWUNFQ0FBSUFrZ0FDZ0NBQ0lMYWlJU0lBOGdBQ2dDQkNJTmFpSU9heUlNTmdJTUlBQWdDeUFKYXlJSklBMGdEMnNpQzJzaUR6WUNDQ0FBSUFrZ0Myb2lDVFlDQkNBQUlBNGdFbW9pQ3pZQ0FDQUFJQUlnQUNnQ09DSU5haUlUSUFNZ0FDZ0NQQ0lPYWlJVWF5SVNOZ0k4SUFBZ0FpQU5heUlDSUFNZ0Rtc2lBMnNpRFRZQ09DQUFJQUlnQTJvaURqWUNOQ0FBSUJNZ0ZHb2lFellDTUNBQlFaQThhaTBBQUNFQ0lBRkJvRDFxTFFBQVFReHNRZEE4YWlnQ0FDRURJQUZCREU4RVFDQUFJQU1nQWtGK2FuUWlBU0FGSUF0cUlnTWdDQ0FUYWlJQ2EydzJBakFnQUNBTElBVnJJZ1VnQ0NBVGF5SUlheUFCYkRZQ0lDQUFJQVVnQ0dvZ0FXdzJBaEFnQUNBQ0lBTnFJQUZzTmdJQUlBQWdCQ0FKYWlJRElBY2dEbW9pQW1zZ0FXdzJBalFnQUNBSklBUnJJZ1FnQnlBT2F5SUZheUFCYkRZQ0pDQUFJQVFnQldvZ0FXdzJBaFFnQUNBQ0lBTnFJQUZzTmdJRUlBQWdCaUFQYWlJRElBb2dEV29pQW1zZ0FXdzJBamdnQUNBUElBWnJJZ1lnQ2lBTmF5SUVheUFCYkRZQ0tDQUFJQVFnQm1vZ0FXdzJBaGdnQUNBQ0lBTnFJQUZzTmdJSUlBQWdEQ0FSYXlJRElCQWdFbXNpQW1zZ0FXdzJBaXdnQUNBQ0lBTnFJQUZzTmdJY0lBQWdFQ0FTYWlJRElBd2dFV29pQW1vZ0FXdzJBZ3dnQUNBQ0lBTnJJQUZzTmdJOER3c2dBRUVCUVFJZ0FVRjZha0VHU1JzaUFTQUZJQXRxSWhRZ0NDQVRhaUlWYXlBRGJHcEJBaUFDYXlJQ2RUWUNNQ0FBSUFzZ0JXc2lCU0FJSUJOcklnaHJJQU5zSUFGcUlBSjFOZ0lnSUFBZ0JTQUlhaUFEYkNBQmFpQUNkVFlDRUNBQUlCUWdGV29nQTJ3Z0FXb2dBblUyQWdBZ0FDQUVJQWxxSWdVZ0J5QU9haUlJYXlBRGJDQUJhaUFDZFRZQ05DQUFJQWtnQkdzaUJDQUhJQTVySWdkcklBTnNJQUZxSUFKMU5nSWtJQUFnQkNBSGFpQURiQ0FCYWlBQ2RUWUNGQ0FBSUFVZ0NHb2dBMndnQVdvZ0FuVTJBZ1FnQUNBR0lBOXFJZ1FnQ2lBTmFpSUZheUFEYkNBQmFpQUNkVFlDT0NBQUlBOGdCbXNpQmlBS0lBMXJJZ3BySUFOc0lBRnFJQUoxTmdJb0lBQWdCaUFLYWlBRGJDQUJhaUFDZFRZQ0dDQUFJQVFnQldvZ0Eyd2dBV29nQW5VMkFnZ2dBQ0FNSUJGcklnWWdFQ0FTYXlJRWF5QURiQ0FCYWlBQ2RUWUNMQ0FBSUFRZ0Jtb2dBMndnQVdvZ0FuVTJBaHdnQUNBUUlCSnFJZ1lnRENBUmFpSVJhaUFEYkNBQmFpQUNkVFlDRENBQUlCRWdCbXNnQTJ3Z0FXb2dBblUyQWp3THZRVUJCbjhqQUVFZ2F5SUZKQUFnQTBFQU5nSUFBa0FnQVNnQ0FDSUdRUkpMRFFCQkFTQUdkQ0lHUWNEZkgzRkZCRUFnQmtFaWNVVU5BU0FDUWJRS2FpZ0NBQVJBSUFOQkFUWUNBQ0FDUVFBMkFyUUtDeUFBSUFWQkhHb1FJQ0lFRFFGQjhQOERJUVFnQWlBRktBSWNRUUowYWlnQ2xBRWlDRVVOQVNBQ0lBZ29BZ1FpQmtFQ2RHb29BaFFpQjBVTkFRSkFJQUlvQWdnaUNVRWdSZzBBSUFZZ0NVWU5BQ0FCS0FJQVFRVkhEUUlMQWtBZ0FrR1lDbW9vQWdBaUJDQUJLQUlFSWdaR0RRQWdCRUVBSUFZYkRRQWdBMEVCTmdJQUN5QUJLQUlBSVFRQ1FBSkFJQUlvQXBRS1FRVkdCRUFnQkVFRlJ3MEJEQUlMSUFSQkJVY05BUXNnQTBFQk5nSUFDMEVCSVFRZ0FDQUhLQUlNSUFWQkdHb1FQUTBCSUFVb0FoZ2lCaUFDUVp3S2FpZ0NBRWNFUUNBQ0lBWTJBcHdLSUFOQkFUWUNBQXNnQVNnQ0FFRUZSZ1JBSUFBZ0J5Z0NEQ0FGUVJScUVEd05BZ0pBSUFJb0FwUUtRUVZIQkVBZ0JTZ0NGQ0VFREFFTElBSkJvQXBxS0FJQUlnUWdCU2dDRkNJR1JnMEFJQU5CQVRZQ0FDQUdJUVFMSUFKQm9BcHFJQVEyQWdBTEFrQWdCeWdDRUNJRVFRRkxEUUFnQkVFQmF3UkFRUUVoQkNBQUlBY2dBU2dDQUNBRlFRaHFFRHNOQXlBRktBSUlJZ1FnQWtHa0Ntb29BZ0JIQkVBZ0FpQUVOZ0trQ2lBRFFRRTJBZ0FMSUFnb0FnaEZEUUVnQUNBSElBRW9BZ0FnQlVFUWFoQTZJZ1FOQXlBRktBSVFJZ0FnQWtHb0Ntb29BZ0JHRFFFZ0FpQUFOZ0tvQ2lBRFFRRTJBZ0FNQVFzZ0J5Z0NHQTBBSUFBZ0J5QUJLQUlBSUFnb0FnZ2dCVUVJYWhBNUlnUU5BaUFGS0FJSUlnQWdBa0dzQ21vb0FnQkhCRUFnQWlBQU5nS3NDaUFEUVFFMkFnQUxJQWdvQWdoRkRRQWdCU2dDRENJQUlBSkJzQXBxS0FJQVJnMEFJQUlnQURZQ3NBb2dBMEVCTmdJQUN5QUNJQUVwQWdBM0FwUUtRUUFoQkF3QkN5QURRUUUyQWdBTElBVkJJR29rQUNBRUMzOEJBMzhDUUFKQUFrQWdBRUg4Q21vb0FnQUVRQ0FBS0FLWUNTSUREUUZCQVE4TFFRRWhBU0FBUWF3SmFpZ0NBQ0FBS0FLWUNVY05BUXdDQ3lBQUtBSzhDU0VCUVFBaEFBTkFJQUlnQVNBQVFkZ0JiR29vQXNRQlFRQkhhaUVDSUFCQkFXb2lBQ0FEUncwQUMwRUJJUUVnQWlBRFJnMEJDMEVBSVFFTElBRUxTZ0VEZnlBQVFnQTNBcWdKSUFBb0FwZ0pJZ0VFUUNBQUtBSzhDU0VDUVFBaEFBTkFJQUlnQUVIWUFXeHFJZ05CQURZQ3hBRWdBMEVBTmdJRUlBQkJBV29pQUNBQlJ3MEFDd3NMZ3dZQkRIOUJBU0VHQWtBZ0FDQUJRUUowYWlnQ2xBRWlCRVVOQUNBQUlBUW9BZ1FpQ1VFQ2RHb2lDa0VVYWlnQ0FDSURSUTBBQWtBZ0JDZ0NEQ0lGUVFKSkRRQWdBeWdDTkNJSElBTW9BamhzSVFnQ1FDQUVLQUlRSWdOQkFrc05BQUpBQWtBQ1FDQURRUUZyRGdJREFBRUxJQVZCZjJvaEN5QUVLQUljSVF3Z0JDZ0NHQ0VOUVFBaEF3d0JDeUFFS0FJVUlRZEJBQ0VEQTBBZ0J5QURRUUowYWlnQ0FDQUlUUVJBSUFVZ0EwRUJhaUlEUncwQkRBUUxDMEVCRHdzRFFDQU5JQU5CQW5RaUJXb29BZ0FpRGlBRklBeHFLQUlBSWdWTERRTWdCU0FJVHcwRElBNGdCM0FnQlNBSGNFMEVRQ0FEUVFGcUlnTWdDMFlOQXd3QkN3dEJBUThMSUFOQmZXcEJBazBFUUNBRUtBSWtJQWhORFFFTUFnc2dBMEVHUncwQUlBUW9BaWdnQ0VrTkFRc0NRQ0FBS0FJRUlnTkJnQUpHQkVBZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQW9BclFhQkVBZ0FFRUFOZ0swR2lBQUtBSzhDUkFFSUFCQkFEWUN2QWtnQUNnQ2xBa1FCQ0FBSUFBb0FwZ0pJZ0ZCMkFGc0lnUVFDaUlDTmdLOENTQUFJQUZCQW5RUUNpSUROZ0tVQ1VILy93TWhCaUFDUlEwQ0lBTkZEUUlnQWtFQUlBUVFCeUFBS0FJUUtBSTBJQUVRVGlBQUtBSVFJUUZCQVNFQ0FrQWdBQ2dDd0FrTkFDQUJLQUlRUVFKR0RRQUNRQ0FCS0FKUVJRMEFJQUVvQWxRaUJDZ0NtQWRGRFFBZ0JDZ0NzQWRGRFFFTFFRQWhBZ3NnQUVIRUNXb2dBU2dDT0NBQktBSTBiQ0FCS0FKWUlBRW9BaXdnQVNnQ0RDQUNFRndpQmtVTkFRd0NDeUFCSUFOR0RRQWdBQ2dDQ0NBSlJ3UkFJQUpGRFFJZ0FDQUVOZ0lNSUFBZ0FUWUNCQ0FBSUFrMkFnZ2dBQ0FLS0FJVUlnRTJBaEFnQVNnQ05DRUNJQUVvQWpnaEFTQUFRUUUyQXJRYUlBQkJ3QXBxSUFFMkFnQWdBRUc4Q21vZ0FqWUNBQ0FBSUFFZ0FtdzJBcGdKREFFTElBQWdCRFlDRENBQUlBRTJBZ1FMUVFBaEJnc2dCZ3UyQVFFRGZ3SkFJQUFnQVNnQ0FDSURRUUowYWlJQ0tBS1VBU0lFUlFSQUlBSkJ5QUFRQ2lJQU5nS1VBU0FBRFFFUEN3SkFJQU1nQUNnQ0JFY05BQ0FCS0FJRUlBQW9BZ2hHRFFBZ0FFR0JBallDQkFzZ0JDZ0NGQkFFSUFJb0FwUUJRUUEyQWhRZ0FpZ0NsQUVvQWhnUUJDQUNLQUtVQVVFQU5nSVlJQUlvQXBRQktBSWNFQVFnQWlnQ2xBRkJBRFlDSENBQ0tBS1VBU2dDTEJBRUlBSW9BcFFCUVFBMkFpd0xJQUlvQXBRQklBRkJ5QUFRRlJvTDFnRUJBMzhDUUNBQUlBRW9BZ2dpQTBFQ2RHb2lBaWdDRkNJRVJRUkFJQUpCM0FBUUNpSUFOZ0lVSUFBTkFROExJQUFvQWdnZ0EwWUVRQ0FCSUFBb0FoQVFRZ1JBSUFJb0FoUW9BaWdRQkNBQ0tBSVVRUUEyQWlnZ0FpZ0NGQ2dDVkJBRUlBSW9BaFJCQURZQ1ZDQUFRUUEyQWhBZ0FFR0JBallDQkNBQVFpRTNBZ2dNQWdzZ0FTZ0NLQkFFSUFGQkFEWUNLQ0FCS0FKVUVBUWdBVUVBTmdKVUR3c2dCQ2dDS0JBRUlBSW9BaFJCQURZQ0tDQUNLQUlVS0FKVUVBUWdBaWdDRkVFQU5nSlVDeUFDS0FJVUlBRkIzQUFRRlJvTDBnSUJBMzhqQUVFZ2F5SUVKQUFnQkNBQktBSVFOZ0lRSUFRZ0FTa0NDRGNEQ0NBRUlBRXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUJEUUFnQkNBRVFSeHFFQUlpQVEwQUlBUWdCRUVjYWhBQ0lnRU5BQ0FDS0FJTUlRWkJBQ0VCQTBBZ0FTSUZRUUZxSVFFZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQVF3QkN5QUVJQVJCSEdvUUFpSUJEUUFDUUNBQ0tBSVFJZ0VFZnlBQkJTQUNLQUlVSVFaQkFDRUJBMEFnQVNJRlFRRnFJUUVnQmlBRmRnMEFDeUFFSUFWQmYyb1FBMEYvUmdSQVFRRWhBUXdEQ3lBREtBSUlCRUFnQkNBRVFSaHFFQVVpQVEwREN5QUNLQUlRQzBFQlJ3MEFJQUlvQWhnTkFDQUVJQVJCR0dvUUJTSUJEUUVnQXlnQ0NFVU5BQ0FFSUFSQkdHb1FCU0lCRFFFTElBTW9Ba1FFUUNBRUlBUkJIR29RQWlJQkRRRUxJQUFnQkVFQkVBTWlBRFlDQUNBQVFYOUdJUUVMSUFSQklHb2tBQ0FCQzhZQkFRSi9Jd0JCSUdzaUJTUUFJQVVnQUNnQ0VEWUNFQ0FGSUFBcEFnZzNBd2dnQlNBQUtRSUFOd01BQWtBZ0JTQUZRUnhxRUFJaUFBMEFJQVVnQlVFY2FoQUNJZ0FOQUNBRklBVkJIR29RQWlJQURRQWdBU2dDRENFR1FRQWhBQU5BSUFBaUFVRUJhaUVBSUFZZ0FYWU5BQXNnQlNBQlFYOXFFQU5CZjBZRVFFRUJJUUFNQVFzZ0FrRUZSZ1JBSUFVZ0JVRWNhaEFDSWdBTkFRc2dCU0FFRUFVaUFBMEFJQU1FUUNBRklBUkJCR29RQlNJQURRRUxRUUFoQUFzZ0JVRWdhaVFBSUFBTDRRRUJBMzhqQUVFZ2F5SUVKQUFnQkNBQUtBSVFOZ0lRSUFRZ0FDa0NDRGNEQ0NBRUlBQXBBZ0EzQXdBQ1FDQUVJQVJCSEdvUUFpSUFEUUFnQkNBRVFSeHFFQUlpQUEwQUlBUWdCRUVjYWhBQ0lnQU5BQ0FCS0FJTUlRWkJBQ0VBQTBBZ0FDSUZRUUZxSVFBZ0JpQUZkZzBBQ3lBRUlBVkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUNRUVZHQkVBZ0JDQUVRUnhxRUFJaUFBMEJDeUFCS0FJVUlRSkJBQ0VBQTBBZ0FDSUJRUUZxSVFBZ0FpQUJkZzBBQ3lBRUlBRkJmMm9RQTBGL1JnUkFRUUVoQUF3QkN5QUVJQU1RQlNFQUN5QUVRU0JxSkFBZ0FBdm1BUUVEZnlNQVFTQnJJZ1FrQUNBRUlBQW9BaEEyQWhBZ0JDQUFLUUlJTndNSUlBUWdBQ2tDQURjREFBSkFJQVFnQkVFY2FoQUNJZ0FOQUNBRUlBUkJIR29RQWlJQURRQWdCQ0FFUVJ4cUVBSWlBQTBBSUFFb0Fnd2hCa0VBSVFBRFFDQUFJZ1ZCQVdvaEFDQUdJQVYyRFFBTElBUWdCVUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQUpCQlVZRVFDQUVJQVJCSEdvUUFpSUFEUUVMSUFFb0FoUWhBa0VBSVFBRFFDQUFJZ0ZCQVdvaEFDQUNJQUYyRFFBTElBUWdBVUYvYWhBRElnQkJmMFlFUUVFQklRQU1BUXNnQXlBQU5nSUFRUUFoQUFzZ0JFRWdhaVFBSUFBTGtnRUJBbjhqQUVFZ2F5SURKQUFnQXlBQUtBSVFOZ0lRSUFNZ0FDa0NBRGNEQUNBRElBQXBBZ2czQXdnQ1FDQURJQU5CSEdvUUFpSUFEUUFnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BRUVBSVFBRFFDQUFJZ1JCQVdvaEFDQUJJQVIyRFFBTElBTWdCRUYvYWhBRFFYOUdCRUJCQVNFQURBRUxJQU1nQWhBQ0lRQUxJQU5CSUdva0FDQUFDNWNCQVFKL0l3QkJJR3NpQXlRQUlBTWdBQ2dDRURZQ0VDQURJQUFwQWdnM0F3Z2dBeUFBS1FJQU53TUFBa0FnQXlBRFFSeHFFQUlpQUEwQUlBTWdBMEVjYWhBQ0lnQU5BQ0FESUFOQkhHb1FBaUlBRFFCQkFDRUFBMEFnQUNJRVFRRnFJUUFnQVNBRWRnMEFDeUFESUFSQmYyb1FBeUlBUVg5R0JFQkJBU0VBREFFTElBSWdBRFlDQUVFQUlRQUxJQU5CSUdva0FDQUFDNjhPQVFwL0l3QkJFR3NpQlNRQUlBRkJBRUhjQnhBSElRY2dBaWdDTkNFR0lBSW9BamdoQ0FKQUlBQWdCVUVFYWhBQ0lnRU5BQ0FISUFVb0FnUWlBVFlDQUNBQklBWWdDR3dpQzA4RVFFRUJJUUVNQVFzZ0FDQUZRUVJxRUFJaUFRMEFJQWNnQlNnQ0JDSUdOZ0lFSUFaQkIwc0VRRUVCSVFFTUFRdEJBU0VCQWtBQ1FDQUdRUUZyRGdjQ0FRSUNBQUlCQUFzZ0JDZ0NBRUVGUmdSQURBSUxJQUlvQWl3TkFBd0JDeUFBSUFWQkJHb1FBaUlCRFFBZ0J5QUZLQUlFSWdZMkFnaEJBU0VCSUFZZ0F5Z0NBRWNOQUNBQ0tBSU1JUWhCQUNFQkEwQWdBU0lHUVFGcUlRRWdDQ0FHZGcwQUMwRUJJUUVnQUNBR1FYOXFFQU1pQmtGL1JnMEFJQVpCQUNBRUtBSUFJZ2hCQlVZYkRRQWdCeUFHTmdJTUlBaEJCVVlFUUNBQUlBVkJCR29RQWlJQkRRRWdCeUFGS0FJRUlnWTJBaEJCQVNFQklBWkIvLzhEU3cwQkN3SkFJQUlvQWhBaUFRUi9JQUVGSUFJb0FoUWhDRUVBSVFFRFFDQUJJZ1pCQVdvaEFTQUlJQVoyRFFBTElBQWdCa0YvYWhBRElnRkJmMFlFUUVFQklRRU1Bd3NnQnlBQk5nSVVJQU1vQWdnRVFDQUFJQVVRQlNJQkRRTWdCeUFGS0FJQU5nSVlDeUFFS0FJQVFRVkdCRUJCQVNFQklBY29BaFFpQmlBQ0tBSVVRUUYyU3cwRElBWkJBQ0FIS0FJWUlnaEJIM1VnQ0hGclJ3MERDeUFDS0FJUUMwRUJSdzBBSUFJb0FoZ05BQ0FBSUFVUUJTSUJEUUVnQnlBRktBSUFOZ0ljSUFNb0FnZ0VRQ0FBSUFVUUJTSUJEUUlnQnlBRktBSUFOZ0lnQ3lBRUtBSUFRUVZIRFFCQkFTRUJJQWNvQWh3aUJpQUhLQUlnSUFZZ0FpZ0NJR3BxSWdnZ0JpQUlTQnNOQVFzZ0F5Z0NSQVJBSUFBZ0JVRUVhaEFDSWdFTkFTQUhJQVVvQWdRaUJqWUNKRUVCSVFFZ0JrSC9BRXNOQVFzQ1FDQUhLQUlFSWdGQkJVc05BQUpBSUFGQkFXc09CQUVCQVFFQUMwRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDS0FKQUlBWUVRQ0FBSUFWQkJHb1FBaUlCRFFOQkFTRUJJQVVvQWdRaUJrRVBTdzBESUFaQkFXb2hCZ3dCQ3lBREtBSXdJZ1pCRUVzTkFnc2dCeUFHTmdJc0lBY29BZ1FoQVFzQ1FDQUJRUVZMRFFBQ1FDQUJRUUZyRGdRQkFRRUJBQXNnQWlnQ0RDRUpJQWNvQWl3aENrRUJJUUVnQUVFQkVBTWlCa0YvUmcwQklBY2dCallDUkNBR1JRMEFRUUFoQVFOQUlBRWlCaUFLU3dSQVFRRWhBUXdEQ3lBQUlBVkJDR29RQWlJQkRRSWdCU2dDQ0NJQlFRTkxCRUJCQVNFQkRBTUxJQWNnQmtFTWJHb2lDQ0FCTmdKSUFrQWdBVUVCVFFSQUlBQWdCVUVNYWhBQ0lnRU5CQ0FGS0FJTUlnRWdDVThFUUVFQklRRU1CUXNnQ0NBQlFRRnFOZ0pNREFFTElBRkJBa2NOQUNBQUlBVkJER29RQWlJQkRRTWdDQ0FGS0FJTU5nSlFDeUFHUVFGcUlRRWdCU2dDQ0VFRFJ3MEFDMEVCSVFFZ0JrVU5BUXNDUUNBRUtBSUVSUTBBSUFRb0FnQWhCQ0FDS0FJc0lRbEJBU0VCSUFCQkFSQURJUUlnQkVFRlJnUkFJQUpCZjBZTkFpQUhJQUkyQXBRQ0lBQkJBUkFESWdKQmYwWU5BaUFISUFJMkFwZ0NJQWtOQVNBQ1JRMEJEQUlMSUFKQmYwWU5BU0FISUFJMkFwd0NJQUpGRFFBZ0NVRUJkRUVEYWlFT1FRQWhCa0VBSVFwQkFDRUVBMEFnQmlBT1JnUkFRUUVoQVF3REN5QUFJQVZCQ0dvUUFpSUJEUUlnQlNnQ0NDSUNRUVpMQkVCQkFTRUJEQU1MSUFjZ0JrRVViR29pQ0NBQ05nS2dBZ0ovSUFKQkFuSkJBMFlFUUNBQUlBVkJER29RQWlJQkRRUWdDQ0FGS0FJTVFRRnFOZ0trQWlBRktBSUlJUUlMSUFKQkFrWUxCRUFnQUNBRlFReHFFQUlpQVEwRElBZ2dCU2dDRERZQ3FBSWdCU2dDQ0NFQ0N3SkFJQUpCZldvaUFVRURTdzBBQWtBZ0FVRUJhdzRDQVFFQUN5QUFJQVZCREdvUUFpSUJEUU1nQ0NBRktBSU1OZ0tzQWlBRktBSUlJUUlMSUFKQkJFWUVRQ0FBSUFWQkRHb1FBaUlCRFFNZ0JTZ0NEQ0lCSUFsTEJFQkJBU0VCREFRTElBZ2dBVUYvYWtILy93TWdBUnMyQXJBQ0lBcEJBV29oQ2lBRktBSUlJUUlMSUFaQkFXb2hCaUFNSUFKQkJrWnFJUXdnQkNBQ1FRVkdhaUVFSUEwZ0FrRi9ha0VEU1dvaERTQUNEUUFMUVFFaEFTQUVJQXB5SUF4eVFRRkxEUUVnQkVVTkFDQU5EUUVMSUFBZ0JSQUZJZ0VOQUNBSElBVW9BZ0FpQVRZQ01DQUZJQUVnQXlnQ05Hb2lBallDQUVFQklRRWdBa0V6U3cwQUFrQWdBeWdDUEVVTkFDQUFJQVZCQkdvUUFpSUJEUUVnQnlBRktBSUVJZ0kyQWpSQkFTRUJJQUpCQWtzTkFTQUNRUUZHRFFBZ0FDQUZFQVVpQVEwQlFRRWhBU0FGS0FJQUlnSkJCbXBCREVzTkFTQUhJQUpCQVhRMkFqZ2dBQ0FGRUFVaUFRMEJRUUVoQVNBRktBSUFJZ0pCQm1wQkRFc05BU0FISUFKQkFYUTJBandMQWtBZ0F5Z0NERUVDU1EwQUlBTW9BaEJCZldwQkFrc05BRUVDUVFFZ0N5QUxJQU1vQWlRaUFXNGlBaUFCYkdzYklBSnFJUVJCQUNFQ0EwQWdCQ0FDSWdGQkFXb2lBbllOQUFzZ0JTQUFJQUlnQVNBRVFYOGdBWFJCZjNOeEd4QURJZ0EyQWdSQkFTRUJJQUJCZjBZTkFTQUhJQUEyQWtBZ0FDQUxJQU1vQWlRaUFHcEJmMm9nQUc1TERRRUxRUUFoQVFzZ0JVRVFhaVFBSUFFTHdRa0JEWDhnQXlBRWJDRUZJQUVvQWd3aUNVRUJSZ1JBSUFCQkFDQUZRUUowRUFjYUR3c0NRQUpBQWtBQ1FDQUJLQUlRSWdaQmZXcEJBazBFUUNBQktBSWtJQUpzSWdJZ0JTQUNJQVZKR3lFTElBWkJmbkZCQkVjTkFTQUZJQXRySUFzZ0FTZ0NJQnNoQndzQ1FBSkFBa0FnQmtFRlRRUkFJQVpCQVdzT0JRWUZCQU1DQVFzZ0JVVU5CaUFCS0FJc0lRSkJBQ0VCQTBBZ0FDQUJRUUowSWdOcUlBSWdBMm9vQWdBMkFnQWdBVUVCYWlJQklBVkhEUUFMREFZTEFrQWdDUVJBSUFFb0FoUWhBa0VBSVFZTUFRc2dCVVVOQmdOQURBQUFDd0FMQTBCQkFDRUVJQVlnQlU4TkJnTkFRUUFoQndKQUlBSWdCRUVDZEdvaUF5Z0NBQ0lCUlEwQUlBRWhCeUFGSUFaTkRRQkJBQ0VCUVFBZ0JTQUdheUlISUFjZ0JVc2JJUWdEUUNBQUlBRWdCbXBCQW5ScUlBUTJBZ0FnQVVFQmFpSUJJQU1vQWdBaUIwOE5BU0FCSUFoSERRQUxDeUFFUVFGcUlnUWdDVWxCQUNBR0lBZHFJZ1lnQlVrYkRRQUxJQVlnQlVrTkFBc01CUXNnQTBVTkJDQUVSUTBFUVFFZ0FTZ0NJQ0lKYXlFSVFRQWhCVUVBSVFJRFFFRUFJUUVnQlNFR0EwQWdBQ0FCSUFOc0lBSnFRUUowYWlBSklBZ2dCaUFIU1JzMkFnQWdCa0VCYWlFR0lBRkJBV29pQVNBRVJ3MEFDeUFFSUFWcUlRVWdBa0VCYWlJQ0lBTkhEUUFMREFRTElBVkZEUU5CQVNBQktBSWdJZ0pySVFOQkFDRUJBMEFnQUNBQlFRSjBhaUFDSUFNZ0FTQUhTUnMyQWdBZ0FVRUJhaUlCSUFWSERRQUxEQU1MSUFFb0FpQWhBaUFGQkVCQkFDRUJBMEFnQUNBQlFRSjBha0VCTmdJQUlBRkJBV29pQVNBRlJ3MEFDd3NnQzBVTkFpQURRWDlxSVE4Z0JFRi9haUVRSUFKQmYyb2hCa0VCSUFKQkFYUWlBV3NoQlNBQlFYOXFJUWtnQkNBQ2EwRUJkaUlLSVF3Z0F5QUNhMEVCZGlJTklRUWdDaUVJSUEwaEFVRUFJUWNEUUNBQUlBTWdDR3dnQVdwQkFuUnFJZzRvQWdBaUVVRUJSZ1JBSUE1QkFEWUNBQXNnRVVFQlJpRU9Ba0FDUUNBR1FYOUhEUUFnQVNBRVJ3MEFRUUFoQmlBSklRSWdCRUVCSUFSQkFVb2JRWDlxSWdFaEJBd0JDd0pBSUFaQkFVY05BQ0FCSUExSERRQkJBQ0VHSUFVaEFpQU5RUUZxSWdFZ0R5QUJJQTlJR3lJQklRME1BUXNDUUNBQ1FYOUhEUUFnQ0NBTVJ3MEFRUUFoQWlBRklRWWdERUVCSUF4QkFVb2JRWDlxSWdnaERBd0JDd0pBSUFKQkFVY05BQ0FJSUFwSERRQkJBQ0VDSUFraEJpQUtRUUZxSWdnZ0VDQUlJQkJJR3lJSUlRb01BUXNnQWlBSWFpRUlJQUVnQm1vaEFRc2dCeUFPYWlJSElBdEpEUUFMREFJTElBRW9BaHdoQnlBQktBSVlJUWdnQlFSQUlBbEJmMm9oQWtFQUlRRURRQ0FBSUFGQkFuUnFJQUkyQWdBZ0FVRUJhaUlCSUFWSERRQUxJQUpGRFFJTElBbEJmbW9oQVFOQUFrQWdDQ0FCSWdSQkFuUWlBV29vQWdBaUJpQURiaUlDSUFFZ0Iyb29BZ0FpQVNBRGJpSUZTdzBBSUFZZ0FpQURiR3NpQmlBQklBTWdCV3hySWdsTEJFQURRQ0FDUVFGcUlnSWdCVTBOQUF3Q0FBc0FDd05BSUFJZ0Eyd2hDaUFHSVFFRFFDQUFJQUVnQ21wQkFuUnFJQVEyQWdBZ0FVRUJhaUlCSUFsTkRRQUxJQUpCQVdvaUFpQUZUUTBBQ3dzZ0JFRi9haUVCSUFRTkFBc01BUXNnQlVVTkFFRUFJUUVEUUNBQUlBRkJBblJxSUFFZ0EyNGlBaUFKYkVFQmRpQUJJQUlnQTJ4cmFpQUpjRFlDQUNBQlFRRnFJZ0VnQlVjTkFBc0xDOFFCQVFWL0lBQW9BcWdKSVFRQ1FDQUFRYkFKYWlnQ0FDSUNSUTBBSUFKQmYyb2lBaUFCVFFSQUlBSWhBUXdCQ3lBQUtBSzhDU0VGQTBBQ1FDQUZJQUpCMkFGc2FpZ0NCQ0FFUncwQUlBTkJBV29pQXlBQUtBSVFLQUkwSWdaQkNpQUdRUXBMRzBrTkFDQUNJUUVNQWdzZ0FrRi9haUlDSUFGTERRQUxDd05BQWtBZ0FDZ0N2QWtnQVVIWUFXeHFJZ0lvQWdRZ0JFY05BQ0FDS0FMRUFTSURSUTBBSUFJZ0EwRi9hallDeEFFZ0FDZ0NsQWtnQUNnQ21Ba2dBUkFlSWdFTkFRc0xDNzBFQWd0L0FYNGpBRUhBQTJzaUJTUUFJQU1vQWdBaEJ5QUJLQUt3R2lFSUlBVkJBRFlDRENBQlFiQUpha0VBTmdJQUlBRWdBU2dDcUFsQkFXbzJBcWdKSUFVZ0F5Z0NNQ0FCS0FJTUtBSTBhallDQ0NBQlFjUUphaUVOSUFoQkRHb2hEZ0pBQTBBZ0FTZ0N2QWtoQkFKQUlBTW9BaVFOQUNBRUlBZEIyQUZzYWlnQ3hBRkZEUUJCQVNFRURBSUxJQU1wQWpRaER5QURLQUk4SVFzZ0FTZ0NxQWtoRENBRUlBZEIyQUZzSWdacUlnUWdBU2dDRENnQ09EWUNHQ0FFSUFzMkFoQWdCQ0FQTndJSUlBUWdERFlDQkFKQUlBTW9BZ1FpQkVFQ1JnMEFJQWtOQUNBRVFRZEdEUUFnQUNBRlFReHFFQUlpQkEwQ0lBVW9BZ3dpQkNBQktBS1lDU0FIYTBzRVFFRUJJUVFNQXdzZ0JFVUVRRUVBSVFrTUFRc2dEa0VBUWFRQkVBY2FJQWhCQURZQ0FFRUJJUWtMQWtBZ0JTZ0NEQ0lFQkVBZ0JTQUVRWDlxTmdJTURBRUxRUUFoQ1NBQUlBZ2dBU2dDdkFrZ0Jtb2dBeWdDQkNBREtBSXNFRkVpQkEwQ0N5QUJLQUs4Q1NBR2FpQUlJQUlnRFNBRlFRaHFJQWNnQVNnQ0RDZ0NRQ0FGUVJCcUVGQWlCQTBCSUFFb0Fyd0pJQVpxS0FMRUFTRUxJQUFRTGlFRUlBVW9BZ3doQmdKQUlBTW9BZ1JCZm1vaURFRUZTdzBBQWtBZ0RFRUJhdzRFQVFFQkFRQUxJQUVnQnpZQ3NBa0xJQVFnQm5JaEJrRUJJUVFnQVNnQ2xBa2dBU2dDbUFrZ0J4QWVJZ2RGUVFBZ0Joc05BU0FLSUF0QkFVWnFJUW9nQmcwQUN5QUJRYXdKYWlnQ0FDQUthaUlBSUFFb0FwZ0pTdzBBSUFFZ0FEWUNyQWxCQUNFRUN5QUZRY0FEYWlRQUlBUUw1Z0lCQjM5QkFTRUNBa0FnQUNnQ0FDQUJLQUlBUncwQUlBQW9BZ1FnQVNnQ0JFY05BQ0FBS0FJTUlBRW9BZ3hIRFFBZ0FDZ0NFQ0lESUFFb0FoQkhEUUFnQUNnQ0xDQUJLQUlzUncwQUlBQW9BakFnQVNnQ01FY05BQ0FBS0FJMElBRW9BalJIRFFBZ0FDZ0NPQ0FCS0FJNFJ3MEFJQUFvQWp3aUJTQUJLQUk4UncwQUlBQW9BbEFnQVNnQ1VFY05BQUpBSUFOQkFVc05BQ0FEUVFGclJRUkFJQUFvQWhnZ0FTZ0NHRWNOQWlBQUtBSWNJQUVvQWh4SERRSWdBQ2dDSUNBQktBSWdSdzBDSUFBb0FpUWlCQ0FCS0FJa1J3MENJQVJGRFFFZ0FTZ0NLQ0VHSUFBb0FpZ2hCMEVBSVFNRFFDQUhJQU5CQW5RaUNHb29BZ0FnQmlBSWFpZ0NBRWNOQXlBRUlBTkJBV29pQTBjTkFBc01BUXNnQUNnQ0ZDQUJLQUlVUncwQkN5QUZCRUFnQUNnQ1FDQUJLQUpBUncwQklBQW9Ba1FnQVNnQ1JFY05BU0FBS0FKSUlBRW9Ba2hIRFFFZ0FDZ0NUQ0FCS0FKTVJ3MEJDMEVBSVFJTElBSUwvd2tCQm44akFFRVFheUlFSkFBZ0FVRUFRZHdBRUFjaEF3SkFJQUJCQ0JBRElnRkJmMFlFUUVFQklRRU1BUXNnQXlBQk5nSUFJQUJCQVJBREdpQUFRUUVRQXhvZ0FFRUJFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUZFQU5CZjBZRVFFRUJJUUVNQVFzZ0FFRUlFQU1pQVVGL1JnUkFRUUVoQVF3QkN5QURJQUUyQWdRZ0FDQURRUWhxRUFJaUFRMEFJQU1vQWdoQkgwc0VRRUVCSVFFTUFRc2dBQ0FFUVF4cUVBSWlBUTBBUVFFaEFTQUVLQUlNSWdKQkRFc05BQ0FEUVFFZ0FrRUVhblEyQWd3Z0FDQUVRUXhxRUFJaUFRMEFRUUVoQVNBRUtBSU1JZ0pCQWtzTkFDQURJQUkyQWhBQ1FDQUNRUUZMRFFBZ0FrRUJhd1JBSUFBZ0JFRU1haEFDSWdFTkFrRUJJUUVnQkNnQ0RDSUNRUXhMRFFJZ0EwRUJJQUpCQkdwME5nSVVEQUVMSUFCQkFSQURJZ0pCZjBZTkFTQURJQUpCQVVZMkFoZ2dBQ0FEUVJ4cUVBVWlBUTBCSUFBZ0EwRWdhaEFGSWdFTkFTQUFJQU5CSkdvUUFpSUJEUUZCQVNFQklBTW9BaVFpQWtIL0FVc05BU0FDQkVBZ0F5QUNRUUowRUFvaUFUWUNLQ0FCUlFSQVFmLy9BeUVCREFNTElBQWdBUkFGSWdFTkFrRUJJUUlEUUNBQ0lBTW9BaVJQRFFJZ0FrRUNkQ0VCSUFKQkFXb2hBaUFBSUFFZ0F5Z0NLR29RQlNJQlJRMEFDd3dDQ3lBRFFRQTJBaWdMSUFBZ0EwRXNhaEFDSWdFTkFFRUJJUUVnQXlnQ0xFRVFTdzBBSUFCQkFSQURJZ0pCZjBZTkFDQURJQUpCQVVZMkFqQWdBQ0FFUVF4cUVBSWlBUTBBSUFNZ0JDZ0NERUVCYWpZQ05DQUFJQVJCREdvUUFpSUJEUUJCQVNFQklBTWdCQ2dDREVFQmFqWUNPQ0FBUVFFUUEwRUJha0VDU1EwQUlBQkJBUkFEUVg5R0RRQWdBRUVCRUFNaUFrRi9SZzBBSUFNZ0FrRUJSaUlCTmdJOEFrQWdBVVVFUUNBREtBSTRJUVVnQXlnQ05DRUdEQUVMSUFBZ0EwRkFheEFDSWdFTkFTQUFJQU5CeEFCcUVBSWlBUTBCSUFBZ0EwSElBR29RQWlJQkRRRWdBQ0FEUWN3QWFoQUNJZ0VOQVVFQklRRWdBeWdDUUNBREtBSkVRWDl6SUFNb0FqUWlCa0VEZEdwS0RRRWdBeWdDU0NBREtBSk1RWDl6SUFNb0FqZ2lCVUVEZEdwS0RRRUxBa0FDUUFKQUFrQWdBeWdDQkVGMmFpSUhRU2xMRFFCQjR3QWhBVUdBcEFraEFnSkFBa0FDUUFKQUFrQUNRQUpBQWtBQ1FBSkFBa0FnQjBFQmF3NHBBQUVCQ3dzTEN3c0xBUUlEQ3dzTEN3c0xDd01FQlFzTEN3c0xDd3NHQmdjTEN3c0xDd3NMQ0FrS0MwR01BeUVCUVlDTUZTRUNEQWtMUVl3RElRRkJnTmczSVFJTUNBdEJtQVloQVVHQXNPOEFJUUlNQnd0QjFBd2hBVUdBN0wwQklRSU1CZ3RCa0J3aEFVR0E4S1VESVFJTUJRdEJnQ2doQVVHQWdPQURJUUlNQkF0QmdNQUFJUUZCZ0lDQUJpRUNEQU1MUVlERUFDRUJRWUNBc0FZaEFnd0NDMEhBckFFaEFVR0F3SnNVSVFJTUFRdEJnS0FDSVFGQmdJRGdJU0VDQ3lBQklBVWdCbXdpQVU4TkFRc2dCRUgvLy8vL0J6WUNEQ0FES0FJc0lRSU1BUXNnQkNBQ0lBRkJnQU5zYmlJQlFSQWdBVUVRU1JzaUFUWUNEQ0FES0FJc0lnSWdBVTBOQVFzZ0JDQUNOZ0lNSUFJaEFRc2dBeUFCTmdKWVFRRWhBU0FBUVFFUUF5SUNRWDlHRFFBZ0F5QUNRUUZHTmdKUUFrQWdBa0VCUncwQUlBTkJ1QWNRQ2lJQk5nSlVJQUZGQkVCQi8vOERJUUVNQWdzZ0FDQUJFQ3dpQVEwQklBTW9BbFFpQWlnQ21BZEZEUUJCQVNFQklBSW9BckFISUFJb0FyUUhJZ0pMRFFFZ0FpQURLQUlzU1EwQklBSWdBeWdDV0VzTkFTQURJQUpCQVNBQ0d6WUNXQXNnQUJBZlFRQWhBUXNnQkVFUWFpUUFJQUVMalFRQkRuOGdBUUovQWtBZ0FDOEJJQ0lIRFFBZ0FDOEJIQTBBUVFBTUFRdEJBZ3MyQWlBZ0FRSi9Ba0FnQUM4QklpSUNEUUFnQUM4QkhnMEFRUUFNQVF0QkFnczJBaWdnQVFKL0FrQWdBQzhCS0NJRERRQWdBQzhCSkEwQVFRQU1BUXRCQWdzMkFqQWdBUUovQWtBZ0FDOEJLaUlJRFFBZ0FDOEJKZzBBUVFBTUFRdEJBZ3MyQWpnZ0FTQUhJQUF2QVN3aUNYSkJBRWRCQVhRMkFrQWdBU0FDSUFBdkFTNGlCSEpCQUVkQkFYUTJBa2dnQVNBRElBQXZBVFFpQlhKQkFFZEJBWFEyQWxBZ0FTQUlJQUF2QVRZaUNuSkJBRWRCQVhRMkFsZ2dBU0FBTHdFd0lnMGdDWEpCQUVkQkFYUTJBbUFnQVNBQUx3RXlJZ3NnQkhKQkFFZEJBWFEyQW1nZ0FTQUFMd0U0SWd3Z0JYSkJBRWRCQVhRMkFuQWdBU0FBTHdFNklnNGdDbkpCQUVkQkFYUTJBbmhCQWlFR0lBRWdBQzhCSGlJUEJIOUJBZ1VnQUM4QkhFRUFSMEVCZEFzMkFnd2dBU0FQSUFBdkFTUWlCbkpCQUVkQkFYUTJBaFFnQUM4QkppRUFJQUVnRENBT2NrRUFSMEVCZERZQ2ZDQUJJQXNnREhKQkFFZEJBWFEyQW5RZ0FTQUxJQTF5UVFCSFFRRjBOZ0pzSUFFZ0JTQUtja0VBUjBFQmREWUNYQ0FCSUFRZ0JYSkJBRWRCQVhRMkFsUWdBU0FFSUFseVFRQkhRUUYwTmdKTUlBRWdBeUFJY2tFQVIwRUJkRFlDUENBQklBSWdBM0pCQUVkQkFYUTJBalFnQVNBQ0lBZHlRUUJIUVFGME5nSXNJQUVnQUNBR2NrRUFSMEVCZERZQ0hBdk1CZ0VMZnlNQVFZQU9heUlPSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0NHb2dCRXNOQUNBSFFRVnFJZ29nQTJvZ0JVc05BQ0FFSVFnZ0F5RUpEQUVMSUFBZ0RrSEFDbW9nQWlBRElBUWdCU0FJSUFkQkJXb2lDaUFJRUF3Z0RrSEFDbW9oQUVFQUlRSUxBa0FnQ2tVTkFDQUdRUUoySWhCRkRRQWdDQ0FHYXlFUklBQWdDQ0FKYkNBQ2FtcEJCV29oQWlBT0lRQURRQ0FDUVg5cUxRQUFJUWdnQWtGK2FpMEFBQ0VESUFKQmZXb3RBQUFoQlNBQ1FYeHFMUUFBSVFRZ0FrRjdhaTBBQUNFTUlCQWhEUU5BSUFBZ0FpMEFBQ0lKSUF3Z0JDQUlhaUlMYXlBRElBVnFRUlJzYWlBTFFRSjBhMm8yQWdBZ0FDQUNMUUFCSWdzZ0F5QUlha0VVYkNBRWFpQUZJQWxxSWdScklBUkJBblJyYWpZQ0JDQUFJQUl0QUFJaUR5QUlJQWxxUVJSc0lBVnFJQU1nQzJvaUJHc2dCRUVDZEd0cU5nSUlJQUFnQWkwQUF5SVNJQWtnQzJwQkZHd2dBMm9nQ0NBUGFpSURheUFEUVFKMGEybzJBZ3dnQUVFUWFpRUFJQUpCQkdvaEFpQUlJUXdnQ1NFRUlBc2hCU0FQSVFNZ0VpRUlJQTFCZjJvaURRMEFDeUFDSUJGcUlRSWdDa0YvYWlJS0RRQUxDd0pBSUFkQkFuWWlCMFVOQUNBR1JRMEFRY0FBSUFacklROGdEaUFHUVFKMGFpSUlJQVpCRkd4cUlRSkJBQ0FHYXlJUVFRTjBJUklnQmtFRGRDRUpJQVpCQTJ4QkFuUWhDd05BSUFZaEJBTkFJQUVnQ0NBSmFpZ0NBQ0lBSUFJZ0NXb29BZ0FnQWlBR1FRSjBJZzFxS0FJQUlnb2dBaUFTYWlnQ0FDSURhaUlGYXlBRlFRSjBhMm9nQWlnQ0FDSU1JQUlnRUVFQ2RDSVJhaWdDQUNJRmFrRVViR3BCZ0FScVFRcDFRYkF1YWkwQUFEb0FNQ0FCSUFnZ0RXb29BZ0FpRFNBS0lBTWdCV3BCRkd4cUlBQWdER29pQ21zZ0NrRUNkR3RxUVlBRWFrRUtkVUd3TG1vdEFBQTZBQ0FnQVNBSUtBSUFJZ29nRENBQUlBTnFRUlJzYWlBRklBMXFJZ3hySUF4QkFuUnJha0dBQkdwQkNuVkJzQzVxTFFBQU9nQVFJQUVnQ0NBUmFpZ0NBQ0FGSUFBZ0RXcEJGR3hxSUFNZ0Ntb2lBR3NnQUVFQ2RHdHFRWUFFYWtFS2RVR3dMbW90QUFBNkFBQWdDRUVFYWlFSUlBRkJBV29oQVNBQ1FRUnFJUUlnQkVGL2FpSUVEUUFMSUFFZ0Qyb2hBU0FDSUF0cUlRSWdDQ0FMYWlFSUlBZEJmMm9pQncwQUN3c2dEa0dBRG1va0FBdmxBd0VKZnlNQVFjQURheUlLSkFBZ0JrRUZhaUVJQWtBQ1FDQUNRUUJJRFFBZ0F5QUhhaUFGU3cwQUlBTkJBRWdOQUNBQ0lBaHFJQVJMRFFBZ0JDRUlJQU1oQ1F3QkN5QUFJQW9nQWlBRElBUWdCU0FJSUFjZ0NCQU1JQW9oQUVFQUlRSUxBa0FnQjBVTkFDQUdRUUoySWcxRkRRQkJFQ0FHYXlFT0lBZ2dCbXNoRHlBQUlBZ2dDV3dnQW1wcVFRVnFJUUlEUUNBQ1FYOXFMUUFBSVFnZ0FrRithaTBBQUNFR0lBSkJmV290QUFBaEFDQUNRWHhxTFFBQUlRVWdBa0Y3YWkwQUFDRUpJQTBoQ3dOQUlBRWdBaTBBQUNJRElBa2dCU0FJYWlJRWF5QUFJQVpxUVJSc2FpQUVRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FBSUFFZ0FpMEFBU0lFSUFVZ0JpQUlha0VVYkdvZ0FDQURhaUlGYXlBRlFRSjBhMnBCRUdwQkJYVkJzQzVxTFFBQU9nQUJJQUVnQWkwQUFpSU1JQUFnQXlBSWFrRVViR29nQkNBR2FpSUFheUFBUVFKMGEycEJFR3BCQlhWQnNDNXFMUUFBT2dBQ0lBRWdBaTBBQXlJUUlBWWdBeUFFYWtFVWJHb2dDQ0FNYWlJQWF5QUFRUUowYTJwQkVHcEJCWFZCc0M1cUxRQUFPZ0FESUFGQkJHb2hBU0FDUVFScUlRSWdDQ0VKSUFNaEJTQUVJUUFnRENFR0lCQWhDQ0FMUVg5cUlnc05BQXNnQVNBT2FpRUJJQUlnRDJvaEFpQUhRWDlxSWdjTkFBc0xJQXBCd0FOcUpBQUw5UU1CQzM4akFFSEFBMnNpQ3lRQUFrQUNRQ0FDUVFCSURRQWdBMEVBU0EwQUlBSWdCbW9nQkVzTkFDQURJQWRxUVFWcUlBVkxEUUFnQXlFSURBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFZZ0IwRUZhaUFHRUF3Z0N5RUFJQVloQkVFQUlRSUxBa0FnQjBFQ2RpSU1SUTBBSUFaRkRRQkJ3QUFnQm1zaEVTQUVRUUYwSVEwZ0JFRUNkQ0FHYXlFT1FRQWdCR3NpRDBFQmRDRVNJQUFnQkNBSWJDQUNhbW9nQkdvaUJ5QUVRUVZzYWlFQ0EwQWdCaUVBQTBBZ0FTQUhJQTFxTFFBQUlnTWdBaUFOYWkwQUFDQUNJQVJxTFFBQUlna2dBaUFTYWkwQUFDSUZhaUlJYXlBSVFRSjBhMm9nQWkwQUFDSUtJQUlnRDJvdEFBQWlDR3BCRkd4cVFSQnFRUVYxUWJBdWFpMEFBRG9BTUNBQklBUWdCMm90QUFBaUVDQUpJQVVnQ0dwQkZHeHFJQU1nQ21vaUNXc2dDVUVDZEd0cVFSQnFRUVYxUWJBdWFpMEFBRG9BSUNBQklBY3RBQUFpQ1NBS0lBTWdCV3BCRkd4cUlBZ2dFR29pQ21zZ0NrRUNkR3RxUVJCcVFRVjFRYkF1YWkwQUFEb0FFQ0FCSUFjZ0Qyb3RBQUFnQ0NBRElCQnFRUlJzYWlBRklBbHFJZ05ySUFOQkFuUnJha0VRYWtFRmRVR3dMbW90QUFBNkFBQWdCMEVCYWlFSElBRkJBV29oQVNBQ1FRRnFJUUlnQUVGL2FpSUFEUUFMSUFFZ0VXb2hBU0FDSUE1cUlRSWdCeUFPYWlFSElBeEJmMm9pREEwQUN3c2dDMEhBQTJva0FBdXFCZ0VOZnlNQVFiQUJheUlSSkFBZ0NFRUJhaUVLQWtBQ1FDQUNRUUJJRFFBZ0EwRUFTQTBBSUFJZ0Ntb2dCRXNOQUNBRElBbHFRUUZxSUFWTERRQWdCU0VNSUFRaENpQURJUThNQVFzZ0FDQVJJQUlnQXlBRUlBVWdDaUFKUVFGcUlnd2dDaEFNSUFBZ0JDQUZiR29nRVNBS0lBeHNhaUFDSUFNZ0JDQUZJQW9nRENBS0VBd2dFU0VBUVFBaEFnc0NRQ0FKUVFGMklnVkZEUUFnQ0VFQmRpSUVSUTBBUVJBZ0NHc2hFMEVJSUFkcklRdEJDQ0FHYXlFTklBcEJBWFFpRGlBSWF5RVVJQUFnQW1vaUZpQUtJQTlzYWlFQ0lBRWhBQ0FGSVJVRFFDQUNJQTVxTFFBQUlBZHNJQXNnQWlBS2FpMEFBQ0lEYkdvaENDQURJQWRzSUFzZ0FpMEFBR3hxSVFrZ0JDRURBMEFnQWtFQmFpSVFJQTVxTFFBQUlSSWdBQ0FKSUExc0lBb2dFR290QUFBaUNTQUhiQ0FMSUFJdEFBRnNhaUlRSUFac2FrRWdha0VHZGpvQUFDQUFJQWdnRFd3Z0J5QVNiQ0FKSUF0c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ0NBQ0xRQUNJUWtnQWtFQ2FpSUNJQTVxTFFBQUlSSWdBQ0FOSUJCc0lBSWdDbW90QUFBaUVDQUhiQ0FKSUF0c2FpSUpJQVpzYWtFZ2FrRUdkam9BQVNBQUlBZ2dEV3dnQnlBU2JDQUxJQkJzYWlJSUlBWnNha0VnYWtFR2Rqb0FDU0FBUVFKcUlRQWdBMEYvYWlJRERRQUxJQUlnRkdvaEFpQUFJQk5xSVFBZ0ZVRi9haUlWRFFBTElBRkJRR3NoQUNBV0lBd2dEMm9nQ214cUlRSURRQ0FDSUE1cUxRQUFJQWRzSUFzZ0FpQUthaTBBQUNJQmJHb2hDQ0FCSUFkc0lBc2dBaTBBQUd4cUlRa2dCQ0VEQTBBZ0FrRUJhaUlCSUE1cUxRQUFJUXdnQUNBSklBMXNJQUVnQ21vdEFBQWlBU0FIYkNBTElBSXRBQUZzYWlJSklBWnNha0VnYWtFR2Rqb0FBQ0FBSUFnZ0RXd2dCeUFNYkNBQklBdHNhaUlCSUFac2FrRWdha0VHZGpvQUNDQUNMUUFDSVFnZ0FrRUNhaUlDSUE1cUxRQUFJUXdnQUNBSklBMXNJQUlnQ21vdEFBQWlEeUFIYkNBSUlBdHNhaUlKSUFac2FrRWdha0VHZGpvQUFTQUFJQUVnRFd3Z0J5QU1iQ0FMSUE5c2FpSUlJQVpzYWtFZ2FrRUdkam9BQ1NBQVFRSnFJUUFnQTBGL2FpSUREUUFMSUFJZ0ZHb2hBaUFBSUJOcUlRQWdCVUYvYWlJRkRRQUxDeUFSUWJBQmFpUUFDLzlFQVVGL0l3QkJzQUZySWdNa0FDQUFLQUlJSWdRRVFDQUFLQUlFSWg5QkEzUWhGaUFFSUI5c0lnUkJCblFoT3lBRVFRaDBJVHdnSDBFR2RDRTlJQjlCTUd3aFBpQWZRUVYwSVNVZ0gwRlFiQ0VyUVFBZ0gwRUVkQ0lhYXlJb1FRSjBJVDhnS0VFQmRDRXNJQU5CR0dvaElpQURRUXh5SVNNRFFBSkFJQUVvQWdnaUNVRUJSZzBBQWtBQ1FBSkFBa0FnQVNnQ3lBRWlBa1VFUUVFQklRWU1BUXRCQlNFR0lBbEJBa2NOQUVFRlFRRWdBU2dDQkNJSklBSW9BZ1JHR3lFR0lBRW9Bc3dCSWdRTkFVRUFJUVFNQXdzZ0FTZ0N6QUVpQkVVRVFFRUFJUVFNQXdzZ0NVRUNSdzBCSUFFb0FnUWhDUXNnQ1NBRUtBSUVSdzBCQ3lBR1FRSnlJUVlMQW44Z0JrRUNjU0l0QkVBQ1FDQUJLQUlBUVFWTkJFQWdCQ2dDQUVFR1NRMEJDeUFEUVFRMkFrQWdBMEVFTmdKSUlBTkJCRFlDT0NBRFFRUTJBakJCQVF3Q0MwRUNJUTlCQWlFSkFrQWdBUzhCSEEwQUlBUXZBVEFOQUVFQklRa2dBU2dDZENBRUtBSjhSdzBBSUFFdUFZUUJJQVF1QWF3QmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBRUxnR3VBV3NpQ1NBSlFSOTFJZ2xxSUFselFRTkxJUWtMSUFNZ0NUWUNNQUpBSUFFdkFSNE5BQ0FFTHdFeURRQkJBU0VQSUFFb0FuUWdCQ2dDZkVjTkFDQUJMZ0dJQVNBRUxnR3dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmlnRWdCQzRCc2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWpoQkFpRUZRUUloQ2dKQUlBRXZBU1FOQUNBRUx3RTREUUJCQVNFS0lBRW9BbmdnQkNnQ2dBRkhEUUFnQVM0QmxBRWdCQzRCdkFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBWllCSUFRdUFiNEJheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSkFBa0FnQVM4QkpnMEFJQVF2QVRvTkFFRUJJUVVnQVNnQ2VDQUVLQUtBQVVjTkFDQUJMZ0dZQVNBRUxnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0Qm1nRWdCQzRCd2dGcklnUWdCRUVmZFNJRWFpQUVjMEVEU3lFRkN5QURJQVUyQWtnZ0NTQVBjaUFLY2lBRmNrRUFSd3dCQ3lBRFFRQTJBa0FnQTBFQU5nSklJQU5CQURZQ09DQURRUUEyQWpCQkFBc2hDUUpBQWtBQ1FBSkFJQVpCQkhFaUxnUkFBa0FnQVNnQ0FDSUdRUVZOQkVBZ0FpZ0NBRUVHU1EwQkN5QURRUVEyQW5RZ0EwRUVOZ0tVQVNBRFFRUTJBbFFnQTBFRU5nSTBRUUVoQ1F3Q0MwRUNJUTlCQWlFRUFrQWdBUzhCSEEwQUlBSXZBU1lOQUVFQklRUWdBU2dDZENBQ0tBSjRSdzBBSUFFdUFZUUJJQUl1QVpnQmF5SUZJQVZCSDNVaUJXb2dCWE5CQTBzTkFDQUJMZ0dHQVNBQ0xnR2FBV3NpQkNBRVFSOTFJZ1JxSUFSelFRTkxJUVFMSUFNZ0JEWUNOQUpBSUFFdkFTQU5BQ0FDTHdFcURRQkJBU0VQSUFFb0FuUWdBaWdDZUVjTkFDQUJMZ0dNQVNBQ0xnR2dBV3NpQlNBRlFSOTFJZ1ZxSUFWelFRTkxEUUFnQVM0QmpnRWdBaTRCb2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFUEN5QURJQTgyQWxSQkFpRUZRUUloQ2dKQUlBRXZBU3dOQUNBQ0x3RTJEUUJCQVNFS0lBRW9BbndnQWlnQ2dBRkhEUUFnQVM0QnBBRWdBaTRCdUFGcklnZ2dDRUVmZFNJSWFpQUljMEVEU3cwQUlBRXVBYVlCSUFJdUFib0JheUlJSUFoQkgzVWlDR29nQ0hOQkEwc2hDZ3NnQXlBS05nSjBBa0FnQVM4Qk1BMEFJQUl2QVRvTkFFRUJJUVVnQVNnQ2ZDQUNLQUtBQVVjTkFDQUJMZ0dzQVNBQ0xnSEFBV3NpQ0NBSVFSOTFJZ2hxSUFoelFRTkxEUUFnQVM0QnJnRWdBaTRCd2dGcklnVWdCVUVmZFNJRmFpQUZjMEVEU3lFRkN5QURJQVUyQXBRQklBbEZEUUpCQVNFSkRBTUxJQU5CQURZQ2RDQURRUUEyQXBRQklBTkJBRFlDVkNBRFFRQTJBalFnQVNnQ0FDRUdDeUFHUVFaSkRRRWdBMEVETmdLZ0FTQURRb09BZ0lBd053S2tBU0FEUVFNMkFwQUJJQU5CQXpZQ2NDQURRUU0yQXF3QklBTkNnNENBZ0RBM0E1Z0JJQU5DZzRDQWdEQTNBNGdCSUFOQ2c0Q0FnREEzQTRBQklBTkNnNENBZ0RBM0EzZ2dBMEtEZ0lDQU1EY0RhQ0FEUW9PQWdJQXdOd05nSUFOQ2c0Q0FnREEzQTFnZ0EwS0RnSUNBTURjQ1RDQURRUU0yQWtRZ0EwRUROZ0k4REFJTElBUWdEM0lnQ25JZ0JYSkJBRWNoQ1FzQ1FBSi9JQVpCQTAwRVFDQUdRUUowUVl3MWFpZ0NBQXdCQzBFRUMwRUJSZ1JBSUFFZ0EwRXdhaEJFSUFNb0Fxd0JJUWNnQXlnQ3BBRWhEaUFES0FLY0FTRVFJQU1vQW93QklSa2dBeWdDaEFFaEJpQURLQUo4SVJjZ0F5Z0NiQ0VJSUFNb0FtUWhCQ0FES0FKY0lSUWdBeWdDVENFTUlBTW9Ba1FoQWlBREtBSThJUkVnQXlnQ3FBRWhIQ0FES0FLZ0FTRW1JQU1vQXBnQklRMGdBeWdDa0FFaEhTQURLQUtJQVNFU0lBTW9Bb0FCSVJVZ0F5Z0NlQ0ViSUFNb0FuQWhFeUFES0FKb0lRb2dBeWdDWUNFUElBTW9BbGdoQlNBREtBSlFJU2NNQVFzZ0F3Si9Ba0FnQXdKL0FrQUNRQ0FCS0FJQVFYNXFJZ1JCQVUwRVFDQUVRUUZyQkVBZ0F3Si9Ba0FnQVM4QklDSUVEUUFnQVM4QkhBMEFRUUFNQVF0QkFnc2lKellDVUNBREFuOENRQ0FCTHdFaUlnY05BQ0FCTHdFZURRQkJBQXdCQzBFQ0N5SUZOZ0pZSUFNQ2Z3SkFJQUV2QVNnaUJnMEFJQUV2QVNRTkFFRUFEQUVMUVFJTElnODJBbUFnQXdKL0FrQWdBUzhCS2lJT0RRQWdBUzhCSmcwQVFRQU1BUXRCQWdzaUNqWUNhQ0FEQW44Q1FDQUJMd0V3SWg0TkFDQUJMd0VzRFFCQkFBd0JDMEVDQ3lJZE5nS1FBU0FEQW44Q1FDQUJMd0V5SWhBTkFDQUJMd0V1RFFCQkFBd0JDMEVDQ3lJTk5nS1lBU0FEQW44Q1FDQUJMd0U0SWdzTkFDQUJMd0UwRFFCQkFBd0JDMEVDQ3lJbU5nS2dBU0FEQW44Q1FDQUJMd0U2SWhnTkFDQUJMd0UyRFFCQkFBd0JDMEVDQ3lJY05nS29BVUVDSVJ0QkFpRVRBa0FnQkNBQkx3RXNJaGR5RFFCQkFTRVRJQUV1QWFRQklBRXVBWXdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQkxnR21BU0FCTGdHT0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdBU2dDZkNBQktBSjBSeUVUQ3lBRElCTTJBbkFDUUNBSElBRXZBUzRpSUhJTkFFRUJJUnNnQVM0QnFBRWdBUzRCa0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRXVBYW9CSUFFdUFaSUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FCS0FKOElBRW9BblJISVJzTElBTWdHellDZUVFQ0lSSkJBaUVWQWtBZ0JpQUJMd0UwSWhseURRQkJBU0VWSUFFdUFiUUJJQUV1QVp3QmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJMZ0cyQVNBQkxnR2VBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEZRc2dBeUFWTmdLQUFRSkFJQTRnQVM4Qk5pSWhjZzBBUVFFaEVpQUJMZ0c0QVNBQkxnR2dBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVM0QnVnRWdBUzRCb2dGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9Bb0FCSUFFb0FuaEhJUklMSUFNZ0VqWUNpQUVnQVM4QkhnMENJQUV2QVJ3RVFFRUNJUkVnQTBFQ05nSThJQUV2QVNRaUNBMEdRUUFoREVFQURBY0xRUUFoRVNBRFFRQTJBanhCQUNFTVFRQWdBUzhCSkNJSVJRMEdHZ3dGQ3lBREFuOENRQ0FCTHdFZ0lnSU5BQ0FCTHdFY0RRQkJBQXdCQzBFQ0N5SW5OZ0pRSUFNQ2Z3SkFJQUV2QVNJaUJnMEFJQUV2QVI0TkFFRUFEQUVMUVFJTElnVTJBbGdnQXdKL0FrQWdBUzhCS0NJT0RRQWdBUzhCSkEwQVFRQU1BUXRCQWdzaUR6WUNZQ0FEQW44Q1FDQUJMd0VxSWdnTkFDQUJMd0VtRFFCQkFBd0JDMEVDQ3lJS05nSm9JQU1nQWlBQkx3RXNJaGR5UVFCSFFRRjBJaE0yQW5BZ0F5QUdJQUV2QVM0aUMzSkJBRWRCQVhRaUd6WUNlQ0FESUE0Z0FTOEJOQ0llY2tFQVIwRUJkQ0lWTmdLQUFTQURJQWdnQVM4Qk5pSVpja0VBUjBFQmRDSVNOZ0tJQVNBRElBRXZBVEFpRUNBWGNrRUFSMEVCZENJZE5nS1FBU0FESUFFdkFUSWlJQ0FMY2tFQVIwRUJkQ0lOTmdLWUFTQURJQUV2QVRnaUlTQWVja0VBUjBFQmRDSW1OZ0tnQVNBRElBRXZBVG9pQnlBWmNrRUFSMEVCZENJY05nS29BU0FEQW44Q1FDQUJMd0VlSWlRTkFDQUJMd0VjRFFCQkFBd0JDMEVDQ3lJUk5nSThJQUV2QVNZRVFDQUJMd0VrSVJnTUF3c2dBUzhCSkNJWURRSkJBQ0VZUVFBTUF3c2dBUzRCaGdFaEZDQUJMZ0dPQVNFRVFRSWhCU0FEQW45QkFpQUJMd0VjSWhFZ0FTOEJJQ0l2Y2cwQUdrRUJJQUV1QVl3QklBRXVBWVFCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUJvZ0JDQVVheUlHSUFaQkgzVWlCbW9nQm5OQkEwc0xJaWMyQWxBZ0FTNEJpZ0VoQ0NBQkxnR1NBU0VHQWtBZ0FTOEJIaUl3SUFFdkFTSWlFSElOQUVFQklRVWdBUzRCa0FFZ0FTNEJpQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBSUFZZ0NHc2lCU0FGUVI5MUlnVnFJQVZ6UVFOTElRVUxJQU1nQlRZQ1dDQUJMZ0dXQVNFTUlBRXVBWjRCSVFkQkFpRUtJQU1DZjBFQ0lBRXZBU1FpTVNBQkx3RW9JaGR5RFFBYVFRRWdBUzRCbkFFZ0FTNEJsQUZySWdJZ0FrRWZkU0lDYWlBQ2MwRURTdzBBR2lBSElBeHJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN3c2lEellDWUNBQkxnR2FBU0V5SUFFdUFhSUJJUXNDUUNBQkx3RW1Ja0FnQVM4QktpSXpjZzBBUVFFaENpQUJMZ0dnQVNBQkxnR1lBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQ3lBeWF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzaENnc2dBeUFLTmdKb0lBRXVBYVlCSVI1QkFpRWJRUUloRXdKQUlDOGdBUzhCTENJMGNnMEFRUUVoRXlBQkxnR2tBU0FCTGdHTUFXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWdIaUFFYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBQktBSjhJQUVvQW5SSElSTUxJQU1nRXpZQ2NDQUJMZ0dxQVNFT0FrQWdFQ0FCTHdFdUloaHlEUUJCQVNFYklBRXVBYWdCSUFFdUFaQUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQ0FPSUFacklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlBRW9BbndnQVNnQ2RFY2hHd3NnQXlBYk5nSjRJQUV1QWJZQklSbEJBaUVTUVFJaEZRSkFJQmNnQVM4Qk5DSWdjZzBBUVFFaEZTQUJMZ0cwQVNBQkxnR2NBV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnR1NBSGF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTkFDQUJLQUtBQVNBQktBSjRSeUVWQ3lBRElCVTJBb0FCSUFFdUFib0JJU0VDUUNBeklBRXZBVFlpTlhJTkFFRUJJUklnQVM0QnVBRWdBUzRCb0FGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlDRWdDMnNpQWlBQ1FSOTFJZ0pxSUFKelFRTkxEUUFnQVNnQ2dBRWdBU2dDZUVjaEVnc2dBeUFTTmdLSUFTQUJMZ0d1QVNFMlFRSWhEU0FEQW45QkFpQTBJQUV2QVRBaVFYSU5BQnBCQVNBQkxnR3NBU0FCTGdHa0FXc2lBaUFDUVI5MUlnSnFJQUp6UVFOTERRQWFJRFlnSG1zaUFpQUNRUjkxSWdKcUlBSnpRUU5MQ3lJZE5nS1FBU0FCTGdHeUFTRWtBa0FnR0NBQkx3RXlJamR5RFFCQkFTRU5JQUV1QWJBQklBRXVBYWdCYXlJQ0lBSkJIM1VpQW1vZ0FuTkJBMHNOQUNBa0lBNXJJZ0lnQWtFZmRTSUNhaUFDYzBFRFN5RU5DeUFESUEwMkFwZ0JJQUV1QWI0QklTbEJBaUVjSUFNQ2YwRUNJQ0FnQVM4Qk9DSTRjZzBBR2tFQklBRXVBYndCSUFFdUFiUUJheUlDSUFKQkgzVWlBbW9nQW5OQkEwc05BQm9nS1NBWmF5SUNJQUpCSDNVaUFtb2dBbk5CQTBzTElpWTJBcUFCSUFFdUFjSUJJVGtDUUNBMUlBRXZBVG9pUW5JTkFFRUJJUndnQVM0QndBRWdBUzRCdUFGcklnSWdBa0VmZFNJQ2FpQUNjMEVEU3cwQUlEa2dJV3NpQWlBQ1FSOTFJZ0pxSUFKelFRTkxJUndMSUFNZ0hEWUNxQUZCQWlFQ0lBTUNmMEVDSUJFZ01ISU5BQnBCQVNBQkxnR0lBU0FCTGdHRUFXc2lFU0FSUVI5MUloRnFJQkZ6UVFOTERRQWFJQWdnRkdzaUZDQVVRUjkxSWhScUlCUnpRUU5MQ3lJUk5nSThBa0FnTUNBeGNnMEFRUUVoQWlBQkxnR1VBU0FCTGdHSUFXc2lGQ0FVUVI5MUloUnFJQlJ6UVFOTERRQWdEQ0FJYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBQktBSjRJQUVvQW5SSElRSUxJQU1nQWpZQ1JFRUNJUlFnQXdKL1FRSWdNU0JBY2cwQUdrRUJJQUV1QVpnQklBRXVBWlFCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUJvZ01pQU1heUlJSUFoQkgzVWlDR29nQ0hOQkEwc0xJZ3cyQWt3Q1FDQVFJQzl5RFFCQkFTRVVJQUV1QVpBQklBRXVBWXdCYXlJSUlBaEJIM1VpQ0dvZ0NITkJBMHNOQUNBR0lBUnJJZ1FnQkVFZmRTSUVhaUFFYzBFRFN5RVVDeUFESUJRMkFseEJBaUVJUVFJaEJBSkFJQkFnRjNJTkFFRUJJUVFnQVM0Qm5BRWdBUzRCa0FGckloQWdFRUVmZFNJUWFpQVFjMEVEU3cwQUlBY2dCbXNpQmlBR1FSOTFJZ1pxSUFaelFRTkxEUUFnQVNnQ2VDQUJLQUowUnlFRUN5QURJQVEyQW1RQ1FDQVhJRE55RFFCQkFTRUlJQUV1QWFBQklBRXVBWndCYXlJR0lBWkJIM1VpQm1vZ0JuTkJBMHNOQUNBTElBZHJJZ1lnQmtFZmRTSUdhaUFHYzBFRFN5RUlDeUFESUFnMkFteEJBaUVHSUFNQ2YwRUNJQmdnTkhJTkFCcEJBU0FCTGdHb0FTQUJMZ0drQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBYUlBNGdIbXNpQnlBSFFSOTFJZ2RxSUFkelFRTkxDeUlYTmdKOEFrQWdHQ0FnY2cwQVFRRWhCaUFCTGdHMEFTQUJMZ0dvQVdzaUJ5QUhRUjkxSWdkcUlBZHpRUU5MRFFBZ0dTQU9heUlISUFkQkgzVWlCMm9nQjNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQlFRSWhFQ0FEQW45QkFpQWdJRFZ5RFFBYVFRRWdBUzRCdUFFZ0FTNEJ0QUZySWdjZ0IwRWZkU0lIYWlBSGMwRURTdzBBR2lBaElCbHJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN3c2lHVFlDakFFQ1FDQTNJRUZ5RFFCQkFTRVFJQUV1QWJBQklBRXVBYXdCYXlJSElBZEJIM1VpQjJvZ0IzTkJBMHNOQUNBa0lEWnJJZ2NnQjBFZmRTSUhhaUFIYzBFRFN5RVFDeUFESUJBMkFwd0JRUUloQjBFQ0lRNENRQ0EzSURoeURRQkJBU0VPSUFFdUFid0JJQUV1QWJBQmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQXBJQ1JySWdzZ0MwRWZkU0lMYWlBTGMwRURTdzBBSUFFb0FvQUJJQUVvQW54SElRNExJQU1nRGpZQ3BBRUNRQ0E0SUVKeURRQkJBU0VISUFFdUFjQUJJQUV1QWJ3QmF5SUxJQXRCSDNVaUMyb2dDM05CQTBzTkFDQTVJQ2xySWdjZ0IwRWZkU0lIYWlBSGMwRURTeUVIQ3lBRElBYzJBcXdCREFVTFFRSWhFU0FEUVFJMkFqd2dBUzhCSkNFSURBSUxRUUlMSWd3MkFreEJBaUVFSUFOQkFpQUlRUUJIUVFGMElBNGJJZ2cyQW13Z0EwRUNJQVpCQUVkQkFYUWdBaHNpRkRZQ1hDQURJQWNnSVhKQkFFZEJBWFFpQnpZQ3JBRWdBeUFRSUNCeVFRQkhRUUYwSWhBMkFwd0JJQU1nR1NBZWNrRUFSMEVCZENJWk5nS01BU0FESUFzZ0YzSkJBRWRCQVhRaUZ6WUNmRUVDSVFJQ1FDQVlJQ1J5RFFCQkFTRUNJQUV1QVpRQklBRXVBWWdCYXlJWUlCaEJIM1VpR0dvZ0dITkJBMHNOQUNBQkxnR1dBU0FCTGdHS0FXc2lHQ0FZUVI5MUloaHFJQmh6UVFOTERRQWdBU2dDZUNBQktBSjBSeUVDQ3lBRElBSTJBa1FDUUNBR0lBNXlEUUJCQVNFRUlBRXVBWndCSUFFdUFaQUJheUlHSUFaQkgzVWlCbW9nQm5OQkEwc05BQ0FCTGdHZUFTQUJMZ0dTQVdzaUJpQUdRUjkxSWdacUlBWnpRUU5MRFFBZ0FTZ0NlQ0FCS0FKMFJ5RUVDeUFESUFRMkFtUkJBaUVPUVFJaEJnSkFJQXNnSG5JTkFFRUJJUVlnQVM0QnRBRWdBUzRCcUFGcklnc2dDMEVmZFNJTGFpQUxjMEVEU3cwQUlBRXVBYllCSUFFdUFhb0JheUlMSUF0QkgzVWlDMm9nQzNOQkEwc05BQ0FCS0FLQUFTQUJLQUo4UnlFR0N5QURJQVkyQW9RQkFrQWdJQ0FoY2cwQVFRRWhEaUFCTGdHOEFTQUJMZ0d3QVdzaUN5QUxRUjkxSWd0cUlBdHpRUU5MRFFBZ0FTNEJ2Z0VnQVM0QnNnRnJJZ3NnQzBFZmRTSUxhaUFMYzBFRFN3MEFJQUVvQW9BQklBRW9BbnhISVE0TElBTWdEallDcEFFTUFnc2dDQ0VNUVFJTElnSTJBa1FnQXlBQkx3RW1JQXhCLy84RGNYSkJBRWRCQVhRaUREWUNUQ0FEQW44Q1FDQUhSUVJBSUFRRVFFRUNJUlFnQTBFQ05nSmNJQVlOQWtFQURBTUxRUUFoRkNBRFFRQTJBbHhCQUNBR1JRMENHZ3dCQzBFQ0lSUWdBMEVDTmdKY0MwRUNDeUlFTmdKa0lBTkJBaUFPUVFCSFFRRjBJQVliSWdnMkFtd2dBd0ovQWtBZ0lFVUVRQ0FYQkVCQkFpRVhJQU5CQWpZQ2ZDQVpEUUpCQUF3REMwRUFJUmNnQTBFQU5nSjhRUUFnR1VVTkFob01BUXRCQWlFWElBTkJBallDZkF0QkFnc2lCallDaEFFZ0F5QUxJQmh5UVFCSFFRRjBJZ2MyQXF3QklBTWdDeUFRY2tFQVIwRUJkQ0lPTmdLa0FTQURRUUlnRUVFQVIwRUJkQ0FlR3lJUU5nS2NBU0FESUJrZ0lYSkJBRWRCQVhRaUdUWUNqQUVMSUFrZ0ozSWdCWElnRDNJZ0NuSWdFM0lnRzNJZ0ZYSWdFbklnSFhJZ0RYSWdKbklnSEhJZ0VYSWdBbklnREhJZ0ZISWdCSElnQ0hJZ0YzSWdCbklnR1hJZ0VISWdEbklnQjNKRkRRRUxJQUVvQWd3aENTQURJQUVvQWhBaUJTQUJLQUlVSWdScUlnWkJNeUFHUVROSUd5SUdRUUFnQmtFQVNodEIwQmRxTFFBQUlnWTJBaUFnQXlBRUlBbHFJZ0pCTXlBQ1FUTklHeUlDUVFBZ0FrRUFTaHNpQ0VHUUYyb3RBQUFpQWpZQ0hDQURJQWhCQTJ4QmtCaHFJZ2cyQWhnQ1FDQXRSUTBBSUFRZ0FTZ0N6QUVvQWhRaUIwY0VRQ0FESUFRZ0IycEJBV3BCQVhZaUJ5QUZhaUlOUVRNZ0RVRXpTQnNpRFVFQUlBMUJBRW9iUWRBWGFpMEFBRFlDQ0NBRElBY2dDV29pQjBFeklBZEJNMGdiSWdkQkFDQUhRUUJLR3lJSFFaQVhhaTBBQURZQ0JDQURJQWRCQTJ4QmtCaHFOZ0lBREFFTElBTWdCallDQ0NBRElBSTJBZ1FnQXlBSU5nSUFDd0pBSUM1RkRRQWdCQ0FCS0FMSUFTZ0NGQ0lIUndSQUlBTWdCQ0FIYWtFQmFrRUJkaUlFSUFWcUlnVkJNeUFGUVROSUd5SUZRUUFnQlVFQVNodEIwQmRxTFFBQU5nSVVJQU1nQkNBSmFpSUVRVE1nQkVFelNCc2lCRUVBSUFSQkFFb2JJZ1JCa0JkcUxRQUFOZ0lRSUFNZ0JFRURiRUdRR0dvMkFnd01BUXNnQXlBR05nSVVJQU1nQWpZQ0VDQURJQWcyQWd3TElBQW9BZ0FnSHlBNmJDSVVRUWgwYWlBcVFRUjBhaUVKUVFBaEFrRURJUVFnQTBFd2FpRUdBMEFnQmlnQ0JDSUZCRUFnQ1NBRklDTWdHaEFaQ3lBR0tBSU1JZ1VFUUNBSlFRUnFJQVVnSWlBYUVCa0xJQVlvQWhRaUJRUkFJQWxCQ0dvZ0JTQWlJQm9RR1FzZ0JpZ0NIQ0lGQkVBZ0NVRU1haUFGSUNJZ0doQVpDeUFFSVFnQ1FBSkFBa0FnQmlnQ0FDSUVJQVlvQWdnaUQwY05BQ0FFSUFZb0FoQkhEUUFnQkNBR0tBSVlSdzBBSUFSRkRRSWdBeUFDUVF4c2FpSUZLQUlJSVF3Z0JTZ0NCQ0ViSUFSQkJFa05BU0FiUVFKMlFRSnFJUkJCRUNFUElBa2hCQU5BQWtBZ0JDQW9haUlDTFFBQUlnb2dCQzBBQUNJT2F5SUZJQVZCSDNVaUJXb2dCWE1pQnlBYlR3MEFJQVFnTEdvaUVTMEFBQ0lGSUFwcklnMGdEVUVmZFNJTmFpQU5jeUFNVHcwQUlBUWdHbW9pSEMwQUFDSVNJQTVySWcwZ0RVRWZkU0lOYWlBTmN5QU1UdzBBQWtBZ0J5QVFTUVJBSUFRZ0pXb2lGeTBBQUNFVkFuOGdCQ0FyYWlJTkxRQUFJaE1nQ21zaUJ5QUhRUjkxSWdkcUlBZHpJQXhKQkVCQkF5RWRJQUlnRWlBS0lBNXFJQVZxSWdKQkFYUnFJQk5xUVFScVFRTjJPZ0FBSUJFZ0FpQVRha0VDYWtFQ2Rqb0FBQ0FDUVFScUlSRWdCQ0EvYWkwQUFDRUhJQk5CQTJ3TUFRc2dDaUFTYWlFUklBVWhCMEVDSVIwZ0FpRU5RUUlMSVFJZ0RTQUNJQkZxSUFkQkFYUnFJQjEyT2dBQUlCVWdEbXNpQWlBQ1FSOTFJZ0pxSUFKeklBeFBEUUVnQkNBRklBb2dFbW9nRG1vaUFrRUJkR29nRldwQkJHcEJBM1k2QUFBZ0hDQUNJQlZxUVFKcVFRSjJPZ0FBSUJjZ0FpQVZRUU5zYWlBRUlENXFMUUFBUVFGMGFrRUVha0VEZGpvQUFBd0NDeUFDSUFvZ0Vtb2dCVUVCZEdwQkFtcEJBblk2QUFBTElBUWdCU0FPYWlBU1FRRjBha0VDYWtFQ2Rqb0FBQXNnQkVFQmFpRUVJQTlCZjJvaUR3MEFDd3dDQ3dKL0lBUUVRQ0FKSUFRZ0F5QUNRUXhzYWlBYUVCZ2dCaWdDQ0NFUEN5QVBDd1JBSUFsQkJHb2dEeUFESUFKQkRHeHFJQm9RR0FzZ0JpZ0NFQ0lFQkVBZ0NVRUlhaUFFSUFNZ0FrRU1iR29nR2hBWUN5QUdLQUlZSWdSRkRRRWdDVUVNYWlBRUlBTWdBa0VNYkdvZ0doQVlEQUVMSUFRZ0JTZ0NBR3BCZjJvdEFBQWlBa0VCYWlFSFFRQWdBbXNoRGtFUUlROGdDU0VFQTBBQ1FDQUVJQ2hxSWhNdEFBQWlEU0FFTFFBQUlncHJJZ1VnQlVFZmRTSUZhaUFGY3lBYlR3MEFJQVFnTEdvaUVTMEFBQ0lTSUExcklnVWdCVUVmZFNJRmFpQUZjeUFNVHcwQUlBUWdHbW9pRUMwQUFDSVZJQXBySWdVZ0JVRWZkU0lGYWlBRmN5QU1UdzBBSUFJaEJTQUVJQ3RxTFFBQUlod2dEV3NpSFNBZFFSOTFJaDFxSUIxeklBeEpCRUFnRVNBU0lBNGdBaUFLSUExcVFRRnFRUUYySUJKQkFYUnJJQnhxUVFGMUlnVWdCU0FDU2hzZ0JTQU9TQnRxT2dBQUlBY2hCUXNnRXlBTkFuOGdCQ0FsYWkwQUFDSVRJQXBySWhFZ0VVRWZkU0lSYWlBUmN5QU1TUVJBSUJBZ0ZTQU9JQUlnQ2lBTmFrRUJha0VCZGlBVlFRRjBheUFUYWtFQmRTSVRJQk1nQWtvYklCTWdEa2diYWpvQUFDQUZRUUZxSVFVTFFRQWdCV3NpRXdzZ0JTQVNJQlZySUFvZ0RXdEJBblJxUVFScVFRTjFJaElnRWlBRlNoc2dFaUFUU0JzaUJXcEJzQzVxTFFBQU9nQUFJQVFnQ2lBRmEwR3dMbW90QUFBNkFBQUxJQVJCQVdvaEJDQVBRWDlxSWc4TkFBc0xJQWhCZjJvaEJDQUdRU0JxSVFZZ0NTQTlhaUVKUVFJaEFpQUlEUUFMSUFFb0Fnd2hCQ0FESUFFb0FoQWlCU0FCS0FJVUlnWWdBU2dDR0NJQ2FpSUpRVE1nQ1VFelNCc2lDVUVBSUFsQkFFb2JRUUowUWVBOWFpZ0NBQ0lKYWlJSVFUTWdDRUV6U0JzaUNFRUFJQWhCQUVvYlFkQVhhaTBBQUNJSU5nSWdJQU1nQkNBSmFpSUhRVE1nQjBFelNCc2lCMEVBSUFkQkFFb2JJZzFCa0JkcUxRQUFJZ2MyQWh3Z0F5QU5RUU5zUVpBWWFpSU5OZ0lZQWtBZ0xVVU5BQ0FHSUFFb0Fzd0JLQUlVSWd4SEJFQWdBeUFKSUFJZ0RHb2lERUV6SUF4Qk0wZ2JJZ3hCQUNBTVFRQktHMEVDZEVIZ1BXb29BZ0JxUVFGcVFRRjJJZ3dnQldvaUQwRXpJQTlCTTBnYklnOUJBQ0FQUVFCS0cwSFFGMm90QUFBMkFnZ2dBeUFFSUF4cUlneEJNeUFNUVROSUd5SU1RUUFnREVFQVNoc2lERUdRRjJvdEFBQTJBZ1FnQXlBTVFRTnNRWkFZYWpZQ0FBd0JDeUFESUFnMkFnZ2dBeUFITmdJRUlBTWdEVFlDQUFzQ1FDQXVSUTBBSUFZZ0FTZ0N5QUVvQWhRaURFY0VRQ0FESUFVZ0NTQUNJQXhxSWdaQk15QUdRVE5JR3lJR1FRQWdCa0VBU2h0QkFuUkI0RDFxS0FJQWFrRUJha0VCZGlJSmFpSUZRVE1nQlVFelNCc2lCVUVBSUFWQkFFb2JRZEFYYWkwQUFEWUNGQ0FESUFRZ0NXb2lCRUV6SUFSQk0wZ2JJZ1JCQUNBRVFRQktHeUlFUVpBWGFpMEFBRFlDRUNBRElBUkJBMnhCa0JocU5nSU1EQUVMSUFNZ0NEWUNGQ0FESUFjMkFoQWdBeUFOTmdJTUN5QUFLQUlBSUR4cUlCUkJCblJxSUNwQkEzUnFJZ2tnTzJvaEJFRUFJUW9nQTBFd2FpRUdRUUFoQWdOQUlBWW9BZ1FpQlFSQUlBa2dCU0FqSUJZUUVDQUVJQVlvQWdRZ0l5QVdFQkFMSUFZb0FpUWlCUVJBSUFrZ0dtb2dCU0FqSUJZUUVDQUVJQnBxSUFZb0FpUWdJeUFXRUJBTElBWW9BaFFpQlFSQUlBbEJCR29nQlNBaUlCWVFFQ0FFUVFScUlBWW9BaFFnSWlBV0VCQUxJQVlvQWpRaUJRUkFJQWtnR21wQkJHb2dCU0FpSUJZUUVDQUVJQnBxUVFScUlBWW9BalFnSWlBV0VCQUxJQUloQlFKQUFrQWdCaWdDQUNJQ0lBWW9BZ2dpRDBjTkFDQUNJQVlvQWhCSERRQWdBaUFHS0FJWVJ3MEFJQUpGRFFFZ0NTQUNJQU1nQ2tFTWJHb2lBaUFXRUNzZ0JDQUdLQUlBSUFJZ0ZoQXJEQUVMQW44Z0FnUkFJQWtnQWlBRElBcEJER3hxSWdJZ0ZoQVNJQVFnQmlnQ0FDQUNJQllRRWlBR0tBSUlJUThMSUE4TEJFQWdDVUVDYWlBUElBTWdDa0VNYkdvaUFpQVdFQklnQkVFQ2FpQUdLQUlJSUFJZ0ZoQVNDeUFHS0FJUUlnSUVRQ0FKUVFScUlBSWdBeUFLUVF4c2FpSUNJQllRRWlBRVFRUnFJQVlvQWhBZ0FpQVdFQklMSUFZb0FoZ2lBa1VOQUNBSlFRWnFJQUlnQXlBS1FReHNhaUlDSUJZUUVpQUVRUVpxSUFZb0FoZ2dBaUFXRUJJTElBUWdKV29oQkNBSklDVnFJUWtnQmtGQWF5RUdRUUVoQWtFQ0lRb2dCVVVOQUFzTFFRQWdLa0VCYWlJRUlBUWdIMFlpQkJzaEtpQUJRZGdCYWlFQklBUWdPbW9pT2lBQUtBSUlTUTBBQ3dzZ0EwR3dBV29rQUF1Q0JRRUtmeU1BUVpBQmF5SUxKQUFDUUFKQUlBSkJBRWdOQUNBRFFRQklEUUFnQWlBSGFpQUVTdzBBSUFNZ0NHcEJBV29nQlVzTkFDQUZJUXdnQXlFT0RBRUxJQUFnQ3lBQ0lBTWdCQ0FGSUFjZ0NFRUJhaUlNSUFjUURDQUFJQVFnQld4cUlBc2dCeUFNYkdvZ0FpQURJQVFnQlNBSElBd2dCeEFNSUFzaEFDQUhJUVJCQUNFQ0N3SkFJQWhCQVhZaUJVVU5BQ0FIUVFGMklnTkZEUUJCRUNBSGF5RVFRUWdnQm1zaENTQUVRUUYwSWcwZ0Iyc2hFU0FBSUFKcUloSWdCQ0FPYkdvaEJ5QUJJUUlnQlNFSUEwQWdBeUVBQTBBZ0J5QU5haTBBQUNFS0lBSWdDU0FITFFBQWJDQUVJQWRxTFFBQUlnOGdCbXhxUVFOMFFTQnFRUVoyT2dBQUlBSWdDU0FQYkNBR0lBcHNha0VEZEVFZ2FrRUdkam9BQ0NBSFFRRnFJZ29nRFdvdEFBQWhEeUFDSUFrZ0J5MEFBV3dnQkNBS2FpMEFBQ0lLSUFac2FrRURkRUVnYWtFR2Rqb0FBU0FDSUFrZ0Ntd2dCaUFQYkdwQkEzUkJJR3BCQm5ZNkFBa2dBa0VDYWlFQ0lBZEJBbW9oQnlBQVFYOXFJZ0FOQUFzZ0J5QVJhaUVISUFJZ0VHb2hBaUFJUVg5cUlnZ05BQXNnQVVGQWF5RUNJQklnRENBT2FpQUViR29oQndOQUlBTWhBQU5BSUFjZ0RXb3RBQUFoQVNBQ0lBa2dCeTBBQUd3Z0JDQUhhaTBBQUNJSUlBWnNha0VEZEVFZ2FrRUdkam9BQUNBQ0lBZ2dDV3dnQVNBR2JHcEJBM1JCSUdwQkJuWTZBQWdnQjBFQmFpSUJJQTFxTFFBQUlRZ2dBaUFKSUFjdEFBRnNJQUVnQkdvdEFBQWlBU0FHYkdwQkEzUkJJR3BCQm5ZNkFBRWdBaUFCSUFsc0lBWWdDR3hxUVFOMFFTQnFRUVoyT2dBSklBSkJBbW9oQWlBSFFRSnFJUWNnQUVGL2FpSUFEUUFMSUFjZ0VXb2hCeUFDSUJCcUlRSWdCVUYvYWlJRkRRQUxDeUFMUVpBQmFpUUFDLzBFQVF0L0l3QkJrQUZySWd3a0FDQUhRUUZxSVFrQ1FBSkFJQUpCQUVnTkFDQURJQWhxSUFWTERRQWdBMEVBU0EwQUlBSWdDV29nQkVzTkFDQUVJUWtnQXlFTERBRUxJQUFnRENBQ0lBTWdCQ0FGSUFrZ0NDQUpFQXdnQUNBRUlBVnNhaUFNSUFnZ0NXeHFJQUlnQXlBRUlBVWdDU0FJSUFrUURDQU1JUUFnQ0NFRlFRQWhBZ3NDUUNBSVFRRjJJZ2hGRFFBZ0IwRUJkaUlFUlEwQVFSQWdCMnNoRGtFSUlBWnJJUW9nQ1VFQmRDQUhheUVQSUFBZ0Ftb2lFU0FKSUF0c2FpRUNJQUVoQXlBSUlRQURRQ0FFSVFjRFFDQUNRUUZxSUFscUxRQUFJUkFnQWlBSmFpMEFBQ0VOSUFNZ0FpMEFBU0lTSUFac0lBb2dBaTBBQUd4cVFRTjBRU0JxUVFaMk9nQUFJQU1nQmlBUWJDQUtJQTFzYWtFRGRFRWdha0VHZGpvQUNDQUNMUUFDSVEwZ0FrRUNhaUlDSUFscUxRQUFJUk1nQXlBR0lBMXNJQW9nRW14cVFRTjBRU0JxUVFaMk9nQUJJQU1nQmlBVGJDQUtJQkJzYWtFRGRFRWdha0VHZGpvQUNTQURRUUpxSVFNZ0IwRi9haUlIRFFBTElBSWdEMm9oQWlBRElBNXFJUU1nQUVGL2FpSUFEUUFMSUFGQlFHc2hBeUFSSUFVZ0Myb2dDV3hxSVFJRFFDQUVJUWNEUUNBQ1FRRnFJQWxxTFFBQUlRQWdBaUFKYWkwQUFDRUJJQU1nQWkwQUFTSUZJQVpzSUFvZ0FpMEFBR3hxUVFOMFFTQnFRUVoyT2dBQUlBTWdBQ0FHYkNBQklBcHNha0VEZEVFZ2FrRUdkam9BQ0NBQ0xRQUNJUUVnQWtFQ2FpSUNJQWxxTFFBQUlRc2dBeUFCSUFac0lBVWdDbXhxUVFOMFFTQnFRUVoyT2dBQklBTWdCaUFMYkNBQUlBcHNha0VEZEVFZ2FrRUdkam9BQ1NBRFFRSnFJUU1nQjBGL2FpSUhEUUFMSUFJZ0Qyb2hBaUFESUE1cUlRTWdDRUYvYWlJSURRQUxDeUFNUVpBQmFpUUFDN2tIQVFWL0l3QkJFR3NpQkNRQUFrQWdBQ0FCUVFCQnlBQVFCeUlERUFJaUFRMEFRUUVoQVNBREtBSUFRZjhCU3cwQUlBQWdBMEVFYWhBQ0lnRU5BRUVCSVFFZ0F5Z0NCRUVmU3cwQUlBQkJBUkFERFFBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNDQ0FBSUFSQkRHb1FBaUlCRFFBZ0F5QUVLQUlNUVFGcUlnRTJBZ3dnQVVFSVN3UkFRUUVoQVF3QkN3SkFJQUZCQWtrTkFDQUFJQU5CRUdvUUFpSUJEUUVnQXlnQ0VDSUJRUVpMSWdJRVFFRUJJUUVNQWdzZ0FnMEFBa0FDUUFKQUFrQWdBVUVCYXc0R0JBRUNBZ0lEQUFzZ0F5QURLQUlNSWdGQkFuUVFDaUlDTmdJVUlBSkZCRUJCLy84RElRRU1CUXNnQVVVTkEwRUFJUUlEUUNBQUlBUkJER29RQWlJQkRRVWdBeWdDRkNBQ1FRSjBhaUFFS0FJTVFRRnFOZ0lBSUFKQkFXb2lBaUFES0FJTVNRMEFDd3dEQ3lBRElBTW9BZ3dpQWtFQ2RFRjhhaUlCRUFvaUJUWUNHQ0FESUFFUUNpSUdOZ0ljUWYvL0F5RUJJQVZGRFFNZ0JrVU5BeUFDUVFGR0RRSkJBQ0VDQTBBZ0FDQUVRUXhxRUFJaUFRMEVJQUpCQW5RaUJTQURLQUlZYWlBRUtBSU1OZ0lBSUFBZ0JFRU1haEFDSWdFTkJDQURLQUljSUFWcUlBUW9BZ3cyQWdBZ0FrRUJhaUlDSUFNb0FneEJmMnBKRFFBTERBSUxRUUVoQVNBQVFRRVFBeUlDUVg5R0RRSWdBeUFDUVFGR05nSWdJQUFnQkVFTWFoQUNJZ0VOQWlBRElBUW9BZ3hCQVdvMkFpUU1BUXNnQUNBRVFReHFFQUlpQVEwQklBTWdCQ2dDREVFQmFpSUJOZ0lvSUFNZ0FVRUNkQkFLSWdJMkFpd2dBa1VFUUVILy93TWhBUXdDQ3lBQlJRMEFJQU1vQWd4QkFuUkJyRHRxS0FJQUlRWkJBQ0VDQTBBZ0FDQUdFQU1oQlNBREtBSXNJQUpCQW5ScUlBVTJBZ0JCQVNFQklBVWdBeWdDREU4TkFpQUNRUUZxSWdJZ0F5Z0NLRWtOQUFzTElBQWdCRUVNYWhBQ0lnRU5BRUVCSVFFZ0JDZ0NEQ0lDUVI5TERRQWdBeUFDUVFGcU5nSXdJQUFnQkVFTWFoQUNJZ0VOQUVFQklRRWdCQ2dDREVFZlN3MEFJQUJCQVJBREJFQU1BUXNnQUVFQ0VBTkJBa3NFUUF3QkN5QUFJQVJCQ0dvUUJTSUJEUUFnQkNnQ0NFRWFhaUlCUVROTEJFQkJBU0VCREFFTElBTWdBVFlDTkNBQUlBUkJDR29RQlNJQkRRQWdCQ2dDQ0VFYWFrRXpTd1JBUVFFaEFRd0JDeUFBSUFSQkNHb1FCU0lCRFFCQkFTRUJJQVFvQWdnaUFrRU1ha0VZU3cwQUlBTWdBallDT0NBQVFRRVFBeUlDUVg5R0RRQWdBeUFDUVFGR05nSThJQUJCQVJBRElnSkJmMFlOQUNBRElBSkJBVVkyQWtBZ0FFRUJFQU1pQWtGL1JnMEFJQU1nQWtFQlJqWUNSQ0FBRUI5QkFDRUJDeUFFUVJCcUpBQWdBUXZxQlFFSmZ3SkFJQUlvQXB3Q1JRUkFEQUVMUVFFaEJnTkFBa0FDUUNBQ0lBVkJGR3hxS0FLZ0FpSUVRUVZMRFFBZ0JFRUJhdzRGQUFBQUFBTUJDeUFGUVFGcUlRVU1BUXNMSUFRaEJnc0Nmd0pBSUFFb0FoQWlCRUVCVFFSQUlBUkJBV3NFUUNBREtBSUFRUVZHQkVBZ0FFSUFOd0lBSUFJb0FoUWhCVUVBSVFRTUF3c2dBQ2dDQUNJRUlBSW9BaFFpQlUwTkFpQUVJQVZySUFFb0FoUWlCMEVCZGtrTkFpQUFLQUlFSUFkcURBTUxRUUFoQlFKL1FRQWdBeWdDQUVFRlJnMEFHaUFBS0FJTUlnY2dBQ2dDQ0NBQ0tBSU1UUTBBR2lBQktBSU1JQWRxQ3lFSFFRQWhCQUovSUFFb0FpUWlDQVJBSUFJb0Fnd2dCMm9oQlFzZ0JTQURLQUlFSWdwRklBVkJBRWR4YXlJSkN3UkFJQWxCZjJvaUF5QURJQWh1SWdzZ0NHeHJJUU1MSUFnRVFDQUJLQUlvSVF4QkFDRUZBMEFnRENBRlFRSjBhaWdDQUNBRWFpRUVJQVZCQVdvaUJTQUlSdzBBQ3dzQ1FDQUpSUVJBUVFBaEJBd0JDeUFFSUF0c0lRUWdBU2dDS0NFSVFRQWhCUU5BSUFnZ0JVRUNkR29vQWdBZ0JHb2hCQ0FGUVFGcUlnVWdBMDBOQUFzTElBcEZCRUFnQVNnQ0hDQUVhaUVFQ3lBR1JRUkFJQUlvQWlBaEF5QUJLQUlnSVFFZ0FpZ0NIQ0VHSUFBZ0J6WUNEQ0FBSUFJb0FndzJBZ2dnQmlBQklBTnFJZ0JCSDNVZ0FIRWdCR3BxRHdzZ0FFSUFOd0lJUVFBUEMwRUFJUVZCQUNFRUlBTW9BZ0JCQlVjRVFDQUFLQUlNSVFVZ0FDZ0NDQ0FDS0FJTUlnUkxCRUFnQVNnQ0RDQUZhaUVGQ3lBRUlBVnFRUUYwSUFNb0FnUkZheUVFQ3lBR1JRUkFJQUFnQlRZQ0RDQUFJQUlvQWd3MkFnZ2dCQThMSUFCQ0FEY0NDRUVBRHdzQ1FDQUZJQVJORFFBZ0JTQUVheUFCS0FJVUlnRkJBWFpORFFBZ0FDZ0NCQ0FCYXd3QkN5QUFLQUlFQ3lFRUlBTW9BZ1JGQkVBZ0JDQUZhaUFDS0FJWUlnQkJIM1VnQUhGcUR3c2dBQ0FFTmdJRUlBSW9BaGdoQVNBR0JFQWdBRUVBTmdJRUlBQkJBQ0FCYXlBQlFSOTFjVFlDQUVFQUR3c2dBQ0FGTmdJQUlBUWdCV29nQVVFZmRTQUJjV29MdkFFQkNIOGdBZ1JBSUFGQmYyb2hCMEVBSUFGclFkZ0JiQ0VJUVFFZ0FXdEIyQUZzSVFrZ0FVRi9jMEhZQVd3aENnTkFJQUFnQmtIWUFXeHFJZ01nQTBHb2ZtcEJBQ0FFR3pZQ3lBRWdBd0ovSUFWRkJFQWdBMEVBTmdMTUFVRUFEQUVMSUFNZ0F5QUlhallDekFFZ0F5QUpha0VBSUFRZ0Iwa2JDellDMEFFZ0F5QURJQXBxUVFBZ0JCdEJBQ0FGR3pZQzFBRkJBQ0FFUVFGcUlnTWdBU0FEUmlJREd5RUVJQU1nQldvaEJTQUdRUUZxSWdZZ0FrY05BQXNMQzNjQkFuOUJBU0VDQWtBZ0FFRUJFQU5CZjBZTkFDQUJJQUJCQWhBRE5nSUVJQUVnQUVFRkVBTWlBRFlDQUNBQVFYNXFRUU5KRFFBQ1FDQUFRUXhMRFFCQkFTQUFkQ0lEUWNBOGNVVUVRQ0FEUWFBRGNVVU5BU0FBUVFaR0RRSWdBU2dDQkEwQkRBSUxJQUVvQWdRTkFRdEJBQ0VDQ3lBQ0M1SVRBUVovSUFBZ0FTZ0NBQ0lOTmdJQUlBQWdBQ2dDeEFGQkFXbzJBc1FCSUFJZ0JSQWRBa0FDUUFKQUFrQUNRQ0FOUVI5R0JFQWdBRUVBTmdJVUlBQW9Bc1FCUVFGTERRRWdBRUVjYWlFSklBRkJ5QUpxSVFSQkZ5RUJJQWNoQUFOQUlBbEJFRHNCQUNBQUlBUW9BZ0E2QUFBZ0FDQUVLQUlFT2dBQklBQWdCQ2dDQ0RvQUFpQUFJQVFvQWd3NkFBTWdBQ0FFS0FJUU9nQUVJQUFnQkNnQ0ZEb0FCU0FBSUFRb0FoZzZBQVlnQUNBRUtBSWNPZ0FISUFBZ0JDZ0NJRG9BQ0NBQUlBUW9BaVE2QUFrZ0FDQUVLQUlvT2dBS0lBQWdCQ2dDTERvQUN5QUFJQVFvQWpBNkFBd2dBQ0FFS0FJME9nQU5JQUFnQkNnQ09Eb0FEaUFBSUFRb0FqdzZBQThnQVNJRFFYOXFJUUVnQ1VFQ2FpRUpJQUJCRUdvaEFDQUVRVUJySVFRZ0F3MEFDeUFDSUFjUUd3d0VDeUFBUVJ4cUlRa2dEUVJBSUFrZ0FTa0NrQUkzQWdBZ0NTQUJLUUcrQWpjQkxpQUpJQUVwQXJnQ053SW9JQWtnQVNrQ3NBSTNBaUFnQ1NBQktRS29BamNDR0NBSklBRXBBcUFDTndJUUlBa2dBU2tDbUFJM0FnZ2dCQ2dDQUNFS0FrQWdBU2dDQ0NJTFJRMEFJQVFnQ2lBTGFpSUtOZ0lBSUFRZ0NrRi9UQVIvSUFwQk5Hb0ZJQXBCTkVnTkFTQUtRVXhxQ3lJS05nSUFDeUFBSUFvMkFoUWdBVUhJRDJvaERDQUJRY2dDYWlFRUFrQUNRQ0FBS0FJQVFRWk5CRUFnQ1M4QkFFVU5BVUVCSVFnZ0JDQUtRUUFnRENnQ0FCQUdSUTBDREFnTElBQXZBVXdFUUNBQlFjZ09haUFLRURFTFFiQTBJUXBCRHlFSUEwQWdDQ0VMSUFRZ0FTQUtLQUlBUVFKMGFrSElEbW9vQWdBaUNEWUNBQUpBQWtBZ0NFVUVRQ0FKTHdFQVJRMEJDMEVCSVFnZ0JDQUFLQUlVUVFFZ0RDZ0NBQkFHUlEwQkRBb0xJQVJCLy8vL0J6WUNBQXNnQ2tFRWFpRUtJQXRCZjJvaENDQU1RUVJxSVF3Z0NVRUNhaUVKSUFSQlFHc2hCQ0FMRFFBTERBUUxJQVJCLy8vL0J6WUNBQXNnQVVHSUEyb2hCQUpBSUFBdkFSNEVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSE1EMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJ5QU5xSVFRQ1FDQUFMd0VnQkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCMEE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUVlnRWFpRUVBa0FnQUM4QklnUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFkUVBhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVSElCR29oQkFKQUlBQXZBU1FFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUhZRDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCaUFWcUlRUUNRQ0FBTHdFbUJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQjNBOXFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFjZ0ZhaUVFQWtBZ0FDOEJLQVJBUVFFaENDQUVJQUFvQWhSQkFDQUJRZUFQYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJQm1vaEJBSkFJQUF2QVNvRVFFRUJJUWdnQkNBQUtBSVVRUUFnQVVIa0Qyb29BZ0FRQmtVTkFRd0hDeUFFUWYvLy93YzJBZ0FMSUFGQnlBWnFJUVFDUUNBQUx3RXNCRUJCQVNFSUlBUWdBQ2dDRkVFQUlBRkI2QTlxS0FJQUVBWkZEUUVNQndzZ0JFSC8vLzhITmdJQUN5QUJRWWdIYWlFRUFrQWdBQzhCTGdSQVFRRWhDQ0FFSUFBb0FoUkJBQ0FCUWV3UGFpZ0NBQkFHUlEwQkRBY0xJQVJCLy8vL0J6WUNBQXNnQVVISUIyb2hCQUpBSUFBdkFUQUVRRUVCSVFnZ0JDQUFLQUlVUVFBZ0FVSHdEMm9vQWdBUUJrVU5BUXdIQ3lBRVFmLy8vd2MyQWdBTElBRkJpQWhxSVFRQ1FDQUFMd0V5QkVCQkFTRUlJQVFnQUNnQ0ZFRUFJQUZCOUE5cUtBSUFFQVpGRFFFTUJ3c2dCRUgvLy84SE5nSUFDeUFCUWNnSWFpRUVBa0FnQUM4Qk5BUkFRUUVoQ0NBRUlBQW9BaFJCQUNBQlFmZ1BhaWdDQUJBR1JRMEJEQWNMSUFSQi8vLy9CellDQUFzZ0FVR0lDV29oQkFKQUlBQXZBVFlFUUVFQklRZ2dCQ0FBS0FJVVFRQWdBVUg4RDJvb0FnQVFCa1VOQVF3SEN5QUVRZi8vL3djMkFnQUxJQUZCeUFscUlRUUNRQ0FBTHdFNEJFQkJBU0VJSUFRZ0FDZ0NGRUVBSUFGQmdCQnFLQUlBRUFaRkRRRU1Cd3NnQkVILy8vOEhOZ0lBQ3lBQlFZZ0thaUVFQWtBZ0FDOEJPZ1JBUVFFaENDQUVJQUFvQWhSQkFDQUJRWVFRYWlnQ0FCQUdSUTBCREFjTElBUkIvLy8vQnpZQ0FBc2dBVUdJRUdvaERDQUJRY2dLYWlFRURBSUxJQWxDQURjQ0FDQUpRZ0EzQVM0Z0NVSUFOd0lvSUFsQ0FEY0NJQ0FKUWdBM0FoZ2dDVUlBTndJUUlBbENBRGNDQ0NBQUlBUW9BZ0EyQWhRTUFnc2dBRUtRZ01DQWdJS0FDRGNCSENBQVFwQ0F3SUNBZ29BSU53RkVJQUJDa0lEQWdJQ0NnQWczQVR3Z0FFS1FnTUNBZ0lLQUNEY0JOQ0FBUXBDQXdJQ0Fnb0FJTndFc0lBQkNrSURBZ0lDQ2dBZzNBU1JCQUE4TElBQW9BaGdnQUNnQ0ZHb2lDMEV6SUF0Qk0wZ2JJZ3RCQUNBTFFRQktHMEVDZEVIZ1BXb29BZ0FoQ1FKQUlBQXZBVTVGQkVBZ0FDOEJVRVVOQVFzZ0FVR0lEMm9nQ1JBd0N5QUVJQUZCaUE5cUtBSUFJZ3MyQWdBQ1FBSkFJQXRGQkVBZ0FDOEJQRVVOQVF0QkFTRUlJQVFnQ1VFQklBd29BZ0FRQmtVTkFRd0VDeUFFUWYvLy93YzJBZ0FMSUFRZ0FTZ0NqQThpQ3pZQ1FDQUVRVUJySVFvQ1FBSkFJQXRGQkVBZ0FDOEJQa1VOQVF0QkFTRUlJQW9nQ1VFQklBd29BZ1FRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NrQThpQ3pZQ2dBRWdCRUdBQVdvaENnSkFBa0FnQzBVRVFDQUFRVUJyTHdFQVJRMEJDMEVCSVFnZ0NpQUpRUUVnRENnQ0NCQUdSUTBCREFRTElBcEIvLy8vQnpZQ0FBc2dCQ0FCS0FLVUR5SUxOZ0xBQVNBRVFjQUJhaUVLQWtBQ1FDQUxSUVJBSUFBdkFVSkZEUUVMUVFFaENDQUtJQWxCQVNBTUtBSU1FQVpGRFFFTUJBc2dDa0gvLy84SE5nSUFDeUFFSUFFb0FwZ1BJZ3MyQW9BQ0lBUkJnQUpxSVFvQ1FBSkFJQXRGQkVBZ0FDOEJSRVVOQVF0QkFTRUlJQW9nQ1VFQklBd29BaEFRQmtVTkFRd0VDeUFLUWYvLy93YzJBZ0FMSUFRZ0FTZ0NuQThpQ3pZQ3dBSWdCRUhBQW1vaENnSkFBa0FnQzBVRVFDQUFMd0ZHUlEwQkMwRUJJUWdnQ2lBSlFRRWdEQ2dDRkJBR1JRMEJEQVFMSUFwQi8vLy9CellDQUFzZ0JDQUJLQUtnRHlJTE5nS0FBeUFFUVlBRGFpRUtBa0FDUUNBTFJRUkFJQUF2QVVoRkRRRUxRUUVoQ0NBS0lBbEJBU0FNS0FJWUVBWkZEUUVNQkFzZ0NrSC8vLzhITmdJQUN5QUVJQUVvQXFRUElnczJBc0FESUFSQndBTnFJUVFDUUFKQUlBdEZCRUFnQUM4QlNrVU5BUXRCQVNFSUlBUWdDVUVCSUF3b0Fod1FCa1VOQVF3RUN5QUVRZi8vL3djMkFnQUxJQTFCQmtrTkFDQUFJQUVnQWlBRklBWWdCeEJXSWdoRkRRRU1BZ3NnQUNBQklBTWdCU0FDSUFjUVZ5SUlEUUVMUVFBaENBc2dDQXVXSFFFSGZ5TUFRUkJySWdja0FDQUJRUUJCcUJBUUJ5RUZJQUFnQjBFRWFoQUNJUUVnQnlnQ0JDRUlBa0FDUUFKQUlBTkJmbW9pQTBFRlN3MEFBa0FnQTBFQmF3NEVBUUVCQVFBTFFRRWhBeUFCRFFJZ0NFRUdhaUlHUVI5TkRRRU1BZ3RCQVNFRElBRU5BU0FJUVFGcUlnWkJIMHNOQVFzZ0JTQUdOZ0lBQWtBZ0JrRWZSZ1JBQTBBZ0FDZ0NDQVJBSUFCQkFSQURSUTBCREFRTEN5QUZRY2dDYWlFR0EwQWdCeUFBUVFnUUF5SUJOZ0lFSUFGQmYwWU5BeUFHSUFFMkFnQWdCa0VFYWlFR0lBbEJBV29pQ1VHQUEwY05BQXNNQVF0QkFpQUdRUVpISUFaQkJra2JJUW9DUUFKQUlBWkJCRWtOQUNBR1FRVkxEUUFnQUNBSFFReHFFQUlOQVNBSEtBSU1JZ0ZCQTBzTkFTQUZJQUUyQXJBQklBQWdCMEVNYWhBQ0RRRWdCeWdDRENJQlFRTkxEUUVnQlNBQk5nSzBBU0FBSUFkQkRHb1FBZzBCSUFjb0Fnd2lBVUVEU3cwQklBVWdBVFlDdUFFZ0FDQUhRUXhxRUFJTkFTQUhLQUlNSWdGQkEwc05BU0FGSUFFMkFyd0JBa0FnQkVFQ1NRMEFJQVpCQlVZTkFDQUFJQWRCREdvZ0JFRUNTeUlCRUJjTkFpQUhLQUlNSWdnZ0JFOE5BaUFGSUFnMkFzQUJJQUFnQjBFTWFpQUJFQmNOQWlBSEtBSU1JZ2dnQkU4TkFpQUZJQWcyQXNRQklBQWdCMEVNYWlBQkVCY05BaUFIS0FJTUlnZ2dCRThOQWlBRklBZzJBc2dCSUFBZ0IwRU1haUFCRUJjTkFpQUhLQUlNSWdFZ0JFOE5BaUFGSUFFMkFzd0JDeUFISUFVb0FyQUJJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93SFFBU0FBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dIU0FTQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVlnQVEwQUN5QUhJQVVvQXJRQklnRkJBazBFZnlBQlFRSjBRZkEwYWlnQ0FBVkJBd3MyQWd4QkFDRUdBMEFnQUNBSFFRaHFFQVVpQXcwQ0lBVWdCa0VDZEdvaUFTQUhLQUlJT3dIZ0FTQUFJQWRCQ0dvUUJTSUREUUlnQVNBSEtBSUlPd0hpQVNBSElBY29BZ3dpQVVGL2FqWUNEQ0FHUVFGcUlRWWdBUTBBQ3lBSElBVW9BcmdCSWdGQkFrMEVmeUFCUVFKMFFmQTBhaWdDQUFWQkF3czJBZ3hCQUNFR0EwQWdBQ0FIUVFocUVBVWlBdzBDSUFVZ0JrRUNkR29pQVNBSEtBSUlPd0h3QVNBQUlBZEJDR29RQlNJRERRSWdBU0FIS0FJSU93SHlBU0FISUFjb0Fnd2lBVUYvYWpZQ0RDQUdRUUZxSVFZZ0FRMEFDeUFISUFVb0Fyd0JJZ0ZCQWswRWZ5QUJRUUowUWZBMGFpZ0NBQVZCQXdzMkFneEJBQ0VHQTBBZ0FDQUhRUWhxRUFVaUF3MENJQVVnQmtFQ2RHb2lBU0FIS0FJSU93R0FBaUFBSUFkQkNHb1FCU0lERFFJZ0FTQUhLQUlJT3dHQ0FpQUhJQWNvQWd3aUFVRi9hallDRENBR1FRRnFJUVpCQUNFRElBRU5BQXNNQVF0QkFDRURJQXBCQWtzTkFBSkFBbjhDUUFKQUFrQWdDa0VCYXc0Q0JBRUFDeUFIUVFBMkFnZ2dCU0FBRUE4aUFVRWZkallDRENBQlFRQk9EUUVnQVVFQmRDRUdRUUFNQWdzZ0JFRUNUd1JBUVFNaEFTQUdRUU5OQkVBZ0JrRUNkRUg4Tkdvb0FnQWhBUXNnQkVFQ1N5RUxRUUVoQXdOQUlBQWdCMEVNYWlBTEVCY05CU0FIS0FJTUlnZ2dCRThOQlNBRklBbEJBblJxSUFnMkFwQUJJQUVpQ0VGL2FpRUJJQWxCQVdvaENTQUlEUUFMQzBFRElRTWdCa0VEVFFSQUlBWkJBblJCL0RScUtBSUFJUU1MUVFBaEJnTkFJQU1oQVNBQUlBZEJDR29RQlNJRERRUWdCU0FHUVFKMGFpSUVJQWNvQWdnN0FhQUJJQUFnQjBFSWFoQUZJZ01OQkNBRUlBY29BZ2c3QWFJQklBRkJmMm9oQXlBR1FRRnFJUVlnQVEwQUMwRUFJUU1NQXdzZ0JTQUJRUngyTmdKTUlBRkJCSFFoQmtFQkN5RURJQVVnQmtFZmRqWUNFQ0FGSUFaQkFFZ0VmeUFHUVFGMEJTQUZJQVpCSEhZMkFsQWdBMEVCYWlFRElBWkJCSFFMSWdGQkgzWTJBaFFnQlNBQlFRQklCSDhnQVVFQmRBVWdCU0FCUVJ4Mk5nSlVJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0lZSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNXQ0FEUVFGcUlRTWdBVUVFZEFzaUFVRWZkallDSENBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBbHdnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWlBZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pnSUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJa0lBVWdBVUVBU0FSL0lBRkJBWFFGSUFVZ0FVRWNkallDWkNBRFFRRnFJUU1nQVVFRWRBc2lBVUVmZGpZQ0tDQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0pvSUFOQkFXb2hBeUFCUVFSMEN5RUdBa0FnQUNBRFFRTnNRUWhxRUF0QmYwWU5BQ0FIUVFFMkFnZ2dCU0FBRUE4aUFVRWZkallDTEFKL0lBRkJBRWdFUUNBQlFRRjBJUVpCQUF3QkN5QUZJQUZCSEhZMkFtd2dBVUVFZENFR1FRRUxJUU1nQlNBR1FSOTJOZ0l3SUFVZ0JrRUFTQVIvSUFaQkFYUUZJQVVnQmtFY2RqWUNjQ0FEUVFGcUlRTWdCa0VFZEFzaUFVRWZkallDTkNBRklBRkJBRWdFZnlBQlFRRjBCU0FGSUFGQkhIWTJBblFnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWpnZ0JTQUJRUUJJQkg4Z0FVRUJkQVVnQlNBQlFSeDJOZ0o0SUFOQkFXb2hBeUFCUVFSMEN5SUJRUjkyTmdJOElBVkJRR3NnQVVFQVNBUi9JQUZCQVhRRklBVWdBVUVjZGpZQ2ZDQURRUUZxSVFNZ0FVRUVkQXNpQVVFZmRqWUNBQ0FGSUFGQkFFZ0VmeUFCUVFGMEJTQUZJQUZCSEhZMkFvQUJJQU5CQVdvaEF5QUJRUVIwQ3lJQlFSOTJOZ0pFSUFVZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNoQUVnQTBFQmFpRURJQUZCQkhRTElnRkJIM1kyQWtnZ0FVRUFTQVIvSUFGQkFYUUZJQVVnQVVFY2RqWUNpQUVnQTBFQmFpRURJQUZCQkhRTElRWWdBQ0FEUVFOc1FRaHFFQXRCZjBZTkFDQUhJQVkyQWd3Z0IwRUNOZ0lJREFFTElBY2dCallDREVFQklRTU1BUXRCQVNFRElBQWdCMEVNYWhBQ0RRQWdCeWdDRENJQlFRTkxEUUFnQlNBQk5nS01BVUVBSVFNTElBTU5BUUpBSUFwQkFVY0VRQ0FBSUFkQkJHb2dDa1VRTFNJRERRTWdCU0FIS0FJRUlnRTJBZ1FnQVVVTkFnd0JDeUFGSUFVb0FnQWlBVUY1YWlJRFFRSjBRWEJ4SWdSQlVHb2dCQ0FEUVF0TEcwRVBRUUFnQVVFU1N4dHlOZ0lFQzBFQklRTWdBQ0FIUVF4cUVBVU5BU0FIS0FJTUlnRkJHbXBCTTBzTkFTQUZJQUUyQWdnZ0JVR1FBbW9oQ0NBRktBSUVJUVFDUUFKQUlBVW9BZ0JCQjBrRVFFRUFJUWxCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FJSUFsQkFuUnFRYmdOYWlBQUlBZ2dDVUVHZEdwQk9Hb2dBaUFKSUFnUURVRVFFQWtpQTBFUWRqWUNBQ0FEUVE5eERRUWdDQ0FKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FJSUFsQkFYSWlCa0VDZEdwQnVBMXFJQUFnQ0NBR1FRWjBha0U0YWlBQ0lBWWdDQkFOUVJBUUNTSURRUkIyTmdJQUlBTkJEM0VOQkNBSUlBWkJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBZ2dDVUVDY2lJR1FRSjBha0c0RFdvZ0FDQUlJQVpCQm5ScVFUaHFJQUlnQmlBSUVBMUJFQkFKSWdOQkVIWTJBZ0FnQTBFUGNRMEVJQWdnQmtFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQ0NBSlFRTnlJZ1pCQW5ScVFiZ05haUFBSUFnZ0JrRUdkR3BCT0dvZ0FpQUdJQWdRRFVFUUVBa2lBMEVRZGpZQ0FDQURRUTl4RFFRZ0JTQUdRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc01BUXRCQUNFSklBQWdCVUhJRG1vZ0FrRUFJQWdRRFVFUUVBa2lBMEVQY1EwQklBVWdBMEVFZGtIL0FYRTdBY0FDSUFWQmtBSnFJUVpCQXlFREEwQWdBeUVCSUFSQkFYRUVRQ0FHSUFsQkFuUnFRYmdOYWlBQUlBWWdDVUVHZEdwQlBHb2dBaUFKSUFnUURVRVBFQWtpQTBFUGRqWUNBQ0FEUVE5eERRTWdCaUFKUVFGMGFpQURRUVIyUWY4QmNUc0JBQ0FHSUFsQkFYSWlDa0VDZEdwQnVBMXFJQUFnQmlBS1FRWjBha0U4YWlBQ0lBb2dDQkFOUVE4UUNTSURRUTkyTmdJQUlBTkJEM0VOQXlBR0lBcEJBWFJxSUFOQkJIWkIvd0Z4T3dFQUlBWWdDVUVDY2lJS1FRSjBha0c0RFdvZ0FDQUdJQXBCQm5ScVFUeHFJQUlnQ2lBSUVBMUJEeEFKSWdOQkQzWTJBZ0FnQTBFUGNRMERJQVlnQ2tFQmRHb2dBMEVFZGtIL0FYRTdBUUFnQmlBSlFRTnlJZ3BCQW5ScVFiZ05haUFBSUFZZ0NrRUdkR3BCUEdvZ0FpQUtJQWdRRFVFUEVBa2lBMEVQZGpZQ0FDQURRUTl4RFFNZ0JTQUtRUUYwYWlBRFFRUjJRZjhCY1RzQmtBSUxJQVJCQVhZaEJDQUJRWDlxSVFNZ0NVRUVhaUVKSUFFTkFBc0xJQVJCQTNFRVFDQUFJQVZCaUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIQ0FpQUFJQVZCbUE5cVFYOUJCQkFKSWdOQkQzRU5BU0FGSUFOQkJIWkIvd0Z4T3dIRUFndEJBQ0VESUFSQkFuRkZEUUFnQUNBRlFjd0thaUFDUVJBZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCaUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzQUlnQUNBRlFZd0xhaUFDUVJFZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCakJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0JzZ0lnQUNBRlFjd0xhaUFDUVJJZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCa0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0QUlnQUNBRlFZd01haUFDUVJNZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J0Z0lnQUNBRlFjd01haUFDUVJRZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbUJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1QUlnQUNBRlFZd05haUFDUVJVZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCbkJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J1Z0lnQUNBRlFjd05haUFDUVJZZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCb0JCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2QUlnQUNBRlFZd09haUFDUVJjZ0NCQU5RUThRQ1NJQlFROXhCRUFnQVNFRERBRUxJQVZCcEJCcUlBRkJEM1kyQWdBZ0JTQUJRUVIyUWY4QmNUc0J2Z0lMSUFBZ0FDZ0NDQ0FBS0FJRUlBQW9BZ0JyUVFOMGFqWUNFQ0FERFFFTFFRQWhBd3NnQjBFUWFpUUFJQU1McFJRQkRIOENmeUFBS0FMSUFTSUhCRUFnQUNnQ0JDQUhLQUlFUmd3QkMwRUFDeUVLQWtBZ0JrVU5BQ0FLUlEwQVFRQWdDa0VDSUFBb0FzZ0JLQUlBSWdkQkJrY2dCMEVHU1J0QkFrWWJJUW9MQW44Z0FDZ0N6QUVpQndSQUlBQW9BZ1FnQnlnQ0JFWU1BUXRCQUFzaEJ3SkFJQVpGRFFBZ0IwVU5BRUVBSUFkQkFpQUFLQUxNQVNnQ0FDSUhRUVpISUFkQkJra2JRUUpHR3lFSEN3Si9JQUFvQXRRQklna0VRQ0FBS0FJRUlBa29BZ1JHREFFTFFRQUxJUWtDUUNBR1JRMEFJQWxGRFFCQkFpQUFLQUxVQVNnQ0FDSUFRUVpISUFCQkJra2JRUUpISVFrTElBcEJBRWNnQjBFQVIzRWlEU0FKUVFCSGNTRU9JQVZCQWtzaEQwRVFJUXNEUUFKQUlBOUZCRUFDUUFKQUFrQWdCVUVCYXc0Q0FRSUFDeUFCQW44Z0RRUkFJQVF0QUFNZ0JDMEFBaUFFTFFBQklBUXRBQUFnQXkwQUJDQURMUUFESUFNdEFBRWdBeTBBQW1wcWFtcHFhbXBCQkdwQkEzWWhCaUFETFFBSUlBTXRBQWNnQXkwQUJTQURMUUFHYW1wcVFRSnFRUUoyREFFTElBY0VRQ0FETFFBRUlBTXRBQU1nQXkwQUFTQURMUUFDYW1wcVFRSnFRUUoySVFZZ0F5MEFDQ0FETFFBSElBTXRBQVVnQXkwQUJtcHFha0VDYWtFQ2Rnd0JDeUFLUlFSQVFZQUJJUVpCZ0FFTUFRc2dCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYWtFQ2FrRUNkaUlHQzBIL0FYRkJnWUtFQ0d3aUFEWUFIQ0FCSUFaQi93RnhRWUdDaEFoc0lnWTJBQmdnQVNBQU5nQVVJQUVnQmpZQUVDQUJJQUEyQUF3Z0FTQUdOZ0FJSUFFZ0FEWUFCQ0FCSUFZMkFBQUNmeUFLQkVBZ0JDMEFCeUFFTFFBR0lBUXRBQVVnQkMwQUJHcHFhaUlHUVFKcVFRSjJJZ0FnQjBVTkFSb2dBeTBBQ0NBRExRQUhJQU10QUFZZ0JpQURMUUFGYW1wcWFrRUVha0VEZGd3QkN5QUhSUVJBUVlBQklRQkJnQUVNQVFzZ0F5MEFCQ0FETFFBRElBTXRBQUVnQXkwQUFtcHFha0VDYWtFQ2RpRUFJQU10QUFnZ0F5MEFCeUFETFFBRklBTXRBQVpxYW1wQkFtcEJBbllMSVFZZ0FTQUFRZjhCY1VHQmdvUUliQ0lBTmdBZ0lBRWdCa0gvQVhGQmdZS0VDR3dpQmpZQVBDQUJJQUEyQURnZ0FTQUdOZ0EwSUFFZ0FEWUFNQ0FCSUFZMkFDd2dBU0FBTmdBb0lBRWdCallBSkF3REN5QUtSUVJBUVFFUEN5QUJJQVF0QUFBNkFBQWdBU0FFTFFBQU9nQUJJQUVnQkMwQUFEb0FBaUFCSUFRdEFBQTZBQU1nQVNBRUxRQUFPZ0FFSUFFZ0JDMEFBRG9BQlNBQklBUXRBQUE2QUFZZ0FTQUVMUUFBT2dBSElBRWdCQzBBQVRvQUNDQUJJQVF0QUFFNkFBa2dBU0FFTFFBQk9nQUtJQUVnQkMwQUFUb0FDeUFCSUFRdEFBRTZBQXdnQVNBRUxRQUJPZ0FOSUFFZ0JDMEFBVG9BRGlBQklBUXRBQUU2QUE4Z0FTQUVMUUFDT2dBUUlBRWdCQzBBQWpvQUVTQUJJQVF0QUFJNkFCSWdBU0FFTFFBQ09nQVRJQUVnQkMwQUFqb0FGQ0FCSUFRdEFBSTZBQlVnQVNBRUxRQUNPZ0FXSUFFZ0JDMEFBam9BRnlBQklBUXRBQU02QUJnZ0FTQUVMUUFET2dBWklBRWdCQzBBQXpvQUdpQUJJQVF0QUFNNkFCc2dBU0FFTFFBRE9nQWNJQUVnQkMwQUF6b0FIU0FCSUFRdEFBTTZBQjRnQVNBRUxRQURPZ0FmSUFFZ0JDMEFCRG9BSUNBQklBUXRBQVE2QUNFZ0FTQUVMUUFFT2dBaUlBRWdCQzBBQkRvQUl5QUJJQVF0QUFRNkFDUWdBU0FFTFFBRU9nQWxJQUVnQkMwQUJEb0FKaUFCSUFRdEFBUTZBQ2NnQVNBRUxRQUZPZ0FvSUFFZ0JDMEFCVG9BS1NBQklBUXRBQVU2QUNvZ0FTQUVMUUFGT2dBcklBRWdCQzBBQlRvQUxDQUJJQVF0QUFVNkFDMGdBU0FFTFFBRk9nQXVJQUVnQkMwQUJUb0FMeUFCSUFRdEFBWTZBREFnQVNBRUxRQUdPZ0F4SUFFZ0JDMEFCam9BTWlBQklBUXRBQVk2QURNZ0FTQUVMUUFHT2dBMElBRWdCQzBBQmpvQU5TQUJJQVF0QUFZNkFEWWdBU0FFTFFBR09nQTNJQUVnQkMwQUJ6b0FPQ0FCSUFRdEFBYzZBRGtnQVNBRUxRQUhPZ0E2SUFFZ0JDMEFCem9BT3lBQklBUXRBQWM2QUR3Z0FTQUVMUUFIT2dBOUlBRWdCQzBBQnpvQVBpQUJJQVF0QUFjNkFEOE1BZ3NnQjBVRVFFRUJEd3NnQVNBRExRQUJPZ0FBSUFFZ0F5MEFBVG9BQ0NBQklBTXRBQUU2QUJBZ0FTQURMUUFCT2dBWUlBRWdBeTBBQVRvQUlDQUJJQU10QUFFNkFDZ2dBU0FETFFBQk9nQXdJQUVnQXkwQUFUb0FPQ0FCSUFNdEFBSTZBQUVnQVNBRExRQUNPZ0FKSUFFZ0F5MEFBam9BRVNBQklBTXRBQUk2QUJrZ0FTQURMUUFDT2dBaElBRWdBeTBBQWpvQUtTQUJJQU10QUFJNkFERWdBU0FETFFBQ09nQTVJQUVnQXkwQUF6b0FBaUFCSUFNdEFBTTZBQW9nQVNBRExRQURPZ0FTSUFFZ0F5MEFBem9BR2lBQklBTXRBQU02QUNJZ0FTQURMUUFET2dBcUlBRWdBeTBBQXpvQU1pQUJJQU10QUFNNkFEb2dBU0FETFFBRU9nQURJQUVnQXkwQUJEb0FDeUFCSUFNdEFBUTZBQk1nQVNBRExRQUVPZ0FiSUFFZ0F5MEFCRG9BSXlBQklBTXRBQVE2QUNzZ0FTQURMUUFFT2dBeklBRWdBeTBBQkRvQU95QUJJQU10QUFVNkFBUWdBU0FETFFBRk9nQU1JQUVnQXkwQUJUb0FGQ0FCSUFNdEFBVTZBQndnQVNBRExRQUZPZ0FrSUFFZ0F5MEFCVG9BTENBQklBTXRBQVU2QURRZ0FTQURMUUFGT2dBOElBRWdBeTBBQmpvQUJTQUJJQU10QUFZNkFBMGdBU0FETFFBR09nQVZJQUVnQXkwQUJqb0FIU0FCSUFNdEFBWTZBQ1VnQVNBRExRQUdPZ0F0SUFFZ0F5MEFCam9BTlNBQklBTXRBQVk2QUQwZ0FTQURMUUFIT2dBR0lBRWdBeTBBQnpvQURpQUJJQU10QUFjNkFCWWdBU0FETFFBSE9nQWVJQUVnQXkwQUJ6b0FKaUFCSUFNdEFBYzZBQzRnQVNBRExRQUhPZ0EySUFFZ0F5MEFCem9BUGlBQklBTXRBQWc2QUFjZ0FTQURMUUFJT2dBUElBRWdBeTBBQ0RvQUZ5QUJJQU10QUFnNkFCOGdBU0FETFFBSU9nQW5JQUVnQXkwQUNEb0FMeUFCSUFNdEFBZzZBRGNnQVNBRExRQUlPZ0EvREFFTElBNUZCRUJCQVE4TElBTXRBQVVnQXkwQUEyc2dBeTBBQmlBRExRQUNhMEVCZEdvZ0F5MEFCeUFETFFBQmEwRURiR29nQXkwQUNDSUFJQU10QUFBaUNXdEJBblJxUVJGc1FSQnFRUVYxSWdaQmZXd2hFQ0FBSUFRdEFBY2lER3BCQkhRZ0JDMEFCQ0FFTFFBQ2F5QU1JQWxyUVFKMGFpQUVMUUFGSUFRdEFBRnJRUUYwYWlBRUxRQUdJQVF0QUFCclFRTnNha0VSYkVFUWFrRUZkU0lSUVgxc2FrRVFhaUVKUVFnaERDQUJJUUFEUUNBQUlBa2dFR29pQ0VFRmRVR3dMbW90QUFBNkFBQWdBQ0FHSUFocUlnaEJCWFZCc0M1cUxRQUFPZ0FCSUFBZ0JpQUlhaUlJUVFWMVFiQXVhaTBBQURvQUFpQUFJQVlnQ0dvaUNFRUZkVUd3TG1vdEFBQTZBQU1nQUNBR0lBaHFJZ2hCQlhWQnNDNXFMUUFBT2dBRUlBQWdCaUFJYWlJSVFRVjFRYkF1YWkwQUFEb0FCU0FBSUFZZ0NHb2lDRUVGZFVHd0xtb3RBQUE2QUFZZ0FDQUdJQWhxUVFWMVFiQXVhaTBBQURvQUJ5QUpJQkZxSVFrZ0FFRUlhaUVBSUF4QmYyb2lEQTBBQ3dzZ0FTQUNJQXNRQ0NBQklBSkJRR3NnQzBFQmNoQUlJQUVnQWtHQUFXb2dDMEVDY2hBSUlBRWdBa0hBQVdvZ0MwRURjaEFJSUFKQmdBSnFJUUlnQkVFSWFpRUVJQU5CQ1dvaEF5QUJRVUJySVFFZ0MwRUVhaUVMSUJKQkFXb2lFa0VDUncwQUMwRUFDNkVWQWhoL0FuNENmd05BQW44Z0FDSUlJQlpCQTNSQnNEVnFLUUlBSWg2bkVCRWlDU0lHQkVBZ0NDZ0NCQ0FHS0FJRVJnd0JDMEVBQ3lFTkFrQWdCVVVOQUNBTlJRMEFRUUFnRFVFQ0lBa29BZ0FpQmtFR1J5QUdRUVpKRzBFQ1Joc2hEUXNDZnlBSUlCWkJBM1JCOERacUtRSUFJaCtuRUJFaUJ5SUdCRUFnQ0NnQ0JDQUdLQUlFUmd3QkMwRUFDeUVQQWtBZ0JVVU5BQ0FQUlEwQVFRQWdEMEVDSUFjb0FnQWlCa0VHUnlBR1FRWkpHMEVDUmhzaER3dEJBaUVNSUExQkFFY2dEMEVBUjNFaUVrRUJSZ1JBUVFJaEJnSi9RUUlnQ1NnQ0FDSUxRUVpISUF0QkJra2JSUVJBSUFrZ0hrSWdpS2RCL3dGeGFpMEFVaUVHQ3lBR0N3Si9RUUlnQnlnQ0FDSUpRUVpISUFsQkJra2JSUVJBSUFjZ0gwSWdpS2RCL3dGeGFpMEFVaUVNQ3lBTUN5QUdJQXhKR3lFTUN5QUNJQlpCQW5RaUNXb2lCaWdDREVVRVFDQUdLQUpNSWdZZ0JpQU1UMm9oREFzZ0NDQVdhaUFNT2dCU0FuOGdDQ0FXUVFOMFFiQTRhaWdDQUJBUklnWWlCd1JBSUFnb0FnUWdCeWdDQkVZTUFRdEJBQXNoRGdKQUlBVkZEUUFnRGtVTkFFRUFJQTVCQWlBR0tBSUFJZ1pCQmtjZ0JrRUdTUnRCQWtZYklRNExBbjhnQUNBV1FRTjBRZkE1YWlnQ0FCQVJJZ2dpQmdSQUlBQW9BZ1FnQmlnQ0JFWU1BUXRCQUFzaEVRSkFJQVZGRFFBZ0VVVU5BRUVBSUJGQkFpQUlLQUlBSWdoQkJrY2dDRUVHU1J0QkFrWWJJUkVMSUFsQjhDbHFLQUlBSVJjZ0NVR3dLV29vQWdBaEdBSi9RWVVLSUJaMlFRRnhJaHdFUUNBWFFRTnFJUWNnQkNBWGFpSUlRUUpxSVFZZ0NFRUJhaUVMSUFRTUFRc2dGMEVFZENBWWFpSUlRUzlxSVFjZ0FTQUlhaUlJUVI5cUlRWWdDRUVQYWlFTElBaEJmMm9oQ0NBQkN5RUpJQWNnQ1dvdEFBQWhDaUFHTFFBQUlSQWdDeTBBQUNFVElBZ3RBQUFoRkFKQVFUTWdGblpCQVhFRVFDQURJQmhxSWdjdEFBZ2hHeUFITFFBSElSa2dCeTBBQmlFVklBY3RBQVVoR2lBSExRQUVJUVlnQnkwQUF5RUxJQWN0QUFJaENTQUhMUUFCSVFnTUFRc2dBU0FYUVg5cUloMUJCSFFnR0dwcUlnY3RBQUFoQ0NBSExRQUhJUnNnQnkwQUJpRVpJQWN0QUFVaEZTQUhMUUFFSVJvZ0J5MEFBeUVHSUFjdEFBSWhDeUFITFFBQklRa2dIQVJBSUFRZ0hXb2hCd3dCQ3lBSFFYOXFJUWNMQWtBZ0RFRUhUUVJBSUFjdEFBQWhCd0pBQWtBQ1FBSkFBa0FDUUFKQUFrQWdERUVCYXc0SEFRSURCQVVHQndBTElBOUZCRUJCQVE4TElBaEIvd0Z4SUF0Qi93RnhRUkIwSUFaQkdIUnljaUFKUWY4QmNVRUlkSEloRlNBSUlnd2hEU0FKSWc0aEVpQUxJZzhoQ2lBR0loRWhCd3dJQ3lBTlJRUkFRUUVQQ3lBS1FZR0NoQWhzSVJVZ0VFR0Jnb1FJYkNJTlFSaDJJUWNnRFVFUWRpRUtJQTFCQ0hZaEVpQVRRWUdDaEFoc0lneEJHSFloRVNBTVFSQjJJUThnREVFSWRpRU9JQlJCZ1lLRUNHd2lDRUVZZGlFR0lBaEJFSFloQ3lBSVFRaDJJUWtNQndzQ2Z5QVRJQlJxSUFwcUlCQnFJQVpCL3dGeGFpQUxRZjhCY1dvZ0NVSC9BWEZxSUFoQi93Rnhha0VFYWtFRGRpQVNEUUFhSUJNZ0ZHb2dDbW9nRUdwQkFtcEJBbllnRFEwQUdrR0FBU0FQUlEwQUdpQUdRZjhCY1NBTFFmOEJjV29nQ1VIL0FYRnFJQWhCL3dGeGFrRUNha0VDZGdzaUNFR0Jnb1FJYkNFVklBZ2lDU0lMSWdZaURDSU9JZzhpRVNJTkloSWlDaUVIREFZTElBOUZCRUJCQVE4TElBWkIvd0Z4SWcxQkFtb2lFU0FWSUFZZ0RodEIvd0Z4SWdkcUlCb2dCaUFPRzBIL0FYRWlDa0VCZEdwQkFuWWlEeUFaSUFZZ0RodEIvd0Z4SWd3Z0d5QUdJQTRiUWY4QmNTSUdRUU5zYWtFV2RFR0FnSUFFYWtHQWdJQjRjWElnQ2lBTWFpQUhRUUYwYWtFQ2FpSVFRUVowUVlEK0EzRnlJQVlnQjJvZ0RFRUJkR3BCQW1vaUJrRU9kRUdBZ1B3SGNYSWhGU0FHUVFKMklRY2dDMEgvQVhFaUJrRUNhaUlMSUFoQi93RnhhaUFKUWY4QmNTSUpRUUYwYWtFQ2RpRUlJQWtnRVdvZ0JrRUJkR3BCQW5ZaUNTRU1JQW9nQzJvZ0RVRUJkR3BCQW5ZaUN5RU9JQXNoRFNBUElnWWhFaUFRUVFKMkloRWhDZ3dGQzBFQklCRkZJQkpCQVhOeURRWWFJQlFnRTBFQmRHb2dFR3BCQW1vaURrRUdkRUdBL2dOeElBb2dFMEVDYWlJUGFpQVFRUUYwYWtFQ2RuSWdDRUgvQVhFaUNrRUNhaUlNSUJScUlBZEJBWFJxUVFKMklnaEJHSFJ5SUE4Z0ZFRUJkR29nQjJvaUVFRU9kRUdBZ1B3SGNYSWhGU0FKUWY4QmNTSVJRUUpxSWdrZ0JrSC9BWEZxSUF0Qi93RnhJZ3RCQVhScVFRSjJJUVlnRGtFQ2RpRU5JQWtnQ2tFQmRHb2dCMnBCQW5ZaUNTRVBJQkZCQVhRZ0Myb2dER3BCQW5ZaUN5RVJJQkJCQW5ZaURDRVNJQWdpRGlFS0lBa2hCd3dFQzBFQklCRkZJQkpCQVhOeURRVWFJQWhCL3dGeElncEJBbW9pRGlBTFFmOEJjU0lJSUFsQi93RnhJZ3RCQVhScWFrRUNkaUlQUVJoMElCUWdFMEVCZEdvZ0VHcEJBbXBCQW5aeUlBNGdGR29nQjBFQmRHb2lDVUVHZEVHQS9nTnhjaUFMUVFKcUlnNGdDa0VCZEdvZ0Iyb2lEVUVPZEVHQWdQd0hjWEloRlNBSVFRRnFJaEFnQmtIL0FYRWlER3BCQVhZaEJpQU1JQTVxSUFoQkFYUnFRUUoySVJFZ0NVRUNkaUVNSUExQkFuWWhEaUFUSUJSQkFYUnFJQWRxUVFKcVFRSjJJUTBnQnlBS2FrRUJha0VCZGlJSUlSSWdDaUFMYWtFQmFrRUJkaUlKSVFvZ0N5QVFha0VCZGlJTElRY01Bd3RCQVNBUlJTQVNRUUZ6Y2cwRUdpQVRRUUpxSWc0Z0Ntb2dFRUVCZEdwQkJuUkJnUDREY1NBUUlCTnFRUUZxSWc5QkQzUkJnSUQ4QjNFZ0ZFRUNhaUlNSUJOQkFYUnFJQkJxUVFKMkloSkJHSFJ5SUFvZ0VHcEJBV3BCQVhaeWNpRVZJQWhCL3dGeElnZ2dDMEgvQVhGcUlBbEIvd0Z4SWdsQkFYUnFRUUpxUVFKMklRWWdDU0FJUVFGMGFpQUhha0VDYWtFQ2RpRUxJQTlCQVhZaERTQUlJQXhxSUFkQkFYUnFRUUoySWhFaENTQVVRUUZxSWdvZ0IycEJBWFlpQ0NFUElBb2dFMnBCQVhZaURDRUtJQTRnRkVFQmRHb2dCMnBCQW5ZaURpRUhEQUlMSUE5RkJFQkJBUThMSUJvZ0JpQU9HMEgvQVhFaUNpQVpJQVlnRGh0Qi93RnhhaUFWSUFZZ0RodEIvd0Z4SWdkQkFYUnFRUlowSUF0Qi93RnhJZ3RCQW1vaURDQUthaUFHUWY4QmNTSUdRUUYwYWlJUFFRWjBja0dBZ0lBRWFrR0Evb040Y1NBR1FRSnFJZzBnQ1VIL0FYRWlDV29nQzBFQmRHcEJBbllpRG5JZ0J5QU5haUFLUVFGMGFpSU5RUTUwUVlDQS9BZHhjaUVWSUFjZ0NtcEJBV3BCQVhZaEJ5QU5RUUoySVJFZ0NTQUlRZjhCY1NJTmFrRUJha0VCZGlFSUlBOUJBblloRHlBTUlBMXFJQWxCQVhScVFRSjJJUXdnQ1NBTGFrRUJha0VCZGlJSklRMGdCa0VCYWlJR0lBdHFRUUYySWdzaEVpQUdJQXBxUVFGMklnWWhDZ3dCQ3lBTlJRUkFRUUVQQ3lBS1FRaDBJQXB5SUFwQkVIUnlJQXBCR0hSeUlSVWdFRUVDYWlJSElCUnFJQk5CQVhScVFRSjJJUWtnRTBFQmFpSUdJQlJxUVFGMklRZ2dCaUFRYWtFQmRpSUxJUXdnQ2lBVGFpQVFRUUYwYWtFQ2FrRUNkaUlHSVE0Z0NpQVFha0VCYWtFQmRpSVBJUTBnQnlBS1FRTnNha0VDZGlJUklSSWdDaUVIQ3lBQklCZEJCSFFnR0dwcUloQWdGVFlDTUNBUUlBMUIvd0Z4SUJKQi93RnhRUWgwY2lBS1FmOEJjVUVRZEhJZ0IwRVlkSEkyQWlBZ0VDQU1RZjhCY1NBT1FmOEJjVUVJZEhJZ0QwSC9BWEZCRUhSeUlCRkJHSFJ5TmdJUUlCQWdDRUgvQVhFZ0NVSC9BWEZCQ0hSeUlBdEIvd0Z4UVJCMGNpQUdRUmgwY2pZQ0FDQUJJQUlnRmtFR2RHcEJ5QUpxSUJZUUNDQVdRUUZxSWhaQkVFY05BQXRCQUFzTHhSSUJFSDhDZnlBQUtBTElBU0lIQkVBZ0FDZ0NCQ0FIS0FJRVJnd0JDMEVBQ3lFSEFrQWdCVVVOQUNBSFJRMEFRUUFnQjBFQ0lBQW9Bc2dCS0FJQUlnZEJCa2NnQjBFR1NSdEJBa1liSVFjTEFuOGdBQ2dDekFFaUNBUkFJQUFvQWdRZ0NDZ0NCRVlNQVF0QkFBc2hDQUpBSUFWRkRRQWdDRVVOQUVFQUlBaEJBaUFBS0FMTUFTZ0NBQ0lJUVFaSElBaEJCa2tiUVFKR0d5RUlDd0ovSUFBb0F0UUJJZ2tFUUNBQUtBSUVJQWtvQWdSR0RBRUxRUUFMSVFrQ1FDQUZSUTBBSUFsRkRRQkJBaUFBS0FMVUFTZ0NBQ0lGUVFaSElBVkJCa2tiUVFKSElRa0xBa0FDUUNBQUtBSUFRUUZxUVFOeElnQkJBazBFUUFKQUFrQUNRQ0FBUVFGckRnSUJBZ0FMSUFoRkJFQkJBUThMUVFBaEJTQUJJUUFEUUNBQUlBTXRBQUU2QUFBZ0FDQURMUUFDT2dBQklBQWdBeTBBQXpvQUFpQUFJQU10QUFRNkFBTWdBQ0FETFFBRk9nQUVJQUFnQXkwQUJqb0FCU0FBSUFNdEFBYzZBQVlnQUNBRExRQUlPZ0FISUFBZ0F5MEFDVG9BQ0NBQUlBTXRBQW82QUFrZ0FDQURMUUFMT2dBS0lBQWdBeTBBRERvQUN5QUFJQU10QUEwNkFBd2dBQ0FETFFBT09nQU5JQUFnQXkwQUR6b0FEaUFBSUFNdEFCQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3REN5QUhSUVJBUVFFUEMwRUFJUVVnQVNFQUEwQWdBQ0FFSUFWcUlnTXRBQUE2QUFBZ0FDQURMUUFBT2dBQklBQWdBeTBBQURvQUFpQUFJQU10QUFBNkFBTWdBQ0FETFFBQU9nQUVJQUFnQXkwQUFEb0FCU0FBSUFNdEFBQTZBQVlnQUNBRExRQUFPZ0FISUFBZ0F5MEFBRG9BQ0NBQUlBTXRBQUE2QUFrZ0FDQURMUUFBT2dBS0lBQWdBeTBBQURvQUN5QUFJQU10QUFBNkFBd2dBQ0FETFFBQU9nQU5JQUFnQXkwQUFEb0FEaUFBSUFNdEFBQTZBQThnQUVFUWFpRUFJQVZCQVdvaUJVRVFSdzBBQ3d3Q0N5QUJBbjhDUUNBSFJRMEFJQWhGRFFBZ0JDMEFEeUFETFFBUUlBUXRBQTRnQXkwQUR5QUVMUUFOSUFNdEFBNGdCQzBBRENBRExRQU5JQVF0QUFzZ0F5MEFEQ0FFTFFBS0lBTXRBQXNnQkMwQUNTQURMUUFLSUFRdEFBZ2dBeTBBQ1NBRUxRQUhJQU10QUFnZ0JDMEFCaUFETFFBSElBUXRBQVVnQXkwQUJpQUVMUUFFSUFNdEFBVWdCQzBBQXlBRExRQUVJQVF0QUFJZ0F5MEFBeUFFTFFBQklBTXRBQUlnQXkwQUFTQUVMUUFBYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFtcHFhbXBxYW1wcWFrRVFha0VGZGd3QkN5QUhCRUFnQkMwQUR5QUVMUUFPSUFRdEFBMGdCQzBBRENBRUxRQUxJQVF0QUFvZ0JDMEFDU0FFTFFBSUlBUXRBQWNnQkMwQUJpQUVMUUFGSUFRdEFBUWdCQzBBQXlBRUxRQUNJQVF0QUFBZ0JDMEFBV3BxYW1wcWFtcHFhbXBxYW1wcWFrRUlha0VFZGd3QkMwR0FBU0FJUlEwQUdpQURMUUFRSUFNdEFBOGdBeTBBRGlBRExRQU5JQU10QUF3Z0F5MEFDeUFETFFBS0lBTXRBQWtnQXkwQUNDQURMUUFISUFNdEFBWWdBeTBBQlNBRExRQUVJQU10QUFNZ0F5MEFBU0FETFFBQ2FtcHFhbXBxYW1wcWFtcHFhbXBxUVFocVFRUjJDMEdBQWhBSEdnd0JDMEVCSVFBZ0IwVU5BU0FJUlEwQklBbEZEUUVnQkMwQUNDQUVMUUFHYXlBRUxRQVBJZ0FnQXkwQUFDSUZhMEVEZEdvZ0JDMEFDU0FFTFFBRmEwRUJkR29nQkMwQUNpQUVMUUFFYTBFRGJHb2dCQzBBQ3lBRUxRQURhMEVDZEdvZ0JDMEFEQ0FFTFFBQ2EwRUZiR29nQkMwQURTQUVMUUFCYTBFR2JHb2dCQzBBRGlBRUxRQUFhMEVIYkdwQkJXeEJJR3BCQm5VaEJ5QURMUUFKSUFNdEFBZHJJQU10QUFvZ0F5MEFCbXRCQVhScUlBTXRBQXNnQXkwQUJXdEJBMnhxSUFNdEFBd2dBeTBBQkd0QkFuUnFJQU10QUEwZ0F5MEFBMnRCQld4cUlBTXRBQTRnQXkwQUFtdEJCbXhxSUFNdEFBOGdBeTBBQVd0QkIyeHFJQU10QUJBaUF5QUZhMEVEZEdwQkJXeEJJR3BCQm5VaUJFRURkQ0VJSUFSQkIyd2hDU0FFUVFac0lRb2dCRUVGYkNFTElBUkJBMndoRENBRVFYMXNJUTBnQkVGN2JDRU9JQVJCZW13aER5QUVRWGxzSVJCQkFDQUVRUUYwSWhGcklSSkJBQ0FFUVFKMEloTnJJUlFnQUNBRGFrRUVkRUVRYWlFVlFRQWhCUU5BSUFFZ0JVRUVkQ0lBYWlBVklBVkJlV29nQjJ4cUlnTWdFR3BCQlhVaUJrSC9BU0FHUWY4QlNCc2lCa0VBSUFaQkFFb2JPZ0FBSUFFZ0FFRUJjbW9nQXlBUGFrRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFKeWFpQURJQTVxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJBM0pxSUFNZ0ZHcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFRWNtb2dBeUFOYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUVZ5YWlBRElCSnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkJuSnFJQU1nQkd0QkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVIY21vZ0EwRUZkU0lHUWY4QklBWkIvd0ZJR3lJR1FRQWdCa0VBU2hzNkFBQWdBU0FBUVFoeWFpQURJQVJxUVFWMUlnWkIvd0VnQmtIL0FVZ2JJZ1pCQUNBR1FRQktHem9BQUNBQklBQkJDWEpxSUFNZ0VXcEJCWFVpQmtIL0FTQUdRZjhCU0JzaUJrRUFJQVpCQUVvYk9nQUFJQUVnQUVFS2Ntb2dBeUFNYWtFRmRTSUdRZjhCSUFaQi93RklHeUlHUVFBZ0JrRUFTaHM2QUFBZ0FTQUFRUXR5YWlBRElCTnFRUVYxSWdaQi93RWdCa0gvQVVnYklnWkJBQ0FHUVFCS0d6b0FBQ0FCSUFCQkRISnFJQU1nQzJwQkJYVWlCa0gvQVNBR1FmOEJTQnNpQmtFQUlBWkJBRW9iT2dBQUlBRWdBRUVOY21vZ0F5QUtha0VGZFNJR1FmOEJJQVpCL3dGSUd5SUdRUUFnQmtFQVNoczZBQUFnQVNBQVFRNXlhaUFESUFscVFRVjFJZ1pCL3dFZ0JrSC9BVWdiSWdaQkFDQUdRUUJLR3pvQUFDQUJJQUJCRDNKcUlBTWdDR3BCQlhVaUFFSC9BU0FBUWY4QlNCc2lBRUVBSUFCQkFFb2JPZ0FBSUFWQkFXb2lCVUVRUncwQUN3dEJBQ0VBSUFFZ0FrRUFFQWdnQVNBQ1FVQnJRUUVRQ0NBQklBSkJnQUZxUVFJUUNDQUJJQUpCd0FGcVFRTVFDQ0FCSUFKQmdBSnFRUVFRQ0NBQklBSkJ3QUpxUVFVUUNDQUJJQUpCZ0FOcVFRWVFDQ0FCSUFKQndBTnFRUWNRQ0NBQklBSkJnQVJxUVFnUUNDQUJJQUpCd0FScVFRa1FDQ0FCSUFKQmdBVnFRUW9RQ0NBQklBSkJ3QVZxUVFzUUNDQUJJQUpCZ0FacVFRd1FDQ0FCSUFKQndBWnFRUTBRQ0NBQklBSkJnQWRxUVE0UUNDQUJJQUpCd0FkcVFROFFDQXNnQUF1N0NBRUhmd0pBSUFORkRRQWdBQ2dDQUNBRElBQW9BZ1FpQlc0aUNDQUZiQ0lFUVFoMGFpQURJQVJySWdkQkJIUnFJUVlnQlVFRWRDRUVJQUFvQWdnaENTQUZJQU5MSWdwRkJFQWdBU0FHSUFSQkFYSnJJZ010QUFBNkFBQWdBU0FETFFBQk9nQUJJQUVnQXkwQUFqb0FBaUFCSUFNdEFBTTZBQU1nQVNBRExRQUVPZ0FFSUFFZ0F5MEFCVG9BQlNBQklBTXRBQVk2QUFZZ0FTQURMUUFIT2dBSElBRWdBeTBBQ0RvQUNDQUJJQU10QUFrNkFBa2dBU0FETFFBS09nQUtJQUVnQXkwQUN6b0FDeUFCSUFNdEFBdzZBQXdnQVNBRExRQU5PZ0FOSUFFZ0F5MEFEam9BRGlBQklBTXRBQTg2QUE4Z0FTQURMUUFRT2dBUUlBRWdBeTBBRVRvQUVTQUJJQU10QUJJNkFCSWdBU0FETFFBVE9nQVRJQUVnQXkwQUZEb0FGQ0FCUVJWcUlRRUxJQWNFUUNBQ0lBWkJmMm9pQXkwQUFEb0FBQ0FDSUFNZ0JHb2lBeTBBQURvQUFTQUNJQU1nQkdvaUF5MEFBRG9BQWlBQ0lBTWdCR29pQXkwQUFEb0FBeUFDSUFNZ0JHb2lBeTBBQURvQUJDQUNJQU1nQkdvaUF5MEFBRG9BQlNBQ0lBTWdCR29pQXkwQUFEb0FCaUFDSUFNZ0JHb2lBeTBBQURvQUJ5QUNJQU1nQkdvaUF5MEFBRG9BQ0NBQ0lBTWdCR29pQXkwQUFEb0FDU0FDSUFNZ0JHb2lBeTBBQURvQUNpQUNJQU1nQkdvaUF5MEFBRG9BQ3lBQ0lBTWdCR29pQXkwQUFEb0FEQ0FDSUFNZ0JHb2lBeTBBQURvQURTQUNJQU1nQkdvaUF5MEFBRG9BRGlBQ0lBTWdCR290QUFBNkFBOGdBa0VRYWlFQ0N5QUFLQUlBSUFVZ0NXd2lCRUVJZEdvZ0NDQUZRUU4wSWdCc1FRTjBhaUFIUVFOMGFpRUdJQUJCK1AvLy93ZHhJUUFnQ2tVRVFDQUJJQVlnQUVFQmNtc2lBeTBBQURvQUFDQUJJQU10QUFFNkFBRWdBU0FETFFBQ09nQUNJQUVnQXkwQUF6b0FBeUFCSUFNdEFBUTZBQVFnQVNBRExRQUZPZ0FGSUFFZ0F5MEFCam9BQmlBQklBTXRBQWM2QUFjZ0FTQURRUWhxSWdNdEFBQTZBQWdnQVNBRVFRWjBJQU5xSWdOQmVHb3RBQUE2QUFrZ0FTQURRWGxxTFFBQU9nQUtJQUVnQTBGNmFpMEFBRG9BQ3lBQklBTkJlMm90QUFBNkFBd2dBU0FEUVh4cUxRQUFPZ0FOSUFFZ0EwRjlhaTBBQURvQURpQUJJQU5CZm1vdEFBQTZBQThnQVNBRFFYOXFMUUFBT2dBUUlBRWdBeTBBQURvQUVRc2dCMFVOQUNBQ0lBWkJmMm9pQVMwQUFEb0FBQ0FDSUFBZ0FXb2lBUzBBQURvQUFTQUNJQUFnQVdvaUFTMEFBRG9BQWlBQ0lBQWdBV29pQVMwQUFEb0FBeUFDSUFBZ0FXb2lBUzBBQURvQUJDQUNJQUFnQVdvaUFTMEFBRG9BQlNBQ0lBQWdBV29pQVMwQUFEb0FCaUFDSUFBZ0FXb2lBUzBBQURvQUJ5QUNJQUFnQVdvZ0JDQUZhMEVHZEdvaUFTMEFBRG9BQ0NBQ0lBQWdBV29pQVMwQUFEb0FDU0FDSUFBZ0FXb2lBUzBBQURvQUNpQUNJQUFnQVdvaUFTMEFBRG9BQ3lBQ0lBQWdBV29pQVMwQUFEb0FEQ0FDSUFBZ0FXb2lBUzBBQURvQURTQUNJQUFnQVdvaUFTMEFBRG9BRGlBQ0lBQWdBV290QUFBNkFBOExDNjhCQVFGL0l3QkIwQUJySWdZa0FDQUNJQVpCSUdvZ0JpQURFRlVDUUFKQVFRSWdBQ2dDQUNJRFFRWkhJQU5CQmtrYlFRRkdCRUFnQUNBRklBRkJ5QUpxSUFaQklHb2dCaUFFRUZRaUEwVU5BUXdDQ3lBQUlBVWdBU0FHUVNCcUlBWWdCQkJUSWdNTkFRc2dBQ0FGUVlBQ2FpQUJRY2dLYWlBR1FUVnFJQVpCRUdvZ0FTZ0NqQUVnQkJCU0lnTU5BRUVBSVFNZ0FDZ0N4QUZCQVVzTkFDQUNJQVVRR3dzZ0JrSFFBR29rQUNBREM2TXFBU1IvSXdCQklHc2lFQ1FBSUJBZ0JDZ0NCQ0lJTmdJTUlCQWdCQ2dDQ0RZQ0VDQURJQWh1SWdaQkJIUWhGQ0FESUFZZ0NHeHJRUVIwSVJVQ1FBSkFBa0FDUUFKQUFrQUNRQUpBSUFBb0FnQWlCa0VEVFFSQUFrQUNRQUpBSUFaQkFtc09BZ0VDQUFzZ0FTZ0NrQUVoRXlBQUtBSUVJUTVCZnlFUEFuOGdBQ2dDeUFFaUNVVUVRRUVBSVFoQmZ3d0JDMEVBSVFoQmZ5QUpLQUlFSUE1SERRQWFRUUVoRWtGL0lBa29BZ0JCQlVzTkFCb2dDU2dDbUFFaUNFRVFkaUVISUFrb0FtZ0xJUTBnQUNnQ3pBRWlDVVVOQ0NBSktBSUVJQTVIRFFoQkFTRVdJQWtvQWdCQkJVc05DQ0FKS0FLc0FTSVJRUkIySVFvZ0NTZ0NiQ0VQREFnTElBRW9BcEFCSVJNZ0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhDMEYvSVFjQ1FDQUFLQUxNQVNJR1JRMEFJQXNnQmlnQ0JFY0VRQXdCQzBFQklSSWdCaWdDQUVFRlN3MEFJQVlvQXF3QklnbEJFSFloQ2lBR0tBSnNJUWNMSUFjZ0UwWUVRQ0FLSVFjZ0NTRUdEQWNMUVg4aER3SkFBa0FDUUNBQUtBTElBU0lJUlFSQVFRQWhCd3dCQzBFQUlRY2dDQ2dDQkNBTFJnMEJDMEVBSVFZTUFRdEJBU0VYSUFnb0FnQkJCVXNFUUVFQUlRWU1BUXNnQ0NnQ21BRWlCa0VRZGlFSElBZ29BbWdoRHdzQ1FBSkFJQUFvQXRBQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVTBOQVF3R0N3SkFJQUFvQXRRQklnaEZEUUFnQ0NnQ0JDQUxSdzBBSUFnb0FnQkJCVXNOQmlBSUtBSndJUllnQ0NnQ3dBRWhDQXdIQzBFQUlRaEJmeUVXSUJJTkJpQVhSUTBHREFjTElBZ29BbXdoRmlBSUtBS3NBU0VJREFVTElBRW9BcEFCSVE4Z0FTOEJvZ0VoRFNBQkx3R2dBU0VNSUFBb0FnUWhCa0YvSVFjQ1FDQUFLQUxJQVNJS1JRUkFRUUFoQ0F3QkMwRUFJUWdnQmlBS0tBSUVSd1JBREFFTFFRRWhFU0FLS0FJQVFRVkxEUUFnQ2lnQ21BRWlDVUVRZGlFSUlBb29BbWdoQndzZ0J5QVBSZzBCQW44Q2Z3SkFBa0FnQUNnQ3pBRWlCMFVOQUNBSEtBSUVJQVpIRFFBZ0J5Z0NBRUVGU3cwQklBY29BbkFoRVNBSEtBSzhBU0VLSUFjb0Ftd2hFaUFIS0FLc0FTSUdRUkIyREFNTEFrQWdBQ2dDMUFFaUIwVU5BQ0FIS0FJRUlBWkhEUUJCQUNFR1FYOGhFaUFIS0FJQVFRVkxCRUJCZnlFUlFRQU1Bd3NnQnlnQ2NDRVJJQWNvQXNBQkRBSUxJQkVOQkF0QmZ5RVJRWDhoRWtFQUlRWkJBQXNoQ2tFQUN5RUhJQThnRWtZaUN5QVBJQkZHYWtFQlJ3UkFJQWNnQ0NBSFFSQjBRUkIxSWdzZ0NFRVFkRUVRZFNJT1NpSUlHeUlISUE0Z0N5QU9JQXNnRGtnYklBZ2JJZ2dnQ2tFUWRTSUxJQWdnQzBvYklBZEJFSFJCRUhVZ0MwZ2JJUWNnQmlBSklBWkJFSFJCRUhVaUN5QUpRUkIwUVJCMUlnbEtJZ1liSWdoQi8vOERjU0FKSUFzZ0NTQUxJQWxJR3lBR0d5SUdJQXBCRUhSQkVIVWlDU0FHSUFsS0d5QUlRUkIwUVJCMUlBbElHeUVHREFNTElBc05BaUFLUVJCMklRY2dDaUVHREFJTFFRRWhHeUFBUVlRQmFpRWNBMEFDZnlBQklCMUJBblFpSG1vaUlDSWtLQUt3QVNJR1FRSk5CRUFnQmtFQ2RFR2NOV29vQWdBTUFRdEJCQXNoSWlBQUlCNXFJZ1lnSUNnQ3dBRTJBbVFnQmlBQ0lDQW9Bc0FCRUJRaUJqWUNkQ0FHUlEwSUlDSUVRQ0FjSUIxQkJIUWlIMm9pSlNFbUlCd2dIMEVNY21vaUowRUNhaUVvSUJ3Z0gwRUljbW9pS1NFUklCd2dIMEVFY21vaUZpRVRRUUFoQmdOQUlBRWdIMm9nQmtFQ2RHb2lDQzhCMGdFaER5QUlMd0hRQVNFT0lDQW9Bc0FCSVNGQmZ5RVhBbjhnQUNBZFFRZDBJQ1FvQXJBQklpTkJCWFJxSUFaQkEzUnFJaHBCc0JscUtBSUFFQkVpQ1VVRVFFRUFJUXhCQUNFSVFRQWhDa0YvREFFTFFRQWhERUVBSVFoQkFDRUtRWDhnQ1NnQ0JDQUFLQUlFUncwQUdrRUJJUXBCZnlBSktBSUFRUVZMRFFBYUlBa2dHa0cwR1dvdEFBQWlCMEVDZEdvb0FvUUJJZ2hCRUhZaERDQUpJQWRCL0FGeGFpZ0NaQXNoRFFKQUFrQUNRQ0FBSUJwQnNCMXFLQUlBRUJFaUdFVUVRRUVBSVFrTUFRdEJBQ0VKSUJnb0FnUWdBQ2dDQkVZTkFRdEJBQ0VTUVFBaEN3d0JDMEVCSVFzZ0dDZ0NBRUVGU3dSQVFRQWhFZ3dCQ3lBWUlCcEJ0QjFxTFFBQUlnZEJBblJxS0FLRUFTSVNRUkIySVFrZ0dDQUhRZndCY1dvb0FtUWhGd3NDUUFKQUFrQUNRQUpBSUFBZ0drR3dJV29vQWdBUUVTSVpSUTBBSUJrb0FnUWdBQ2dDQkVjTkFDQVpLQUlBUVFWTkRRRU1BZ3NDUUNBQUlCcEJzQ1ZxS0FJQUVCRWlHVVVOQUNBWktBSUVJQUFvQWdSSERRQWdHU2dDQUVFRlN3MENJQmtnR2tHMEpXb3RBQUFpQjBIOEFYRnFLQUprSVJnZ0dTQUhRUUowYWlnQ2hBRWhCd3dEQzBFQUlRZEJmeUVZSUFwRkRRSWdDdzBDREFNTElCa2dHa0cwSVdvdEFBQWlCMEg4QVhGcUtBSmtJUmdnR1NBSFFRSjBhaWdDaEFFaEJ3d0JDMEVBSVFkQmZ5RVlDeUFYSUNGR0lnb2dEU0FoUmlJTGFpQVlJQ0ZHYWtFQlJ3UkFJQWtnRENBSlFSQjBRUkIxSWdzZ0RFRVFkRUVRZFNJTVNpSUpHeUlLSUF3Z0N5QU1JQXNnREVnYklBa2JJZ2tnQjBFUWRTSUxJQWtnQzBvYklBcEJFSFJCRUhVZ0MwZ2JJUXdnRWlBSUlCSkJFSFJCRUhVaUNpQUlRUkIwUVJCMUlndEtJZ2diSWdsQi8vOERjU0FMSUFvZ0N5QUtJQXRJR3lBSUd5SUlJQWRCRUhSQkVIVWlCeUFJSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVJREFFTElBZ2dFaUFMR3lFSUlBd2dDU0FMR3lFTUlBc05BQ0FLRFFBZ0IwRVFkaUVNSUFjaENBc2dDQ0FPYWlJS1FSQjBRUkIxUVlCQWEwSC8vd0JMRFFvZ0RDQVBhaUlKUVJCMFFSQjFRWUFRYWtIL0gwc05DaUFqUVFOTkJFQUNmd0pBQWtBQ1FBSkFJQ05CQVdzT0F3RUNBd0FMSUNVZ0Nqc0JBQ0FtSUFrN0FRSWdGaUFLT3dFQUlCTWdDVHNCQWlBcElBbzdBUUFnRVNBSk93RUNJQ2NnQ2pzQkFDQW9EQU1MSUJ3Z0JrRUJkQ0FlYWtFQ2RDSUhhaUlJSUFrN0FRSWdDQ0FLT3dFQUlCd2dCMEVFY21vaUNDQUtPd0VBSUFoQkFtb01BZ3NnQUNBR0lCNXFRUUowYWlJSUlBbzdBWXdCSUFnZ0NUc0JoZ0VnQ0NBS093R0VBU0FJUVk0QmFnd0JDeUFBSUFZZ0htcEJBblJxSWdnZ0Nqc0JoQUVnQ0VHR0FXb0xJQWs3QVFBTElBWkJBV29pQmlBaVJ3MEFDd3NnSFVFQmFpSWRRUVJIRFFBTFFRQWhEQU5BSUJBZ0FDQU1RUUowSWdKcUtBSjBOZ0lJSUF4QkFVdEJBM1FoQ1NBTVFRTjBRUWh4SVFjQ1FDQUJJQUpxS0FLd0FTSUNRUUpOQkVBQ1FBSkFBa0FnQWtFQmF3NENBUUlBQ3lBRklBQWdERUVFZEdwQmhBRnFJQkJCQ0dvZ0ZTQVVJQWNnQ1VFSVFRZ1FEZ3dEQ3lBRklBQWdERUVFZEdvaUFrR0VBV29nRUVFSWFpQVZJQlFnQnlBSlFRaEJCQkFPSUFVZ0FrR01BV29nRUVFSWFpQVZJQlFnQnlBSlFRUnlRUWhCQkJBT0RBSUxJQVVnQUNBTVFRUjBhaUlDUVlRQmFpQVFRUWhxSUJVZ0ZDQUhJQWxCQkVFSUVBNGdCU0FDUVlnQmFpQVFRUWhxSUJVZ0ZDQUhRUVJ5SUFsQkJFRUlFQTRNQVFzZ0JTQUFJQXhCQkhScUlnaEJoQUZxSUJCQkNHb2dGU0FVSUFjZ0NVRUVRUVFRRGlBRklBaEJpQUZxSUJCQkNHb2dGU0FVSUFkQkJISWlCaUFKUVFSQkJCQU9JQVVnQ0VHTUFXb2dFRUVJYWlBVklCUWdCeUFKUVFSeUlnSkJCRUVFRUE0Z0JTQUlRWkFCYWlBUVFRaHFJQlVnRkNBR0lBSkJCRUVFRUE0TElBeEJBV29pREVFRVJ3MEFDd3dHQ3lBSUlRY2dDU0VHQzBFQklSc2dCaUFNYWlJSVFSQjBRUkIxUVlCQWEwSC8vd0JMRFFVZ0J5QU5haUlHUVJCMFFSQjFRWUFRYWtIL0gwc05CU0FDSUE4UUZDSUhSUTBGSUFBZ0Jqc0JzZ0VnQUNBSU93R3dBU0FBSUFjMkFuUWdBQ0FQTmdKa0lBQWdCellDZkNBQUlBODJBbXdnQUNBQUtBS3dBU0lHTmdLc0FTQUFJQVkyQXFnQklBQWdCallDcEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FCS0FLVUFTRU9JQUV2QWFZQklRd2dBUzhCcEFFaEN5QUFLQUlFSVFrQ1FBSkFJQUFvQXRBQklnZEZEUUFnQnlnQ0JDQUpSdzBBUVFFaEVTQUhLQUlBUVFWTEJFQkJmeUVJUVFBaEJ3d0NDeUFIS0FKc0lRZ2dCeWdDckFFaEJ3d0JDMEYvSVFoQkFDRUhJQUFvQXN3QklncEZCRUJCQUNFUkRBRUxJQWtnQ2lnQ0JFY0VRRUVBSVJFTUFRdEJBU0VSSUFvb0FnQkJCVXNOQUNBS0tBSnNJUWdnQ2lnQ3NBRWhCd3NDUUNBSUlBNUdSUVJBSUFaQkVIWWhDQUovQWtBQ1FDQUFLQUxNQVNJTlJRMEFJQTBvQWdRZ0NVY05BQ0FOS0FJQVFRVkxEUUVnRFNnQ3ZBRWlFVUVRZGlFS0lBMG9BbkFNQWdzZ0VVVU5Bd3RCQUNFUlFRQWhDa0YvQ3lFTklBNGdEMFlpQ1NBTklBNUdha0VCUndSQUlBb2dDQ0FLUVJCMFFSQjFJZzBnQ0VFUWRFRVFkVW9pQ0JzaUNTQUdRUkIxSWdvZ0RTQUtJQW9nRFVvYklBZ2JJZ2dnQjBFUWRTSUtJQWdnQ2tvYklBbEJFSFJCRUhVZ0NrZ2JJUWdnRVNBR0lCRkJFSFJCRUhVaUNpQUdRUkIwUVJCMUlnMUtJZ1liSWdsQi8vOERjU0FOSUFvZ0RTQU5JQXBLR3lBR0d5SUdJQWRCRUhSQkVIVWlCeUFHSUFkS0d5QUpRUkIwUVJCMUlBZElHeUVHREFJTElBa05BU0FOSUE1R0JFQWdFVUgvL3dOeElBcEJFSFJ5SVFZZ0NpRUlEQUlMQ3lBSFFSQjJJUWdnQnlFR0N5QUdJQXRxSWdkQkVIUkJFSFZCZ0VCclFmLy9BRXNOQlNBSUlBeHFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MEZJQUlnRGhBVUlnSkZEUVVnQUNBR093SENBU0FBSUFjN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKNElBQWdEallDY0NBQUlBNDJBbWdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0tnQVNBQUlBWTJBcHdCSUFBZ0JqWUNtQUVnQUVHVUFXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVJUVJBUURpQVFJQUFvQW5nMkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFoQkFFRUlRUkFRRGd3RUMwRUFJUWhCZnlFV0N5QVBJQk5HSWdzZ0V5QVdSbXBCQVVjRVFDQUtJQWNnQ2tFUWRFRVFkU0lMSUFkQkVIUkJFSFVpRGtvaUJ4c2lDaUFPSUFzZ0RpQUxJQTVJR3lBSEd5SUhJQWhCRUhVaUN5QUhJQXRLR3lBS1FSQjBRUkIxSUF0SUd5RUhJQWtnQmlBSlFSQjBRUkIxSWdvZ0JrRVFkRUVRZFNJTFNpSUdHeUlKUWYvL0EzRWdDeUFLSUFzZ0NpQUxTQnNnQmhzaUJpQUlRUkIwUVJCMUlnZ2dCaUFJU2hzZ0NVRVFkRUVRZFNBSVNCc2hCZ3dCQ3lBTERRQWdDRUVRZGlFSElBZ2hCZ3RCQVNFYklBWWdER29pQ0VFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0RXb2lCa0VRZEVFUWRVR0FFR3BCL3g5TERRSWdBaUFURUJRaUIwVU5BaUFBSUFZN0FhSUJJQUFnQ0RzQm9BRWdBQ0FITmdKMElBQWdFellDWkNBQUlBYzJBbmdnQUNBVE5nSm9JQUFnQUNnQ29BRWlEellDbkFFZ0FDQVBOZ0tZQVNBQUlBODJBcFFCSUFBZ0R6WUNrQUVnQUNBUE5nS01BU0FBSUE4MkFvZ0JJQUFnRHpZQ2hBRWdBU2dDbEFFaERpQUJMd0dtQVNFTklBRXZBYVFCSVF3Q2Z3SkFBa0FDUUNBQUtBTElBU0lHQkVBZ0JpZ0NCQ0FBS0FJRVJnUkFJQVlvQWdCQkJVMEVRQ0FHS0FLNEFTSUxRUkIySVFjZ0JpZ0NjQ0FPUncwRUlBc2hDUXdEQzBGL0lSSkJBQ0VKUVFBaEIwRUFJUXRCQUNFS0lBNUJmMFlOQWd3RUMwRi9JUkpCQUNFSlFRQWhCMEVBSVF0QkFDRUtJQTVCZjBZTkFRd0RDMEYvSVJKQkFDRUpRUUFoQjBFQUlRdEJBQ0VLSUE1QmYwY05BZ3NnQ1VILy93TnhJQWRCRUhSeURBSUxJQVlvQW1naEVpQUdLQUtnQVNFS0lBY2hDUXNnRDBFUWRpRUlJQTRnRTBZaUJpQU9JQkpHYWtFQlJ3UkFJQWdnQ1NBSlFSQjBRUkIxSWdrZ0NFRVFkRUVRZFVnaUJ4c2lDQ0FKSUE5QkVIVWlCaUFKSUFZZ0NVZ2JJQWNiSWdZZ0NrRVFkU0lISUFZZ0Iwb2JJQWhCRUhSQkVIVWdCMGdiSVFjZ0R5QUxJQXRCRUhSQkVIVWlDeUFQUVJCMFFSQjFJZ2xJSWdZYklnaEIvLzhEY1NBTElBa2dDeUFKSUF0SUd5QUdHeUlHSUFwQkVIUkJFSFVpQ1NBR0lBbEtHeUFJUVJCMFFSQjFJQWxJR3d3QkN5QUlJQXBCRUhZZ0Joc2hCeUFQSUFvZ0Joc0xJQXhxSWdoQkVIUkJFSFZCZ0VCclFmLy9BRXNOQWlBSElBMXFJZ1pCRUhSQkVIVkJnQkJxUWY4ZlN3MENJQUlnRGhBVUlnSkZEUUlnQUNBR093SENBU0FBSUFnN0FjQUJJQUFnQWpZQ2dBRWdBQ0FDTmdKOElBQWdEallDY0NBQUlBNDJBbXdnQUNBQUtBTEFBU0lHTmdLOEFTQUFJQVkyQXJnQklBQWdCallDdEFFZ0FDQUdOZ0t3QVNBQUlBWTJBcXdCSUFBZ0JqWUNxQUVnQUVHa0FXb2lBaUFHTmdJQUlCQWdBQ2dDZERZQ0NDQUZJQUJCaEFGcUlCQkJDR29nRlNBVVFRQkJBRUVRUVFnUURpQVFJQUFvQW53MkFnZ2dCU0FDSUJCQkNHb2dGU0FVUVFCQkNFRVFRUWdRRGd3QkN3SkFJQVpGQkVBZ0VrVUVRRUVBSVFrTUFnc2dGa1VFUUVFQUlRa01BZ3NnQ0VILy93TnhJQWRCRUhSeUlBMXlSUVJBUVFBaENRd0NDMEVBSVFrZ0VVSC8vd054SUFwQkVIUnlJQTl5UlEwQkN5QUJMd0dpQVNFTElBRXZBYUFCSVFrQ1FBSkFBa0FDUUFKQUlBQW9BdEFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVME5BUXdDQ3dKQUlBQW9BdFFCSWdaRkRRQWdCaWdDQkNBT1J3MEFJQVlvQWdCQkJVc05BaUFHS0FKd0lSY2dCaWdDd0FFaERBd0RDMEYvSVJjZ0VrVU5BaUFXRFFJTUF3c2dCaWdDYkNFWElBWW9BcXdCSVF3TUFRdEJmeUVYQ3lBUElCTkdJZ1lnRFNBVFJpSU5haUFUSUJkR2FrRUJSd1JBSUFvZ0J5QUtRUkIwUVJCMUlnb2dCMEVRZEVFUWRTSU5TaUlHR3lJSElBMGdDaUFOSUFvZ0RVZ2JJQVliSWdZZ0RFRVFkU0lLSUFZZ0Nrb2JJQWRCRUhSQkVIVWdDa2diSVFjZ0VTQUlJQkZCRUhSQkVIVWlDaUFJUVJCMFFSQjFJZzFLSWdZYklnaEIvLzhEY1NBTklBb2dEU0FLSUExSUd5QUdHeUlHSUF4QkVIUkJFSFVpQ2lBR0lBcEtHeUFJUVJCMFFSQjFJQXBJR3lFSURBRUxJQWdnRVNBTkd5RUlJQWNnQ2lBTkd5RUhJQTBOQUNBR0RRQWdERUVRZGlFSElBd2hDQXRCQVNFYklBZ2dDV29pREVFUWRFRVFkVUdBUUd0Qi8vOEFTdzBDSUFjZ0Myb2lDVUVRZEVFUWRVR0FFR3BCL3g5TERRSUxJQUlnRXhBVUlnSkZCRUJCQVNFYkRBSUxJQUFnQ1RzQndnRWdBQ0FNT3dIQUFTQUFJQUkyQW5RZ0FDQVROZ0prSUFBZ0FqWUNnQUVnQUNBQ05nSjhJQUFnQWpZQ2VDQUFJQk0yQW5BZ0FDQVROZ0pzSUFBZ0V6WUNhQ0FBSUFBb0FzQUJJZ1kyQXJ3QklBQWdCallDdUFFZ0FDQUdOZ0swQVNBQUlBWTJBckFCSUFBZ0JqWUNyQUVnQUNBR05nS29BU0FBSUFZMkFxUUJJQUFnQmpZQ29BRWdBQ0FHTmdLY0FTQUFJQVkyQXBnQklBQWdCallDbEFFZ0FDQUdOZ0tRQVNBQUlBWTJBb3dCSUFBZ0JqWUNpQUVnQUNBR05nS0VBU0FRSUFJMkFnZ2dCU0FBUVlRQmFpQVFRUWhxSUJVZ0ZFRUFRUUJCRUVFUUVBNExRUUFoR3lBQUtBTEVBVUVCU3cwQUlBQW9BZ0FFUUNBRUlBTWdCU0FCUWNnQ2FoQllEQUVMSUFRZ0JSQWJDeUFRUVNCcUpBQWdHd3VUQ3dFUGZ5QUFLQUlBSWhFZ0FTQUJJQUFvQWdRaUNuQWlBV3NpQkVFSWRHb2dBVUVFZEdvaEJTQUtRUVIwSVFzZ0FDZ0NDQ0FLYkNJQVFRWjBJUVlnQVVFRGRDRUpJQUJCQ0hRaERDQUVRUVowSVJJZ0NrRUNkRUg4Ly8vL0EzRkJBblFoRUFOQUlBVWdEa0VDZENJQVFmQXBhaWdDQUNJQklBdHNhaUFBUWJBcGFpZ0NBQ0lBYWlFRUlBSWdBVUVFZEdvZ0FHb2hBQUpBSUFNZ0RrRUdkR29pQVNnQ0FDSUhRZi8vL3dkSEJFQWdBU2dDQkNFSUlBQXRBQUVoRFNBRUlBY2dBQzBBQUdwQnNDNXFMUUFBT2dBQUlBRW9BZ2doQnlBQUxRQUNJUThnQkNBSUlBMXFRYkF1YWkwQUFEb0FBU0FCS0FJTUlRZ2dBQzBBQXlFTklBUWdCeUFQYWtHd0xtb3RBQUE2QUFJZ0JDQUlJQTFxUWJBdWFpMEFBRG9BQXlBQktBSVVJUWNnQUMwQUVTRUlJQVFnQzJvaUJDQUJLQUlRSUFBdEFCQnFRYkF1YWkwQUFEb0FBQ0FCS0FJWUlRMGdBQzBBRWlFUElBUWdCeUFJYWtHd0xtb3RBQUE2QUFFZ0FTZ0NIQ0VISUFBdEFCTWhDQ0FFSUEwZ0QycEJzQzVxTFFBQU9nQUNJQVFnQnlBSWFrR3dMbW90QUFBNkFBTWdBU2dDSkNFSElBQXRBQ0VoQ0NBRUlBdHFJZ1FnQVNnQ0lDQUFMUUFnYWtHd0xtb3RBQUE2QUFBZ0FTZ0NLQ0VOSUFBdEFDSWhEeUFFSUFjZ0NHcEJzQzVxTFFBQU9nQUJJQUVvQWl3aEJ5QUFMUUFqSVFnZ0JDQU5JQTlxUWJBdWFpMEFBRG9BQWlBRUlBY2dDR3BCc0M1cUxRQUFPZ0FESUFFb0FqUWhCeUFBTFFBeElRZ2dCQ0FMYWlJRUlBRW9BakFnQUMwQU1HcEJzQzVxTFFBQU9nQUFJQUVvQWpnaERTQUFMUUF5SVE4Z0JDQUhJQWhxUWJBdWFpMEFBRG9BQVNBQktBSThJUUVnQUMwQU15RUFJQVFnRFNBUGFrR3dMbW90QUFBNkFBSWdCQ0FBSUFGcVFiQXVhaTBBQURvQUF3d0JDeUFBS0FJUUlRRWdCQ0FBS0FJQU5nSUFJQVFnRUdvaUJDQUJOZ0lBSUFBb0FqQWhBU0FFSUJCcUlnUWdBQ2dDSURZQ0FDQUVJQkJxSUFFMkFnQUxJQTVCQVdvaURrRVFSdzBBQ3lBTUlCRnFJQkpxSUFscUloQWdCbW9oRVNBS1FRTjBRZmovLy84SGNTSUxRUUoyUVFKMElRNUJFQ0VLQTBBZ0NrRUNkRUVNY1NJQVFmQXBhaWdDQUNJQklBdHNJQUJCc0NscUtBSUFJZ0JxSUJFZ0VDQUtRUk5MSWdVYmFpRUVJQUpCd0FKQmdBSWdCUnRxSUFGQkEzUWdBR3BxSVFBQ1FDQURJQXBCQm5ScUlnRW9BZ0FpQlVILy8vOEhSd1JBSUFFb0FnUWhCaUFBTFFBQklRa2dCQ0FGSUFBdEFBQnFRYkF1YWkwQUFEb0FBQ0FCS0FJSUlRVWdBQzBBQWlFTUlBUWdCaUFKYWtHd0xtb3RBQUE2QUFFZ0FTZ0NEQ0VHSUFBdEFBTWhDU0FFSUFVZ0RHcEJzQzVxTFFBQU9nQUNJQVFnQmlBSmFrR3dMbW90QUFBNkFBTWdBU2dDRkNFRklBQXRBQWtoQmlBRUlBdHFJZ1FnQVNnQ0VDQUFMUUFJYWtHd0xtb3RBQUE2QUFBZ0FTZ0NHQ0VKSUFBdEFBb2hEQ0FFSUFVZ0JtcEJzQzVxTFFBQU9nQUJJQUVvQWh3aEJTQUFMUUFMSVFZZ0JDQUpJQXhxUWJBdWFpMEFBRG9BQWlBRUlBVWdCbXBCc0M1cUxRQUFPZ0FESUFFb0FpUWhCU0FBTFFBUklRWWdCQ0FMYWlJRUlBRW9BaUFnQUMwQUVHcEJzQzVxTFFBQU9nQUFJQUVvQWlnaENTQUFMUUFTSVF3Z0JDQUZJQVpxUWJBdWFpMEFBRG9BQVNBQktBSXNJUVVnQUMwQUV5RUdJQVFnQ1NBTWFrR3dMbW90QUFBNkFBSWdCQ0FGSUFacVFiQXVhaTBBQURvQUF5QUJLQUkwSVFVZ0FDMEFHU0VHSUFRZ0Myb2lCQ0FCS0FJd0lBQXRBQmhxUWJBdWFpMEFBRG9BQUNBQktBSTRJUWtnQUMwQUdpRU1JQVFnQlNBR2FrR3dMbW90QUFBNkFBRWdBU2dDUENFQklBQXRBQnNoQUNBRUlBa2dER3BCc0M1cUxRQUFPZ0FDSUFRZ0FDQUJha0d3TG1vdEFBQTZBQU1NQVFzZ0FDZ0NDQ0VCSUFRZ0FDZ0NBRFlDQUNBRUlBNXFJZ1FnQVRZQ0FDQUFLQUlZSVFFZ0JDQU9haUlFSUFBb0FoQTJBZ0FnQkNBT2FpQUJOZ0lBQ3lBS1FRRnFJZ3BCR0VjTkFBc0w1Z0VCQjM4Q1FDQUFLQUlBSWdWRkRRQWdBRUVCTmdJOElBQW9BamdOQUNBQUtBSWNJUVpCLy8vLy93Y2hBZ05BQTBBZ0JTQURRU2hzYWlJRUtBSVlCRUFnQkNBQklBUW9BaEFpQkNBQ1NDSUhHeUVCSUFRZ0FpQUhHeUVDQ3lBRFFRRnFJZ01nQmswTkFDQUJSUTBDSUFBb0Fnd2dBQ2dDRUNJRFFRUjBhaUlDSUFFb0FnQTJBZ0FnQWlBQktBSWtOZ0lNSUFJZ0FTZ0NIRFlDQkNBQ0lBRW9BaUEyQWdnZ0FDQURRUUZxTmdJUVFRQWhBeUFCUVFBMkFoZ2dBU2dDRkNFRVFRQWhBVUgvLy8vL0J5RUNJQVFOQUFzZ0FDQUFLQUlzUVg5cU5nSXNEQUFBQ3dBTEM5d0dBUXAvSUFCQ0FEY0NFQUpBQWtBQ1FDQURSUTBBQWtBQ1FDQUJJQUFvQWpBaUEwY0VRQ0FEUVFGcUlBQW9BaUFpQkhBaUNTQUJSZzBCSUFBb0FnQWdBQ2dDSEVFb2JHb29BZ0FoQ3dOQUFrQUNRQ0FBS0FJb0lnY0VRQ0FBS0FJQUlRaEJBQ0VEQTBBZ0NDQURRU2hzYWlJRktBSVVRWDlxUVFGTkJFQWdCU0FGS0FJTUlnVWdCRUVBSUFVZ0NVc2JhellDQ0FzZ0EwRUJhaUlESUFkSERRQUxJQWNnQUNnQ0dFa05Ba0YvSVFWQkFDRURRUUFoQkFOQUlBZ2dBMEVvYkdvaUJpZ0NGRUYvYWtFQlRRUkFJQVlvQWdnaUJpQUVJQVZCZjBZZ0JpQUVTSElpQmhzaEJDQURJQVVnQmhzaEJRc2dBMEVCYWlJRElBZEhEUUFMSUFWQkFFNE5BVUVCRHd0QkFDRUhJQUFvQWhnTkFVRUJEd3NnQ0NBRlFTaHNhaUlEUVFBMkFoUWdBQ0FIUVg5cUlnYzJBaWdnQXlnQ0dBMEFJQUFnQUNnQ0xFRi9hallDTEFzZ0FDZ0NMQ0lGSUFBb0Fod2lDRThFUUNBQUtBSTREUVlnQUNnQ0FDRU1BMEJCQUNFRVFmLy8vLzhISVFaQkFDRURBMEFnRENBRFFTaHNhaUlLS0FJWUJFQWdDaUFFSUFvb0FoQWlDaUFHU0NJTkd5RUVJQW9nQmlBTkd5RUdDeUFEUVFGcUlnTWdDRTBOQUFzQ1FDQUVSUTBBSUFBb0Fnd2dBQ2dDRUNJR1FRUjBhaUlESUFRb0FnQTJBZ0FnQXlBRUtBSWtOZ0lNSUFNZ0JDZ0NIRFlDQkNBRElBUW9BaUEyQWdnZ0FDQUdRUUZxTmdJUUlBUkJBRFlDR0NBRUtBSVVEUUFnQUNBRlFYOXFJZ1UyQWl3TElBVWdDRThOQUFzTElBQW9BZ0FpQkNBSVFTaHNhaUlESUFrMkFnd2dBMEtBZ0lDQUVEY0NFQ0FEUVFBMkFoZ2dBeUFKTmdJSUlBQWdCMEVCYWpZQ0tDQUFJQVZCQVdvMkFpd2dCQ0FJUVFGcUVDY2dDVUVCYWlBQUtBSWdJZ1J3SWdrZ0FVY05BQXNDUUNBQUtBSVFJZ2xGRFFBZ0FDZ0NBQ0lGSUFBb0Fod2lCRUVvYkdvaUNDZ0NBQ0VISUFBb0Fnd2hCa0VBSVFNRFFDQUhJQVlnQTBFRWRHb29BZ0JIQkVBZ0NTQURRUUZxSWdOSERRRU1BZ3NMSUFSRkRRQkJBQ0VEQTBBZ0N5QUZJQU5CS0d4cUlna29BZ0JIQkVBZ0JDQURRUUZxSWdOSERRRU1BZ3NMSUFrZ0J6WUNBQ0FJSUFzMkFnQUxJQUlOQlNBQUtBSXdJUU1NQWdzZ0FrRUFSdzhMSUFJTkF3c2dBU0FEUmcwQUlBQWdBU0FBS0FJZ0lnQnFRWDlxSUFCd05nSXdDMEVBRHdzRFFBd0FBQXNBQ3lBQUlBRTJBakJCQUF0MUFRTi9Ba0FnQUNnQ0FDSUJSUTBBSUFBb0FoeEJmMFlOQUFOQUlBRWdBa0VvYkNJRGFpZ0NCQkFFSUFBb0FnQWlBU0FEYWtFQU5nSUVJQUpCQVdvaUFpQUFLQUljUVFGcVNRMEFDd3NnQVJBRUlBQkJBRFlDQUNBQUtBSUVFQVFnQUVFQU5nSUVJQUFvQWd3UUJDQUFRUUEyQWd3TGd3RUJBMzhDUUNBQUtBSUFJZ1pGRFFBZ0FDZ0NIRUYvUmcwQUEwQWdCaUFIUVNoc0lnaHFLQUlFRUFRZ0FDZ0NBQ0lHSUFocVFRQTJBZ1FnQjBFQmFpSUhJQUFvQWh4QkFXcEpEUUFMQ3lBR0VBUWdBRUVBTmdJQUlBQW9BZ1FRQkNBQVFRQTJBZ1FnQUNnQ0RCQUVJQUJCQURZQ0RDQUFJQUVnQWlBRElBUWdCUkJkQzRBQ0FRSi9JQUFnQlRZQ09DQUFJQVEyQWlBZ0FFTC8vd00zQWlRZ0FFSUFOd0lzSUFBZ0EwRUJJQU5CQVVzYklnTTJBaGdnQUNBRElBSWdCUnNpQWpZQ0hDQUFRYWdGRUFvaUF6WUNBRUgvL3dNaEJBSkFJQU5GRFFCQkFDRUZJQU5CQUVHb0JSQUhJUVlnQWtGL1J3UkFJQUZCZ0FOc1FTOXlJUVZCQUNFREEwQWdCaUFEUVNoc2FpSUhJQVVRQ2lJQk5nSUVJQUZGRFFJZ0J5QUJRUUFnQVd0QkQzRnFOZ0lBSUFNZ0Fra2hBU0FEUVFGcUlRTWdBUTBBQ3lBQ1FRUjBRUkJxSVFVTElBQkJ4QUFRQ2lJQk5nSUVJQUFnQlJBS0lnSTJBZ3dnQWtVTkFDQUJSUTBBUVFBaEJDQUJRUUJCeEFBUUJ4b2dBRUlBTndJUUN5QUVDOU1CQVFkL1FRRWhBUUpBSUFBb0FqZ05BQ0FBS0FJY0lRVWdBQ2dDQUNFR1FmLy8vLzhISVFOQkFDRUJBMEFnQmlBQlFTaHNhaUlFS0FJWUJFQWdCQ0FDSUFRb0FoQWlCQ0FEU0NJSEd5RUNJQVFnQXlBSEd5RURDeUFCUVFGcUlnRWdCVTBOQUFzZ0FrVUVRRUVCRHdzZ0FDZ0NEQ0FBS0FJUUlnTkJCSFJxSWdFZ0FpZ0NBRFlDQUNBQklBSW9BaVEyQWd3Z0FTQUNLQUljTmdJRUlBRWdBaWdDSURZQ0NDQUFJQU5CQVdvMkFoQkJBQ0VCSUFKQkFEWUNHQ0FDS0FJVURRQWdBQ0FBS0FJc1FYOXFOZ0lzQ3lBQkMvVUVBUWgvSUFBb0FpZ2lCQVJBSUFBb0FnQWhCd05BSUFjZ0JVRW9iR29pQmlnQ0ZFRi9ha0VCVFFSQUlBWWdCaWdDRENJSUlBSkxCSDhnQ0NBQUtBSWdhd1VnQ0FzMkFnZ0xJQVZCQVdvaUJTQUVSdzBBQ3d0QkFDRUVBa0FnQVNnQ0FFVU5BQ0FCS0FJRUlnVkJBa3NOQUVFQUlRY2dBaUVHQTBBQ1FBSkFBa0FnQlVFQ1J3UkFJQUVnQjBFTWJHb29BZ2doQkFKQUlBVkZCRUFnQmlBRWF5SUdRWDlLRFFFZ0FDZ0NJQ0FHYWlFR0RBRUxJQVFnQm1vaUJrRUFJQUFvQWlBaUJTQUdJQVZJRzJzaEJnc2dCaUVKSUFZZ0Frc0VRQ0FHSUFBb0FpQnJJUWtMSUFBb0FoZ2lDa1VFUUVFQkR3c2dBQ2dDQUNFSVFRQWhCUU5BSUFnZ0JVRW9iR29pQkNnQ0ZDSUxRWDlxUVFGTkJFQWdCQ2dDQ0NBSlJnMERDMEVCSVFRZ0JVRUJhaUlGSUFwSERRQUxEQVVMUVFFaEJDQUFLQUlZSWdsRkRRUWdBU0FIUVF4c2FpZ0NEQ0VLSUFBb0FnQWhDRUVBSVFVRFFDQUlJQVZCS0d4cUlnUW9BaFJCQTBZRVFDQUVLQUlJSUFwR0RRTUxRUUVoQkNBRlFRRnFJZ1VnQ1VjTkFBc01CQXNnQlVFQVNBUkFRUUVQQzBFQklRUWdDMEVCU3cwQkRBTUxRUUVoQkNBRlFRQklEUUlMSUFjZ0F5SUVTUVJBQTBBZ0FDZ0NCQ0lKSUFSQkFuUnFJQWtnQkVGL2FpSUVRUUowYWlnQ0FEWUNBQ0FFSUFkTERRQUxJQUFvQWdBaENBc2dBQ2dDQkNBSFFRSjBhaUFJSUFWQktHd2lDV28yQWdBZ0IwRUJhaUlISVFRZ0J5SUZJQU5OQkVBRFFDQUFLQUlFSWdnZ0JVRUNkR29vQWdBaUNpQUFLQUlBSUFscVJ3UkFJQWdnQkVFQ2RHb2dDallDQUNBRVFRRnFJUVFMSUFWQkFXb2lCU0FEVFEwQUN3dEJBQ0VFSUFFZ0IwRU1iR29vQWdRaUJVRURTUTBBQ3dzZ0JBc0hBRUhFR2hBS0M3Y0JBUUovSXdCQkVHc2lCaVFBSUFaQkFEWUNEQ0FBSUFFZ0FpQUdRUXhxRUNvaUIwRjljVVVFUUFOQUlBQWdBU0FHS0FJTUlnZHFJZ0VnQWlBSGF5SUNJQVpCREdvUUtpSUhRWDF4UlEwQUN3c2dCMEVCUmdSQUlBUWdBQ2dDRUNJQktBSTBRUVIwTmdJQUlBVWdBU2dDT0VFRWREWUNBQ0FESUFCQnhBbHFJZ0FvQWhRaUFTQUFLQUlRU1FSL0lBQWdBVUVCYWpZQ0ZDQUFLQUlNSUFGQkJIUnFCVUVBQ3lnQ0FEWUNBQXNnQmtFUWFpUUFJQWNMU1FFQmZ5QUFRUUJCeEJvUUJ5SUNRYlFLYWtFQk5nSUFJQUpDZ0lLQWdJQUVOd0lFSUFCQndCQVFDaUlDTmdLd0dpQUNSUVJBUVFFUEN5QUJCRUFnQUVFQk5nTEFDUXRCQUF1NkJBRUpmd0pBQWtBZ0FVRUVTUTBBSUFBdEFBQU5BQ0FBTFFBQkRRQWdBQzBBQWlJSFFRRkxEUUJCQXlFRUlBQkJBMm9oQlVFQ0lRaEJmU0VNQWtBRFFDQUZJUVlDZnlBSVFRRnFJQWRCL3dGeElnVkZEUUFhUVFBaEJ5QUZRUUZHUVFBZ0NFRUJTeHNOQWtFQUN5RUlJQVJCZjNNaERDQUdRUUZxSVFVZ0JpMEFBQ0VISUFSQkFXb2lCQ0FCUncwQUN5QURJQUUyQWdCQkFROExJQVFoQ2tFQUlRaEJBQ0VGQTBCQkFTQUlJQWNnQmkwQUFDSUxSV29pQ1VFQ1Joc2dDQ0FMUVFOR0d5RUlJQXBCQVdvaENnSkFJQXRCQVVjTkFDQUpRUUpKRFFBZ0FpQUtJQXhxSUFsQmYzTnFJZ0UyQWd4QkFDQUpRWDFxSWdZZ0JpQUpTeHNoQnd3REMwRUFJQWtnQ3hzaEIwRUJJQVVnQ1VFQ1N4c2dCU0FMR3lFRklBWkJBV29oQmlBQklBcEhEUUFMSUFJZ0FTQU1haUFIYXlJQk5nSU1EQUVMSUFJZ0FUWUNERUVCSVFoQkFDRUhDeUFDUVFBMkFoQWdBa0VBTmdJSUlBSWdBQ0FFYWlJQU5nSUVJQUlnQURZQ0FDQURJQVFnQjJvZ0FXbzJBZ0JCQVNFREFrQWdCUTBBUVFBaEF5QUlSUTBBSUFJQ2Z5QUNLQUlNSWdGRkJFQWdBQ0VFUVFBTUFRc2dBQ0VFUVFBaEJnTkFJQUZCZjJvaEFTQUVMUUFBSVFVQ2Z3SkFJQVpCQWtjTkFDQUZRUU5HQkVBZ0FVVUVRRUVCRHdzZ0JDMEFBVUVEU3dSQVFRRVBDMEVBSVFZZ0JFRUJhZ3dDQ3lBRlFRTlBEUUJCQVE4TElBQWdCVG9BQUVFQUlBWkJBV29nQlJzaEJpQUFRUUZxSVFBZ0JFRUJhZ3NoQkNBQkRRQUxJQUlvQWd3TElBQWdCR3RxTmdJTUN5QURDd3Z0TWhrQVFZWUlDOG9GWmlBbUVBWUlaUmhsR0VNUVF4QkRFRU1RUXhCREVFTVFReEFpQ0NJSUlnZ2lDQ0lJSWdnaUNDSUlJZ2dpQ0NJSUlnZ2lDQ0lJSWdnaUNBQUFBQUFBQUFBQWFrQktNQ29vQ2lCcE9HazRTU2hKS0NrZ0tTQUpHQWtZYURCb01HZ3dhREJJSUVnZ1NDQklJQ2dZS0Jnb0dDZ1lDQkFJRUFnUUNCQm5LR2NvWnlobktHY29aeWhuS0djb1J4aEhHRWNZUnhoSEdFY1lSeGhIR0c1Z1RsZ3VVQTVRYmxoT1VDNUlEa2dOUUExQVRVaE5TQzFBTFVBTk9BMDRiVkJ0VUUxQVRVQXRPQzA0RFRBTk1HdElhMGhyU0d0SWEwaHJTR3RJYTBoTE9FczRTemhMT0VzNFN6aExPRXM0S3pBck1Dc3dLekFyTUNzd0t6QXJNQXNvQ3lnTEtBc29DeWdMS0Fzb0N5Z0FBQUFBTDJndmFCQ0FVSUF3Z0JCNGNJQlFlREI0RUhCd2VGQndNSEFRYUc5d2IzQlBhRTlvTDJBdllBOWdEMkJ2YUc5b1QyQlBZQzlZTDFnUFdBOVlBQUFBQUFBQUFBQm1PRVlnSmlBR0VHWXdSaGdtR0FZSVpTaGxLQ1VRSlJCa0lHUWdaQ0JrSUdRWVpCaGtHR1FZUXhCREVFTVFReEJERUVNUVF4QkRFQUFBQUFBQUFBQUFhVWhKT0NrNENUQUlLQWdvU0RCSU1DZ3dLREFJSUFnZ1owQm5RR2RBWjBCSEtFY29SeWhIS0Njb0p5Z25LQ2NvQnhnSEdBY1lCeGdBQUFBQWJYaHRlRzZBVG9BdWdBNkFMbmdPZUU1NExuQk5jRTF3RFhBTmNHMXdiWEJOYUUxb0xXZ3RhQTFvRFdodGFHMW9UV0JOWUMxZ0xXQU5ZQTFnREZnTVdBeFlERmhNV0V4WVRGaE1XQ3hZTEZnc1dDeFlERkFNVUF4UURGQnNZR3hnYkdCc1lFeFFURkJNVUV4UUxGQXNVQ3hRTEZBTVNBeElERWdNU0d0WWExaHJXR3RZYTFocldHdFlhMWhMU0V0SVMwaExTRXRJUzBoTFNFdElLMGdyU0N0SUswZ3JTQ3RJSzBnclNBdEFDMEFMUUF0QUMwQUxRQXRBQzBCclVHdFFhMUJyVUd0UWExQnJVR3RRUzBCTFFFdEFTMEJMUUV0QVMwQkxRQ3RBSzBBclFDdEFLMEFyUUN0QUswQUxPQXM0Q3pnTE9BczRDemdMT0FzNEFFSGdEUXV1Q1FZWVJqZ21PQVlRWmtoR01DWXdCZ2dsS0NVb1JTaEZLQ1VnSlNCRklFVWdKUmdsR0dWQVpVQkZHRVVZSlJBbEVHUTRaRGhrT0dRNFpEQmtNR1F3WkRCa0tHUW9aQ2hrS0dRZ1pDQmtJR1FnWkJoa0dHUVlaQmhFRUVRUVJCQkVFQ1FJSkFna0NDUUlCQUFFQUFRQUJBQUFBQXFBYW9CS2dDcUFDbmhxZUVwNEtuZ0tjR3B3U25BcWNBcG9LV2dwYUFsZ0NXQkphRWxvS1dBcFlBbFlDVmhwYUdsb1NXQkpZQ2xZS1ZnSlVBbFFhR0JvWUdoZ2FHQklXRWhZU0ZoSVdDaFFLRkFvVUNoUUNFZ0lTQWhJQ0Vob1dHaFlhRmhvV0VoUVNGQklVRWhRS0Vnb1NDaElLRWdJUUFoQUNFQUlRQWM0QnpnSE9BYzRCemdIT0FjNEJ6Z0hNQWN3QnpBSE1BY3dCekFITUFjd1IwaEhTRWRJUjBoSFNFZElSMGhIU0Fjb0J5Z0hLQWNvQnlnSEtBY29CeWhuVUdkUVoxQm5VR2RRWjFCblVHZFFSMEJIUUVkQVIwQkhRRWRBUjBCSFFDZEFKMEFuUUNkQUowQW5RQ2RBSjBBSElBY2dCeUFISUFjZ0J5QUhJQWNnQmdnbUNBQUFCZ0FHRUNZUVJoQUFBQVlZSmhoR0dHWVlCaUFtSUVZZ1ppQUdLQ1lvUmlobUtBWXdKakJHTUdZd0JqZ21PRVk0WmpnR1FDWkFSa0JtUUFaSUpraEdTR1pJQmxBbVVFWlFabEFHV0NaWVJsaG1XQVpnSm1CR1lHWmdCbWdtYUVab1ptZ0djQ1p3Um5CbWNBWjRKbmhHZUdaNEJvQW1nRWFBWm9BQUFFTVFBZ0FDQUNFSUlRZ2hDQ0VJWnlCbklFZ2dLQ0JIR0VjWUp4Z25HQVlnQmlBR0lBWWdCaGdHR0FZWUJoZ0dFQVlRQmhBR0VHWVlaaGhtR0dZWUpoQW1FQ1lRSmhBR0NBWUlCZ2dHQ0FBQVpWVkVSRFEwSXlNakl4TVRFeE1CQVFFQkFRRUJBUUVCQVFFQkFRRUJBUG5wMmNqSXVMaW5wNmVubDVlWGw0YUdob2FHaG9hR2RuWjJkbloyZG5ibTFzYTJwYVdWbFlTRWhJUjBkSFIwWkdSa1pGUlVWRlJEUTBORFEwTkRRek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEV3TURBd01EQXdNRDFyYkZ4YVdsbFpXRWhJU0VWRlJVVkVSRVJFUUVCQVFFYzNOemMzTnpjM05qWTJOalkyTmpZek16TXpNek16TXpJeU1qSXlNakl5TVRFeE1URXhNVEU4VzFwUVdVbEhSME5EUWtKSU9EZzROalkyTmpVMU5UVTBORFEwTVRFeE1UdFpXa3BJU0VKQ1FVRkFRRWMzTnpjMk5qWTJOVFUxTlRRME5EUXpNek16T21CaFVWaElTRWhKT1RrNU9UazVPVGMzTnpjM056YzNOalkyTmpZMk5qWTFOVFUxTlRVMU5UUTBORFEwTkRRME16TXpNek16TXpNeU1qSXlNakl5TWpsZ1lWRlhSMGRIU0RnNE9EZzRPRGcyTmpZMk5qWTJOalEwTkRRME5EUTBNek16TXpNek16TXlNakl5TWpJeU1qVWxKU1VsSlNVbEpTVWxKU1VsSlNVb1lHSlNVVUZCUVVjM056YzNOemMzTmpZMk5qWTJOall6TXpNek16TXpNelVsSlNVbEpTVWxKU1VsSlNVbEpTVWtKQ1FrSkNRa0pDUWtKQ1FrSkNRa0lXQm5WMUpDUWtKRk5UVTFOVFUxTlRZbUppWW1KaVltSmlZbUppWW1KaVlrSkNRa0pDUWtKQ1FrSkNRa0pDUWtJeU1qSXlNakl5TWpJeU1qSXlNakl5RlFWa1pDTWpJeU5TVWxKU1VsSlNVa0pDUWtKQ1FrSkNNakl5TWpJeU1qSUVGQ01qTXpOVFUwRkJRVUZCUVVGQkJCUkRReUlpSWlJeE1URXhNVEV4TVFNVE1qSWhJU0VoQWhJaElSRUJJaElCQVRJaUVnSkRNeUlpRWhJQ0FsTkRNeU1TRWdJQ0V5TkRNMk5UQWdJQVFhQVhDeVFFQkFVR0J3Z0pDZ3dORHhFVUZoa2NJQ1FvTFRJNFAwZFFXbVZ4ZjVDaXRzdmkvLzhBUWVBWEN5UUNBZ0lEQXdNREJBUUVCZ1lIQndnSUNRa0tDZ3NMREF3TkRRNE9EdzhRRUJFUkVoSUFRY1VZQzRRQkFRQUFBUUFBQVFBQUFRQUJBUUFCQVFFQkFRRUJBUUVCQVFFQkFRRUJBZ0VCQWdFQkFnRUJBZ0VDQXdFQ0F3SUNBd0lDQkFJREJBSURCQU1EQlFNRUJnTUVCZ1FGQndRRkNBUUdDUVVIQ2dZSUN3WUlEUWNLRGdnTEVBa01FZ29ORkFzUEZ3MFJHUUFBQUFBQUFBQUFCUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVIVUdRc1ZCUUFBQUFBQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUVIMEdRc1ZCUUFBQUFRQUFBQUFBQUFBL3dBQUFBQUFBQUQvQUVHVUdnc0ZCUUFBQUFRQVFhUWFDNlVCQndBQUFBUUFBQUFDQUFBQUJBQUFBQUVBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUFRQUFBQVFBQUFBREFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFCQUFBQUJBQUFBQVFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBRUFBQUFFQUFBQUJBQUFBQVFBQUFBREFBQUFCQUFBQUFZQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FFSFVHd3NWRFFBQUFBQUFBQUFQQUFBQS93QUFBQUFBQUFEL0FFSDBHd3NWRFFBQUFBUUFBQUFJQUFBQS93QUFBQUFBQUFEL0FFR1VIQXUxQ3cwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBSkFBQUFCQUFBQUFzQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQWtBQUFBRUFBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUNRQUFBQVFBQUFBTUFBQUFCQUFBQUFzQUFBQUVBQUFBRGdBQUFBRUFBQUFLQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBb0FBQUFFQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ2dBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUtBQUFBQVFBQUFBc0FBQUFFQUFBQUFBQUFBQVFBQUFBQkFBQUFBUUFBQUE0QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEZ0FBQUFRQUFBQUVBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQUVBQUFBT0FBQUFBUUFBQUE4QUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUFRQUFBQTRBQUFBQkFBQUFEd0FBQUFRQUFBQUVBQUFBQkFBQUFBVUFBQUFFQUFBQUFnQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFDQUFBQUJBQUFBQWdBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUVBQUFBQWdBQUFBUUFBQUFEQUFBQUJBQUFBQWdBQUFBRUFBQUFDUUFBQUFRQUFBQUdBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFZQUFBQUVBQUFBREFBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBRUFBQUFCZ0FBQUFRQUFBQUhBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUFCQUFBQUFjQUFBQUVBQUFBREFBQUFBUUFBQUFOQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFCQUFBQURnQUFBUDhBQUFBRUFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBRUFBQUFMQUFBQUFRQUFBQTRBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFCQUFBQURnQUFBQVFBQUFBQkFBQUEvd0FBQUFRQUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFJQUFBQUtBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFBUUFBQUE4QUFBQUNBQUFBQ2dBQUFQOEFBQUFBQUFBQS93QUFBQUFBQUFBQkFBQUFEd0FBQUFJQUFBQUtBQUFBQkFBQUFBVUFBQUQvQUFBQUFBQUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUJBQUFBQVlBQUFEL0FBQUFEQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFBRUFBQUFDUUFBQVA4QUFBQU1BQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBRC9BQUFBQWdBQUFQOEFBQUFJQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFRQUFBQUhBQUFBL3dBQUFBSUFBQUQvQUFBQUFBQUFBUDhBQUFBQUFBQUFCQUFBQUFjQUFBRC9BQUFBQWdBQUFBUUFBQUFOQUFBQS93QUFBQWdBQUFBREFBQUFEd0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUQvQUFBQUFBQUFBQU1BQUFBUEFBQUFBQUFBQUFVQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQUF3QUFBQThBQUFBQkFBQUFDZ0FBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFEQUFBQUR3QUFBQUVBQUFBS0FBQUFBQUFBQUFVQUFBQUVBQUFBQUFBQUFBRUFBQUFMQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQVFBQUFBc0FBQUFFQUFBQUFRQUFBUDhBQUFBQUFBQUEvd0FBQUFBQUFBQUJBQUFBQ3dBQUFBRUFBQUFPQUFBQS93QUFBQUFBQUFEL0FBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBRC9BQUFBQUFBQUFQOEFBQUFBQUFBQS93QkIxQ2NMRlFjQUFBQUFBQUFBRFFBQUFQOEFBQUFBQUFBQS93QkI5Q2NMRlFjQUFBQUVBQUFBQWdBQUFQOEFBQUFBQUFBQS93QkJsQ2dMMlFFSEFBQUFCQUFBQUFJQUFBQUFBQUFBRFFBQUFBUUFBQUFJQUFBQUJBQUFBQU1BQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBL3dBQUFBQUFBQUFFQUFBQUF3QUFBQVFBQUFBSkFBQUEvd0FBQUFBQUFBRC9BQUFBQUFBQUFBUUFBQUFEQUFBQUJBQUFBQVlBQUFEL0FBQUFBQUFBQVA4QUFBQUFBQUFBQkFBQUFBTUFBQUFFQUFBQUJnQUFBQVFBQUFBSkFBQUFCQUFBQUF3QUFBQUFBQUFBQkFBQUFBQUFBQUFFQUFBQUNBQUFBQXdBQUFBSUFBQUFEQUFBQUFBQUFBQUVBQUFBQUFBQUFBUUFBQUFJQUFBQURBQUFBQWdBQUFBTUFFSDRLUXNGQkFBQUFBUUFRWWdxQ3lVRUFBQUFCQUFBQUFnQUFBQUlBQUFBREFBQUFBd0FBQUFJQUFBQUNBQUFBQXdBQUFBTUFFR3hMZ3ZJQmdFQ0F3UUZCZ2NJQ1FvTERBME9EeEFSRWhNVUZSWVhHQmthR3h3ZEhoOGdJU0lqSkNVbUp5Z3BLaXNzTFM0dk1ERXlNelExTmpjNE9UbzdQRDArUDBCQlFrTkVSVVpIU0VsS1MweE5UazlRVVZKVFZGVldWMWhaV2x0Y1hWNWZZR0ZpWTJSbFptZG9hV3ByYkcxdWIzQnhjbk4wZFhaM2VIbDZlM3g5Zm4rQWdZS0RoSVdHaDRpSmlvdU1qWTZQa0pHU2s1U1ZscGVZbVpxYm5KMmVuNkNob3FPa3BhYW5xS21xcTZ5dHJxK3dzYkt6dExXMnQ3aTV1cnU4dmI2L3dNSEN3OFRGeHNmSXljckx6TTNPejlEUjB0UFUxZGJYMk5uYTI5emQzdC9nNGVMajVPWG01K2pwNnV2czdlN3Y4UEh5OC9UMTl2ZjQrZnI3L1AzKy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL0FBQUFBQUVBQUFBRUFBQUFCUUFBQUFJQUFBQURBQUFBQmdBQUFBY0FBQUFJQUFBQUNRQUFBQXdBQUFBTkFBQUFDZ0FBQUFzQUFBQU9BQUFBRHdBQUFBQUFBQUFCQUFBQUFRQkJoRFVMSVFFQUFBQUJBQUFBQVFBQUFBRUFBQUFDQUFBQUFnQUFBQUVBQUFBQ0FBQUFBZ0JCdERVTEJRVUFBQUFFQUVIRU5RdkpCZ2NBQUFBRUFBQUFBZ0FBQUFRQUFBQUJBQUFBQkFBQUFBUUFBQUFFQUFBQUF3QUFBQVFBQUFBR0FBQUFBQUFBQUEwQUFBQUVBQUFBQ0FBQUFBQUFBQUFQQUFBQUJBQUFBQW9BQUFBRUFBQUFDUUFBQUFRQUFBQU1BQUFBQkFBQUFBc0FBQUFFQUFBQURnQUFBQUFBQUFBUkFBQUFCQUFBQUJBQUFBQUFBQUFBRXdBQUFBUUFBQUFTQUFBQUFBQUFBQlVBQUFBRUFBQUFGQUFBQUFBQUFBQVhBQUFBQkFBQUFCWUFBQUFCQUFBQUNnQUFBQUVBQUFBTEFBQUFCQUFBQUFBQUFBQUVBQUFBQVFBQUFBRUFBQUFPQUFBQUFRQUFBQThBQUFBRUFBQUFCQUFBQUFRQUFBQUZBQUFBQkFBQUFBSUFBQUFFQUFBQUF3QUFBQVFBQUFBSUFBQUFCQUFBQUFrQUFBQUVBQUFBQmdBQUFBUUFBQUFIQUFBQUJBQUFBQXdBQUFBRUFBQUFEUUFBQUFFQUFBQVNBQUFBQVFBQUFCTUFBQUFFQUFBQUVBQUFBQVFBQUFBUkFBQUFBUUFBQUJZQUFBQUJBQUFBRndBQUFBUUFBQUFVQUFBQUJBQUFBQlVBQUFBQkFBQUFDd0FBQUFFQUFBQU9BQUFBQkFBQUFBRUFBQUQvQUFBQUJBQUFBQUVBQUFBUEFBQUFBZ0FBQUFvQUFBQUVBQUFBQlFBQUFQOEFBQUFBQUFBQUJBQUFBQU1BQUFBRUFBQUFCZ0FBQUFRQUFBQUpBQUFBL3dBQUFBd0FBQUFFQUFBQUJ3QUFBUDhBQUFBQ0FBQUFCQUFBQUEwQUFBRC9BQUFBQ0FBQUFBRUFBQUFUQUFBQUFnQUFBQklBQUFBRUFBQUFFUUFBQVA4QUFBQVFBQUFBQVFBQUFCY0FBQUFDQUFBQUZnQUFBQVFBQUFBVkFBQUEvd0FBQUJRQUFBQURBQUFBRHdBQUFBRUFBQUFLQUFBQUFBQUFBQVVBQUFBRUFBQUFBQUFBQUFFQUFBQUxBQUFBQVFBQUFBNEFBQUFFQUFBQUFRQUFBQVFBQUFBRUFBQUFBQUFBQUFjQUFBQUVBQUFBQWdBQUFBQUFBQUFOQUFBQUJBQUFBQWdBQUFBRUFBQUFBd0FBQUFRQUFBQUdBQUFBQkFBQUFBa0FBQUFFQUFBQURBQUFBQU1BQUFBVEFBQUFBUUFBQUJJQUFBQUFBQUFBRVFBQUFBUUFBQUFRQUFBQUF3QUFBQmNBQUFBQkFBQUFGZ0FBQUFBQUFBQVZBQUFBQkFBQUFCUUFBQUFCQUFBQUFRQUFBQUlBQUFBQ0FBQUFBd0FBQUFNQUFBQURBQUFBQXdBQUFBQUFBQUFCQUFBQUFnQUFBQU1BQUFBRUFBQUFCUUFBQUFZQUFBQUhBQUFBQ0FBQUFBa0FBQUFLQUFBQUN3QUFBQXdBQUFBTkFBQUFEZ0FBQUE4QVFaWThDeTRCQVFFQkFRRUNBZ0lDQWdJREF3TURBd01FQkFRRUJBUUZCUVVGQlFVR0JnWUdCZ1lIQndjSEJ3Y0lDQWdJQUVIUVBBdEZDZ0FBQUEwQUFBQVFBQUFBQ3dBQUFBNEFBQUFTQUFBQURRQUFBQkFBQUFBVUFBQUFEZ0FBQUJJQUFBQVhBQUFBRUFBQUFCUUFBQUFaQUFBQUVnQUFBQmNBQUFBZEFFR2hQUXN6QVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURCQVVBQVFJREJBVUFBUUlEQkFVQUFRSURBRUhrUFF2TUFnRUFBQUFDQUFBQUF3QUFBQVFBQUFBRkFBQUFCZ0FBQUFjQUFBQUlBQUFBQ1FBQUFBb0FBQUFMQUFBQURBQUFBQTBBQUFBT0FBQUFEd0FBQUJBQUFBQVJBQUFBRWdBQUFCTUFBQUFVQUFBQUZRQUFBQllBQUFBWEFBQUFHQUFBQUJrQUFBQWFBQUFBR3dBQUFCd0FBQUFkQUFBQUhRQUFBQjRBQUFBZkFBQUFJQUFBQUNBQUFBQWhBQUFBSWdBQUFDSUFBQUFqQUFBQUl3QUFBQ1FBQUFBa0FBQUFKUUFBQUNVQUFBQWxBQUFBSmdBQUFDWUFBQUFtQUFBQUp3QUFBQ2NBQUFBbkFBQUFKd0FBQUFFQUFBQUNBQUFBQkFBQUFBZ0FBQUFRQUFBQUlBQUFBRUFBQUFDQUFBQUFMeDhQQUJjYkhSNEhDdzBPSnlzdExoQURCUW9NRXhVYUhDTWxLaXdCQWdRSUVSSVVHQVlKRmhrZ0lTSWtLQ1lwQUJBQkFnUUlJQU1GQ2d3UEx3Y0xEUTRHQ1I4akpTb3NJU0lrS0NjckxTNFJFaFFZRXhVYUhCY2JIUjRXR1NZcEFMQXRCRzVoYldVQjZ3TmtBQVp0WlcxamNIa0JCbkpsYzJsNlpRSUNaaklEQW1ZekJBRm1CUUptTlFZQ1pqWUhBbVkzQ0FKbU9Ba0NaamtLQVdVTEEyWXhNUXdEWmpFeURRTm1NVE1PQTJZeE5BOERaakUxRUFObU1UWVJBMll4TnhJRFpqRTRFd05tTVRrVUEyWXlNQlVEWmpJeEZnTm1NaklYQTJZeU14Z0RaakkwR1FObU1qVWFBMll5TmhzRFpqSTNIQU5tTWpnZEEyWXlPUjREWmpNd0h3Tm1NekVnQTJZek1pRURaak16SWdObU16UWpBMll6TlNRRFpqTTJKUU5tTXpjbUEyWXpPQ2NEWmpNNUtBTm1OREFwQTJZME1Tb0RaalF5S3dObU5ETXNBMlkwTkMwRFpqUTFMZ05tTkRZdkEyWTBOekFEWmpRNE1RTm1ORGt5QTJZMU1ETURaalV4TkFObU5USTFBMlkxTXpZRFpqVTBOd05tTlRVNEEyWTFOamtEWmpVM09nTm1OVGc3QTJZMU9Ud0Raall3UFFObU5qRStBMlkyTWo4RFpqWXpRQU5tTmpSQkEyWTJOVUlEWmpZMlF3Tm1OamRFQTJZMk9FVURaalk1UmdObU56QkhBMlkzTVVnRFpqY3lTUU5tTnpOS0EyWTNORXNEWmpjMVRBTm1OelpOQTJZM04wNERaamM0VHdObU56bFFBMlk0TUZFRFpqZ3hVZ05tT0RKVEEyWTRNMVFEWmpnMFZRTm1PRFZXQTJZNE5sY0RaamczV0FObU9EaFpBMlk0T1ZvRFpqa3dXd05tT1RGY0EyWTVNbDBEWmprelhnTm1PVFJmQTJZNU5XQUJhV0VCWjJJQlpHTUVaakV3TVFLNktXUUFBd0FBQVFBQ0FBRUJBQUFDQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1EQ1FBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FRSUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNGQkFBQ2NEQUJBbkF4QWdKc01nTUNiRE1HR0FBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFV0Eyd3lNaGNEYkRJekJ3WUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVSUJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlFrUUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlFvTUFBSndNQUVDYkRFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVMQXdBQ2NEQUJBbkF4QWdKc01nd1JBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRFFZQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05BVUNiRFVPRUFBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVQQlFBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEVBc0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQVJBZ0FDY0RBQkFuQXhFZzhBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkJNREFBSndNQUVDYkRFQ0Ftd3lGQU1BQW5Bd0FRSndNUUlDYkRJVkJnQUNjREFCQW5BeEFnSndNZ01DYkRNRUFtdzBCUUpzTlJZbUFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2NEUUZBbkExQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUVBBMnd4TlJBRGJERTJFUU5zTVRjU0Eyd3hPQk1EYkRFNUZBTnNNakFWQTJ3eU1SWURiREl5RndOc01qTVlBMnd5TkJrRGJESTFHZ05zTWpZYkEyd3lOeHdEYkRJNEhRTnNNamtlQTJ3ek1COERiRE14SUFOc016SWhBMnd6TXlJRGJETTBJd05zTXpVa0Eyd3pOaVVEYkRNM0Z3TUFBbkF3QVFKd01RSUNjRElZRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpFWkVnQUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0doWUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhHd1lBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVWNCd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlkQlFBQ2NEQUJBbkF4QWdKc01nTUNiRE1FQW13MEhnVUFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQjhCQUFKd01DQUVBQUp3TUFFQ2NERUNBbXd5QXdKc015RWJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVGQU5zTWpBVkEyd3lNUllEYkRJeUZ3TnNNak1ZQTJ3eU5Ca0RiREkxR2dOc01qWWlGUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0l4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0p3TndnQ2NEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE55UVVBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFuQTRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyRVFOc01UY1NBMnd4T0JNRGJERTVKUThBQW5Bd0FRSndNUUlDY0RJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNZREFBSndNQUVDYkRFQ0Ftd3lKdzhBQW5Bd0FRSndNUUlDYkRJREFtd3pCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkNnQ0FBSndNQUVDYkRFcEVRQUNjREFCQW5BeEFnSndNZ01DY0RNRUFuQTBCUUp3TlFZQ2NEWUhBbkEzQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaW9IQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmlzUEFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1nMERiREV6RGdOc01UUXNCQUFDY0RBQkFuQXhBZ0pzTWdNQ2JETXRCUUFDY0RBQkFuQXhBZ0p3TWdNQ2JETUVBbXcwTGdNQUFuQXdBUUpzTVFJQ2JESXZBd0FDY0RBQkFtd3hBZ0pzTWpBSkFBSndNQUVDY0RFQ0Ftd3lBd0pzTXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NE1SWUFBbkF3QVFKd01RSUNiRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0RXdOc01Ua1VBMnd5TUJVRGJESXhNZ29BQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NU13UUFBbkF3QVFKc01RSUNiRElEQW13ek5BUUFBbkF3QVFKc01RSUNiRElEQW13ek5ROEFBbkF3QVFKd01RSUNjRElEQW13ekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hORFlGQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRM0JRQUNjREFCQW5BeEFnSnNNZ01DYkRNRUFtdzBPQWNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyT1FjQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNiRFVHQW13Mk9nY0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJPd2NBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyUEFVQUFuQXdBUUp3TVFJQ2NESURBbXd6QkFKc05EMEZBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFErRHdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSnNOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMFB4SUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE4wQUhBQUp3TUFFQ2NERUNBbXd5QXdKc013UUNiRFFGQW13MUJnSnNOa0VRQUFKd01BRUNjREVDQW5BeUF3SndNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVUlKQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0UXdnQUFuQXdBUUp3TVFJQ2JESURBbXd6QkFKc05BVUNiRFVHQW13MkJ3SnNOMFFRQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOVVVUQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0p3TmdjQ2NEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9FWVJBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSndOZ2NDY0RjSUFtdzRDUUpzT1FvRGJERXdDd05zTVRFTUEyd3hNZzBEYkRFekRnTnNNVFFQQTJ3eE5SQURiREUyUnhNQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW5BMkJ3SndOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRTQmNBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NjRGdKQW5BNUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTU9BMnd4TkE4RGJERTFFQU5zTVRZUkEyd3hOeElEYkRFNEV3TnNNVGtVQTJ3eU1CVURiREl4RmdOc01qSkpRd0FDY0RBQkFuQXhBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPUlFEYkRJd0ZRTnNNakVXQTJ3eU1oY0RiREl6R0FOc01qUVpBMnd5TlJvRGJESTJHd05zTWpjY0Eyd3lPQjBEYkRJNUhnTnNNekFmQTJ3ek1TQURiRE15SVFOc016TWlBMnd6TkNNRGJETTFKQU5zTXpZbEEyd3pOeVlEYkRNNEp3TnNNemtvQTJ3ME1Da0RiRFF4S2dOc05ESXJBMncwTXl3RGJEUTBMUU5zTkRVdUEydzBOaThEYkRRM01BTnNORGd4QTJ3ME9USURiRFV3TXdOc05URTBBMncxTWpVRGJEVXpOZ05zTlRRM0EydzFOVGdEYkRVMk9RTnNOVGM2QTJ3MU9Ec0RiRFU1UEFOc05qQTlBMncyTVQ0RGJEWXlQd05zTmpOQUEydzJORUVEYkRZMVFnTnNOalpLRXdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDY0RZSEFuQTNDQUp3T0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UaExGQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNjRFlIQW5BM0NBSndPQWtDYkRrS0Eyd3hNQXNEYkRFeERBTnNNVElOQTJ3eE13NERiREUwRHdOc01UVVFBMnd4TmhFRGJERTNFZ05zTVRnVEEyd3hPVXdIQUFKd01BRUNjREVDQW13eUF3SnNNd1FDYkRRRkFtdzFCZ0pzTmswTkFBSndNQUVDY0RFQ0FuQXlBd0p3TXdRQ2JEUUZBbXcxQmdKc05nY0NiRGNJQW13NENRSnNPUW9EYkRFd0N3TnNNVEVNQTJ3eE1rNExBQUp3TUFFQ2NERUNBbkF5QXdKc013UUNiRFFGQW13MUJnSnNOZ2NDYkRjSUFtdzRDUUpzT1FvRGJERXdUd1FBQW5Bd0FRSndNUUlDYkRJREFtd3pVQTRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUp3TkFVQ2NEVUdBbkEyQndKd053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTlJEQUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKc05RWUNiRFlIQW13M0NBSnNPQWtDYkRrS0Eyd3hNQXNEYkRFeFVoTUFBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FuQTJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVF3RGJERXlEUU5zTVRNT0Eyd3hOQThEYkRFMUVBTnNNVFlSQTJ3eE54SURiREU0VXlBQUFuQXdBUUp3TVFJQ2NESURBbkF6QkFKd05BVUNjRFVHQW13MkJ3SnNOd2dDYkRnSkFtdzVDZ05zTVRBTEEyd3hNUXdEYkRFeURRTnNNVE1PQTJ3eE5BOERiREUxRUFOc01UWVJBMnd4TnhJRGJERTRFd05zTVRrVUEyd3lNQlVEYkRJeEZnTnNNaklYQTJ3eU14Z0RiREkwR1FOc01qVWFBMnd5TmhzRGJESTNIQU5zTWpnZEEyd3lPUjREYkRNd0h3TnNNekZVRmdBQ2NEQUJBbkF4QWdKd01nTUNjRE1FQW5BMEJRSndOUVlDYkRZSEFtdzNDQUpzT0FrQ2JEa0tBMnd4TUFzRGJERXhEQU5zTVRJTkEyd3hNdzREYkRFMER3TnNNVFVRQTJ3eE5oRURiREUzRWdOc01UZ1RBMnd4T1JRRGJESXdGUU5zTWpGVkN3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1GWUhBQUp3TUFFQ2NERUNBbkF5QXdKd013UUNjRFFGQW5BMUJnSnNObGNxQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEY0lBbXc0Q1FKc09Rb0RiREV3Q3dOc01URU1BMnd4TWcwRGJERXpEZ05zTVRRUEEyd3hOUkFEYkRFMkVRTnNNVGNTQTJ3eE9CTURiREU1RkFOc01qQVZBMnd5TVJZRGJESXlGd05zTWpNWUEyd3lOQmtEYkRJMUdnTnNNalliQTJ3eU54d0RiREk0SFFOc01qa2VBMnd6TUI4RGJETXhJQU5zTXpJaEEyd3pNeUlEYkRNMEl3TnNNelVrQTJ3ek5pVURiRE0zSmdOc016Z25BMnd6T1NnRGJEUXdLUU5zTkRGWUV3QUNjREFCQW5BeEFnSndNZ01DY0RNRUFtdzBCUUpzTlFZQ2JEWUhBbXczQ0FKc09Ba0NiRGtLQTJ3eE1Bc0RiREV4REFOc01USU5BMnd4TXc0RGJERTBEd05zTVRVUUEyd3hOaEVEYkRFM0VnTnNNVGhaQ0FBQ2NEQUJBbXd4QWdKc01nTUNiRE1FQW13MEJRSnNOUVlDYkRZSEFtdzNXZzRBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5RFFOc01UTmJCQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETmNDUUFDY0RBQkFuQXhBZ0p3TWdNQ2NETUVBbkEwQlFKd05RWUNiRFlIQW13M0NBSnNPRjBJQUFKd01BRUNjREVDQW5BeUF3SndNd1FDY0RRRkFuQTFCZ0pzTmdjQ2JEZGVDQUFDY0RBQkFtd3hBZ0pzTWdNQ2JETUVBbXcwQlFKc05RWUNiRFlIQW13M1h3d0FBbkF3QVFKd01RSUNjRElEQW5BekJBSnNOQVVDYkRVR0FtdzJCd0pzTndnQ2JEZ0pBbXc1Q2dOc01UQUxBMnd4TVdBQVlRZ0FBbkF3QVFKd01RSUNjRElEQW5BekJBSndOQVVDY0RVR0FtdzJCd0pzTjJJREFBSndNQUVDY0RFQ0Ftd3lZdzBBQW5Bd0FRSndNUUlDY0RJREFuQXpCQUpzTkFVQ2JEVUdBbXcyQndKc053Z0NiRGdKQW13NUNnTnNNVEFMQTJ3eE1Rd0RiREV5IixVPWE7Ri5oMjY0TW9kdWxlPW5ldyBXZWJBc3NlbWJseS5Nb2R1bGUoVS5kZWNvZGUoTCkpLE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh5LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KTtjb25zdCBZPUYscT1BPT4oSSxnLEIpPT57QS5IRUFQVTguY29weVdpdGhpbihJLGcsZytCKX07ZnVuY3Rpb24gSyhBLEkpe2NvbnN0IGc9QSVJO3JldHVybiBnPjA/QStJLWc6QX1jb25zdCBIPUE9Pkk9Pntjb25zdCBnPUEuSEVBUFU4Lmxlbmd0aCxCPTY1NTM2LFE9MjE0NzQ4MzY0ODtpZihJPlEpcmV0dXJuITE7Y29uc3QgQz0xNjc3NzIxNjtmb3IobGV0IEQ9MTtEPD00O0QqPTIpe2xldCBFPWcqKDErLjIvRCk7RT1NYXRoLm1pbihFLEkrMTAwNjYzMjk2KTtjb25zdCB3PU1hdGgubWluKFEsSyhNYXRoLm1heChDLEksRSksQikpO3RyeXtjb25zdHttZW1vcnk6b309QTtvLmdyb3cody1vLmJ1ZmZlci5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpO2NvbnN0e2J1ZmZlcjpOfT1vO3JldHVybiBBLkhFQVA4PW5ldyBJbnQ4QXJyYXkoTiksQS5IRUFQVTg9bmV3IFVpbnQ4QXJyYXkoTiksQS5IRUFQMzI9bmV3IEludDMyQXJyYXkoTiksITB9Y2F0Y2h7fX1yZXR1cm4hMX0sUj02NTUzNixjPTUyNTE3OTIsZD04NzUyLHQ9MTY3NzcyMTY7Y2xhc3MgaXtjb25zdHJ1Y3Rvcigpe3RoaXMud2lkdGg9MCx0aGlzLmhlaWdodD0wLHRoaXMucGljPW5ldyBVaW50OEFycmF5KDApO2NvbnN0IEk9bmV3IFdlYkFzc2VtYmx5Lk1lbW9yeSh7aW5pdGlhbDp0L1IsbWF4aW11bToyMTQ3NDgzNjQ4L1J9KSxnPXttZW1vcnk6SSxIRUFQODpuZXcgSW50OEFycmF5KEkuYnVmZmVyKSxIRUFQVTg6bmV3IFVpbnQ4QXJyYXkoSS5idWZmZXIpLEhFQVAzMjpuZXcgSW50MzJBcnJheShJLmJ1ZmZlcil9O2cuSEVBUDMyW2Q+PjJdPWM7Y29uc3R7ZXhwb3J0czpCfT1uZXcgV2ViQXNzZW1ibHkuSW5zdGFuY2UoWS5oMjY0TW9kdWxlLHtoMjY0OnttZW1vcnk6SSxtZW1jcHk6cShnKSxyZXNpemU6SChnKX19KTt0aGlzLm1lbW9yeT1nLHRoaXMuYXNtPUIsdGhpcy5wU3RvcmFnZT1CLmgyNjRhbGxvYygpLHRoaXMucFdpZHRoPUIubWFsbG9jKDQpLHRoaXMucEhlaWdodD1CLm1hbGxvYyg0KSx0aGlzLnBQaWN0dXJlPUIubWFsbG9jKDQpLHRoaXMuZGVjQnVmZmVyPUIubWFsbG9jKDEwMjQqMTAyNCksQi5pbml0KHRoaXMucFN0b3JhZ2UsMCl9ZGVjb2RlKEkpe2NvbnN0e21lbW9yeTpnLGFzbTpCfT10aGlzO2cuSEVBUFU4LnNldChJLHRoaXMuZGVjQnVmZmVyKTtjb25zdCBRPUIuZGVjb2RlKHRoaXMucFN0b3JhZ2UsdGhpcy5kZWNCdWZmZXIsSS5ieXRlTGVuZ3RoLHRoaXMucFBpY3R1cmUsdGhpcy5wV2lkdGgsdGhpcy5wSGVpZ2h0KTtpZihRPT09aS5QSUNfUkRZKXtjb25zdCBDPXRoaXMud2lkdGg9Zy5IRUFQMzJbdGhpcy5wV2lkdGg+Pj4yXSxEPXRoaXMuaGVpZ2h0PWcuSEVBUDMyW3RoaXMucEhlaWdodD4+PjJdLEU9Zy5IRUFQMzJbdGhpcy5wUGljdHVyZT4+Ml0sdz1DKkQqMy8yO3RoaXMucGljPWcuSEVBUFU4LnN1YmFycmF5KEUsRSt3KX1yZXR1cm4gUX19dmFyIGI9eS5IMjY0RGVjb2Rlcj1pO2kuUkRZPTAsaS5QSUNfUkRZPTEsaS5IRFJTX1JEWT0yLGkuRVJST1I9MyxpLlBBUkFNX1NFVF9FUlJPUj00LGkuTUVNQUxMT0NfRVJST1I9NTtmdW5jdGlvbiB4KEEpe3JldHVybiBVaW50OEFycmF5LmZyb20oYXRvYihBKSxJPT5JLmNoYXJDb2RlQXQoMCkpfWNvbnN0IHM9c2VsZixrPW5ldyBiLG09Si5zZWNvbmQvNTthZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIixBPT57Y29uc3R7dGltZXN0YW1wOkksZmxhZ3M6ZyxpbmRleDpCfT1BLmRhdGEsUT1EYXRlLm5vdygpLUk7aWYoUT5tJiZnIT09Myl7TShgRnJhbWUgaXMgJHtRfW1zIGxhdGUsIGRyb3BwaW5nYCxCKTtyZXR1cm59Y29uc3QgQz14KEEuZGF0YS5lbmNvZGVkRnJhbWUpLEQ9ay5kZWNvZGUoQyk7dHJ5e2lmKEQhPT0xKXtNKGBmYWlsZWQgdG8gZGVjb2RlIGZyYW1lLCBzdGF0dXM6ICR7bihEKX1gLEIsQyk7cmV0dXJufWNvbnN0e3BpYzpFLGhlaWdodDp3LHdpZHRoOm99PWs7aWYoRS5sZW5ndGg9PT0wfHx3PT09MHx8bz09PTApe00oImRlY29kZWQgZnJhbWUgaGFzIG5vIGRhdGEiLEIsQyk7cmV0dXJufWNvbnN0IE49bmV3IFVpbnQ4Q2xhbXBlZEFycmF5KEUpO3MucG9zdE1lc3NhZ2Uoe3RpbWVzdGFtcDpBLmRhdGEudGltZXN0YW1wLHl1djpOLGhlaWdodDp3LHdpZHRoOm8saW5kZXg6Qn0pfWNhdGNoKEUpe00oRSxCKX19KTtmdW5jdGlvbiBNKEEsSSxnKXtzLnBvc3RNZXNzYWdlKHtlcnJvcjpgaDI2NCBkZWNvZGVyIHdvcmtlcjogJHtBfWAsaW5kZXg6SX0pfWZ1bmN0aW9uIG4oQSl7c3dpdGNoKEEpe2Nhc2UgMDpyZXR1cm4iUkRZIjtjYXNlIDE6cmV0dXJuIlBJQ19SRFkiO2Nhc2UgMjpyZXR1cm4iSERSU19SRFkiO2Nhc2UgMzpyZXR1cm4iRVJST1IiO2Nhc2UgNDpyZXR1cm4iUEFSQU1fU0VUX0VSUk9SIjtjYXNlIDU6cmV0dXJuIk1FTUFMTE9DX0VSUk9SIjtkZWZhdWx0OnJldHVybiBBLnRvU3RyaW5nKCl9fX0pfSkoKTsK",blob$2=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs$2)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$2(){let e;try{if(e=blob$2&&(window.URL||window.webkitURL).createObjectURL(blob$2),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$2)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}const millisecond=1,second=1e3,minute=60*second,hour=60*minute,day=24*hour,week=7*day,month=30*day,year=365*day,duration={millisecond,second,minute,hour,day,week,month,year};function filterDataByTime(e,t,n){const r=t.getTime(),o=n.getTime();return e.map(s=>({...s,points:s.points.filter(([g])=>g>=r&&g<o)})).filter(({points:s})=>s.length>0)}function filterDataByType(e,t){return e.filter(n=>n.type===t)}function fork(e){}class StoreCache{constructor({capacity:t,timeout:n}={}){he(this,"entries",new Map);he(this,"metadata",new Map);he(this,"capacity");he(this,"timeout");this.capacity=t||1e4,this.timeout=n||duration.minute}get(t,n){const r=this.keyToCacheKey(t),o=this.entries.get(r),s=this.metadata.get(r);return(o===void 0||s&&(s==null?void 0:s.expiration.getTime())<Date.now())&&!(s!=null&&s.generating)&&n&&this.generate(t,n()),o===void 0&&s&&s.lastValue!==void 0?s.lastValue:o}set(t,n){const r=this.keyToCacheKey(t);this.metadata.set(r,{generating:!1,expiration:new Date(Date.now()+this.timeout),lastValue:n}),this.entries.set(r,n),this.metadata.size>this.capacity&&this.deleteOldestEntry()}clear(){this.entries.clear(),[...this.metadata.values()].forEach(t=>t.generating=!1)}clearKey(t){this.metadata.delete(t),this.entries.delete(t)}keyToCacheKey(t){return JSON.stringify(t)}deleteOldestEntry(){if(this.metadata.size<1)return;const[t]=[...this.metadata.entries()].reduce(([n,r],[o,s])=>s.expiration.getTime()<r.expiration.getTime()?[o,s]:[n,r]);this.clearKey(t)}generate(t,n){const r=this.keyToCacheKey(t),o=this.metadata.get(r)||{};this.metadata.set(r,{...o,generating:!0,expiration:new Date(Date.now()+this.timeout)}),setTimeout(()=>{n.then(s=>{const g=this.metadata.get(r);!(g!=null&&g.generating)||this.set(t,s)})},0)}}function roundToNearestSecond(e){return new Date(Math.round(e.getTime()/1e3)*1e3)}class QueryStore{constructor(){he(this,"queryStoreCache",new StoreCache({capacity:1e4,timeout:20*duration.second}));he(this,"liveQueryStoreCache",new StoreCache({capacity:1e4,timeout:1*duration.second}))}moduleQuery(t,n,r,o,s,g=!1){const l={...t,names:[n],types:[r],start:o.toISOString(),end:s.toISOString(),latestOnly:g},u=this.query(l);return u===void 0||u==="too much data"?u:filterDataByType(u,r)}query(t){const n=new Date(t.end)>addSeconds(new Date,-20),r=startOfMinute(new Date(t.start)).toISOString(),o=t.latestOnly?addSeconds(roundToNearestSecond(new Date(t.end)),5).toISOString():addMinutes(roundToNearestMinutes(new Date(t.end)),1).toISOString();let s;return n?s=this.liveQueryCache({...t,start:r,end:o}):s=this.queryCache({...t,start:r,end:o}),!s||s==="too much data"||t.latestOnly?s:filterDataByTime(s,new Date(r),new Date(o))}queryCache(t){return this.queryStoreCache.get(t,async()=>{try{return await Fleet.queryTelemetry(t)}catch(n){throw n}})}liveQueryCache(t){return this.liveQueryStoreCache.get(t,async()=>{try{return await Fleet.queryTelemetry(t)}catch(n){throw n}})}}const debug=new URLSearchParams(window.location.search).get("debug")==="true";class BasicUniverseDataConnector{constructor(){he(this,"subscriberSources",new Map);he(this,"subscriberLoaders",new Map);he(this,"subscriberDistributorsLoaders",new Map);he(this,"mapRealtimeConnections",new Map);he(this,"lastQueriedHistoricTime");he(this,"time");he(this,"timeChangeListeners",[]);he(this,"queryStore",new QueryStore);this.time="live";const t=async()=>{if(Array.from(this.subscriberLoaders.keys()).length>0){const n=[],r=this.generateTelemetryFilter(),o=this.queryStore.query(r);if(!o||o==="too much data")return;o.forEach(u=>{n.push(u.deviceId)});const s=Array.from(new Set(n)),g=[];s.forEach(u=>{const c=this.subscriberLoaders.get(u);c&&c.forEach(d=>{g.push(d(o))})}),(await Promise.all(g)).forEach(u=>{if(u.data){const c=this.subscriberDistributorsLoaders.get(u.deviceId);if(c){const d=c.get(u.sourceId);d&&d.forEach(B=>{B(u.data)})}}})}setTimeout(()=>t(),0)};setTimeout(()=>t(),0)}setTime(t){t!=="live"&&(this.time=t),this.timeChangeListeners.forEach(n=>n(t))}getTime(){return this.time}getTimeMs(){return this.time==="live"?new Date().getTime():this.time.getTime()}generateTelemetryFilter(){const t=Array.from(this.subscriberSources.keys()),n=[];return t.forEach(r=>{const o=this.subscriberSources.get(r);o&&Array.from(o==null?void 0:o.values()).forEach(s=>{s.sourceType==="telemetry"&&n.push(s.streamName)})}),{deviceIds:t,names:n,start:subDays(new Date,20).toISOString(),end:new Date().toISOString(),latestOnly:!0}}async sendRtcMessage(t,n){await this.createRealtimeConnection(t);const r=this.mapRealtimeConnections.get(t);r&&r!=="loading"&&r&&r.sendRealtimeMessage(n,{channelLabel:"stream.reliable"})}async createRealtimeConnection(t,n=signaling_pb.SessionType.TELEOP){const r=this.mapRealtimeConnections.get(t);if(r===void 0){this.mapRealtimeConnections.set(t,"loading");const o=t.startsWith("http");console.log("Creating {} realtime connection",o?"peer":"cloud");let s;o?s=new PeerDevice(t):s=await Fleet.getDevice(t),await s.startRealtimeConnection(n),debug&&s.addRealtimeListener((g,l)=>{console.log("received message from peer",g,l)}),this.mapRealtimeConnections.set(t,s)}else r==="loading"&&await new Promise(o=>{const s=setInterval(()=>{const g=this.mapRealtimeConnections.get(t);g&&g!=="loading"&&(clearInterval(s),o())},100)})}addRemovableTelemetrySubscription(t,n,r,o){let s=this.subscriberLoaders.get(t);s||(s=new Map,this.subscriberLoaders.set(t,s)),s.get(n.id)||s.set(n.id,r);let l=this.subscriberDistributorsLoaders.get(t);l||(l=new Map,this.subscriberDistributorsLoaders.set(t,l));const u=l.get(n.id);u?u.push(o):l.set(n.id,[o]);let c=this.subscriberSources.get(t);return c||(c=new Map,this.subscriberSources.set(t,c)),c.set(n.id,n),()=>{const d=this.subscriberLoaders.get(t);d&&d.delete(n.id);const B=this.subscriberDistributorsLoaders.get(t);if(B){const f=B.get(n.id);if(f){const p=f.indexOf(o);p>-1&&f.splice(p,1)}}const Q=this.subscriberSources.get(t);Q&&Q.delete(n.id)}}createH264Drawer(){return new H264BytestreamCanvasDrawer(()=>new WorkerWrapper$2,()=>{},()=>{})}async sendCommand(t,n,r){const o=this.mapRealtimeConnections.get(t);if(o==="loading"||o===void 0)throw new Error("Device is not ready or doesnt exist");await o.sendCommand(n,r)}async sendRealtimePose(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"pose"},{pose:r},"vision");await this.sendRtcMessage(t,o)}async sendRealtimeBoolean(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"boolean"},{boolean:r});await this.sendRtcMessage(t,o)}async sendRealtimeBitset(t,n,r){const o=distExports.createRtcStreamMessage({entityId:t,streamName:n,streamType:"bitset"},{bitset:{bits:r.keys.map((s,g)=>({key:s,value:r.values[g]}))}});await this.sendRtcMessage(t,o)}async getUrdfs(t){const r=await(await Fleet.getDevice(t)).getConfiguration();return!r.urdfFiles||r.urdfFiles.length===0?[]:[await Fleet.getFileUrl(r.urdfFiles[0])]}async getTelemetryStreams(t){throw new Error("Not implemented")}async getTeleopRosStreams(t){throw new Error("Not implemented")}async getHardwareStreams(t){throw new Error("Not implemented")}addInteraction(t){throw new Error("Method not implemented.")}removeInteraction(t){throw new Error("Method not implemented.")}getInteractions(){throw new Error("Method not implemented.")}addInteractionsChangedListener(t){throw new Error("Method not implemented.")}addInteractionListener(t){throw new Error("Method not implemented.")}getRealtimeButtons(t){throw new Error("Method not implemented.")}async getLatestTransformTrees(t){throw new Error("Not implemented")}async getLatestLocations(){return[{streamName:"spotLocation",location:{latitude:45.4661989,longitude:-122.5782375}}]}async getDeviceContexts(){return[]}async getDeviceContextName(t){throw new Error("Not implemented")}async getTelemetryStreamType(t,n){throw new Error("Not implemented")}async getStatistics(){return{rtcDevices:[]}}subscribeDataSourceStateChange(t,n,r){return()=>{}}async fetchImage(t){const n=new Image;return n.src=t,n.setAttribute("crossOrigin",""),await new Promise(r=>{n.onload=r}),n}}function defined(e,t){if(e!==void 0)return e;throw new Error(t||"Value is undefined")}const encodedJs$1="dmFyIFI9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBHPShNLGIseCk9PmIgaW4gTT9SKE0sYix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6eH0pOk1bYl09eDt2YXIgST0oTSxiLHgpPT4oRyhNLHR5cGVvZiBiIT0ic3ltYm9sIj9iKyIiOmIseCkseCk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IFM9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24gcShvKXt9Y2xhc3MgX3tjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6dCx0aW1lb3V0Om59PXt9KXtJKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO0kodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO0kodGhpcywiY2FwYWNpdHkiKTtJKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PXR8fDFlNCx0aGlzLnRpbWVvdXQ9bnx8Uy5taW51dGV9Z2V0KHQsbil7Y29uc3QgZT10aGlzLmtleVRvQ2FjaGVLZXkodCksYz10aGlzLmVudHJpZXMuZ2V0KGUpLGk9dGhpcy5tZXRhZGF0YS5nZXQoZSk7cmV0dXJuKGM9PT12b2lkIDB8fGkmJihpPT1udWxsP3ZvaWQgMDppLmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmIShpIT1udWxsJiZpLmdlbmVyYXRpbmcpJiZuJiZ0aGlzLmdlbmVyYXRlKHQsbigpKSxjPT09dm9pZCAwJiZpJiZpLmxhc3RWYWx1ZSE9PXZvaWQgMD9pLmxhc3RWYWx1ZTpjfXNldCh0LG4pe2NvbnN0IGU9dGhpcy5rZXlUb0NhY2hlS2V5KHQpO3RoaXMubWV0YWRhdGEuc2V0KGUse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOm59KSx0aGlzLmVudHJpZXMuc2V0KGUsbiksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKHQ9PnQuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkodCl7dGhpcy5tZXRhZGF0YS5kZWxldGUodCksdGhpcy5lbnRyaWVzLmRlbGV0ZSh0KX1rZXlUb0NhY2hlS2V5KHQpe3JldHVybiBKU09OLnN0cmluZ2lmeSh0KX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFt0XT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW24sZV0sW2MsaV0pPT5pLmV4cGlyYXRpb24uZ2V0VGltZSgpPGUuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2MsaV06W24sZV0pO3RoaXMuY2xlYXJLZXkodCl9Z2VuZXJhdGUodCxuKXtjb25zdCBlPXRoaXMua2V5VG9DYWNoZUtleSh0KSxjPXRoaXMubWV0YWRhdGEuZ2V0KGUpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChlLHsuLi5jLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57bi50aGVuKGk9Pntjb25zdCByPXRoaXMubWV0YWRhdGEuZ2V0KGUpOyEociE9bnVsbCYmci5nZW5lcmF0aW5nKXx8dGhpcy5zZXQodCxpKX0pfSwwKX19LyoqCiAqIExaRiBjb21wcmVzc2lvbi9kZWNvbXByZXNzaW9uIG1vZHVsZS4gUG9ydGVkIGZyb20gdGhlIEMKICogaW1wbGVtZW50YXRpb24gb2YgbGlibHpmLCBzcGVjZmljYWxseSBsemZfYy5jIGFuZCBsemZfZC5jCiAqIEBsaWNlbnNlIEJTRC0yLUNsYXVzZQogKi9mdW5jdGlvbiBLKG8pe3ZhciB0PW5ldyBVaW50OEFycmF5KG8pLG49W10sZT0wLGM9MDtkb3t2YXIgaT10W2UrK107aWYoaTwxPDw1KXtpZihpKyssZStpPnQubGVuZ3RoKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO2Zvcig7aS0tOyluW2MrK109dFtlKytdfWVsc2V7dmFyIHI9aT4+NSxmPWMtKChpJjMxKTw8OCktMTtpZihlPj10Lmxlbmd0aCl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihyPT03JiYocis9dFtlKytdLGU+PXQubGVuZ3RoKSl0aHJvdyBuZXcgRXJyb3IoIkludmFsaWQgaW5wdXQiKTtpZihmLT10W2UrK10sZjwwKXRocm93IG5ldyBFcnJvcigiSW52YWxpZCBpbnB1dCIpO3IrPTI7ZG8gbltjKytdPW5bZisrXTt3aGlsZSgtLXIpfX13aGlsZShlPHQubGVuZ3RoKTtpZih0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihuKTt2YXIgdT1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7cmV0dXJuIHUuc2V0KG4pLHV9ZnVuY3Rpb24gTyhvKXt2YXIgdD0xNixuPTE8PHQsZT0xPDwxMyxjPSgxPDw4KSsoMTw8MyksaT0xPDw1O2Z1bmN0aW9uIHIodixUKXtyZXR1cm4gdltUXTw8OHx2W1QrMV19ZnVuY3Rpb24gZih2LFQsUCl7cmV0dXJuIHY8PDh8VFtQKzJdfWZ1bmN0aW9uIHUodil7cmV0dXJuIHYqNTA2ODMyODI5Pj4zMi10LTgmbi0xfWZvcih2YXIgcz1uZXcgVWludDhBcnJheShvKSxhPVtdLGQ9bmV3IFVpbnQzMkFycmF5KG4pLHk9cy5sZW5ndGgsaD0wLGc9cihzLGgpLHA9MSxsPTA7aDx5LTI7KXtnPWYoZyxvLGgpO3ZhciB6PXUoZyksbT1kW3pdO2Rbel09aDt2YXIgRTtpZihtPGgmJihFPWgtbS0xKTxlJiZtPjAmJnNbbSsyXT09c1toKzJdJiZzW20rMV09PXNbaCsxXSYmc1ttXT09c1toXSl7dmFyIHc9MixGPXktaC13O0Y9Rj5jP2M6RixhW3AtbC0xXT1sLTEmMjU1LGw9PTAmJihwLT0xKTtkbyB3Kys7d2hpbGUodzxGJiZzW20rd109PXNbaCt3XSk7aWYody09MixoKyssdzw3P2FbcCsrXT0oRT4+OCkrKHc8PDUpJjI1NTooYVtwKytdPShFPj44KSsoNzw8NSkmMjU1LGFbcCsrXT13LTcmMjU1KSxhW3ArK109RSYyNTUsbD0wLHArKyxoKz13KzEsaD49eS0yKWJyZWFrOy0taCwtLWgsZz1yKHMsaCksZz1mKGcscyxoKSxkW3UoZyldPWgrKyxnPWYoZyxzLGgpLGRbdShnKV09aCsrfWVsc2UgbCsrLGFbcCsrXT1zW2grK10sbD09aSYmKGFbcC1sLTFdPWwtMSYyNTUsbD0wLHArKyl9Zm9yKDtoPHk7KWwrKyxhW3ArK109c1toKytdLGw9PWkmJihhW3AtbC0xXT1sLTEmMjU1LGw9MCxwKyspO2lmKGwhPTAmJihhW3AtbC0xXT1sLTEmMjU1KSx0eXBlb2YgQnVmZmVyIT0idW5kZWZpbmVkIilyZXR1cm4gbmV3IEJ1ZmZlcihhKTt2YXIgVT1uZXcgVWludDhBcnJheShhLmxlbmd0aCk7cmV0dXJuIFUuc2V0KGEpLFV9dmFyIEI9e2RlY29tcHJlc3M6Syxjb21wcmVzczpPfTtjb25zdCBDPShvLHQpPT50PD1vP1tdOm5ldyBBcnJheSh0LW8pLmZpbGwoMCkubWFwKChuLGUpPT5lK28pLEE9ITA7ZnVuY3Rpb24gSChvKXtjb25zdCB0PWF0b2Iobyksbj10Lmxlbmd0aCxlPW5ldyBVaW50OEFycmF5KG4pO2ZvcihsZXQgYz0wO2M8bjtjKz0xKWVbY109dC5jaGFyQ29kZUF0KGMpO3JldHVybiBlLmJ1ZmZlcn1mdW5jdGlvbiBMKG8pe2NvbnN0IHQ9bmV3IFVpbnQ4QXJyYXkobyk7bGV0IG49IiIsZT0wO2Zvcig7ZTx0Lmxlbmd0aCYmbi5zZWFyY2goL1tcclxuXURBVEFccyhcUyopXHMvaSk9PT0tMTtlKz0xKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtlXSk7cmV0dXJue2JvZHk6by5zbGljZShlKSxoZWFkZXI6bi5yZXBsYWNlKC8jLiovZ2ksIiIpfX1mdW5jdGlvbiBWKG8pe2NvbnN0IG49bmV3IFVpbnQzMkFycmF5KG8sMCwyKVswXTtyZXR1cm4gbj09PTA/bmV3IEFycmF5QnVmZmVyKDApOkIuZGVjb21wcmVzcyhuZXcgVWludDhBcnJheShvLDgsbikpLmJ1ZmZlcn1mdW5jdGlvbiBrKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09TChvKSxlPS9WRVJTSU9OICguKikvaS5leGVjKHQpO2lmKGU9PT1udWxsKXRocm93IG5ldyBFcnJvcihgTWlzc2luZyB2ZXJzaW9uLiBIZWFkZXIgJHt0fWApO2NvbnN0IGM9ZVsxXSxpPS9GSUVMRFMgKC4qKS9pLmV4ZWModCk7aWYoIWkpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGZpZWxkcyIpO2NvbnN0IHI9aVsxXS5zcGxpdCgiICIpLGY9L1NJWkUgKC4qKS9pLmV4ZWModCk7aWYoIWYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHNpemUiKTtjb25zdCB1PWZbMV0uc3BsaXQoIiAiKS5tYXAodj0+cGFyc2VJbnQodiwxMCkpLHM9L1RZUEUgKC4qKS9pLmV4ZWModCk7aWYoIXMpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIHR5cGUiKTtjb25zdCBhPXNbMV0uc3BsaXQoIiAiKSxkPS9DT1VOVCAoLiopL2kuZXhlYyh0KTtsZXQgeTtkJiYoeT1kWzFdLnNwbGl0KCIgIikubWFwKHY9PnBhcnNlSW50KHYsMTApKSk7Y29uc3QgaD15fHxyLm1hcCh2PT4xKSxnPS9XSURUSCAoLiopL2kuZXhlYyh0KTtpZighZyl0aHJvdyBuZXcgRXJyb3IoIk1pc3Npbmcgd2lkdGgiKTtjb25zdCBwPXBhcnNlSW50KGdbMV0sMTApLGw9L0hFSUdIVCAoLiopL2kuZXhlYyh0KTtpZighbCl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgaGVpZ2h0Iik7Y29uc3Qgej1wYXJzZUludChsWzFdLDEwKSxtPS9QT0lOVFMgKC4qKS9pLmV4ZWModCk7bGV0IEU7bSYmKEU9cGFyc2VJbnQobVsxXSwxMCkpO2NvbnN0IHc9RXx8cCp6LEY9L0RBVEEgKC4qKS9pLmV4ZWModCk7aWYoIUYpdGhyb3cgbmV3IEVycm9yKCJNaXNzaW5nIGRhdGEiKTtjb25zdCBVPUZbMV07cmV0dXJue2JvZHk6bixoZWFkZXI6e2NvdW50OmgsZGF0YTpVLGZpZWxkczpyLGhlaWdodDp6LHBvaW50czp3LHNpemU6dSx0eXBlOmEsdmVyc2lvbjpjLHdpZHRoOnB9fX1mdW5jdGlvbiBOKG8pe2NvbnN0IHQ9e307cmV0dXJuIG8uZmllbGRzLnJlZHVjZSgoe29mZnNldHM6bixzaXplOmV9LGMsaSk9PntsZXQgcj1lO3JldHVybiBjPT09IngiJiYobi54PXIpLGM9PT0ieSImJihuLnk9ciksYz09PSJ6IiYmKG4uej1yKSxjPT09InJnYiImJihuLnJnYj1yKSxjPT09InJnYmEiJiYobi5yZ2JhPXIpLGM9PT0iaW50ZW5zaXR5IiYmKG4uaW50ZW5zaXR5PXIpLG8uZGF0YT09PSJhc2NpaSI/cis9MTpvLmRhdGE9PT0iYmluYXJ5Ij9yKz1vLnNpemVbaV0qby5jb3VudFtpXTpvLmRhdGE9PT0iYmluYXJ5X2NvbXByZXNzZWQiJiYocis9by5zaXplW2ldKm8uY291bnRbaV0qby5wb2ludHMpLHtvZmZzZXRzOm4sc2l6ZTpyfX0se29mZnNldHM6dCxzaXplOjB9KX1mdW5jdGlvbiBEKG8pe2NvbnN0e2hlYWRlcjp0LGJvZHk6bn09ayhvKSx7b2Zmc2V0czplLHNpemU6Y309Tih0KTtsZXQgaTtlLnghPT12b2lkIDAmJmUueSE9PXZvaWQgMCYmZS56IT09dm9pZCAwJiYoaT1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKjMpKTtsZXQgcjsoZS5yZ2IhPT12b2lkIDB8fGUucmdiYSE9PXZvaWQgMCkmJihyPW5ldyBGbG9hdDMyQXJyYXkodC5wb2ludHMqNCkpO2xldCBmO2lmKGUuaW50ZW5zaXR5IT09dm9pZCAwJiYoZj1uZXcgRmxvYXQzMkFycmF5KHQucG9pbnRzKSksdC5kYXRhPT09ImFzY2lpIilTdHJpbmcuZnJvbUNoYXJDb2RlKC4uLm5ldyBVaW50OEFycmF5KG4pKS5zcGxpdChgCmApLmZvckVhY2goKGEsZCk9Pntjb25zdCB5PWEuc3BsaXQoIiAiKTtpZihpIT09dm9pZCAwJiYoaVtkKjMrMF09cGFyc2VGbG9hdCh5W2UueHx8MF0pLGlbZCozKzFdPXBhcnNlRmxvYXQoeVtlLnl8fDBdKSxpW2QqMysyXT1wYXJzZUZsb2F0KHlbZS56fHwwXSkpLHIhPT12b2lkIDApe2NvbnN0IGg9bmV3IEludDMyQXJyYXkoW3BhcnNlSW50KHlbZS5yZ2J8fGUucmdiYXx8MF0sMTApXSksZz1uZXcgRGF0YVZpZXcoaC5idWZmZXIsMCk7cltkKjMrMF09Zy5nZXRVaW50OCgyKS8yNTUscltkKjMrMV09Zy5nZXRVaW50OCgxKS8yNTUscltkKjMrMl09Zy5nZXRVaW50OCgwKS8yNTV9ZiE9PXZvaWQgMCYmKGZbZF09cGFyc2VGbG9hdCh5W2UuaW50ZW5zaXR5fHwwXSkpfSk7ZWxzZSBpZih0LmRhdGE9PT0iYmluYXJ5Iil7Y29uc3QgdT1uZXcgRGF0YVZpZXcobik7QygwLHQucG9pbnRzKS5mb3JFYWNoKHM9Pntjb25zdCBhPWMqcztpZihpIT09dm9pZCAwJiYoaVtzKjMrMF09dS5nZXRGbG9hdDMyKGErKGUueHx8MCksQSksaVtzKjMrMV09dS5nZXRGbG9hdDMyKGErKGUueXx8MCksQSksaVtzKjMrMl09dS5nZXRGbG9hdDMyKGErKGUuenx8MCksQSkpLHIhPT12b2lkIDApe2NvbnN0IGQ9YSsoZS5yZ2J8fGUucmdiYXx8MCk7ZCsyPD11LmJ5dGVMZW5ndGgmJihyW3MqNCswXT11LmdldFVpbnQ4KGQrMikvMjU1LHJbcyo0KzFdPXUuZ2V0VWludDgoZCsxKS8yNTUscltzKjQrMl09dS5nZXRVaW50OChkKzApLzI1NSxyW3MqNCszXT0xKX1mIT09dm9pZCAwJiYoZltzXT11LmdldEZsb2F0MzIoYSsoZS5pbnRlbnNpdHl8fDApLEEpKX0pfWVsc2UgaWYodC5kYXRhPT09ImJpbmFyeV9jb21wcmVzc2VkIil7Y29uc3QgdT1WKG4pLHM9bmV3IERhdGFWaWV3KHUpO0MoMCx0LnBvaW50cykuZm9yRWFjaChhPT57aWYoaSE9PXZvaWQgMCYmKGlbYSozKzBdPXMuZ2V0RmxvYXQzMigoZS54fHwwKSthKjQsQSksaVthKjMrMV09cy5nZXRGbG9hdDMyKChlLnl8fDApK2EqNCxBKSxpW2EqMysyXT1zLmdldEZsb2F0MzIoKGUuenx8MCkrYSo0LEEpKSxyIT09dm9pZCAwKXtjb25zdCBkPShlLnJnYnx8ZS5yZ2JhfHwwKSthKjQ7ZCsyPD1zLmJ5dGVMZW5ndGgmJihyW2EqNCswXT1zLmdldFVpbnQ4KGQrMikvMjU1LHJbYSo0KzFdPXMuZ2V0VWludDgoZCsxKS8yNTUsclthKjQrMl09cy5nZXRVaW50OChkKzApLzI1NSxyW2EqNCszXT0xKX1mIT09dm9pZCAwJiYoZlthXT1zLmdldEZsb2F0MzIoKGUuaW50ZW5zaXR5fHwwKSthKjQsQSkpfSl9cmV0dXJue2NvbG9yczpyLGhlYWRlcjp0LGludGVuc2l0eTpmLHBvc2l0aW9uczppfX1mdW5jdGlvbiBYKG8pe3JldHVybiBEKEgobykpfWNvbnN0IFo9bmV3IF8oe2NhcGFjaXR5OjFlMyx0aW1lb3V0OjEqUy5taW51dGV9KTtvbm1lc3NhZ2U9YXN5bmMgbz0+e2NvbnN0e3VybDp0LGlkOm4scG9pbnRDbG91ZDplfT1vLmRhdGE7aWYodCl7Y29uc3QgYz1aLmdldCh0LGFzeW5jKCk9PkQoYXdhaXQgZmV0Y2godCx7bW9kZToiY29ycyJ9KS50aGVuKHI9PnIuYXJyYXlCdWZmZXIoKSkpKTtjJiZwb3N0TWVzc2FnZSh7dXJsOnQscGNkOmN9KX1pZihuJiZlKXtjb25zdCBjPVgoZSk7cG9zdE1lc3NhZ2Uoe2lkOm4scGNkOmN9KX19fSkoKTsK",blob$1=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs$1)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper$1(){let e;try{if(e=blob$1&&(window.URL||window.webkitURL).createObjectURL(blob$1),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs$1)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}class LiveUniverseData extends BasicUniverseDataConnector{constructor(){super()}subscribeToPath(t,n,r){throw new Error("Method not implemented.")}subscribeToImage(t,n,r){throw new Error("Method not implemented.")}subcribeToVideo(t,n,r){throw new Error("Method not implemented.")}subscribeToBitset(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{if(g.payload.bitset){const l=g.payload.bitset,u={keys:[],values:[]};l.bits.forEach(c=>{u.keys.push(c.key),u.values.push(c.value)}),r(u)}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}throw new Error("Telemetry bitset not implemented")}subscribeToOdometry(t,n,r,o){if(n.sourceType==="realtime"){const s=(g,l)=>{if(l.payload.odometry){const u=l.payload.odometry;r({worldToLocal:u.worldToLocal,pose:{translation:{x:u.pose.translation.x,y:u.pose.translation.y,z:u.pose.translation.z},rotation:{x:u.pose.rotation.x,y:u.pose.rotation.y,z:u.pose.rotation.z,w:u.pose.rotation.w}},covariance:[]})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,s),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,s)}}if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async s=>{let g,l;for(let u=0;u<s.length;u+=1){const c=s[u];if(c.deviceId===t&&c.name===n.streamName&&c.type==="localization"){const[d,B]=c.points[c.points.length-1];g=B}}return g&&g.odometry&&(l={worldToLocal:g.odometry.worldToLocal,pose:{translation:{x:g.odometry.pose.translation.x,y:g.odometry.pose.translation.y,z:g.odometry.pose.translation.z},rotation:{x:g.odometry.pose.rotation.x,y:g.odometry.pose.rotation.y,z:g.odometry.pose.rotation.z,w:g.odometry.pose.rotation.w}},covariance:[]}),{deviceId:t,sourceId:n.id,data:l}},r);throw new Error("unexpected")}subscribeToPose(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.pose&&r(g.payload.pose)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}throw new Error("unexpected")}subscribeToNumeric(t,n,r){if(n.sourceType==="realtime"){const o=async(s,g)=>{g.payload.numeric&&r([[Date.now(),g.payload.numeric.value]])};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToNumericSet(t,n,r){if(n.sourceType==="telemetry"){let o;const s=setInterval(async()=>{o||(o=await Fleet.getDevice(t));const g=new Date,l=new Date(g.getTime()-15*1e3),u=await o.getTelemetry(n.streamName,l,g);if(u.length>0){const c=u[0].points;r(c)}},1e3);return()=>{clearInterval(s)}}return()=>{}}async subscribeToRealtimeMessages(t,n,r){await this.createRealtimeConnection(t,signaling_pb.SessionType.OBSERVE);const o=this.mapRealtimeConnections.get(t);o&&o!=="loading"&&(o.startListeningToRealtimeDataStream({name:n}),o.addRealtimeListener((s,g)=>{g.header.stream.streamName===n&&r(s,g)}))}async unsubscribeToRealtimeMessages(t,n,r){const o=this.mapRealtimeConnections.get(t);o&&o!=="loading"&&(o.stopListeningToRealtimeDataStream({name:n}),o.removeRealtimeListener(r))}subscribeToJson(t,n,r){if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="json"){const[c,d]=u.points[u.points.length-1];s=d}}return s&&(g=await fetch(s).then(l=>l.json())),{deviceId:t,sourceId:n.id,data:g}},r);if(n.sourceType==="realtime"){const o=async(s,g)=>{g.payload.jsonString&&r(JSON.parse(g.payload.jsonString.value))};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToText(t,n,r){return n.sourceType==="telemetry"?this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="text"){const[c,d]=u.points[u.points.length-1];s=d}}return s&&(g=await fetch(s).then(l=>l.text())),{deviceId:t,sourceId:n.id,data:g}},r):()=>{}}subscribeToPointCloud(t,n,r){let o;const s=new WorkerWrapper$1;if(n.sourceType==="telemetry"&&n.streamType!=="localization"&&(o=this.addRemovableTelemetrySubscription(t,n,async g=>{let l,u;for(let c=0;c<g.length;c+=1){const d=g[c];if(d.deviceId===t&&d.name===n.streamName&&d.type==="point cloud"){const[B,Q]=d.points[d.points.length-1];l=Q;break}}if(l){const{url:c}=l;u=await new Promise(d=>{s.postMessage({url:c}),s.onmessage=B=>{B.data.url===c&&d(B.data.pcd)}})}return{deviceId:t,sourceId:n.id,data:{worldToLocal:l==null?void 0:l.worldToLocal,pcd:u}}},r)),n.sourceType==="telemetry"&&n.streamType==="localization"&&(o=this.addRemovableTelemetrySubscription(t,n,async g=>{let l,u;for(let c=0;c<g.length;c+=1){const d=g[c];if(d.deviceId===t&&d.name===n.streamName&&d.type==="localization"){const[B,Q]=d.points[d.points.length-1];l=Q;break}}if(l&&l.pointClouds){const{url:c}=l.pointClouds[0];u=await new Promise(d=>{s.postMessage({url:c}),s.onmessage=B=>{B.data.url===c&&d(B.data.pcd)}})}return{deviceId:t,sourceId:n.id,data:{worldToLocal:l&&(l!=null&&l.pointClouds)&&(l!=null&&l.pointClouds[0])?l.pointClouds[0].worldToLocal:void 0,pcd:u}}},r)),n.sourceType==="realtime"){const g=async(l,u)=>{var c;if(u.payload.pointCloud){const d=Math.random(),B=await new Promise(Q=>{s.postMessage({id:d,pointCloud:defined(u.payload.pointCloud).data}),s.onmessage=f=>{f.data.id===d&&Q(f.data.pcd)}});r({worldToLocal:(c=u.payload.pointCloud)==null?void 0:c.world_to_local,pcd:B})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,g),()=>{s.terminate(),this.unsubscribeToRealtimeMessages(t,n.rosTopicName,g)}}return()=>{s.terminate(),o==null||o()}}subscribeToGeometry(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.markerArray&&r(g.payload.markerArray)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToJointState(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{g.payload.jointState&&r(g.payload.jointState)};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}return()=>{}}subscribeToGridMap(t,n,r){if(n.sourceType==="realtime"){const o=(s,g)=>{if(g.payload.jsonString){const l=JSON.parse(g.payload.jsonString.value);r({width:l.info.width,height:l.info.height,worldToLocal:{translation:{x:0,y:0,z:0},rotation:{x:0,y:0,z:0,w:1}},resolution:l.info.resolution,origin:{translation:l.info.origin.position,rotation:l.info.origin.orientation},data:l.data,alpha:l.data.map(()=>255)})}};return this.subscribeToRealtimeMessages(t,n.rosTopicName,o),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,o)}}else if(n.sourceType==="telemetry"&&n.streamType==="localization")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s,g;for(let l=0;l<o.length;l+=1){const u=o[l];if(u.deviceId===t&&u.name===n.streamName&&u.type==="localization"){const[c,d]=u.points[u.points.length-1];s=d}}if(s&&s.map){const l=document.createElement("canvas"),u=await this.fetchImage(s.map.url);l.width=u.width,l.height=u.height;const c=l.getContext("2d",{willReadFrequently:!0});c&&c.drawImage(u,0,0);const d=c==null?void 0:c.getImageData(0,0,u.width,u.height),B=[],Q=[];if(d)for(let f=0;f<d.data.length;f+=4){const p=d.data[f],U=d.data[f+3];B.push(p),Q.push(U)}g={width:s.map.width,height:s.map.height,worldToLocal:s.map.worldToLocal,resolution:s.map.resolution,origin:s.map.origin,alpha:Q,data:B}}return{deviceId:t,sourceId:n.id,data:g}},r);throw new Error("Not implemented")}subscribeToVideo(t,n,r){const o=this.createH264Drawer(),s=document.createElement("CANVAS");if(s.width=0,s.height=0,o.setCanvas(s),o.start(),n.sourceType==="realtime"){const g=(l,u)=>{u.payload.h264VideoFrame&&(o.receiveEncodedFrame(u.payload.h264VideoFrame),o&&o.canvas&&o.canvas.width>0&&o.canvas.height>0&&r(o.canvas))};return this.subscribeToRealtimeMessages(t,n.rosTopicName,g),()=>{this.unsubscribeToRealtimeMessages(t,n.rosTopicName,g)}}if(n.sourceType==="hardware"){const g=(l,u)=>{u.payload.h264VideoFrame&&(o.receiveEncodedFrame(u.payload.h264VideoFrame),o&&o.canvas&&o.canvas.width>0&&o.canvas.height>0&&r(o.canvas))};return this.subscribeToRealtimeMessages(t,n.rtcStreamName,g),()=>{this.unsubscribeToRealtimeMessages(t,n.rtcStreamName,g)}}return()=>{o.stop()}}subscribeToTransformTree(t,n,r){if(n.sourceType==="telemetry")return this.addRemovableTelemetrySubscription(t,n,async o=>{let s;for(let g=0;g<o.length;g+=1){const l=o[g];if(l.deviceId===t&&l.name===n.streamName&&l.type==="transform tree"){const[u,c]=l.points[l.points.length-1];s=c}}return{deviceId:t,sourceId:n.id,data:s}},r);throw new Error("not implemented for this source type "+n.sourceType)}subscribeToLocation(t,n,r){throw new Error("Not implemented")}}const NoData=Symbol("no_data"),LoadingData=Symbol("loading_data"),FailedData=Symbol("failed_data"),encodedJs="dmFyIGw9T2JqZWN0LmRlZmluZVByb3BlcnR5O3ZhciBnPShjLG4sbyk9Pm4gaW4gYz9sKGMsbix7ZW51bWVyYWJsZTohMCxjb25maWd1cmFibGU6ITAsd3JpdGFibGU6ITAsdmFsdWU6b30pOmNbbl09bzt2YXIgcj0oYyxuLG8pPT4oZyhjLHR5cGVvZiBuIT0ic3ltYm9sIj9uKyIiOm4sbyksbyk7KGZ1bmN0aW9uKCl7InVzZSBzdHJpY3QiO2NvbnN0IHU9e21pbGxpc2Vjb25kOjEsc2Vjb25kOjFlMyxtaW51dGU6NmU0LGhvdXI6MzZlNSxkYXk6ODY0ZTUsd2Vlazo2MDQ4ZTUsbW9udGg6MjU5MmU2LHllYXI6MzE1MzZlNn07ZnVuY3Rpb24geChoKXt9Y2xhc3MgbXtjb25zdHJ1Y3Rvcih7Y2FwYWNpdHk6ZSx0aW1lb3V0OnN9PXt9KXtyKHRoaXMsImVudHJpZXMiLG5ldyBNYXApO3IodGhpcywibWV0YWRhdGEiLG5ldyBNYXApO3IodGhpcywiY2FwYWNpdHkiKTtyKHRoaXMsInRpbWVvdXQiKTt0aGlzLmNhcGFjaXR5PWV8fDFlNCx0aGlzLnRpbWVvdXQ9c3x8dS5taW51dGV9Z2V0KGUscyl7Y29uc3QgYT10aGlzLmtleVRvQ2FjaGVLZXkoZSksaT10aGlzLmVudHJpZXMuZ2V0KGEpLHQ9dGhpcy5tZXRhZGF0YS5nZXQoYSk7cmV0dXJuKGk9PT12b2lkIDB8fHQmJih0PT1udWxsP3ZvaWQgMDp0LmV4cGlyYXRpb24uZ2V0VGltZSgpKTxEYXRlLm5vdygpKSYmISh0IT1udWxsJiZ0LmdlbmVyYXRpbmcpJiZzJiZ0aGlzLmdlbmVyYXRlKGUscygpKSxpPT09dm9pZCAwJiZ0JiZ0Lmxhc3RWYWx1ZSE9PXZvaWQgMD90Lmxhc3RWYWx1ZTppfXNldChlLHMpe2NvbnN0IGE9dGhpcy5rZXlUb0NhY2hlS2V5KGUpO3RoaXMubWV0YWRhdGEuc2V0KGEse2dlbmVyYXRpbmc6ITEsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCksbGFzdFZhbHVlOnN9KSx0aGlzLmVudHJpZXMuc2V0KGEscyksdGhpcy5tZXRhZGF0YS5zaXplPnRoaXMuY2FwYWNpdHkmJnRoaXMuZGVsZXRlT2xkZXN0RW50cnkoKX1jbGVhcigpe3RoaXMuZW50cmllcy5jbGVhcigpLFsuLi50aGlzLm1ldGFkYXRhLnZhbHVlcygpXS5mb3JFYWNoKGU9PmUuZ2VuZXJhdGluZz0hMSl9Y2xlYXJLZXkoZSl7dGhpcy5tZXRhZGF0YS5kZWxldGUoZSksdGhpcy5lbnRyaWVzLmRlbGV0ZShlKX1rZXlUb0NhY2hlS2V5KGUpe3JldHVybiBKU09OLnN0cmluZ2lmeShlKX1kZWxldGVPbGRlc3RFbnRyeSgpe2lmKHRoaXMubWV0YWRhdGEuc2l6ZTwxKXJldHVybjtjb25zdFtlXT1bLi4udGhpcy5tZXRhZGF0YS5lbnRyaWVzKCldLnJlZHVjZSgoW3MsYV0sW2ksdF0pPT50LmV4cGlyYXRpb24uZ2V0VGltZSgpPGEuZXhwaXJhdGlvbi5nZXRUaW1lKCk/W2ksdF06W3MsYV0pO3RoaXMuY2xlYXJLZXkoZSl9Z2VuZXJhdGUoZSxzKXtjb25zdCBhPXRoaXMua2V5VG9DYWNoZUtleShlKSxpPXRoaXMubWV0YWRhdGEuZ2V0KGEpfHx7fTt0aGlzLm1ldGFkYXRhLnNldChhLHsuLi5pLGdlbmVyYXRpbmc6ITAsZXhwaXJhdGlvbjpuZXcgRGF0ZShEYXRlLm5vdygpK3RoaXMudGltZW91dCl9KSxzZXRUaW1lb3V0KCgpPT57cy50aGVuKHQ9Pntjb25zdCBkPXRoaXMubWV0YWRhdGEuZ2V0KGEpOyEoZCE9bnVsbCYmZC5nZW5lcmF0aW5nKXx8dGhpcy5zZXQoZSx0KX0pfSwwKX19Y29uc3QgeT1uZXcgbSh7Y2FwYWNpdHk6MWUzLHRpbWVvdXQ6MSp1Lm1pbnV0ZX0pO29ubWVzc2FnZT1hc3luYyBoPT57Y29uc3R7dXJsOmV9PWguZGF0YTtpZihlKXtjb25zdCBzPXkuZ2V0KGUsYXN5bmMoKT0+YXdhaXQgZmV0Y2goZSx7bW9kZToiY29ycyJ9KS50aGVuKGk9PmkuanNvbigpKSk7cyYmcG9zdE1lc3NhZ2Uoe3VybDplLHJlc3BvbnNlOnN9KX19fSkoKTsK",blob=typeof window!="undefined"&&window.Blob&&new Blob([atob(encodedJs)],{type:"text/javascript;charset=utf-8"});function WorkerWrapper(){let e;try{if(e=blob&&(window.URL||window.webkitURL).createObjectURL(blob),!e)throw"";return new Worker(e)}catch{return new Worker("data:application/javascript;base64,"+encodedJs)}finally{e&&(window.URL||window.webkitURL).revokeObjectURL(e)}}class TelemetryUniverseData extends BasicUniverseDataConnector{constructor(){super();he(this,"liveIntervalHandle");he(this,"timeFinders",[]);he(this,"videoCache",new StoreCache({capacity:50}));this.timeChangeListeners.push(this.onTimeChange.bind(this)),this.onTimeChange("live")}subscribeToBitset(n,r,o){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToPath(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=new WorkerWrapper;let g=0,l=0;const u=this.subscribeTelemetry(n,r,"localization",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}const d=this.getNearestPoint(c),B=d[1],Q=d[0],f=this.time==="live",p=f?new Date().getTime():this.time.getTime(),U=!f&&l-p>2e3;if(!((Q<=l||Q<=g)&&!U)){if(g=Q,B.url){try{const E=await fetch(B.url).then(M=>M.json());E.path&&(U||Q>l)&&(o(E.path),l=Q)}catch(E){console.error("Failed to fetch path data:",E)}return}else if(B.path&&(U||Q>l)){o(B.path),l=Q;return}}});return()=>{s.terminate(),u()}}onTimeChange(n){n==="live"?this.liveIntervalHandle=setInterval(()=>{this.findDataForTime(new Date)},300):(this.liveIntervalHandle&&clearInterval(this.liveIntervalHandle),this.findDataForTime(n))}findDataForTime(n){this.timeFinders.forEach(r=>{r(n)})}addFinder(n,r,o,s,g){const l=u=>{const c=g?addYears(u,-1):addSeconds(u,-60),d=g?addMilliseconds(u,1):addSeconds(u,5),B=this.queryStore.moduleQuery({deviceIds:[r]},o,s,c,d,g);if(B===void 0){n(void 0);return}if(B==="too much data"){n("too much data");return}if(B.length===0){n(void 0);return}const Q=B.reduce((f,p)=>f.concat(p.points),[]);if(!Q||Q.length===0){n(void 0);return}if(g){const p=Q[Q.length-1][0],U=Q.filter(E=>E[0]>addSeconds(p,-15).getTime());n(U);return}n(Q)};return this.timeFinders.push(l),l}getNearestPoint(n,r=this.time){const o=r==="live"?addMilliseconds(new Date,1):this.time;let s=n[0][0],g=n[0][1];return n.forEach(l=>{const u=l[0],c=l[1];Math.abs(u-o.getTime())<Math.abs(s-o.getTime())&&(s=u,g=c)}),[s,g]}removeFinder(n){this.timeFinders=this.timeFinders.filter(r=>r!==n)}subscribeTelemetry(n,r,o,s){if(r.sourceType!=="telemetry")throw new Error("Invalid source type");const g=this.addFinder(s,n,r.streamName,o,r.latestDataPoint||!1);return()=>{this.removeFinder(g)}}subscribeToPointCloud(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=new WorkerWrapper$1,g=new WorkerWrapper;let l=()=>{},u=()=>{};return r.streamType==="point cloud"?l=this.subscribeTelemetry(n,r,"point cloud",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}const d=this.getNearestPoint(c)[1];if(typeof d=="string")o(JSON.parse(d));else{const{url:B}=d;s.postMessage({url:B}),s.onmessage=Q=>{Q.data.url===B&&o({worldToLocal:d.worldToLocal,pcd:Q.data.pcd})}}}):r.streamType==="localization"&&(u=this.subscribeTelemetry(n,r,"localization",async c=>{if(c==="too much data"||c===void 0){o(NoData);return}let d=this.getNearestPoint(c)[1];d.url&&(g.postMessage({url:d.url}),g.onmessage=B=>{if(d=B.data.response,d.pointClouds){const{url:Q,worldToLocal:f}=d.pointClouds[0];s.postMessage({url:Q}),s.onmessage=p=>{p.data.url===Q&&o({worldToLocal:f,pcd:p.data.pcd})}}})})),()=>{s.terminate(),g.terminate(),l(),u()}}subscribeToOdometry(n,r,o,s=0){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const g=new WorkerWrapper;let l=0,u=0;const c=this.subscribeTelemetry(n,r,"localization",async d=>{if(d==="too much data"||d===void 0){o(NoData);return}const B=this.getNearestPoint(d),Q=B[0],f=this.time==="live",p=f?new Date().getTime():this.time.getTime(),U=!f&&l-p>2e3;if((Q<=l||Q<=u)&&!U)return;u=Q;let E;if(B[1].url)try{E=(await(await fetch(B[1].url)).json()).odometry}catch(M){console.error("Failed to fetch odometry data:",M)}else E=B[1].odometry;if(s){const W=d.filter(y=>y[0]<=B[0]&&y[0]>=B[0]-s*1e3).map(async y=>{var m,h;if(y[1].url)try{const I=await(await fetch(y[1].url)).json();return[y[0],(m=I.odometry)==null?void 0:m.pose]}catch(T){console.error("Failed to fetch trail odometry data:",T)}return[y[0],(h=y[1].odometry)==null?void 0:h.pose]});try{const y=await Promise.all(W);(U||Q>l)&&(o({worldToLocal:E.worldToLocal,pose:E.pose,trail:y,covariance:[]}),l=Q);return}catch(y){console.error("Failed to process trail data:",y)}}(U||Q>l)&&(o({worldToLocal:E.worldToLocal,pose:E.pose,covariance:[]}),l=Q)});return()=>{g.terminate(),c()}}subscribeToPose(n,r,o){throw new Error("Method not implemented for telemetry universe connector.")}subscribeToGeometry(n,r,o){if(r.sourceType==="telemetry"){const s=new WorkerWrapper,g=this.subscribeTelemetry(n,r,"json",async l=>{if(l==="too much data"||l===void 0){o(NoData);return}let u=this.getNearestPoint(l)[1];u.startsWith("http")?(s.postMessage({url:u}),s.onmessage=c=>{u=JSON.stringify(c.data.response),o(JSON.parse(u))}):o(JSON.parse(u))});return()=>{s.terminate(),g()}}else throw new Error("Realtime geometry note supported")}subscribeToJointState(n,r,o){return this.subscribeToJson(n,r,o)}subscribeToGridMap(n,r,o){const s={};if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const g=new WorkerWrapper,l=this.subscribeTelemetry(n,r,"localization",async u=>{if(u==="too much data"||u===void 0){o(NoData);return}const c=this.getNearestPoint(u)[1];if(c.url){if(s[c.url]){o(s[c.url]);return}g.postMessage({url:c.url}),g.onmessage=async d=>{const B=d.data.response.map;if(B){const Q={width:B.width,height:B.height,worldToLocal:B.worldToLocal,resolution:B.resolution,origin:B.origin,url:B.url};s[c.url]=JSON.parse(JSON.stringify(Q)),o(Q)}}}});return()=>{g.terminate(),l()}}subscribeToVideo(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"video",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}const g=this.getNearestPoint(s)[1],{url:l}=g,u=this.videoCache.get(l,async()=>new Promise(c=>{const d=document.createElement("video");d.src=l,d.onload=()=>{}}));if(u){const c=document.createElement("canvas");c.width=u.videoWidth,c.height=u.videoHeight;const d=c.getContext("2d");d&&d.drawImage(u,0,0),o(c)}})}subscribeToTransformTree(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"transform tree",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(this.getNearestPoint(s)[1])})}subscribeToLocation(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");const s=this.subscribeToJson(n,r,o),g=this.subscribeTelemetry(n,r,"location",async l=>{if(l==="too much data"||l===void 0){o(NoData);return}const u=this.getNearestPoint(l)[1];o(u)});return()=>{s(),g()}}subscribeToJson(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"json",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}let g=this.getNearestPoint(s)[1];g.startsWith("http")&&(g=await(await fetch(g)).text()),o(JSON.parse(g))})}subscribeToText(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"text",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(this.getNearestPoint(s)[1])})}subscribeToNumeric(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"numeric",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(s)})}subscribeToNumericSet(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"numeric set",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}o(s)})}subscribeToImage(n,r,o){if(r.sourceType!=="telemetry")throw new Error("Telemetry sources only supported");return this.subscribeTelemetry(n,r,"image",async s=>{if(s==="too much data"||s===void 0){o(NoData);return}const g=this.getNearestPoint(s)[1].url,l=new Image;l.src=g,l.onload=()=>{const u=document.createElement("canvas");u.width=l.width,u.height=l.height;const c=u.getContext("2d");c&&(c.drawImage(l,0,0),o(u))}})}}exports.Account=Account,exports.App=App,exports.AudioPlayer=AudioPlayer,exports.Authentication=Authentication,exports.BasicUniverseDataConnector=BasicUniverseDataConnector,exports.BinaryRequestDataChannel=BinaryRequestDataChannel,exports.CaptureStream=CaptureStream,exports.DataChannel=DataChannel,exports.Device=Device,exports.FailedData=FailedData,exports.Fleet=Fleet,exports.KeyValue=KeyValue,exports.LiveUniverseData=LiveUniverseData,exports.LoadingData=LoadingData,exports.Manipulator=Manipulator,exports.NoData=NoData,exports.PeerDevice=PeerDevice,exports.QueryStore=QueryStore,exports.Role=Role,exports.RtcClient=distExports.RtcClient,exports.RtcClientV1=distExports.RtcClientV1,exports.RtcSignalingClient=distExports.RtcSignalingClient,exports.SessionType=SessionTypeConstants,exports.TelemetryUniverseData=TelemetryUniverseData,exports.TextRequestDataChannel=TextRequestDataChannel,exports.User=User,exports.Views=Views,exports.accessLevels=accessLevels,exports.administrator=administrator,exports.aggregateByDateFunctions=aggregateByDateFunctions,exports.aggregateFunctionMap=aggregateFunctionMap,exports.aggregateFunctions=aggregateFunctions,exports.aggregateLevels=aggregateLevels,exports.annotationTypes=annotationTypes,exports.createRtcStreamMessage=distExports.createRtcStreamMessage,exports.defined=defined$1,exports.definedAndNotNull=definedAndNotNull,exports.eventTypes=eventTypes,exports.formatTimeFrameText=formatTimeFrameText,exports.getAverage=getAverage,exports.getCount=getCount,exports.getMax=getMax,exports.getMin=getMin,exports.getStandardDeviation=getStandardDeviation,exports.getSum=getSum,exports.getVariance=getVariance,exports.healthStatuses=healthStatuses,exports.interventionTypes=interventionTypes,exports.operator=operator,exports.severities=severities,exports.timeout=timeout,exports.vailableAggregationIntervals=vailableAggregationIntervals,exports.videoMimeTypes=videoMimeTypes,exports.viewer=viewer,exports.whichFormantApiUrl=whichFormantApiUrl,Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"})});
|