diff --git a/package.json b/package.json index 470101ff0c4..f82006fbd8b 100644 --- a/package.json +++ b/package.json @@ -69,6 +69,7 @@ "load-grunt-tasks": "3.5.2", "mini-css-extract-plugin": "^0.4.0", "mocha": "^4.0.1", + "monaco-editor": "^0.15.6", "ng-annotate-loader": "^0.6.1", "ng-annotate-webpack-plugin": "^0.3.0", "ngtemplate-loader": "^2.0.1", diff --git a/pkg/models/datasource.go b/pkg/models/datasource.go index 89439420d7a..e1cb185d92a 100644 --- a/pkg/models/datasource.go +++ b/pkg/models/datasource.go @@ -23,6 +23,7 @@ const ( DS_ACCESS_DIRECT = "direct" DS_ACCESS_PROXY = "proxy" DS_STACKDRIVER = "stackdriver" + DS_AZURE_MONITOR = "azure-monitor" ) var ( @@ -73,6 +74,7 @@ var knownDatasourcePlugins = map[string]bool{ DS_MYSQL: true, DS_MSSQL: true, DS_STACKDRIVER: true, + DS_AZURE_MONITOR: true, "opennms": true, "abhisant-druid-datasource": true, "dalmatinerdb-datasource": true, diff --git a/public/app/features/plugins/built_in_plugins.ts b/public/app/features/plugins/built_in_plugins.ts index c4621fda289..078443b019a 100644 --- a/public/app/features/plugins/built_in_plugins.ts +++ b/public/app/features/plugins/built_in_plugins.ts @@ -12,6 +12,7 @@ import * as prometheusPlugin from 'app/plugins/datasource/prometheus/module'; import * as mssqlPlugin from 'app/plugins/datasource/mssql/module'; import * as testDataDSPlugin from 'app/plugins/datasource/testdata/module'; import * as stackdriverPlugin from 'app/plugins/datasource/stackdriver/module'; +import * as azureMonitorPlugin from 'app/plugins/datasource/grafana-azure-monitor-datasource/module'; import * as textPanel from 'app/plugins/panel/text/module'; import * as text2Panel from 'app/plugins/panel/text2/module'; @@ -41,6 +42,7 @@ const builtInPlugins = { 'app/plugins/datasource/prometheus/module': prometheusPlugin, 'app/plugins/datasource/testdata/module': testDataDSPlugin, 'app/plugins/datasource/stackdriver/module': stackdriverPlugin, + 'app/plugins/datasource/grafana-azure-monitor-datasource/module': azureMonitorPlugin, 'app/plugins/panel/text/module': textPanel, 'app/plugins/panel/text2/module': text2Panel, diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/query_ctrl.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/query_ctrl.ts new file mode 100644 index 00000000000..294900205b7 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/query_ctrl.ts @@ -0,0 +1,16 @@ +export class QueryCtrl { + target: any; + datasource: any; + panelCtrl: any; + panel: any; + hasRawMode: boolean; + error: string; + + constructor(public $scope, _$injector) { + this.panelCtrl = this.panelCtrl || { panel: {} }; + this.target = this.target || { target: '' }; + this.panel = this.panelCtrl.panel; + } + + refresh() {} +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/sdk.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/sdk.ts new file mode 100644 index 00000000000..b8e8501ce71 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/__mocks__/sdk.ts @@ -0,0 +1,3 @@ +import { QueryCtrl } from './query_ctrl'; + +export { QueryCtrl }; diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/annotations_query_ctrl.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/annotations_query_ctrl.ts new file mode 100644 index 00000000000..8d9df1d13f3 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/annotations_query_ctrl.ts @@ -0,0 +1,32 @@ +export class AzureMonitorAnnotationsQueryCtrl { + static templateUrl = 'partials/annotations.editor.html'; + datasource: any; + annotation: any; + workspaces: any[]; + + defaultQuery = '\n| where $__timeFilter() \n| project TimeGenerated, Text=YourTitleColumn, Tags="tag1,tag2"'; + + /** @ngInject */ + constructor() { + this.annotation.queryType = this.annotation.queryType || 'Azure Log Analytics'; + this.annotation.rawQuery = this.annotation.rawQuery || this.defaultQuery; + this.getWorkspaces(); + } + + getWorkspaces() { + if (this.workspaces && this.workspaces.length > 0) { + return this.workspaces; + } + + return this.datasource + .getAzureLogAnalyticsWorkspaces() + .then(list => { + this.workspaces = list; + if (list.length > 0 && !this.annotation.workspace) { + this.annotation.workspace = list[0].value; + } + return this.workspaces; + }) + .catch(() => {}); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.test.ts new file mode 100644 index 00000000000..35e15a5c885 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.test.ts @@ -0,0 +1,441 @@ +import AzureMonitorDatasource from '../datasource'; +import Q from 'q'; +import moment from 'moment'; +import { TemplateSrv } from 'app/features/templating/template_srv'; + +describe('AppInsightsDatasource', () => { + const ctx: any = { + backendSrv: {}, + templateSrv: new TemplateSrv(), + }; + + beforeEach(() => { + ctx.$q = Q; + ctx.instanceSettings = { + jsonData: { appInsightsAppId: '3ad4400f-ea7d-465d-a8fb-43fb20555d85' }, + url: 'http://appinsightsapi', + }; + + ctx.ds = new AzureMonitorDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.templateSrv, ctx.$q); + }); + + describe('When performing testDatasource', () => { + describe('and a list of metrics is returned', () => { + const response = { + metrics: { + 'requests/count': { + displayName: 'Server requests', + defaultAggregation: 'sum', + }, + 'requests/duration': { + displayName: 'Server requests', + defaultAggregation: 'sum', + }, + }, + dimensions: { + 'request/source': { + displayName: 'Request source', + }, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = () => { + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return success status', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('success'); + }); + }); + }); + + describe('and a PathNotFoundError error is returned', () => { + const error = { + data: { + error: { + code: 'PathNotFoundError', + message: `An error message.`, + }, + }, + status: 404, + statusText: 'Not Found', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.reject(error); + }; + }); + + it('should return error status and a detailed error message', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('error'); + expect(results.message).toEqual( + '1. Application Insights: Not Found: Invalid Application Id for Application Insights service. ' + ); + }); + }); + }); + + describe('and an error is returned', () => { + const error = { + data: { + error: { + code: 'SomeOtherError', + message: `An error message.`, + }, + }, + status: 500, + statusText: 'Error', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.reject(error); + }; + }); + + it('should return error status and a detailed error message', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('error'); + expect(results.message).toEqual('1. Application Insights: Error: SomeOtherError. An error message. '); + }); + }); + }); + }); + + describe('When performing query', () => { + const options = { + range: { + from: moment.utc('2017-08-22T20:00:00Z'), + to: moment.utc('2017-08-22T23:59:00Z'), + }, + targets: [ + { + apiVersion: '2016-09-01', + refId: 'A', + queryType: 'Application Insights', + appInsights: { + metricName: 'exceptions/server', + groupBy: '', + timeGrainType: 'none', + timeGrain: '', + timeGrainUnit: '', + alias: '', + }, + }, + ], + }; + + describe('and with a single value', () => { + const response = { + value: { + start: '2017-08-30T15:53:58.845Z', + end: '2017-09-06T15:53:58.845Z', + 'exceptions/server': { + sum: 100, + }, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/exceptions/server'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a single datapoint', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + expect(results.data[0].datapoints.length).toBe(1); + expect(results.data[0].target).toEqual('exceptions/server'); + expect(results.data[0].datapoints[0][1]).toEqual(1504713238845); + expect(results.data[0].datapoints[0][0]).toEqual(100); + }); + }); + }); + + describe('and with an interval group and without a segment group by', () => { + const response = { + value: { + start: '2017-08-30T15:53:58.845Z', + end: '2017-09-06T15:53:58.845Z', + interval: 'PT1H', + segments: [ + { + start: '2017-08-30T15:53:58.845Z', + end: '2017-08-30T16:00:00.000Z', + 'exceptions/server': { + sum: 3, + }, + }, + { + start: '2017-08-30T16:00:00.000Z', + end: '2017-08-30T17:00:00.000Z', + 'exceptions/server': { + sum: 66, + }, + }, + ], + }, + }; + + beforeEach(() => { + options.targets[0].appInsights.timeGrainType = 'specific'; + options.targets[0].appInsights.timeGrain = '30'; + options.targets[0].appInsights.timeGrainUnit = 'minute'; + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/exceptions/server'); + expect(options.url).toContain('interval=PT30M'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + expect(results.data[0].datapoints.length).toBe(2); + expect(results.data[0].target).toEqual('exceptions/server'); + expect(results.data[0].datapoints[0][1]).toEqual(1504108800000); + expect(results.data[0].datapoints[0][0]).toEqual(3); + expect(results.data[0].datapoints[1][1]).toEqual(1504112400000); + expect(results.data[0].datapoints[1][0]).toEqual(66); + }); + }); + }); + + describe('and with a group by', () => { + const response = { + value: { + start: '2017-08-30T15:53:58.845Z', + end: '2017-09-06T15:53:58.845Z', + interval: 'PT1H', + segments: [ + { + start: '2017-08-30T15:53:58.845Z', + end: '2017-08-30T16:00:00.000Z', + segments: [ + { + 'exceptions/server': { + sum: 10, + }, + 'client/city': 'Miami', + }, + { + 'exceptions/server': { + sum: 1, + }, + 'client/city': 'San Jose', + }, + ], + }, + { + start: '2017-08-30T16:00:00.000Z', + end: '2017-08-30T17:00:00.000Z', + segments: [ + { + 'exceptions/server': { + sum: 20, + }, + 'client/city': 'Miami', + }, + { + 'exceptions/server': { + sum: 2, + }, + 'client/city': 'San Antonio', + }, + ], + }, + ], + }, + }; + + describe('and with no alias specified', () => { + beforeEach(() => { + options.targets[0].appInsights.groupBy = 'client/city'; + + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/exceptions/server'); + expect(options.url).toContain('segment=client/city'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(3); + expect(results.data[0].datapoints.length).toBe(2); + expect(results.data[0].target).toEqual('exceptions/server{client/city="Miami"}'); + expect(results.data[0].datapoints[0][1]).toEqual(1504108800000); + expect(results.data[0].datapoints[0][0]).toEqual(10); + expect(results.data[0].datapoints[1][1]).toEqual(1504112400000); + expect(results.data[0].datapoints[1][0]).toEqual(20); + }); + }); + }); + + describe('and with an alias specified', () => { + beforeEach(() => { + options.targets[0].appInsights.groupBy = 'client/city'; + options.targets[0].appInsights.alias = '{{metric}} + {{groupbyname}} + {{groupbyvalue}}'; + + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/exceptions/server'); + expect(options.url).toContain('segment=client/city'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(3); + expect(results.data[0].datapoints.length).toBe(2); + expect(results.data[0].target).toEqual('exceptions/server + client/city + Miami'); + expect(results.data[0].datapoints[0][1]).toEqual(1504108800000); + expect(results.data[0].datapoints[0][0]).toEqual(10); + expect(results.data[0].datapoints[1][1]).toEqual(1504112400000); + expect(results.data[0].datapoints[1][0]).toEqual(20); + }); + }); + }); + }); + }); + + describe('When performing metricFindQuery', () => { + describe('with a metric names query', () => { + const response = { + metrics: { + 'exceptions/server': {}, + 'requests/count': {}, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/metadata'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of metric names', () => { + return ctx.ds.metricFindQuery('appInsightsMetricNames()').then(results => { + expect(results.length).toBe(2); + expect(results[0].text).toBe('exceptions/server'); + expect(results[0].value).toBe('exceptions/server'); + expect(results[1].text).toBe('requests/count'); + expect(results[1].value).toBe('requests/count'); + }); + }); + }); + + describe('with metadata group by query', () => { + const response = { + metrics: { + 'exceptions/server': { + supportedAggregations: ['sum'], + supportedGroupBy: { + all: ['client/os', 'client/city', 'client/browser'], + }, + defaultAggregation: 'sum', + }, + 'requests/count': { + supportedAggregations: ['avg', 'sum', 'total'], + supportedGroupBy: { + all: ['client/os', 'client/city', 'client/browser'], + }, + defaultAggregation: 'avg', + }, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/metadata'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of group bys', () => { + return ctx.ds.metricFindQuery('appInsightsGroupBys(requests/count)').then(results => { + expect(results[0].text).toContain('client/os'); + expect(results[0].value).toContain('client/os'); + expect(results[1].text).toContain('client/city'); + expect(results[1].value).toContain('client/city'); + expect(results[2].text).toContain('client/browser'); + expect(results[2].value).toContain('client/browser'); + }); + }); + }); + }); + + describe('When getting Metric Names', () => { + const response = { + metrics: { + 'exceptions/server': {}, + 'requests/count': {}, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/metadata'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of metric names', () => { + return ctx.ds.getAppInsightsMetricNames().then(results => { + expect(results.length).toBe(2); + expect(results[0].text).toBe('exceptions/server'); + expect(results[0].value).toBe('exceptions/server'); + expect(results[1].text).toBe('requests/count'); + expect(results[1].value).toBe('requests/count'); + }); + }); + }); + + describe('When getting Metric Metadata', () => { + const response = { + metrics: { + 'exceptions/server': { + supportedAggregations: ['sum'], + supportedGroupBy: { + all: ['client/os', 'client/city', 'client/browser'], + }, + defaultAggregation: 'sum', + }, + 'requests/count': { + supportedAggregations: ['avg', 'sum', 'total'], + supportedGroupBy: { + all: ['client/os', 'client/city', 'client/browser'], + }, + defaultAggregation: 'avg', + }, + }, + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('/metrics/metadata'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of group bys', () => { + return ctx.ds.getAppInsightsMetricMetadata('requests/count').then(results => { + expect(results.primaryAggType).toEqual('avg'); + expect(results.supportedAggTypes).toContain('avg'); + expect(results.supportedAggTypes).toContain('sum'); + expect(results.supportedAggTypes).toContain('total'); + expect(results.supportedGroupBy).toContain('client/os'); + expect(results.supportedGroupBy).toContain('client/city'); + expect(results.supportedGroupBy).toContain('client/browser'); + }); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.ts new file mode 100644 index 00000000000..950fa73a16b --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_datasource.ts @@ -0,0 +1,227 @@ +import _ from 'lodash'; +import AppInsightsQuerystringBuilder from './app_insights_querystring_builder'; +import LogAnalyticsQuerystringBuilder from '../log_analytics/querystring_builder'; +import ResponseParser from './response_parser'; + +export interface LogAnalyticsColumn { + text: string; + value: string; +} +export default class AppInsightsDatasource { + id: number; + url: string; + baseUrl: string; + version = 'beta'; + applicationId: string; + logAnalyticsColumns: { [key: string]: LogAnalyticsColumn[] } = {}; + + /** @ngInject */ + constructor(instanceSettings, private backendSrv, private templateSrv, private $q) { + this.id = instanceSettings.id; + this.applicationId = instanceSettings.jsonData.appInsightsAppId; + this.baseUrl = `/appinsights/${this.version}/apps/${this.applicationId}`; + this.url = instanceSettings.url; + } + + isConfigured(): boolean { + return !!this.applicationId && this.applicationId.length > 0; + } + + query(options) { + const queries = _.filter(options.targets, item => { + return item.hide !== true; + }).map(target => { + const item = target.appInsights; + if (item.rawQuery) { + const querystringBuilder = new LogAnalyticsQuerystringBuilder( + this.templateSrv.replace(item.rawQueryString, options.scopedVars), + options, + 'timestamp' + ); + const generated = querystringBuilder.generate(); + + const url = `${this.baseUrl}/query?${generated.uriString}`; + + return { + refId: target.refId, + intervalMs: options.intervalMs, + maxDataPoints: options.maxDataPoints, + datasourceId: this.id, + url: url, + format: options.format, + alias: item.alias, + query: generated.rawQuery, + xaxis: item.xaxis, + yaxis: item.yaxis, + spliton: item.spliton, + raw: true, + }; + } else { + const querystringBuilder = new AppInsightsQuerystringBuilder( + options.range.from, + options.range.to, + options.interval + ); + + if (item.groupBy !== 'none') { + querystringBuilder.setGroupBy(this.templateSrv.replace(item.groupBy, options.scopedVars)); + } + querystringBuilder.setAggregation(item.aggregation); + querystringBuilder.setInterval( + item.timeGrainType, + this.templateSrv.replace(item.timeGrain, options.scopedVars), + item.timeGrainUnit + ); + + querystringBuilder.setFilter(this.templateSrv.replace(item.filter || '')); + + const url = `${this.baseUrl}/metrics/${this.templateSrv.replace( + encodeURI(item.metricName), + options.scopedVars + )}?${querystringBuilder.generate()}`; + + return { + refId: target.refId, + intervalMs: options.intervalMs, + maxDataPoints: options.maxDataPoints, + datasourceId: this.id, + url: url, + format: options.format, + alias: item.alias, + xaxis: '', + yaxis: '', + spliton: '', + raw: false, + }; + } + }); + + if (!queries || queries.length === 0) { + return; + } + + const promises = this.doQueries(queries); + + return this.$q + .all(promises) + .then(results => { + return new ResponseParser(results).parseQueryResult(); + }) + .then(results => { + const flattened: any[] = []; + + for (let i = 0; i < results.length; i++) { + if (results[i].columnsForDropdown) { + this.logAnalyticsColumns[results[i].refId] = results[i].columnsForDropdown; + } + flattened.push(results[i]); + } + + return flattened; + }); + } + + doQueries(queries) { + return _.map(queries, query => { + return this.doRequest(query.url) + .then(result => { + return { + result: result, + query: query, + }; + }) + .catch(err => { + throw { + error: err, + query: query, + }; + }); + }); + } + + annotationQuery(options) {} + + metricFindQuery(query: string) { + const appInsightsMetricNameQuery = query.match(/^AppInsightsMetricNames\(\)/i); + if (appInsightsMetricNameQuery) { + return this.getMetricNames(); + } + + const appInsightsGroupByQuery = query.match(/^AppInsightsGroupBys\(([^\)]+?)(,\s?([^,]+?))?\)/i); + if (appInsightsGroupByQuery) { + const metricName = appInsightsGroupByQuery[1]; + return this.getGroupBys(this.templateSrv.replace(metricName)); + } + + return undefined; + } + + testDatasource() { + const url = `${this.baseUrl}/metrics/metadata`; + return this.doRequest(url) + .then(response => { + if (response.status === 200) { + return { + status: 'success', + message: 'Successfully queried the Application Insights service.', + title: 'Success', + }; + } + + return { + status: 'error', + message: 'Returned http status code ' + response.status, + }; + }) + .catch(error => { + let message = 'Application Insights: '; + message += error.statusText ? error.statusText + ': ' : ''; + + if (error.data && error.data.error && error.data.error.code === 'PathNotFoundError') { + message += 'Invalid Application Id for Application Insights service.'; + } else if (error.data && error.data.error) { + message += error.data.error.code + '. ' + error.data.error.message; + } else { + message += 'Cannot connect to Application Insights REST API.'; + } + + return { + status: 'error', + message: message, + }; + }); + } + + doRequest(url, maxRetries = 1) { + return this.backendSrv + .datasourceRequest({ + url: this.url + url, + method: 'GET', + }) + .catch(error => { + if (maxRetries > 0) { + return this.doRequest(url, maxRetries - 1); + } + + throw error; + }); + } + + getMetricNames() { + const url = `${this.baseUrl}/metrics/metadata`; + return this.doRequest(url).then(ResponseParser.parseMetricNames); + } + + getMetricMetadata(metricName: string) { + const url = `${this.baseUrl}/metrics/metadata`; + return this.doRequest(url).then(result => { + return new ResponseParser(result).parseMetadata(metricName); + }); + } + + getGroupBys(metricName: string) { + return this.getMetricMetadata(metricName).then(result => { + return new ResponseParser(result).parseGroupBys(); + }); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.test.ts new file mode 100644 index 00000000000..a38ec95dc50 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.test.ts @@ -0,0 +1,72 @@ +import AppInsightsQuerystringBuilder from './app_insights_querystring_builder'; +import moment from 'moment'; + +describe('AppInsightsQuerystringBuilder', () => { + let builder: AppInsightsQuerystringBuilder; + + beforeEach(() => { + builder = new AppInsightsQuerystringBuilder(moment.utc('2017-08-22 06:00'), moment.utc('2017-08-22 07:00'), '1h'); + }); + + describe('with only from/to date range', () => { + it('should always add datetime filtering to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z`; + expect(builder.generate()).toEqual(querystring); + }); + }); + + describe('with from/to date range and aggregation type', () => { + beforeEach(() => { + builder.setAggregation('avg'); + }); + + it('should add datetime filtering and aggregation to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z&aggregation=avg`; + expect(builder.generate()).toEqual(querystring); + }); + }); + + describe('with from/to date range and group by segment', () => { + beforeEach(() => { + builder.setGroupBy('client/city'); + }); + + it('should add datetime filtering and segment to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z&segment=client/city`; + expect(builder.generate()).toEqual(querystring); + }); + }); + + describe('with from/to date range and specific group by interval', () => { + beforeEach(() => { + builder.setInterval('specific', 1, 'hour'); + }); + + it('should add datetime filtering and interval to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z&interval=PT1H`; + expect(builder.generate()).toEqual(querystring); + }); + }); + + describe('with from/to date range and auto group by interval', () => { + beforeEach(() => { + builder.setInterval('auto', '', ''); + }); + + it('should add datetime filtering and interval to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z&interval=PT1H`; + expect(builder.generate()).toEqual(querystring); + }); + }); + + describe('with filter', () => { + beforeEach(() => { + builder.setFilter(`client/city eq 'Boydton'`); + }); + + it('should add datetime filtering and interval to the querystring', () => { + const querystring = `timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z&filter=client/city eq 'Boydton'`; + expect(builder.generate()).toEqual(querystring); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.ts new file mode 100644 index 00000000000..9b97a1b5e31 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/app_insights_querystring_builder.ts @@ -0,0 +1,56 @@ +import TimeGrainConverter from '../time_grain_converter'; + +export default class AppInsightsQuerystringBuilder { + aggregation = ''; + groupBy = ''; + timeGrainType = ''; + timeGrain = ''; + timeGrainUnit = ''; + filter = ''; + + constructor(private from, private to, public grafanaInterval) {} + + setAggregation(aggregation) { + this.aggregation = aggregation; + } + + setGroupBy(groupBy) { + this.groupBy = groupBy; + } + + setInterval(timeGrainType, timeGrain, timeGrainUnit) { + this.timeGrainType = timeGrainType; + this.timeGrain = timeGrain; + this.timeGrainUnit = timeGrainUnit; + } + + setFilter(filter: string) { + this.filter = filter; + } + + generate() { + let querystring = `timespan=${this.from.utc().format()}/${this.to.utc().format()}`; + + if (this.aggregation && this.aggregation.length > 0) { + querystring += `&aggregation=${this.aggregation}`; + } + + if (this.groupBy && this.groupBy.length > 0) { + querystring += `&segment=${this.groupBy}`; + } + + if (this.timeGrainType === 'specific' && this.timeGrain && this.timeGrainUnit) { + querystring += `&interval=${TimeGrainConverter.createISO8601Duration(this.timeGrain, this.timeGrainUnit)}`; + } + + if (this.timeGrainType === 'auto') { + querystring += `&interval=${TimeGrainConverter.createISO8601DurationFromInterval(this.grafanaInterval)}`; + } + + if (this.filter) { + querystring += `&filter=${this.filter}`; + } + + return querystring; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/response_parser.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/response_parser.ts new file mode 100644 index 00000000000..848472cf101 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/app_insights/response_parser.ts @@ -0,0 +1,212 @@ +import moment from 'moment'; +import _ from 'lodash'; + +export default class ResponseParser { + constructor(private results) {} + + parseQueryResult() { + let data: any = []; + let columns: any = []; + for (let i = 0; i < this.results.length; i++) { + if (this.results[i].query.raw) { + const xaxis = this.results[i].query.xaxis; + const yaxises = this.results[i].query.yaxis; + const spliton = this.results[i].query.spliton; + columns = this.results[i].result.data.Tables[0].Columns; + const rows = this.results[i].result.data.Tables[0].Rows; + data = _.concat( + data, + this.parseRawQueryResultRow(this.results[i].query, columns, rows, xaxis, yaxises, spliton) + ); + } else { + const value = this.results[i].result.data.value; + const alias = this.results[i].query.alias; + data = _.concat(data, this.parseQueryResultRow(this.results[i].query, value, alias)); + } + } + return data; + } + + parseRawQueryResultRow(query: any, columns, rows, xaxis: string, yaxises: string, spliton: string) { + const data: any[] = []; + const columnsForDropdown = _.map(columns, column => ({ text: column.ColumnName, value: column.ColumnName })); + + const xaxisColumn = columns.findIndex(column => column.ColumnName === xaxis); + const yaxisesSplit = yaxises.split(','); + const yaxisColumns = {}; + _.forEach(yaxisesSplit, yaxis => { + yaxisColumns[yaxis] = columns.findIndex(column => column.ColumnName === yaxis); + }); + const splitonColumn = columns.findIndex(column => column.ColumnName === spliton); + const convertTimestamp = xaxis === 'timestamp'; + + _.forEach(rows, row => { + _.forEach(yaxisColumns, (yaxisColumn, yaxisName) => { + const bucket = + splitonColumn === -1 + ? ResponseParser.findOrCreateBucket(data, yaxisName) + : ResponseParser.findOrCreateBucket(data, row[splitonColumn]); + const epoch = convertTimestamp ? ResponseParser.dateTimeToEpoch(row[xaxisColumn]) : row[xaxisColumn]; + bucket.datapoints.push([row[yaxisColumn], epoch]); + bucket.refId = query.refId; + bucket.query = query.query; + bucket.columnsForDropdown = columnsForDropdown; + }); + }); + + return data; + } + + parseQueryResultRow(query: any, value, alias: string) { + const data: any[] = []; + + if (ResponseParser.isSingleValue(value)) { + const metricName = ResponseParser.getMetricFieldKey(value); + const aggField = ResponseParser.getKeyForAggregationField(value[metricName]); + const epoch = ResponseParser.dateTimeToEpoch(value.end); + data.push({ + target: metricName, + datapoints: [[value[metricName][aggField], epoch]], + refId: query.refId, + query: query.query, + }); + return data; + } + + const groupedBy = ResponseParser.hasSegmentsField(value.segments[0]); + if (!groupedBy) { + const metricName = ResponseParser.getMetricFieldKey(value.segments[0]); + const dataTarget = ResponseParser.findOrCreateBucket(data, metricName); + + for (let i = 0; i < value.segments.length; i++) { + const epoch = ResponseParser.dateTimeToEpoch(value.segments[i].end); + const aggField: string = ResponseParser.getKeyForAggregationField(value.segments[i][metricName]); + + dataTarget.datapoints.push([value.segments[i][metricName][aggField], epoch]); + } + dataTarget.refId = query.refId; + dataTarget.query = query.query; + } else { + for (let i = 0; i < value.segments.length; i++) { + const epoch = ResponseParser.dateTimeToEpoch(value.segments[i].end); + + for (let j = 0; j < value.segments[i].segments.length; j++) { + const metricName = ResponseParser.getMetricFieldKey(value.segments[i].segments[j]); + const aggField = ResponseParser.getKeyForAggregationField(value.segments[i].segments[j][metricName]); + const target = this.getTargetName(value.segments[i].segments[j], alias); + + const bucket = ResponseParser.findOrCreateBucket(data, target); + bucket.datapoints.push([value.segments[i].segments[j][metricName][aggField], epoch]); + bucket.refId = query.refId; + bucket.query = query.query; + } + } + } + + return data; + } + + getTargetName(segment, alias: string) { + let metric = ''; + let segmentName = ''; + let segmentValue = ''; + for (const prop in segment) { + if (_.isObject(segment[prop])) { + metric = prop; + } else { + segmentName = prop; + segmentValue = segment[prop]; + } + } + + if (alias) { + const regex = /\{\{([\s\S]+?)\}\}/g; + return alias.replace(regex, (match, g1, g2) => { + const group = g1 || g2; + + if (group === 'metric') { + return metric; + } else if (group === 'groupbyname') { + return segmentName; + } else if (group === 'groupbyvalue') { + return segmentValue; + } + + return match; + }); + } + + return metric + `{${segmentName}="${segmentValue}"}`; + } + + static isSingleValue(value) { + return !ResponseParser.hasSegmentsField(value); + } + + static findOrCreateBucket(data, target) { + let dataTarget = _.find(data, ['target', target]); + if (!dataTarget) { + dataTarget = { target: target, datapoints: [] }; + data.push(dataTarget); + } + + return dataTarget; + } + + static hasSegmentsField(obj) { + const keys = _.keys(obj); + return _.indexOf(keys, 'segments') > -1; + } + + static getMetricFieldKey(segment) { + const keys = _.keys(segment); + + return _.filter(_.without(keys, 'start', 'end'), key => { + return _.isObject(segment[key]); + })[0]; + } + + static getKeyForAggregationField(dataObj): string { + const keys = _.keys(dataObj); + return _.intersection(keys, ['sum', 'avg', 'min', 'max', 'count', 'unique'])[0]; + } + + static dateTimeToEpoch(dateTime) { + return moment(dateTime).valueOf(); + } + + static parseMetricNames(result) { + const keys = _.keys(result.data.metrics); + + return ResponseParser.toTextValueList(keys); + } + + parseMetadata(metricName: string) { + const metric = this.results.data.metrics[metricName]; + + if (!metric) { + throw Error('No data found for metric: ' + metricName); + } + + return { + primaryAggType: metric.defaultAggregation, + supportedAggTypes: metric.supportedAggregations, + supportedGroupBy: metric.supportedGroupBy.all, + }; + } + + parseGroupBys() { + return ResponseParser.toTextValueList(this.results.supportedGroupBy); + } + + static toTextValueList(values) { + const list: any[] = []; + for (let i = 0; i < values.length; i++) { + list.push({ + text: values[i], + value: values[i], + }); + } + return list; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/__mocks__/schema.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/__mocks__/schema.ts new file mode 100644 index 00000000000..01b77a894ad --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/__mocks__/schema.ts @@ -0,0 +1,305 @@ +export default class FakeSchemaData { + static getLogAnalyticsFakeSchema() { + return { + Tables: [ + { + TableName: 'Table_0', + Columns: [ + { + ColumnName: 'TableName', + DataType: 'String', + }, + { + ColumnName: 'ColumnName', + DataType: 'String', + }, + { + ColumnName: 'ColumnType', + DataType: 'String', + }, + ], + Rows: [ + ['AzureNetworkAnalytics_CL', 'SourceSystem', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ManagementGroupName', 'System.String'], + ['AzureNetworkAnalytics_CL', 'TimeGenerated', 'System.DateTime'], + ['AzureNetworkAnalytics_CL', 'Computer', 'System.String'], + ['AzureNetworkAnalytics_CL', 'FASchemaVersion_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'FlowType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SrcIP_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'DestIP_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VMIP_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'L4Protocol_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'L7Protocol_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'FlowDirection_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NSGList_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NSGRules_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'HopNSGList_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'HopNSGRules_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Region1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Region2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NIC_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NIC1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NIC2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VM_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VM1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VM2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subnet_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ConnectionName_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'S2SConnection_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'S2SConnectionType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Country_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'AzureRegion_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subscription1_g', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subscription2_g', 'System.String'], + ['AzureNetworkAnalytics_CL', 'FlowStartTime_t', 'System.DateTime'], + ['AzureNetworkAnalytics_CL', 'FlowEndTime_t', 'System.DateTime'], + ['AzureNetworkAnalytics_CL', 'DestPort_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'AllowedInFlows_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'DeniedInFlows_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'AllowedOutFlows_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'DeniedOutFlows_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'DeniedInFlowsAtHops_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'DeniedOutFlowsAtHops_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'FlowCount_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'NextHopIP_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'IsVirtualAppliance_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'AddressPrefix_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'NextHopType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'RouteTable_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subnet1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subnet2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SubnetRegion1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SubnetRegion2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualAppliances_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'AllowForwardedTraffic_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'AllowGatewayTransit_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'AllowVirtualNetworkAccess_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'UseRemoteGateways_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'NSG_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'PrivateIPAddresses_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'PublicIPAddresses_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subnetwork_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualMachine_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'MACAddress_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'AddressPrefixes_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ConnectingVirtualNetwork_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'RemoteVirtualNetworkGateway_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'IsFlowEnabled_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'GatewayType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SKU_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VIPAddress_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualSubnetwork_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'BGPEnabled_b', 'System.Boolean'], + ['AzureNetworkAnalytics_CL', 'ConnectionStatus_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ConnectionType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'GatewayConnectionType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'LocalNetworkGateway_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetwork1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetwork2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetworkGateway1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetworkGateway2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetworkRegion1_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'VirtualNetworkRegion2_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'EgressBytesTransferred_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'IngressBytesTransferred_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'RoutingWeight_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'FrontendSubnet_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'LoadBalancerType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Access_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Description_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'DestinationAddressPrefix_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'DestinationPortRange_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Direction_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Protocol_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'RuleType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SourceAddressPrefix_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SourcePortRange_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Priority_d', 'System.Double'], + ['AzureNetworkAnalytics_CL', 'IPAddress', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SubnetPrefixes_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SchemaVersion_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Name_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Region_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'AppGatewayType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'BackendSubnets_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'FrontendIPs_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'GatewaySubnet_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ComponentType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'DiscoveryRegion_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'ResourceType', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Status_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'SubType_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'TopologyVersion_s', 'System.String'], + ['AzureNetworkAnalytics_CL', 'Subscription_g', 'System.String'], + ['AzureNetworkAnalytics_CL', 'TimeProcessed_t', 'System.DateTime'], + ['AzureNetworkAnalytics_CL', 'Type', 'System.String'], + ], + KqlPrimaryTimestampColumnName: 'TimeGenerated', + }, + { + TableName: 'Table_1', + Columns: [ + { + ColumnName: 'TableType', + DataType: 'String', + }, + { + ColumnName: 'TableName', + DataType: 'String', + }, + { + ColumnName: 'PrimaryTimestampColumnName', + DataType: 'String', + }, + { + ColumnName: 'Solutions', + DataType: 'String', + }, + ], + Rows: [['oms', 'AzureNetworkAnalytics_CL', 'TimeGenerated', 'LogManagement']], + }, + ], + }; + } + + static getlogAnalyticsFakeMetadata() { + return { + tables: [ + { + id: 't/Alert', + name: 'Alert', + timespanColumn: 'TimeGenerated', + columns: [ + { name: 'TimeGenerated', type: 'datetime' }, + { name: 'AlertSeverity', type: 'string' }, + { name: 'SourceDisplayName', type: 'string' }, + { name: 'AlertName', type: 'string' }, + { name: 'AlertDescription', type: 'string' }, + { name: 'SourceSystem', type: 'string' }, + { name: 'QueryExecutionStartTime', type: 'datetime' }, + { name: 'QueryExecutionEndTime', type: 'datetime' }, + { name: 'Query', type: 'string' }, + { name: 'RemediationJobId', type: 'string' }, + { name: 'RemediationRunbookName', type: 'string' }, + { name: 'AlertRuleId', type: 'string' }, + { name: 'AlertRuleInstanceId', type: 'string' }, + { name: 'ThresholdOperator', type: 'string' }, + { name: 'ThresholdValue', type: 'int' }, + { name: 'LinkToSearchResults', type: 'string' }, + { name: 'ServiceDeskConnectionName', type: 'string' }, + { name: 'ServiceDeskId', type: 'string' }, + { name: 'ServiceDeskWorkItemLink', type: 'string' }, + { name: 'ServiceDeskWorkItemType', type: 'string' }, + { name: 'ResourceId', type: 'string' }, + { name: 'ResourceType', type: 'string' }, + { name: 'ResourceValue', type: 'string' }, + { name: 'RootObjectName', type: 'string' }, + { name: 'ObjectDisplayName', type: 'string' }, + { name: 'Computer', type: 'string' }, + { name: 'AlertPriority', type: 'string' }, + { name: 'SourceFullName', type: 'string' }, + { name: 'AlertId', type: 'string' }, + { name: 'RepeatCount', type: 'int' }, + { name: 'AlertState', type: 'string' }, + { name: 'ResolvedBy', type: 'string' }, + { name: 'LastModifiedBy', type: 'string' }, + { name: 'TimeRaised', type: 'datetime' }, + { name: 'TimeResolved', type: 'datetime' }, + { name: 'TimeLastModified', type: 'datetime' }, + { name: 'AlertContext', type: 'string' }, + { name: 'TicketId', type: 'string' }, + { name: 'Custom1', type: 'string' }, + { name: 'Custom2', type: 'string' }, + { name: 'Custom3', type: 'string' }, + { name: 'Custom4', type: 'string' }, + { name: 'Custom5', type: 'string' }, + { name: 'Custom6', type: 'string' }, + { name: 'Custom7', type: 'string' }, + { name: 'Custom8', type: 'string' }, + { name: 'Custom9', type: 'string' }, + { name: 'Custom10', type: 'string' }, + { name: 'ManagementGroupName', type: 'string' }, + { name: 'PriorityNumber', type: 'int' }, + { name: 'HostName', type: 'string' }, + { name: 'StateType', type: 'string' }, + { name: 'AlertTypeDescription', type: 'string' }, + { name: 'AlertTypeNumber', type: 'int' }, + { name: 'AlertError', type: 'string' }, + { name: 'StatusDescription', type: 'string' }, + { name: 'AlertStatus', type: 'int' }, + { name: 'TriggerId', type: 'string' }, + { name: 'Url', type: 'string' }, + { name: 'ValueDescription', type: 'string' }, + { name: 'AlertValue', type: 'int' }, + { name: 'Comments', type: 'string' }, + { name: 'TemplateId', type: 'string' }, + { name: 'FlagsDescription', type: 'string' }, + { name: 'Flags', type: 'int' }, + { name: 'ValueFlagsDescription', type: 'string' }, + { name: 'ValueFlags', type: 'int' }, + { name: 'Expression', type: 'string' }, + { name: 'Type', type: 'string' }, + ], + }, + { + id: 't/AzureActivity', + name: 'AzureActivity', + timespanColumn: 'TimeGenerated', + columns: [ + { name: 'OperationName', type: 'string' }, + { name: 'Level', type: 'string' }, + { name: 'ActivityStatus', type: 'string' }, + { name: 'ActivitySubstatus', type: 'string' }, + { name: 'ResourceGroup', type: 'string' }, + { name: 'SubscriptionId', type: 'string' }, + { name: 'CorrelationId', type: 'string' }, + { name: 'Caller', type: 'string' }, + { name: 'CallerIpAddress', type: 'string' }, + { name: 'Category', type: 'string' }, + { name: 'HTTPRequest', type: 'string' }, + { name: 'Properties', type: 'string' }, + { name: 'EventSubmissionTimestamp', type: 'datetime' }, + { name: 'Authorization', type: 'string' }, + { name: 'ResourceId', type: 'string' }, + { name: 'OperationId', type: 'string' }, + { name: 'ResourceProvider', type: 'string' }, + { name: 'Resource', type: 'string' }, + { name: 'TimeGenerated', type: 'datetime' }, + { name: 'SourceSystem', type: 'string' }, + { name: 'Type', type: 'string' }, + ], + }, + ], + tableGroups: [ + { + id: 'oms/LogManagement', + name: 'LogManagement', + source: 'oms', + tables: ['t/Alert', 't/AzureActivity'], + }, + ], + functions: [ + { + id: 'f/Func1', + name: 'Func1', + displayName: 'Func1', + body: 'AzureActivity\n| where ActivityStatus == "" \n', + category: 'test', + }, + ], + applications: [], + workspaces: [ + { + id: 'a2c1b44e-3e57-4410-b027-999999999999', + name: 'danieltest', + resourceId: + '/subscriptions/44693801-6ee6-49de-9b2d-999999999999/resourceGroups/danieltest/providers/' + + 'microsoft.operationalinsights/workspaces/danieltest', + tables: [], + tableGroups: ['oms/LogManagement'], + functions: ['f/Func1'], + }, + ], + }; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.test.ts new file mode 100644 index 00000000000..199a63583d2 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.test.ts @@ -0,0 +1,401 @@ +import AzureMonitorDatasource from '../datasource'; +import FakeSchemaData from './__mocks__/schema'; +import Q from 'q'; +import moment from 'moment'; +import { TemplateSrv } from 'app/features/templating/template_srv'; + +describe('AzureLogAnalyticsDatasource', () => { + const ctx: any = { + backendSrv: {}, + templateSrv: new TemplateSrv(), + }; + + beforeEach(() => { + ctx.$q = Q; + ctx.instanceSettings = { + jsonData: { logAnalyticsSubscriptionId: 'xxx' }, + url: 'http://azureloganalyticsapi', + }; + + ctx.ds = new AzureMonitorDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.templateSrv, ctx.$q); + }); + + describe('When the config option "Same as Azure Monitor" has been chosen', () => { + const tableResponseWithOneColumn = { + tables: [ + { + name: 'PrimaryResult', + columns: [ + { + name: 'Category', + type: 'string', + }, + ], + rows: [['Administrative'], ['Policy']], + }, + ], + }; + + const workspaceResponse = { + value: [ + { + name: 'aworkspace', + properties: { + source: 'Azure', + customerId: 'abc1b44e-3e57-4410-b027-6cc0ae6dee67', + }, + }, + ], + }; + + let workspacesUrl; + let azureLogAnalyticsUrl; + + beforeEach(async () => { + ctx.instanceSettings.jsonData.subscriptionId = 'xxx'; + ctx.instanceSettings.jsonData.tenantId = 'xxx'; + ctx.instanceSettings.jsonData.clientId = 'xxx'; + ctx.instanceSettings.jsonData.azureLogAnalyticsSameAs = true; + ctx.ds = new AzureMonitorDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.templateSrv, ctx.$q); + + ctx.backendSrv.datasourceRequest = options => { + if (options.url.indexOf('Microsoft.OperationalInsights/workspaces') > -1) { + workspacesUrl = options.url; + return ctx.$q.when({ data: workspaceResponse, status: 200 }); + } else { + azureLogAnalyticsUrl = options.url; + return ctx.$q.when({ data: tableResponseWithOneColumn, status: 200 }); + } + }; + + await ctx.ds.metricFindQuery('workspace("aworkspace").AzureActivity | distinct Category'); + }); + + it('should use the sameasloganalyticsazure plugin route', () => { + expect(workspacesUrl).toContain('azuremonitor'); + expect(azureLogAnalyticsUrl).toContain('sameasloganalyticsazure'); + }); + }); + + describe('When performing testDatasource', () => { + describe('and an error is returned', () => { + const error = { + data: { + error: { + code: 'InvalidApiVersionParameter', + message: `An error message.`, + }, + }, + status: 400, + statusText: 'Bad Request', + }; + + beforeEach(() => { + ctx.instanceSettings.jsonData.logAnalyticsSubscriptionId = 'xxx'; + ctx.instanceSettings.jsonData.logAnalyticsTenantId = 'xxx'; + ctx.instanceSettings.jsonData.logAnalyticsClientId = 'xxx'; + ctx.backendSrv.datasourceRequest = () => { + return ctx.$q.reject(error); + }; + }); + + it('should return error status and a detailed error message', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('error'); + expect(results.message).toEqual( + '1. Azure Log Analytics: Bad Request: InvalidApiVersionParameter. An error message. ' + ); + }); + }); + }); + }); + + describe('When performing query', () => { + const options = { + range: { + from: moment.utc('2017-08-22T20:00:00Z'), + to: moment.utc('2017-08-22T23:59:00Z'), + }, + rangeRaw: { + from: 'now-4h', + to: 'now', + }, + targets: [ + { + apiVersion: '2016-09-01', + refId: 'A', + queryType: 'Azure Log Analytics', + azureLogAnalytics: { + resultFormat: 'time_series', + query: + 'AzureActivity | where TimeGenerated > ago(2h) ' + + '| summarize count() by Category, bin(TimeGenerated, 5min) ' + + '| project TimeGenerated, Category, count_ | order by TimeGenerated asc', + }, + }, + ], + }; + + const response = { + tables: [ + { + name: 'PrimaryResult', + columns: [ + { + name: 'TimeGenerated', + type: 'datetime', + }, + { + name: 'Category', + type: 'string', + }, + { + name: 'count_', + type: 'long', + }, + ], + rows: [ + ['2018-06-02T20:20:00Z', 'Administrative', 2], + ['2018-06-02T20:25:00Z', 'Administrative', 22], + ['2018-06-02T20:30:00Z', 'Policy', 20], + ], + }, + ], + }; + + describe('in time series format', () => { + describe('and the data is valid (has time, metric and value columns)', () => { + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('query=AzureActivity'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(2); + expect(results.data[0].datapoints.length).toBe(2); + expect(results.data[0].target).toEqual('Administrative'); + expect(results.data[0].datapoints[0][1]).toEqual(1527970800000); + expect(results.data[0].datapoints[0][0]).toEqual(2); + expect(results.data[0].datapoints[1][1]).toEqual(1527971100000); + expect(results.data[0].datapoints[1][0]).toEqual(22); + }); + }); + }); + + describe('and the data has no time column)', () => { + beforeEach(() => { + const invalidResponse = { + tables: [ + { + name: 'PrimaryResult', + columns: [ + { + name: 'Category', + type: 'string', + }, + { + name: 'count_', + type: 'long', + }, + ], + rows: [['Administrative', 2]], + }, + ], + }; + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('query=AzureActivity'); + return ctx.$q.when({ data: invalidResponse, status: 200 }); + }; + }); + + it('should throw an exception', () => { + ctx.ds.query(options).catch(err => { + expect(err.message).toContain('The Time Series format requires a time column.'); + }); + }); + }); + }); + + describe('in tableformat', () => { + beforeEach(() => { + options.targets[0].azureLogAnalytics.resultFormat = 'table'; + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('query=AzureActivity'); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of columns and rows', () => { + return ctx.ds.query(options).then(results => { + expect(results.data[0].type).toBe('table'); + expect(results.data[0].columns.length).toBe(3); + expect(results.data[0].rows.length).toBe(3); + expect(results.data[0].columns[0].text).toBe('TimeGenerated'); + expect(results.data[0].columns[0].type).toBe('datetime'); + expect(results.data[0].columns[1].text).toBe('Category'); + expect(results.data[0].columns[1].type).toBe('string'); + expect(results.data[0].columns[2].text).toBe('count_'); + expect(results.data[0].columns[2].type).toBe('long'); + expect(results.data[0].rows[0][0]).toEqual('2018-06-02T20:20:00Z'); + expect(results.data[0].rows[0][1]).toEqual('Administrative'); + expect(results.data[0].rows[0][2]).toEqual(2); + }); + }); + }); + }); + + describe('When performing getSchema', () => { + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain('metadata'); + return ctx.$q.when({ data: FakeSchemaData.getlogAnalyticsFakeMetadata(), status: 200 }); + }; + }); + + it('should return a schema with a table and rows', () => { + return ctx.ds.azureLogAnalyticsDatasource.getSchema('myWorkspace').then(result => { + expect(Object.keys(result.Databases.Default.Tables).length).toBe(2); + expect(result.Databases.Default.Tables.Alert.Name).toBe('Alert'); + expect(result.Databases.Default.Tables.AzureActivity.Name).toBe('AzureActivity'); + expect(result.Databases.Default.Tables.Alert.OrderedColumns.length).toBe(69); + expect(result.Databases.Default.Tables.AzureActivity.OrderedColumns.length).toBe(21); + expect(result.Databases.Default.Tables.Alert.OrderedColumns[0].Name).toBe('TimeGenerated'); + expect(result.Databases.Default.Tables.Alert.OrderedColumns[0].Type).toBe('datetime'); + + expect(Object.keys(result.Databases.Default.Functions).length).toBe(1); + expect(result.Databases.Default.Functions.Func1.Name).toBe('Func1'); + }); + }); + }); + + describe('When performing metricFindQuery', () => { + const tableResponseWithOneColumn = { + tables: [ + { + name: 'PrimaryResult', + columns: [ + { + name: 'Category', + type: 'string', + }, + ], + rows: [['Administrative'], ['Policy']], + }, + ], + }; + + const workspaceResponse = { + value: [ + { + name: 'aworkspace', + properties: { + source: 'Azure', + customerId: 'abc1b44e-3e57-4410-b027-6cc0ae6dee67', + }, + }, + ], + }; + + let queryResults; + + beforeEach(async () => { + ctx.backendSrv.datasourceRequest = options => { + if (options.url.indexOf('Microsoft.OperationalInsights/workspaces') > -1) { + return ctx.$q.when({ data: workspaceResponse, status: 200 }); + } else { + return ctx.$q.when({ data: tableResponseWithOneColumn, status: 200 }); + } + }; + + queryResults = await ctx.ds.metricFindQuery('workspace("aworkspace").AzureActivity | distinct Category'); + }); + + it('should return a list of categories in the correct format', () => { + expect(queryResults.length).toBe(2); + expect(queryResults[0].text).toBe('Administrative'); + expect(queryResults[0].value).toBe('Administrative'); + expect(queryResults[1].text).toBe('Policy'); + expect(queryResults[1].value).toBe('Policy'); + }); + }); + + describe('When performing annotationQuery', () => { + const tableResponse = { + tables: [ + { + name: 'PrimaryResult', + columns: [ + { + name: 'TimeGenerated', + type: 'datetime', + }, + { + name: 'Text', + type: 'string', + }, + { + name: 'Tags', + type: 'string', + }, + ], + rows: [['2018-06-02T20:20:00Z', 'Computer1', 'tag1,tag2'], ['2018-06-02T20:28:00Z', 'Computer2', 'tag2']], + }, + ], + }; + + const workspaceResponse = { + value: [ + { + name: 'aworkspace', + properties: { + source: 'Azure', + customerId: 'abc1b44e-3e57-4410-b027-6cc0ae6dee67', + }, + }, + ], + }; + + let annotationResults; + + beforeEach(async () => { + ctx.backendSrv.datasourceRequest = options => { + if (options.url.indexOf('Microsoft.OperationalInsights/workspaces') > -1) { + return ctx.$q.when({ data: workspaceResponse, status: 200 }); + } else { + return ctx.$q.when({ data: tableResponse, status: 200 }); + } + }; + + annotationResults = await ctx.ds.annotationQuery({ + annotation: { + rawQuery: 'Heartbeat | where $__timeFilter()| project TimeGenerated, Text=Computer, tags="test"', + workspace: 'abc1b44e-3e57-4410-b027-6cc0ae6dee67', + }, + range: { + from: moment.utc('2017-08-22T20:00:00Z'), + to: moment.utc('2017-08-22T23:59:00Z'), + }, + rangeRaw: { + from: 'now-4h', + to: 'now', + }, + }); + }); + + it('should return a list of categories in the correct format', () => { + expect(annotationResults.length).toBe(2); + + expect(annotationResults[0].time).toBe(1527970800000); + expect(annotationResults[0].text).toBe('Computer1'); + expect(annotationResults[0].tags[0]).toBe('tag1'); + expect(annotationResults[0].tags[1]).toBe('tag2'); + + expect(annotationResults[1].time).toBe(1527971280000); + expect(annotationResults[1].text).toBe('Computer2'); + expect(annotationResults[1].tags[0]).toBe('tag2'); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.ts new file mode 100644 index 00000000000..9a5a1e259ec --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/azure_log_analytics_datasource.ts @@ -0,0 +1,321 @@ +import _ from 'lodash'; +import LogAnalyticsQuerystringBuilder from '../log_analytics/querystring_builder'; +import ResponseParser from './response_parser'; + +export default class AzureLogAnalyticsDatasource { + id: number; + url: string; + baseUrl: string; + applicationId: string; + azureMonitorUrl: string; + defaultOrFirstWorkspace: string; + subscriptionId: string; + + /** @ngInject */ + constructor(private instanceSettings, private backendSrv, private templateSrv, private $q) { + this.id = instanceSettings.id; + this.baseUrl = this.instanceSettings.jsonData.azureLogAnalyticsSameAs + ? '/sameasloganalyticsazure' + : `/loganalyticsazure`; + this.url = instanceSettings.url; + this.defaultOrFirstWorkspace = this.instanceSettings.jsonData.logAnalyticsDefaultWorkspace; + + this.setWorkspaceUrl(); + } + + isConfigured(): boolean { + return ( + (!!this.instanceSettings.jsonData.logAnalyticsSubscriptionId && + this.instanceSettings.jsonData.logAnalyticsSubscriptionId.length > 0) || + !!this.instanceSettings.jsonData.azureLogAnalyticsSameAs + ); + } + + setWorkspaceUrl() { + if (!!this.instanceSettings.jsonData.subscriptionId || !!this.instanceSettings.jsonData.azureLogAnalyticsSameAs) { + this.subscriptionId = this.instanceSettings.jsonData.subscriptionId; + const azureCloud = this.instanceSettings.jsonData.cloudName || 'azuremonitor'; + this.azureMonitorUrl = `/${azureCloud}/subscriptions/${this.subscriptionId}`; + } else { + this.subscriptionId = this.instanceSettings.jsonData.logAnalyticsSubscriptionId; + this.azureMonitorUrl = `/workspacesloganalytics/subscriptions/${this.subscriptionId}`; + } + } + + getWorkspaces() { + const workspaceListUrl = + this.azureMonitorUrl + '/providers/Microsoft.OperationalInsights/workspaces?api-version=2017-04-26-preview'; + return this.doRequest(workspaceListUrl).then(response => { + return ( + _.map(response.data.value, val => { + return { text: val.name, value: val.properties.customerId }; + }) || [] + ); + }); + } + + getSchema(workspace) { + if (!workspace) { + return Promise.resolve(); + } + const url = `${this.baseUrl}/${workspace}/metadata`; + + return this.doRequest(url).then(response => { + return new ResponseParser(response.data).parseSchemaResult(); + }); + } + + query(options) { + const queries = _.filter(options.targets, item => { + return item.hide !== true; + }).map(target => { + const item = target.azureLogAnalytics; + + const querystringBuilder = new LogAnalyticsQuerystringBuilder( + this.templateSrv.replace(item.query, options.scopedVars, this.interpolateVariable), + options, + 'TimeGenerated' + ); + const generated = querystringBuilder.generate(); + + const url = `${this.baseUrl}/${item.workspace}/query?${generated.uriString}`; + + return { + refId: target.refId, + intervalMs: options.intervalMs, + maxDataPoints: options.maxDataPoints, + datasourceId: this.id, + url: url, + query: generated.rawQuery, + format: options.format, + resultFormat: item.resultFormat, + }; + }); + + if (!queries || queries.length === 0) { + return; + } + + const promises = this.doQueries(queries); + + return this.$q.all(promises).then(results => { + return new ResponseParser(results).parseQueryResult(); + }); + } + + metricFindQuery(query: string) { + return this.getDefaultOrFirstWorkspace().then(workspace => { + const queries: any[] = this.buildQuery(query, null, workspace); + + const promises = this.doQueries(queries); + + return this.$q + .all(promises) + .then(results => { + return new ResponseParser(results).parseToVariables(); + }) + .catch(err => { + if ( + err.error && + err.error.data && + err.error.data.error && + err.error.data.error.innererror && + err.error.data.error.innererror.innererror + ) { + throw { message: err.error.data.error.innererror.innererror.message }; + } else if (err.error && err.error.data && err.error.data.error) { + throw { message: err.error.data.error.message }; + } + }); + }); + } + + private buildQuery(query: string, options: any, workspace: any) { + const querystringBuilder = new LogAnalyticsQuerystringBuilder( + this.templateSrv.replace(query, {}, this.interpolateVariable), + options, + 'TimeGenerated' + ); + const querystring = querystringBuilder.generate().uriString; + const url = `${this.baseUrl}/${workspace}/query?${querystring}`; + const queries: any[] = []; + queries.push({ + datasourceId: this.id, + url: url, + resultFormat: 'table', + }); + return queries; + } + + interpolateVariable(value, variable) { + if (typeof value === 'string') { + if (variable.multi || variable.includeAll) { + return "'" + value + "'"; + } else { + return value; + } + } + + if (typeof value === 'number') { + return value; + } + + const quotedValues = _.map(value, val => { + if (typeof value === 'number') { + return value; + } + + return "'" + val + "'"; + }); + return quotedValues.join(','); + } + + getDefaultOrFirstWorkspace() { + if (this.defaultOrFirstWorkspace) { + return Promise.resolve(this.defaultOrFirstWorkspace); + } + + return this.getWorkspaces().then(workspaces => { + this.defaultOrFirstWorkspace = workspaces[0].value; + return this.defaultOrFirstWorkspace; + }); + } + + annotationQuery(options) { + if (!options.annotation.rawQuery) { + return this.$q.reject({ + message: 'Query missing in annotation definition', + }); + } + + const queries: any[] = this.buildQuery(options.annotation.rawQuery, options, options.annotation.workspace); + + const promises = this.doQueries(queries); + + return this.$q.all(promises).then(results => { + const annotations = new ResponseParser(results).transformToAnnotations(options); + return annotations; + }); + } + + doQueries(queries) { + return _.map(queries, query => { + return this.doRequest(query.url) + .then(result => { + return { + result: result, + query: query, + }; + }) + .catch(err => { + throw { + error: err, + query: query, + }; + }); + }); + } + + doRequest(url, maxRetries = 1) { + return this.backendSrv + .datasourceRequest({ + url: this.url + url, + method: 'GET', + }) + .catch(error => { + if (maxRetries > 0) { + return this.doRequest(url, maxRetries - 1); + } + + throw error; + }); + } + + testDatasource() { + const validationError = this.isValidConfig(); + if (validationError) { + return validationError; + } + + return this.getDefaultOrFirstWorkspace() + .then(ws => { + const url = `${this.baseUrl}/${ws}/metadata`; + + return this.doRequest(url); + }) + .then(response => { + if (response.status === 200) { + return { + status: 'success', + message: 'Successfully queried the Azure Log Analytics service.', + title: 'Success', + }; + } + + return { + status: 'error', + message: 'Returned http status code ' + response.status, + }; + }) + .catch(error => { + let message = 'Azure Log Analytics: '; + if (error.config && error.config.url && error.config.url.indexOf('workspacesloganalytics') > -1) { + message = 'Azure Log Analytics requires access to Azure Monitor but had the following error: '; + } + + message = this.getErrorMessage(message, error); + + return { + status: 'error', + message: message, + }; + }); + } + + private getErrorMessage(message: string, error: any) { + message += error.statusText ? error.statusText + ': ' : ''; + if (error.data && error.data.error && error.data.error.code) { + message += error.data.error.code + '. ' + error.data.error.message; + } else if (error.data && error.data.error) { + message += error.data.error; + } else if (error.data) { + message += error.data; + } else { + message += 'Cannot connect to Azure Log Analytics REST API.'; + } + return message; + } + + isValidConfig() { + if (this.instanceSettings.jsonData.azureLogAnalyticsSameAs) { + return undefined; + } + + if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsSubscriptionId)) { + return { + status: 'error', + message: 'The Subscription Id field is required.', + }; + } + + if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsTenantId)) { + return { + status: 'error', + message: 'The Tenant Id field is required.', + }; + } + + if (!this.isValidConfigField(this.instanceSettings.jsonData.logAnalyticsClientId)) { + return { + status: 'error', + message: 'The Client Id field is required.', + }; + } + + return undefined; + } + + isValidConfigField(field: string) { + return field && field.length > 0; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.ts new file mode 100644 index 00000000000..e747c2e4d70 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_log_analytics/response_parser.ts @@ -0,0 +1,269 @@ +import _ from 'lodash'; +import moment from 'moment'; + +export interface DataTarget { + target: string; + datapoints: any[]; + refId: string; + query: any; +} +export interface TableResult { + columns: TableColumn[]; + rows: any[]; + type: string; + refId: string; + query: string; +} + +export interface TableColumn { + text: string; + type: string; +} + +export interface KustoSchema { + Databases: { [key: string]: KustoDatabase }; + Plugins: any[]; +} +export interface KustoDatabase { + Name: string; + Tables: { [key: string]: KustoTable }; + Functions: { [key: string]: KustoFunction }; +} + +export interface KustoTable { + Name: string; + OrderedColumns: KustoColumn[]; +} + +export interface KustoColumn { + Name: string; + Type: string; +} + +export interface KustoFunction { + Name: string; + DocString: string; + Body: string; + Folder: string; + FunctionKind: string; + InputParameters: any[]; + OutputColumns: any[]; +} + +export interface Variable { + text: string; + value: string; +} + +export interface AnnotationItem { + annotation: any; + time: number; + text: string; + tags: string[]; +} + +export default class ResponseParser { + columns: string[]; + constructor(private results) {} + + parseQueryResult(): any { + let data: any[] = []; + let columns: any[] = []; + for (let i = 0; i < this.results.length; i++) { + if (this.results[i].result.data.tables.length === 0) { + continue; + } + columns = this.results[i].result.data.tables[0].columns; + const rows = this.results[i].result.data.tables[0].rows; + + if (this.results[i].query.resultFormat === 'time_series') { + data = _.concat(data, this.parseTimeSeriesResult(this.results[i].query, columns, rows)); + } else { + data = _.concat(data, this.parseTableResult(this.results[i].query, columns, rows)); + } + } + + return data; + } + + parseTimeSeriesResult(query, columns, rows): DataTarget[] { + const data: DataTarget[] = []; + let timeIndex = -1; + let metricIndex = -1; + let valueIndex = -1; + + for (let i = 0; i < columns.length; i++) { + if (timeIndex === -1 && columns[i].type === 'datetime') { + timeIndex = i; + } + + if (metricIndex === -1 && columns[i].type === 'string') { + metricIndex = i; + } + + if (valueIndex === -1 && ['int', 'long', 'real', 'double'].indexOf(columns[i].type) > -1) { + valueIndex = i; + } + } + + if (timeIndex === -1) { + throw new Error('No datetime column found in the result. The Time Series format requires a time column.'); + } + + _.forEach(rows, row => { + const epoch = ResponseParser.dateTimeToEpoch(row[timeIndex]); + const metricName = metricIndex > -1 ? row[metricIndex] : columns[valueIndex].name; + const bucket = ResponseParser.findOrCreateBucket(data, metricName); + bucket.datapoints.push([row[valueIndex], epoch]); + bucket.refId = query.refId; + bucket.query = query.query; + }); + + return data; + } + + parseTableResult(query, columns, rows): TableResult { + const tableResult: TableResult = { + type: 'table', + columns: _.map(columns, col => { + return { text: col.name, type: col.type }; + }), + rows: rows, + refId: query.refId, + query: query.query, + }; + + return tableResult; + } + + parseToVariables(): Variable[] { + const queryResult = this.parseQueryResult(); + + const variables: Variable[] = []; + _.forEach(queryResult, result => { + _.forEach(_.flattenDeep(result.rows), row => { + variables.push({ + text: row, + value: row, + } as Variable); + }); + }); + + return variables; + } + + transformToAnnotations(options: any) { + const queryResult = this.parseQueryResult(); + + const list: AnnotationItem[] = []; + + _.forEach(queryResult, result => { + let timeIndex = -1; + let textIndex = -1; + let tagsIndex = -1; + + for (let i = 0; i < result.columns.length; i++) { + if (timeIndex === -1 && result.columns[i].type === 'datetime') { + timeIndex = i; + } + + if (textIndex === -1 && result.columns[i].text.toLowerCase() === 'text') { + textIndex = i; + } + + if (tagsIndex === -1 && result.columns[i].text.toLowerCase() === 'tags') { + tagsIndex = i; + } + } + + _.forEach(result.rows, row => { + list.push({ + annotation: options.annotation, + time: Math.floor(ResponseParser.dateTimeToEpoch(row[timeIndex])), + text: row[textIndex] ? row[textIndex].toString() : '', + tags: row[tagsIndex] ? row[tagsIndex].trim().split(/\s*,\s*/) : [], + }); + }); + }); + + return list; + } + + parseSchemaResult(): KustoSchema { + return { + Plugins: [ + { + Name: 'pivot', + }, + ], + Databases: this.createSchemaDatabaseWithTables(), + }; + } + + createSchemaDatabaseWithTables(): { [key: string]: KustoDatabase } { + const databases = { + Default: { + Name: 'Default', + Tables: this.createSchemaTables(), + Functions: this.createSchemaFunctions(), + }, + }; + + return databases; + } + + createSchemaTables(): { [key: string]: KustoTable } { + const tables: { [key: string]: KustoTable } = {}; + + for (const table of this.results.tables) { + tables[table.name] = { + Name: table.name, + OrderedColumns: [], + }; + for (const col of table.columns) { + tables[table.name].OrderedColumns.push(this.convertToKustoColumn(col)); + } + } + + return tables; + } + + convertToKustoColumn(col: any): KustoColumn { + return { + Name: col.name, + Type: col.type, + }; + } + + createSchemaFunctions(): { [key: string]: KustoFunction } { + const functions: { [key: string]: KustoFunction } = {}; + + for (const func of this.results.functions) { + functions[func.name] = { + Name: func.name, + Body: func.body, + DocString: func.displayName, + Folder: func.category, + FunctionKind: 'Unknown', + InputParameters: [], + OutputColumns: [], + }; + } + + return functions; + } + + static findOrCreateBucket(data, target): DataTarget { + let dataTarget = _.find(data, ['target', target]); + if (!dataTarget) { + dataTarget = { target: target, datapoints: [], refId: '', query: '' }; + data.push(dataTarget); + } + + return dataTarget; + } + + static dateTimeToEpoch(dateTime) { + return moment(dateTime).valueOf(); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts new file mode 100644 index 00000000000..c585724990a --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.test.ts @@ -0,0 +1,819 @@ +import AzureMonitorDatasource from '../datasource'; +import Q from 'q'; +import moment from 'moment'; +import { TemplateSrv } from 'app/features/templating/template_srv'; + +describe('AzureMonitorDatasource', () => { + const ctx: any = { + backendSrv: {}, + templateSrv: new TemplateSrv(), + }; + + beforeEach(() => { + ctx.$q = Q; + ctx.instanceSettings = { + url: 'http://azuremonitor.com', + jsonData: { subscriptionId: '9935389e-9122-4ef9-95f9-1513dd24753f' }, + cloudName: 'azuremonitor', + }; + + ctx.ds = new AzureMonitorDatasource(ctx.instanceSettings, ctx.backendSrv, ctx.templateSrv, ctx.$q); + }); + + describe('When performing testDatasource', () => { + describe('and an error is returned', () => { + const error = { + data: { + error: { + code: 'InvalidApiVersionParameter', + message: `An error message.`, + }, + }, + status: 400, + statusText: 'Bad Request', + }; + + beforeEach(() => { + ctx.instanceSettings.jsonData.tenantId = 'xxx'; + ctx.instanceSettings.jsonData.clientId = 'xxx'; + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.reject(error); + }; + }); + + it('should return error status and a detailed error message', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('error'); + expect(results.message).toEqual( + '1. Azure Monitor: Bad Request: InvalidApiVersionParameter. An error message. ' + ); + }); + }); + }); + + describe('and a list of resource groups is returned', () => { + const response = { + data: { + value: [{ name: 'grp1' }, { name: 'grp2' }], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.instanceSettings.jsonData.tenantId = 'xxx'; + ctx.instanceSettings.jsonData.clientId = 'xxx'; + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return success status', () => { + return ctx.ds.testDatasource().then(results => { + expect(results.status).toEqual('success'); + }); + }); + }); + }); + + describe('When performing query', () => { + const options = { + range: { + from: moment.utc('2017-08-22T20:00:00Z'), + to: moment.utc('2017-08-22T23:59:00Z'), + }, + targets: [ + { + apiVersion: '2018-01-01', + refId: 'A', + queryType: 'Azure Monitor', + azureMonitor: { + resourceGroup: 'testRG', + resourceName: 'testRN', + metricDefinition: 'Microsoft.Compute/virtualMachines', + metricName: 'Percentage CPU', + timeGrain: 'PT1H', + alias: '', + }, + }, + ], + }; + + describe('and data field is average', () => { + const response = { + value: [ + { + timeseries: [ + { + data: [ + { + timeStamp: '2017-08-22T21:00:00Z', + average: 1.0503333333333331, + }, + { + timeStamp: '2017-08-22T22:00:00Z', + average: 1.045083333333333, + }, + { + timeStamp: '2017-08-22T23:00:00Z', + average: 1.0457499999999995, + }, + ], + }, + ], + id: + '/subscriptions/xxx/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines' + + '/testRN/providers/Microsoft.Insights/metrics/Percentage CPU', + name: { + value: 'Percentage CPU', + localizedValue: 'Percentage CPU', + }, + type: 'Microsoft.Insights/metrics', + unit: 'Percent', + }, + ], + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain( + '/testRG/providers/Microsoft.Compute/virtualMachines/testRN/providers/microsoft.insights/metrics' + ); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + expect(results.data[0].target).toEqual('testRN.Percentage CPU'); + expect(results.data[0].datapoints[0][1]).toEqual(1503435600000); + expect(results.data[0].datapoints[0][0]).toEqual(1.0503333333333331); + expect(results.data[0].datapoints[2][1]).toEqual(1503442800000); + expect(results.data[0].datapoints[2][0]).toEqual(1.0457499999999995); + }); + }); + }); + + describe('and data field is total', () => { + const response = { + value: [ + { + timeseries: [ + { + data: [ + { + timeStamp: '2017-08-22T21:00:00Z', + total: 1.0503333333333331, + }, + { + timeStamp: '2017-08-22T22:00:00Z', + total: 1.045083333333333, + }, + { + timeStamp: '2017-08-22T23:00:00Z', + total: 1.0457499999999995, + }, + ], + }, + ], + id: + '/subscriptions/xxx/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines' + + '/testRN/providers/Microsoft.Insights/metrics/Percentage CPU', + name: { + value: 'Percentage CPU', + localizedValue: 'Percentage CPU', + }, + type: 'Microsoft.Insights/metrics', + unit: 'Percent', + }, + ], + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + expect(options.url).toContain( + '/testRG/providers/Microsoft.Compute/virtualMachines/testRN/providers/microsoft.insights/metrics' + ); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + expect(results.data[0].target).toEqual('testRN.Percentage CPU'); + expect(results.data[0].datapoints[0][1]).toEqual(1503435600000); + expect(results.data[0].datapoints[0][0]).toEqual(1.0503333333333331); + expect(results.data[0].datapoints[2][1]).toEqual(1503442800000); + expect(results.data[0].datapoints[2][0]).toEqual(1.0457499999999995); + }); + }); + }); + + describe('and data has a dimension filter', () => { + const response = { + value: [ + { + timeseries: [ + { + data: [ + { + timeStamp: '2017-08-22T21:00:00Z', + total: 1.0503333333333331, + }, + { + timeStamp: '2017-08-22T22:00:00Z', + total: 1.045083333333333, + }, + { + timeStamp: '2017-08-22T23:00:00Z', + total: 1.0457499999999995, + }, + ], + metadatavalues: [ + { + name: { + value: 'blobtype', + localizedValue: 'blobtype', + }, + value: 'BlockBlob', + }, + ], + }, + ], + id: + '/subscriptions/xxx/resourceGroups/testRG/providers/Microsoft.Compute/virtualMachines' + + '/testRN/providers/Microsoft.Insights/metrics/Percentage CPU', + name: { + value: 'Percentage CPU', + localizedValue: 'Percentage CPU', + }, + type: 'Microsoft.Insights/metrics', + unit: 'Percent', + }, + ], + }; + + describe('and with no alias specified', () => { + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const expected = + '/testRG/providers/Microsoft.Compute/virtualMachines/testRN/providers/microsoft.insights/metrics'; + expect(options.url).toContain(expected); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + expect(results.data[0].target).toEqual('testRN{blobtype=BlockBlob}.Percentage CPU'); + expect(results.data[0].datapoints[0][1]).toEqual(1503435600000); + expect(results.data[0].datapoints[0][0]).toEqual(1.0503333333333331); + expect(results.data[0].datapoints[2][1]).toEqual(1503442800000); + expect(results.data[0].datapoints[2][0]).toEqual(1.0457499999999995); + }); + }); + }); + + describe('and with an alias specified', () => { + beforeEach(() => { + options.targets[0].azureMonitor.alias = + '{{resourcegroup}} + {{namespace}} + {{resourcename}} + ' + + '{{metric}} + {{dimensionname}} + {{dimensionvalue}}'; + + ctx.backendSrv.datasourceRequest = options => { + const expected = + '/testRG/providers/Microsoft.Compute/virtualMachines/testRN/providers/microsoft.insights/metrics'; + expect(options.url).toContain(expected); + return ctx.$q.when({ data: response, status: 200 }); + }; + }); + + it('should return a list of datapoints', () => { + return ctx.ds.query(options).then(results => { + expect(results.data.length).toBe(1); + const expected = + 'testRG + Microsoft.Compute/virtualMachines + testRN + Percentage CPU + blobtype + BlockBlob'; + expect(results.data[0].target).toEqual(expected); + expect(results.data[0].datapoints[0][1]).toEqual(1503435600000); + expect(results.data[0].datapoints[0][0]).toEqual(1.0503333333333331); + expect(results.data[0].datapoints[2][1]).toEqual(1503442800000); + expect(results.data[0].datapoints[2][0]).toEqual(1.0457499999999995); + }); + }); + }); + }); + }); + + describe('When performing metricFindQuery', () => { + describe('with a metric names query', () => { + const response = { + data: { + value: [{ name: 'grp1' }, { name: 'grp2' }], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.when(response); + }; + }); + + it('should return a list of metric names', () => { + return ctx.ds.metricFindQuery('ResourceGroups()').then(results => { + expect(results.length).toBe(2); + expect(results[0].text).toBe('grp1'); + expect(results[0].value).toBe('grp1'); + expect(results[1].text).toBe('grp2'); + expect(results[1].value).toBe('grp2'); + }); + }); + }); + + describe('with metric definitions query', () => { + const response = { + data: { + value: [ + { + name: 'test', + type: 'Microsoft.Network/networkInterfaces', + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe(baseUrl + '/nodesapp/resources?api-version=2018-01-01'); + return ctx.$q.when(response); + }; + }); + + it('should return a list of metric definitions', () => { + return ctx.ds.metricFindQuery('Namespaces(nodesapp)').then(results => { + expect(results.length).toEqual(1); + expect(results[0].text).toEqual('Microsoft.Network/networkInterfaces'); + expect(results[0].value).toEqual('Microsoft.Network/networkInterfaces'); + }); + }); + }); + + describe('with resource names query', () => { + const response = { + data: { + value: [ + { + name: 'Failure Anomalies - nodeapp', + type: 'microsoft.insights/alertrules', + }, + { + name: 'nodeapp', + type: 'microsoft.insights/components', + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe(baseUrl + '/nodeapp/resources?api-version=2018-01-01'); + return ctx.$q.when(response); + }; + }); + + it('should return a list of resource names', () => { + return ctx.ds.metricFindQuery('resourceNames(nodeapp, microsoft.insights/components )').then(results => { + expect(results.length).toEqual(1); + expect(results[0].text).toEqual('nodeapp'); + expect(results[0].value).toEqual('nodeapp'); + }); + }); + }); + + describe('with metric names query', () => { + const response = { + data: { + value: [ + { + name: { + value: 'Percentage CPU', + localizedValue: 'Percentage CPU', + }, + }, + { + name: { + value: 'UsedCapacity', + localizedValue: 'Used capacity', + }, + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe( + baseUrl + + '/nodeapp/providers/microsoft.insights/components/rn/providers/microsoft.insights/' + + 'metricdefinitions?api-version=2018-01-01' + ); + return ctx.$q.when(response); + }; + }); + + it('should return a list of metric names', () => { + return ctx.ds.metricFindQuery('Metricnames(nodeapp, microsoft.insights/components, rn)').then(results => { + expect(results.length).toEqual(2); + expect(results[0].text).toEqual('Percentage CPU'); + expect(results[0].value).toEqual('Percentage CPU'); + + expect(results[1].text).toEqual('Used capacity'); + expect(results[1].value).toEqual('UsedCapacity'); + }); + }); + }); + }); + + describe('When performing getResourceGroups', () => { + const response = { + data: { + value: [{ name: 'grp1' }, { name: 'grp2' }], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + return ctx.$q.when(response); + }; + }); + + it('should return list of Resource Groups', () => { + return ctx.ds.getResourceGroups().then(results => { + expect(results.length).toEqual(2); + expect(results[0].text).toEqual('grp1'); + expect(results[0].value).toEqual('grp1'); + expect(results[1].text).toEqual('grp2'); + expect(results[1].value).toEqual('grp2'); + }); + }); + }); + + describe('When performing getMetricDefinitions', () => { + const response = { + data: { + value: [ + { + name: 'test', + type: 'Microsoft.Network/networkInterfaces', + }, + { + location: 'northeurope', + name: 'northeur', + type: 'Microsoft.Compute/virtualMachines', + }, + { + location: 'westcentralus', + name: 'us', + type: 'Microsoft.Compute/virtualMachines', + }, + { + name: 'IHaveNoMetrics', + type: 'IShouldBeFilteredOut', + }, + { + name: 'storageTest', + type: 'Microsoft.Storage/storageAccounts', + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe(baseUrl + '/nodesapp/resources?api-version=2018-01-01'); + return ctx.$q.when(response); + }; + }); + + it('should return list of Metric Definitions with no duplicates and no unsupported namespaces', () => { + return ctx.ds.getMetricDefinitions('nodesapp').then(results => { + expect(results.length).toEqual(7); + expect(results[0].text).toEqual('Microsoft.Network/networkInterfaces'); + expect(results[0].value).toEqual('Microsoft.Network/networkInterfaces'); + expect(results[1].text).toEqual('Microsoft.Compute/virtualMachines'); + expect(results[1].value).toEqual('Microsoft.Compute/virtualMachines'); + expect(results[2].text).toEqual('Microsoft.Storage/storageAccounts'); + expect(results[2].value).toEqual('Microsoft.Storage/storageAccounts'); + expect(results[3].text).toEqual('Microsoft.Storage/storageAccounts/blobServices'); + expect(results[3].value).toEqual('Microsoft.Storage/storageAccounts/blobServices'); + expect(results[4].text).toEqual('Microsoft.Storage/storageAccounts/fileServices'); + expect(results[4].value).toEqual('Microsoft.Storage/storageAccounts/fileServices'); + expect(results[5].text).toEqual('Microsoft.Storage/storageAccounts/tableServices'); + expect(results[5].value).toEqual('Microsoft.Storage/storageAccounts/tableServices'); + expect(results[6].text).toEqual('Microsoft.Storage/storageAccounts/queueServices'); + expect(results[6].value).toEqual('Microsoft.Storage/storageAccounts/queueServices'); + }); + }); + }); + + describe('When performing getResourceNames', () => { + describe('and there are no special cases', () => { + const response = { + data: { + value: [ + { + name: 'Failure Anomalies - nodeapp', + type: 'microsoft.insights/alertrules', + }, + { + name: 'nodeapp', + type: 'microsoft.insights/components', + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe(baseUrl + '/nodeapp/resources?api-version=2018-01-01'); + return ctx.$q.when(response); + }; + }); + + it('should return list of Resource Names', () => { + return ctx.ds.getResourceNames('nodeapp', 'microsoft.insights/components').then(results => { + expect(results.length).toEqual(1); + expect(results[0].text).toEqual('nodeapp'); + expect(results[0].value).toEqual('nodeapp'); + }); + }); + }); + + describe('and the metric definition is blobServices', () => { + const response = { + data: { + value: [ + { + name: 'Failure Anomalies - nodeapp', + type: 'microsoft.insights/alertrules', + }, + { + name: 'storagetest', + type: 'Microsoft.Storage/storageAccounts', + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups'; + expect(options.url).toBe(baseUrl + '/nodeapp/resources?api-version=2018-01-01'); + return ctx.$q.when(response); + }; + }); + + it('should return list of Resource Names', () => { + return ctx.ds.getResourceNames('nodeapp', 'Microsoft.Storage/storageAccounts/blobServices').then(results => { + expect(results.length).toEqual(1); + expect(results[0].text).toEqual('storagetest/default'); + expect(results[0].value).toEqual('storagetest/default'); + }); + }); + }); + }); + + describe('When performing getMetricNames', () => { + const response = { + data: { + value: [ + { + name: { + value: 'UsedCapacity', + localizedValue: 'Used capacity', + }, + unit: 'CountPerSecond', + primaryAggregationType: 'Total', + supportedAggregationTypes: ['None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'], + metricAvailabilities: [ + { timeGrain: 'PT1H', retention: 'P93D' }, + { timeGrain: 'PT6H', retention: 'P93D' }, + { timeGrain: 'PT12H', retention: 'P93D' }, + { timeGrain: 'P1D', retention: 'P93D' }, + ], + }, + { + name: { + value: 'FreeCapacity', + localizedValue: 'Free capacity', + }, + unit: 'CountPerSecond', + primaryAggregationType: 'Average', + supportedAggregationTypes: ['None', 'Average'], + metricAvailabilities: [ + { timeGrain: 'PT1H', retention: 'P93D' }, + { timeGrain: 'PT6H', retention: 'P93D' }, + { timeGrain: 'PT12H', retention: 'P93D' }, + { timeGrain: 'P1D', retention: 'P93D' }, + ], + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups/nodeapp'; + const expected = + baseUrl + + '/providers/microsoft.insights/components/resource1' + + '/providers/microsoft.insights/metricdefinitions?api-version=2018-01-01'; + expect(options.url).toBe(expected); + return ctx.$q.when(response); + }; + }); + + it('should return list of Metric Definitions', () => { + return ctx.ds.getMetricNames('nodeapp', 'microsoft.insights/components', 'resource1').then(results => { + expect(results.length).toEqual(2); + expect(results[0].text).toEqual('Used capacity'); + expect(results[0].value).toEqual('UsedCapacity'); + expect(results[1].text).toEqual('Free capacity'); + expect(results[1].value).toEqual('FreeCapacity'); + }); + }); + }); + + describe('When performing getMetricMetadata', () => { + const response = { + data: { + value: [ + { + name: { + value: 'UsedCapacity', + localizedValue: 'Used capacity', + }, + unit: 'CountPerSecond', + primaryAggregationType: 'Total', + supportedAggregationTypes: ['None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'], + metricAvailabilities: [ + { timeGrain: 'PT1H', retention: 'P93D' }, + { timeGrain: 'PT6H', retention: 'P93D' }, + { timeGrain: 'PT12H', retention: 'P93D' }, + { timeGrain: 'P1D', retention: 'P93D' }, + ], + }, + { + name: { + value: 'FreeCapacity', + localizedValue: 'Free capacity', + }, + unit: 'CountPerSecond', + primaryAggregationType: 'Average', + supportedAggregationTypes: ['None', 'Average'], + metricAvailabilities: [ + { timeGrain: 'PT1H', retention: 'P93D' }, + { timeGrain: 'PT6H', retention: 'P93D' }, + { timeGrain: 'PT12H', retention: 'P93D' }, + { timeGrain: 'P1D', retention: 'P93D' }, + ], + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups/nodeapp'; + const expected = + baseUrl + + '/providers/microsoft.insights/components/resource1' + + '/providers/microsoft.insights/metricdefinitions?api-version=2018-01-01'; + expect(options.url).toBe(expected); + return ctx.$q.when(response); + }; + }); + + it('should return Aggregation metadata for a Metric', () => { + return ctx.ds + .getMetricMetadata('nodeapp', 'microsoft.insights/components', 'resource1', 'UsedCapacity') + .then(results => { + expect(results.primaryAggType).toEqual('Total'); + expect(results.supportedAggTypes.length).toEqual(6); + expect(results.supportedTimeGrains.length).toEqual(4); + }); + }); + }); + + describe('When performing getMetricMetadata on metrics with dimensions', () => { + const response = { + data: { + value: [ + { + name: { + value: 'Transactions', + localizedValue: 'Transactions', + }, + unit: 'Count', + primaryAggregationType: 'Total', + supportedAggregationTypes: ['None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count'], + isDimensionRequired: false, + dimensions: [ + { + value: 'ResponseType', + localizedValue: 'Response type', + }, + { + value: 'GeoType', + localizedValue: 'Geo type', + }, + { + value: 'ApiName', + localizedValue: 'API name', + }, + ], + }, + { + name: { + value: 'FreeCapacity', + localizedValue: 'Free capacity', + }, + unit: 'CountPerSecond', + primaryAggregationType: 'Average', + supportedAggregationTypes: ['None', 'Average'], + }, + ], + }, + status: 200, + statusText: 'OK', + }; + + beforeEach(() => { + ctx.backendSrv.datasourceRequest = options => { + const baseUrl = + 'http://azuremonitor.com/azuremonitor/subscriptions/9935389e-9122-4ef9-95f9-1513dd24753f/resourceGroups/nodeapp'; + const expected = + baseUrl + + '/providers/microsoft.insights/components/resource1' + + '/providers/microsoft.insights/metricdefinitions?api-version=2018-01-01'; + expect(options.url).toBe(expected); + return ctx.$q.when(response); + }; + }); + + it('should return dimensions for a Metric that has dimensions', () => { + return ctx.ds + .getMetricMetadata('nodeapp', 'microsoft.insights/components', 'resource1', 'Transactions') + .then(results => { + expect(results.dimensions.length).toEqual(4); + expect(results.dimensions[0].text).toEqual('None'); + expect(results.dimensions[0].value).toEqual('None'); + expect(results.dimensions[1].text).toEqual('Response type'); + expect(results.dimensions[1].value).toEqual('ResponseType'); + }); + }); + + it('should return an empty array for a Metric that does not have dimensions', () => { + return ctx.ds + .getMetricMetadata('nodeapp', 'microsoft.insights/components', 'resource1', 'FreeCapacity') + .then(results => { + expect(results.dimensions.length).toEqual(0); + }); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts new file mode 100644 index 00000000000..6f82ca72558 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_datasource.ts @@ -0,0 +1,339 @@ +import _ from 'lodash'; +import AzureMonitorFilterBuilder from './azure_monitor_filter_builder'; +import UrlBuilder from './url_builder'; +import ResponseParser from './response_parser'; +import SupportedNamespaces from './supported_namespaces'; +import TimegrainConverter from '../time_grain_converter'; + +export default class AzureMonitorDatasource { + apiVersion = '2018-01-01'; + id: number; + subscriptionId: string; + baseUrl: string; + resourceGroup: string; + resourceName: string; + url: string; + defaultDropdownValue = 'select'; + cloudName: string; + supportedMetricNamespaces: any[] = []; + + /** @ngInject */ + constructor(private instanceSettings, private backendSrv, private templateSrv, private $q) { + this.id = instanceSettings.id; + this.subscriptionId = instanceSettings.jsonData.subscriptionId; + this.cloudName = instanceSettings.jsonData.cloudName || 'azuremonitor'; + this.baseUrl = `/${this.cloudName}/subscriptions/${this.subscriptionId}/resourceGroups`; + this.url = instanceSettings.url; + + this.supportedMetricNamespaces = new SupportedNamespaces(this.cloudName).get(); + } + + isConfigured(): boolean { + return !!this.subscriptionId && this.subscriptionId.length > 0; + } + + query(options) { + const queries = _.filter(options.targets, item => { + return ( + item.hide !== true && + item.azureMonitor.resourceGroup && + item.azureMonitor.resourceGroup !== this.defaultDropdownValue && + item.azureMonitor.resourceName && + item.azureMonitor.resourceName !== this.defaultDropdownValue && + item.azureMonitor.metricDefinition && + item.azureMonitor.metricDefinition !== this.defaultDropdownValue && + item.azureMonitor.metricName && + item.azureMonitor.metricName !== this.defaultDropdownValue + ); + }).map(target => { + const item = target.azureMonitor; + + if (item.timeGrainUnit && item.timeGrain !== 'auto') { + item.timeGrain = TimegrainConverter.createISO8601Duration(item.timeGrain, item.timeGrainUnit); + } + + const resourceGroup = this.templateSrv.replace(item.resourceGroup, options.scopedVars); + const resourceName = this.templateSrv.replace(item.resourceName, options.scopedVars); + const metricDefinition = this.templateSrv.replace(item.metricDefinition, options.scopedVars); + const timeGrain = this.templateSrv.replace((item.timeGrain || '').toString(), options.scopedVars); + + const filterBuilder = new AzureMonitorFilterBuilder( + item.metricName, + options.range.from, + options.range.to, + timeGrain, + options.interval + ); + + if (item.timeGrains) { + filterBuilder.setAllowedTimeGrains(item.timeGrains); + } + + if (item.aggregation) { + filterBuilder.setAggregation(item.aggregation); + } + + if (item.dimension && item.dimension !== 'None') { + filterBuilder.setDimensionFilter(item.dimension, item.dimensionFilter); + } + + const filter = this.templateSrv.replace(filterBuilder.generateFilter(), options.scopedVars); + + const url = UrlBuilder.buildAzureMonitorQueryUrl( + this.baseUrl, + resourceGroup, + metricDefinition, + resourceName, + this.apiVersion, + filter + ); + + return { + refId: target.refId, + intervalMs: options.intervalMs, + maxDataPoints: options.maxDataPoints, + datasourceId: this.id, + url: url, + format: options.format, + alias: item.alias, + raw: false, + }; + }); + + if (!queries || queries.length === 0) { + return; + } + + const promises = this.doQueries(queries); + + return this.$q.all(promises).then(results => { + return new ResponseParser(results).parseQueryResult(); + }); + } + + doQueries(queries) { + return _.map(queries, query => { + return this.doRequest(query.url) + .then(result => { + return { + result: result, + query: query, + }; + }) + .catch(err => { + throw { + error: err, + query: query, + }; + }); + }); + } + + annotationQuery(options) {} + + metricFindQuery(query: string) { + const resourceGroupsQuery = query.match(/^ResourceGroups\(\)/i); + if (resourceGroupsQuery) { + return this.getResourceGroups(); + } + + const metricDefinitionsQuery = query.match(/^Namespaces\(([^\)]+?)(,\s?([^,]+?))?\)/i); + if (metricDefinitionsQuery) { + return this.getMetricDefinitions(this.toVariable(metricDefinitionsQuery[1])); + } + + const resourceNamesQuery = query.match(/^ResourceNames\(([^,]+?),\s?([^,]+?)\)/i); + if (resourceNamesQuery) { + const resourceGroup = this.toVariable(resourceNamesQuery[1]); + const metricDefinition = this.toVariable(resourceNamesQuery[2]); + return this.getResourceNames(resourceGroup, metricDefinition); + } + + const metricNamesQuery = query.match(/^MetricNames\(([^,]+?),\s?([^,]+?),\s?(.+?)\)/i); + + if (metricNamesQuery) { + const resourceGroup = this.toVariable(metricNamesQuery[1]); + const metricDefinition = this.toVariable(metricNamesQuery[2]); + const resourceName = this.toVariable(metricNamesQuery[3]); + return this.getMetricNames(resourceGroup, metricDefinition, resourceName); + } + + return undefined; + } + + toVariable(metric: string) { + return this.templateSrv.replace((metric || '').trim()); + } + + getResourceGroups() { + const url = `${this.baseUrl}?api-version=${this.apiVersion}`; + return this.doRequest(url).then(result => { + return ResponseParser.parseResponseValues(result, 'name', 'name'); + }); + } + + getMetricDefinitions(resourceGroup: string) { + const url = `${this.baseUrl}/${resourceGroup}/resources?api-version=${this.apiVersion}`; + return this.doRequest(url) + .then(result => { + return ResponseParser.parseResponseValues(result, 'type', 'type'); + }) + .then(result => { + return _.filter(result, t => { + for (let i = 0; i < this.supportedMetricNamespaces.length; i++) { + if (t.value.toLowerCase() === this.supportedMetricNamespaces[i].toLowerCase()) { + return true; + } + } + + return false; + }); + }) + .then(result => { + let shouldHardcodeBlobStorage = false; + for (let i = 0; i < result.length; i++) { + if (result[i].value === 'Microsoft.Storage/storageAccounts') { + shouldHardcodeBlobStorage = true; + break; + } + } + + if (shouldHardcodeBlobStorage) { + result.push({ + text: 'Microsoft.Storage/storageAccounts/blobServices', + value: 'Microsoft.Storage/storageAccounts/blobServices', + }); + result.push({ + text: 'Microsoft.Storage/storageAccounts/fileServices', + value: 'Microsoft.Storage/storageAccounts/fileServices', + }); + result.push({ + text: 'Microsoft.Storage/storageAccounts/tableServices', + value: 'Microsoft.Storage/storageAccounts/tableServices', + }); + result.push({ + text: 'Microsoft.Storage/storageAccounts/queueServices', + value: 'Microsoft.Storage/storageAccounts/queueServices', + }); + } + + return result; + }); + } + + getResourceNames(resourceGroup: string, metricDefinition: string) { + const url = `${this.baseUrl}/${resourceGroup}/resources?api-version=${this.apiVersion}`; + + return this.doRequest(url).then(result => { + if (!_.startsWith(metricDefinition, 'Microsoft.Storage/storageAccounts/')) { + return ResponseParser.parseResourceNames(result, metricDefinition); + } + + const list = ResponseParser.parseResourceNames(result, 'Microsoft.Storage/storageAccounts'); + for (let i = 0; i < list.length; i++) { + list[i].text += '/default'; + list[i].value += '/default'; + } + + return list; + }); + } + + getMetricNames(resourceGroup: string, metricDefinition: string, resourceName: string) { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + this.baseUrl, + resourceGroup, + metricDefinition, + resourceName, + this.apiVersion + ); + + return this.doRequest(url).then(result => { + return ResponseParser.parseResponseValues(result, 'name.localizedValue', 'name.value'); + }); + } + + getMetricMetadata(resourceGroup: string, metricDefinition: string, resourceName: string, metricName: string) { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + this.baseUrl, + resourceGroup, + metricDefinition, + resourceName, + this.apiVersion + ); + + return this.doRequest(url).then(result => { + return ResponseParser.parseMetadata(result, metricName); + }); + } + + testDatasource() { + if (!this.isValidConfigField(this.instanceSettings.jsonData.tenantId)) { + return { + status: 'error', + message: 'The Tenant Id field is required.', + }; + } + + if (!this.isValidConfigField(this.instanceSettings.jsonData.clientId)) { + return { + status: 'error', + message: 'The Client Id field is required.', + }; + } + + const url = `${this.baseUrl}?api-version=${this.apiVersion}`; + return this.doRequest(url) + .then(response => { + if (response.status === 200) { + return { + status: 'success', + message: 'Successfully queried the Azure Monitor service.', + title: 'Success', + }; + } + + return { + status: 'error', + message: 'Returned http status code ' + response.status, + }; + }) + .catch(error => { + let message = 'Azure Monitor: '; + message += error.statusText ? error.statusText + ': ' : ''; + + if (error.data && error.data.error && error.data.error.code) { + message += error.data.error.code + '. ' + error.data.error.message; + } else if (error.data && error.data.error) { + message += error.data.error; + } else if (error.data) { + message += error.data; + } else { + message += 'Cannot connect to Azure Monitor REST API.'; + } + return { + status: 'error', + message: message, + }; + }); + } + + isValidConfigField(field: string) { + return field && field.length > 0; + } + + doRequest(url, maxRetries = 1) { + return this.backendSrv + .datasourceRequest({ + url: this.url + url, + method: 'GET', + }) + .catch(error => { + if (maxRetries > 0) { + return this.doRequest(url, maxRetries - 1); + } + + throw error; + }); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.test.ts new file mode 100644 index 00000000000..feaefbc5331 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.test.ts @@ -0,0 +1,127 @@ +jest.mock('app/core/utils/kbn', () => { + return { + interval_to_ms: interval => { + if (interval.substring(interval.length - 1) === 's') { + return interval.substring(0, interval.length - 1) * 1000; + } + + if (interval.substring(interval.length - 1) === 'm') { + return interval.substring(0, interval.length - 1) * 1000 * 60; + } + + if (interval.substring(interval.length - 1) === 'd') { + return interval.substring(0, interval.length - 1) * 1000 * 60 * 24; + } + + return undefined; + }, + }; +}); + +import AzureMonitorFilterBuilder from './azure_monitor_filter_builder'; +import moment from 'moment'; + +describe('AzureMonitorFilterBuilder', () => { + let builder: AzureMonitorFilterBuilder; + + const timefilter = 'timespan=2017-08-22T06:00:00Z/2017-08-22T07:00:00Z'; + const metricFilter = 'metricnames=Percentage CPU'; + + beforeEach(() => { + builder = new AzureMonitorFilterBuilder( + 'Percentage CPU', + moment.utc('2017-08-22 06:00'), + moment.utc('2017-08-22 07:00'), + 'PT1H', + '3m' + ); + }); + + describe('with a metric name and auto time grain of 3 minutes', () => { + beforeEach(() => { + builder.timeGrain = 'auto'; + }); + + it('should always add datetime filtering and a time grain rounded to the closest allowed value to the filter', () => { + const filter = timefilter + '&interval=PT5M&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and auto time grain of 30 seconds', () => { + beforeEach(() => { + builder.timeGrain = 'auto'; + builder.grafanaInterval = '30s'; + }); + + it('should always add datetime filtering and a time grain in ISO_8601 format to the filter', () => { + const filter = timefilter + '&interval=PT1M&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and auto time grain of 10 minutes', () => { + beforeEach(() => { + builder.timeGrain = 'auto'; + builder.grafanaInterval = '10m'; + }); + + it('should always add datetime filtering and a time grain rounded to the closest allowed value to the filter', () => { + const filter = timefilter + '&interval=PT15M&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and auto time grain of 2 day', () => { + beforeEach(() => { + builder.timeGrain = 'auto'; + builder.grafanaInterval = '2d'; + }); + + it('should always add datetime filtering and a time grain rounded to the closest allowed value to the filter', () => { + const filter = timefilter + '&interval=P1D&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and 1 hour time grain', () => { + it('should always add datetime filtering and a time grain in ISO_8601 format to the filter', () => { + const filter = timefilter + '&interval=PT1H&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and 1 minute time grain', () => { + beforeEach(() => { + builder.timeGrain = 'PT1M'; + }); + + it('should always add datetime filtering and a time grain in ISO_8601 format to the filter', () => { + const filter = timefilter + '&interval=PT1M&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and 1 day time grain and an aggregation', () => { + beforeEach(() => { + builder.timeGrain = 'P1D'; + builder.setAggregation('Maximum'); + }); + + it('should add time grain to the filter in ISO_8601 format', () => { + const filter = timefilter + '&interval=P1D&aggregation=Maximum&' + metricFilter; + expect(builder.generateFilter()).toEqual(filter); + }); + }); + + describe('with a metric name and 1 day time grain and an aggregation and a dimension', () => { + beforeEach(() => { + builder.setDimensionFilter('aDimension', 'aFilterValue'); + }); + + it('should add dimension to the filter', () => { + const filter = timefilter + '&interval=PT1H&' + metricFilter + `&$filter=aDimension eq 'aFilterValue'`; + expect(builder.generateFilter()).toEqual(filter); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.ts new file mode 100644 index 00000000000..1b04f868877 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/azure_monitor_filter_builder.ts @@ -0,0 +1,72 @@ +import TimegrainConverter from '../time_grain_converter'; + +export default class AzureMonitorFilterBuilder { + aggregation: string; + timeGrainInterval = ''; + dimension: string; + dimensionFilter: string; + allowedTimeGrains = ['1m', '5m', '15m', '30m', '1h', '6h', '12h', '1d']; + + constructor( + private metricName: string, + private from, + private to, + public timeGrain: string, + public grafanaInterval: string + ) {} + + setAllowedTimeGrains(timeGrains) { + this.allowedTimeGrains = []; + timeGrains.forEach(tg => { + if (tg.value === 'auto') { + this.allowedTimeGrains.push(tg.value); + } else { + this.allowedTimeGrains.push(TimegrainConverter.createKbnUnitFromISO8601Duration(tg.value)); + } + }); + } + + setAggregation(agg) { + this.aggregation = agg; + } + + setDimensionFilter(dimension, dimensionFilter) { + this.dimension = dimension; + this.dimensionFilter = dimensionFilter; + } + + generateFilter() { + let filter = this.createDatetimeAndTimeGrainConditions(); + + if (this.aggregation) { + filter += `&aggregation=${this.aggregation}`; + } + + if (this.metricName && this.metricName.trim().length > 0) { + filter += `&metricnames=${this.metricName}`; + } + + if (this.dimension && this.dimensionFilter && this.dimensionFilter.trim().length > 0) { + filter += `&$filter=${this.dimension} eq '${this.dimensionFilter}'`; + } + + return filter; + } + + createDatetimeAndTimeGrainConditions() { + const dateTimeCondition = `timespan=${this.from.utc().format()}/${this.to.utc().format()}`; + + if (this.timeGrain === 'auto') { + this.timeGrain = this.calculateAutoTimeGrain(); + } + const timeGrainCondition = `&interval=${this.timeGrain}`; + + return dateTimeCondition + timeGrainCondition; + } + + calculateAutoTimeGrain() { + const roundedInterval = TimegrainConverter.findClosestTimeGrain(this.grafanaInterval, this.allowedTimeGrains); + + return TimegrainConverter.createISO8601DurationFromInterval(roundedInterval); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/response_parser.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/response_parser.ts new file mode 100644 index 00000000000..ef882efbf99 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/response_parser.ts @@ -0,0 +1,184 @@ +import moment from 'moment'; +import _ from 'lodash'; +import TimeGrainConverter from '../time_grain_converter'; + +export default class ResponseParser { + constructor(private results) {} + + parseQueryResult() { + const data: any[] = []; + for (let i = 0; i < this.results.length; i++) { + for (let j = 0; j < this.results[i].result.data.value.length; j++) { + for (let k = 0; k < this.results[i].result.data.value[j].timeseries.length; k++) { + const alias = this.results[i].query.alias; + data.push({ + target: ResponseParser.createTarget( + this.results[i].result.data.value[j], + this.results[i].result.data.value[j].timeseries[k].metadatavalues, + alias + ), + datapoints: ResponseParser.convertDataToPoints(this.results[i].result.data.value[j].timeseries[k].data), + }); + } + } + } + return data; + } + + static createTarget(data, metadatavalues, alias: string) { + const resourceGroup = ResponseParser.parseResourceGroupFromId(data.id); + const resourceName = ResponseParser.parseResourceNameFromId(data.id); + const namespace = ResponseParser.parseNamespaceFromId(data.id, resourceName); + if (alias) { + const regex = /\{\{([\s\S]+?)\}\}/g; + return alias.replace(regex, (match, g1, g2) => { + const group = g1 || g2; + + if (group === 'resourcegroup') { + return resourceGroup; + } else if (group === 'namespace') { + return namespace; + } else if (group === 'resourcename') { + return resourceName; + } else if (group === 'metric') { + return data.name.value; + } else if (group === 'dimensionname') { + return metadatavalues && metadatavalues.length > 0 ? metadatavalues[0].name.value : ''; + } else if (group === 'dimensionvalue') { + return metadatavalues && metadatavalues.length > 0 ? metadatavalues[0].value : ''; + } + + return match; + }); + } + + if (metadatavalues && metadatavalues.length > 0) { + return `${resourceName}{${metadatavalues[0].name.value}=${metadatavalues[0].value}}.${data.name.value}`; + } + + return `${resourceName}.${data.name.value}`; + } + + static parseResourceGroupFromId(id: string) { + const startIndex = id.indexOf('/resourceGroups/') + 16; + const endIndex = id.indexOf('/providers'); + + return id.substring(startIndex, endIndex); + } + + static parseNamespaceFromId(id: string, resourceName: string) { + const startIndex = id.indexOf('/providers/') + 11; + const endIndex = id.indexOf('/' + resourceName); + + return id.substring(startIndex, endIndex); + } + + static parseResourceNameFromId(id: string) { + const endIndex = id.lastIndexOf('/providers'); + const startIndex = id.slice(0, endIndex).lastIndexOf('/') + 1; + + return id.substring(startIndex, endIndex); + } + + static convertDataToPoints(timeSeriesData) { + const dataPoints: any[] = []; + + for (let k = 0; k < timeSeriesData.length; k++) { + const epoch = ResponseParser.dateTimeToEpoch(timeSeriesData[k].timeStamp); + const aggKey = ResponseParser.getKeyForAggregationField(timeSeriesData[k]); + + if (aggKey) { + dataPoints.push([timeSeriesData[k][aggKey], epoch]); + } + } + + return dataPoints; + } + + static dateTimeToEpoch(dateTime) { + return moment(dateTime).valueOf(); + } + + static getKeyForAggregationField(dataObj): string { + const keys = _.keys(dataObj); + if (keys.length < 2) { + return ''; + } + + return _.intersection(keys, ['total', 'average', 'maximum', 'minimum', 'count'])[0]; + } + + static parseResponseValues(result: any, textFieldName: string, valueFieldName: string) { + const list: any[] = []; + for (let i = 0; i < result.data.value.length; i++) { + if (!_.find(list, ['value', _.get(result.data.value[i], valueFieldName)])) { + list.push({ + text: _.get(result.data.value[i], textFieldName), + value: _.get(result.data.value[i], valueFieldName), + }); + } + } + return list; + } + + static parseResourceNames(result: any, metricDefinition: string) { + const list: any[] = []; + for (let i = 0; i < result.data.value.length; i++) { + if (result.data.value[i].type === metricDefinition) { + list.push({ + text: result.data.value[i].name, + value: result.data.value[i].name, + }); + } + } + + return list; + } + + static parseMetadata(result: any, metricName: string) { + const metricData = _.find(result.data.value, o => { + return _.get(o, 'name.value') === metricName; + }); + + const defaultAggTypes = ['None', 'Average', 'Minimum', 'Maximum', 'Total', 'Count']; + + return { + primaryAggType: metricData.primaryAggregationType, + supportedAggTypes: metricData.supportedAggregationTypes || defaultAggTypes, + supportedTimeGrains: ResponseParser.parseTimeGrains(metricData.metricAvailabilities || []), + dimensions: ResponseParser.parseDimensions(metricData), + }; + } + + static parseTimeGrains(metricAvailabilities) { + const timeGrains: any[] = []; + metricAvailabilities.forEach(avail => { + if (avail.timeGrain) { + timeGrains.push({ + text: TimeGrainConverter.createTimeGrainFromISO8601Duration(avail.timeGrain), + value: avail.timeGrain, + }); + } + }); + return timeGrains; + } + + static parseDimensions(metricData: any) { + const dimensions: any[] = []; + if (!metricData.dimensions || metricData.dimensions.length === 0) { + return dimensions; + } + + if (!metricData.isDimensionRequired) { + dimensions.push({ text: 'None', value: 'None' }); + } + + for (let i = 0; i < metricData.dimensions.length; i++) { + dimensions.push({ + text: metricData.dimensions[i].localizedValue, + value: metricData.dimensions[i].value, + }); + } + return dimensions; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/supported_namespaces.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/supported_namespaces.ts new file mode 100644 index 00000000000..91a51a37f4a --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/supported_namespaces.ts @@ -0,0 +1,241 @@ +export default class SupportedNamespaces { + supportedMetricNamespaces = { + azuremonitor: [ + 'Microsoft.AnalysisServices/servers', + 'Microsoft.ApiManagement/service', + 'Microsoft.Automation/automationAccounts', + 'Microsoft.Batch/batchAccounts', + 'Microsoft.Cache/redis', + 'Microsoft.ClassicCompute/virtualMachines', + 'Microsoft.ClassicCompute/domainNames/slots/roles', + 'Microsoft.CognitiveServices/accounts', + 'Microsoft.Compute/virtualMachines', + 'Microsoft.Compute/virtualMachineScaleSets', + 'Microsoft.ContainerInstance/containerGroups', + 'Microsoft.ContainerRegistry/registries', + 'Microsoft.ContainerService/managedClusters', + 'Microsoft.CustomerInsights/hubs', + 'Microsoft.DataBoxEdge/dataBoxEdgeDevices', + 'Microsoft.DataFactory/datafactories', + 'Microsoft.DataFactory/factories', + 'Microsoft.DataLakeAnalytics/accounts', + 'Microsoft.DataLakeStore/accounts', + 'Microsoft.DBforMariaDB/servers', + 'Microsoft.DBforMySQL/servers', + 'Microsoft.DBforPostgreSQL/servers', + 'Microsoft.Devices/IotHubs', + 'Microsoft.Devices/provisioningServices', + 'Microsoft.DocumentDB/databaseAccounts', + 'Microsoft.EventGrid/topics', + 'Microsoft.EventGrid/eventSubscriptions', + 'Microsoft.EventGrid/extensionTopics', + 'Microsoft.EventHub/namespaces', + 'Microsoft.EventHub/clusters', + 'Microsoft.HDInsight/clusters', + 'Microsoft.Insights/AutoscaleSettings', + 'Microsoft.Insights/components', + 'Microsoft.KeyVault/vaults', + 'Microsoft.Kusto/clusters', + 'Microsoft.LocationBasedServices/accounts', + 'Microsoft.Logic/workflows', + 'Microsoft.Logic/integrationServiceEnvironments', + 'Microsoft.NetApp/netAppAccounts/capacityPools', + 'Microsoft.NetApp/netAppAccounts/capacityPools/Volumes', + 'Microsoft.Network/networkInterfaces', + 'Microsoft.Network/loadBalancers', + 'Microsoft.Network/dnsZones', + 'Microsoft.Network/publicIPAddresses', + 'Microsoft.Network/azureFirewalls', + 'Microsoft.Network/applicationGateways', + 'Microsoft.Network/virtualNetworkGateways', + 'Microsoft.Network/expressRouteCircuits', + 'Microsoft.Network/expressRouteCircuits/Peerings', + 'Microsoft.Network/connections', + 'Microsoft.Network/trafficManagerProfiles', + 'Microsoft.Network/networkWatchers/connectionMonitors', + 'Microsoft.Network/frontdoors', + 'Microsoft.NotificationHubs/namespaces/notificationHubs', + 'Microsoft.PowerBIDedicated/capacities', + 'Microsoft.Relay/namespaces', + 'Microsoft.Search/searchServices', + 'Microsoft.ServiceBus/namespaces', + 'Microsoft.Sql/servers/databases', + 'Microsoft.Sql/servers/elasticPools', + 'Microsoft.Sql/managedInstances', + 'Microsoft.Storage/storageAccounts', + 'Microsoft.Storage/storageAccounts/blobServices', + 'Microsoft.Storage/storageAccounts/fileServices', + 'Microsoft.Storage/storageAccounts/queueServices', + 'Microsoft.Storage/storageAccounts/tableServices', + 'Microsoft.StorageSync/storageSyncServices', + 'Microsoft.StorageSync/storageSyncServices/syncGroups', + 'Microsoft.StorageSync/storageSyncServices/syncGroups/serverEndpoints', + 'Microsoft.StorageSync/storageSyncServices/registeredServers', + 'Microsoft.StreamAnalytics/streamingJobs', + 'Microsoft.Web/serverfarms', + 'Microsoft.Web/sites', + 'Microsoft.Web/sites/slots', + 'Microsoft.Web/hostingEnvironments/multiRolePools', + 'Microsoft.Web/hostingEnvironments/workerPools', + ], + govazuremonitor: [ + 'Microsoft.AnalysisServices/servers', + 'Microsoft.ApiManagement/service', + 'Microsoft.Batch/batchAccounts', + 'Microsoft.Cache/redis', + 'Microsoft.ClassicCompute/virtualMachines', + 'Microsoft.ClassicCompute/domainNames/slots/roles', + 'Microsoft.CognitiveServices/accounts', + 'Microsoft.Compute/virtualMachines', + 'Microsoft.Compute/virtualMachineScaleSets', + 'Microsoft.ContainerRegistry/registries', + 'Microsoft.DBforMySQL/servers', + 'Microsoft.DBforPostgreSQL/servers', + 'Microsoft.Devices/IotHubs', + 'Microsoft.Devices/provisioningServices', + 'Microsoft.EventGrid/topics', + 'Microsoft.EventGrid/eventSubscriptions', + 'Microsoft.EventGrid/extensionTopics', + 'Microsoft.EventHub/namespaces', + 'Microsoft.EventHub/clusters', + 'Microsoft.Insights/AutoscaleSettings', + 'Microsoft.KeyVault/vaults', + 'Microsoft.Logic/workflows', + 'Microsoft.Network/networkInterfaces', + 'Microsoft.Network/loadBalancers', + 'Microsoft.Network/dnsZones', + 'Microsoft.Network/publicIPAddresses', + 'Microsoft.Network/azureFirewalls', + 'Microsoft.Network/applicationGateways', + 'Microsoft.Network/virtualNetworkGateways', + 'Microsoft.Network/expressRouteCircuits', + 'Microsoft.Network/expressRouteCircuits/Peerings', + 'Microsoft.Network/connections', + 'Microsoft.Network/trafficManagerProfiles', + 'Microsoft.Network/networkWatchers/connectionMonitors', + 'Microsoft.Network/frontdoors', + 'Microsoft.NotificationHubs/namespaces/notificationHubs', + 'Microsoft.OperationalInsights/workspaces', + 'Microsoft.PowerBIDedicated/capacities', + 'Microsoft.Relay/namespaces', + 'Microsoft.ServiceBus/namespaces', + 'Microsoft.Sql/servers/databases', + 'Microsoft.Sql/servers/elasticPools', + 'Microsoft.Sql/managedInstances', + 'Microsoft.Storage/storageAccounts', + 'Microsoft.Storage/storageAccounts/blobServices', + 'Microsoft.Storage/storageAccounts/fileServices', + 'Microsoft.Storage/storageAccounts/queueServices', + 'Microsoft.Storage/storageAccounts/tableServices', + 'Microsoft.Web/serverfarms', + 'Microsoft.Web/sites', + 'Microsoft.Web/sites/slots', + 'Microsoft.Web/hostingEnvironments/multiRolePools', + 'Microsoft.Web/hostingEnvironments/workerPools', + ], + germanyazuremonitor: [ + 'Microsoft.AnalysisServices/servers', + 'Microsoft.Batch/batchAccounts', + 'Microsoft.Cache/redis', + 'Microsoft.ClassicCompute/virtualMachines', + 'Microsoft.ClassicCompute/domainNames/slots/roles', + 'Microsoft.Compute/virtualMachines', + 'Microsoft.Compute/virtualMachineScaleSets', + 'Microsoft.DBforMySQL/servers', + 'Microsoft.DBforPostgreSQL/servers', + 'Microsoft.Devices/IotHubs', + 'Microsoft.Devices/provisioningServices', + 'Microsoft.EventHub/namespaces', + 'Microsoft.EventHub/clusters', + 'Microsoft.Insights/AutoscaleSettings', + 'Microsoft.KeyVault/vaults', + 'Microsoft.Network/networkInterfaces', + 'Microsoft.Network/loadBalancers', + 'Microsoft.Network/dnsZones', + 'Microsoft.Network/publicIPAddresses', + 'Microsoft.Network/azureFirewalls', + 'Microsoft.Network/applicationGateways', + 'Microsoft.Network/virtualNetworkGateways', + 'Microsoft.Network/expressRouteCircuits', + 'Microsoft.Network/expressRouteCircuits/Peerings', + 'Microsoft.Network/connections', + 'Microsoft.Network/trafficManagerProfiles', + 'Microsoft.Network/networkWatchers/connectionMonitors', + 'Microsoft.Network/frontdoors', + 'Microsoft.NotificationHubs/namespaces/notificationHubs', + 'Microsoft.PowerBIDedicated/capacities', + 'Microsoft.Relay/namespaces', + 'Microsoft.ServiceBus/namespaces', + 'Microsoft.Sql/servers/databases', + 'Microsoft.Sql/servers/elasticPools', + 'Microsoft.Sql/managedInstances', + 'Microsoft.Storage/storageAccounts', + 'Microsoft.Storage/storageAccounts/blobServices', + 'Microsoft.Storage/storageAccounts/fileServices', + 'Microsoft.Storage/storageAccounts/queueServices', + 'Microsoft.Storage/storageAccounts/tableServices', + 'Microsoft.StreamAnalytics/streamingJobs', + 'Microsoft.Web/serverfarms', + 'Microsoft.Web/sites', + 'Microsoft.Web/sites/slots', + 'Microsoft.Web/hostingEnvironments/multiRolePools', + 'Microsoft.Web/hostingEnvironments/workerPools', + ], + chinaazuremonitor: [ + 'Microsoft.AnalysisServices/servers', + 'Microsoft.Batch/batchAccounts', + 'Microsoft.Cache/redis', + 'Microsoft.ClassicCompute/virtualMachines', + 'Microsoft.ClassicCompute/domainNames/slots/roles', + 'Microsoft.CognitiveServices/accounts', + 'Microsoft.Compute/virtualMachines', + 'Microsoft.Compute/virtualMachineScaleSets', + 'Microsoft.ContainerRegistry/registries', + 'Microsoft.DBforMySQL/servers', + 'Microsoft.DBforPostgreSQL/servers', + 'Microsoft.Devices/IotHubs', + 'Microsoft.Devices/provisioningServices', + 'Microsoft.EventHub/namespaces', + 'Microsoft.Insights/AutoscaleSettings', + 'Microsoft.KeyVault/vaults', + 'Microsoft.Logic/workflows', + 'Microsoft.Network/networkInterfaces', + 'Microsoft.Network/loadBalancers', + 'Microsoft.Network/dnsZones', + 'Microsoft.Network/publicIPAddresses', + 'Microsoft.Network/azureFirewalls', + 'Microsoft.Network/applicationGateways', + 'Microsoft.Network/virtualNetworkGateways', + 'Microsoft.Network/expressRouteCircuits', + 'Microsoft.Network/expressRouteCircuits/Peerings', + 'Microsoft.Network/connections', + 'Microsoft.Network/trafficManagerProfiles', + 'Microsoft.Network/networkWatchers/connectionMonitors', + 'Microsoft.Network/frontdoors', + 'Microsoft.NotificationHubs/namespaces/notificationHubs', + 'Microsoft.PowerBIDedicated/capacities', + 'Microsoft.Relay/namespaces', + 'Microsoft.ServiceBus/namespaces', + 'Microsoft.Sql/servers/databases', + 'Microsoft.Sql/servers/elasticPools', + 'Microsoft.Sql/managedInstances', + 'Microsoft.Storage/storageAccounts', + 'Microsoft.Storage/storageAccounts/blobServices', + 'Microsoft.Storage/storageAccounts/fileServices', + 'Microsoft.Storage/storageAccounts/queueServices', + 'Microsoft.Storage/storageAccounts/tableServices', + 'Microsoft.StreamAnalytics/streamingJobs', + 'Microsoft.Web/serverfarms', + 'Microsoft.Web/sites', + 'Microsoft.Web/sites/slots', + 'Microsoft.Web/hostingEnvironments/multiRolePools', + 'Microsoft.Web/hostingEnvironments/workerPools', + ], + }; + + constructor(private cloudName: string) {} + + get() { + return this.supportedMetricNamespaces[this.cloudName]; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.test.ts new file mode 100644 index 00000000000..a0f5a654813 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.test.ts @@ -0,0 +1,167 @@ +import UrlBuilder from './url_builder'; + +describe('AzureMonitorUrlBuilder', () => { + describe('when metric definition is Microsoft.Sql/servers/databases', () => { + it('should build the getMetricNames url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Sql/servers/databases', + 'rn1/rn2', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Sql/servers/rn1/databases/rn2/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Sql/servers', () => { + it('should build the getMetricNames url in the shorter format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Sql/servers', + 'rn', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Sql/servers/rn/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/blobServices', () => { + it('should build the getMetricNames url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/blobServices', + 'rn1/default', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/blobServices/default/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/blobServices', () => { + it('should build the query url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorQueryUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/blobServices', + 'rn1/default', + '2017-05-01-preview', + 'metricnames=aMetric' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/blobServices/default/' + + 'providers/microsoft.insights/metrics?api-version=2017-05-01-preview&metricnames=aMetric' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/fileServices', () => { + it('should build the getMetricNames url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/fileServices', + 'rn1/default', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/fileServices/default/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/fileServices', () => { + it('should build the query url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorQueryUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/fileServices', + 'rn1/default', + '2017-05-01-preview', + 'metricnames=aMetric' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/fileServices/default/' + + 'providers/microsoft.insights/metrics?api-version=2017-05-01-preview&metricnames=aMetric' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/tableServices', () => { + it('should build the getMetricNames url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/tableServices', + 'rn1/default', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/tableServices/default/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/tableServices', () => { + it('should build the query url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorQueryUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/tableServices', + 'rn1/default', + '2017-05-01-preview', + 'metricnames=aMetric' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/tableServices/default/' + + 'providers/microsoft.insights/metrics?api-version=2017-05-01-preview&metricnames=aMetric' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/queueServices', () => { + it('should build the getMetricNames url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorGetMetricNamesUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/queueServices', + 'rn1/default', + '2017-05-01-preview' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/queueServices/default/' + + 'providers/microsoft.insights/metricdefinitions?api-version=2017-05-01-preview' + ); + }); + }); + + describe('when metric definition is Microsoft.Storage/storageAccounts/queueServices', () => { + it('should build the query url in the longer format', () => { + const url = UrlBuilder.buildAzureMonitorQueryUrl( + '', + 'rg', + 'Microsoft.Storage/storageAccounts/queueServices', + 'rn1/default', + '2017-05-01-preview', + 'metricnames=aMetric' + ); + expect(url).toBe( + '/rg/providers/Microsoft.Storage/storageAccounts/rn1/queueServices/default/' + + 'providers/microsoft.insights/metrics?api-version=2017-05-01-preview&metricnames=aMetric' + ); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.ts new file mode 100644 index 00000000000..47937076428 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/azure_monitor/url_builder.ts @@ -0,0 +1,48 @@ +export default class UrlBuilder { + static buildAzureMonitorQueryUrl( + baseUrl: string, + resourceGroup: string, + metricDefinition: string, + resourceName: string, + apiVersion: string, + filter: string + ) { + if ((metricDefinition.match(/\//g) || []).length > 1) { + const rn = resourceName.split('/'); + const service = metricDefinition.substring(metricDefinition.lastIndexOf('/') + 1); + const md = metricDefinition.substring(0, metricDefinition.lastIndexOf('/')); + return ( + `${baseUrl}/${resourceGroup}/providers/${md}/${rn[0]}/${service}/${rn[1]}` + + `/providers/microsoft.insights/metrics?api-version=${apiVersion}&${filter}` + ); + } + + return ( + `${baseUrl}/${resourceGroup}/providers/${metricDefinition}/${resourceName}` + + `/providers/microsoft.insights/metrics?api-version=${apiVersion}&${filter}` + ); + } + + static buildAzureMonitorGetMetricNamesUrl( + baseUrl: string, + resourceGroup: string, + metricDefinition: string, + resourceName: string, + apiVersion: string + ) { + if ((metricDefinition.match(/\//g) || []).length > 1) { + const rn = resourceName.split('/'); + const service = metricDefinition.substring(metricDefinition.lastIndexOf('/') + 1); + const md = metricDefinition.substring(0, metricDefinition.lastIndexOf('/')); + return ( + `${baseUrl}/${resourceGroup}/providers/${md}/${rn[0]}/${service}/${rn[1]}` + + `/providers/microsoft.insights/metricdefinitions?api-version=${apiVersion}` + ); + } + + return ( + `${baseUrl}/${resourceGroup}/providers/${metricDefinition}/${resourceName}` + + `/providers/microsoft.insights/metricdefinitions?api-version=${apiVersion}` + ); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/config_ctrl.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/config_ctrl.ts new file mode 100644 index 00000000000..98fe5a87a56 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/config_ctrl.ts @@ -0,0 +1,46 @@ +import AzureLogAnalyticsDatasource from './azure_log_analytics/azure_log_analytics_datasource'; +import config from 'app/core/config'; +import { isVersionGtOrEq } from './version'; + +export class AzureMonitorConfigCtrl { + static templateUrl = 'public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html'; + current: any; + azureLogAnalyticsDatasource: any; + workspaces: any[]; + hasRequiredGrafanaVersion: boolean; + + /** @ngInject */ + constructor($scope, backendSrv, $q) { + this.hasRequiredGrafanaVersion = this.hasMinVersion(); + this.current.jsonData.cloudName = this.current.jsonData.cloudName || 'azuremonitor'; + this.current.jsonData.azureLogAnalyticsSameAs = this.current.jsonData.azureLogAnalyticsSameAs || false; + + if (this.current.id) { + this.current.url = '/api/datasources/proxy/' + this.current.id; + this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource(this.current, backendSrv, null, $q); + this.getWorkspaces(); + } + } + + hasMinVersion(): boolean { + return isVersionGtOrEq(config.buildInfo.version, '5.2'); + } + + showMinVersionWarning() { + return !this.hasRequiredGrafanaVersion && this.current.secureJsonFields.logAnalyticsClientSecret; + } + + getWorkspaces() { + if (!this.azureLogAnalyticsDatasource.isConfigured()) { + return; + } + + return this.azureLogAnalyticsDatasource.getWorkspaces().then(workspaces => { + this.workspaces = workspaces; + if (this.workspaces.length > 0) { + this.current.jsonData.logAnalyticsDefaultWorkspace = + this.current.jsonData.logAnalyticsDefaultWorkspace || this.workspaces[0].value; + } + }); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/css/query_editor.css b/public/app/plugins/datasource/grafana-azure-monitor-datasource/css/query_editor.css new file mode 100644 index 00000000000..305c9eadb09 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/css/query_editor.css @@ -0,0 +1,31 @@ +.min-width-10 { + min-width: 10rem; +} + +.min-width-12 { + min-width: 12rem; +} + +.min-width-20 { + min-width: 20rem; +} + +.gf-form-select-wrapper select.gf-form-input { + height: 2.64rem; +} + +.gf-form-select-wrapper--caret-indent.gf-form-select-wrapper::after { + right: 0.775rem +} + +.service-dropdown { + width: 12rem; +} + +.aggregation-dropdown-wrapper { + max-width: 29.1rem; +} + +.timegrainunit-dropdown-wrapper { + width: 8rem; +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/datasource.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/datasource.ts new file mode 100644 index 00000000000..c4155cf1cd7 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/datasource.ts @@ -0,0 +1,185 @@ +import _ from 'lodash'; +import AzureMonitorDatasource from './azure_monitor/azure_monitor_datasource'; +import AppInsightsDatasource from './app_insights/app_insights_datasource'; +import AzureLogAnalyticsDatasource from './azure_log_analytics/azure_log_analytics_datasource'; + +export default class Datasource { + id: number; + name: string; + azureMonitorDatasource: AzureMonitorDatasource; + appInsightsDatasource: AppInsightsDatasource; + azureLogAnalyticsDatasource: AzureLogAnalyticsDatasource; + + /** @ngInject */ + constructor(instanceSettings, private backendSrv, private templateSrv, private $q) { + this.name = instanceSettings.name; + this.id = instanceSettings.id; + this.azureMonitorDatasource = new AzureMonitorDatasource( + instanceSettings, + this.backendSrv, + this.templateSrv, + this.$q + ); + this.appInsightsDatasource = new AppInsightsDatasource( + instanceSettings, + this.backendSrv, + this.templateSrv, + this.$q + ); + + this.azureLogAnalyticsDatasource = new AzureLogAnalyticsDatasource( + instanceSettings, + this.backendSrv, + this.templateSrv, + this.$q + ); + } + + query(options) { + const promises: any[] = []; + const azureMonitorOptions = _.cloneDeep(options); + const appInsightsTargets = _.cloneDeep(options); + const azureLogAnalyticsTargets = _.cloneDeep(options); + + azureMonitorOptions.targets = _.filter(azureMonitorOptions.targets, ['queryType', 'Azure Monitor']); + appInsightsTargets.targets = _.filter(appInsightsTargets.targets, ['queryType', 'Application Insights']); + azureLogAnalyticsTargets.targets = _.filter(azureLogAnalyticsTargets.targets, ['queryType', 'Azure Log Analytics']); + + if (azureMonitorOptions.targets.length > 0) { + const amPromise = this.azureMonitorDatasource.query(azureMonitorOptions); + if (amPromise) { + promises.push(amPromise); + } + } + + if (appInsightsTargets.targets.length > 0) { + const aiPromise = this.appInsightsDatasource.query(appInsightsTargets); + if (aiPromise) { + promises.push(aiPromise); + } + } + + if (azureLogAnalyticsTargets.targets.length > 0) { + const alaPromise = this.azureLogAnalyticsDatasource.query(azureLogAnalyticsTargets); + if (alaPromise) { + promises.push(alaPromise); + } + } + + if (promises.length === 0) { + return this.$q.when({ data: [] }); + } + + return Promise.all(promises).then(results => { + return { data: _.flatten(results) }; + }); + } + + annotationQuery(options) { + return this.azureLogAnalyticsDatasource.annotationQuery(options); + } + + metricFindQuery(query: string) { + if (!query) { + return Promise.resolve([]); + } + + const aiResult = this.appInsightsDatasource.metricFindQuery(query); + if (aiResult) { + return aiResult; + } + + const amResult = this.azureMonitorDatasource.metricFindQuery(query); + if (amResult) { + return amResult; + } + + const alaResult = this.azureLogAnalyticsDatasource.metricFindQuery(query); + if (alaResult) { + return alaResult; + } + + return Promise.resolve([]); + } + + testDatasource() { + const promises: any[] = []; + + if (this.azureMonitorDatasource.isConfigured()) { + promises.push(this.azureMonitorDatasource.testDatasource()); + } + + if (this.appInsightsDatasource.isConfigured()) { + promises.push(this.appInsightsDatasource.testDatasource()); + } + + if (this.azureLogAnalyticsDatasource.isConfigured()) { + promises.push(this.azureLogAnalyticsDatasource.testDatasource()); + } + + if (promises.length === 0) { + return { + status: 'error', + message: `Nothing configured. At least one of the API's must be configured.`, + title: 'Error', + }; + } + + return this.$q.all(promises).then(results => { + let status = 'success'; + let message = ''; + + for (let i = 0; i < results.length; i++) { + if (results[i].status !== 'success') { + status = results[i].status; + } + message += `${i + 1}. ${results[i].message} `; + } + + return { + status: status, + message: message, + title: _.upperFirst(status), + }; + }); + } + + /* Azure Monitor REST API methods */ + getResourceGroups() { + return this.azureMonitorDatasource.getResourceGroups(); + } + + getMetricDefinitions(resourceGroup: string) { + return this.azureMonitorDatasource.getMetricDefinitions(resourceGroup); + } + + getResourceNames(resourceGroup: string, metricDefinition: string) { + return this.azureMonitorDatasource.getResourceNames(resourceGroup, metricDefinition); + } + + getMetricNames(resourceGroup: string, metricDefinition: string, resourceName: string) { + return this.azureMonitorDatasource.getMetricNames(resourceGroup, metricDefinition, resourceName); + } + + getMetricMetadata(resourceGroup: string, metricDefinition: string, resourceName: string, metricName: string) { + return this.azureMonitorDatasource.getMetricMetadata(resourceGroup, metricDefinition, resourceName, metricName); + } + + /* Application Insights API method */ + getAppInsightsMetricNames() { + return this.appInsightsDatasource.getMetricNames(); + } + + getAppInsightsMetricMetadata(metricName) { + return this.appInsightsDatasource.getMetricMetadata(metricName); + } + + getAppInsightsColumns(refId) { + return this.appInsightsDatasource.logAnalyticsColumns[refId]; + } + + /*Azure Log Analytics */ + getAzureLogAnalyticsWorkspaces() { + return this.azureLogAnalyticsDatasource.getWorkspaces(); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png new file mode 100644 index 00000000000..f588a6fb6f1 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_cpu.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png new file mode 100644 index 00000000000..ea2b5a920f5 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/azure_monitor_network.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_1_select_type.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_1_select_type.png new file mode 100644 index 00000000000..f1606245940 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_1_select_type.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_2_azure_monitor_api_details.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_2_azure_monitor_api_details.png new file mode 100644 index 00000000000..947e58e50ab Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_2_azure_monitor_api_details.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_3_app_insights_api_details.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_3_app_insights_api_details.png new file mode 100644 index 00000000000..3bf3f08e32a Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_3_app_insights_api_details.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_4_save_and_test.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_4_save_and_test.png new file mode 100644 index 00000000000..ce892d8d802 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/config_4_save_and_test.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png new file mode 100644 index 00000000000..d23e3e753a7 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/contoso_loans_grafana_dashboard.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_install.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_install.png new file mode 100644 index 00000000000..0a51314ec6a Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_install.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_login.png b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_login.png new file mode 100644 index 00000000000..245314effc9 Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/grafana_cloud_login.png differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg new file mode 100644 index 00000000000..d1a529d4d6e Binary files /dev/null and b/public/app/plugins/datasource/grafana-azure-monitor-datasource/img/logo.jpg differ diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/lib/monaco.min.js b/public/app/plugins/datasource/grafana-azure-monitor-datasource/lib/monaco.min.js new file mode 100644 index 00000000000..48458032b44 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/lib/monaco.min.js @@ -0,0 +1,113 @@ +!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.monaco=t():e.monaco=t()}(self,function(){return function(e){function t(t){for(var n,r,o=t[0],s=t[1],a=0,u=[];a"),i}n.Namespace||(n.Namespace=Object.create(Object.prototype));var a=1,l=2,u=3;Object.defineProperties(n.Namespace,{defineWithParent:{value:s,writable:!0,enumerable:!0,configurable:!0},define:{value:function(e,n){return s(t,e,n)},writable:!0,enumerable:!0,configurable:!0},_lazy:{value:function(e){var t,n,r=a;return{setName:function(e){t=e},get:function(){switch(r){case u:return n;case a:r=l;try{i("WinJS.Namespace._lazy:"+t+",StartTM"),n=e()}finally{i("WinJS.Namespace._lazy:"+t+",StopTM"),r=a}return e=null,r=u,n;case l:throw"Illegal: reentrancy on initialization";default:throw"Illegal"}},set:function(e){switch(r){case l:throw"Illegal: reentrancy on initialization";default:r=u,n=e}},enumerable:!0,configurable:!0}},writable:!0,enumerable:!0,configurable:!0},_moduleDefine:{value:function(e,n,i){var s=[e],a=null;return n&&(a=o(t,n),s.push(a)),r(s,i,n||""),a},writable:!0,enumerable:!0,configurable:!0}})}(),function(){function t(e,t,i){return e=e||function(){},n.markSupportedForProcessing(e),t&&r(e.prototype,t),i&&r(e,i),e}e.Namespace.define("WinJS.Class",{define:t,derive:function(e,i,o,s){if(e){i=i||function(){};var a=e.prototype;return i.prototype=Object.create(a),n.markSupportedForProcessing(i),Object.defineProperty(i.prototype,"constructor",{value:i,writable:!0,configurable:!0,enumerable:!0}),o&&r(i.prototype,o),s&&r(i,s),i}return t(i,o,s)},mix:function(e){var t,n;for(e=e||function(){},t=1,n=arguments.length;t=0,s=g.indexOf("Macintosh")>=0,a=g.indexOf("Linux")>=0,u=!0,navigator.language}!function(e){e[e.Web=0]="Web",e[e.Mac=1]="Mac",e[e.Linux=2]="Linux",e[e.Windows=3]="Windows"}(r||(r={})),r.Web,l&&(s?r.Mac:o?r.Windows:a&&r.Linux);var m=o,h=s,p=a,f=l,y=u,S="object"==typeof self?self:"object"==typeof i?i:{},b=null;function I(t){return null===b&&(b=S.setImmediate?S.setImmediate.bind(S):void 0!==e&&"function"==typeof e.nextTick?e.nextTick.bind(e):S.setTimeout.bind(S)),b(t)}var C=s?2:o?1:3}).call(this,n(5),n(4))},function(e,t){e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var n=function(e,t){var n=e[1]||"",i=e[3];if(!i)return n;if(t&&"function"==typeof btoa){var r=function(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}(i),o=i.sources.map(function(e){return"/*# sourceURL="+i.sourceRoot+e+" */"});return[n].concat(o).concat([r]).join("\n")}return[n].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+n+"}":n}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var i={},r=0;r=0&&l.splice(t,1)}function h(e){var t=document.createElement("style");return e.attrs.type="text/css",p(t,e.attrs),g(e,t),t}function p(e,t){Object.keys(t).forEach(function(n){e.setAttribute(n,t[n])})}function f(e,t){var n,i,r,o;if(t.transform&&e.css){if(!(o=t.transform(e.css)))return function(){};e.css=o}if(t.singleton){var l=a++;n=s||(s=h(t)),i=S.bind(null,n,l,!1),r=S.bind(null,n,l,!0)}else e.sourceMap&&"function"==typeof URL&&"function"==typeof URL.createObjectURL&&"function"==typeof URL.revokeObjectURL&&"function"==typeof Blob&&"function"==typeof btoa?(n=function(e){var t=document.createElement("link");return e.attrs.type="text/css",e.attrs.rel="stylesheet",p(t,e.attrs),g(e,t),t}(t),i=function(e,t,n){var i=n.css,r=n.sourceMap,o=void 0===t.convertToAbsoluteUrls&&r;(t.convertToAbsoluteUrls||o)&&(i=u(i)),r&&(i+="\n/*# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(r))))+" */");var s=new Blob([i],{type:"text/css"}),a=e.href;e.href=URL.createObjectURL(s),a&&URL.revokeObjectURL(a)}.bind(null,n,t),r=function(){m(n),n.href&&URL.revokeObjectURL(n.href)}):(n=h(t),i=function(e,t){var n=t.css,i=t.media;if(i&&e.setAttribute("media",i),e.styleSheet)e.styleSheet.cssText=n;else{for(;e.firstChild;)e.removeChild(e.firstChild);e.appendChild(document.createTextNode(n))}}.bind(null,n),r=function(){m(n)});return i(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap)return;i(e=t)}else r()}}e.exports=function(e,t){if("undefined"!=typeof DEBUG&&DEBUG&&"object"!=typeof document)throw new Error("The style-loader cannot be used in a non-browser environment");(t=t||{}).attrs="object"==typeof t.attrs?t.attrs:{},t.singleton||"boolean"==typeof t.singleton||(t.singleton=r()),t.insertInto||(t.insertInto="head"),t.insertAt||(t.insertAt="bottom");var n=c(e,t);return d(n,t),function(e){for(var r=[],o=0;o1)for(var n=1;n0&&t.length-a-1>0&&!isNaN(parseInt(t.substr(a+1)))&&(a=t.substring(0,a-1).lastIndexOf("$")),a>0&&a!==t.length-1&&(o=t.substring(0,a)+"add"+t.substr(a+1),s=t.substring(0,a)+"remove"+t.substr(a+1)),e[o]=function(e,t,n){return i?function(n){t[e]=Bridge.fn.combine(t[e],n)}:function(t){this[e]=Bridge.fn.combine(this[e],t)}}(t,e),e[s]=function(e,t,n){return i?function(n){t[e]=Bridge.fn.remove(t[e],n)}:function(t){this[e]=Bridge.fn.remove(this[e],t)}}(t,e)},createInstance:function(e,t){return e===Bridge.global.System.Decimal?Bridge.global.System.Decimal.Zero:e===Bridge.global.System.Int64?Bridge.global.System.Int64.Zero:e===Bridge.global.System.UInt64?Bridge.global.System.UInt64.Zero:e===Bridge.global.System.Double||e===Bridge.global.System.Single||e===Bridge.global.System.Byte||e===Bridge.global.System.SByte||e===Bridge.global.System.Int16||e===Bridge.global.System.UInt16||e===Bridge.global.System.Int32||e===Bridge.global.System.UInt32||e===Bridge.Int?0:"function"==typeof e.createInstance?e.createInstance():"function"==typeof e.getDefaultValue?e.getDefaultValue():e!==Boolean&&e!==Bridge.global.System.Boolean&&(e===Bridge.global.System.DateTime?Bridge.global.System.DateTime.getDefaultValue():e===Date?new Date:e===Number?0:e===String||e===Bridge.global.System.String?"":e&&e.$literal?e.ctor():t&&t.length>0?Bridge.Reflection.applyConstructor(e,t):new e)},clone:function(e){return null==e?e:Bridge.isArray(e)?Bridge.global.System.Array.clone(e):Bridge.isString(e)?e:Bridge.isFunction(Bridge.getProperty(e,t="System$ICloneable$clone"))?e[t]():Bridge.is(e,Bridge.global.System.ICloneable)?e.clone():Bridge.isFunction(e.$clone)?e.$clone():null;var t},copy:function(e,t,n,i){"string"==typeof n&&(n=n.split(/[,;\s]+/));for(var r,o=0,s=n?n.length:0;o1?"$"+t.$rank:""),t.$$name?t.$$alias=n:Bridge.$$aliasCache[t]=n,n):(n=(e.$$name||Bridge.getTypeName(e)).replace(/[\.\(\)\,\+]/g,"$"),t.$$name?t.$$alias=n:Bridge.$$aliasCache[t]=n,n))},getTypeName:function(e){return Bridge.Reflection.getTypeFullName(e)},hasValue:function(e){return null!=Bridge.unbox(e,!0)},hasValue$1:function(){if(0===arguments.length)return!1;for(var e=0;e=0;if(Bridge.isArray(e,o))return Bridge.global.System.Array.is(e,t)}return!0!==n&&t.$is?t.$is(e):!(!t.$literal||!Bridge.isPlainObject(e))&&(!e.$getType||Bridge.Reflection.isAssignableFrom(t,e.$getType()))}if("string"===r&&(t=Bridge.unroll(t)),"function"===r&&Bridge.getType(e).prototype instanceof t)return!0;if(!0!==n){if("function"==typeof t.$is)return t.$is(e);if("function"==typeof t.isAssignableFrom)return t.isAssignableFrom(Bridge.getType(e))}return Bridge.isArray(e)?Bridge.global.System.Array.is(e,t):"object"===r&&(o===t||e instanceof t)},as:function(e,t,n){return Bridge.is(e,t,!1,n)?null!=e&&e.$boxed&&t!==Object&&t!==Bridge.global.System.Object?e.v:e:null},cast:function(e,t,n){if(null==e)return e;var i=Bridge.is(e,t,!1,n)?e:null;if(null===i)throw new Bridge.global.System.InvalidCastException.$ctor1("Unable to cast type "+(e?Bridge.getTypeName(e):"'null'")+" to type "+Bridge.getTypeName(t));return e.$boxed&&t!==Object&&t!==Bridge.global.System.Object?e.v:i},apply:function(e,t,n){for(var i,r=Bridge.getPropertyNames(t,!0),o=0;o=0;g--)if(d[g].name===r){c=d[g];break}if(null!=c)c.set?e[r]=Bridge.merge(e[r],o):Bridge.merge(e[r],o);else if("function"==typeof e[r])r.match(/^\s*get[A-Z]/)?Bridge.merge(e[r](),o):e[r](o);else if(h="set"+r,"function"==typeof e[m="set"+r.charAt(0).toUpperCase()+r.slice(1)]&&"function"!=typeof o)"function"==typeof e[p="g"+m.slice(1)]?e[m](Bridge.merge(e[p](),o)):e[m](o);else if("function"==typeof e[h]&&"function"!=typeof o)"function"==typeof e[p="g"+h.slice(1)]?e[h](Bridge.merge(e[p](),o)):e[h](o);else if(o&&o.constructor===Object&&e[r])s=e[r],Bridge.merge(s,o);else{if(f=Bridge.isNumber(t),e[r]instanceof Bridge.global.System.Decimal&&f)return new Bridge.global.System.Decimal(t);if(e[r]instanceof Bridge.global.System.Int64&&f)return new Bridge.global.System.Int64(t);if(e[r]instanceof Bridge.global.System.UInt64&&f)return new Bridge.global.System.UInt64(t);e[r]=o}}}return n&&n.call(e,e),e},getEnumerator:function(e,t,n){if("string"==typeof e&&(e=Bridge.global.System.String.toCharArray(e)),2===arguments.length&&Bridge.isFunction(t)&&(n=t,t=null),t&&e&&e[t])return e[t].call(e);if(!n&&e&&e.GetEnumerator)return e.GetEnumerator();var i;if(n&&Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(n)+"$GetEnumerator"))||n&&Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$Generic$IEnumerable$1$GetEnumerator"))||Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$IEnumerable$GetEnumerator")))return e[i]();if(n&&e&&e.GetEnumerator)return e.GetEnumerator();if("[object Array]"===Object.prototype.toString.call(e)||e&&Bridge.isDefined(e.length))return new Bridge.ArrayEnumerator(e,n);throw new Bridge.global.System.InvalidOperationException.$ctor1("Cannot create Enumerator.")},getPropertyNames:function(e,t){var n=[];for(var i in e)(t||"function"!=typeof e[i])&&n.push(i);return n},getProperty:function(e,t){return Bridge.isHtmlAttributeCollection(e)&&!this.isValidHtmlAttributeName(t)?void 0:e[t]},isValidHtmlAttributeName:function(e){return!(!e||!e.length)&&/^[a-zA-Z_][\w\-]*$/.test(e)},isHtmlAttributeCollection:function(e){return void 0!==e&&"[object NamedNodeMap]"===Object.prototype.toString.call(e)},isDefined:function(e,t){return void 0!==e&&(!t||null!==e)},isEmpty:function(e,t){return void 0===e||null===e||!t&&""===e||!(t||!Bridge.isArray(e))&&0===e.length},toArray:function(e){var t,n,i,r=[];if(Bridge.isArray(e))for(t=0,i=e.length;t=0||n.$isArray||Array.isArray(e))},isFunction:function(e){return"function"==typeof e},isDate:function(e){return e instanceof Date},isNull:function(e){return null===e||void 0===e},isBoolean:function(e){return"boolean"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isString:function(e){return"string"==typeof e},unroll:function(e,t){for(var n=e.split("."),i=(t||Bridge.global)[n[0]],r=1;r-1||Bridge.$$rightChain.indexOf(t)>-1)return!1;for(var n in t)if(t.hasOwnProperty(n)!==e.hasOwnProperty(n)||typeof t[n]!=typeof e[n])return!1;for(n in e){if(t.hasOwnProperty(n)!==e.hasOwnProperty(n)||typeof e[n]!=typeof t[n])return!1;if(e[n]!==t[n])if("object"==typeof e[n]){if(Bridge.$$leftChain.push(e),Bridge.$$rightChain.push(t),!Bridge.deepEquals(e[n],t[n]))return!1;Bridge.$$leftChain.pop(),Bridge.$$rightChain.pop()}else if(!Bridge.equals(e[n],t[n]))return!1}return!0}return Bridge.equals(e,t)},numberCompare:function(e,t){return et?1:e==t?0:isNaN(e)?isNaN(t)?0:-1:1},compare:function(e,t,n,i){if(e&&e.$boxed&&(e=Bridge.unbox(e,!0)),t&&t.$boxed&&(t=Bridge.unbox(t,!0)),"number"==typeof e&&"number"==typeof t)return Bridge.numberCompare(e,t);if(!Bridge.isDefined(e,!0)){if(n)return 0;throw new Bridge.global.System.NullReferenceException}if(Bridge.isNumber(e)||Bridge.isString(e)||Bridge.isBoolean(e))return Bridge.isString(e)&&!Bridge.hasValue(t)?1:et?1:0;if(Bridge.isDate(e))return void 0!==e.kind&&void 0!==e.ticks?Bridge.compare(e.ticks,t.ticks):Bridge.compare(e.valueOf(),t.valueOf());var r;if(i&&Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$1$"+Bridge.getTypeAlias(i)+"$compareTo"))||i&&Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$1$compareTo"))||Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$compareTo")))return e[r](t);if(Bridge.isFunction(e.compareTo))return e.compareTo(t);if(i&&Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$1$"+Bridge.getTypeAlias(i)+"$compareTo"))||i&&Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$1$compareTo"))||Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$compareTo")))return-t[r](e);if(Bridge.isFunction(t.compareTo))return-t.compareTo(e);if(n)return 0;throw new Bridge.global.System.Exception("Cannot compare items")},equalsT:function(e,t,n){if(e&&e.$boxed&&e.type.equalsT&&2===e.type.equalsT.length)return e.type.equalsT(e,t);if(t&&t.$boxed&&t.type.equalsT&&2===t.type.equalsT.length)return t.type.equalsT(t,e);if(!Bridge.isDefined(e,!0))throw new Bridge.global.System.NullReferenceException;return Bridge.isNumber(e)||Bridge.isString(e)||Bridge.isBoolean(e)?e===t:Bridge.isDate(e)?void 0!==e.kind&&void 0!==e.ticks?e.ticks.equals(t.ticks):e.valueOf()===t.valueOf():n&&null!=e&&Bridge.isFunction(Bridge.getProperty(e,i="System$IEquatable$1$"+Bridge.getTypeAlias(n)+"$equalsT"))?e[i](t):n&&null!=t&&Bridge.isFunction(Bridge.getProperty(t,i="System$IEquatable$1$"+Bridge.getTypeAlias(n)+"$equalsT"))?t[i](e):Bridge.isFunction(e)&&Bridge.isFunction(t)?Bridge.fn.equals.call(e,t):e.equalsT?e.equalsT(t):t.equalsT(e);var i},format:function(e,t,n){if(e&&e.$boxed){if("enum"===e.type.$kind)return Bridge.global.System.Enum.format(e.type,e.v,t);if(e.type===Bridge.global.System.Char)return Bridge.global.System.Char.format(Bridge.unbox(e,!0),t,n);if(e.type.format)return e.type.format(Bridge.unbox(e,!0),t,n)}return Bridge.isNumber(e)?Bridge.Int.format(e,t,n):Bridge.isDate(e)?Bridge.global.System.DateTime.format(e,t,n):Bridge.isFunction(Bridge.getProperty(e,i="System$IFormattable$format"))?e[i](t,n):e.format(t,n);var i},getType:function(e,t){var n,i;if(e&&e.$boxed)return e.type;if(null==e)throw new Bridge.global.System.NullReferenceException.$ctor1("instance is null");if(t)return n=Bridge.getType(e),Bridge.Reflection.isAssignableFrom(t,n)?n:t;if("number"==typeof e)return!isNaN(e)&&isFinite(e)&&Math.floor(e,0)===e?Bridge.global.System.Int32:Bridge.global.System.Double;if(e.$type)return e.$type;if(e.$getType)return e.$getType();i=null;try{i=e.constructor}catch(e){i=Object}if(i===Object){var r=e.toString(),o=/\[object (.{1,})\]/.exec(r);"Object"!=(o&&o.length>1?o[1]:"Object")&&(i=e)}return Bridge.Reflection.convertType(i)},isLower:function(e){var t=String.fromCharCode(e);return t===t.toLowerCase()&&t!==t.toUpperCase()},isUpper:function(e){var t=String.fromCharCode(e);return t!==t.toLowerCase()&&t===t.toUpperCase()},coalesce:function(e,t){return Bridge.hasValue(e)?e:t},fn:{equals:function(e){return this===e||null!=e&&this.constructor===e.constructor&&this.equals&&this.equals===e.equals&&this.$method&&this.$method===e.$method&&this.$scope&&this.$scope===e.$scope},call:function(e,t){var n=Array.prototype.slice.call(arguments,2);return(e=e||Bridge.global)[t].apply(e,n)},makeFn:function(e,t){switch(t){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:default:return function(){return e.apply(this,arguments)}}},cacheBind:function(e,t,n,i){return Bridge.fn.bind(e,t,n,i,!0)},bind:function(e,t,n,i,r){var o,s;if(t&&t.$method===t&&t.$scope===e)return t;if(e&&r&&e.$$bind)for(o=0;o=0;i--)if(r[i]===o[s]||r[i].$method&&r[i].$method===o[s].$method&&r[i].$scope&&r[i].$scope===o[s].$scope){n=i;break}n>-1&&r.splice(n,1)}return Bridge.fn.$build(r)}},sleep:function(e,t){if(Bridge.hasValue(t)&&(e=t.getTotalMilliseconds()),isNaN(e)||e<-1||e>2147483647)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("timeout","Number must be either non-negative and less than or equal to Int32.MaxValue or -1");-1==e&&(e=2147483647);for(var n=(new Date).getTime();(new Date).getTime()-n2147483647););},getMetadata:function(e){return e.$getMetadata?e.$getMetadata():e.$metadata},loadModule:function(e,t){var n,i,r,o=e.amd,s=e.cjs,a=e.fn,l=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,u=Bridge.global[a||"require"];if(!(o&&o.length>0)){if(s&&s.length>0){for((r=new Bridge.global.System.Threading.Tasks.Task).status=Bridge.global.System.Threading.Tasks.TaskStatus.ranToCompletion,n=[],i=0;i0)for(e=0;e=0;u--)if(p[u].name===t){l=p[u];break}for(i=Array.isArray(n)?n:[n],s=0;s0&&e.alias.length%2==0)return!0;for(var t=0;t0&&s.$$inherits[0].$staticInit&&s.$$inherits[0].$staticInit(),s.$base.ctor?s.$base.ctor.call(this):Bridge.isFunction(s.$base.constructor)&&s.$base.constructor.call(this))},n.ctor=s),n.$literal&&(A&&A.createInstance||(s.createInstance=function(){return{$getType:function(){return s}}}),s.$literal=!0,delete n.$literal),!f&&N&&(E=Bridge.Class.set(E,e,s)),i&&i.fn.$cache.push({type:s,args:i.args}),s.$$name=e,o&&(a=s.$$name.lastIndexOf("."),s.$$name=s.$$name.substr(0,a)+"+"+s.$$name.substr(a+1)),s.$kind=n.$kind,n.$metadata&&(s.$metadata=n.$metadata),i&&f){for(s.$genericTypeDefinition=i.fn,s.$typeArguments=i.args,s.$assembly=i.fn.$assembly||Bridge.$currentAssembly,l=Bridge.Reflection.getTypeFullName(i.fn),v=0;v0)for(i=0;i0)for(i=0;i0)for(r=0;r=0;i--)if(s[i].name===e){n=s[i];break}r=e.split("$").length,(t||null!=n)&&(1===r||2===r&&e.match("$d+$"))&&(o[e]=this[e])}return o},setInheritors:function(e,t){var n,i;for(e.$$inherits=t,n=0;n0)for(o=0;o0)for(Bridge.Reflection.deferredMeta=[],s=0;s1?r[1]:"Object")?"System.Object":o):(t=e.constructor===Function?e.toString():e.constructor.toString(),(s=/function (.{1,})\(/.exec(t))&&s.length>1?s[1]:"System.Object")},_makeQName:function(e,t){return e+(t?", "+t.name:"")},getTypeQName:function(e){return Bridge.Reflection._makeQName(Bridge.Reflection.getTypeFullName(e),e.$assembly)},getTypeName:function(e){var t=Bridge.Reflection.getTypeFullName(e),n=t.indexOf("["),i=t.lastIndexOf("+",n>=0?n:t.length),r=i>-1?i:t.lastIndexOf(".",n>=0?n:t.length),o=r>0?n>=0?t.substring(r+1,n):t.substr(r+1):t;return e.$isArray?o+"[]":o},getTypeNamespace:function(e,t){var n,i=t||Bridge.Reflection.getTypeFullName(e),r=i.indexOf("["),o=i.lastIndexOf(".",r>=0?r:i.length),s=o>0?i.substr(0,o):"";return e.$assembly&&(n=Bridge.Reflection._getAssemblyType(e.$assembly,s))&&(s=Bridge.Reflection.getTypeNamespace(n)),s},getTypeAssembly:function(e){return Bridge.global.System.Array.contains([Date,Number,Boolean,String,Function,Array],e)||e.$isArray?Bridge.SystemAssembly:e.$assembly||Bridge.SystemAssembly},_extractArrayRank:function(e){var t=-1,n=/<(\d+)>$/g.exec(e);return n&&(e=e.substring(0,n.index),t=parseInt(n[1])),(n=/\[(,*)\]$/g.exec(e))&&(e=e.substring(0,n.index),t=n[1].length+1),{rank:t,name:e}},_getAssemblyType:function(e,t){var n,i,r,o,s,a,l=!1;if(new RegExp(/[\+\`]/).test(t)&&(t=t.replace(/\+|\`/g,function(e){return"+"===e?".":"$"})),e||(e=Bridge.SystemAssembly,l=!0),n=(i=Bridge.Reflection._extractArrayRank(t)).rank,t=i.name,e.$types){if(r=e.$types[t]||null)return n>-1?Bridge.global.System.Array.type(r,n):r;if("mscorlib"!==e.name)return null;e=Bridge.global}for(o=t.split("."),s=e,a=0;a-1?Bridge.global.System.Array.type(s,n):s},getAssemblyTypes:function(e){var t,n,i=[];if(e.$types)for(t in e.$types)e.$types.hasOwnProperty(t)&&i.push(e.$types[t]);else(n=function(e,t){for(var r in e)e.hasOwnProperty(r)&&n(e[r],r);"function"==typeof e&&Bridge.isUpper(t.charCodeAt(0))&&i.push(e)})(e,"");return i},createAssemblyInstance:function(e,t){var n=Bridge.Reflection.getType(t,e);return n?Bridge.createInstance(n):null},getInterfaces:function(e){var t;return e.$allInterfaces?e.$allInterfaces:e===Date?[Bridge.global.System.IComparable$1(Date),Bridge.global.System.IEquatable$1(Date),Bridge.global.System.IComparable,Bridge.global.System.IFormattable]:e===Number?[Bridge.global.System.IComparable$1(Bridge.Int),Bridge.global.System.IEquatable$1(Bridge.Int),Bridge.global.System.IComparable,Bridge.global.System.IFormattable]:e===Boolean?[Bridge.global.System.IComparable$1(Boolean),Bridge.global.System.IEquatable$1(Boolean),Bridge.global.System.IComparable]:e===String?[Bridge.global.System.IComparable$1(String),Bridge.global.System.IEquatable$1(String),Bridge.global.System.IComparable,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.Char)]:e===Array||e.$isArray||(t=Bridge.global.System.Array._typedArrays[Bridge.getTypeName(e)])?(t=t||e.$elementType||Bridge.global.System.Object,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.ICollection,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IEnumerable$1(t),Bridge.global.System.Collections.Generic.ICollection$1(t),Bridge.global.System.Collections.Generic.IList$1(t)]):[]},isInstanceOfType:function(e,t){return Bridge.is(e,t)},isAssignableFrom:function(e,t){if(null==e)throw new Bridge.global.System.NullReferenceException;if(null==t)return!1;if(e===t||Bridge.isObject(e))return!0;if(Bridge.isFunction(e.isAssignableFrom))return e.isAssignableFrom(t);if(t===Array)return Bridge.global.System.Array.is([],e);if(Bridge.Reflection.isInterface(e)&&Bridge.global.System.Array.contains(Bridge.Reflection.getInterfaces(t),e))return!0;var n,i=t.$$inherits;if(i)for(n=0;n"})),r=function(){for(;;){var t=n.exec(e);if((!t||"["!=t[0]||"]"!==e[t.index+1]&&","!==e[t.index+1])&&(!t||"]"!=t[0]||"["!==e[t.index-1]&&","!==e[t.index-1])&&(!t||","!=t[0]||"]"!==e[t.index+1]&&","!==e[t.index+1]))return t}};var d,c,g=(n=n||/[[,\]]/g).lastIndex,m=r(),h=[],p=!t;if(m)switch(d=e.substring(g,m.index),m[0]){case"[":if("["!==e[m.index+1])return null;for(;;){if(r(),!(c=Bridge.Reflection._getType(e,null,n)))return null;if(h.push(c),"]"===(m=r())[0])break;if(","!==m[0])return null}if((o=/^\s*<(\d+)>/g.exec(e.substring(m.index+1)))&&(d=d+"<"+parseInt(o[1])+">"),(m=r())&&","===m[0]&&(r(),!(t=Bridge.global.System.Reflection.Assembly.assemblies[(n.lastIndex>0?e.substring(m.index+1,n.lastIndex-1):e.substring(m.index+1)).trim()])))return null;break;case",":if(r(),!(t=Bridge.global.System.Reflection.Assembly.assemblies[(n.lastIndex>0?e.substring(m.index+1,n.lastIndex-1):e.substring(m.index+1)).trim()]))return null}else d=e.substring(g);if(u&&n.lastIndex)return null;if(d=d.trim(),a=(s=Bridge.Reflection._extractArrayRank(d)).rank,d=s.name,c=Bridge.Reflection._getAssemblyType(t,d),i)return c;if(!c&&p)for(l in Bridge.global.System.Reflection.Assembly.assemblies)if(Bridge.global.System.Reflection.Assembly.assemblies.hasOwnProperty(l)&&Bridge.global.System.Reflection.Assembly.assemblies[l]!==t&&(c=Bridge.Reflection._getType(e,Bridge.global.System.Reflection.Assembly.assemblies[l],null,!0)))break;return(c=h.length?c.apply(null,h):c)&&c.$staticInit&&c.$staticInit(),a>-1&&(c=Bridge.global.System.Array.type(c,a)),c},getType:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("typeName");return e?Bridge.Reflection._getType(e,t):null},canAcceptNull:function(e){return"struct"!==e.$kind&&"enum"!==e.$kind&&e!==Bridge.global.System.Decimal&&e!==Bridge.global.System.Int64&&e!==Bridge.global.System.UInt64&&e!==Bridge.global.System.Double&&e!==Bridge.global.System.Single&&e!==Bridge.global.System.Byte&&e!==Bridge.global.System.SByte&&e!==Bridge.global.System.Int16&&e!==Bridge.global.System.UInt16&&e!==Bridge.global.System.Int32&&e!==Bridge.global.System.UInt32&&e!==Bridge.Int&&e!==Bridge.global.System.Boolean&&e!==Bridge.global.System.DateTime&&e!==Boolean&&e!==Date&&e!==Number},applyConstructor:function(e,t){var n,i,r,o,s,a,l,u,d,c;if(!t||0===t.length)return new e;if(e.$$initCtor&&"anonymous"!==e.$kind){if(n=0,Bridge.getMetadata(e)){for(i=Bridge.Reflection.getMembers(e,1,28),o=0;o1)throw new Bridge.global.System.Exception("The ambiguous constructor call")}return(c=function(){e.apply(this,t)}).prototype=e.prototype,new c},getAttributes:function(e,t,n){var i,r,o,s,a,l,u,d=[];if(n&&(l=Bridge.Reflection.getBaseType(e)))for(o=Bridge.Reflection.getAttributes(l,t,!0),i=0;i=0;u--)Bridge.Reflection.isInstanceOfType(d[u],r)&&d.splice(u,1);d.push(o)}return d},getMembers:function(e,t,n,i,r){var o,s,a,l,u,d,c,g,m,h=[];if((72==(72&n)||4==(6&n))&&(o=Bridge.Reflection.getBaseType(e))&&(h=Bridge.Reflection.getMembers(o,-2&t,n&(64&n?255:247)&(2&n?251:255),i,r)),s=function(e){if(t&e.t&&(4&n&&!e.is||8&n&&e.is)&&(!i||(1==(1&n)?e.n.toUpperCase()===i.toUpperCase():e.n===i))&&(16==(16&n)&&2===e.a||32==(32&n)&&2!==e.a)){if(r){if((e.p||[]).length!==r.length)return;for(var o=0;o1)throw new Bridge.global.System.Reflection.AmbiguousMatchException.$ctor1("Ambiguous match");if(1===g.length)return g[0];e=Bridge.Reflection.getBaseType(e)}return null}return h},createDelegate:function(e,t){var n=e.is||e.sm,i=null!=t&&!n,r=Bridge.Reflection.midel(e,t,null,i);return i?r:n?function(){var n=null!=t?[t]:[];return r.apply(e.td,n.concat(Array.prototype.slice.call(arguments,0)))}:function(e){return r.apply(e,Array.prototype.slice.call(arguments,1))}},midel:function(e,t,n,i){var r,o,s,a,l;if(!1!==i){if(e.is&&t)throw new Bridge.global.System.ArgumentException.$ctor1("Cannot specify target for static method");if(!e.is&&!t)throw new Bridge.global.System.ArgumentException.$ctor1("Must specify target for instance method")}if(e.fg)r=function(){return(e.is?e.td:this)[e.fg]};else if(e.fs)r=function(t){(e.is?e.td:this)[e.fs]=t};else{if(r=e.def||(e.is||e.sm?e.td[e.sn]:t?t[e.sn]:e.td.prototype[e.sn]),e.tpc){if(!n||n.length!==e.tpc)throw new Bridge.global.System.ArgumentException.$ctor1("Wrong number of type arguments");o=r,r=function(){return o.apply(this,n.concat(Array.prototype.slice.call(arguments)))}}else if(n&&n.length)throw new Bridge.global.System.ArgumentException.$ctor1("Cannot specify type arguments for non-generic method");e.exp&&(s=r,r=function(){return s.apply(this,Array.prototype.slice.call(arguments,0,arguments.length-1).concat(arguments[arguments.length-1]))}),e.sm&&(a=r,r=function(){return a.apply(null,[this].concat(Array.prototype.slice.call(arguments)))})}return l=r,r=function(){for(var t,n,i=[],r=e.pi||[],o=0;o=0},hasGenericParameters:function(e){if(e.$typeArguments)for(var t=0;t=0}}}}),Bridge.define("System.IEquatable$1",function(e){return{$kind:"interface",statics:{$is:function(t){return!!(Bridge.isNumber(t)&&e.$number&&e.$is(t)||Bridge.isDate(t)&&(e===Date||e===Bridge.global.System.DateTime)||Bridge.isBoolean(t)&&(e===Boolean||e===Bridge.global.System.Boolean)||Bridge.isString(t)&&(e===String||e===Bridge.global.System.String))||Bridge.is(t,Bridge.global.System.IEquatable$1(e),!0)},isAssignableFrom:function(t){return t===Bridge.global.System.DateTime&&e===Date||Bridge.Reflection.getInterfaces(t).indexOf(Bridge.global.System.IEquatable$1(e))>=0}}}}),Bridge.define("Bridge.IPromise",{$kind:"interface"}),Bridge.define("System.IDisposable",{$kind:"interface"}),Bridge.define("System.IAsyncResult",{$kind:"interface"}),d={nameEquals:function(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e.charAt(0).toLowerCase()+e.slice(1)===t.charAt(0).toLowerCase()+t.slice(1)},checkEnumType:function(e){if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor1("enumType");if(e.prototype&&"enum"!==e.$kind)throw new Bridge.global.System.ArgumentException.$ctor1("","enumType")},getUnderlyingType:function(e){return Bridge.global.System.Enum.checkEnumType(e),e.prototype.$utype||Bridge.global.System.Int32},toName:function(e){return e},parse:function(e,t,n,i){var r,o,s,a,l,u,c,g;if(Bridge.global.System.Enum.checkEnumType(e),null!=t){if(e===Number||e===Bridge.global.System.String||e.$number)return t;if(r={},Bridge.global.System.Int32.tryParse(t,r))return Bridge.box(r.v,e,function(t){return Bridge.global.System.Enum.toString(e,t)});if(o=Bridge.global.System.Enum.getNames(e),s=e,e.prototype&&e.prototype.$flags){var m=t.split(","),h=0,p=!0;for(a=m.length-1;a>=0;a--){for(l=m[a].trim(),u=!1,c=0;c=0&&(s=g[m],o=u&&Bridge.global.System.Int64.is64Bit(s.value),0!=m||(o?!s.value.isZero():0!=s.value));)(o?t.and(s.value).eq(s.value):(t&s.value)==s.value)&&(o?t=t.sub(s.value):t-=s.value,c.unshift(s.name)),m--;return(u?t.isZero():0===t)?(u?h.isZero():0===h)?(s=g[0])&&(Bridge.global.System.Int64.is64Bit(s.value)?s.value.isZero():0==s.value)?s.name:"0":c.join(", "):h.toString()}for(i=0;it},gte:function(e,t){return Bridge.hasValue$1(e,t)&&e>=t},neq:function(e,t){return Bridge.hasValue(e)?e!==t:Bridge.hasValue(t)},lt:function(e,t){return Bridge.hasValue$1(e,t)&&e>t:null},srr:function(e,t){return Bridge.hasValue$1(e,t)?e>>>t:null},sub:function(e,t){return Bridge.hasValue$1(e,t)?e-t:null},bnot:function(e){return Bridge.hasValue(e)?~e:null},neg:function(e){return Bridge.hasValue(e)?-e:null},not:function(e){return Bridge.hasValue(e)?!e:null},pos:function(e){return Bridge.hasValue(e)?+e:null},lift:function(){for(var e=1;e=Bridge.global.System.Char.min&&e<=Bridge.global.System.Char.max},getDefaultValue:function(){return 0},parse:function(e){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("s");if(1!==e.length)throw new Bridge.global.System.FormatException;return e.charCodeAt(0)},tryParse:function(e,t){var n=e&&1===e.length;return t.v=n?e.charCodeAt(0):0,n},format:function(e,t,n){return Bridge.Int.format(e,t,n)},charCodeAt:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException;if(1!=e.length)throw new Bridge.global.System.FormatException.$ctor1("String must be exactly one character long");return e.charCodeAt(t)},isWhiteSpace:function(e){return!/[^\s\x09-\x0D\x85\xA0]/.test(e)},isDigit:function(e){return e<256?e>=48&&e<=57:new RegExp(/[0-9\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19]/).test(String.fromCharCode(e))},isLetter:function(e){return e<256?e>=65&&e<=90||e>=97&&e<=122:new RegExp(/[A-Za-z\u0061-\u007A\u00B5\u00DF-\u00F6\u00F8-\u00FF\u0101\u0103\u0105\u0107\u0109\u010B\u010D\u010F\u0111\u0113\u0115\u0117\u0119\u011B\u011D\u011F\u0121\u0123\u0125\u0127\u0129\u012B\u012D\u012F\u0131\u0133\u0135\u0137\u0138\u013A\u013C\u013E\u0140\u0142\u0144\u0146\u0148\u0149\u014B\u014D\u014F\u0151\u0153\u0155\u0157\u0159\u015B\u015D\u015F\u0161\u0163\u0165\u0167\u0169\u016B\u016D\u016F\u0171\u0173\u0175\u0177\u017A\u017C\u017E-\u0180\u0183\u0185\u0188\u018C\u018D\u0192\u0195\u0199-\u019B\u019E\u01A1\u01A3\u01A5\u01A8\u01AA\u01AB\u01AD\u01B0\u01B4\u01B6\u01B9\u01BA\u01BD-\u01BF\u01C6\u01C9\u01CC\u01CE\u01D0\u01D2\u01D4\u01D6\u01D8\u01DA\u01DC\u01DD\u01DF\u01E1\u01E3\u01E5\u01E7\u01E9\u01EB\u01ED\u01EF\u01F0\u01F3\u01F5\u01F9\u01FB\u01FD\u01FF\u0201\u0203\u0205\u0207\u0209\u020B\u020D\u020F\u0211\u0213\u0215\u0217\u0219\u021B\u021D\u021F\u0221\u0223\u0225\u0227\u0229\u022B\u022D\u022F\u0231\u0233-\u0239\u023C\u023F\u0240\u0242\u0247\u0249\u024B\u024D\u024F-\u0293\u0295-\u02AF\u0371\u0373\u0377\u037B-\u037D\u0390\u03AC-\u03CE\u03D0\u03D1\u03D5-\u03D7\u03D9\u03DB\u03DD\u03DF\u03E1\u03E3\u03E5\u03E7\u03E9\u03EB\u03ED\u03EF-\u03F3\u03F5\u03F8\u03FB\u03FC\u0430-\u045F\u0461\u0463\u0465\u0467\u0469\u046B\u046D\u046F\u0471\u0473\u0475\u0477\u0479\u047B\u047D\u047F\u0481\u048B\u048D\u048F\u0491\u0493\u0495\u0497\u0499\u049B\u049D\u049F\u04A1\u04A3\u04A5\u04A7\u04A9\u04AB\u04AD\u04AF\u04B1\u04B3\u04B5\u04B7\u04B9\u04BB\u04BD\u04BF\u04C2\u04C4\u04C6\u04C8\u04CA\u04CC\u04CE\u04CF\u04D1\u04D3\u04D5\u04D7\u04D9\u04DB\u04DD\u04DF\u04E1\u04E3\u04E5\u04E7\u04E9\u04EB\u04ED\u04EF\u04F1\u04F3\u04F5\u04F7\u04F9\u04FB\u04FD\u04FF\u0501\u0503\u0505\u0507\u0509\u050B\u050D\u050F\u0511\u0513\u0515\u0517\u0519\u051B\u051D\u051F\u0521\u0523\u0525\u0527\u0561-\u0587\u1D00-\u1D2B\u1D6B-\u1D77\u1D79-\u1D9A\u1E01\u1E03\u1E05\u1E07\u1E09\u1E0B\u1E0D\u1E0F\u1E11\u1E13\u1E15\u1E17\u1E19\u1E1B\u1E1D\u1E1F\u1E21\u1E23\u1E25\u1E27\u1E29\u1E2B\u1E2D\u1E2F\u1E31\u1E33\u1E35\u1E37\u1E39\u1E3B\u1E3D\u1E3F\u1E41\u1E43\u1E45\u1E47\u1E49\u1E4B\u1E4D\u1E4F\u1E51\u1E53\u1E55\u1E57\u1E59\u1E5B\u1E5D\u1E5F\u1E61\u1E63\u1E65\u1E67\u1E69\u1E6B\u1E6D\u1E6F\u1E71\u1E73\u1E75\u1E77\u1E79\u1E7B\u1E7D\u1E7F\u1E81\u1E83\u1E85\u1E87\u1E89\u1E8B\u1E8D\u1E8F\u1E91\u1E93\u1E95-\u1E9D\u1E9F\u1EA1\u1EA3\u1EA5\u1EA7\u1EA9\u1EAB\u1EAD\u1EAF\u1EB1\u1EB3\u1EB5\u1EB7\u1EB9\u1EBB\u1EBD\u1EBF\u1EC1\u1EC3\u1EC5\u1EC7\u1EC9\u1ECB\u1ECD\u1ECF\u1ED1\u1ED3\u1ED5\u1ED7\u1ED9\u1EDB\u1EDD\u1EDF\u1EE1\u1EE3\u1EE5\u1EE7\u1EE9\u1EEB\u1EED\u1EEF\u1EF1\u1EF3\u1EF5\u1EF7\u1EF9\u1EFB\u1EFD\u1EFF-\u1F07\u1F10-\u1F15\u1F20-\u1F27\u1F30-\u1F37\u1F40-\u1F45\u1F50-\u1F57\u1F60-\u1F67\u1F70-\u1F7D\u1F80-\u1F87\u1F90-\u1F97\u1FA0-\u1FA7\u1FB0-\u1FB4\u1FB6\u1FB7\u1FBE\u1FC2-\u1FC4\u1FC6\u1FC7\u1FD0-\u1FD3\u1FD6\u1FD7\u1FE0-\u1FE7\u1FF2-\u1FF4\u1FF6\u1FF7\u210A\u210E\u210F\u2113\u212F\u2134\u2139\u213C\u213D\u2146-\u2149\u214E\u2184\u2C30-\u2C5E\u2C61\u2C65\u2C66\u2C68\u2C6A\u2C6C\u2C71\u2C73\u2C74\u2C76-\u2C7B\u2C81\u2C83\u2C85\u2C87\u2C89\u2C8B\u2C8D\u2C8F\u2C91\u2C93\u2C95\u2C97\u2C99\u2C9B\u2C9D\u2C9F\u2CA1\u2CA3\u2CA5\u2CA7\u2CA9\u2CAB\u2CAD\u2CAF\u2CB1\u2CB3\u2CB5\u2CB7\u2CB9\u2CBB\u2CBD\u2CBF\u2CC1\u2CC3\u2CC5\u2CC7\u2CC9\u2CCB\u2CCD\u2CCF\u2CD1\u2CD3\u2CD5\u2CD7\u2CD9\u2CDB\u2CDD\u2CDF\u2CE1\u2CE3\u2CE4\u2CEC\u2CEE\u2CF3\u2D00-\u2D25\u2D27\u2D2D\uA641\uA643\uA645\uA647\uA649\uA64B\uA64D\uA64F\uA651\uA653\uA655\uA657\uA659\uA65B\uA65D\uA65F\uA661\uA663\uA665\uA667\uA669\uA66B\uA66D\uA681\uA683\uA685\uA687\uA689\uA68B\uA68D\uA68F\uA691\uA693\uA695\uA697\uA723\uA725\uA727\uA729\uA72B\uA72D\uA72F-\uA731\uA733\uA735\uA737\uA739\uA73B\uA73D\uA73F\uA741\uA743\uA745\uA747\uA749\uA74B\uA74D\uA74F\uA751\uA753\uA755\uA757\uA759\uA75B\uA75D\uA75F\uA761\uA763\uA765\uA767\uA769\uA76B\uA76D\uA76F\uA771-\uA778\uA77A\uA77C\uA77F\uA781\uA783\uA785\uA787\uA78C\uA78E\uA791\uA793\uA7A1\uA7A3\uA7A5\uA7A7\uA7A9\uA7FA\uFB00-\uFB06\uFB13-\uFB17\uFF41-\uFF5A\u0041-\u005A\u00C0-\u00D6\u00D8-\u00DE\u0100\u0102\u0104\u0106\u0108\u010A\u010C\u010E\u0110\u0112\u0114\u0116\u0118\u011A\u011C\u011E\u0120\u0122\u0124\u0126\u0128\u012A\u012C\u012E\u0130\u0132\u0134\u0136\u0139\u013B\u013D\u013F\u0141\u0143\u0145\u0147\u014A\u014C\u014E\u0150\u0152\u0154\u0156\u0158\u015A\u015C\u015E\u0160\u0162\u0164\u0166\u0168\u016A\u016C\u016E\u0170\u0172\u0174\u0176\u0178\u0179\u017B\u017D\u0181\u0182\u0184\u0186\u0187\u0189-\u018B\u018E-\u0191\u0193\u0194\u0196-\u0198\u019C\u019D\u019F\u01A0\u01A2\u01A4\u01A6\u01A7\u01A9\u01AC\u01AE\u01AF\u01B1-\u01B3\u01B5\u01B7\u01B8\u01BC\u01C4\u01C7\u01CA\u01CD\u01CF\u01D1\u01D3\u01D5\u01D7\u01D9\u01DB\u01DE\u01E0\u01E2\u01E4\u01E6\u01E8\u01EA\u01EC\u01EE\u01F1\u01F4\u01F6-\u01F8\u01FA\u01FC\u01FE\u0200\u0202\u0204\u0206\u0208\u020A\u020C\u020E\u0210\u0212\u0214\u0216\u0218\u021A\u021C\u021E\u0220\u0222\u0224\u0226\u0228\u022A\u022C\u022E\u0230\u0232\u023A\u023B\u023D\u023E\u0241\u0243-\u0246\u0248\u024A\u024C\u024E\u0370\u0372\u0376\u0386\u0388-\u038A\u038C\u038E\u038F\u0391-\u03A1\u03A3-\u03AB\u03CF\u03D2-\u03D4\u03D8\u03DA\u03DC\u03DE\u03E0\u03E2\u03E4\u03E6\u03E8\u03EA\u03EC\u03EE\u03F4\u03F7\u03F9\u03FA\u03FD-\u042F\u0460\u0462\u0464\u0466\u0468\u046A\u046C\u046E\u0470\u0472\u0474\u0476\u0478\u047A\u047C\u047E\u0480\u048A\u048C\u048E\u0490\u0492\u0494\u0496\u0498\u049A\u049C\u049E\u04A0\u04A2\u04A4\u04A6\u04A8\u04AA\u04AC\u04AE\u04B0\u04B2\u04B4\u04B6\u04B8\u04BA\u04BC\u04BE\u04C0\u04C1\u04C3\u04C5\u04C7\u04C9\u04CB\u04CD\u04D0\u04D2\u04D4\u04D6\u04D8\u04DA\u04DC\u04DE\u04E0\u04E2\u04E4\u04E6\u04E8\u04EA\u04EC\u04EE\u04F0\u04F2\u04F4\u04F6\u04F8\u04FA\u04FC\u04FE\u0500\u0502\u0504\u0506\u0508\u050A\u050C\u050E\u0510\u0512\u0514\u0516\u0518\u051A\u051C\u051E\u0520\u0522\u0524\u0526\u0531-\u0556\u10A0-\u10C5\u10C7\u10CD\u1E00\u1E02\u1E04\u1E06\u1E08\u1E0A\u1E0C\u1E0E\u1E10\u1E12\u1E14\u1E16\u1E18\u1E1A\u1E1C\u1E1E\u1E20\u1E22\u1E24\u1E26\u1E28\u1E2A\u1E2C\u1E2E\u1E30\u1E32\u1E34\u1E36\u1E38\u1E3A\u1E3C\u1E3E\u1E40\u1E42\u1E44\u1E46\u1E48\u1E4A\u1E4C\u1E4E\u1E50\u1E52\u1E54\u1E56\u1E58\u1E5A\u1E5C\u1E5E\u1E60\u1E62\u1E64\u1E66\u1E68\u1E6A\u1E6C\u1E6E\u1E70\u1E72\u1E74\u1E76\u1E78\u1E7A\u1E7C\u1E7E\u1E80\u1E82\u1E84\u1E86\u1E88\u1E8A\u1E8C\u1E8E\u1E90\u1E92\u1E94\u1E9E\u1EA0\u1EA2\u1EA4\u1EA6\u1EA8\u1EAA\u1EAC\u1EAE\u1EB0\u1EB2\u1EB4\u1EB6\u1EB8\u1EBA\u1EBC\u1EBE\u1EC0\u1EC2\u1EC4\u1EC6\u1EC8\u1ECA\u1ECC\u1ECE\u1ED0\u1ED2\u1ED4\u1ED6\u1ED8\u1EDA\u1EDC\u1EDE\u1EE0\u1EE2\u1EE4\u1EE6\u1EE8\u1EEA\u1EEC\u1EEE\u1EF0\u1EF2\u1EF4\u1EF6\u1EF8\u1EFA\u1EFC\u1EFE\u1F08-\u1F0F\u1F18-\u1F1D\u1F28-\u1F2F\u1F38-\u1F3F\u1F48-\u1F4D\u1F59\u1F5B\u1F5D\u1F5F\u1F68-\u1F6F\u1FB8-\u1FBB\u1FC8-\u1FCB\u1FD8-\u1FDB\u1FE8-\u1FEC\u1FF8-\u1FFB\u2102\u2107\u210B-\u210D\u2110-\u2112\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u2130-\u2133\u213E\u213F\u2145\u2183\u2C00-\u2C2E\u2C60\u2C62-\u2C64\u2C67\u2C69\u2C6B\u2C6D-\u2C70\u2C72\u2C75\u2C7E-\u2C80\u2C82\u2C84\u2C86\u2C88\u2C8A\u2C8C\u2C8E\u2C90\u2C92\u2C94\u2C96\u2C98\u2C9A\u2C9C\u2C9E\u2CA0\u2CA2\u2CA4\u2CA6\u2CA8\u2CAA\u2CAC\u2CAE\u2CB0\u2CB2\u2CB4\u2CB6\u2CB8\u2CBA\u2CBC\u2CBE\u2CC0\u2CC2\u2CC4\u2CC6\u2CC8\u2CCA\u2CCC\u2CCE\u2CD0\u2CD2\u2CD4\u2CD6\u2CD8\u2CDA\u2CDC\u2CDE\u2CE0\u2CE2\u2CEB\u2CED\u2CF2\uA640\uA642\uA644\uA646\uA648\uA64A\uA64C\uA64E\uA650\uA652\uA654\uA656\uA658\uA65A\uA65C\uA65E\uA660\uA662\uA664\uA666\uA668\uA66A\uA66C\uA680\uA682\uA684\uA686\uA688\uA68A\uA68C\uA68E\uA690\uA692\uA694\uA696\uA722\uA724\uA726\uA728\uA72A\uA72C\uA72E\uA732\uA734\uA736\uA738\uA73A\uA73C\uA73E\uA740\uA742\uA744\uA746\uA748\uA74A\uA74C\uA74E\uA750\uA752\uA754\uA756\uA758\uA75A\uA75C\uA75E\uA760\uA762\uA764\uA766\uA768\uA76A\uA76C\uA76E\uA779\uA77B\uA77D\uA77E\uA780\uA782\uA784\uA786\uA78B\uA78D\uA790\uA792\uA7A0\uA7A2\uA7A4\uA7A6\uA7A8\uA7AA\uFF21-\uFF3A\u01C5\u01C8\u01CB\u01F2\u1F88-\u1F8F\u1F98-\u1F9F\u1FA8-\u1FAF\u1FBC\u1FCC\u1FFC\u02B0-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0374\u037A\u0559\u0640\u06E5\u06E6\u07F4\u07F5\u07FA\u081A\u0824\u0828\u0971\u0E46\u0EC6\u10FC\u17D7\u1843\u1AA7\u1C78-\u1C7D\u1D2C-\u1D6A\u1D78\u1D9B-\u1DBF\u2071\u207F\u2090-\u209C\u2C7C\u2C7D\u2D6F\u2E2F\u3005\u3031-\u3035\u303B\u309D\u309E\u30FC-\u30FE\uA015\uA4F8-\uA4FD\uA60C\uA67F\uA717-\uA71F\uA770\uA788\uA7F8\uA7F9\uA9CF\uAA70\uAADD\uAAF3\uAAF4\uFF70\uFF9E\uFF9F\u00AA\u00BA\u01BB\u01C0-\u01C3\u0294\u05D0-\u05EA\u05F0-\u05F2\u0620-\u063F\u0641-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u0800-\u0815\u0840-\u0858\u08A0\u08A2-\u08AC\u0904-\u0939\u093D\u0950\u0958-\u0961\u0972-\u0977\u0979-\u097F\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C33\u0C35-\u0C39\u0C3D\u0C58\u0C59\u0C60\u0C61\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D60\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E45\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10D0-\u10FA\u10FD-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F4\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17DC\u1820-\u1842\u1844-\u1877\u1880-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191C\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19C1-\u19C7\u1A00-\u1A16\u1A20-\u1A54\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C77\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u2135-\u2138\u2D30-\u2D67\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u3006\u303C\u3041-\u3096\u309F\u30A1-\u30FA\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FCC\uA000-\uA014\uA016-\uA48C\uA4D0-\uA4F7\uA500-\uA60B\uA610-\uA61F\uA62A\uA62B\uA66E\uA6A0-\uA6E5\uA7FB-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA6F\uAA71-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB\uAADC\uAAE0-\uAAEA\uAAF2\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF66-\uFF6F\uFF71-\uFF9D\uFFA0-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/).test(String.fromCharCode(e))},isHighSurrogate:function(e){return new RegExp(/[\uD800-\uDBFF]/).test(String.fromCharCode(e))},isLowSurrogate:function(e){return new RegExp(/[\uDC00-\uDFFF]/).test(String.fromCharCode(e))},isSurrogate:function(e){return new RegExp(/[\uD800-\uDFFF]/).test(String.fromCharCode(e))},isNull:function(e){return new RegExp("\0").test(String.fromCharCode(e))},isSymbol:function(e){return e<256?-1!=[36,43,60,61,62,94,96,124,126,162,163,164,165,166,167,168,169,172,174,175,176,177,180,182,184,215,247].indexOf(e):new RegExp(/[\u20A0-\u20CF\u20D0-\u20FF\u2100-\u214F\u2150-\u218F\u2190-\u21FF\u2200-\u22FF\u2300-\u23FF\u25A0-\u25FF\u2600-\u26FF\u2700-\u27BF\u27C0-\u27EF\u27F0-\u27FF\u2800-\u28FF\u2900-\u297F\u2980-\u29FF\u2A00-\u2AFF\u2B00-\u2BFF]/).test(String.fromCharCode(e))},isSeparator:function(e){return e<256?32==e||160==e:new RegExp(/[\u2028\u2029\u0020\u00A0\u1680\u180E\u2000-\u200A\u202F\u205F\u3000]/).test(String.fromCharCode(e))},isPunctuation:function(e){return e<256?-1!=[33,34,35,37,38,39,40,41,42,44,45,46,47,58,59,63,64,91,92,93,95,123,125,161,171,173,183,187,191].indexOf(e):new RegExp(/[\u0021-\u0023\u0025-\u002A\u002C-\u002F\u003A\u003B\u003F\u0040\u005B-\u005D\u005F\u007B\u007D\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166D\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E3B\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65\u002D\u058A\u05BE\u1400\u1806\u2010-\u2015\u2E17\u2E1A\u2E3A\u2E3B\u301C\u3030\u30A0\uFE31\uFE32\uFE58\uFE63\uFF0D\u0028\u005B\u007B\u0F3A\u0F3C\u169B\u201A\u201E\u2045\u207D\u208D\u2329\u2768\u276A\u276C\u276E\u2770\u2772\u2774\u27C5\u27E6\u27E8\u27EA\u27EC\u27EE\u2983\u2985\u2987\u2989\u298B\u298D\u298F\u2991\u2993\u2995\u2997\u29D8\u29DA\u29FC\u2E22\u2E24\u2E26\u2E28\u3008\u300A\u300C\u300E\u3010\u3014\u3016\u3018\u301A\u301D\uFD3E\uFE17\uFE35\uFE37\uFE39\uFE3B\uFE3D\uFE3F\uFE41\uFE43\uFE47\uFE59\uFE5B\uFE5D\uFF08\uFF3B\uFF5B\uFF5F\uFF62\u0029\u005D\u007D\u0F3B\u0F3D\u169C\u2046\u207E\u208E\u232A\u2769\u276B\u276D\u276F\u2771\u2773\u2775\u27C6\u27E7\u27E9\u27EB\u27ED\u27EF\u2984\u2986\u2988\u298A\u298C\u298E\u2990\u2992\u2994\u2996\u2998\u29D9\u29DB\u29FD\u2E23\u2E25\u2E27\u2E29\u3009\u300B\u300D\u300F\u3011\u3015\u3017\u3019\u301B\u301E\u301F\uFD3F\uFE18\uFE36\uFE38\uFE3A\uFE3C\uFE3E\uFE40\uFE42\uFE44\uFE48\uFE5A\uFE5C\uFE5E\uFF09\uFF3D\uFF5D\uFF60\uFF63\u00AB\u2018\u201B\u201C\u201F\u2039\u2E02\u2E04\u2E09\u2E0C\u2E1C\u2E20\u00BB\u2019\u201D\u203A\u2E03\u2E05\u2E0A\u2E0D\u2E1D\u2E21\u005F\u203F\u2040\u2054\uFE33\uFE34\uFE4D-\uFE4F\uFF3F\u0021-\u0023\u0025-\u0027\u002A\u002C\u002E\u002F\u003A\u003B\u003F\u0040\u005C\u00A1\u00A7\u00B6\u00B7\u00BF\u037E\u0387\u055A-\u055F\u0589\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u0AF0\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u166D\u166E\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u1805\u1807-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2016\u2017\u2020-\u2027\u2030-\u2038\u203B-\u203E\u2041-\u2043\u2047-\u2051\u2053\u2055-\u205E\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00\u2E01\u2E06-\u2E08\u2E0B\u2E0E-\u2E16\u2E18\u2E19\u2E1B\u2E1E\u2E1F\u2E2A-\u2E2E\u2E30-\u2E39\u3001-\u3003\u303D\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFE10-\uFE16\uFE19\uFE30\uFE45\uFE46\uFE49-\uFE4C\uFE50-\uFE52\uFE54-\uFE57\uFE5F-\uFE61\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF07\uFF0A\uFF0C\uFF0E\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3C\uFF61\uFF64\uFF65]/).test(String.fromCharCode(e))},isNumber:function(e){return e<256?-1!=[48,49,50,51,52,53,54,55,56,57,178,179,185,188,189,190].indexOf(e):new RegExp(/[\u0030-\u0039\u00B2\u00B3\u00B9\u00BC-\u00BE\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u09F4-\u09F9\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0B72-\u0B77\u0BE6-\u0BF2\u0C66-\u0C6F\u0C78-\u0C7E\u0CE6-\u0CEF\u0D66-\u0D75\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F33\u1040-\u1049\u1090-\u1099\u1369-\u137C\u16EE-\u16F0\u17E0-\u17E9\u17F0-\u17F9\u1810-\u1819\u1946-\u194F\u19D0-\u19DA\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\u2070\u2074-\u2079\u2080-\u2089\u2150-\u2182\u2185-\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3007\u3021-\u3029\u3038-\u303A\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA620-\uA629\uA6E6-\uA6EF\uA830-\uA835\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19\u0030-\u0039\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19\u16EE-\u16F0\u2160-\u2182\u2185-\u2188\u3007\u3021-\u3029\u3038-\u303A\uA6E6-\uA6EF\u00B2\u00B3\u00B9\u00BC-\u00BE\u09F4-\u09F9\u0B72-\u0B77\u0BF0-\u0BF2\u0C78-\u0C7E\u0D70-\u0D75\u0F2A-\u0F33\u1369-\u137C\u17F0-\u17F9\u19DA\u2070\u2074-\u2079\u2080-\u2089\u2150-\u215F\u2189\u2460-\u249B\u24EA-\u24FF\u2776-\u2793\u2CFD\u3192-\u3195\u3220-\u3229\u3248-\u324F\u3251-\u325F\u3280-\u3289\u32B1-\u32BF\uA830-\uA835]/).test(String.fromCharCode(e))},isControl:function(e){return e<256?e>=0&&e<=31||e>=127&&e<=159:new RegExp(/[\u0000-\u001F\u007F\u0080-\u009F]/).test(String.fromCharCode(e))},isLatin1:function(e){return e<=255},isAscii:function(e){return e<=127},isUpper:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");if(t>>>0>=e.length>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");var n=e.charCodeAt(t);return Bridge.global.System.Char.isLatin1(n)&&Bridge.global.System.Char.isAscii(n)?n>=65&&n<=90:Bridge.isUpper(n)},equals:function(e,t){return!(!Bridge.is(e,Bridge.global.System.Char)||!Bridge.is(t,Bridge.global.System.Char))&&Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:function(e){return e|e<<16}}}),Bridge.Class.addExtend(Bridge.global.System.Char,[Bridge.global.System.IComparable$1(Bridge.global.System.Char),Bridge.global.System.IEquatable$1(Bridge.global.System.Char)]),Bridge.define("Bridge.Ref$1",function(){return{statics:{methods:{op_Implicit:function(e){return e.Value}}},fields:{getter:null,setter:null},props:{Value:{get:function(){return this.getter()},set:function(e){this.setter(e)}},v:{get:function(){return this.Value},set:function(e){this.Value=e}}},ctors:{ctor:function(e,t){this.$initialize(),this.getter=e,this.setter=t}},methods:{toString:function(){return Bridge.toString(this.Value)},valueOf:function(){return this.Value}}}}),Bridge.define("System.IConvertible",{$kind:"interface"}),Bridge.define("System.HResults"),Bridge.define("System.Exception",{config:{properties:{Message:{get:function(){return this.message}},InnerException:{get:function(){return this.innerException}},StackTrace:{get:function(){return this.errorStack.stack}},Data:{get:function(){return this.data}},HResult:{get:function(){return this._HResult},set:function(e){this._HResult=e}}}},ctor:function(e,t){this.$initialize(),this.message=e||"Exception of type '"+Bridge.getTypeName(this)+"' was thrown.",this.innerException=t||null,this.errorStack=new Error(this.message),this.data=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))},getBaseException:function(){for(var e=this.innerException,t=this;null!=e;)t=e,e=e.innerException;return t},toString:function(){var e=Bridge.getTypeName(this);return e+=null!=this.Message?": "+this.Message+"\n":"\n",null!=this.StackTrace&&(e+=this.StackTrace+"\n"),e},statics:{create:function(e){if(Bridge.is(e,Bridge.global.System.Exception))return e;var t;if(e instanceof TypeError)t=new Bridge.global.System.NullReferenceException.$ctor1(e.message);else if(e instanceof RangeError)t=new Bridge.global.System.ArgumentOutOfRangeException.$ctor1(e.message);else{if(e instanceof Error)return new Bridge.global.System.SystemException.$ctor1(e);t=e&&e.error&&e.error.stack?new Bridge.global.System.Exception(e.error.stack):new Bridge.global.System.Exception(e?e.message?e.message:e.toString():null)}return t.errorStack=e,t}}}),Bridge.define("System.SystemException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"System error."),this.HResult=-2146233087},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e),this.HResult=-2146233087},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t),this.HResult=-2146233087}}}),Bridge.define("System.OutOfMemoryException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Insufficient memory to continue the execution of the program."),this.HResult=-2147024362},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024362},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024362}}}),Bridge.define("System.ArrayTypeMismatchException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Attempted to access an element as a type incompatible with the array."),this.HResult=-2146233085},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233085},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233085}}}),Bridge.define("System.Resources.MissingManifestResourceException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Unable to find manifest resource."),this.HResult=-2146233038},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233038},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233038}}}),Bridge.define("System.Globalization.TextInfo",{inherits:[Bridge.global.System.ICloneable],fields:{listSeparator:null},props:{ANSICodePage:0,CultureName:null,EBCDICCodePage:0,IsReadOnly:!1,IsRightToLeft:!1,LCID:0,ListSeparator:{get:function(){return this.listSeparator},set:function(e){this.VerifyWritable(),this.listSeparator=e}},MacCodePage:0,OEMCodePage:0},alias:["clone","System$ICloneable$clone"],methods:{clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.TextInfo,this,Bridge.global.System.Array.init(["ANSICodePage","CultureName","EBCDICCodePage","IsRightToLeft","LCID","listSeparator","MacCodePage","OEMCodePage","IsReadOnly"],Bridge.global.System.String))},VerifyWritable:function(){if(this.IsReadOnly)throw new Bridge.global.System.InvalidOperationException.$ctor1("Instance is read-only.")}}}),Bridge.define("System.Globalization.BidiCategory",{$kind:"enum",statics:{fields:{LeftToRight:0,LeftToRightEmbedding:1,LeftToRightOverride:2,RightToLeft:3,RightToLeftArabic:4,RightToLeftEmbedding:5,RightToLeftOverride:6,PopDirectionalFormat:7,EuropeanNumber:8,EuropeanNumberSeparator:9,EuropeanNumberTerminator:10,ArabicNumber:11,CommonNumberSeparator:12,NonSpacingMark:13,BoundaryNeutral:14,ParagraphSeparator:15,SegmentSeparator:16,Whitespace:17,OtherNeutrals:18,LeftToRightIsolate:19,RightToLeftIsolate:20,FirstStrongIsolate:21,PopDirectionIsolate:22}}}),Bridge.define("System.Globalization.SortVersion",{inherits:function(){return[Bridge.global.System.IEquatable$1(Bridge.global.System.Globalization.SortVersion)]},statics:{methods:{op_Equality:function(e,t){return null!=e?e.equalsT(t):null==t||t.equalsT(e)},op_Inequality:function(e,t){return!Bridge.global.System.Globalization.SortVersion.op_Equality(e,t)}}},fields:{m_NlsVersion:0,m_SortId:null},props:{FullVersion:{get:function(){return this.m_NlsVersion}},SortId:{get:function(){return this.m_SortId}}},alias:["equalsT","System$IEquatable$1$System$Globalization$SortVersion$equalsT"],ctors:{init:function(){this.m_SortId=new Bridge.global.System.Guid},ctor:function(e,t){this.$initialize(),this.m_SortId=t,this.m_NlsVersion=e},$ctor1:function(e,t,n){if(this.$initialize(),this.m_NlsVersion=e,Bridge.global.System.Guid.op_Equality(n,Bridge.global.System.Guid.Empty)){var i=t>>24&255,r=(16711680&t)>>16&255,o=(65280&t)>>8&255,s=255&t;n=new Bridge.global.System.Guid.$ctor2(0,0,0,0,0,0,0,i,r,o,s)}this.m_SortId=n}},methods:{equals:function(e){var t=Bridge.as(e,Bridge.global.System.Globalization.SortVersion);return!!Bridge.global.System.Globalization.SortVersion.op_Inequality(t,null)&&this.equalsT(t)},equalsT:function(e){return!Bridge.global.System.Globalization.SortVersion.op_Equality(e,null)&&this.m_NlsVersion===e.m_NlsVersion&&Bridge.global.System.Guid.op_Equality(this.m_SortId,e.m_SortId)},getHashCode:function(){return Bridge.Int.mul(this.m_NlsVersion,7)|this.m_SortId.getHashCode()}}}),Bridge.define("System.Globalization.UnicodeCategory",{$kind:"enum",statics:{fields:{UppercaseLetter:0,LowercaseLetter:1,TitlecaseLetter:2,ModifierLetter:3,OtherLetter:4,NonSpacingMark:5,SpacingCombiningMark:6,EnclosingMark:7,DecimalDigitNumber:8,LetterNumber:9,OtherNumber:10,SpaceSeparator:11,LineSeparator:12,ParagraphSeparator:13,Control:14,Format:15,Surrogate:16,PrivateUse:17,ConnectorPunctuation:18,DashPunctuation:19,OpenPunctuation:20,ClosePunctuation:21,InitialQuotePunctuation:22,FinalQuotePunctuation:23,OtherPunctuation:24,MathSymbol:25,CurrencySymbol:26,ModifierSymbol:27,OtherSymbol:28,OtherNotAssigned:29}}}),Bridge.define("System.Globalization.DaylightTimeStruct",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Globalization.DaylightTimeStruct}}},fields:{Start:null,End:null,Delta:null},ctors:{init:function(){this.Start=Bridge.global.System.DateTime.getDefaultValue(),this.End=Bridge.global.System.DateTime.getDefaultValue(),this.Delta=new Bridge.global.System.TimeSpan},$ctor1:function(e,t,n){this.$initialize(),this.Start=e,this.End=t,this.Delta=n},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([7445027511,this.Start,this.End,this.Delta])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Globalization.DaylightTimeStruct)&&Bridge.equals(this.Start,e.Start)&&Bridge.equals(this.End,e.End)&&Bridge.equals(this.Delta,e.Delta)},$clone:function(e){var t=e||new Bridge.global.System.Globalization.DaylightTimeStruct;return t.Start=this.Start,t.End=this.End,t.Delta=this.Delta,t}}}),Bridge.define("System.Globalization.DaylightTime",{fields:{_start:null,_end:null,_delta:null},props:{Start:{get:function(){return this._start}},End:{get:function(){return this._end}},Delta:{get:function(){return this._delta}}},ctors:{init:function(){this._start=Bridge.global.System.DateTime.getDefaultValue(),this._end=Bridge.global.System.DateTime.getDefaultValue(),this._delta=new Bridge.global.System.TimeSpan},ctor:function(){this.$initialize()},$ctor1:function(e,t,n){this.$initialize(),this._start=e,this._end=t,this._delta=n}}}),Bridge.define("System.Globalization.DateTimeFormatInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},statics:{$allStandardFormats:{d:"shortDatePattern",D:"longDatePattern",f:"longDatePattern shortTimePattern",F:"longDatePattern longTimePattern",g:"shortDatePattern shortTimePattern",G:"shortDatePattern longTimePattern",m:"monthDayPattern",M:"monthDayPattern",o:"roundtripFormat",O:"roundtripFormat",r:"rfc1123",R:"rfc1123",s:"sortableDateTimePattern",S:"sortableDateTimePattern1",t:"shortTimePattern",T:"longTimePattern",u:"universalSortableDateTimePattern",U:"longDatePattern longTimePattern",y:"yearMonthPattern",Y:"yearMonthPattern"},ctor:function(){this.invariantInfo=Bridge.merge(new Bridge.global.System.Globalization.DateTimeFormatInfo,{abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],abbreviatedMonthGenitiveNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],amDesignator:"AM",dateSeparator:"/",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],firstDayOfWeek:0,fullDateTimePattern:"dddd, dd MMMM yyyy HH:mm:ss",longDatePattern:"dddd, dd MMMM yyyy",longTimePattern:"HH:mm:ss",monthDayPattern:"MMMM dd",monthGenitiveNames:["January","February","March","April","May","June","July","August","September","October","November","December",""],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December",""],pmDesignator:"PM",rfc1123:"ddd, dd MMM yyyy HH':'mm':'ss 'GMT'",shortDatePattern:"MM/dd/yyyy",shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],shortTimePattern:"HH:mm",sortableDateTimePattern:"yyyy'-'MM'-'dd'T'HH':'mm':'ss",sortableDateTimePattern1:"yyyy'-'MM'-'dd",timeSeparator:":",universalSortableDateTimePattern:"yyyy'-'MM'-'dd HH':'mm':'ss'Z'",yearMonthPattern:"yyyy MMMM",roundtripFormat:"yyyy'-'MM'-'dd'T'HH':'mm':'ss.fffffffzzz"})}},getFormat:function(e){switch(e){case Bridge.global.System.Globalization.DateTimeFormatInfo:return this;default:return null}},getAbbreviatedDayName:function(e){if(e<0||e>6)throw new Bridge.global.System.ArgumentOutOfRangeException$ctor1("dayofweek");return this.abbreviatedDayNames[e]},getAbbreviatedMonthName:function(e){if(e<1||e>13)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("month");return this.abbreviatedMonthNames[e-1]},getAllDateTimePatterns:function(e,t){var n,i,r,o,s=Bridge.global.System.Globalization.DateTimeFormatInfo.$allStandardFormats,a=[];if(e){if(!s[e]){if(t)return null;throw new Bridge.global.System.ArgumentException.$ctor3("","format")}(n={})[e]=s[e]}else n=s;for(s in n){for(i=n[s].split(" "),r="",o=0;o6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("dayofweek");return this.dayNames[e]},getMonthName:function(e){if(e<1||e>13)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("month");return this.monthNames[e-1]},getShortestDayName:function(e){if(e<0||e>6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("dayOfWeek");return this.shortestDayNames[e]},clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.DateTimeFormatInfo,this,["abbreviatedDayNames","abbreviatedMonthGenitiveNames","abbreviatedMonthNames","amDesignator","dateSeparator","dayNames","firstDayOfWeek","fullDateTimePattern","longDatePattern","longTimePattern","monthDayPattern","monthGenitiveNames","monthNames","pmDesignator","rfc1123","shortDatePattern","shortestDayNames","shortTimePattern","sortableDateTimePattern","timeSeparator","universalSortableDateTimePattern","yearMonthPattern","roundtripFormat"])}}),Bridge.define("System.Globalization.NumberFormatInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},statics:{ctor:function(){this.numberNegativePatterns=["(n)","-n","- n","n-","n -"],this.currencyNegativePatterns=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"],this.currencyPositivePatterns=["$n","n$","$ n","n $"],this.percentNegativePatterns=["-n %","-n%","-%n","%-n","%n-","n-%","n%-","-% n","n %-","% n-","% -n","n- %"],this.percentPositivePatterns=["n %","n%","%n","% n"],this.invariantInfo=Bridge.merge(new Bridge.global.System.Globalization.NumberFormatInfo,{nanSymbol:"NaN",negativeSign:"-",positiveSign:"+",negativeInfinitySymbol:"-Infinity",positiveInfinitySymbol:"Infinity",percentSymbol:"%",percentGroupSizes:[3],percentDecimalDigits:2,percentDecimalSeparator:".",percentGroupSeparator:",",percentPositivePattern:0,percentNegativePattern:0,currencySymbol:"¤",currencyGroupSizes:[3],currencyDecimalDigits:2,currencyDecimalSeparator:".",currencyGroupSeparator:",",currencyNegativePattern:0,currencyPositivePattern:0,numberGroupSizes:[3],numberDecimalDigits:2,numberDecimalSeparator:".",numberGroupSeparator:",",numberNegativePattern:1})}},getFormat:function(e){switch(e){case Bridge.global.System.Globalization.NumberFormatInfo:return this;default:return null}},clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.NumberFormatInfo,this,["nanSymbol","negativeSign","positiveSign","negativeInfinitySymbol","positiveInfinitySymbol","percentSymbol","percentGroupSizes","percentDecimalDigits","percentDecimalSeparator","percentGroupSeparator","percentPositivePattern","percentNegativePattern","currencySymbol","currencyGroupSizes","currencyDecimalDigits","currencyDecimalSeparator","currencyGroupSeparator","currencyNegativePattern","currencyPositivePattern","numberGroupSizes","numberDecimalDigits","numberDecimalSeparator","numberGroupSeparator","numberNegativePattern"])}}),Bridge.define("System.Globalization.CultureInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},$entryPoint:!0,statics:{ctor:function(){this.cultures=this.cultures||{},this.invariantCulture=Bridge.merge(new Bridge.global.System.Globalization.CultureInfo("iv",!0),{englishName:"Invariant Language (Invariant Country)",nativeName:"Invariant Language (Invariant Country)",numberFormat:Bridge.global.System.Globalization.NumberFormatInfo.invariantInfo,dateTimeFormat:Bridge.global.System.Globalization.DateTimeFormatInfo.invariantInfo,TextInfo:Bridge.merge(new Bridge.global.System.Globalization.TextInfo,{ANSICodePage:1252,CultureName:"",EBCDICCodePage:37,listSeparator:",",IsRightToLeft:!1,LCID:127,MacCodePage:1e4,OEMCodePage:437,IsReadOnly:!0})}),this.setCurrentCulture(Bridge.global.System.Globalization.CultureInfo.invariantCulture)},getCurrentCulture:function(){return this.currentCulture},setCurrentCulture:function(e){this.currentCulture=e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo=e.dateTimeFormat,Bridge.global.System.Globalization.NumberFormatInfo.currentInfo=e.numberFormat},getCultureInfo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");if(""===e)return Bridge.global.System.Globalization.CultureInfo.invariantCulture;var t=this.cultures[e];if(null==t)throw new Bridge.global.System.Globalization.CultureNotFoundException.$ctor5("name",e);return t},getCultures:function(){for(var e=Bridge.getPropertyNames(this.cultures),t=[],n=0;n=0?e.substr(Bridge.global.System.String.indexOf(e,"at")):""}},Version:{get:function(){var e=Bridge.SystemAssembly.compiler,t={};return Bridge.global.System.Version.tryParse(e,t)?t.v:new Bridge.global.System.Version.ctor}}},ctors:{init:function(){this.ExitCode=0},ctor:function(){Bridge.global.System.Environment.Variables=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)),Bridge.global.System.Environment.PatchDictionary(Bridge.global.System.Environment.Variables)}},methods:{GetResourceString:function(e){return e},GetResourceString$1:function(e,t){void 0===t&&(t=[]);var n=Bridge.global.System.Environment.GetResourceString(e);return Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[Bridge.global.System.Globalization.CultureInfo.getCurrentCulture(),n].concat(t))},PatchDictionary:function(e){return e.noKeyCheck=!0,e},Exit:function(e){Bridge.global.System.Environment.ExitCode=e},ExpandEnvironmentVariables:function(e){var t,n;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1(e);t=Bridge.getEnumerator(Bridge.global.System.Environment.Variables);try{for(;t.moveNext();)n=t.Current,e=Bridge.global.System.String.replaceAll(e,"%"+(n.key||"")+"%",n.value)}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return e},FailFast:function(e){throw new Bridge.global.System.Exception(e)},FailFast$1:function(e,t){throw new Bridge.global.System.Exception(e,t)},GetCommandLineArgs:function(){var e,t,n,i,r,o,s,a=Bridge.global.System.Environment.Location;if(a){if(e=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),t=a.pathname,Bridge.global.System.String.isNullOrEmpty(t)||e.add(t),n=a.search,!Bridge.global.System.String.isNullOrEmpty(n)&&n.length>1)for(i=Bridge.global.System.String.split(n.substr(1),[38].map(function(e){return String.fromCharCode(e)})),r=0;r0|-(e<0))?((r=Math.floor(e))+(4===n?i>0:r%2*i))/o:Math.round(e)/o},log10:Math.log10||function(e){return Math.log(e)/Math.LN10},logWithBase:function(e,t){return isNaN(e)?e:isNaN(t)?t:1===t?NaN:1===e||0!==t&&t!==Number.POSITIVE_INFINITY?Bridge.Math.log10(e)/Bridge.Math.log10(t):NaN},log:function(e){return 0===e?Number.NEGATIVE_INFINITY:e<0||isNaN(e)?NaN:e===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:e===Number.NEGATIVE_INFINITY?NaN:Math.log(e)},sinh:Math.sinh||function(e){return(Math.exp(e)-Math.exp(-e))/2},cosh:Math.cosh||function(e){return(Math.exp(e)+Math.exp(-e))/2},tanh:Math.tanh||function(e){if(e===1/0)return 1;if(e===-1/0)return-1;var t=Math.exp(2*e);return(t-1)/(t+1)}},Bridge.define("System.Boolean",{inherits:[Bridge.global.System.IComparable],statics:{trueString:"True",falseString:"False",$is:function(e){return"boolean"==typeof e},getDefaultValue:function(){return!1},createInstance:function(){return!1},toString:function(e){return e?Bridge.global.System.Boolean.trueString:Bridge.global.System.Boolean.falseString},parse:function(e){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("value");var t={v:!1};if(!Bridge.global.System.Boolean.tryParse(e,t))throw new Bridge.global.System.FormatException.$ctor1("Bad format for Boolean value");return t.v},tryParse:function(e,t){if(t.v=!1,!Bridge.hasValue(e))return!1;if(Bridge.global.System.String.equals(Bridge.global.System.Boolean.trueString,e,5))return t.v=!0,!0;if(Bridge.global.System.String.equals(Bridge.global.System.Boolean.falseString,e,5))return t.v=!1,!0;for(var n=0,i=e.length-1;n=n&&(Bridge.global.System.Char.isWhiteSpace(e[i])||Bridge.global.System.Char.isNull(e.charCodeAt(i)));)i--;return e=e.substr(n,i-n+1),Bridge.global.System.String.equals(Bridge.global.System.Boolean.trueString,e,5)?(t.v=!0,!0):!!Bridge.global.System.String.equals(Bridge.global.System.Boolean.falseString,e,5)&&(t.v=!1,!0)}}}),Bridge.global.System.Boolean.$kind="",Bridge.Class.addExtend(Bridge.global.System.Boolean,[Bridge.global.System.IComparable$1(Bridge.global.System.Boolean),Bridge.global.System.IEquatable$1(Bridge.global.System.Boolean)]),function(){var e=function(e,t,n,i){var r=Bridge.define(e,{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{$number:!0,min:t,max:n,precision:i,$is:function(e){return"number"==typeof e&&Math.floor(e,0)===e&&e>=t&&e<=n},getDefaultValue:function(){return 0},parse:function(e,i){return Bridge.Int.parseInt(e,t,n,i)},tryParse:function(e,i,r){return Bridge.Int.tryParseInt(e,i,t,n,r)},format:function(e,t,n){return Bridge.Int.format(e,t,n,r)},equals:function(e,t){return!(!Bridge.is(e,r)||!Bridge.is(t,r))&&Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)}}});r.$kind="",Bridge.Class.addExtend(r,[Bridge.global.System.IComparable$1(r),Bridge.global.System.IEquatable$1(r)])};e("System.Byte",0,255,3),e("System.SByte",-128,127,3),e("System.Int16",-32768,32767,5),e("System.UInt16",0,65535,5),e("System.Int32",-2147483648,2147483647,10),e("System.UInt32",0,4294967295,10)}(),Bridge.define("Bridge.Int",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{$number:!0,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER||-(Math.pow(2,53)-1),$is:function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e,0)===e},getDefaultValue:function(){return 0},format:function(e,t,n,i){var r,o,s,a,l,u,d,c,g,m=(n||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),h=m.numberDecimalSeparator,p=(m.numberGroupSeparator,e instanceof Bridge.global.System.Decimal),f=e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64,y=p||f?!e.isZero()&&e.isNegative():e<0;if(!f&&(p?!e.isFinite():!isFinite(e)))return Number.NEGATIVE_INFINITY===e||p&&y?m.negativeInfinitySymbol:isNaN(e)?m.nanSymbol:m.positiveInfinitySymbol;if(t||(t="G"),r=t.match(/^([a-zA-Z])(\d*)$/))switch(a=r[1].toUpperCase(),o=parseInt(r[2],10),a){case"D":return this.defaultFormat(e,isNaN(o)?1:o,0,0,m,!0);case"F":case"N":return isNaN(o)&&(o=m.numberDecimalDigits),this.defaultFormat(e,1,o,o,m,"F"===a);case"G":case"E":for(var S,b,I=0,C=p||f?f&&e.eq(Bridge.global.System.Int64.MinValue)?Bridge.global.System.Int64(e.value.toUnsigned()):e.abs():Math.abs(e),_=r[1],v=3;p||f?C.gte(10):C>=10;)p||f?C=C.div(10):C/=10,I++;for(;p||f?C.ne(0)&&C.lt(1):0!==C&&C<1;)p||f?C=C.mul(10):C*=10,I--;if("G"===a){if((l=isNaN(o))&&(o=p?29:f?e instanceof Bridge.global.System.Int64?19:20:i&&i.precision?i.precision:15),I>-5&&I0?I+1:1),this.defaultFormat(e,1,S,b,m,!0);_="G"===_?"E":"e",v=2,S=0,b=(o||15)-1}else S=b=isNaN(o)?6:o;return I>=0?_+=m.positiveSign:(_+=m.negativeSign,I=-I),y&&(p||f?C=C.mul(-1):C*=-1),this.defaultFormat(C,1,S,b,m)+_+this.defaultFormat(I,v,0,0,m,!0);case"P":return isNaN(o)&&(o=m.percentDecimalDigits),this.defaultFormat(100*e,1,o,o,m,!1,"percent");case"X":for(u=p?e.round().value.toHex().substr(2):f?e.toString(16):Math.round(e).toString(16),"X"===r[1]&&(u=u.toUpperCase()),o-=u.length;o-- >0;)u="0"+u;return u;case"C":return isNaN(o)&&(o=m.currencyDecimalDigits),this.defaultFormat(e,1,o,o,m,!1,"currency");case"R":return d=p||f?e.toString():""+e,"."!==h&&(d=d.replace(".",h)),d.replace("e","E")}if(-1!==t.indexOf(",.")||Bridge.global.System.String.endsWith(t,",")){for(c=0,-1===(g=t.indexOf(",."))&&(g=t.length-1);g>-1&&","===t.charAt(g);)c++,g--;p||f?e=e.div(Math.pow(1e3,c)):e/=Math.pow(1e3,c)}return-1!==t.indexOf("%")&&(p||f?e=e.mul(100):e*=100),-1!==t.indexOf("‰")&&(p||f?e=e.mul(1e3):e*=1e3),s=t.split(";"),(p||f?e.lt(0):e<0)&&s.length>1?(p||f?e=e.mul(-1):e*=-1,t=s[1]):t=s[(p||f?e.ne(0):!e)&&s.length>2?2:0],this.customFormat(e,t,m,!t.match(/^[^\.]*[0#],[0#]/))},defaultFormat:function(e,t,n,i,r,o,s){s=s||"number";var a,l,u,d,c,g,m,h,p,f,y,S,b=(r||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),I=b[s+"GroupSizes"],C="",_=e instanceof Bridge.global.System.Decimal,v=e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64,T=_||v?!e.isZero()&&e.isNegative():e<0;if(Math.pow(10,i),S=(a=_?e.abs().toDecimalPlaces(i).toFixed():v?e.eq(Bridge.global.System.Int64.MinValue)?e.value.toUnsigned().toString():e.abs().toString():""+ +Math.abs(e).toFixed(i)).split("").every(function(e){return"0"===e||"."===e}),(l=a.indexOf("."))>0&&(c=b[s+"DecimalSeparator"]+a.substr(l+1),a=a.substr(0,l)),a.lengthi&&(c=c.substr(0,i+1))):n>0&&(c=b[s+"DecimalSeparator"]+Array(n+1).join("0")),d=I[u=0],a.length=0?(b&&this.addGroup(e.substr(0,s),m),this.addGroup(e.charAt(s),m)):s>=r-p&&this.addGroup("0",m),b=0):(y-- >0||s=e.length?"0":e.charAt(s),m),C=m.buffer,s++)):"."===o?(T||_||(C+=e.substr(0,r),T=!0),(e.length>++s||y>0)&&(v=!0,C+=n[g+"DecimalSeparator"])):","!==o&&(C+=o);return I&&!c&&(C="-"+C),C},addGroup:function(e,t){for(var n=t.buffer,i=t.sep,r=t.groupIndex,o=0,s=e.length;o1&&r--%3==1&&(n+=i);t.buffer=n,t.groupIndex=r},parseFloat:function(e,t){var n={};return Bridge.Int.tryParseFloat(e,t,n,!1),n.v},tryParseFloat:function(e,t,n,i){var r,o,s,a;if(n.v=0,null==i&&(i=!0),null==e){if(i)return!1;throw new Bridge.global.System.ArgumentNullException.$ctor1("s")}e=e.trim();var l=(t||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),u=l.numberDecimalSeparator,d=l.numberGroupSeparator,c="Input string was not in a correct format.",g=e.indexOf(u),m=d?e.indexOf(d):-1;if(g>-1&&(g-1&&g-1)){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(c)}if("."!==u&&"."!==d&&e.indexOf(".")>-1){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(c)}if(m>-1){for(r="",s=0;s1){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(c)}}if(a=parseFloat(e.replace(u,".")),isNaN(a)){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(c)}return n.v=a,!0},parseInt:function(e,t,n,i){if(i=i||10,null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(i<=10&&!/^[+-]?[0-9]+$/.test(e)||16==i&&!/^[+-]?[0-9A-F]+$/gi.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var r=parseInt(e,i);if(isNaN(r))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");if(rn)throw new Bridge.global.System.OverflowException;return r},tryParseInt:function(e,t,n,i,r){return t.v=0,!((r=r||10)<=10&&!/^[+-]?[0-9]+$/.test(e)||16==r&&!/^[+-]?[0-9A-F]+$/gi.test(e)||(t.v=parseInt(e,r),(t.vi)&&(t.v=0,1)))},isInfinite:function(e){return e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY},trunc:function(e){return Bridge.isNumber(e)?e>0?Math.floor(e):Math.ceil(e):Bridge.Int.isInfinite(e)?e:null},div:function(e,t){if(null==e||null==t)return null;if(0===t)throw new Bridge.global.System.DivideByZeroException;return this.trunc(e/t)},mod:function(e,t){if(null==e||null==t)return null;if(0===t)throw new Bridge.global.System.DivideByZeroException;return e%t},check:function(e,t){if(Bridge.global.System.Int64.is64Bit(e))return Bridge.global.System.Int64.check(e,t);if(e instanceof Bridge.global.System.Decimal)return Bridge.global.System.Decimal.toInt(e,t);if(Bridge.isNumber(e)){if(Bridge.global.System.Int64.is64BitType(t)){if(t===Bridge.global.System.UInt64&&e<0)throw new Bridge.global.System.OverflowException;return t===Bridge.global.System.Int64?Bridge.global.System.Int64(e):Bridge.global.System.UInt64(e)}if(!t.$is(e))throw new Bridge.global.System.OverflowException}return Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.is64BitType(t)?t.MinValue:t.min:e},sxb:function(e){return Bridge.isNumber(e)?e|(128&e?4294967040:0):Bridge.Int.isInfinite(e)?Bridge.global.System.SByte.min:null},sxs:function(e){return Bridge.isNumber(e)?e|(32768&e?4294901760:0):Bridge.Int.isInfinite(e)?Bridge.global.System.Int16.min:null},clip8:function(e){return Bridge.isNumber(e)?Bridge.Int.sxb(255&e):Bridge.Int.isInfinite(e)?Bridge.global.System.SByte.min:null},clipu8:function(e){return Bridge.isNumber(e)?255&e:Bridge.Int.isInfinite(e)?Bridge.global.System.Byte.min:null},clip16:function(e){return Bridge.isNumber(e)?Bridge.Int.sxs(65535&e):Bridge.Int.isInfinite(e)?Bridge.global.System.Int16.min:null},clipu16:function(e){return Bridge.isNumber(e)?65535&e:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt16.min:null},clip32:function(e){return Bridge.isNumber(e)?0|e:Bridge.Int.isInfinite(e)?Bridge.global.System.Int32.min:null},clipu32:function(e){return Bridge.isNumber(e)?e>>>0:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt32.min:null},clip64:function(e){return Bridge.isNumber(e)?Bridge.global.System.Int64(Bridge.Int.trunc(e)):Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.MinValue:null},clipu64:function(e){return Bridge.isNumber(e)?Bridge.global.System.UInt64(Bridge.Int.trunc(e)):Bridge.Int.isInfinite(e)?Bridge.global.System.UInt64.MinValue:null},sign:function(e){return Bridge.isNumber(e)?0===e?0:e<0?-1:1:null},$mul:Math.imul||function(e,t){var n=65535&e,i=65535&t;return n*i+((e>>>16&65535)*i+n*(t>>>16&65535)<<16>>>0)|0},mul:function(e,t,n){return null==e||null==t?null:(n&&Bridge.Int.check(e*t,Bridge.global.System.Int32),Bridge.Int.$mul(e,t))},umul:function(e,t,n){return null==e||null==t?null:(n&&Bridge.Int.check(e*t,Bridge.global.System.UInt32),Bridge.Int.$mul(e,t)>>>0)}}}),Bridge.Int.$kind="",Bridge.Class.addExtend(Bridge.Int,[Bridge.global.System.IComparable$1(Bridge.Int),Bridge.global.System.IEquatable$1(Bridge.Int)]),Bridge.define("System.Double",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{min:-Number.MAX_VALUE,max:Number.MAX_VALUE,precision:15,$number:!0,$is:function(e){return"number"==typeof e},getDefaultValue:function(){return 0},parse:function(e,t){return Bridge.Int.parseFloat(e,t)},tryParse:function(e,t,n){return Bridge.Int.tryParseFloat(e,t,n)},format:function(e,t,n){return Bridge.Int.format(e,t||"G",n,Bridge.global.System.Double)},equals:function(e,t){return!!(Bridge.is(e,Bridge.global.System.Double)&&Bridge.is(t,Bridge.global.System.Double)&&(e=Bridge.unbox(e,!0),t=Bridge.unbox(t,!0),isNaN(e)&&isNaN(t)||e===t))},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:function(e){var t=Bridge.unbox(e,!0);return 0===t?0:t===Number.POSITIVE_INFINITY?2146435072:t===Number.NEGATIVE_INFINITY?4293918720:Bridge.getHashCode(t.toExponential())}}}),Bridge.global.System.Double.$kind="",Bridge.Class.addExtend(Bridge.global.System.Double,[Bridge.global.System.IComparable$1(Bridge.global.System.Double),Bridge.global.System.IEquatable$1(Bridge.global.System.Double)]),Bridge.define("System.Single",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{min:-3.4028234663852886e38,max:3.4028234663852886e38,precision:7,$number:!0,$is:Bridge.global.System.Double.$is,getDefaultValue:Bridge.global.System.Double.getDefaultValue,parse:Bridge.global.System.Double.parse,tryParse:Bridge.global.System.Double.tryParse,format:function(e,t,n){return Bridge.Int.format(e,t||"G",n,Bridge.global.System.Single)},equals:function(e,t){return!!(Bridge.is(e,Bridge.global.System.Single)&&Bridge.is(t,Bridge.global.System.Single)&&(e=Bridge.unbox(e,!0),t=Bridge.unbox(t,!0),isNaN(e)&&isNaN(t)||e===t))},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:Bridge.global.System.Double.getHashCode}}),Bridge.global.System.Single.$kind="",Bridge.Class.addExtend(Bridge.global.System.Single,[Bridge.global.System.IComparable$1(Bridge.global.System.Single),Bridge.global.System.IEquatable$1(Bridge.global.System.Single)]),function(e){function t(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function n(e){return!0===(e&&e.__isLong__)}function i(e,t){var n,i;if(t){if((i=0<=(e>>>=0)&&256>e)&&(n=u[e]))return n;n=o(e,0>(0|e)?-1:0,!0),i&&(u[e]=n)}else{if((i=-128<=(e|=0)&&128>e)&&(n=l[e]))return n;n=o(e,0>e?-1:0,!1),i&&(l[e]=n)}return n}function r(e,t){if(isNaN(e)||!isFinite(e))return t?c:C;if(t){if(0>e)return c;if(e>=S)return f}else{if(e<=-b)return y;if(e+1>=b)return p}return 0>e?r(-e,t).neg():o(e%4294967296|0,e/4294967296|0,t)}function o(e,n,i){return new t(e,n,i)}function s(e,t,n){var i,o,a,l,u;if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return C;if("number"==typeof t?(n=t,t=!1):t=!!t,2>(n=n||10)||36l?(l=r(d(n,l)),o=o.mul(l).add(r(u))):o=(o=o.mul(i)).add(r(u));return o.unsigned=t,o}function a(e){return e instanceof t?e:"number"==typeof e?r(e):"string"==typeof e?s(e):o(e.low,e.high,e.unsigned)}var l,u,d,c,g,m,h,p,f,y;e.Bridge.$Long=t,t.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),t.isLong=n,l={},u={},t.fromInt=i,t.fromNumber=r,t.fromBits=o,d=Math.pow,t.fromString=s,t.fromValue=a;var S=0x10000000000000000,b=S/2,I=i(16777216),C=i(0);t.ZERO=C,c=i(0,!0),t.UZERO=c,g=i(1),t.ONE=g,m=i(1,!0),t.UONE=m,h=i(-1),t.NEG_ONE=h,p=o(-1,2147483647,!1),t.MAX_VALUE=p,f=o(-1,-1,!0),t.MAX_UNSIGNED_VALUE=f,y=o(0,-2147483648,!1),t.MIN_VALUE=y,(e=t.prototype).toInt=function(){return this.unsigned?this.low>>>0:this.low},e.toNumber=function(){return this.unsigned?4294967296*(this.high>>>0)+(this.low>>>0):4294967296*this.high+(this.low>>>0)},e.toString=function(e){if(2>(e=e||10)||36>>0).toString(e);if((t=o).isZero())return s+i;for(;6>s.length;)s="0"+s;i=""+s+i}},e.getHighBits=function(){return this.high},e.getHighBitsUnsigned=function(){return this.high>>>0},e.getLowBits=function(){return this.low},e.getLowBitsUnsigned=function(){return this.low>>>0},e.getNumBitsAbs=function(){if(this.isNegative())return this.eq(y)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;0this.high},e.isPositive=function(){return this.unsigned||0<=this.high},e.isOdd=function(){return 1==(1&this.low)},e.isEven=function(){return 0==(1&this.low)},e.equals=function(e){return n(e)||(e=a(e)),(this.unsigned===e.unsigned||1!=this.high>>>31||1!=e.high>>>31)&&this.high===e.high&&this.low===e.low},e.eq=e.equals,e.notEquals=function(e){return!this.eq(e)},e.neq=e.notEquals,e.lessThan=function(e){return 0>this.comp(e)},e.lt=e.lessThan,e.lessThanOrEqual=function(e){return 0>=this.comp(e)},e.lte=e.lessThanOrEqual,e.greaterThan=function(e){return 0>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},e.comp=e.compare,e.negate=function(){return!this.unsigned&&this.eq(y)?y:this.not().add(g)},e.neg=e.negate,e.add=function(e){n(e)||(e=a(e));var t,i=this.high>>>16,r=65535&this.high,s=this.low>>>16,l=e.high>>>16,u=65535&e.high,d=e.low>>>16;return e=0+((t=(65535&this.low)+(65535&e.low)+0)>>>16),s=0+((e+=s+d)>>>16),o((65535&e)<<16|65535&t,(r=(r=0+((s+=r+u)>>>16))+(i+l)&65535)<<16|65535&s,this.unsigned)},e.subtract=function(e){return n(e)||(e=a(e)),this.add(e.neg())},e.sub=e.subtract,e.multiply=function(e){var t,i,s,l;if(this.isZero()||(n(e)||(e=a(e)),e.isZero()))return C;if(this.eq(y))return e.isOdd()?y:C;if(e.eq(y))return this.isOdd()?y:C;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I)&&e.lt(I))return r(this.toNumber()*e.toNumber(),this.unsigned);var u=this.high>>>16,d=65535&this.high,c=this.low>>>16,g=65535&this.low,m=e.high>>>16,h=65535&e.high,p=e.low>>>16;return s=0+((l=0+g*(e=65535&e.low))>>>16),i=0+((s+=c*e)>>>16),i+=(s=(65535&s)+g*p)>>>16,t=0+((i+=d*e)>>>16),t+=(i=(65535&i)+c*p)>>>16,i&=65535,o((s&=65535)<<16|65535&l,(t=(t+=(i+=g*h)>>>16)+(u*e+d*p+c*h+g*m)&65535)<<16|(i&=65535),this.unsigned)},e.mul=e.multiply,e.divide=function(e){var t,i,o;if(n(e)||(e=a(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?c:C;if(this.unsigned)e.unsigned||(e=e.toUnsigned());else{if(this.eq(y))return e.eq(g)||e.eq(h)?y:e.eq(y)?g:(t=this.shr(1).div(e).shl(1)).eq(C)?e.isNegative()?g:h:(i=this.sub(e.mul(t)),t.add(i.div(e)));if(e.eq(y))return this.unsigned?c:C;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg()}if(this.unsigned){if(e.gt(this))return c;if(e.gt(this.shru(1)))return m;o=c}else o=C;for(i=this;i.gte(e);){t=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var s=48>=(s=Math.ceil(Math.log(t)/Math.LN2))?1:d(2,s-48),l=r(t),u=l.mul(e);u.isNegative()||u.gt(i);)u=(l=r(t-=s,this.unsigned)).mul(e);l.isZero()&&(l=g),o=o.add(l),i=i.sub(u)}return o},e.div=e.divide,e.modulo=function(e){return n(e)||(e=a(e)),this.sub(this.div(e).mul(e))},e.mod=e.modulo,e.not=function(){return o(~this.low,~this.high,this.unsigned)},e.and=function(e){return n(e)||(e=a(e)),o(this.low&e.low,this.high&e.high,this.unsigned)},e.or=function(e){return n(e)||(e=a(e)),o(this.low|e.low,this.high|e.high,this.unsigned)},e.xor=function(e){return n(e)||(e=a(e)),o(this.low^e.low,this.high^e.high,this.unsigned)},e.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:32>e?o(this.low<>>32-e,this.unsigned):o(0,this.low<e?o(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):o(this.high>>e-32,0<=this.high?0:-1,this.unsigned)},e.shr=e.shiftRight,e.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return 32>e?o(this.low>>>e|t<<32-e,t>>>e,this.unsigned):o(32===e?t:t>>>e-32,0,this.unsigned)},e.shru=e.shiftRightUnsigned,e.toSigned=function(){return this.unsigned?o(this.low,this.high,!1):this},e.toUnsigned=function(){return this.unsigned?this:o(this.low,this.high,!0)}}(Bridge.global),Bridge.global.System.Int64=function(e){if(this.constructor!==Bridge.global.System.Int64)return new Bridge.global.System.Int64(e);Bridge.hasValue(e)||(e=0),this.T=Bridge.global.System.Int64,this.unsigned=!1,this.value=Bridge.global.System.Int64.getValue(e)},Bridge.global.System.Int64.$number=!0,Bridge.global.System.Int64.TWO_PWR_16_DBL=65536,Bridge.global.System.Int64.TWO_PWR_32_DBL=Bridge.global.System.Int64.TWO_PWR_16_DBL*Bridge.global.System.Int64.TWO_PWR_16_DBL,Bridge.global.System.Int64.TWO_PWR_64_DBL=Bridge.global.System.Int64.TWO_PWR_32_DBL*Bridge.global.System.Int64.TWO_PWR_32_DBL,Bridge.global.System.Int64.TWO_PWR_63_DBL=Bridge.global.System.Int64.TWO_PWR_64_DBL/2,Bridge.global.System.Int64.$$name="System.Int64",Bridge.global.System.Int64.prototype.$$name="System.Int64",Bridge.global.System.Int64.$kind="struct",Bridge.global.System.Int64.prototype.$kind="struct",Bridge.global.System.Int64.$$inherits=[],Bridge.Class.addExtend(Bridge.global.System.Int64,[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.IComparable$1(Bridge.global.System.Int64),Bridge.global.System.IEquatable$1(Bridge.global.System.Int64)]),Bridge.global.System.Int64.$is=function(e){return e instanceof Bridge.global.System.Int64},Bridge.global.System.Int64.is64Bit=function(e){return e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64},Bridge.global.System.Int64.is64BitType=function(e){return e===Bridge.global.System.Int64||e===Bridge.global.System.UInt64},Bridge.global.System.Int64.getDefaultValue=function(){return Bridge.global.System.Int64.Zero},Bridge.global.System.Int64.getValue=function(e){return Bridge.hasValue(e)?e instanceof Bridge.$Long?e:e instanceof Bridge.global.System.Int64?e.value:e instanceof Bridge.global.System.UInt64?e.value.toSigned():Bridge.isArray(e)?new Bridge.$Long(e[0],e[1]):Bridge.isString(e)?Bridge.$Long.fromString(e):Bridge.isNumber(e)?e+1>=Bridge.global.System.Int64.TWO_PWR_63_DBL?new Bridge.global.System.UInt64(e).value.toSigned():Bridge.$Long.fromNumber(e):e instanceof Bridge.global.System.Decimal?Bridge.$Long.fromString(e.toString()):Bridge.$Long.fromValue(e):null},Bridge.global.System.Int64.create=function(e){return Bridge.hasValue(e)?e instanceof Bridge.global.System.Int64?e:new Bridge.global.System.Int64(e):null},Bridge.global.System.Int64.lift=function(e){return Bridge.hasValue(e)?Bridge.global.System.Int64.create(e):null},Bridge.global.System.Int64.toNumber=function(e){return e?e.toNumber():null},Bridge.global.System.Int64.prototype.toNumberDivided=function(e){var t=this.div(e),n=this.mod(e).toNumber()/e;return t.toNumber()+n},Bridge.global.System.Int64.prototype.toJSON=function(){return this.gt(Bridge.Int.MAX_SAFE_INTEGER)||this.lt(Bridge.Int.MIN_SAFE_INTEGER)?this.toString():this.toNumber()},Bridge.global.System.Int64.prototype.toString=function(e,t){return e||t?Bridge.isNumber(e)&&!t?this.value.toString(e):Bridge.Int.format(this,e,t):this.value.toString()},Bridge.global.System.Int64.prototype.format=function(e,t){return Bridge.Int.format(this,e,t)},Bridge.global.System.Int64.prototype.isNegative=function(){return this.value.isNegative()},Bridge.global.System.Int64.prototype.abs=function(){if(this.T===Bridge.global.System.Int64&&this.eq(Bridge.global.System.Int64.MinValue))throw new Bridge.global.System.OverflowException;return new this.T(this.value.isNegative()?this.value.neg():this.value)},Bridge.global.System.Int64.prototype.compareTo=function(e){return this.value.compare(this.T.getValue(e))},Bridge.global.System.Int64.prototype.add=function(e,t){var n=this.T.getValue(e),i=new this.T(this.value.add(n));if(t){var r=this.value.isNegative(),o=n.isNegative(),s=i.value.isNegative();if(r&&o&&!s||!r&&!o&&s||this.T===Bridge.global.System.UInt64&&i.lt(Bridge.global.System.UInt64.max(this,n)))throw new Bridge.global.System.OverflowException}return i},Bridge.global.System.Int64.prototype.sub=function(e,t){var n=this.T.getValue(e),i=new this.T(this.value.sub(n));if(t){var r=this.value.isNegative(),o=n.isNegative(),s=i.value.isNegative();if(r&&!o&&!s||!r&&o&&s||this.T===Bridge.global.System.UInt64&&this.value.lt(n))throw new Bridge.global.System.OverflowException}return i},Bridge.global.System.Int64.prototype.isZero=function(){return this.value.isZero()},Bridge.global.System.Int64.prototype.mul=function(e,t){var n,i=this.T.getValue(e),r=new this.T(this.value.mul(i));if(t){var o=this.sign(),s=i.isZero()?0:i.isNegative()?-1:1,a=r.sign();if(this.T===Bridge.global.System.Int64){if(this.eq(Bridge.global.System.Int64.MinValue)||this.eq(Bridge.global.System.Int64.MaxValue)){if(i.neq(1)&&i.neq(0))throw new Bridge.global.System.OverflowException;return r}if(i.eq(Bridge.$Long.MIN_VALUE)||i.eq(Bridge.$Long.MAX_VALUE)){if(this.neq(1)&&this.neq(0))throw new Bridge.global.System.OverflowException;return r}if(-1===o&&-1===s&&1!==a||1===o&&1===s&&1!==a||-1===o&&1===s&&-1!==a||1===o&&-1===s&&-1!==a)throw new Bridge.global.System.OverflowException;if((n=r.abs()).lt(this.abs())||n.lt(Bridge.global.System.Int64(i).abs()))throw new Bridge.global.System.OverflowException}else{if(this.eq(Bridge.global.System.UInt64.MaxValue)){if(i.neq(1)&&i.neq(0))throw new Bridge.global.System.OverflowException;return r}if(i.eq(Bridge.$Long.MAX_UNSIGNED_VALUE)){if(this.neq(1)&&this.neq(0))throw new Bridge.global.System.OverflowException;return r}if((n=r.abs()).lt(this.abs())||n.lt(Bridge.global.System.Int64(i).abs()))throw new Bridge.global.System.OverflowException}}return r},Bridge.global.System.Int64.prototype.div=function(e){return new this.T(this.value.div(this.T.getValue(e)))},Bridge.global.System.Int64.prototype.mod=function(e){return new this.T(this.value.mod(this.T.getValue(e)))},Bridge.global.System.Int64.prototype.neg=function(e){if(e&&this.T===Bridge.global.System.Int64&&this.eq(Bridge.global.System.Int64.MinValue))throw new Bridge.global.System.OverflowException;return new this.T(this.value.neg())},Bridge.global.System.Int64.prototype.inc=function(e){return this.add(1,e)},Bridge.global.System.Int64.prototype.dec=function(e){return this.sub(1,e)},Bridge.global.System.Int64.prototype.sign=function(){return this.value.isZero()?0:this.value.isNegative()?-1:1},Bridge.global.System.Int64.prototype.clone=function(){return new this.T(this)},Bridge.global.System.Int64.prototype.ne=function(e){return this.value.neq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.neq=function(e){return this.value.neq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.eq=function(e){return this.value.eq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.lt=function(e){return this.value.lt(this.T.getValue(e))},Bridge.global.System.Int64.prototype.lte=function(e){return this.value.lte(this.T.getValue(e))},Bridge.global.System.Int64.prototype.gt=function(e){return this.value.gt(this.T.getValue(e))},Bridge.global.System.Int64.prototype.gte=function(e){return this.value.gte(this.T.getValue(e))},Bridge.global.System.Int64.prototype.equals=function(e){return this.value.eq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.equalsT=function(e){return this.equals(e)},Bridge.global.System.Int64.prototype.getHashCode=function(){return 397*(397*this.sign()+this.value.high|0)+this.value.low|0},Bridge.global.System.Int64.prototype.toNumber=function(){return this.value.toNumber()},Bridge.global.System.Int64.parse=function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(!/^[+-]?[0-9]+$/.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var t=new Bridge.global.System.Int64(e);if(Bridge.global.System.String.trimStartZeros(e)!==t.toString())throw new Bridge.global.System.OverflowException;return t},Bridge.global.System.Int64.tryParse=function(e,t){try{return null!=e&&/^[+-]?[0-9]+$/.test(e)?(t.v=new Bridge.global.System.Int64(e),Bridge.global.System.String.trimStartZeros(e)===t.v.toString()||(t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1)):(t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1)}catch(e){return t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1}},Bridge.global.System.Int64.divRem=function(e,t,n){e=Bridge.global.System.Int64(e),t=Bridge.global.System.Int64(t);var i=e.mod(t);return n.v=i,e.sub(i).div(t)},Bridge.global.System.Int64.min=function(){for(var e,t=[],n=0,i=arguments.length;n>>0:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt32.min:null},Bridge.global.System.Int64.clip64=function(e){return e?new Bridge.global.System.Int64(e.value.toSigned()):Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.MinValue:null},Bridge.global.System.Int64.clipu64=function(e){return e?new Bridge.global.System.UInt64(e.value.toUnsigned()):Bridge.Int.isInfinite(e)?Bridge.global.System.UInt64.MinValue:null},Bridge.global.System.Int64.Zero=Bridge.global.System.Int64(Bridge.$Long.ZERO),Bridge.global.System.Int64.MinValue=Bridge.global.System.Int64(Bridge.$Long.MIN_VALUE),Bridge.global.System.Int64.MaxValue=Bridge.global.System.Int64(Bridge.$Long.MAX_VALUE),Bridge.global.System.Int64.precision=19,Bridge.global.System.UInt64=function(e){if(this.constructor!==Bridge.global.System.UInt64)return new Bridge.global.System.UInt64(e);Bridge.hasValue(e)||(e=0),this.T=Bridge.global.System.UInt64,this.unsigned=!0,this.value=Bridge.global.System.UInt64.getValue(e,!0)},Bridge.global.System.UInt64.$number=!0,Bridge.global.System.UInt64.$$name="System.UInt64",Bridge.global.System.UInt64.prototype.$$name="System.UInt64",Bridge.global.System.UInt64.$kind="struct",Bridge.global.System.UInt64.prototype.$kind="struct",Bridge.global.System.UInt64.$$inherits=[],Bridge.Class.addExtend(Bridge.global.System.UInt64,[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.IComparable$1(Bridge.global.System.UInt64),Bridge.global.System.IEquatable$1(Bridge.global.System.UInt64)]),Bridge.global.System.UInt64.$is=function(e){return e instanceof Bridge.global.System.UInt64},Bridge.global.System.UInt64.getDefaultValue=function(){return Bridge.global.System.UInt64.Zero},Bridge.global.System.UInt64.getValue=function(e){return Bridge.hasValue(e)?e instanceof Bridge.$Long?e:e instanceof Bridge.global.System.UInt64?e.value:e instanceof Bridge.global.System.Int64?e.value.toUnsigned():Bridge.isArray(e)?new Bridge.$Long(e[0],e[1],!0):Bridge.isString(e)?Bridge.$Long.fromString(e,!0):Bridge.isNumber(e)?e<0?new Bridge.global.System.Int64(e).value.toUnsigned():Bridge.$Long.fromNumber(e,!0):e instanceof Bridge.global.System.Decimal?Bridge.$Long.fromString(e.toString(),!0):Bridge.$Long.fromValue(e):null},Bridge.global.System.UInt64.create=function(e){return Bridge.hasValue(e)?e instanceof Bridge.global.System.UInt64?e:new Bridge.global.System.UInt64(e):null},Bridge.global.System.UInt64.lift=function(e){return Bridge.hasValue(e)?Bridge.global.System.UInt64.create(e):null},Bridge.global.System.UInt64.prototype.toString=Bridge.global.System.Int64.prototype.toString,Bridge.global.System.UInt64.prototype.format=Bridge.global.System.Int64.prototype.format,Bridge.global.System.UInt64.prototype.isNegative=Bridge.global.System.Int64.prototype.isNegative,Bridge.global.System.UInt64.prototype.abs=Bridge.global.System.Int64.prototype.abs,Bridge.global.System.UInt64.prototype.compareTo=Bridge.global.System.Int64.prototype.compareTo,Bridge.global.System.UInt64.prototype.add=Bridge.global.System.Int64.prototype.add,Bridge.global.System.UInt64.prototype.sub=Bridge.global.System.Int64.prototype.sub,Bridge.global.System.UInt64.prototype.isZero=Bridge.global.System.Int64.prototype.isZero,Bridge.global.System.UInt64.prototype.mul=Bridge.global.System.Int64.prototype.mul,Bridge.global.System.UInt64.prototype.div=Bridge.global.System.Int64.prototype.div,Bridge.global.System.UInt64.prototype.toNumberDivided=Bridge.global.System.Int64.prototype.toNumberDivided,Bridge.global.System.UInt64.prototype.mod=Bridge.global.System.Int64.prototype.mod,Bridge.global.System.UInt64.prototype.neg=Bridge.global.System.Int64.prototype.neg,Bridge.global.System.UInt64.prototype.inc=Bridge.global.System.Int64.prototype.inc,Bridge.global.System.UInt64.prototype.dec=Bridge.global.System.Int64.prototype.dec,Bridge.global.System.UInt64.prototype.sign=Bridge.global.System.Int64.prototype.sign,Bridge.global.System.UInt64.prototype.clone=Bridge.global.System.Int64.prototype.clone,Bridge.global.System.UInt64.prototype.ne=Bridge.global.System.Int64.prototype.ne,Bridge.global.System.UInt64.prototype.neq=Bridge.global.System.Int64.prototype.neq,Bridge.global.System.UInt64.prototype.eq=Bridge.global.System.Int64.prototype.eq,Bridge.global.System.UInt64.prototype.lt=Bridge.global.System.Int64.prototype.lt,Bridge.global.System.UInt64.prototype.lte=Bridge.global.System.Int64.prototype.lte,Bridge.global.System.UInt64.prototype.gt=Bridge.global.System.Int64.prototype.gt,Bridge.global.System.UInt64.prototype.gte=Bridge.global.System.Int64.prototype.gte,Bridge.global.System.UInt64.prototype.equals=Bridge.global.System.Int64.prototype.equals,Bridge.global.System.UInt64.prototype.equalsT=Bridge.global.System.Int64.prototype.equalsT,Bridge.global.System.UInt64.prototype.getHashCode=Bridge.global.System.Int64.prototype.getHashCode,Bridge.global.System.UInt64.prototype.toNumber=Bridge.global.System.Int64.prototype.toNumber,Bridge.global.System.UInt64.parse=function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(!/^[+-]?[0-9]+$/.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var t=new Bridge.global.System.UInt64(e);if(t.value.isNegative())throw new Bridge.global.System.OverflowException;if(Bridge.global.System.String.trimStartZeros(e)!==t.toString())throw new Bridge.global.System.OverflowException;return t},Bridge.global.System.UInt64.tryParse=function(e,t){try{return null!=e&&/^[+-]?[0-9]+$/.test(e)?(t.v=new Bridge.global.System.UInt64(e),t.v.isNegative()?(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1):Bridge.global.System.String.trimStartZeros(e)===t.v.toString()||(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1)):(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1)}catch(e){return t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1}},Bridge.global.System.UInt64.min=function(){for(var e,t=[],n=0,i=arguments.length;n0){for(o+=s,t=1;r>t;t++)i=e[t]+"",(n=Ee-i.length)&&(o+=p(n)),o+=i;s=e[t],(n=Ee-(i=s+"").length)&&(o+=p(n))}else if(0===s)return"0";for(;s%10==0;)s/=10;return o+s}function s(e,t,n){if(e!==~~e||t>e||e>n)throw Error(Ce+e)}function a(e,t,n,i){for(var r,o,s,a=e[0];a>=10;a/=10)--t;return--t<0?(t+=Ee,r=0):(r=Math.ceil((t+1)/Ee),t%=Ee),a=xe(10,Ee-t),s=e[r]%a|0,null==i?3>t?(0==t?s=s/100|0:1==t&&(s=s/10|0),o=4>n&&99999==s||n>3&&49999==s||5e4==s||0==s):o=(4>n&&s+1==a||n>3&&s+1==a/2)&&(e[r+1]/a/100|0)==xe(10,t-2)-1||(s==a/2||0==s)&&0==(e[r+1]/a/100|0):4>t?(0==t?s=s/1e3|0:1==t?s=s/100|0:2==t&&(s=s/10|0),o=(i||4>n)&&9999==s||!i&&n>3&&4999==s):o=((i||4>n)&&s+1==a||!i&&n>3&&s+1==a/2)&&(e[r+1]/a/1e3|0)==xe(10,t-3)-1,o}function l(e,t,n){for(var i,r,o=[0],s=0,a=e.length;a>s;){for(r=o.length;r--;)o[r]*=t;for(o[0]+=pe.indexOf(e.charAt(s++)),i=0;in-1&&(void 0===o[i+1]&&(o[i+1]=0),o[i+1]+=o[i]/n|0,o[i]%=n)}return o.reverse()}function u(e,t,n,i){var r,o,s,a,l,u,d,c,g,m=e.constructor;e:if(null!=t){if(!(c=e.d))return e;for(r=1,a=c[0];a>=10;a/=10)r++;if(0>(o=t-r))o+=Ee,s=t,l=(d=c[g=0])/xe(10,r-s-1)%10|0;else if((g=Math.ceil((o+1)/Ee))>=(a=c.length)){if(!i)break e;for(;a++<=g;)c.push(0);d=l=0,r=1,s=(o%=Ee)-Ee+1}else{for(d=a=c[g],r=1;a>=10;a/=10)r++;l=0>(s=(o%=Ee)-Ee+r)?0:d/xe(10,r-s-1)%10|0}if(i=i||0>t||void 0!==c[g+1]||(0>s?d:d%xe(10,r-s-1)),u=4>n?(l||i)&&(0==n||n==(e.s<0?3:2)):l>5||5==l&&(4==n||i||6==n&&(o>0?s>0?d/xe(10,r-s):0:c[g-1])%10&1||n==(e.s<0?8:7)),1>t||!c[0])return c.length=0,u?(t-=e.e+1,c[0]=xe(10,(Ee-t%Ee)%Ee),e.e=-t||0):c[0]=e.e=0,e;if(0==o?(c.length=g,a=1,g--):(c.length=g+1,a=xe(10,Ee-o),c[g]=s>0?(d/xe(10,r-s)%xe(10,s)|0)*a:0),u)for(;;){if(0==g){for(o=1,s=c[0];s>=10;s/=10)o++;for(s=c[0]+=a,a=1;s>=10;s/=10)a++;o!=a&&(e.e++,c[0]==Re&&(c[0]=1));break}if(c[g]+=a,c[g]!=Re)break;c[g--]=0,a=1}for(o=c.length;0===c[--o];)c.pop()}return be&&(e.e>m.maxE?(e.d=null,e.e=NaN):e.e0?s=s.charAt(0)+"."+s.slice(1)+p(i):a>1&&(s=s.charAt(0)+"."+s.slice(1)),s=s+(e.e<0?"e":"e+")+e.e):0>o?(s="0."+p(-o-1)+s,n&&(i=n-a)>0&&(s+=p(i))):o>=a?(s+=p(o+1-a),n&&(i=n-o-1)>0&&(s=s+"."+p(i))):((i=o+1)0&&(o+1===a&&(s+="."),s+=p(i))),s}function c(e,t){for(var n=1,i=e[0];i>=10;i/=10)n++;return n+t*Ee-1}function g(e,t,n){if(t>Ke)throw be=!0,n&&(e.precision=n),Error(_e);return u(new e(fe),t,1,!0)}function m(e,t,n){if(t>Ne)throw Error(_e);return u(new e(ye),t,n,!0)}function h(e){var t=e.length-1,n=t*Ee+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function p(e){for(var t="";e--;)t+="0";return t}function f(e,t,n,i){var r,o=new e(1),s=Math.ceil(i/Ee+4);for(be=!1;;){if(n%2&&w((o=o.times(t)).d,s)&&(r=!0),0===(n=Te(n/2))){n=o.d.length-1,r&&0===o.d[n]&&++o.d[n];break}w((t=t.times(t)).d,s)}return be=!0,o}function y(e){return 1&e.d[e.d.length-1]}function S(e,t,n){for(var i,r=new e(t[0]),o=0;++o17)return new p(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(be=!1,c=y):c=t,d=new p(.03125);e.e>-2;)e=e.times(d),h+=5;for(c+=i=Math.log(xe(2,h))/Math.LN10*2+5|0,n=s=l=new p(1),p.precision=c;;){if(s=u(s.times(e),c,1),n=n.times(++m),r((d=l.plus(ge(s,n,c,1))).d).slice(0,c)===r(l.d).slice(0,c)){for(o=h;o--;)l=u(l.times(l),c,1);if(null!=t)return p.precision=y,l;if(!(3>g&&a(l.d,c-i,f,g)))return u(l,p.precision=y,f,be=!0);p.precision=c+=10,n=s=d=new p(1),m=0,g++}l=d}}function I(e,t){var n,i,o,s,l,d,c,m,h,p,f,y=1,S=e,b=S.d,C=S.constructor,_=C.rounding,v=C.precision;if(S.s<0||!b||!b[0]||!S.e&&1==b[0]&&1==b.length)return new C(b&&!b[0]?-1/0:1!=S.s?NaN:b?0:S);if(null==t?(be=!1,h=v):h=t,C.precision=h+=10,i=(n=r(b)).charAt(0),!(Math.abs(s=S.e)<15e14))return m=g(C,h+2,v).times(s+""),S=I(new C(i+"."+n.slice(1)),h-10).plus(m),C.precision=v,null==t?u(S,v,_,be=!0):S;for(;7>i&&1!=i||1==i&&n.charAt(1)>3;)i=(n=r((S=S.times(e)).d)).charAt(0),y++;for(s=S.e,i>1?(S=new C("0."+n),s++):S=new C(i+"."+n.slice(1)),p=S,c=l=S=ge(S.minus(1),S.plus(1),h,1),f=u(S.times(S),h,1),o=3;;){if(l=u(l.times(f),h,1),r((m=c.plus(ge(l,new C(o),h,1))).d).slice(0,h)===r(c.d).slice(0,h)){if(c=c.times(2),0!==s&&(c=c.plus(g(C,h+2,v).times(s+""))),c=ge(c,new C(y),h,1),null!=t)return C.precision=v,c;if(!a(c.d,h-10,_,d))return u(c,C.precision=v,_,be=!0);C.precision=h+=10,m=l=S=ge(p.minus(1),p.plus(1),h,1),f=u(S.times(S),h,1),o=d=1}c=m,o+=2}}function C(e){return String(e.s*e.s/0)}function _(e,t){var n,i,r;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(i=t.search(/e/i))>0?(0>n&&(n=i),n+=+t.slice(i+1),t=t.substring(0,i)):0>n&&(n=t.length),i=0;48===t.charCodeAt(i);i++);for(r=t.length;48===t.charCodeAt(r-1);--r);if(t=t.slice(i,r)){if(r-=i,e.e=n=n-i-1,e.d=[],i=(n+1)%Ee,0>n&&(i+=Ee),r>i){for(i&&e.d.push(+t.slice(0,i)),r-=Ee;r>i;)e.d.push(+t.slice(i,i+=Ee));t=t.slice(i),i=Ee-t.length}else i-=r;for(;i--;)t+="0";e.d.push(+t),be&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e=0&&(m=m.replace(".",""),(p=new f(1)).e=m.length-a,p.d=l(d(p),10,r),p.e=p.d.length),o=c=(h=l(m,10,r)).length;0==h[--c];)h.pop();if(h[0]){if(0>a?o--:((e=new f(e)).d=h,e.e=o,h=(e=ge(e,p,n,i,0,r)).d,o=e.e,g=de),a=h[n],u=r/2,g=g||void 0!==h[n+1],g=4>i?(void 0!==a||g)&&(0===i||i===(e.s<0?3:2)):a>u||a===u&&(4===i||g||6===i&&1&h[n-1]||i===(e.s<0?8:7)),h.length=n,g)for(;++h[--n]>r-1;)h[n]=0,n||(++o,h.unshift(1));for(c=h.length;!h[c-1];--c);for(a=0,m="";c>a;a++)m+=pe.charAt(h[a]);if(y){if(c>1)if(16==t||8==t){for(a=16==t?4:3,--c;c%a;c++)m+="0";for(c=(h=l(m,r,t)).length;!h[c-1];--c);for(a=1,m="1.";c>a;a++)m+=pe.charAt(h[a])}else m=m.charAt(0)+"."+m.slice(1);m=m+(0>o?"p":"p+")+o}else if(0>o){for(;++o;)m="0"+m;m="0."+m}else if(++o>c)for(o-=c;o--;)m+="0";else c>o&&(m=m.slice(0,o)+"."+m.slice(o))}else m=y?"0p+0":"0";m=(16==t?"0x":2==t?"0b":8==t?"0o":"")+m}else m=C(e);return e.s<0?"-"+m:m}function w(e,t){if(e.length>t)return e.length=t,!0}function B(e){return new this(e).abs()}function D(e){return new this(e).acos()}function A(e){return new this(e).acosh()}function R(e,t){return new this(e).plus(t)}function E(e){return new this(e).asin()}function K(e){return new this(e).asinh()}function N(e){return new this(e).atan()}function P(e){return new this(e).atanh()}function O(e,t){e=new this(e),t=new this(t);var n,i=this.precision,r=this.rounding,o=i+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?m(this,i,r):new this(0)).s=e.s:!e.d||t.isZero()?(n=m(this,o,1).times(.5)).s=e.s:t.s<0?(this.precision=o,this.rounding=1,n=this.atan(ge(e,t,o,1)),t=m(this,o,1),this.precision=i,this.rounding=r,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(ge(e,t,o,1)):(n=m(this,o,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function $(e){return new this(e).cbrt()}function k(e){return u(e=new this(e),e.e+1,2)}function L(e){if(!e||"object"!=typeof e)throw Error(Ie+"Object expected");for(var t,n,i=["precision",1,he,"rounding",0,8,"toExpNeg",-me,0,"toExpPos",0,me,"maxE",0,me,"minE",-me,0,"modulo",0,9],r=0;r=i[r+1]&&n<=i[r+2]))throw Error(Ce+t+": "+n);this[t]=n}if(void 0!==(n=e[t="crypto"])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(Ce+t+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(ve);this[t]=!0}else this[t]=!1}return this}function M(e){return new this(e).cos()}function F(e){return new this(e).cosh()}function z(e,t){return new this(e).div(t)}function j(e){return new this(e).exp()}function U(e){return u(e=new this(e),e.e+1,3)}function G(){var e,t,n=new this(0);for(be=!1,e=0;eo;)(r=t[o])>=429e7?t[o]=crypto.getRandomValues(new Uint32Array(1))[0]:l[o++]=r%1e7;else{if(!crypto.randomBytes)throw Error(ve);for(t=crypto.randomBytes(i*=4);i>o;)(r=t[o]+(t[o+1]<<8)+(t[o+2]<<16)+((127&t[o+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,o):(l.push(r%1e7),o+=4);o=i/4}else for(;i>o;)l[o++]=1e7*Math.random()|0;for(i=l[--o],e%=Ee,i&&e&&(r=xe(10,Ee-e),l[o]=(i/r|0)*r);0===l[o];o--)l.pop();if(0>o)n=0,l=[0];else{for(n=-1;0===l[0];n-=Ee)l.shift();for(i=1,r=l[0];r>=10;r/=10)i++;Ee>i&&(n-=Ee-i)}return a.e=n,a.d=l,a}function te(e){return u(e=new this(e),e.e+1,this.rounding)}function ne(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function ie(e){return new this(e).sin()}function re(e){return new this(e).sinh()}function oe(e){return new this(e).sqrt()}function se(e,t){return new this(e).sub(t)}function ae(e){return new this(e).tan()}function le(e){return new this(e).tanh()}function ue(e){return u(e=new this(e),e.e+1,1)}var de,ce,ge,me=9e15,he=1e9,pe="0123456789abcdef",fe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",ye="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",Se={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-me,maxE:me,crypto:!1},be=!0,Ie="[DecimalError] ",Ce=Ie+"Invalid argument: ",_e=Ie+"Precision limit exceeded",ve=Ie+"crypto unavailable",Te=Math.floor,xe=Math.pow,we=/^0b([01]+(\.[01]*)?|\.[01]+)(p[+-]?\d+)?$/i,Be=/^0x([0-9a-f]+(\.[0-9a-f]*)?|\.[0-9a-f]+)(p[+-]?\d+)?$/i,De=/^0o([0-7]+(\.[0-7]*)?|\.[0-7]+)(p[+-]?\d+)?$/i,Ae=/^(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i,Re=1e7,Ee=7,Ke=fe.length-1,Ne=ye.length-1,Pe={};Pe.absoluteValue=Pe.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),u(e)},Pe.ceil=function(){return u(new this.constructor(this),this.e+1,2)},Pe.comparedTo=Pe.cmp=function(e){var t,n,i,r,o=this,s=o.d,a=(e=new o.constructor(e)).d,l=o.s,u=e.s;if(!s||!a)return l&&u?l!==u?l:s===a?0:!s^0>l?1:-1:NaN;if(!s[0]||!a[0])return s[0]?l:a[0]?-u:0;if(l!==u)return l;if(o.e!==e.e)return o.e>e.e^0>l?1:-1;for(i=s.length,t=0,n=(r=a.length)>i?i:r;n>t;++t)if(s[t]!==a[t])return s[t]>a[t]^0>l?1:-1;return i===r?0:i>r^0>l?1:-1},Pe.cosine=Pe.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+Ee,i.rounding=1,n=function(e,t){var n,i,r,o,s=t.d.length;for(32>s?(n=Math.ceil(s/3),i=Math.pow(4,-n).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=v(e,1,t.times(i),new e(1)),r=n;r--;)t=(o=t.times(t)).times(o).minus(o).times(8).plus(1);return e.precision-=n,t}(i,T(i,n)),i.precision=e,i.rounding=t,u(2==ce||3==ce?n.neg():n,e,t,!0)):new i(1):new i(NaN)},Pe.cubeRoot=Pe.cbrt=function(){var e,t,n,i,o,s,a,l,d,c,g=this,m=g.constructor;if(!g.isFinite()||g.isZero())return new m(g);for(be=!1,(s=g.s*Math.pow(g.s*g,1/3))&&Math.abs(s)!=1/0?i=new m(s.toString()):(n=r(g.d),(s=((e=g.e)-n.length+1)%3)&&(n+=1==s||-2==s?"0":"00"),s=Math.pow(n,1/3),e=Te((e+1)/3)-(e%3==(0>e?-1:2)),(i=new m(n=s==1/0?"5e"+e:(n=s.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=g.s),a=(e=m.precision)+3;;)if(c=(d=(l=i).times(l).times(l)).plus(g),i=ge(c.plus(g).times(l),c.plus(d),a+2,1),r(l.d).slice(0,a)===(n=r(i.d)).slice(0,a)){if("9999"!=(n=n.slice(a-3,a+1))&&(o||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(u(i,e+1,1),t=!i.times(i).times(i).eq(g));break}if(!o&&(u(l,e+1,0),l.times(l).times(l).eq(g))){i=l;break}a+=4,o=1}return be=!0,u(i,e,m.rounding,t)},Pe.decimalPlaces=Pe.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=((e=t.length-1)-Te(this.e/Ee))*Ee,e=t[e])for(;e%10==0;e/=10)n--;0>n&&(n=0)}return n},Pe.dividedBy=Pe.div=function(e){return ge(this,new this.constructor(e))},Pe.dividedToIntegerBy=Pe.divToInt=function(e){var t=this.constructor;return u(ge(this,new t(e),0,1,1),t.precision,t.rounding)},Pe.equals=Pe.eq=function(e){return 0===this.cmp(e)},Pe.floor=function(){return u(new this.constructor(this),this.e+1,3)},Pe.greaterThan=Pe.gt=function(e){return this.cmp(e)>0},Pe.greaterThanOrEqualTo=Pe.gte=function(e){var t=this.cmp(e);return 1==t||0===t},Pe.hyperbolicCosine=Pe.cosh=function(){var e,t,n,i,r,o,s,a,l=this,d=l.constructor,c=new d(1);if(!l.isFinite())return new d(l.s?1/0:NaN);if(l.isZero())return c;for(n=d.precision,i=d.rounding,d.precision=n+Math.max(l.e,l.sd())+4,d.rounding=1,32>(r=l.d.length)?(e=Math.ceil(r/3),t=Math.pow(4,-e).toString()):(e=16,t="2.3283064365386962890625e-10"),l=v(d,1,l.times(t),new d(1),!0),s=e,a=new d(8);s--;)o=l.times(l),l=c.minus(o.times(a.minus(o.times(a))));return u(l,d.precision=n,d.rounding=i,!0)},Pe.hyperbolicSine=Pe.sinh=function(){var e,t,n,i,r=this,o=r.constructor;if(!r.isFinite()||r.isZero())return new o(r);if(t=o.precision,n=o.rounding,o.precision=t+Math.max(r.e,r.sd())+4,o.rounding=1,3>(i=r.d.length))r=v(o,2,r,r,!0);else{e=(e=1.4*Math.sqrt(i))>16?16:0|e,r=v(o,2,r=r.times(Math.pow(5,-e)),r,!0);for(var s,a=new o(5),l=new o(16),d=new o(20);e--;)s=r.times(r),r=r.times(a.plus(s.times(l.times(s).plus(d))))}return o.precision=t,o.rounding=n,u(r,t,n,!0)},Pe.hyperbolicTangent=Pe.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,ge(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},Pe.inverseCosine=Pe.acos=function(){var e,t=this,n=t.constructor,i=t.abs().cmp(1),r=n.precision,o=n.rounding;return-1!==i?0===i?t.isNeg()?m(n,r,o):new n(0):new n(NaN):t.isZero()?m(n,r+4,o).times(.5):(n.precision=r+6,n.rounding=1,t=t.asin(),e=m(n,r+4,o).times(.5),n.precision=r,n.rounding=o,e.minus(t))},Pe.inverseHyperbolicCosine=Pe.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,be=!1,n=n.times(n).minus(1).sqrt().plus(n),be=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},Pe.inverseHyperbolicSine=Pe.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,be=!1,n=n.times(n).plus(1).sqrt().plus(n),be=!0,i.precision=e,i.rounding=t,n.ln())},Pe.inverseHyperbolicTangent=Pe.atanh=function(){var e,t,n,i,r=this,o=r.constructor;return r.isFinite()?r.e>=0?new o(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=o.precision,t=o.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?u(new o(r),e,t,!0):(o.precision=n=i-r.e,r=ge(r.plus(1),new o(1).minus(r),n+e,1),o.precision=e+4,o.rounding=1,r=r.ln(),o.precision=e,o.rounding=t,r.times(.5))):new o(NaN)},Pe.inverseSine=Pe.asin=function(){var e,t,n,i,r=this,o=r.constructor;return r.isZero()?new o(r):(t=r.abs().cmp(1),n=o.precision,i=o.rounding,-1!==t?0===t?((e=m(o,n+4,i).times(.5)).s=r.s,e):new o(NaN):(o.precision=n+6,o.rounding=1,r=r.div(new o(1).minus(r.times(r)).sqrt().plus(1)).atan(),o.precision=n,o.rounding=i,r.times(2)))},Pe.inverseTangent=Pe.atan=function(){var e,t,n,i,r,o,s,a,l,d=this,c=d.constructor,g=c.precision,h=c.rounding;if(d.isFinite()){if(d.isZero())return new c(d);if(d.abs().eq(1)&&Ne>=g+4)return(s=m(c,g+4,h).times(.25)).s=d.s,s}else{if(!d.s)return new c(NaN);if(Ne>=g+4)return(s=m(c,g+4,h).times(.5)).s=d.s,s}for(c.precision=a=g+10,c.rounding=1,e=n=Math.min(28,a/Ee+2|0);e;--e)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(be=!1,t=Math.ceil(a/Ee),i=1,l=d.times(d),s=new c(d),r=d;-1!==e;)if(r=r.times(l),o=s.minus(r.div(i+=2)),r=r.times(l),void 0!==(s=o.plus(r.div(i+=2))).d[t])for(e=t;s.d[e]===o.d[e]&&e--;);return n&&(s=s.times(2<this.d.length-2},Pe.isNaN=function(){return!this.s},Pe.isNegative=Pe.isNeg=function(){return this.s<0},Pe.isPositive=Pe.isPos=function(){return this.s>0},Pe.isZero=function(){return!!this.d&&0===this.d[0]},Pe.lessThan=Pe.lt=function(e){return this.cmp(e)<0},Pe.lessThanOrEqualTo=Pe.lte=function(e){return this.cmp(e)<1},Pe.logarithm=Pe.log=function(e){var t,n,i,o,s,l,d,c,m=this,h=m.constructor,p=h.precision,f=h.rounding;if(null==e)e=new h(10),t=!0;else{if(n=(e=new h(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new h(NaN);t=e.eq(10)}if(n=m.d,m.s<0||!n||!n[0]||m.eq(1))return new h(n&&!n[0]?-1/0:1!=m.s?NaN:n?0:1/0);if(t)if(n.length>1)s=!0;else{for(o=n[0];o%10==0;)o/=10;s=1!==o}if(be=!1,l=I(m,d=p+5),i=t?g(h,d+10):I(e,d),a((c=ge(l,i,d,1)).d,o=p,f))do{if(l=I(m,d+=10),i=t?g(h,d+10):I(e,d),c=ge(l,i,d,1),!s){+r(c.d).slice(o+1,o+15)+1==1e14&&(c=u(c,p+1,0));break}}while(a(c.d,o+=10,f));return be=!0,u(c,p,f)},Pe.minus=Pe.sub=function(e){var t,n,i,r,o,s,a,l,d,g,m,h,p=this,f=p.constructor;if(e=new f(e),!p.d||!e.d)return p.s&&e.s?p.d?e.s=-e.s:e=new f(e.d||p.s!==e.s?p:NaN):e=new f(NaN),e;if(p.s!=e.s)return e.s=-e.s,p.plus(e);if(d=p.d,h=e.d,a=f.precision,l=f.rounding,!d[0]||!h[0]){if(h[0])e.s=-e.s;else{if(!d[0])return new f(3===l?-0:0);e=new f(p)}return be?u(e,a,l):e}if(n=Te(e.e/Ee),g=Te(p.e/Ee),d=d.slice(),o=g-n){for((m=0>o)?(t=d,o=-o,s=h.length):(t=h,n=g,s=d.length),o>(i=Math.max(Math.ceil(a/Ee),s)+2)&&(o=i,t.length=1),t.reverse(),i=o;i--;)t.push(0);t.reverse()}else{for(i=d.length,(m=(s=h.length)>i)&&(s=i),i=0;s>i;i++)if(d[i]!=h[i]){m=d[i]0;--i)d[s++]=0;for(i=h.length;i>o;){if(d[--i]r?(n=d,r=-r,s=g.length):(n=g,i=o,s=d.length),r>(s=(o=Math.ceil(a/Ee))>s?o+1:s+1)&&(r=s,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(0>(s=d.length)-(r=g.length)&&(r=s,n=g,g=d,d=n),t=0;r;)t=(d[--r]=d[r]+g[r]+t)/Re|0,d[r]%=Re;for(t&&(d.unshift(t),++i),s=d.length;0==d[--s];)d.pop();return e.d=d,e.e=c(d,i),be?u(e,a,l):e},Pe.precision=Pe.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(Ce+e);return n.d?(t=h(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},Pe.round=function(){var e=this,t=e.constructor;return u(new t(e),e.e+1,t.rounding)},Pe.sine=Pe.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+Ee,i.rounding=1,n=function(e,t){var n,i=t.d.length;if(3>i)return v(e,2,t,t);n=(n=1.4*Math.sqrt(i))>16?16:0|n,t=v(e,2,t=t.times(Math.pow(5,-n)),t);for(var r,o=new e(5),s=new e(16),a=new e(20);n--;)r=t.times(t),t=t.times(o.plus(r.times(s.times(r).minus(a))));return t}(i,T(i,n)),i.precision=e,i.rounding=t,u(ce>2?n.neg():n,e,t,!0)):new i(NaN)},Pe.squareRoot=Pe.sqrt=function(){var e,t,n,i,o,s,a=this,l=a.d,d=a.e,c=a.s,g=a.constructor;if(1!==c||!l||!l[0])return new g(!c||0>c&&(!l||l[0])?NaN:l?a:1/0);for(be=!1,0==(c=Math.sqrt(+a))||c==1/0?(((t=r(l)).length+d)%2==0&&(t+="0"),c=Math.sqrt(t),d=Te((d+1)/2)-(0>d||d%2),i=new g(t=c==1/0?"1e"+d:(t=c.toExponential()).slice(0,t.indexOf("e")+1)+d)):i=new g(c.toString()),n=(d=g.precision)+3;;)if(i=(s=i).plus(ge(a,s,n+2,1)).times(.5),r(s.d).slice(0,n)===(t=r(i.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(o||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(u(i,d+1,1),e=!i.times(i).eq(a));break}if(!o&&(u(s,d+1,0),s.times(s).eq(a))){i=s;break}n+=4,o=1}return be=!0,u(i,d,g.rounding,e)},Pe.tangent=Pe.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,(n=n.sin()).s=1,n=ge(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,u(2==ce||4==ce?n.neg():n,e,t,!0)):new i(NaN)},Pe.times=Pe.mul=function(e){var t,n,i,r,o,s,a,l,d,g=this,m=g.constructor,h=g.d,p=(e=new m(e)).d;if(e.s*=g.s,!(h&&h[0]&&p&&p[0]))return new m(!e.s||h&&!h[0]&&!p||p&&!p[0]&&!h?NaN:h&&p?0*e.s:e.s/0);for(n=Te(g.e/Ee)+Te(e.e/Ee),l=h.length,(d=p.length)>l&&(o=h,h=p,p=o,s=l,l=d,d=s),o=[],i=s=l+d;i--;)o.push(0);for(i=d;--i>=0;){for(t=0,r=l+i;r>i;)a=o[r]+p[i]*h[r-i-1]+t,o[r--]=a%Re|0,t=a/Re|0;o[r]=(o[r]+t)%Re|0}for(;!o[--s];)o.pop();for(t?++n:o.shift(),i=o.length;!o[--i];)o.pop();return e.d=o,e.e=c(o,n),be?u(e,m.precision,m.rounding):e},Pe.toBinary=function(e,t){return x(this,2,e,t)},Pe.toDecimalPlaces=Pe.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(s(e,0,he),void 0===t?t=i.rounding:s(t,0,8),u(n,e+n.e+1,t))},Pe.toExponential=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=d(i,!0):(s(e,0,he),void 0===t?t=r.rounding:s(t,0,8),n=d(i=u(new r(i),e+1,t),!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},Pe.toFixed=function(e,t){var n,i,r=this,o=r.constructor;return void 0===e?n=d(r):(s(e,0,he),void 0===t?t=o.rounding:s(t,0,8),n=d(i=u(new o(r),e+r.e+1,t),!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},Pe.toFraction=function(e){var t,n,i,o,s,a,l,u,d,c,g,m,p=this,f=p.d,y=p.constructor;if(!f)return new y(p);if(d=n=new y(1),a=(s=(t=new y(i=u=new y(0))).e=h(f)-p.e-1)%Ee,t.d[0]=xe(10,0>a?Ee+a:a),null==e)e=s>0?t:d;else{if(!(l=new y(e)).isInt()||l.lt(d))throw Error(Ce+l);e=l.gt(t)?s>0?t:d:l}for(be=!1,l=new y(r(f)),c=y.precision,y.precision=s=f.length*Ee*2;g=ge(l,t,0,1,1),1!=(o=n.plus(g.times(i))).cmp(e);)n=i,i=o,o=d,d=u.plus(g.times(o)),u=o,o=t,t=l.minus(g.times(o)),l=o;return o=ge(e.minus(n),i,0,1,1),u=u.plus(o.times(d)),n=n.plus(o.times(i)),u.s=d.s=p.s,m=ge(d,i,s,1).minus(p).abs().cmp(ge(u,n,s,1).minus(p).abs())<1?[d,i]:[u,n],y.precision=c,be=!0,m},Pe.toHexadecimal=Pe.toHex=function(e,t){return x(this,16,e,t)},Pe.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),null==e){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),void 0!==t&&s(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(be=!1,4>t&&(t=[4,5,7,8][t]),n=ge(n,e,0,t,1).times(e),be=!0,u(n)):(e.s=n.s,n=e),n},Pe.toNumber=function(){return+this},Pe.toOctal=function(e,t){return x(this,8,e,t)},Pe.toPower=Pe.pow=function(e){var t,n,i,o,s,l,d,c=this,g=c.constructor,m=+(e=new g(e));if(!(c.d&&e.d&&c.d[0]&&e.d[0]))return new g(xe(+c,m));if((c=new g(c)).eq(1))return c;if(i=g.precision,s=g.rounding,e.eq(1))return u(c,i,s);if(d=(t=Te(e.e/Ee))>=(n=e.d.length-1),l=c.s,d){if((n=0>m?-m:m)<=9007199254740991)return o=f(g,c,n,i),e.s<0?new g(1).div(o):u(o,i,s)}else if(0>l)return new g(NaN);return l=0>l&&1&e.d[Math.max(t,n)]?-1:1,(t=0!=(n=xe(+c,m))&&isFinite(n)?new g(n+"").e:Te(m*(Math.log("0."+r(c.d))/Math.LN10+c.e+1)))>g.maxE+1||t0?l/0:0):(be=!1,g.rounding=c.s=1,n=Math.min(12,(t+"").length),a((o=u(o=b(e.times(I(c,i+n)),i),i+5,1)).d,i,s)&&(t=i+10,+r((o=u(b(e.times(I(c,t+n)),t),t+5,1)).d).slice(i+1,i+15)+1==1e14&&(o=u(o,i+1,0))),o.s=l,be=!0,g.rounding=s,u(o,i,s))},Pe.toPrecision=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=d(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(s(e,1,he),void 0===t?t=r.rounding:s(t,0,8),n=d(i=u(new r(i),e,t),e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n},Pe.toSignificantDigits=Pe.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(s(e,1,he),void 0===t?t=n.rounding:s(t,0,8)),u(new n(this),e,t)},Pe.toString=function(){var e=this,t=e.constructor,n=d(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},Pe.truncated=Pe.trunc=function(){return u(new this.constructor(this),this.e+1,1)},Pe.valueOf=Pe.toJSON=function(){var e=this,t=e.constructor,n=d(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n},ge=function(){function e(e,t,n){var i,r=0,o=e.length;for(e=e.slice();o--;)i=e[o]*t+r,e[o]=i%n|0,r=i/n|0;return r&&e.unshift(r),e}function t(e,t,n,i){var r,o;if(n!=i)o=n>i?1:-1;else for(r=o=0;n>r;r++)if(e[r]!=t[r]){o=e[r]>t[r]?1:-1;break}return o}function n(e,t,n,i){for(var r=0;n--;)e[n]-=r,r=e[n]1;)e.shift()}return function(i,r,o,s,a,l){var d,c,g,m,h,p,f,y,S,b,I,C,_,v,T,x,w,B,D,A,R=i.constructor,E=i.s==r.s?1:-1,K=i.d,N=r.d;if(!(K&&K[0]&&N&&N[0]))return new R(i.s&&r.s&&(K?!N||K[0]!=N[0]:N)?K&&0==K[0]||!N?0*E:E/0:NaN);for(l?(h=1,c=i.e-r.e):(l=Re,h=Ee,c=Te(i.e/h)-Te(r.e/h)),D=N.length,w=K.length,b=(S=new R(E)).d=[],g=0;N[g]==(K[g]||0);g++);if(N[g]>(K[g]||0)&&c--,null==o?(v=o=R.precision,s=R.rounding):v=a?o+(i.e-r.e)+1:o,0>v)b.push(1),p=!0;else{if(v=v/h+2|0,g=0,1==D){for(m=0,N=N[0],v++;(w>g||m)&&v--;g++)T=m*l+(K[g]||0),b[g]=T/N|0,m=T%N|0;p=m||w>g}else{for((m=l/(N[0]+1)|0)>1&&(N=e(N,m,l),K=e(K,m,l),D=N.length,w=K.length),x=D,C=(I=K.slice(0,D)).length;D>C;)I[C++]=0;(A=N.slice()).unshift(0),B=N[0],N[1]>=l/2&&++B;do{m=0,0>(d=t(N,I,D,C))?(_=I[0],D!=C&&(_=_*l+(I[1]||0)),(m=_/B|0)>1?(m>=l&&(m=l-1),1==(d=t(f=e(N,m,l),I,y=f.length,C=I.length))&&(m--,n(f,y>D?A:N,y,l))):(0==m&&(d=m=1),f=N.slice()),C>(y=f.length)&&f.unshift(0),n(I,f,C,l),-1==d&&1>(d=t(N,I,D,C=I.length))&&(m++,n(I,C>D?A:N,C,l)),C=I.length):0===d&&(m++,I=[0]),b[g++]=m,d&&I[0]?I[C++]=K[x]||0:(I=[K[x]],C=1)}while((x++=10;m/=10)g++;S.e=g+c*h-1,u(S,a?o+S.e+1:o,s,p)}return S}}(),Se=function e(t){function n(e){var t,i,r,o=this;if(!(o instanceof n))return new n(e);if(o.constructor=n,e instanceof n)return o.s=e.s,o.e=e.e,void(o.d=(e=e.d)?e.slice():e);if("number"==(r=typeof e)){if(0===e)return o.s=0>1/e?-1:1,o.e=0,void(o.d=[0]);if(0>e?(e=-e,o.s=-1):o.s=1,e===~~e&&1e7>e){for(t=0,i=e;i>=10;i/=10)t++;return o.e=t,void(o.d=[e])}return 0*e!=0?(e||(o.s=NaN),o.e=NaN,void(o.d=null)):_(o,e.toString())}if("string"!==r)throw Error(Ce+e);return 45===e.charCodeAt(0)?(e=e.slice(1),o.s=-1):o.s=1,Ae.test(e)?_(o,e):function(e,t){var n,i,r,o,s,a,u,d,g;if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(Be.test(t))n=16,t=t.toLowerCase();else if(we.test(t))n=2;else{if(!De.test(t))throw Error(Ce+t);n=8}for((o=t.search(/p/i))>0?(u=+t.slice(o+1),t=t.substring(2,o)):t=t.slice(2),s=(o=t.indexOf("."))>=0,i=e.constructor,s&&(o=(a=(t=t.replace(".","")).length)-o,r=f(i,new i(n),o,2*o)),o=g=(d=l(t,n,Re)).length-1;0===d[o];--o)d.pop();return 0>o?new i(0*e.s):(e.e=c(d,g),e.d=d,be=!1,s&&(e=ge(e,r,4*a)),u&&(e=e.times(Math.abs(u)<54?Math.pow(2,u):Se.pow(2,u))),be=!0,e)}(o,e)}var i,r,o;if(n.prototype=Pe,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=L,n.clone=e,n.abs=B,n.acos=D,n.acosh=A,n.add=R,n.asin=E,n.asinh=K,n.atan=N,n.atanh=P,n.atan2=O,n.cbrt=$,n.ceil=k,n.cos=M,n.cosh=F,n.div=z,n.exp=j,n.floor=U,n.hypot=G,n.ln=W,n.log=V,n.log10=Y,n.log2=q,n.max=H,n.min=Z,n.mod=Q,n.mul=X,n.pow=J,n.random=ee,n.round=te,n.sign=ne,n.sin=ie,n.sinh=re,n.sqrt=oe,n.sub=se,n.tan=ae,n.tanh=le,n.trunc=ue,void 0===t&&(t={}),t)for(o=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i0},Bridge.global.System.Decimal.prototype.gte=function(e){return this.compareTo(e)>=0},Bridge.global.System.Decimal.prototype.equals=function(e){return(e instanceof Bridge.global.System.Decimal||"number"==typeof e)&&!this.compareTo(e)},Bridge.global.System.Decimal.prototype.equalsT=function(e){return!this.compareTo(e)},Bridge.global.System.Decimal.prototype.getHashCode=function(){for(var e=397*this.sign()+this.value.e|0,t=0;t0&&m>0){for(r=m%a||a,d=g.substr(0,r);r0&&(d+=s+g.slice(r)),o&&(d="-"+d)}return c?d+n.decimalSeparator+((l=+n.fractionGroupSize)?c.replace(new RegExp("\\d{"+l+"}\\B","g"),"$&"+n.fractionGroupSeparator):c):d},Bridge.global.System.Decimal.prototype.toFormat=function(e,t,n){var i,r,o={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0};return n&&!n.getFormat?(o=Bridge.merge(o,n),i=this._toFormat(e,t,o)):((r=(n=n||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())&&n.getFormat(Bridge.global.System.Globalization.NumberFormatInfo))&&(o.decimalSeparator=r.numberDecimalSeparator,o.groupSeparator=r.numberGroupSeparator,o.groupSize=r.numberGroupSizes[0]),i=this._toFormat(e,t,o)),i},Bridge.global.System.Decimal.prototype.getBytes=function(){var e,t=this.value.s,n=this.value.e,i=this.value.d,r=Bridge.global.System.Array.init(23,0,Bridge.global.System.Byte);if(r[0]=255&t,r[1]=n,i&&i.length>0)for(r[2]=4*i.length,e=0;e>8&255,r[4*e+5]=i[e]>>16&255,r[4*e+6]=i[e]>>24&255;else r[2]=0;return r},Bridge.global.System.Decimal.fromBytes=function(e){var t,n=new Bridge.global.System.Decimal(0),i=Bridge.Int.sxb(255&e[0]),r=e[1],o=e[2],s=[];if(n.value.s=i,n.value.e=r,o>0)for(t=3;t=0&&e[o]!==i;o--);if(o>=0){for(;--o>=0&&e[o]===i;)r++;if(r<=1)return!0}for(o=t+n;o=0&&I.charAt(S)===a;S--);I=I.substring(0,S+1),r=0==I.length;break;case"f":case"ff":case"fff":case"ffff":case"fffff":case"ffffff":case"fffffff":(I=f.toString()).length<3&&(I=Array(4-I.length).join("0")+I),b="u"===e?7:e.length,I.length=0?"-":"+")+Math.floor(Math.abs(I));break;case"K":case"zz":case"zzz":0===s?I="":1===s?I="Z":(I=((I=y/60)>0?"-":"+")+Bridge.global.System.String.alignString(Math.floor(Math.abs(I)).toString(),2,"0",2),("zzz"===e||"K"===e)&&(I+=l.timeSeparator+Bridge.global.System.String.alignString(Math.floor(Math.abs(y%60)).toString(),2,"0",2)));break;case":":I=l.timeSeparator;break;case"/":I=l.dateSeparator;break;default:I=e.substr(1,e.length-1-("\\"!==e.charAt(0)))}return I}),r&&(Bridge.global.System.String.endsWith(t,".")?t=t.substring(0,t.length-1):Bridge.global.System.String.endsWith(t,".Z")?t=t.substring(0,t.length-2)+"Z":2===s&&null!==t.match(/\.([+-])/g)&&(t=t.replace(/\.([+-])/g,"$1"))),t},parse:function(e,t,n,i){var r=this.parseExact(e,null,t,n,!0);if(null!==r)return r;if(r=Date.parse(e),!isNaN(r))return new Date(r);if(!i)throw new Bridge.global.System.FormatException.$ctor1("String does not contain a valid string representation of a date and time.")},parseExact:function(e,t,n,i,r){var o,s,a,l;if(t||(t=["G","g","F","f","D","d","R","r","s","S","U","u","O","o","Y","y","M","m","T","t"]),Bridge.isArray(t)){for(o=0;o30?1900:2e3)+x)}else if("MMM"===d||"MMMM"===d){for(w=0,h="MMM"===d?this.isUseGenitiveForm(t,v,3,"d")?b.abbreviatedMonthGenitiveNames:b.abbreviatedMonthNames:this.isUseGenitiveForm(t,v,4,"d")?b.monthGenitiveNames:b.monthNames,T=0;T12){O=!0;break}}else if("MM"===d||"M"===d){if(null==(w=this.subparseInt(e,_,d.length,2))||w<1||w>12){O=!0;break}_+=w.length}else if("dddd"===d||"ddd"===d){for(h="ddd"===d?b.abbreviatedDayNames:b.dayNames,T=0;T31){O=!0;break}_+=B.length}else if("hh"===d||"h"===d){if(null==(D=this.subparseInt(e,_,d.length,2))||D<1||D>12){O=!0;break}_+=D.length}else if("HH"===d||"H"===d){if(null==(D=this.subparseInt(e,_,d.length,2))||D<0||D>23){O=!0;break}_+=D.length}else if("mm"===d||"m"===d){if(null==(A=this.subparseInt(e,_,d.length,2))||A<0||A>59)return null;_+=A.length}else if("ss"===d||"s"===d){if(null==(R=this.subparseInt(e,_,d.length,2))||R<0||R>59){O=!0;break}_+=R.length}else if("u"===d){if(null==(E=this.subparseInt(e,_,1,7))){O=!0;break}_+=E.length,E.length>3&&(E=E.substring(0,3))}else if(null!==d.match(/f{1,7}/)){if(null==(E=this.subparseInt(e,_,d.length,7))){O=!0;break}_+=E.length,E.length>3&&(E=E.substring(0,3))}else if(null!==d.match(/F{1,7}/))null!==(E=this.subparseInt(e,_,0,7))&&(_+=E.length,E.length>3&&(E=E.substring(0,3)));else if("t"===d){if(e.substring(_,_+1).toLowerCase()===I.charAt(0).toLowerCase())K=I;else{if(e.substring(_,_+1).toLowerCase()!==C.charAt(0).toLowerCase()){O=!0;break}K=C}_+=1}else if("tt"===d){if(e.substring(_,_+2).toLowerCase()===I.toLowerCase())K=I;else{if(e.substring(_,_+2).toLowerCase()!==C.toLowerCase()){O=!0;break}K=C}_+=2}else if("z"===d||"zz"===d){if("-"===(g=e.charAt(_)))m=!0;else{if("+"!==g){O=!0;break}m=!1}if(_++,null==(N=this.subparseInt(e,_,1,2))||N>14){O=!0;break}_+=N.length,M=36e5*N,m&&(M=-M)}else{if("Z"===d){"Z"===(a=e.substring(_,_+1))||"z"===a?(k=1,_+=1):O=!0;break}if("zzz"===d||"K"===d){if("Z"===e.substring(_,_+1)){k=2,L=!0,_+=1;break}if(""===(p=e.substring(_,_+6))){k=0;break}if(_+=p.length,6!==p.length&&5!==p.length){O=!0;break}if("-"===(g=p.charAt(0)))m=!0;else{if("+"!==g){O=!0;break}m=!1}if(c=1,null==(N=this.subparseInt(p,c,1,6===p.length?2:1))||N>14){O=!0;break}if(c+=N.length,p.charAt(c)!==b.timeSeparator){O=!0;break}if(c++,null==(P=this.subparseInt(p,c,1,2))||N>59){O=!0;break}M=36e5*N+6e4*P,m&&(M=-M),k=2}else f=!1}if($||!f){if(p=e.substring(_,_+d.length),($||":"!==p||d!==b.timeSeparator&&":"!==d)&&(!$&&(":"===d&&p!==b.timeSeparator||"/"===d&&p!==b.dateSeparator)||p!==d&&"'"!==d&&'"'!==d&&"\\"!==d)){O=!0;break}if("\\"===$&&($=!1),"'"!==d&&'"'!==d&&"\\"!==d)_+=d.length;else if(!1===$)$=d;else{if($!==d){O=!0;break}$=!1}}}if($&&(O=!0),O||(_!==e.length?O=!0:2===w?x%4==0&&x%100!=0||x%400==0?B>29&&(O=!0):B>28&&(O=!0):(4===w||6===w||9===w||11===w)&&B>30&&(O=!0)),O){if(r)return null;throw new Bridge.global.System.FormatException.$ctor1("String does not contain a valid string representation of a date and time.")}return K&&(D<12&&K===C?D=+D+12:D>11&&K===I&&(D-=12)),l=this.create(x,w,B,D,A,R,E,k),2===k&&(!0===L?(l=new Date(l.getTime()-this.$getTzOffset(l))).kind=k:0!==M&&(l=new Date(l.getTime()-this.$getTzOffset(l)),(l=this.addMilliseconds(l,-M)).kind=k)),l},subparseInt:function(e,t,n,i){for(var r,o=i;o>=n;o--){if((r=e.substring(t,t+o)).length1&&this.getIsLeapYear(t.getFullYear())&&r++,r},getDate:function(e){e.kind=void 0!==e.kind?e.kind:0;var t=this.$clearTime(e,1===e.kind);return t.kind=e.kind,t},getDayOfWeek:function(e){return 1===this.getKind(e)?e.getUTCDay():e.getDay()},getYear:function(e){return 1===this.getKind(e)?e.getUTCFullYear():e.getFullYear()},getMonth:function(e){return(1===this.getKind(e)?e.getUTCMonth():e.getMonth())+1},getDay:function(e){return 1===this.getKind(e)?e.getUTCDate():e.getDate()},getHour:function(e){return 1===this.getKind(e)?e.getUTCHours():e.getHours()},getMinute:function(e){return 1===this.getKind(e)?e.getUTCMinutes():e.getMinutes()},getSecond:function(e){return 1===this.getKind(e)?e.getUTCSeconds():e.getSeconds()},getMillisecond:function(e){return 1===this.getKind(e)?e.getUTCMilliseconds():e.getMilliseconds()},gt:function(e,t){return null!=e&&null!=t&&this.getTicks(e).gt(this.getTicks(t))},gte:function(e,t){return null!=e&&null!=t&&this.getTicks(e).gte(this.getTicks(t))},lt:function(e,t){return null!=e&&null!=t&&this.getTicks(e).lt(this.getTicks(t))},lte:function(e,t){return null!=e&&null!=t&&this.getTicks(e).lte(this.getTicks(t))}}}),Bridge.define("System.TimeSpan",{inherits:[Bridge.global.System.IComparable],config:{alias:["compareTo",["System$IComparable$compareTo","System$IComparable$1$compareTo","System$IComparable$1System$TimeSpan$compareTo"]]},$kind:"struct",statics:{fromDays:function(e){return new Bridge.global.System.TimeSpan(864e9*e)},fromHours:function(e){return new Bridge.global.System.TimeSpan(36e9*e)},fromMilliseconds:function(e){return new Bridge.global.System.TimeSpan(1e4*e)},fromMinutes:function(e){return new Bridge.global.System.TimeSpan(6e8*e)},fromSeconds:function(e){return new Bridge.global.System.TimeSpan(1e7*e)},fromTicks:function(e){return new Bridge.global.System.TimeSpan(e)},ctor:function(){this.zero=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.Zero),this.maxValue=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.MaxValue),this.minValue=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.MinValue)},getDefaultValue:function(){return new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.Zero)},neg:function(e){return Bridge.hasValue(e)?new Bridge.global.System.TimeSpan(e.ticks.neg()):null},sub:function(e,t){return Bridge.hasValue$1(e,t)?new Bridge.global.System.TimeSpan(e.ticks.sub(t.ticks)):null},eq:function(e,t){return null===e&&null===t||!!Bridge.hasValue$1(e,t)&&e.ticks.eq(t.ticks)},neq:function(e,t){return(null!==e||null!==t)&&(!Bridge.hasValue$1(e,t)||e.ticks.ne(t.ticks))},plus:function(e){return Bridge.hasValue(e)?new Bridge.global.System.TimeSpan(e.ticks):null},add:function(e,t){return Bridge.hasValue$1(e,t)?new Bridge.global.System.TimeSpan(e.ticks.add(t.ticks)):null},gt:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.gt(t.ticks)},gte:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.gte(t.ticks)},lt:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.lt(t.ticks)},lte:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.lte(t.ticks)},timeSpanWithDays:/^(\-)?(\d+)[\.|:](\d+):(\d+):(\d+)(\.\d+)?/,timeSpanNoDays:/^(\-)?(\d+):(\d+):(\d+)(\.\d+)?/,parse:function(e){function t(e){return e?1e3*parseFloat("0"+e):0}var n,i;return(n=e.match(Bridge.global.System.TimeSpan.timeSpanWithDays))?(i=new Bridge.global.System.TimeSpan(n[2],n[3],n[4],n[5],t(n[6])),n[1]?new Bridge.global.System.TimeSpan(i.ticks.neg()):i):(n=e.match(Bridge.global.System.TimeSpan.timeSpanNoDays))?(i=new Bridge.global.System.TimeSpan(0,n[2],n[3],n[4],t(n[5])),n[1]?new Bridge.global.System.TimeSpan(i.ticks.neg()):i):null},tryParse:function(e,t,n){return n.v=this.parse(e),null!=n.v||(n.v=this.minValue,!1)}},ctor:function(){this.$initialize(),this.ticks=Bridge.global.System.Int64.Zero,1===arguments.length?this.ticks=arguments[0]instanceof Bridge.global.System.Int64?arguments[0]:new Bridge.global.System.Int64(arguments[0]):3===arguments.length?this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(60).add(arguments[1]).mul(60).add(arguments[2]).mul(1e7):4===arguments.length?this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e7):5===arguments.length&&(this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e3).add(arguments[4]).mul(1e4))},TimeToTicks:function(e,t,n){return Bridge.global.System.Int64(e).mul("3600").add(Bridge.global.System.Int64(t).mul("60")).add(Bridge.global.System.Int64(n)).mul("10000000")},getTicks:function(){return this.ticks},getDays:function(){return this.ticks.div(864e9).toNumber()},getHours:function(){return this.ticks.div(36e9).mod(24).toNumber()},getMilliseconds:function(){return this.ticks.div(1e4).mod(1e3).toNumber()},getMinutes:function(){return this.ticks.div(6e8).mod(60).toNumber()},getSeconds:function(){return this.ticks.div(1e7).mod(60).toNumber()},getTotalDays:function(){return this.ticks.toNumberDivided(864e9)},getTotalHours:function(){return this.ticks.toNumberDivided(36e9)},getTotalMilliseconds:function(){return this.ticks.toNumberDivided(1e4)},getTotalMinutes:function(){return this.ticks.toNumberDivided(6e8)},getTotalSeconds:function(){return this.ticks.toNumberDivided(1e7)},get12HourHour:function(){return this.getHours()>12?this.getHours()-12:0===this.getHours()?12:this.getHours()},add:function(e){return new Bridge.global.System.TimeSpan(this.ticks.add(e.ticks))},subtract:function(e){return new Bridge.global.System.TimeSpan(this.ticks.sub(e.ticks))},duration:function(){return new Bridge.global.System.TimeSpan(this.ticks.abs())},negate:function(){return new Bridge.global.System.TimeSpan(this.ticks.neg())},compareTo:function(e){return this.ticks.compareTo(e.ticks)},equals:function(e){return!!Bridge.is(e,Bridge.global.System.TimeSpan)&&e.ticks.eq(this.ticks)},equalsT:function(e){return e.ticks.eq(this.ticks)},format:function(e,t){return this.toString(e,t)},getHashCode:function(){return this.ticks.getHashCode()},toString:function(e,t){var n=this.ticks,i="",r=this,o=(t||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.DateTimeFormatInfo),s=function(e,t,n,i){return Bridge.global.System.String.alignString(Math.abs(0|e).toString(),t||2,"0",n||2,i||!1)},a=n<0;return e?e.replace(/(\\.|'[^']*'|"[^"]*"|dd?|HH?|hh?|mm?|ss?|tt?|f{1,7}|\:|\/)/g,function(e){switch(e){case"d":return r.getDays();case"dd":return s(r.getDays());case"H":return r.getHours();case"HH":return s(r.getHours());case"h":return r.get12HourHour();case"hh":return s(r.get12HourHour());case"m":return r.getMinutes();case"mm":return s(r.getMinutes());case"s":return r.getSeconds();case"ss":return s(r.getSeconds());case"t":return(r.getHours()<12?o.amDesignator:o.pmDesignator).substring(0,1);case"tt":return r.getHours()<12?o.amDesignator:o.pmDesignator;case"f":case"ff":case"fff":case"ffff":case"fffff":case"ffffff":case"fffffff":return s(r.getMilliseconds(),e.length,1,!0);default:return e.substr(1,e.length-1-("\\"!==e.charAt(0)))}}):(n.abs().gte(864e9)&&(i+=s(n.toNumberDivided(864e9),1)+".",n=n.mod(864e9)),i+=s(n.toNumberDivided(36e9))+":",n=n.mod(36e9),i+=s(0|n.toNumberDivided(6e8))+":",n=n.mod(6e8),i+=s(n.toNumberDivided(1e7)),(n=n.mod(1e7)).gt(0)&&(i+="."+s(n.toNumber(),7)),(a?"-":"")+i)}}),Bridge.Class.addExtend(Bridge.global.System.TimeSpan,[Bridge.global.System.IComparable$1(Bridge.global.System.TimeSpan),Bridge.global.System.IEquatable$1(Bridge.global.System.TimeSpan)]),Bridge.define("System.Text.StringBuilder",{ctor:function(){this.$initialize(),this.buffer=[],this.capacity=16,1===arguments.length?this.append(arguments[0]):2===arguments.length?(this.append(arguments[0]),this.setCapacity(arguments[1])):arguments.length>=3&&(this.append(arguments[0],arguments[1],arguments[2]),4===arguments.length&&this.setCapacity(arguments[3]))},getLength:function(){return this.buffer.length<2?this.buffer[0]?this.buffer[0].length:0:this.getString().length},setLength:function(e){var t,n;if(0===e)this.clear();else{if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Length cannot be less than zero");if(e===(t=this.getLength()))return;(n=e-t)>0?this.append("\0",n):this.remove(t+n,-n)}},getCapacity:function(){var e=this.getLength();return this.capacity>e?this.capacity:e},setCapacity:function(e){e>this.getLength()&&(this.capacity=e)},toString:function(){var e,t,n=this.getString();return 2===arguments.length?(e=arguments[0],t=arguments[1],this.checkLimits(n,e,t),n.substr(e,t)):n},append:function(e){var t,n;if(null==e)return this;if(2===arguments.length){if(0===(n=arguments[1]))return this;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero");e=Array(n+1).join(e).toString()}else if(3===arguments.length){if(t=arguments[1],0===(n=arguments[2]))return this;this.checkLimits(e,t,n),e=e.substr(t,n)}return this.buffer[this.buffer.length]=e,this.clearString(),this},appendFormat:function(){return this.append(Bridge.global.System.String.format.apply(Bridge.global.System.String,arguments))},clear:function(){return this.buffer=[],this.clearString(),this},appendLine:function(){return 1===arguments.length&&this.append(arguments[0]),this.append("\r\n")},equals:function(e){return null!=e&&(e===this||this.toString()===e.toString())},remove:function(e,t){var n=this.getString();return this.checkLimits(n,e,t),n.length===t&&0===e?this.clear():(t>0&&(this.buffer=[],this.buffer[0]=n.substring(0,e),this.buffer[1]=n.substring(e+t,n.length),this.clearString()),this)},insert:function(e,t){var n,i;if(null==t)return this;if(3===arguments.length){if(0===(n=arguments[2]))return this;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero");t=Array(n+1).join(t).toString()}return i=this.getString(),this.buffer=[],e<1?(this.buffer[0]=t,this.buffer[1]=i):e>=i.length?(this.buffer[0]=i,this.buffer[1]=t):(this.buffer[0]=i.substring(0,e),this.buffer[1]=t,this.buffer[2]=i.substring(e,i.length)),this.clearString(),this},replace:function(e,t){var n=new RegExp(e,"g"),i=this.buffer.join("");if(this.buffer=[],4===arguments.length){var r=arguments[2],o=arguments[3],s=i.substr(r,o);this.checkLimits(i,r,o),this.buffer[0]=i.substring(0,r),this.buffer[1]=s.replace(n,t),this.buffer[2]=i.substring(r+o,i.length)}else this.buffer[0]=i.replace(n,t);return this.clearString(),this},checkLimits:function(e,t,n){if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero");if(n>e.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("Index and length must refer to a location within the string")},clearString:function(){this.$str=null},getString:function(){return this.$str||(this.$str=this.buffer.join(""),this.buffer=[],this.buffer[0]=this.$str),this.$str},getChar:function(e){var t=this.getString();if(e<0||e>=t.length)throw new Bridge.global.System.IndexOutOfRangeException;return t.charCodeAt(e)},setChar:function(e,t){var n=this.getString();if(e<0||e>=n.length)throw new Bridge.global.System.ArgumentOutOfRangeException;t=String.fromCharCode(t),this.buffer=[],this.buffer[0]=n.substring(0,e),this.buffer[1]=t,this.buffer[2]=n.substring(e+1,n.length),this.clearString()}}),function(){var e=RegExp("[-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]","g");Bridge.regexpEscape=function(t){return t.replace(e,"\\$&")}}(),Bridge.define("System.Diagnostics.Debug.DebugAssertException",{inherits:[Bridge.global.System.Exception],$kind:"nested class",ctors:{ctor:function(e,t,n){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,(e||"")+"\n"+(t||"")+"\n"+(n||""))}}}),Bridge.define("System.Diagnostics.Debug",{statics:{fields:{s_lock:null,s_indentLevel:0,s_indentSize:0,s_needIndent:!1,s_indentString:null,s_ShowAssertDialog:null,s_WriteCore:null,s_shouldWriteToStdErr:!1},props:{AutoFlush:{get:function(){return!0},set:function(){}},IndentLevel:{get:function(){return Bridge.global.System.Diagnostics.Debug.s_indentLevel},set:function(e){Bridge.global.System.Diagnostics.Debug.s_indentLevel=e<0?0:e}},IndentSize:{get:function(){return Bridge.global.System.Diagnostics.Debug.s_indentSize},set:function(e){Bridge.global.System.Diagnostics.Debug.s_indentSize=e<0?0:e}}},ctors:{init:function(){this.s_lock={},this.s_indentSize=4,this.s_ShowAssertDialog=Bridge.global.System.Diagnostics.Debug.ShowAssertDialog,this.s_WriteCore=Bridge.global.System.Diagnostics.Debug.WriteCore,this.s_shouldWriteToStdErr=Bridge.referenceEquals(Bridge.global.System.Environment.GetEnvironmentVariable("COMPlus_DebugWriteToStdErr"),"1")}},methods:{Close:function(){},Flush:function(){},Indent:function(){Bridge.global.System.Diagnostics.Debug.IndentLevel=Bridge.global.System.Diagnostics.Debug.IndentLevel+1|0},Unindent:function(){Bridge.global.System.Diagnostics.Debug.IndentLevel=Bridge.global.System.Diagnostics.Debug.IndentLevel-1|0},Print:function(e){Bridge.global.System.Diagnostics.Debug.Write$2(e)},Print$1:function(e,t){void 0===t&&(t=[]),Bridge.global.System.Diagnostics.Debug.Write$2(Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[null,e].concat(t)))},Assert:function(e){Bridge.global.System.Diagnostics.Debug.Assert$2(e,"","")},Assert$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Assert$2(e,t,"")},Assert$2:function(e,t,n){if(!e){var i;try{throw Bridge.global.System.NotImplemented.ByDesign}catch(e){e=Bridge.global.System.Exception.create(e),i=""}Bridge.global.System.Diagnostics.Debug.WriteLine$2(Bridge.global.System.Diagnostics.Debug.FormatAssert(i,t,n)),Bridge.global.System.Diagnostics.Debug.s_ShowAssertDialog(i,t,n)}},Assert$3:function(e,t,n,i){void 0===i&&(i=[]),Bridge.global.System.Diagnostics.Debug.Assert$2(e,t,Bridge.global.System.String.format.apply(Bridge.global.System.String,[n].concat(i)))},Fail:function(e){Bridge.global.System.Diagnostics.Debug.Assert$2(!1,e,"")},Fail$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Assert$2(!1,e,t)},FormatAssert:function(e,t,n){var i=(Bridge.global.System.Diagnostics.Debug.GetIndentString()||"")+"\n";return"---- DEBUG ASSERTION FAILED ----"+(i||"")+"---- Assert Short Message ----"+(i||"")+(t||"")+(i||"")+"---- Assert Long Message ----"+(i||"")+(n||"")+(i||"")+(e||"")},WriteLine$2:function(e){Bridge.global.System.Diagnostics.Debug.Write$2((e||"")+"\n")},WriteLine:function(e){Bridge.global.System.Diagnostics.Debug.WriteLine$2(null!=e?Bridge.toString(e):null)},WriteLine$1:function(e,t){Bridge.global.System.Diagnostics.Debug.WriteLine$4(null!=e?Bridge.toString(e):null,t)},WriteLine$3:function(e,t){void 0===t&&(t=[]),Bridge.global.System.Diagnostics.Debug.WriteLine$2(Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[null,e].concat(t)))},WriteLine$4:function(e,t){null==t?Bridge.global.System.Diagnostics.Debug.WriteLine$2(e):Bridge.global.System.Diagnostics.Debug.WriteLine$2((t||"")+":"+(e||""))},Write$2:function(e){Bridge.global.System.Diagnostics.Debug.s_lock,null!=e?(Bridge.global.System.Diagnostics.Debug.s_needIndent&&(e=(Bridge.global.System.Diagnostics.Debug.GetIndentString()||"")+(e||""),Bridge.global.System.Diagnostics.Debug.s_needIndent=!1),Bridge.global.System.Diagnostics.Debug.s_WriteCore(e),Bridge.global.System.String.endsWith(e,"\n")&&(Bridge.global.System.Diagnostics.Debug.s_needIndent=!0)):Bridge.global.System.Diagnostics.Debug.s_WriteCore("")},Write:function(e){Bridge.global.System.Diagnostics.Debug.Write$2(null!=e?Bridge.toString(e):null)},Write$3:function(e,t){null==t?Bridge.global.System.Diagnostics.Debug.Write$2(e):Bridge.global.System.Diagnostics.Debug.Write$2((t||"")+":"+(e||""))},Write$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Write$3(null!=e?Bridge.toString(e):null,t)},WriteIf$2:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.Write$2(t)},WriteIf:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.Write(t)},WriteIf$3:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.Write$3(t,n)},WriteIf$1:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.Write$1(t,n)},WriteLineIf:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.WriteLine(t)},WriteLineIf$1:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$1(t,n)},WriteLineIf$2:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$2(t)},WriteLineIf$3:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$4(t,n)},GetIndentString:function(){var e,t=Bridge.Int.mul(Bridge.global.System.Diagnostics.Debug.IndentSize,Bridge.global.System.Diagnostics.Debug.IndentLevel);return Bridge.global.System.Nullable.eq(null!=Bridge.global.System.Diagnostics.Debug.s_indentString?Bridge.global.System.Diagnostics.Debug.s_indentString.length:null,t)?Bridge.global.System.Diagnostics.Debug.s_indentString:(e=Bridge.global.System.String.fromCharCount(32,t),Bridge.global.System.Diagnostics.Debug.s_indentString=e,e)},ShowAssertDialog:function(e,t,n){if(!Bridge.global.System.Diagnostics.Debugger.IsAttached){var i=new Bridge.global.System.Diagnostics.Debug.DebugAssertException(t,n,e);Bridge.global.System.Environment.FailFast$1(i.Message,i)}},WriteCore:function(e){Bridge.global.System.Diagnostics.Debug.WriteToDebugger(e),Bridge.global.System.Diagnostics.Debug.s_shouldWriteToStdErr&&Bridge.global.System.Diagnostics.Debug.WriteToStderr(e)},WriteToDebugger:function(e){Bridge.global.System.Diagnostics.Debugger.IsLogging()?Bridge.global.System.Diagnostics.Debugger.Log(0,null,e):Bridge.global.System.Console.WriteLine(e)},WriteToStderr:function(e){Bridge.global.System.Console.WriteLine(e)}}}}),Bridge.define("System.Diagnostics.Debugger",{statics:{fields:{DefaultCategory:null},props:{IsAttached:{get:function(){return!0}}},methods:{IsLogging:function(){return!0},Launch:function(){return!0},Log:function(){},NotifyOfCrossThreadDependency:function(){}}}}),Bridge.define("System.Diagnostics.Stopwatch",{ctor:function(){this.$initialize(),this.reset()},start:function(){this.isRunning||(this._startTime=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp(),this.isRunning=!0)},stop:function(){if(this.isRunning){var e=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp().sub(this._startTime);this._elapsed=this._elapsed.add(e),this.isRunning=!1}},reset:function(){this._startTime=Bridge.global.System.Int64.Zero,this._elapsed=Bridge.global.System.Int64.Zero,this.isRunning=!1},restart:function(){this.isRunning=!1,this._elapsed=Bridge.global.System.Int64.Zero,this._startTime=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp(),this.start()},ticks:function(){var e,t=this._elapsed;return this.isRunning&&(e=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp().sub(this._startTime),t=t.add(e)),t},milliseconds:function(){return this.ticks().mul(1e3).div(Bridge.global.System.Diagnostics.Stopwatch.frequency)},timeSpan:function(){return new Bridge.global.System.TimeSpan(this.milliseconds().mul(1e4))},statics:{startNew:function(){var e=new Bridge.global.System.Diagnostics.Stopwatch;return e.start(),e}}}),"undefined"!=typeof window&&window.performance&&window.performance.now?(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e6),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!0,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){return new Bridge.global.System.Int64(Math.round(1e3*window.performance.now()))}):void 0!==r&&r.hrtime?(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e9),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!0,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){var e=r.hrtime();return new Bridge.global.System.Int64(e[0]).mul(1e9).add(e[1])}):(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e3),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!1,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){return new Bridge.global.System.Int64((new Date).valueOf())}),Bridge.global.System.Diagnostics.Contracts.Contract={reportFailure:function(e,t,n,i,r){var o,s,a=n.toString();throw o=(a=(a=a.substring(a.indexOf("return")+7)).substr(0,a.lastIndexOf(";")))?"Contract '"+a+"' failed":"Contract failed",s=t?o+": "+t:o,r?new r(a,t):new Bridge.global.System.Diagnostics.Contracts.ContractException(e,s,t,a,i)},assert:function(e,t,n,i){n.call(t)||Bridge.global.System.Diagnostics.Contracts.Contract.reportFailure(e,i,n,null)},requires:function(e,t,n,i){n.call(t)||Bridge.global.System.Diagnostics.Contracts.Contract.reportFailure(0,i,n,null,e)},forAll:function(e,t,n){if(!n)throw new Bridge.global.System.ArgumentNullException.$ctor1("predicate");for(;e=(e.$s?e.$s[0]:e.length))throw new Bridge.global.System.IndexOutOfRangeException.$ctor1("Index 0 out of range");var n,i=t[0];if(e.$s)for(n=1;n=e.$s[n])throw new Bridge.global.System.IndexOutOfRangeException.$ctor1("Index "+n+" out of range");i=i*e.$s[n]+t[n]}return i},index:function(e,t){if(e<0||e>=t.length)throw new Bridge.global.System.IndexOutOfRangeException;return e},$get:function(e){var t=this[Bridge.global.System.Array.toIndex(this,e)];return void 0!==t?t:this.$v},get:function(e){var t,n,i;if(arguments.length<2)throw new Bridge.global.System.ArgumentNullException.$ctor1("indices");for(t=Array.prototype.slice.call(arguments,1),n=0;n=(e.$s?e.$s.length:1))throw new Bridge.global.System.IndexOutOfRangeException;return e.$s?e.$s[t]:e.length},getRank:function(e){return e.$type?e.$type.$rank:e.$s?e.$s.length:1},getLower:function(e,t){return Bridge.global.System.Array.getLength(e,t),0},create:function(e,t,n,i){var r,o,s,a,l,u,d,c,g,m,h;if(null===i)throw new Bridge.global.System.ArgumentNullException.$ctor1("length");if(r=[],o=arguments.length>3?1:0,r.$v=e,r.$s=[],r.get=Bridge.global.System.Array.$get,r.set=Bridge.global.System.Array.$set,i&&Bridge.isArray(i))for(s=0;s=0;a--)d=g%r.$s[a],c.unshift(d),g=Bridge.Int.div(g-d,r.$s[a]);for(l=t,d=0;de.length)throw new Bridge.global.System.IndexOutOfRangeException;for(var r=Bridge.isFunction(t);--i>=0;)e[n+i]=r?t():t},copy:function(e,t,n,i,r){if(!n)throw new Bridge.global.System.ArgumentNullException.$ctor3("dest","Value cannot be null");if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor3("src","Value cannot be null");if(t<0||i<0||r<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bound","Number was less than the array's lower bound in the first dimension");if(r>e.length-t||r>n.length-i)throw new Bridge.global.System.ArgumentException.$ctor1("Destination array was not long enough. Check destIndex and length, and the array's lower bounds");if(t=0;)n[i+r]=e[t+r];else for(var o=0;o-1:n&&Bridge.isFunction(e[i="System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(n)+"$contains"])||Bridge.isFunction(e[i="System$Collections$IList$contains"])?e[i](t):!!Bridge.isFunction(e.contains)&&e.contains(t)},remove:function(e,t,n){var i,r;if(Bridge.global.System.Array.checkReadOnly(e,n),Bridge.isArray(e)){if((r=Bridge.global.System.Array.indexOf(e,t))>-1)return e.splice(r,1),!0}else{if(n&&Bridge.isFunction(e[i="System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(n)+"$remove"])||Bridge.isFunction(e[i="System$Collections$IList$remove"]))return e[i](t);if(Bridge.isFunction(e.remove))return e.remove(t)}return!1},insert:function(e,t,n,i){var r;Bridge.global.System.Array.checkReadOnly(e,i),i&&(n=Bridge.global.System.Array.checkNewElementType(n,i)),i&&Bridge.isFunction(e[r="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(i)+"$insert"])?e[r](t,n):Bridge.isFunction(e[r="System$Collections$IList$insert"])?e[r](t,n):Bridge.isFunction(e.insert)&&e.insert(t,n)},removeAt:function(e,t,n){var i;Bridge.global.System.Array.checkReadOnly(e,n),Bridge.isArray(e)?e.splice(t,1):n&&Bridge.isFunction(e[i="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(n)+"$removeAt"])?e[i](t):Bridge.isFunction(e[i="System$Collections$IList$removeAt"])?e[i](t):Bridge.isFunction(e.removeAt)&&e.removeAt(t)},getItem:function(e,t,n){var i,r;return Bridge.isArray(e)?e.$type&&null!=Bridge.getDefaultValue(e.$type.$elementType)?Bridge.box(e[t],e.$type.$elementType):e[t]:n&&Bridge.isFunction(e[i="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(n)+"$getItem"])?e[i](t):(Bridge.isFunction(e.get)?r=e.get(t):Bridge.isFunction(e.getItem)?r=e.getItem(t):Bridge.isFunction(e[i="System$Collections$IList$$getItem"])?r=e[i](t):Bridge.isFunction(e.get_Item)&&(r=e.get_Item(t)),n&&null!=Bridge.getDefaultValue(n)?Bridge.box(r,n):r)},setItem:function(e,t,n,i){var r;if(Bridge.isArray(e))e.$type&&(n=Bridge.global.System.Array.checkElementType(n,e.$type.$elementType)),e[t]=n;else if(i&&(n=Bridge.global.System.Array.checkElementType(n,i)),Bridge.isFunction(e.set))e.set(t,n);else if(Bridge.isFunction(e.setItem))e.setItem(t,n);else{if(i&&Bridge.isFunction(e[r="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(i)+"$setItem"])||i&&Bridge.isFunction(e[r="System$Collections$IList$setItem"]))return e[r](t,n);Bridge.isFunction(e.set_Item)&&e.set_Item(t,n)}},checkElementType:function(e,t){var n=Bridge.unbox(e,!0);if(Bridge.isNumber(n)){if(t===Bridge.global.System.Decimal)return new Bridge.global.System.Decimal(n);if(t===Bridge.global.System.Int64)return new Bridge.global.System.Int64(n);if(t===Bridge.global.System.UInt64)return new Bridge.global.System.UInt64(n)}if(!Bridge.is(e,t)){if(null==e)return Bridge.getDefaultValue(t);throw new Bridge.global.System.ArgumentException.$ctor1("Cannot widen from source type to target type either because the source type is a not a primitive type or the conversion cannot be accomplished.")}return n},resize:function(e,t,n){var i;if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor3("newSize",t,"newSize cannot be less than 0.");var r=0,o=Bridge.isFunction(n),s=e.v;for(s?(r=s.length,s.length=t):s=new Array(t),i=r;i>1);try{l=Bridge.global.System.Collections.Generic.Comparer$1.get(r)(e[a],i)}catch(e){throw new Bridge.global.System.InvalidOperationException.$ctor2("Failed to compare two elements in the array.",e)}if(0===l)return a;l<0?o=a+1:s=a-1}return~o},sort:function(e,t,n,i){var r,o;if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2!==arguments.length||"function"!=typeof t)if(2===arguments.length&&"object"==typeof t&&(i=t,t=null),Bridge.isNumber(t)||(t=0),Bridge.isNumber(n)||(n=e.length),i||(i=Bridge.global.System.Collections.Generic.Comparer$1.$default),0===t&&n===e.length)e.sort(Bridge.fn.bind(i,Bridge.global.System.Collections.Generic.Comparer$1.get(i)));else for((r=e.slice(t,t+n)).sort(Bridge.fn.bind(i,Bridge.global.System.Collections.Generic.Comparer$1.get(i))),o=t;on||n>t)||e[r]>t||(n=e[r]);return n},addRange:function(e,t){if(Bridge.isArray(t))e.push.apply(e,t);else{var n=Bridge.getEnumerator(t);try{for(;n.moveNext();)e.push(n.Current)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.Dispose()}}},convertAll:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("converter");return e.map(t)},find:function(e,t,n){if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(n))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var i=0;ie.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0||t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(!Bridge.hasValue(i))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(r=t+n,o=t;o=0;i--)if(n(t[i]))return t[i];return Bridge.getDefaultValue(e)},findLastIndex:function(e,t,n,i){var r,o;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2===arguments.length?(i=t,t=e.length-1,n=e.length):3===arguments.length&&(i=n,n=t+1),!Bridge.hasValue(i))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");if(0===e.length){if(-1!==t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex")}else if(t<0||t>=e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0||t-n+1<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");for(r=t-n,o=t;o>r;o--)if(i(e[o]))return o;return-1},forEach:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("action");for(var n=0;n=e.length&&e.length>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","out of range");if(i<0||i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","out of range");return Bridge.global.System.Array.indexOf(e,t,n,i)},isFixedSize:function(){return!0},isSynchronized:function(){return!1},lastIndexOfT:function(e,t,n,i){var r,o,s;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2===arguments.length?(n=e.length-1,i=e.length):3===arguments.length&&(i=0===e.length?0:n+1),n<0||n>=e.length&&e.length>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","out of range");if(i<0||n-i+1<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","out of range");for(r=n-i+1,o=n;o>=r;o--)if((s=e[o])===t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default.equals2(s,t))return o;return-1},syncRoot:function(e){return e},trueForAll:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var n=0;n=this.entries[r[o]].length-1)&&(i=-1,o++),!(o>=r.length||(i++,0))},function(){return o<0||o>=r.length?new(Bridge.global.System.Collections.Generic.KeyValuePair$2(e,t)):n(this.isSimpleKey?this.entries[r[o]]:this.entries[r[o]][i])},function(){o=-1},null,this,Bridge.global.System.Collections.Generic.KeyValuePair$2(e,t))},GetEnumerator:function(){return this.getCustomEnumerator(function(e){return e})}}}),Bridge.global.System.Collections.Generic.Dictionary$2.getTypeParameters=function(e){var t,n,i;if(Bridge.global.System.String.startsWith(e.$$name,"System.Collections.Generic.IDictionary"))t=e;else for(n=Bridge.Reflection.getInterfaces(e),i=0;i0){var n=Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e);this._size>0&&Bridge.global.System.Array.copy(this._items,0,n,0,this._size),this._items=n}else this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray}},Count:{get:function(){return this._size}},System$Collections$IList$IsFixedSize:{get:function(){return!1}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return!1}},System$Collections$IList$IsReadOnly:{get:function(){return!1}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"setItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$IReadOnlyList$1$setItem"],"getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$IList$clear","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","removeAt","System$Collections$IList$removeAt","removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt"],ctors:{ctor:function(){this.$initialize(),this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray},$ctor2:function(t){if(this.$initialize(),t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("capacity");this._items=0===t?Bridge.global.System.Collections.Generic.List$1(e)._emptyArray:Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e)},$ctor1:function(t){var n,i,r;if(this.$initialize(),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e))))0===(i=Bridge.global.System.Array.getCount(n,e))?this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray:(this._items=Bridge.global.System.Array.init(i,function(){return Bridge.getDefaultValue(e)},e),Bridge.global.System.Array.copyTo(n,this._items,0,e),this._size=i);else{this._size=0,this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray,r=Bridge.getEnumerator(t,e);try{for(;r.System$Collections$IEnumerator$moveNext();)this.add(r[Bridge.geti(r,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")])}finally{Bridge.hasValue(r)&&r.System$IDisposable$Dispose()}}}},methods:{getItem:function(e){if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;return this._items[Bridge.global.System.Array.index(e,this._items)]},setItem:function(e,t){if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;this._items[Bridge.global.System.Array.index(e,this._items)]=t,this._version=this._version+1|0},System$Collections$IList$getItem:function(e){return this.getItem(e)},System$Collections$IList$setItem:function(t,n){if(null==n&&null!=Bridge.getDefaultValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("value");try{this.setItem(t,Bridge.cast(Bridge.unbox(n),e))}catch(e){throw e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.InvalidCastException)?new Bridge.global.System.ArgumentException.$ctor1("value"):e}},add:function(e){this._size===this._items.length&&this.EnsureCapacity(this._size+1|0),this._items[Bridge.global.System.Array.index(Bridge.identity(this._size,this._size=this._size+1|0),this._items)]=e,this._version=this._version+1|0},System$Collections$IList$add:function(t){if(null==t&&null!=Bridge.getDefaultValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("item");try{this.add(Bridge.cast(Bridge.unbox(t),e))}catch(e){throw e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.InvalidCastException)?new Bridge.global.System.ArgumentException.$ctor1("item"):e}return this.Count-1|0},AddRange:function(e){this.InsertRange(this._size,e)},AsReadOnly:function(){return new(Bridge.global.System.Collections.ObjectModel.ReadOnlyCollection$1(e))(this)},BinarySearch$2:function(e,t,n,i){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((this._size-e|0)0&&(Bridge.global.System.Array.fill(this._items,Bridge.getDefaultValue(e),0,this._size),this._size=0),this._version=this._version+1|0},contains:function(t){var n,i,r;if(null==t){for(n=0;n>>0>2146435071&&(n=2146435071),n>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t<0||e>(this._size-t|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(Bridge.staticEquals(n,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(i=e+t|0,r=e;r=0;n=n-1|0)if(t(this._items[Bridge.global.System.Array.index(n,this._items)]))return this._items[Bridge.global.System.Array.index(n,this._items)];return Bridge.getDefaultValue(e)},FindLastIndex$2:function(e){return this.FindLastIndex(this._size-1|0,this._size,e)},FindLastIndex$1:function(e,t){return this.FindLastIndex(e,e+1|0,t)},FindLastIndex:function(e,t,n){var i,r;if(Bridge.staticEquals(n,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");if(0===this._size){if(-1!==e)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex")}else if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t<0||(1+(e-t|0)|0)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");for(i=e-t|0,r=e;r>i;r=r-1|0)if(n(this._items[Bridge.global.System.Array.index(r,this._items)]))return r;return-1},ForEach:function(e){var t,n;if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(t=this._version,n=0;nthis._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");return Bridge.global.System.Array.indexOfT(this._items,e,t,this._size-t|0)},IndexOf$1:function(e,t,n){if(t>this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0||t>(this._size-n|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");return Bridge.global.System.Array.indexOfT(this._items,e,t,n)},insert:function(e,t){if(e>>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");this._size===this._items.length&&this.EnsureCapacity(this._size+1|0),e>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(null!=(i=Bridge.as(n,Bridge.global.System.Collections.Generic.ICollection$1(e))))(r=Bridge.global.System.Array.getCount(i,e))>0&&(this.EnsureCapacity(this._size+r|0),t=this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");return this.LastIndexOf$2(e,t,t+1|0)},LastIndexOf$2:function(e,t,n){if(0!==this.Count&&t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(0!==this.Count&&n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(0===this._size)return-1;if(t>=this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n>(t+1|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");return Bridge.global.System.Array.lastIndexOfT(this._items,e,t,n)},remove:function(e){var t=this.indexOf(e);return t>=0&&(this.removeAt(t),!0)},System$Collections$IList$remove:function(t){Bridge.global.System.Collections.Generic.List$1(e).IsCompatibleObject(t)&&this.remove(Bridge.cast(Bridge.unbox(t),e))},RemoveAll:function(t){var n,i,r;if(Bridge.staticEquals(t,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(n=0;n=this._size)return 0;for(i=n+1|0;i>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;this._size=this._size-1|0,t0&&(this._size,this._size=this._size-n|0,t0)if(this._items.length===this._size)Bridge.global.System.Array.sort(this._items,t);else{var n=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);Bridge.global.System.Array.copy(this._items,0,n,0,this._size),Bridge.global.System.Array.sort(n,t),Bridge.global.System.Array.copy(n,0,this._items,0,this._size)}},ToArray:function(){var t=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);return Bridge.global.System.Array.copy(this._items,0,t,0,this._size),t},TrimExcess:function(){var e=Bridge.Int.clip32(.9*this._items.length);this._size0&&Bridge.global.System.Array.copy(this._items,0,t,0,this._size),t}}}}),Bridge.define("System.Collections.Generic.KeyNotFoundException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"The given key was not present in the dictionary."),this.HResult=-2146232969},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146232969},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146232969}}}),Bridge.global.System.Collections.Generic.List$1.getElementType=function(e){var t,n,i;if(Bridge.global.System.String.startsWith(e.$$name,"System.Collections.Generic.IList"))t=e;else for(n=Bridge.Reflection.getInterfaces(e),i=0;i=this._str.length)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration already finished.");return this._currentElement}}},alias:["clone","System$ICloneable$clone","moveNext","System$Collections$IEnumerator$moveNext","Dispose","System$IDisposable$Dispose","Current",["System$Collections$Generic$IEnumerator$1$System$Char$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"],"reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e){this.$initialize(),this._str=e,this._index=-1}},methods:{clone:function(){return Bridge.clone(this)},moveNext:function(){return this._index<(this._str.length-1|0)?(this._index=this._index+1|0,this._currentElement=this._str.charCodeAt(this._index),!0):(this._index=this._str.length,!1)},Dispose:function(){null!=this._str&&(this._index=this._str.length),this._str=null},reset:function(){this._currentElement=0,this._index=-1}}}),Bridge.define("System.String",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.Char)],statics:{$is:function(e){return"string"==typeof e},charCodeAt:function(e,t){t=t||0;var n,i,r=e.charCodeAt(t);if(55296<=r&&r<=56319){if(n=r,i=e.charCodeAt(t+1),isNaN(i))throw new Bridge.global.System.Exception("High surrogate not followed by low surrogate");return 1024*(n-55296)+(i-56320)+65536}return!(56320<=r&&r<=57343)&&r},fromCharCode:function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)},fromCharArray:function(e,t,n){var i,r,o;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("chars");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("length");if(e.length-te.length&&(n=e.length-t),r=0;r=r;o--)if(t.indexOf(e.charAt(o))>=0)return o;return-1},isNullOrWhiteSpace:function(e){return!e||Bridge.global.System.Char.isWhiteSpace(e)},isNullOrEmpty:function(e){return!e},fromCharCount:function(e,t){if(t>=0)return String(Array(t+1).join(String.fromCharCode(e)));throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero")},format:function(e,t){return Bridge.global.System.String._format(Bridge.global.System.Globalization.CultureInfo.getCurrentCulture(),e,Array.isArray(t)&&2==arguments.length?t:Array.prototype.slice.call(arguments,1))},formatProvider:function(e,t,n){return Bridge.global.System.String._format(e,t,Array.isArray(n)&&3==arguments.length?n:Array.prototype.slice.call(arguments,2))},_format:function(e,t,n){if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("format");var i=this,r=this.decodeBraceSequence;return t.replace(/(\{+)((\d+|[a-zA-Z_$]\w+(?:\.[a-zA-Z_$]\w+|\[\d+\])*)(?:\,(-?\d*))?(?:\:([^\}]*))?)(\}+)|(\{+)|(\}+)/g,function(t,o,s,a,l,u,d,c,g){return c?r(c):g?r(g):o.length%2==0||d.length%2==0?r(o)+s+r(d):r(o,!0)+i.handleElement(e,a,l,u,n)+r(d,!0)})},handleElement:function(e,t,n,i,r){var o;if((t=parseInt(t,10))>r.length-1)throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");return null==(o=r[t])&&(o=""),i&&o.$boxed&&"enum"===o.type.$kind?o=Bridge.global.System.Enum.format(o.type,o.v,i):i&&o.$boxed&&o.type.format?o=o.type.format(Bridge.unbox(o,!0),i,e):i&&Bridge.is(o,Bridge.global.System.IFormattable)&&(o=Bridge.format(Bridge.unbox(o,!0),i,e)),o=Bridge.isNumber(o)?Bridge.Int.format(o,i,e):Bridge.isDate(o)?Bridge.global.System.DateTime.format(o,i,e):""+Bridge.toString(o),n&&(n=parseInt(n,10),Bridge.isNumber(n)||(n=null)),Bridge.global.System.String.alignString(Bridge.toString(o),n)},decodeBraceSequence:function(e,t){return e.substr(0,(e.length+(t?0:1))/2)},alignString:function(e,t,n,i,r){if(null==e||!t)return e;if(n||(n=" "),Bridge.isNumber(n)&&(n=String.fromCharCode(n)),i||(i=t<0?1:2),t=Math.abs(t),r&&e.length>t&&(e=e.substring(0,t)),t+1>=e.length)switch(i){case 2:e=Array(t+1-e.length).join(n)+e;break;case 3:var o=t-e.length,s=Math.ceil(o/2);e=Array(o-s+1).join(n)+e+Array(s+1).join(n);break;case 1:default:e+=Array(t+1-e.length).join(n)}return e},startsWith:function(e,t){return!t.length||!(t.length>e.length)&&Bridge.global.System.String.equals(e.slice(0,t.length),t,arguments[2])},endsWith:function(e,t){return!t.length||!(t.length>e.length)&&Bridge.global.System.String.equals(e.slice(e.length-t.length,e.length),t,arguments[2])},contains:function(e,t){if(null==t)throw new Bridge.global.System.ArgumentNullException;return null!=e&&e.indexOf(t)>-1},indexOfAny:function(e,t){var n,i,r,o,s,a;if(null==t)throw new Bridge.global.System.ArgumentNullException;if(null==e||""===e)return-1;if((n=arguments.length>2?arguments[2]:0)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero");if((i=arguments.length>3?arguments[3]:e.length-n)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index and length must refer to a location within the string");for(r=e.substr(n,i),o=0;o-1)return a+n;return-1},indexOf:function(e,t){var n,i,r,o;if(null==t)throw new Bridge.global.System.ArgumentNullException;if(null==e||""===e)return-1;if((n=arguments.length>2?arguments[2]:0)<0||n>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero and must refer to a location within the string");if(""===t)return arguments.length>2?n:0;if((i=arguments.length>3?arguments[3]:e.length-n)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index and length must refer to a location within the string");return r=e.substr(n,i),(o=5===arguments.length&&arguments[4]%2!=0?r.toLocaleUpperCase().indexOf(t.toLocaleUpperCase()):r.indexOf(t))>-1?5===arguments.length?0===Bridge.global.System.String.compare(t,r.substr(o,t.length),arguments[4])?o+n:-1:o+n:-1},equals:function(){return 0===Bridge.global.System.String.compare.apply(this,arguments)},compare:function(e,t){if(null==e)return null==t?0:-1;if(null==t)return 1;if(arguments.length>=3)if(Bridge.isBoolean(arguments[2])){if(arguments[2]&&(e=e.toLocaleUpperCase(),t=t.toLocaleUpperCase()),4===arguments.length)return e.localeCompare(t,arguments[3].name)}else switch(arguments[2]){case 1:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture().name,{sensitivity:"accent"});case 2:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.invariantCulture.name);case 3:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.invariantCulture.name,{sensitivity:"accent"});case 4:return e===t?0:e>t?1:-1;case 5:return e.toUpperCase()===t.toUpperCase()?0:e.toUpperCase()>t.toUpperCase()?1:-1}return e.localeCompare(t)},toCharArray:function(e,t,n){var i,r;if(t<0||t>e.length||t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero and must refer to a location within the string");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");for(Bridge.hasValue(t)||(t=0),Bridge.hasValue(n)||(n=e.length),i=[],r=t;r0?t.substring(0,e)+n+t.substring(e,t.length):n+t},remove:function(e,t,n){if(null==e)throw new Bridge.global.System.NullReferenceException;if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","StartIndex cannot be less than zero");if(null!=n){if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than zero");if(n>e.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Index and count must refer to a location within the string")}else if(t>=e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex must be less than length of string");return null==n||t+n>e.length?e.substr(0,t):e.substr(0,t)+e.substr(t+n)},split:function(e,t,n,i){for(var r,o=Bridge.hasValue(t)&&0!==t.length?new RegExp(t.map(Bridge.global.System.String.escape).join("|"),"g"):new RegExp("\\s","g"),s=[],a=0;;a=o.lastIndex){if(!(r=o.exec(e)))return(1!==i||a!==e.length)&&s.push(e.substr(a)),s;if(1!==i||r.index>a){if(s.length===n-1)return s.push(e.substr(a)),s;s.push(e.substring(a,r.index))}}},trimEnd:function(e,t){return e.replace(t?new RegExp("["+Bridge.global.System.String.escape(String.fromCharCode.apply(null,t))+"]+$"):/\s*$/,"")},trimStart:function(e,t){return e.replace(t?new RegExp("^["+Bridge.global.System.String.escape(String.fromCharCode.apply(null,t))+"]+"):/^\s*/,"")},trim:function(e,t){return Bridge.global.System.String.trimStart(Bridge.global.System.String.trimEnd(e,t),t)},trimStartZeros:function(e){return e.replace(new RegExp("^[ 0+]+(?=.)"),"")},concat:function(e){for(var t=1==arguments.length&&Array.isArray(e)?e:[].slice.call(arguments),n="",i=0;ie.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("sourceIndex");if(i>n.length-r||i<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("destinationIndex");if(r>0)for(var o=0;o0?r.setException(s):o?r.setCanceled():r.setResult(t))})}(i);return r.task},whenAny:function(e){if(Bridge.is(e,Bridge.global.System.Collections.IEnumerable)?e=Bridge.toArray(e):Bridge.isArray(e)||(e=Array.prototype.slice.call(arguments,0)),!e.length)throw new Bridge.global.System.ArgumentException.$ctor1("At least one task is required");for(var t=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,n=0;n=0?e:arguments.length+e]}}(t):"function"!=typeof t&&(t=function(){return Array.prototype.slice.call(arguments,0)}),e.then(function(){r.setResult(t?t.apply(null,arguments):Array.prototype.slice.call(arguments,0))},function(){r.setException(n?n.apply(null,arguments):new Bridge.PromiseException(Array.prototype.slice.call(arguments,0)))},i),r.task}},continueWith:function(e,t){var n=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,i=this,r=t?function(){n.setResult(e(i))}:function(){try{n.setResult(e(i))}catch(e){n.setException(Bridge.global.System.Exception.create(e))}};return this.isCompleted()?(Bridge.global.System.Threading.Tasks.Task.queue.push(r),Bridge.global.System.Threading.Tasks.Task.runQueue()):this.callbacks.push(r),n.task},start:function(){if(this.status!==Bridge.global.System.Threading.Tasks.TaskStatus.created)throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already started.");var e=this;this.status=Bridge.global.System.Threading.Tasks.TaskStatus.running,Bridge.global.System.Threading.Tasks.Task.schedule(function(){try{var t=e.action(e.state);delete e.action,delete e.state,e.complete(t)}catch(t){e.fail(new Bridge.global.System.AggregateException(null,[Bridge.global.System.Exception.create(t)]))}})},runCallbacks:function(){for(var e=this,t=0;t0?this.exception.innerExceptions.getItem(0):null:this.exception;default:throw new Bridge.global.System.InvalidOperationException.$ctor1("Task is not yet completed.")}},getResult:function(){return this._getResult(!1)},dispose:function(){},getAwaiter:function(){return this},getAwaitedResult:function(){return this._getResult(!0)}}),Bridge.define("System.Threading.Tasks.Task$1",function(){return{inherits:[Bridge.global.System.Threading.Tasks.Task],ctor:function(e,t){this.$initialize(),Bridge.global.System.Threading.Tasks.Task.ctor.call(this,e,t)}}}),Bridge.define("System.Threading.Tasks.TaskStatus",{$kind:"enum",$statics:{created:0,waitingForActivation:1,waitingToRun:2,running:3,waitingForChildrenToComplete:4,ranToCompletion:5,canceled:6,faulted:7}}),Bridge.define("System.Threading.Tasks.TaskCompletionSource",{ctor:function(){this.$initialize(),this.task=new Bridge.global.System.Threading.Tasks.Task,this.task.status=Bridge.global.System.Threading.Tasks.TaskStatus.running},setCanceled:function(){if(!this.task.cancel())throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},setResult:function(e){if(!this.task.complete(e))throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},setException:function(e){if(!this.trySetException(e))throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},trySetCanceled:function(){return this.task.cancel()},trySetResult:function(e){return this.task.complete(e)},trySetException:function(e){return Bridge.is(e,Bridge.global.System.Exception)&&(e=[e]),this.task.fail(new Bridge.global.System.AggregateException(null,e))}}),Bridge.define("System.Threading.CancellationTokenSource",{inherits:[Bridge.global.System.IDisposable],config:{alias:["dispose","System$IDisposable$Dispose"]},ctor:function(e){this.$initialize(),this.timeout="number"==typeof e&&e>=0?setTimeout(Bridge.fn.bind(this,this.cancel),e,-1):null,this.isCancellationRequested=!1,this.token=new Bridge.global.System.Threading.CancellationToken(this),this.handlers=[]},cancel:function(e){var t,n,i;if(!this.isCancellationRequested){for(this.isCancellationRequested=!0,t=[],n=this.handlers,this.clean(),i=0;i0&&-1!==e)throw new Bridge.global.System.AggregateException(null,t)}},cancelAfter:function(e){this.isCancellationRequested||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(Bridge.fn.bind(this,this.cancel),e,-1))},register:function(e,t){if(this.isCancellationRequested)return e(t),new Bridge.global.System.Threading.CancellationTokenRegistration;var n={f:e,s:t};return this.handlers.push(n),new Bridge.global.System.Threading.CancellationTokenRegistration(this,n)},deregister:function(e){var t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)},dispose:function(){this.clean()},clean:function(){if(this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.handlers=[],this.links){for(var e=0;e19)return!1;n=/[^0-9 \-]+/,s=!0}if(!n.test(e))return!1;for(i=0,r=2-(e=e.split(s?"-":/[- ]/).join("")).length%2;r<=e.length;r+=2)i+=parseInt(e.charAt(r-1));for(r=e.length%2+1;r0}}}),Bridge.define("System.SerializableAttribute",{inherits:[Bridge.global.System.Attribute],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.ComponentModel.INotifyPropertyChanged",{$kind:"interface"}),Bridge.define("System.ComponentModel.PropertyChangedEventArgs",{ctor:function(e,t,n){this.$initialize(),this.propertyName=e,this.newValue=t,this.oldValue=n}}),(h={}).convert={typeCodes:{Empty:0,Object:1,DBNull:2,Boolean:3,Char:4,SByte:5,Byte:6,Int16:7,UInt16:8,Int32:9,UInt32:10,Int64:11,UInt64:12,Single:13,Double:14,Decimal:15,DateTime:16,String:18},toBoolean:function(e,t){var n,i;switch(typeof(e=Bridge.unbox(e,!0))){case"boolean":return e;case"number":return 0!==e;case"string":if("true"===(n=e.toLowerCase().trim()))return!0;if("false"===n)return!1;throw new Bridge.global.System.FormatException.$ctor1("String was not recognized as a valid Boolean.");case"object":if(null==e)return!1;if(e instanceof Bridge.global.System.Decimal)return!e.isZero();if(Bridge.global.System.Int64.is64Bit(e))return e.ne(0)}return i=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(i,h.convert.typeCodes.Boolean),h.convert.convertToType(h.convert.typeCodes.Boolean,e,t||null)},toChar:function(e,t,n){var i,r=h.convert.typeCodes,o=Bridge.is(e,Bridge.global.System.Char);if((e=Bridge.unbox(e,!0))instanceof Bridge.global.System.Decimal&&(e=e.toFloat()),(e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64)&&(e=e.toNumber()),i=typeof e,(n=n||h.internal.suggestTypeCode(e))===r.String&&null==e&&(i="string"),n!==r.Object||o)switch(i){case"boolean":h.internal.throwInvalidCastEx(r.Boolean,r.Char);case"number":return(h.internal.isFloatingType(n)||e%1!=0)&&h.internal.throwInvalidCastEx(n,r.Char),h.internal.validateNumberRange(e,r.Char,!0),e;case"string":if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");if(1!==e.length)throw new Bridge.global.System.FormatException.$ctor1("String must be exactly one character long.");return e.charCodeAt(0)}if(n===r.Object||"object"===i){if(null==e)return 0;Bridge.isDate(e)&&h.internal.throwInvalidCastEx(r.DateTime,r.Char)}return h.internal.throwInvalidCastEx(n,h.convert.typeCodes.Char),h.convert.convertToType(r.Char,e,t||null)},toSByte:function(e,t,n){return h.internal.toNumber(e,t||null,h.convert.typeCodes.SByte,n||null)},toByte:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Byte)},toInt16:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Int16)},toUInt16:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt16)},toInt32:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Int32)},toUInt32:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt32)},toInt64:function(e,t){var n=h.internal.toNumber(e,t||null,h.convert.typeCodes.Int64);return new Bridge.global.System.Int64(n)},toUInt64:function(e,t){var n=h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt64);return new Bridge.global.System.UInt64(n)},toSingle:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Single)},toDouble:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Double)},toDecimal:function(e,t){return e instanceof Bridge.global.System.Decimal?e:new Bridge.global.System.Decimal(h.internal.toNumber(e,t||null,h.convert.typeCodes.Decimal))},toDateTime:function(e,t){var n,i,r=h.convert.typeCodes;switch(typeof(e=Bridge.unbox(e,!0))){case"boolean":h.internal.throwInvalidCastEx(r.Boolean,r.DateTime);case"number":n=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(n,r.DateTime);case"string":return Bridge.global.System.DateTime.parse(e,t||null);case"object":if(null==e)return h.internal.getMinValue(r.DateTime);if(Bridge.isDate(e))return e;e instanceof Bridge.global.System.Decimal&&h.internal.throwInvalidCastEx(r.Decimal,r.DateTime),e instanceof Bridge.global.System.Int64&&h.internal.throwInvalidCastEx(r.Int64,r.DateTime),e instanceof Bridge.global.System.UInt64&&h.internal.throwInvalidCastEx(r.UInt64,r.DateTime)}return i=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(i,h.convert.typeCodes.DateTime),h.convert.convertToType(r.DateTime,e,t||null)},toString:function(e,t,n){var i;if(e&&e.$boxed)return e.toString();switch(i=h.convert.typeCodes,typeof e){case"boolean":return e?"True":"False";case"number":return(n||null)===i.Char?String.fromCharCode(e):isNaN(e)?"NaN":(e%1!=0&&(e=parseFloat(e.toPrecision(15))),e.toString());case"string":return e;case"object":return null==e?"":e.toString!==Object.prototype.toString?e.toString():Bridge.isDate(e)?Bridge.global.System.DateTime.format(e,null,t||null):e instanceof Bridge.global.System.Decimal?e.isInteger()?e.toFixed(0,4):e.toPrecision(e.precision()):Bridge.global.System.Int64.is64Bit(e)?e.toString():e.format?e.format(null,t||null):Bridge.getTypeName(e)}return h.convert.convertToType(h.convert.typeCodes.String,e,t||null)},toNumberInBase:function(e,t,n){var i,r,o,s,a,l,u,d,c,g;if(2!==t&&8!==t&&10!==t&&16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");if(i=h.convert.typeCodes,null==e)return n===i.Int64?Bridge.global.System.Int64.Zero:n===i.UInt64?Bridge.global.System.UInt64.Zero:0;if(0===e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");e=e.toLowerCase();var m=h.internal.getMinValue(n),p=h.internal.getMaxValue(n),f=!1,y=0;if("-"===e[y]){if(10!==t)throw new Bridge.global.System.ArgumentException.$ctor1("String cannot contain a minus sign if the base is not 10.");if(m>=0)throw new Bridge.global.System.OverflowException.$ctor1("The string was being parsed as an unsigned number and could not have a negative sign.");f=!0,++y}else"+"===e[y]&&++y;if(16===t&&e.length>=2&&"0"===e[y]&&"x"===e[y+1]&&(y+=2),2===t)r=h.internal.charsToCodes("01");else if(8===t)r=h.internal.charsToCodes("01234567");else if(10===t)r=h.internal.charsToCodes("0123456789");else{if(16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");r=h.internal.charsToCodes("0123456789abcdef")}for(o={},s=0;s=a&&c<=l))throw g===y?new Bridge.global.System.FormatException.$ctor1("Could not find any recognizable digits."):new Bridge.global.System.FormatException.$ctor1("Additional non-parsable characters are at the end of the string.");if((u=n===i.Int64?new Bridge.global.System.Int64(Bridge.$Long.fromString(e,!1,t)):new Bridge.global.System.UInt64(Bridge.$Long.fromString(e,!0,t))).toString(t)!==Bridge.global.System.String.trimStartZeros(e))throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.");return u}for(u=0,d=p-m+1,g=y;g=a&&c<=l))throw g===y?new Bridge.global.System.FormatException.$ctor1("Could not find any recognizable digits."):new Bridge.global.System.FormatException.$ctor1("Additional non-parsable characters are at the end of the string.");if(u*=t,(u+=o[c])>h.internal.typeRanges.Int64_MaxValue)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.")}if(f&&(u*=-1),u>p&&10!==t&&m<0&&(u-=d),up)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.");return u},toStringInBase:function(e,t,n){var i,r,o,s,a,l,u,d;if(h.convert.typeCodes,e=Bridge.unbox(e,!0),2!==t&&8!==t&&10!==t&&16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");var c=h.internal.getMinValue(n),g=h.internal.getMaxValue(n),m=Bridge.global.System.Int64.is64Bit(e);if(m){if(e.lt(c)||e.gt(g))throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an unsigned byte.")}else if(eg)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an unsigned byte.");if(i=!1,m)return 10===t?e.toString():e.value.toUnsigned().toString(t);if(e<0&&(10===t?(i=!0,e*=-1):e=g+1-c+e),2===t)r="01";else if(8===t)r="01234567";else if(10===t)r="0123456789";else{if(16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");r="0123456789abcdef"}for(o={},s=r.split(""),l=0;l0;)e=(e-(d=e%t))/t,u+=o[d];return i&&(u+="-"),u.split("").reverse().join("")},toBase64String:function(e,t,n,i){var r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(t=t||0,n=null!=n?n:e.length,i=i||0,n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");if(i<0||i>1)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal enum value.");if(t>(r=e.length)-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Offset and length must refer to a position in the string.");if(0===r)return"";var o=1===i,s=h.internal.toBase64_CalculateAndValidateOutputLength(n,o),a=[];return a.length=s,h.internal.convertToBase64Array(a,e,t,n,o),a.join("")},toBase64CharArray:function(e,t,n,i,r,o){var s,a,l;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(null==i)throw new Bridge.global.System.ArgumentNullException.$ctor1("outArray");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetIn","Value must be positive.");if(r<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetOut","Value must be positive.");if((o=o||0)<0||o>1)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal enum value.");if(t>(s=e.length)-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetIn","Offset and length must refer to a position in the string.");if(0===s)return 0;var u=1===o;if(r>i.length-h.internal.toBase64_CalculateAndValidateOutputLength(n,u))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetOut","Either offset did not refer to a position in the string, or there is an insufficient length of destination character array.");return a=[],l=h.internal.convertToBase64Array(a,e,t,n,u),h.internal.charsToCodes(a,i,r),l},fromBase64String:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");var t=e.split("");return h.internal.fromBase64CharPtr(t,0,t.length)},fromBase64CharArray:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");if(t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Offset and length must refer to a position in the string.");var i=h.internal.codesToChars(e);return h.internal.fromBase64CharPtr(i,t,n)},convertToType:function(){throw new Bridge.global.System.NotSupportedException.$ctor1("IConvertible interface is not supported.")}},h.internal={base64Table:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/","="],typeRanges:{Char_MinValue:0,Char_MaxValue:65535,Byte_MinValue:0,Byte_MaxValue:255,SByte_MinValue:-128,SByte_MaxValue:127,Int16_MinValue:-32768,Int16_MaxValue:32767,UInt16_MinValue:0,UInt16_MaxValue:65535,Int32_MinValue:-2147483648,Int32_MaxValue:2147483647,UInt32_MinValue:0,UInt32_MaxValue:4294967295,Int64_MinValue:Bridge.global.System.Int64.MinValue,Int64_MaxValue:Bridge.global.System.Int64.MaxValue,UInt64_MinValue:Bridge.global.System.UInt64.MinValue,UInt64_MaxValue:Bridge.global.System.UInt64.MaxValue,Single_MinValue:-3.40282347e38,Single_MaxValue:3.40282347e38,Double_MinValue:-1.7976931348623157e308,Double_MaxValue:1.7976931348623157e308,Decimal_MinValue:Bridge.global.System.Decimal.MinValue,Decimal_MaxValue:Bridge.global.System.Decimal.MaxValue},base64LineBreakPosition:76,getTypeCodeName:function(e){var t,n,i,r=h.convert.typeCodes;if(null==h.internal.typeCodeNames){for(n in t={},r)r.hasOwnProperty(n)&&(t[r[n]]=n);h.internal.typeCodeNames=t}if(null==(i=h.internal.typeCodeNames[e]))throw Bridge.global.System.ArgumentOutOfRangeException("typeCode","The specified typeCode is undefined.");return i},suggestTypeCode:function(e){var t=h.convert.typeCodes;switch(typeof e){case"boolean":return t.Boolean;case"number":return e%1!=0?t.Double:t.Int32;case"string":return t.String;case"object":if(Bridge.isDate(e))return t.DateTime;if(null!=e)return t.Object}return null},getMinValue:function(e){var t=h.convert.typeCodes;switch(e){case t.Char:return h.internal.typeRanges.Char_MinValue;case t.SByte:return h.internal.typeRanges.SByte_MinValue;case t.Byte:return h.internal.typeRanges.Byte_MinValue;case t.Int16:return h.internal.typeRanges.Int16_MinValue;case t.UInt16:return h.internal.typeRanges.UInt16_MinValue;case t.Int32:return h.internal.typeRanges.Int32_MinValue;case t.UInt32:return h.internal.typeRanges.UInt32_MinValue;case t.Int64:return h.internal.typeRanges.Int64_MinValue;case t.UInt64:return h.internal.typeRanges.UInt64_MinValue;case t.Single:return h.internal.typeRanges.Single_MinValue;case t.Double:return h.internal.typeRanges.Double_MinValue;case t.Decimal:return h.internal.typeRanges.Decimal_MinValue;case t.DateTime:return Bridge.global.System.DateTime.getMinValue();default:return null}},getMaxValue:function(e){var t=h.convert.typeCodes;switch(e){case t.Char:return h.internal.typeRanges.Char_MaxValue;case t.SByte:return h.internal.typeRanges.SByte_MaxValue;case t.Byte:return h.internal.typeRanges.Byte_MaxValue;case t.Int16:return h.internal.typeRanges.Int16_MaxValue;case t.UInt16:return h.internal.typeRanges.UInt16_MaxValue;case t.Int32:return h.internal.typeRanges.Int32_MaxValue;case t.UInt32:return h.internal.typeRanges.UInt32_MaxValue;case t.Int64:return h.internal.typeRanges.Int64_MaxValue;case t.UInt64:return h.internal.typeRanges.UInt64_MaxValue;case t.Single:return h.internal.typeRanges.Single_MaxValue;case t.Double:return h.internal.typeRanges.Double_MaxValue;case t.Decimal:return h.internal.typeRanges.Decimal_MaxValue;case t.DateTime:return Bridge.global.System.DateTime.getMaxValue();default:throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("typeCode","The specified typeCode is undefined.")}},isFloatingType:function(e){var t=h.convert.typeCodes;return e===t.Single||e===t.Double||e===t.Decimal},toNumber:function(e,t,n,i){var r,o;e=Bridge.unbox(e,!0);var s=h.convert.typeCodes,a=typeof e,l=h.internal.isFloatingType(n);switch(i===s.String&&(a="string"),(Bridge.global.System.Int64.is64Bit(e)||e instanceof Bridge.global.System.Decimal)&&(a="number"),a){case"boolean":return e?1:0;case"number":return n===s.Decimal?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.Decimal(e,t)):n===s.Int64?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.Int64(e)):n===s.UInt64?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.UInt64(e)):(Bridge.global.System.Int64.is64Bit(e)?e=e.toNumber():e instanceof Bridge.global.System.Decimal&&(e=e.toFloat()),l||e%1==0||(e=h.internal.roundToInt(e,n)),l&&(r=h.internal.getMinValue(n),e>h.internal.getMaxValue(n)?e=1/0:ee||o.toNumber()e||o.toNumber()o)&&this.throwOverflow(s))},throwOverflow:function(e){throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for '"+e+"'.")},roundToInt:function(e,t){var n,i;if(e%1==0)return e;var r=e-(n=e>=0?Math.floor(e):-1*Math.floor(-e)),o=h.internal.getMinValue(t),s=h.internal.getMaxValue(t);if(e>=0){if(e.5||.5===r&&0!=(1&n))&&++n,n}else if(e>=o-.5)return(r<-.5||-.5===r&&0!=(1&n))&&--n,n;throw i=h.internal.getTypeCodeName(t),new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an '"+i+"'.")},toBase64_CalculateAndValidateOutputLength:function(e,t){var n,i=h.internal.base64LineBreakPosition,r=4*~~(e/3);if(0===(r+=e%3!=0?4:0))return 0;if(t&&(n=~~(r/i),r%i==0&&--n,r+=2*n),r>2147483647)throw new Bridge.global.System.OutOfMemoryException;return r},convertToBase64Array:function(e,t,n,i,r){for(var o=h.internal.base64Table,s=h.internal.base64LineBreakPosition,a=i%3,l=n+(i-a),u=0,d=0,c=n;c>2],e[d+1]=o[(3&t[c])<<4|(240&t[c+1])>>4],e[d+2]=o[(15&t[c+1])<<2|(192&t[c+2])>>6],e[d+3]=o[63&t[c+2]],d+=4;switch(c=l,r&&0!==a&&u===h.internal.base64LineBreakPosition&&(e[d++]="\r",e[d++]="\n"),a){case 2:e[d]=o[(252&t[c])>>2],e[d+1]=o[(3&t[c])<<4|(240&t[c+1])>>4],e[d+2]=o[(15&t[c+1])<<2],e[d+3]=o[64],d+=4;break;case 1:e[d]=o[(252&t[c])>>2],e[d+1]=o[(3&t[c])<<4],e[d+2]=o[64],e[d+3]=o[64],d+=4}return d},fromBase64CharPtr:function(e,t,n){var i,r,o;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("inputLength","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");for(;n>0&&(" "===(i=e[t+n-1])||"\n"===i||"\r"===i||"\t"===i);)n--;if(0>(r=h.internal.fromBase64_ComputeResultLength(e,t,n)))throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract voilation: 0 <= resultLength.");return(o=[]).length=r,h.internal.fromBase64_Decode(e,t,n,o,0,r),o},fromBase64_Decode:function(e,t,n,i,r,o){for(var s,a,l=r,u="A".charCodeAt(0),d="a".charCodeAt(0),c="0".charCodeAt(0),g="=".charCodeAt(0),m="+".charCodeAt(0),h="/".charCodeAt(0),p=" ".charCodeAt(0),f="\t".charCodeAt(0),y="\n".charCodeAt(0),S="\r".charCodeAt(0),b="Z".charCodeAt(0)-"A".charCodeAt(0),I="9".charCodeAt(0)-"0".charCodeAt(0),C=t+n,_=r+o,v=255,T=!1,x=!1;;){if(t>=C){T=!0;break}if(s=e[t].charCodeAt(0),t++,s-u>>>0<=b)s-=u;else if(s-d>>>0<=b)s-=d-26;else if(s-c>>>0<=I)s-=c-52;else switch(s){case m:s=62;break;case h:s=63;break;case S:case y:case p:case f:continue;case g:x=!0;break;default:throw new Bridge.global.System.FormatException.$ctor1("The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.")}if(x)break;if(0!=(2147483648&(v=v<<6|s))){if(_-r<3)return-1;i[r]=255&v>>16,i[r+1]=255&v>>8,i[r+2]=255&v,r+=3,v=255}}if(!T&&!x)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: should never get here.");if(x){if(s!==g)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: currCode == intEq.");if(t===C){if(0==(2147483648&(v<<=6)))throw new Bridge.global.System.FormatException.$ctor1("Invalid length for a Base-64 char array or string.");if(_-r<2)return-1;i[r]=255&v>>16,i[r+1]=255&v>>8,r+=2,v=255}else{for(;t>16,r++,v=255}}if(255!==v)throw new Bridge.global.System.FormatException.$ctor1("Invalid length for a Base-64 char array or string.");return r-l},fromBase64_ComputeResultLength:function(e,t,n){var i;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("inputLength","Index was out of range. Must be non-negative and less than the size of the collection.");for(var r=t+n,o=n,s=0;ts)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: 0 <= padding.");if(0!==s)if(1===s)s=2;else{if(2!==s)throw new Bridge.global.System.FormatException.$ctor1("The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.");s=1}return 3*~~(o/4)+s},charsToCodes:function(e,t,n){if(null==e)return null;n=n||0,null==t&&((t=[]).length=e.length);for(var i=0;i-1)throw new Bridge.global.System.ArgumentException.$ctor1("Socket cannot have duplicate sub-protocols.","subProtocol");this.requestedSubProtocols.push(e)}}),Bridge.define("System.Net.WebSockets.WebSocketReceiveResult",{ctor:function(e,t,n,i,r){this.$initialize(),this.count=e,this.messageType=t,this.endOfMessage=n,this.closeStatus=i,this.closeStatusDescription=r},getCount:function(){return this.count},getMessageType:function(){return this.messageType},getEndOfMessage:function(){return this.endOfMessage},getCloseStatus:function(){return this.closeStatus},getCloseStatusDescription:function(){return this.closeStatusDescription}}),Bridge.assembly("System",{},function(){Bridge.define("System.Uri",{statics:{methods:{equals:function(e,t){return e==t||null!=e&&null!=t&&t.equals(e)},notEquals:function(e,t){return!Bridge.global.System.Uri.equals(e,t)}}},ctor:function(e){this.$initialize(),this.absoluteUri=e},getAbsoluteUri:function(){return this.absoluteUri},toJSON:function(){return this.absoluteUri},toString:function(){return this.absoluteUri},equals:function(e){return!(null==e||!Bridge.is(e,Bridge.global.System.Uri))&&this.absoluteUri===e.absoluteUri}})},!0),Bridge.define("Bridge.GeneratorEnumerable",{inherits:[Bridge.global.System.Collections.IEnumerable],config:{alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator"]},ctor:function(e){this.$initialize(),this.GetEnumerator=e,this.System$Collections$IEnumerable$GetEnumerator=e}}),Bridge.define("Bridge.GeneratorEnumerable$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerable$1(e)],config:{alias:["GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"]]},ctor:function(t){this.$initialize(),this.GetEnumerator=t,this["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator"]=t,this.System$Collections$Generic$IEnumerable$1$GetEnumerator=t}}}),Bridge.define("Bridge.GeneratorEnumerator",{inherits:[Bridge.global.System.Collections.IEnumerator],current:null,config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},ctor:function(e){this.$initialize(),this.moveNext=e,this.System$Collections$IEnumerator$moveNext=e},getCurrent:function(){return this.current},getCurrent$1:function(){return this.current},reset:function(){throw new Bridge.global.System.NotSupportedException}}),Bridge.define("Bridge.GeneratorEnumerator$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e),Bridge.global.System.IDisposable],current:null,config:{properties:{Current:{get:function(){return this.getCurrent()}},Current$1:{get:function(){return this.getCurrent()}}},alias:["getCurrent",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$getCurrent$1","System$Collections$Generic$IEnumerator$1$getCurrent$1"],"Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"],"Current","System$Collections$IEnumerator$Current","Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset"]},ctor:function(e,t){this.$initialize(),this.moveNext=e,this.System$Collections$IEnumerator$moveNext=e,this.final=t},getCurrent:function(){return this.current},getCurrent$1:function(){return this.current},System$Collections$IEnumerator$getCurrent:function(){return this.current},Dispose:function(){this.final&&this.final()},reset:function(){throw new Bridge.global.System.NotSupportedException}}}),function(e,t){var n,i,r,o,s,a,l,u,d,c,g,m={Identity:function(e){return e},True:function(){return!0},Blank:function(){}},h="number",p="string",f=typeof t,y="function",S={"":m.Identity},b={createLambda:function(e){var t,n,i,r,o,s,a,l,u,d,c;if(null==e)return m.Identity;if(typeof e===p){if(null!=(t=S[e]))return t;if(-1===e.indexOf("=>")){for(n=new RegExp("[$]+","g"),i=0;null!=(r=n.exec(e));)(o=r[0].length)>i&&(i=o);for(s=[],a=1;a<=i;a++){for(l="",u=0;u(.*)/),t=new Function(c[1],"return "+c[2]),S[e]=t,t}return e},isIEnumerable:function(e){if(typeof Enumerator!==f)try{return new Enumerator(e),!0}catch(e){}return!1},defineProperty:null!=Object.defineProperties?function(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})}:function(e,t,n){e[t]=n},compare:function(e,t){return e===t?0:e>t?1:-1},Dispose:function(e){null!=e&&e.Dispose()}},I=function(e,t,i){var r=new n,o=0;this.getCurrent=r.getCurrent,this.reset=function(){throw new Error("Reset is not supported")},this.moveNext=function(){try{switch(o){case 0:o=1,e();case 1:return!!t.apply(r)||(this.Dispose(),!1);case 2:return!1}}catch(e){throw this.Dispose(),e}},this.Dispose=function(){if(1==o)try{i()}finally{o=2}},this.System$IDisposable$Dispose=this.Dispose,this.getCurrent$1=this.getCurrent,this.System$Collections$IEnumerator$getCurrent=this.getCurrent,this.System$Collections$IEnumerator$moveNext=this.moveNext,this.System$Collections$IEnumerator$reset=this.reset,Object.defineProperties(this,{Current$1:{get:this.getCurrent,enumerable:!0},Current:{get:this.getCurrent,enumerable:!0},System$Collections$IEnumerator$Current:{get:this.getCurrent,enumerable:!0}})};I.$$inherits=[],Bridge.Class.addExtend(I,[Bridge.global.System.IDisposable,Bridge.global.System.Collections.IEnumerator]),n=function(){var e=null;this.getCurrent=function(){return e},this.yieldReturn=function(t){return e=t,!0},this.yieldBreak=function(){return!1}},(i=function(e){this.GetEnumerator=e}).$$inherits=[],Bridge.Class.addExtend(i,[Bridge.global.System.Collections.IEnumerable]),(i.Utils={}).createLambda=function(e){return b.createLambda(e)},i.Utils.createEnumerable=function(e){return new i(e)},i.Utils.createEnumerator=function(e,t,n){return new I(e,t,n)},i.Utils.extendTo=function(e){var t,n,r,o=e.prototype;for(n in e===Array?(t=l.prototype,b.defineProperty(o,"getSource",function(){return this})):(t=i.prototype,b.defineProperty(o,"GetEnumerator",function(){return i.from(this).GetEnumerator()})),t)r=t[n],o[n]!=r&&(null==o[n]||o[n+="ByLinq"]!=r)&&r instanceof Function&&b.defineProperty(o,n,r)},i.choice=function(){var e=arguments;return new i(function(){return new I(function(){e=e[0]instanceof Array?e[0]:null!=e[0].GetEnumerator?e[0].ToArray():e},function(){return this.yieldReturn(e[Math.floor(Math.random()*e.length)])},m.Blank)})},i.cycle=function(){var e=arguments;return new i(function(){var t=0;return new I(function(){e=e[0]instanceof Array?e[0]:null!=e[0].GetEnumerator?e[0].ToArray():e},function(){return t>=e.length&&(t=0),this.yieldReturn(e[t++])},m.Blank)})},r=new i(function(){return new I(m.Blank,function(){return!1},m.Blank)}),i.empty=function(){return r},i.from=function(e){if(null==e)return i.empty();if(e instanceof i)return e;if(typeof e==h||"boolean"==typeof e)return i.repeat(e,1);if(typeof e==p)return new i(function(){var t=0;return new I(m.Blank,function(){return t=t?this.yieldReturn(e):this.yieldBreak()},m.Blank)})},i.repeat=function(e,t){return null!=t?i.repeat(e).take(t):new i(function(){return new I(m.Blank,function(){return this.yieldReturn(e)},m.Blank)})},i.repeatWithFinalize=function(e,t){return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var n;return new I(function(){n=e()},function(){return this.yieldReturn(n)},function(){null!=n&&(t(n),n=null)})})},i.generate=function(e,t){return null!=t?i.generate(e).take(t):(e=b.createLambda(e),new i(function(){return new I(m.Blank,function(){return this.yieldReturn(e())},m.Blank)}))},i.toInfinity=function(e,t){return null==e&&(e=0),null==t&&(t=1),new i(function(){var n;return new I(function(){n=e-t},function(){return this.yieldReturn(n+=t)},m.Blank)})},i.toNegativeInfinity=function(e,t){return null==e&&(e=0),null==t&&(t=1),new i(function(){var n;return new I(function(){n=e+t},function(){return this.yieldReturn(n-=t)},m.Blank)})},i.unfold=function(e,t){return t=b.createLambda(t),new i(function(){var n,i=!0;return new I(m.Blank,function(){return i?(i=!1,n=e,this.yieldReturn(n)):(n=t(n),this.yieldReturn(n))},m.Blank)})},i.defer=function(e){return new i(function(){var t;return new I(function(){t=i.from(e()).GetEnumerator()},function(){return t.moveNext()?this.yieldReturn(t.Current):this.yieldBreak()},function(){b.Dispose(t)})})},i.prototype.traverseBreadthFirst=function(e,t){var n=this;return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var r,o=0,s=[];return new I(function(){r=n.GetEnumerator()},function(){for(;;){if(r.moveNext())return s.push(r.Current),this.yieldReturn(t(r.Current,o));var n=i.from(s).selectMany(function(t){return e(t)});if(!n.any())return!1;o++,s=[],b.Dispose(r),r=n.GetEnumerator()}},function(){b.Dispose(r)})})},i.prototype.traverseDepthFirst=function(e,t){var n=this;return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var r,o=[];return new I(function(){r=n.GetEnumerator()},function(){for(;;){if(r.moveNext()){var n=t(r.Current,o.length);return o.push(r),r=i.from(e(r.Current)).GetEnumerator(),this.yieldReturn(n)}if(o.length<=0)return!1;b.Dispose(r),r=o.pop()}},function(){try{b.Dispose(r)}finally{i.from(o).forEach(function(e){e.Dispose()})}})})},i.prototype.flatten=function(){var e=this;return new i(function(){var t,n=null;return new I(function(){t=e.GetEnumerator()},function(){for(;;){if(null!=n){if(n.moveNext())return this.yieldReturn(n.Current);n=null}if(t.moveNext()){if(t.Current instanceof Array){b.Dispose(n),n=i.from(t.Current).selectMany(m.Identity).flatten().GetEnumerator();continue}return this.yieldReturn(t.Current)}return!1}},function(){try{b.Dispose(t)}finally{b.Dispose(n)}})})},i.prototype.pairwise=function(e){var t=this;return e=b.createLambda(e),new i(function(){var n;return new I(function(){(n=t.GetEnumerator()).moveNext()},function(){var t=n.Current;return!!n.moveNext()&&this.yieldReturn(e(t,n.Current))},function(){b.Dispose(n)})})},i.prototype.scan=function(e,t){var n,r;return null==t?(t=b.createLambda(e),n=!1):(t=b.createLambda(t),n=!0),r=this,new i(function(){var i,o,s=!0;return new I(function(){i=r.GetEnumerator()},function(){if(s){if(s=!1,n)return this.yieldReturn(o=e);if(i.moveNext())return this.yieldReturn(o=i.Current)}return!!i.moveNext()&&this.yieldReturn(o=t(o,i.Current))},function(){b.Dispose(i)})})},i.prototype.select=function(e){if((e=b.createLambda(e)).length<=1)return new d(this,null,e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(e(n.Current,i++))},function(){b.Dispose(n)})})},i.prototype.selectMany=function(e,n){var r=this;return e=b.createLambda(e),null==n&&(n=function(e,t){return t}),n=b.createLambda(n),new i(function(){var o,s=t,a=0;return new I(function(){o=r.GetEnumerator()},function(){if(s===t&&!o.moveNext())return!1;do{if(null==s){var r=e(o.Current,a++);s=i.from(r).GetEnumerator()}if(s.moveNext())return this.yieldReturn(n(o.Current,s.Current));b.Dispose(s),s=null}while(o.moveNext());return!1},function(){try{b.Dispose(o)}finally{b.Dispose(s)}})})},i.prototype.where=function(e){if((e=b.createLambda(e)).length<=1)return new u(this,e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();)if(e(n.Current,i++))return this.yieldReturn(n.Current);return!1},function(){b.Dispose(n)})})},i.prototype.choose=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();){var t=e(n.Current,i++);if(null!=t)return this.yieldReturn(t)}return this.yieldBreak()},function(){b.Dispose(n)})})},i.prototype.ofType=function(e){var t=this;return new i(function(){var n;return new I(function(){n=Bridge.getEnumerator(t)},function(){for(;n.moveNext();){var t=Bridge.as(n.Current,e);if(Bridge.hasValue(t))return this.yieldReturn(t)}return!1},function(){b.Dispose(n)})})},i.prototype.zip=function(){var e,t=arguments,n=b.createLambda(arguments[arguments.length-1]),r=this;return 2==arguments.length?(e=arguments[0],new i(function(){var t,o,s=0;return new I(function(){t=r.GetEnumerator(),o=i.from(e).GetEnumerator()},function(){return!(!t.moveNext()||!o.moveNext())&&this.yieldReturn(n(t.Current,o.Current,s++))},function(){try{b.Dispose(t)}finally{b.Dispose(o)}})})):new i(function(){var e,o=0;return new I(function(){var n=i.make(r).concat(i.from(t).takeExceptLast().select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray();e=i.from(n)},function(){if(e.all(function(e){return e.moveNext()})){var t=e.select(function(e){return e.Current}).ToArray();return t.push(o++),this.yieldReturn(n.apply(null,t))}return this.yieldBreak()},function(){i.from(e).forEach(b.Dispose)})})},i.prototype.merge=function(){var e=arguments,t=this;return new i(function(){var n,r=-1;return new I(function(){n=i.make(t).concat(i.from(e).select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray()},function(){for(;n.length>0;){r=r>=n.length-1?0:r+1;var e=n[r];if(e.moveNext())return this.yieldReturn(e.Current);e.Dispose(),n.splice(r--,1)}return this.yieldBreak()},function(){i.from(n).forEach(b.Dispose)})})},i.prototype.join=function(e,n,r,o,s){n=b.createLambda(n),r=b.createLambda(r),o=b.createLambda(o);var a=this;return new i(function(){var l,u,d=null,c=0;return new I(function(){l=a.GetEnumerator(),u=i.from(e).toLookup(r,m.Identity,s)},function(){for(var e,i;;){if(null!=d){if((e=d[c++])!==t)return this.yieldReturn(o(l.Current,e));e=null,c=0}if(!l.moveNext())return!1;i=n(l.Current),d=u.get(i).ToArray()}},function(){b.Dispose(l)})})},i.prototype.groupJoin=function(e,t,n,r,o){t=b.createLambda(t),n=b.createLambda(n),r=b.createLambda(r);var s=this;return new i(function(){var a=s.GetEnumerator(),l=null;return new I(function(){a=s.GetEnumerator(),l=i.from(e).toLookup(n,m.Identity,o)},function(){if(a.moveNext()){var e=l.get(t(a.Current));return this.yieldReturn(r(a.Current,e))}return!1},function(){b.Dispose(a)})})},i.prototype.all=function(e){e=b.createLambda(e);var t=!0;return this.forEach(function(n){if(!e(n))return t=!1,!1}),t},i.prototype.any=function(e){e=b.createLambda(e);var t=this.GetEnumerator();try{if(0==arguments.length)return t.moveNext();for(;t.moveNext();)if(e(t.Current))return!0;return!1}finally{b.Dispose(t)}},i.prototype.isEmpty=function(){return!this.any()},i.prototype.concat=function(){var e,t,n=this;return 1==arguments.length?(e=arguments[0],new i(function(){var t,r;return new I(function(){t=n.GetEnumerator()},function(){if(null==r){if(t.moveNext())return this.yieldReturn(t.Current);r=i.from(e).GetEnumerator()}return!!r.moveNext()&&this.yieldReturn(r.Current)},function(){try{b.Dispose(t)}finally{b.Dispose(r)}})})):(t=arguments,new i(function(){var e;return new I(function(){e=i.make(n).concat(i.from(t).select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray()},function(){for(;e.length>0;){var t=e[0];if(t.moveNext())return this.yieldReturn(t.Current);t.Dispose(),e.splice(0,1)}return this.yieldBreak()},function(){i.from(e).forEach(b.Dispose)})}))},i.prototype.insert=function(e,t){var n=this;return new i(function(){var r,o,s=0,a=!1;return new I(function(){r=n.GetEnumerator(),o=i.from(t).GetEnumerator()},function(){return s==e&&o.moveNext()?(a=!0,this.yieldReturn(o.Current)):r.moveNext()?(s++,this.yieldReturn(r.Current)):!(a||!o.moveNext())&&this.yieldReturn(o.Current)},function(){try{b.Dispose(r)}finally{b.Dispose(o)}})})},i.prototype.alternate=function(e){var t=this;return new i(function(){var n,r,o,s;return new I(function(){o=e instanceof Array||null!=e.GetEnumerator?i.from(i.from(e).ToArray()):i.make(e),(r=t.GetEnumerator()).moveNext()&&(n=r.Current)},function(){for(;;){if(null!=s){if(s.moveNext())return this.yieldReturn(s.Current);s=null}if(null!=n||!r.moveNext()){if(null!=n){var e=n;return n=null,this.yieldReturn(e)}return this.yieldBreak()}n=r.Current,s=o.GetEnumerator()}},function(){try{b.Dispose(r)}finally{b.Dispose(s)}})})},i.prototype.contains=function(e,t){t=t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default;var n=this.GetEnumerator();try{for(;n.moveNext();)if(t.equals2(n.Current,e))return!0;return!1}finally{b.Dispose(n)}},i.prototype.defaultIfEmpty=function(e){var n=this;return e===t&&(e=null),new i(function(){var t,i=!0;return new I(function(){t=n.GetEnumerator()},function(){return t.moveNext()?(i=!1,this.yieldReturn(t.Current)):!!i&&(i=!1,this.yieldReturn(e))},function(){b.Dispose(t)})})},i.prototype.distinct=function(e){return this.except(i.empty(),e)},i.prototype.distinctUntilChanged=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i,r;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();){var t=e(n.Current);if(r)return r=!1,i=t,this.yieldReturn(n.Current);if(i!==t)return i=t,this.yieldReturn(n.Current)}return this.yieldBreak()},function(){b.Dispose(n)})})},i.prototype.except=function(e,t){var n=this;return new i(function(){var r,o;return new I(function(){r=n.GetEnumerator(),o=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t),i.from(e).forEach(function(e){o.containsKey(e)||o.add(e)})},function(){for(;r.moveNext();){var e=r.Current;if(!o.containsKey(e))return o.add(e),this.yieldReturn(e)}return!1},function(){b.Dispose(r)})})},i.prototype.intersect=function(e,t){var n=this;return new i(function(){var r,o,s;return new I(function(){r=n.GetEnumerator(),o=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t),i.from(e).forEach(function(e){o.containsKey(e)||o.add(e)}),s=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t)},function(){for(;r.moveNext();){var e=r.Current;if(!s.containsKey(e)&&o.containsKey(e))return s.add(e),this.yieldReturn(e)}return!1},function(){b.Dispose(r)})})},i.prototype.sequenceEqual=function(e,t){var n,r;t=t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default,n=this.GetEnumerator();try{r=i.from(e).GetEnumerator();try{for(;n.moveNext();)if(!r.moveNext()||!t.equals2(n.Current,r.Current))return!1;return!r.moveNext()}finally{b.Dispose(r)}}finally{b.Dispose(n)}},i.prototype.union=function(e,n){var r=this;return new i(function(){var o,s,a;return new I(function(){o=r.GetEnumerator(),a=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,n)},function(){var n;if(s===t){for(;o.moveNext();)if(n=o.Current,!a.containsKey(n))return a.add(n),this.yieldReturn(n);s=i.from(e).GetEnumerator()}for(;s.moveNext();)if(n=s.Current,!a.containsKey(n))return a.add(n),this.yieldReturn(n);return!1},function(){try{b.Dispose(o)}finally{b.Dispose(s)}})})},i.prototype.orderBy=function(e,t){return new o(this,e,t,!1)},i.prototype.orderByDescending=function(e,t){return new o(this,e,t,!0)},i.prototype.reverse=function(){var e=this;return new i(function(){var t,n;return new I(function(){t=e.ToArray(),n=t.length},function(){return n>0&&this.yieldReturn(t[--n])},m.Blank)})},i.prototype.shuffle=function(){var e=this;return new i(function(){var t;return new I(function(){t=e.ToArray()},function(){if(t.length>0){var e=Math.floor(Math.random()*t.length);return this.yieldReturn(t.splice(e,1)[0])}return!1},m.Blank)})},i.prototype.weightedSample=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.choose(function(t){var n=e(t);return n<=0?null:{value:t,bound:i+=n}}).ToArray()},function(){var e;if(n.length>0){for(var t=Math.floor(Math.random()*i)+1,r=-1,o=n.length;o-r>1;)e=Math.floor((r+o)/2),n[e].bound>=t?o=e:r=e;return this.yieldReturn(n[o].value)}return this.yieldBreak()},m.Blank)})},i.prototype.groupBy=function(e,t,n,r){var o=this;return e=b.createLambda(e),t=b.createLambda(t),null!=n&&(n=b.createLambda(n)),new i(function(){var i;return new I(function(){i=o.toLookup(e,t,r).toEnumerable().GetEnumerator()},function(){for(;i.moveNext();)return null==n?this.yieldReturn(i.Current):this.yieldReturn(n(i.Current.key(),i.Current));return!1},function(){b.Dispose(i)})})},i.prototype.partitionBy=function(e,t,n,r){var o,s=this;return e=b.createLambda(e),t=b.createLambda(t),r=r||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default,null==n?(o=!1,n=function(e,t){return new g(e,t)}):(o=!0,n=b.createLambda(n)),new i(function(){var a,l,u=[];return new I(function(){(a=s.GetEnumerator()).moveNext()&&(l=e(a.Current),u.push(t(a.Current)))},function(){for(var s,d;1==(s=a.moveNext())&&r.equals2(l,e(a.Current));)u.push(t(a.Current));return u.length>0&&(d=n(l,o?i.from(u):u),s?(l=e(a.Current),u=[t(a.Current)]):u=[],this.yieldReturn(d))},function(){b.Dispose(a)})})},i.prototype.buffer=function(e){var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){for(var t=[],i=0;n.moveNext();)if(t.push(n.Current),++i>=e)return this.yieldReturn(t);return t.length>0&&this.yieldReturn(t)},function(){b.Dispose(n)})})},i.prototype.aggregate=function(e,t,n){return(n=b.createLambda(n))(this.scan(e,t,n).last())},i.prototype.average=function(e,t){!e||t||Bridge.isFunction(e)||(t=e,e=null),e=b.createLambda(e);var n=t||0,i=0;if(this.forEach(function(t){(t=e(t))instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(t)?n=t.add(n):n instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(n)?n=n.add(t):n+=t,++i}),0===i)throw new Bridge.global.System.InvalidOperationException.$ctor1("Sequence contains no elements");return n instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(n)?n.div(i):n/i},i.prototype.nullableAverage=function(e,t){return this.any(Bridge.isNull)?null:this.average(e,t)},i.prototype.count=function(e){e=null==e?m.True:b.createLambda(e);var t=0;return this.forEach(function(n,i){e(n,i)&&++t}),t},i.prototype.max=function(e){return null==e&&(e=m.Identity),this.select(e).aggregate(function(e,t){return 1===Bridge.compare(e,t,!0)?e:t})},i.prototype.nullableMax=function(e){return this.any(Bridge.isNull)?null:this.max(e)},i.prototype.min=function(e){return null==e&&(e=m.Identity),this.select(e).aggregate(function(e,t){return-1===Bridge.compare(e,t,!0)?e:t})},i.prototype.nullableMin=function(e){return this.any(Bridge.isNull)?null:this.min(e)},i.prototype.maxBy=function(e){return e=b.createLambda(e),this.aggregate(function(t,n){return 1===Bridge.compare(e(t),e(n),!0)?t:n})},i.prototype.minBy=function(e){return e=b.createLambda(e),this.aggregate(function(t,n){return-1===Bridge.compare(e(t),e(n),!0)?t:n})},i.prototype.sum=function(e,t){!e||t||Bridge.isFunction(e)||(t=e,e=null),null==e&&(e=m.Identity);var n=this.select(e).aggregate(0,function(e,t){return e instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(e)?e.add(t):t instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(t)?t.add(e):e+t});return 0===n&&t?t:n},i.prototype.nullableSum=function(e,t){return this.any(Bridge.isNull)?null:this.sum(e,t)},i.prototype.elementAt=function(e){var t,n=!1;if(this.forEach(function(i,r){if(r==e)return t=i,n=!0,!1}),!n)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return t},i.prototype.elementAtOrDefault=function(e,n){n===t&&(n=null);var i,r=!1;return this.forEach(function(t,n){if(n==e)return i=t,r=!0,!1}),r?i:n},i.prototype.first=function(e){if(null!=e)return this.where(e).first();var t,n=!1;if(this.forEach(function(e){return t=e,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return t},i.prototype.firstOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).firstOrDefault(null,n);var i,r=!1;return this.forEach(function(e){return i=e,r=!0,!1}),r?i:n},i.prototype.last=function(e){if(null!=e)return this.where(e).last();var t,n=!1;if(this.forEach(function(e){n=!0,t=e}),!n)throw new Error("last:No element satisfies the condition.");return t},i.prototype.lastOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).lastOrDefault(null,n);var i,r=!1;return this.forEach(function(e){r=!0,i=e}),r?i:n},i.prototype.single=function(e){if(null!=e)return this.where(e).single();var t,n=!1;if(this.forEach(function(e){if(n)throw new Error("single:sequence contains more than one element.");n=!0,t=e}),!n)throw new Error("single:No element satisfies the condition.");return t},i.prototype.singleOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).singleOrDefault(null,n);var i,r=!1;return this.forEach(function(e){if(r)throw new Error("single:sequence contains more than one element.");r=!0,i=e}),r?i:n},i.prototype.skip=function(e){var t=this;return new i(function(){var n,i=0;return new I(function(){for(n=t.GetEnumerator();i++")})},i.prototype.force=function(){var e=this.GetEnumerator();try{for(;e.moveNext(););}finally{b.Dispose(e)}},i.prototype.letBind=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=i.from(e(t)).GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(n.Current)},function(){b.Dispose(n)})})},i.prototype.share=function(){var e,t=this,n=!1;return new a(function(){return new I(function(){null==e&&(e=t.GetEnumerator())},function(){if(n)throw new Error("enumerator is disposed");return!!e.moveNext()&&this.yieldReturn(e.Current)},m.Blank)},function(){n=!0,b.Dispose(e)})},i.prototype.memoize=function(){var e,t,n=this,i=!1;return new a(function(){var r=-1;return new I(function(){null==t&&(t=n.GetEnumerator(),e=[])},function(){if(i)throw new Error("enumerator is disposed");return r++,e.length<=r?!!t.moveNext()&&this.yieldReturn(e[r]=t.Current):this.yieldReturn(e[r])},m.Blank)},function(){i=!0,b.Dispose(t),e=null})},i.prototype.catchError=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){try{return!!n.moveNext()&&this.yieldReturn(n.Current)}catch(t){return e(t),!1}},function(){b.Dispose(n)})})},i.prototype.finallyAction=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(n.Current)},function(){try{b.Dispose(n)}finally{e()}})})},i.prototype.log=function(e){return e=b.createLambda(e),this.doAction(function(t){typeof console!==f&&console.log(e(t))})},i.prototype.trace=function(e,t){return null==e&&(e="Trace"),t=b.createLambda(t),this.doAction(function(n){typeof console!==f&&console.log(e,t(n))})},(o=function(e,t,n,i,r){this.source=e,this.keySelector=b.createLambda(t),this.comparer=n||Bridge.global.System.Collections.Generic.Comparer$1.$default,this.descending=i,this.parent=r}).prototype=new i,o.prototype.constructor=o,Bridge.definei("System.Linq.IOrderedEnumerable$1"),o.$$inherits=[],Bridge.Class.addExtend(o,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.IOrderedEnumerable$1]),o.prototype.createOrderedEnumerable=function(e,t,n){return new o(this.source,e,t,n,this)},o.prototype.thenBy=function(e,t){return this.createOrderedEnumerable(e,t,!1)},o.prototype.thenByDescending=function(e,t){return this.createOrderedEnumerable(e,t,!0)},o.prototype.GetEnumerator=function(){var e,t,n=this,i=0;return new I(function(){e=[],t=[],n.source.forEach(function(n,i){e.push(n),t.push(i)});var i=s.create(n,null);i.GenerateKeys(e),t.sort(function(e,t){return i.compare(e,t)})},function(){return i0:i.prototype.any.apply(this,arguments)},l.prototype.count=function(e){return null==e?this.getSource().length:i.prototype.count.apply(this,arguments)},l.prototype.elementAt=function(e){var t=this.getSource();return 0<=e&&e0?t[0]:i.prototype.first.apply(this,arguments)},l.prototype.firstOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return i.prototype.firstOrDefault.apply(this,arguments);var r=this.getSource();return r.length>0?r[0]:n},l.prototype.last=function(e){var t=this.getSource();return null==e&&t.length>0?t[t.length-1]:i.prototype.last.apply(this,arguments)},l.prototype.lastOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return i.prototype.lastOrDefault.apply(this,arguments);var r=this.getSource();return r.length>0?r[r.length-1]:n},l.prototype.skip=function(e){var t=this.getSource();return new i(function(){var n;return new I(function(){n=e<0?0:e},function(){return n0&&this.yieldReturn(e[--t])},m.Blank)})},l.prototype.sequenceEqual=function(e,t){return(!(e instanceof l||e instanceof Array)||null!=t||i.from(e).count()==this.count())&&i.prototype.sequenceEqual.apply(this,arguments)},l.prototype.toJoinedString=function(e,t){var n=this.getSource();return null==t&&n instanceof Array?(null==e&&(e=""),n.join(e)):i.prototype.toJoinedString.apply(this,arguments)},l.prototype.GetEnumerator=function(){return new Bridge.ArrayEnumerator(this.getSource())},(u=function(e,t){this.prevSource=e,this.prevPredicate=t}).prototype=new i,u.prototype.where=function(e){if((e=b.createLambda(e)).length<=1){var t=this.prevPredicate;return new u(this.prevSource,function(n){return t(n)&&e(n)})}return i.prototype.where.call(this,e)},u.prototype.select=function(e){return(e=b.createLambda(e)).length<=1?new d(this.prevSource,this.prevPredicate,e):i.prototype.select.call(this,e)},u.prototype.GetEnumerator=function(){var e,t=this.prevPredicate,n=this.prevSource;return new I(function(){e=n.GetEnumerator()},function(){for(;e.moveNext();)if(t(e.Current))return this.yieldReturn(e.Current);return!1},function(){b.Dispose(e)})},(d=function(e,t,n){this.prevSource=e,this.prevPredicate=t,this.prevSelector=n}).prototype=new i,d.prototype.where=function(e){return(e=b.createLambda(e)).length<=1?new u(this,e):i.prototype.where.call(this,e)},d.prototype.select=function(e){if((e=b.createLambda(e)).length<=1){var t=this.prevSelector;return new d(this.prevSource,this.prevPredicate,function(n){return e(t(n))})}return i.prototype.select.call(this,e)},d.prototype.GetEnumerator=function(){var e,t=this.prevPredicate,n=this.prevSelector,i=this.prevSource;return new I(function(){e=i.GetEnumerator()},function(){for(;e.moveNext();)if(null==t||t(e.Current))return this.yieldReturn(n(e.Current));return!1},function(){b.Dispose(e)})},c=function(e,t){this.count=function(){return e.getCount()},this.get=function(t){var n={v:null},r=e.tryGetValue(t,n);return i.from(r?n.v:[])},this.contains=function(t){return e.containsKey(t)},this.toEnumerable=function(){return i.from(t).select(function(t){return new g(t,e.get(t))})},this.GetEnumerator=function(){return this.toEnumerable().GetEnumerator()}},Bridge.definei("System.Linq.ILookup$2"),c.$$inherits=[],Bridge.Class.addExtend(c,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.ILookup$2]),(g=function(e,t){this.key=function(){return e},l.call(this,t)}).prototype=new l,Bridge.definei("System.Linq.IGrouping$2"),g.prototype.constructor=g,g.$$inherits=[],Bridge.Class.addExtend(g,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.IGrouping$2]),Bridge.Linq={},Bridge.Linq.Enumerable=i,Bridge.global.System.Linq=Bridge.global.System.Linq||{},Bridge.global.System.Linq.Enumerable=i,Bridge.global.System.Linq.Grouping$2=g,Bridge.global.System.Linq.Lookup$2=c,Bridge.global.System.Linq.OrderedEnumerable$1=o}(Bridge.global),Bridge.define("System.Runtime.Serialization.CollectionDataContractAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_ns:null,_itemName:null,_keyName:null,_valueName:null,_isReference:!1,_isNameSetExplicitly:!1,_isNamespaceSetExplicitly:!1,_isReferenceSetExplicitly:!1,_isItemNameSetExplicitly:!1,_isKeyNameSetExplicitly:!1,_isValueNameSetExplicitly:!1},props:{Namespace:{get:function(){return this._ns},set:function(e){this._ns=e,this._isNamespaceSetExplicitly=!0}},IsNamespaceSetExplicitly:{get:function(){return this._isNamespaceSetExplicitly}},Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}},ItemName:{get:function(){return this._itemName},set:function(e){this._itemName=e,this._isItemNameSetExplicitly=!0}},IsItemNameSetExplicitly:{get:function(){return this._isItemNameSetExplicitly}},KeyName:{get:function(){return this._keyName},set:function(e){this._keyName=e,this._isKeyNameSetExplicitly=!0}},IsReference:{get:function(){return this._isReference},set:function(e){this._isReference=e,this._isReferenceSetExplicitly=!0}},IsReferenceSetExplicitly:{get:function(){return this._isReferenceSetExplicitly}},IsKeyNameSetExplicitly:{get:function(){return this._isKeyNameSetExplicitly}},ValueName:{get:function(){return this._valueName},set:function(e){this._valueName=e,this._isValueNameSetExplicitly=!0}},IsValueNameSetExplicitly:{get:function(){return this._isValueNameSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.ContractNamespaceAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_clrNamespace:null,_contractNamespace:null},props:{ClrNamespace:{get:function(){return this._clrNamespace},set:function(e){this._clrNamespace=e}},ContractNamespace:{get:function(){return this._contractNamespace}}},ctors:{ctor:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._contractNamespace=e}}}),Bridge.define("System.Runtime.Serialization.DataContractAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_ns:null,_isNameSetExplicitly:!1,_isNamespaceSetExplicitly:!1,_isReference:!1,_isReferenceSetExplicitly:!1},props:{IsReference:{get:function(){return this._isReference},set:function(e){this._isReference=e,this._isReferenceSetExplicitly=!0}},IsReferenceSetExplicitly:{get:function(){return this._isReferenceSetExplicitly}},Namespace:{get:function(){return this._ns},set:function(e){this._ns=e,this._isNamespaceSetExplicitly=!0}},IsNamespaceSetExplicitly:{get:function(){return this._isNamespaceSetExplicitly}},Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.DataMemberAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_isNameSetExplicitly:!1,_order:0,_isRequired:!1,_emitDefaultValue:!1},props:{Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}},Order:{get:function(){return this._order},set:function(e){if(e<0)throw new Bridge.global.System.Runtime.Serialization.InvalidDataContractException.$ctor1("Property 'Order' in DataMemberAttribute attribute cannot be a negative number.");this._order=e}},IsRequired:{get:function(){return this._isRequired},set:function(e){this._isRequired=e}},EmitDefaultValue:{get:function(){return this._emitDefaultValue},set:function(e){this._emitDefaultValue=e}}},ctors:{init:function(){this._order=-1,this._emitDefaultValue=!0},ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.EnumMemberAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_value:null,_isValueSetExplicitly:!1},props:{Value:{get:function(){return this._value},set:function(e){this._value=e,this._isValueSetExplicitly=!0}},IsValueSetExplicitly:{get:function(){return this._isValueSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.IDeserializationCallback",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.IFormatterConverter",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.IgnoreDataMemberAttribute",{inherits:[Bridge.global.System.Attribute],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.InvalidDataContractException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t)}}}),Bridge.define("System.Runtime.Serialization.IObjectReference",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISafeSerializationData",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISerializable",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISerializationSurrogateProvider",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.KnownTypeAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_methodName:null,_type:null},props:{MethodName:{get:function(){return this._methodName}},Type:{get:function(){return this._type}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)},$ctor2:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._type=e},$ctor1:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._methodName=e}}}),Bridge.define("System.Runtime.Serialization.SerializationEntry",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Runtime.Serialization.SerializationEntry}}},fields:{_name:null,_value:null,_type:null},props:{Value:{get:function(){return this._value}},Name:{get:function(){return this._name}},ObjectType:{get:function(){return this._type}}},ctors:{$ctor1:function(e,t,n){this.$initialize(),this._name=e,this._value=t,this._type=n},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([7645431029,this._name,this._value,this._type])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Runtime.Serialization.SerializationEntry)&&Bridge.equals(this._name,e._name)&&Bridge.equals(this._value,e._value)&&Bridge.equals(this._type,e._type)},$clone:function(e){var t=e||new Bridge.global.System.Runtime.Serialization.SerializationEntry;return t._name=this._name,t._value=this._value,t._type=this._type,t}}}),Bridge.define("System.Runtime.Serialization.SerializationException",{inherits:[Bridge.global.System.SystemException],statics:{fields:{s_nullMessage:null},ctors:{init:function(){this.s_nullMessage="Serialization error."}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,Bridge.global.System.Runtime.Serialization.SerializationException.s_nullMessage),this.HResult=-2146233076},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233076},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233076}}}),Bridge.define("System.Runtime.Serialization.SerializationInfoEnumerator",{inherits:[Bridge.global.System.Collections.IEnumerator],fields:{_members:null,_data:null,_types:null,_numItems:0,_currItem:0,_current:!1},props:{System$Collections$IEnumerator$Current:{get:function(){return this.Current.$clone()}},Current:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return new Bridge.global.System.Runtime.Serialization.SerializationEntry.$ctor1(this._members[Bridge.global.System.Array.index(this._currItem,this._members)],this._data[Bridge.global.System.Array.index(this._currItem,this._data)],this._types[Bridge.global.System.Array.index(this._currItem,this._types)])}},Name:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._members[Bridge.global.System.Array.index(this._currItem,this._members)]}},Value:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._data[Bridge.global.System.Array.index(this._currItem,this._data)]}},ObjectType:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._types[Bridge.global.System.Array.index(this._currItem,this._types)]}}},alias:["moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e,t,n,i){this.$initialize(),this._members=e,this._data=t,this._types=n,this._numItems=i-1|0,this._currItem=-1,this._current=!1}},methods:{moveNext:function(){return this._currItem>10!=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("options");if(0!=(t&r.RegexOptions.ECMAScript)&&0!=(t&~(r.RegexOptions.ECMAScript|r.RegexOptions.IgnoreCase|r.RegexOptions.Multiline|r.RegexOptions.CultureInvariant)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("options");if((t|(o=Bridge.global.System.Text.RegularExpressions.RegexOptions.IgnoreCase|Bridge.global.System.Text.RegularExpressions.RegexOptions.Multiline|Bridge.global.System.Text.RegularExpressions.RegexOptions.Singleline|Bridge.global.System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace|Bridge.global.System.Text.RegularExpressions.RegexOptions.ExplicitCapture))!==o)throw new Bridge.global.System.NotSupportedException.$ctor1("Specified Regex options are not supported.");this._validateMatchTimeout(n),this._pattern=e,this._options=t,this._matchTimeout=n,this._runner=new r.RegexRunner(this),s=this._runner.parsePattern(),this._capnames=s.sparseSettings.sparseSlotNameMap,this._capslist=s.sparseSettings.sparseSlotNameMap.keys,this._capsize=this._capslist.length},getMatchTimeout:function(){return this._matchTimeout},getOptions:function(){return this._options},getRightToLeft:function(){return 0!=(this._options&Bridge.global.System.Text.RegularExpressions.RegexOptions.RightToLeft)},isMatch:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return Bridge.isDefined(t)||(t=this.getRightToLeft()?e.length:0),null==this._runner.run(!0,-1,e,0,e.length,t)},match:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");var i=e.length,r=0;return 3===arguments.length?(r=t,i=n,t=this.getRightToLeft()?r+i:r):Bridge.isDefined(t)||(t=this.getRightToLeft()?i:0),this._runner.run(!1,-1,e,r,i,t)},matches:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return Bridge.isDefined(t)||(t=this.getRightToLeft()?e.length:0),new Bridge.global.System.Text.RegularExpressions.MatchCollection(this,e,0,e.length,t)},getGroupNames:function(){if(null==this._capslist){for(var e=Bridge.global.System.Globalization.CultureInfo.invariantCulture,t=[],n=this._capsize,i=0;i=0&&e=0&&e"9"||i<"0")return-1;n*=10,n+=i-"0"}return n>=0&&n0&&t<=2147483646))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("matchTimeout")}}),Bridge.define("System.Text.RegularExpressions.Capture",{_text:"",_index:0,_length:0,ctor:function(e,t,n){this.$initialize(),this._text=e,this._index=t,this._length=n},getIndex:function(){return this._index},getLength:function(){return this._length},getValue:function(){return this._text.substr(this._index,this._length)},toString:function(){return this.getValue()},_getOriginalString:function(){return this._text},_getLeftSubstring:function(){return this._text.slice(0,_index)},_getRightSubstring:function(){return this._text.slice(this._index+this._length,this._text.length)}}),Bridge.define("System.Text.RegularExpressions.CaptureCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this._capcount}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_group:null,_capcount:0,_captures:null,ctor:function(e){this.$initialize(),this._group=e,this._capcount=e._capcount},getSyncRoot:function(){return this._group},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},getCount:function(){return this._capcount},get:function(e){if(e===this._capcount-1&&e>=0)return this._group;if(e>=this._capcount||e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("i");return this._ensureCapturesInited(),this._captures[e]},copyTo:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(e.length0&&(e[this._capcount-1]=this._group),this._captures=e}}}),Bridge.define("System.Text.RegularExpressions.CaptureEnumerator",{inherits:function(){return[Bridge.global.System.Collections.IEnumerator]},config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},_captureColl:null,_curindex:0,ctor:function(e){this.$initialize(),this._curindex=-1,this._captureColl=e},moveNext:function(){var e=this._captureColl.getCount();return!(this._curindex>=e)&&(this._curindex++,this._curindex=this._captureColl.getCount())throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._captureColl.get(this._curindex)},reset:function(){this._curindex=-1}}),Bridge.define("System.Text.RegularExpressions.Group",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Capture]},statics:{config:{init:function(){var e=new Bridge.global.System.Text.RegularExpressions.Group("",[],0);this.getEmpty=function(){return e}}},synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("group");var t=e.getCaptures();return t.getCount()>0&&t.get(0),e}},_caps:null,_capcount:0,_capColl:null,ctor:function(e,t,n){this.$initialize();var i=Bridge.global.System.Text.RegularExpressions,r=0===n?0:t[2*(n-1)],o=0===n?0:t[2*n-1];i.Capture.ctor.call(this,e,r,o),this._caps=t,this._capcount=n},getSuccess:function(){return 0!==this._capcount},getCaptures:function(){return null==this._capColl&&(this._capColl=new Bridge.global.System.Text.RegularExpressions.CaptureCollection(this)),this._capColl}}),Bridge.define("System.Text.RegularExpressions.GroupCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this._match._matchcount.length}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_match:null,_captureMap:null,_groups:null,ctor:function(e,t){this.$initialize(),this._match=e,this._captureMap=t},getSyncRoot:function(){return this._match},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},getCount:function(){return this._match._matchcount.length},get:function(e){return this._getGroup(e)},getByName:function(e){if(null==this._match._regex)return Bridge.global.System.Text.RegularExpressions.Group.getEmpty();var t=this._match._regex.groupNumberFromName(e);return this._getGroup(t)},copyTo:function(e,t){var n,i,r,o;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(n=this.getCount(),e.length=this._match._matchcount.length||e<0?Bridge.global.System.Text.RegularExpressions.Group.getEmpty():this._getGroupImpl(e)},_getGroupImpl:function(e){return 0===e?this._match:(this._ensureGroupsInited(),this._groups[e])},_ensureGroupsInited:function(){var e,t,n,i,r;if(null==this._groups){for((e=[]).length=this._match._matchcount.length,e.length>0&&(e[0]=this._match),r=0;r=e)&&(this._curindex++,this._curindex=this._groupColl.getCount())throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._groupColl.get(this._curindex)},reset:function(){this._curindex=-1}}),Bridge.define("System.Text.RegularExpressions.Match",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Group]},statics:{config:{init:function(){var e=new Bridge.global.System.Text.RegularExpressions.Match(null,1,"",0,0,0);this.getEmpty=function(){return e}}},synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var t,n=e.getGroups(),i=n.getCount(),r=0;r0&&-2!==this._matches[e][2*this._matchcount[e]-1]},_addMatch:function(e,t,n){var i,r,o,s;if(null==this._matches[e]&&(this._matches[e]=new Array(2)),2*(i=this._matchcount[e])+2>this._matches[e].length){for(r=this._matches[e],o=new Array(8*i),s=0;s<2*i;s++)o[s]=r[s];this._matches[e]=o}this._matches[e][2*i]=t,this._matches[e][2*i+1]=n,this._matchcount[e]=i+1},_tidy:function(e){var t=this._matches[0];this._index=t[0],this._length=t[1],this._textpos=e,this._capcount=this._matchcount[0]},_groupToStringImpl:function(e){var t=this._matchcount[e];if(0===t)return"";var n=this._matches[e],i=n[2*(t-1)],r=n[2*t-1];return this._text.slice(i,i+r)},_lastGroupToStringImpl:function(){return this._groupToStringImpl(this._matchcount.length-1)}}),Bridge.define("System.Text.RegularExpressions.MatchSparse",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Match]},_caps:null,ctor:function(e,t,n,i,r,o,s){this.$initialize(),Bridge.global.System.Text.RegularExpressions.Match.ctor.call(this,e,n,i,r,o,s),this._caps=t},getGroups:function(){return null==this._groupColl&&(this._groupColl=new Bridge.global.System.Text.RegularExpressions.GroupCollection(this,this._caps)),this._groupColl}}),Bridge.define("System.Text.RegularExpressions.MatchCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this.getCount()}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_regex:null,_input:null,_beginning:0,_length:0,_startat:0,_prevlen:0,_matches:null,_done:!1,ctor:function(e,t,n,i,r){if(this.$initialize(),r<0||r>t.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startat");this._regex=e,this._input=t,this._beginning=n,this._length=i,this._startat=r,this._prevlen=-1,this._matches=[]},getCount:function(){return this._done||this._getMatch(2147483647),this._matches.length},getSyncRoot:function(){return this},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},get:function(e){var t=this._getMatch(e);if(null==t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("i");return t},copyTo:function(e,t){var n,i,r,o;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(n=this.getCount(),e.lengthe)return this._matches[e];if(this._done)return null;var t;do{if(!(t=this._regex._runner.run(!1,this._prevLen,this._input,this._beginning,this._length,this._startat)).getSuccess())return this._done=!0,null;this._matches.push(t),this._prevLen=t._length,this._startat=t._textpos}while(this._matches.length<=e);return t}}),Bridge.define("System.Text.RegularExpressions.MatchEnumerator",{inherits:function(){return[Bridge.global.System.Collections.IEnumerator]},config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},_matchcoll:null,_match:null,_curindex:0,_done:!1,ctor:function(e){this.$initialize(),this._matchcoll=e},moveNext:function(){return!this._done&&(this._match=this._matchcoll._getMatch(this._curindex),this._curindex++,null!=this._match||(this._done=!0,!1))},getCurrent:function(){if(null==this._match)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._match},reset:function(){this._curindex=0,this._done=!1,this._match=null}}),Bridge.define("System.Text.RegularExpressions.RegexOptions",{statics:{None:0,IgnoreCase:1,Multiline:2,ExplicitCapture:4,Compiled:8,Singleline:16,IgnorePatternWhitespace:32,RightToLeft:64,ECMAScript:256,CultureInvariant:512},$kind:"enum",$flags:!0}),Bridge.define("System.Text.RegularExpressions.RegexRunner",{statics:{},_runregex:null,_netEngine:null,_runtext:"",_runtextpos:0,_runtextbeg:0,_runtextend:0,_runtextstart:0,_quick:!1,_prevlen:0,ctor:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("regex");this._runregex=e;var t=e.getOptions(),n=Bridge.global.System.Text.RegularExpressions.RegexOptions,i=(t&n.IgnoreCase)===n.IgnoreCase,r=(t&n.Multiline)===n.Multiline,o=(t&n.Singleline)===n.Singleline,s=(t&n.IgnorePatternWhitespace)===n.IgnorePatternWhitespace,a=(t&n.ExplicitCapture)===n.ExplicitCapture,l=e._matchTimeout.getTotalMilliseconds();this._netEngine=new Bridge.global.System.Text.RegularExpressions.RegexEngine(e._pattern,i,r,o,s,a,l)},run:function(e,t,n,i,r,o){var s,a,l;if(o<0||o>n.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("start","Start index cannot be less than 0 or greater than input length.");if(r<0||r>n.Length)throw new ArgumentOutOfRangeException("length","Length cannot be less than 0 or exceed input length.");if(this._runtext=n,this._runtextbeg=i,this._runtextend=i+r,this._runtextstart=o,this._quick=e,this._prevlen=t,this._runregex.getRightToLeft()?(s=this._runtextbeg,a=-1):(s=this._runtextend,a=1),0===this._prevlen){if(this._runtextstart===s)return Bridge.global.System.Text.RegularExpressions.Match.getEmpty();this._runtextstart+=a}return l=this._netEngine.match(this._runtext,this._runtextstart),this._convertNetEngineResults(l)},parsePattern:function(){return this._netEngine.parsePattern()},_convertNetEngineResults:function(e){var t,n,i,r,o,s,a,l;if(e.success&&this._quick)return null;if(!e.success)return Bridge.global.System.Text.RegularExpressions.Match.getEmpty();for(n=(t=this.parsePattern()).sparseSettings.isSparse?new Bridge.global.System.Text.RegularExpressions.MatchSparse(this._runregex,t.sparseSettings.sparseSlotMap,e.groups.length,this._runtext,0,this._runtext.length,this._runtextstart):new Bridge.global.System.Text.RegularExpressions.Match(this._runregex,e.groups.length,this._runtext,0,this._runtext.length,this._runtextstart),s=0;s=Bridge.global.System.Text.RegularExpressions.RegexParser._E}},_caps:null,_capsize:0,_capnames:null,_pattern:"",_currentPos:0,_concatenation:null,_culture:null,config:{init:function(){this._options=Bridge.global.System.Text.RegularExpressions.RegexOptions.None}},ctor:function(e){this.$initialize(),this._culture=e,this._caps={}},_noteCaptures:function(e,t,n){this._caps=e,this._capsize=t,this._capnames=n},_setPattern:function(e){null==e&&(e=""),this._pattern=e||"",this._currentPos=0},_scanReplacement:function(){this._concatenation=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Concatenate,this._options);for(var e,t,n;0!==(e=this._charsRight());){for(t=this._textpos();e>0&&"$"!==this._rightChar();)this._moveRight(),e--;this._addConcatenate(t,this._textpos()-t),e>0&&"$"===this._moveRightGetChar()&&(n=this._scanDollar(),this._concatenation.addChild(n))}return this._concatenation},_addConcatenate:function(e,t){var n,i,r;0!==t&&(t>1?(i=this._pattern.slice(e,e+t),n=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Multi,this._options,i)):(r=this._pattern[e],n=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,r)),this._concatenation.addChild(n))},_useOptionE:function(){return 0!=(this._options&Bridge.global.System.Text.RegularExpressions.RegexOptions.ECMAScript)},_makeException:function(e){return new Bridge.global.System.ArgumentException("Incorrect pattern. "+e)},_scanDollar:function(){var e,t,n,i,r,o=214748364;if(0===this._charsRight())return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$");var s,a=this._rightChar(),l=this._textpos(),u=l;if("{"===a&&this._charsRight()>1?(s=!0,this._moveRight(),a=this._rightChar()):s=!1,a>="0"&&a<="9"){if(!s&&this._useOptionE()){for(e=-1,n=a-"0",this._moveRight(),this._isCaptureSlot(n)&&(e=n,u=this._textpos());this._charsRight()>0&&(a=this._rightChar())>="0"&&a<="9";){if(t=a-"0",n>o||n===o&&t>7)throw this._makeException("Capture group is out of range.");n=10*n+t,this._moveRight(),this._isCaptureSlot(n)&&(e=n,u=this._textpos())}if(this._textto(u),e>=0)return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}else if(e=this._scanDecimal(),(!s||this._charsRight()>0&&"}"===this._moveRightGetChar())&&this._isCaptureSlot(e))return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}else if(s&&this._isWordChar(a)){if(i=this._scanCapname(),this._charsRight()>0&&"}"===this._moveRightGetChar()&&this._isCaptureName(i))return r=this._captureSlotFromName(i),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,r)}else if(!s){switch(e=1,a){case"$":return this._moveRight(),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$");case"&":e=0;break;case"`":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion;break;case"'":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion;break;case"+":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup;break;case"_":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString}if(1!==e)return this._moveRight(),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}return this._textto(l),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$")},_scanDecimal:function(){for(var e,t,n=214748364,i=0;this._charsRight()>0&&!((e=this._rightChar())<"0"||e>"9");){if(t=e-"0",this._moveRight(),i>n||i===n&&t>7)throw this._makeException("Capture group is out of range.");i*=10,i+=t}return i},_scanOctal:function(){var e,t,n;for((n=3)>this._charsRight()&&(n=this._charsRight()),t=0;n>0&&(e=this._rightChar()-"0")<=7&&(this._moveRight(),t*=8,t+=e,!(this._useOptionE()&&t>=32));n-=1);return t&=255,String.fromCharCode(t)},_scanHex:function(e){var t,n;if(t=0,this._charsRight()>=e)for(;e>0&&(n=this._hexDigit(this._moveRightGetChar()))>=0;e-=1)t*=16,t+=n;if(e>0)throw this._makeException("Insufficient hexadecimal digits.");return t},_hexDigit:function(e){var t,n=e.charCodeAt(0);return(t=n-"0".charCodeAt(0))<=9?t:(t=n-"a".charCodeAt(0))<=5?t+10:(t=n-"A".charCodeAt(0))<=5?t+10:-1},_scanControl:function(){if(this._charsRight()<=0)throw this._makeException("Missing control character.");var e=this._moveRightGetChar().charCodeAt(0);if(e>="a".charCodeAt(0)&&e<="z".charCodeAt(0)&&(e-="a".charCodeAt(0)-"A".charCodeAt(0)),(e-="@".charCodeAt(0))<" ".charCodeAt(0))return String.fromCharCode(e);throw this._makeException("Unrecognized control character.")},_scanCapname:function(){for(var e=this._textpos();this._charsRight()>0;)if(!this._isWordChar(this._moveRightGetChar())){this._moveLeft();break}return _pattern.slice(e,this._textpos())},_scanCharEscape:function(){var e=this._moveRightGetChar();if(e>="0"&&e<="7")return this._moveLeft(),this._scanOctal();switch(e){case"x":return this._scanHex(2);case"u":return this._scanHex(4);case"a":return"";case"b":return"\b";case"e":return"";case"f":return"\f";case"n":return"\n";case"r":return"\r";case"t":return"\t";case"v":return"\v";case"c":return this._scanControl();default:if("8"===e||"9"===e||"_"===e||!this._useOptionE()&&this._isWordChar(e))throw this._makeException("Unrecognized escape sequence \\"+e+".");return e}},_captureSlotFromName:function(e){return this._capnames[e]},_isCaptureSlot:function(e){return null!=this._caps?null!=this._caps[e]:e>=0&&e0}}),Bridge.define("System.Text.RegularExpressions.RegexReplacement",{statics:{replace:function(e,t,n,i,r){var o,s,a,l,u,d,c;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("evaluator");if(i<-1)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than -1.");if(r<0||r>n.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(0===i)return n;if((o=t.match(n,r)).getSuccess()){if(s="",t.getRightToLeft()){d=[],a=n.length;do{if((l=o.getIndex())+(u=o.getLength())!==a&&d.push(n.slice(l+u,a)),a=l,d.push(e(o)),0==--i)break;o=o.nextMatch()}while(o.getSuccess());for(s=new StringBuilder,a>0&&(s+=s.slice(0,a)),c=d.length-1;c>=0;c--)s+=d[c]}else{a=0;do{if(l=o.getIndex(),u=o.getLength(),l!==a&&(s+=n.slice(a,l)),a=l+u,s+=e(o),0==--i)break;o=o.nextMatch()}while(o.getSuccess());at.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(r=[],1===n)return r.push(t),r;if(--n,(o=e.match(t,i)).getSuccess())if(e.getRightToLeft()){for(a=t.length;;){for(l=o.getIndex(),u=o.getLength(),c=(d=o.getGroups()).getCount(),r.push(t.slice(l+u,a)),a=l,s=1;s0&&(a.push(s.length),s.push(o),o=""),i=r._m,null!=n&&i>=0&&(i=n[i]),a.push(-Bridge.global.System.Text.RegularExpressions.RegexReplacement.Specials-1-i);break;default:throw new Bridge.global.System.ArgumentException.$ctor1("Replacement error.")}o.length>0&&(a.push(s.length),s.push(o)),this._strings=s,this._rules=a},getPattern:function(){return _rep},replacement:function(e){return this._replacementImpl("",e)},replace:function(e,t,n,i){var r,o,s,a,l,u,d;if(n<-1)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than -1.");if(i<0||i>t.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(0===n)return t;if((r=e.match(t,i)).getSuccess()){if(o="",e.getRightToLeft()){u=[],s=t.length;do{if((a=r.getIndex())+(l=r.getLength())!==s&&u.push(t.slice(a+l,s)),s=a,this._replacementImplRTL(u,r),0==--n)break;r=r.nextMatch()}while(r.getSuccess());for(s>0&&(o+=o.slice(0,s)),d=u.length-1;d>=0;d--)o+=u[d]}else{s=0;do{if(a=r.getIndex(),l=r.getLength(),a!==s&&(o+=t.slice(s,a)),s=a+l,o=this._replacementImpl(o,r),0==--n)break;r=r.nextMatch()}while(r.getSuccess());s=0)e+=this._strings[n];else if(n<-i)e+=t._groupToStringImpl(-i-1-n);else switch(-i-1-n){case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion:e+=t._getLeftSubstring();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion:e+=t._getRightSubstring();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup:e+=t._lastGroupToStringImpl();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString:e+=t._getOriginalString()}return e},_replacementImplRTL:function(e,t){for(var n,i=Bridge.global.System.Text.RegularExpressions.RegexReplacement.Specials,r=_rules.length-1;r>=0;r--)if((n=this._rules[r])>=0)e.push(this._strings[n]);else if(n<-i)e.push(t._groupToStringImpl(-i-1-n));else switch(-i-1-n){case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion:e.push(t._getLeftSubstring());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion:e.push(t._getRightSubstring());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup:e.push(t._lastGroupToStringImpl());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString:e.push(t._getOriginalString())}}}),Bridge.define("System.Text.RegularExpressions.RegexEngine",{_pattern:"",_patternInfo:null,_text:"",_textStart:0,_timeoutMs:-1,_timeoutTime:-1,_settings:null,_branchType:{base:0,offset:1,lazy:2,greedy:3,or:4},_branchResultKind:{ok:1,endPass:2,nextPass:3,nextBranch:4},ctor:function(e,t,n,i,r,o,s){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("pattern");this._pattern=e,this._timeoutMs=s,this._settings={ignoreCase:t,multiline:n,singleline:i,ignoreWhitespace:r,explicitCapture:o}},match:function(e,t){var n;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("text");if(null!=t&&(t<0||t>e.length))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("textStart","Start index cannot be less than 0 or greater than input length.");return this._text=e,this._textStart=t,this._timeoutTime=this._timeoutMs>0?(new Date).getTime()+Bridge.global.System.Convert.toInt32(this._timeoutMs+.5):-1,(n=this.parsePattern()).shouldFail?this._getEmptyMatch():(this._checkTimeout(),this._scanAndTransformResult(t,n.tokens,!1,null))},parsePattern:function(){if(null==this._patternInfo){var e=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.parsePattern(this._pattern,this._cloneSettings(this._settings));this._patternInfo=e}return this._patternInfo},_scanAndTransformResult:function(e,t,n,i){var r=this._scan(e,this._text.length,t,n,i);return this._collectScanResults(r,e)},_scan:function(e,t,n,i,r){var o,s,a=this._branchResultKind,l=[];if(l.grCaptureCache={},o=null,0===n.length)return(s=new Bridge.global.System.Text.RegularExpressions.RegexEngineState).capIndex=e,s.txtIndex=e,s.capLength=0,s;var u=i?this._branchType.base:this._branchType.offset,d=this._patternInfo.isContiguous?e:t,c=new Bridge.global.System.Text.RegularExpressions.RegexEngineBranch(u,e,e,d);for(c.pushPass(0,n,this._cloneSettings(this._settings)),c.started=!0,c.state.txtIndex=e,l.push(c);l.length;){if(o=l[l.length-1],this._scanBranch(t,l,o)===a.ok&&(null==r||o.state.capLength===r))return o.state;this._advanceToNextBranch(l,o),this._checkTimeout()}return null},_scanBranch:function(e,t,n){var i,r,o=this._branchResultKind;if(n.mustFail)return n.mustFail=!1,o.nextBranch;for(;n.hasPass();){if(null==(i=n.peekPass()).tokens||0===i.tokens.length)r=o.endPass;else{if(this._addAlternationBranches(t,n,i)===o.nextBranch)return o.nextBranch;r=this._scanPass(e,t,n,i)}switch(r){case o.nextBranch:return r;case o.nextPass:continue;case o.endPass:case o.ok:n.popPass();break;default:throw new Bridge.global.System.InvalidOperationException.$ctor1("Unexpected branch result.")}}return o.ok},_scanPass:function(e,t,n,i){for(var r,o,s,a=this._branchResultKind,l=i.tokens.length;i.index1){for(s=0;st.max&&e.pop();else if(e.pop(),!t.isNotFailing)return n=e[e.length-1],void this._advanceToNextBranch(e,n)}},_collectScanResults:function(e,t){var n,i,r,o,s,a,l=this._patternInfo.groups,u=this._text,d={},c={},g=this._getEmptyMatch();if(null!=e){for(n=e.groups,this._fillMatch(g,e.capIndex,e.capLength,t),a=0;a0&&(o=s.captures[s.captures.length-1],s.capIndex=o.capIndex,s.capLength=o.capLength,s.value=o.value,s.success=!0),d[r.name]=!0,s.descriptor=r,g.groups.push(s))}return g},_scanToken:function(e,t,n,i,r){var o=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,s=this._branchResultKind;switch(r.type){case o.group:case o.groupImnsx:case o.alternationGroup:return this._scanGroupToken(e,t,n,i,r);case o.groupImnsxMisc:return this._scanGroupImnsxToken(r.group.constructs,i.settings);case o.charGroup:return this._scanCharGroupToken(t,n,i,r,!1);case o.charNegativeGroup:return this._scanCharNegativeGroupToken(t,n,i,r,!1);case o.escChar:case o.escCharOctal:case o.escCharHex:case o.escCharUnicode:case o.escCharCtrl:return this._scanLiteral(e,t,n,i,r.data.ch);case o.escCharOther:case o.escCharClass:return this._scanEscapeToken(t,n,i,r);case o.escCharClassCategory:throw new Bridge.global.System.NotSupportedException.$ctor1("Unicode Category constructions are not supported.");case o.escCharClassBlock:throw new Bridge.global.System.NotSupportedException.$ctor1("Unicode Named block constructions are not supported.");case o.escCharClassDot:return this._scanDotToken(e,t,n,i);case o.escBackrefNumber:return this._scanBackrefNumberToken(e,t,n,i,r);case o.escBackrefName:return this._scanBackrefNameToken(e,t,n,i,r);case o.anchor:case o.escAnchor:return this._scanAnchorToken(e,t,n,i,r);case o.groupConstruct:case o.groupConstructName:case o.groupConstructImnsx:case o.groupConstructImnsxMisc:return s.ok;case o.alternationGroupCondition:case o.alternationGroupRefNameCondition:case o.alternationGroupRefNumberCondition:return this._scanAlternationConditionToken(e,t,n,i,r);case o.alternation:return s.endPass;case o.commentInline:case o.commentXMode:return s.ok;default:return this._scanLiteral(e,t,n,i,r.value)}},_scanGroupToken:function(e,t,n,i,r){var o,s,a=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,l=this._branchResultKind,u=n.state.txtIndex;if(i.onHold){if(r.type===a.group){var d=r.group.rawIndex,c=i.onHoldTextIndex,g=u-c,m=t.grCaptureCache[d];if(null==m&&(m={},t.grCaptureCache[d]=m),null!=m[o=c.toString()+"_"+g.toString()])return l.nextBranch;m[o]=!0,r.group.constructs.emptyCapture||(r.group.isBalancing?n.state.logCaptureGroupBalancing(r.group,c):n.state.logCaptureGroup(r.group,c,g))}return i.onHold=!1,i.onHoldTextIndex=-1,l.ok}if(r.type===a.group||r.type===a.groupImnsx){if(s=r.group.constructs,this._scanGroupImnsxToken(s,i.settings),s.isPositiveLookahead||s.isNegativeLookahead||s.isPositiveLookbehind||s.isNegativeLookbehind)return this._scanLook(n,u,e,r);if(s.isNonbacktracking)return this._scanNonBacktracking(n,u,e,r)}return i.onHoldTextIndex=u,i.onHold=!0,n.pushPass(0,r.children,this._cloneSettings(i.settings)),l.nextPass},_scanGroupImnsxToken:function(e,t){var n=this._branchResultKind;return null!=e.isIgnoreCase&&(t.ignoreCase=e.isIgnoreCase),null!=e.isMultiline&&(t.multiline=e.isMultiline),null!=e.isSingleLine&&(t.singleline=e.isSingleLine),null!=e.isIgnoreWhitespace&&(t.ignoreWhitespace=e.isIgnoreWhitespace),null!=e.isExplicitCapture&&(t.explicitCapture=e.isExplicitCapture),n.ok},_scanAlternationConditionToken:function(e,t,n,i,r){var o,s=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,a=this._branchResultKind,l=r.children,u=n.state.txtIndex,d=a.nextBranch;return r.type===s.alternationGroupRefNameCondition||r.type===s.alternationGroupRefNumberCondition?d=null!=n.state.resolveBackref(r.data.packedSlotId)?a.ok:a.nextBranch:(o=this._scan(u,e,l,!0,null),this._combineScanResults(n,o)&&(d=a.ok)),d===a.nextBranch&&i.tokens.noAlternation&&(d=a.endPass),d},_scanLook:function(e,t,n,i){var r=i.group.constructs,o=this._branchResultKind,s=i.children,a=r.isPositiveLookahead||r.isNegativeLookahead,l=r.isPositiveLookbehind||r.isNegativeLookbehind;return a||l?(s=s.slice(1,s.length),(r.isPositiveLookahead||r.isPositiveLookbehind)===(a?this._scanLookAhead(e,t,n,s):this._scanLookBehind(e,t,n,s))?o.ok:o.nextBranch):null},_scanLookAhead:function(e,t,n,i){var r=this._scan(t,n,i,!0,null);return this._combineScanResults(e,r)},_scanLookBehind:function(e,t,n,i){for(var r,o,s=t;s>=0;){if(r=t-s,o=this._scan(s,n,i,!0,r),this._combineScanResults(e,o))return!0;--s}return!1},_scanNonBacktracking:function(e,t,n,i){var r,o=this._branchResultKind,s=i.children;return s=s.slice(1,s.length),(r=this._scan(t,n,s,!0,null))?(e.state.logCapture(r.capLength),o.ok):o.nextBranch},_scanLiteral:function(e,t,n,i,r){var o,s=this._branchResultKind,a=n.state.txtIndex;if(a+r.length>e)return s.nextBranch;if(i.settings.ignoreCase){for(o=0;oa);o++)if(a<=u.m)return r||t.state.logCapture(1),m.ok;null==d&&n.settings.ignoreCase&&(a=(p=p===(d=p.toUpperCase())?p.toLowerCase():d).charCodeAt(0))}return m.nextBranch},_scanCharNegativeGroupToken:function(e,t,n,i,r){var o=this._branchResultKind,s=t.state.txtIndex;return null==this._text[s]?o.nextBranch:this._scanCharGroupToken(e,t,n,i,!0)===o.ok?o.nextBranch:(r||t.state.logCapture(1),o.ok)},_scanEscapeToken:function(e,t,n,i){return this._scanWithJsRegex(e,t,n,i)},_scanDotToken:function(e,t,n,i){var r=this._branchResultKind,o=n.state.txtIndex;if(i.settings.singleline){if(o0&&this._scanWithJsRegex2(s-1,"\\w")===o.ok)==(this._scanWithJsRegex2(s,"\\w")===o.ok)==("\\B"===r.value))return o.ok}else if("^"===r.value){if(0===s||i.settings.multiline&&"\n"===this._text[s-1])return o.ok}else if("$"===r.value){if(s===e||i.settings.multiline&&"\n"===this._text[s])return o.ok}else if("\\A"===r.value){if(0===s)return o.ok}else if("\\z"===r.value){if(s===e)return o.ok}else if("\\Z"===r.value){if(s===e||s===e-1&&"\n"===this._text[s])return o.ok}else if("\\G"===r.value)return o.ok;return o.nextBranch},_cloneSettings:function(e){return{ignoreCase:e.ignoreCase,multiline:e.multiline,singleline:e.singleline,ignoreWhitespace:e.ignoreWhitespace,explicitCapture:e.explicitCapture}},_combineScanResults:function(e,t){if(null!=t){for(var n=e.state.groups,i=t.groups,r=i.length,o=0;o=this._timeoutTime)throw new Bridge.global.System.RegexMatchTimeoutException(this._text,this._pattern,Bridge.global.System.TimeSpan.fromMilliseconds(this._timeoutMs))}}),Bridge.define("System.Text.RegularExpressions.RegexEngineBranch",{type:0,value:0,min:0,max:0,isStarted:!1,isNotFailing:!1,state:null,ctor:function(e,t,n,i,r){this.$initialize(),this.type=e,this.value=t,this.min=n,this.max=i,this.state=null!=r?r.clone():new Bridge.global.System.Text.RegularExpressions.RegexEngineState},pushPass:function(e,t,n){var i=new Bridge.global.System.Text.RegularExpressions.RegexEnginePass(e,t,n);this.state.passes.push(i)},peekPass:function(){return this.state.passes[this.state.passes.length-1]},popPass:function(){return this.state.passes.pop()},hasPass:function(){return this.state.passes.length>0},clone:function(){var e=new Bridge.global.System.Text.RegularExpressions.RegexEngineBranch(this.type,this.value,this.min,this.max,this.state);return e.isNotFailing=this.isNotFailing,e}}),Bridge.define("System.Text.RegularExpressions.RegexEngineState",{txtIndex:0,capIndex:null,capLength:0,passes:null,groups:null,ctor:function(){this.$initialize(),this.passes=[],this.groups=[]},logCapture:function(e){null==this.capIndex&&(this.capIndex=this.txtIndex),this.txtIndex+=e,this.capLength+=e},logCaptureGroup:function(e,t,n){this.groups.push({rawIndex:e.rawIndex,slotId:e.packedSlotId,capIndex:t,capLength:n})},logCaptureGroupBalancing:function(e,t){for(var n,i,r,o,s=e.balancingSlotId,a=this.groups,l=a.length-1;l>=0;){if(a[l].slotId===s){n=a[l],i=l;break}--l}return null!=n&&null!=i&&(a.splice(i,1),null!=e.constructs.name1&&(o=t-(r=n.capIndex+n.capLength),this.logCaptureGroup(e,r,o)),!0)},resolveBackref:function(e){for(var t=this.groups,n=t.length-1;n>=0;){if(t[n].slotId===e)return t[n];--n}return null},clone:function(){var e,t,n=new Bridge.global.System.Text.RegularExpressions.RegexEngineState;n.txtIndex=this.txtIndex,n.capIndex=this.capIndex,n.capLength=this.capLength;for(var i,r=n.passes,o=this.passes,s=o.length,a=0;a0&&!a.qtoken&&(s=t[f-1]).type===p.literal&&!s.qtoken){s.value+=a.value,s.length+=a.length,t.splice(f,1),--f;continue}}else if(a.type===p.alternationGroupCondition&&null!=a.data)if(null!=a.data.number){if(null==(u=n.getPackedSlotIdBySlotNumber(a.data.number)))throw new Bridge.global.System.ArgumentException.$ctor1("Reference to undefined group number "+l+".");a.data.packedSlotId=u,h._updatePatternToken(a,p.alternationGroupRefNumberCondition,a.index,a.length,a.value)}else null!=(u=n.getPackedSlotIdBySlotName(a.data.name))?(a.data.packedSlotId=u,h._updatePatternToken(a,p.alternationGroupRefNameCondition,a.index,a.length,a.value)):delete a.data}a.children&&a.children.length&&(c=(c=a.type===p.group?[a.group.rawIndex]:[]).concat(r),g=a.localSettings||e,h._transformRawTokens(g,a.children,n,i,c,o+1),e.shouldFail=e.shouldFail||g.shouldFail,e.isContiguous=e.isContiguous||g.isContiguous),a.type===p.group&&i.push(a.group.packedSlotId)}},_fillGroupDescriptors:function(e,t){var n,i,r;for(Bridge.global.System.Text.RegularExpressions.RegexEngineParser._fillGroupStructure(t,e,null),r=1,i=0;i1&&(n.isSparse=!0),n.lastSlot=t},_addSparseSlotForSameNamedGroups:function(e,t,n,i){var r,o,s;if(Bridge.global.System.Text.RegularExpressions.RegexEngineParser._addSparseSlot(e[0],t,n,i),o=e[0].sparseSlotId,s=e[0].packedSlotId,e.length>1)for(r=1;r":s.isNonbacktracking=!0;break;case"?<=":s.isPositiveLookbehind=!0;break;case"?2)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name.");t[0].length&&(s.name1=t[0],n=r._validateGroupName(t[0]),s.isNumberName1=n.isNumberName),2===t.length&&(s.name2=t[1],i=r._validateGroupName(t[1]),s.isNumberName2=i.isNumberName)}else if(e.type===o.groupConstructImnsx||e.type===o.groupConstructImnsxMisc)for(var a,l=e.type===o.groupConstructImnsx?1:0,u=e.length-1-l,d=!0,c=1;c<=u;c++)"-"===(a=e.value[c])?d=!1:"i"===a?s.isIgnoreCase=d:"m"===a?s.isMultiline=d:"n"===a?s.isExplicitCapture=d:"s"===a?s.isSingleLine=d:"x"===a&&(s.isIgnoreWhitespace=d);return s},_validateGroupName:function(e){var t,n;if(!e||!e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");if((t=e[0]>="0"&&e[0]<="9")&&(n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser)._matchChars(e,0,e.length,n._decSymbols).matchLength!==e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");return{isNumberName:t}},_fillBalancingGroupInfo:function(e,t){for(var n,i=0;i=1&&null!=n.getPackedSlotIdBySlotNumber(i))continue;if(i<=9)throw new Bridge.global.System.ArgumentException.$ctor1("Reference to undefined group number "+i.toString()+".");if(null==(r=l._parseOctalCharToken(a.value,0,a.length)))throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized escape sequence "+a.value.slice(0,2)+".");o=a.length-r.length,l._modifyPatternToken(a,e,u.escCharOctal,null,r.length),a.data=r.data,o>0&&(s=l._createPatternToken(e,u.literal,a.index+a.length,o),t.splice(d+1,0,s))}a.children&&a.children.length&&l._preTransformBackrefTokens(e,a.children,n)}},_updateGroupDescriptors:function(e,t){for(var n,i,r,o,s,a=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,l=a.tokenTypes,u=t||0,d=0;de.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(ie.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("endIndex");for(var r,o,s=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,a=s.tokenTypes,l=[],u=n;u=0?++u:(null==(r="."===o?s._parseDotToken(e,u,i):"\\"===o?s._parseEscapeToken(e,u,i):"["===o?s._parseCharRangeToken(e,u,i):"^"===o||"$"===o?s._parseAnchorToken(e,u):"("===o?s._parseGroupToken(e,t,u,i):"|"===o?s._parseAlternationToken(e,u):"#"===o&&t.ignoreWhitespace?s._parseXModeCommentToken(e,u,i):s._parseQuantifierToken(e,u,i))&&(r=s._createPatternToken(e,a.literal,u,1)),null!=r&&(l.push(r),u+=r.length));return l},_parseEscapeToken:function(e,t,n){var i,r,o,s,a,l,u,d,c,g=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=g.tokenTypes,h=e[t];if("\\"!==h)return null;if(t+1>=n)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal \\ at end of pattern.");if((h=e[t+1])>="1"&&h<="9")return i=g._matchChars(e,t+1,n,g._decSymbols,3),(r=g._createPatternToken(e,m.escBackrefNumber,t,1+i.matchLength)).data={number:parseInt(i.match,10)},r;if(g._escapedAnchors.indexOf(h)>=0)return g._createPatternToken(e,m.escAnchor,t,2);if(null!=(o=g._parseEscapedChar(e,t,n)))return o;if("k"===h){if(t+2":"'",1===(l=g._matchUntil(e,t+3,n,a)).unmatchLength&&l.matchLength>0))return(u=g._createPatternToken(e,m.escBackrefName,t,3+l.matchLength+1)).data={name:l.match},u;throw new Bridge.global.System.ArgumentException.$ctor1("Malformed \\k<...> named back reference.")}if((d=h.charCodeAt(0))>=0&&d<48||d>57&&d<65||d>90&&d<95||96===d||d>122&&d<128)return(c=g._createPatternToken(e,m.escChar,t,2)).data={n:d,ch:h},c;throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized escape sequence \\"+h+".")},_parseOctalCharToken:function(e,t,n){var i=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,r=i.tokenTypes,o=e[t];if("\\"===o&&t+1="0"&&o<="7"){var s=i._matchChars(e,t+1,n,i._octSymbols,3),a=parseInt(s.match,8),l=i._createPatternToken(e,r.escCharOctal,t,1+s.matchLength);return l.data={n:a,ch:String.fromCharCode(a)},l}return null},_parseEscapedChar:function(e,t,n){var i,r,o,s,a,l,u,d,c,g,m=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,h=m.tokenTypes,p=e[t];if("\\"!==p||t+1>=n)return null;if(p=e[t+1],m._escapedChars.indexOf(p)>=0){if("x"===p){if(2!==(r=m._matchChars(e,t+2,n,m._hexSymbols,2)).matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Insufficient hexadecimal digits.");return o=parseInt(r.match,16),(i=m._createPatternToken(e,h.escCharHex,t,4)).data={n:o,ch:String.fromCharCode(o)},i}if("c"===p){if(t+2>=n)throw new Bridge.global.System.ArgumentException.$ctor1("Missing control character.");if(s=(s=e[t+2]).toUpperCase(),(a=this._controlChars.indexOf(s))>=0)return(i=m._createPatternToken(e,h.escCharCtrl,t,3)).data={n:a,ch:String.fromCharCode(a)},i;throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized control character.")}if("u"===p){if(4!==(l=m._matchChars(e,t+2,n,m._hexSymbols,4)).matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Insufficient hexadecimal digits.");return u=parseInt(l.match,16),(i=m._createPatternToken(e,h.escCharUnicode,t,6)).data={n:u,ch:String.fromCharCode(u)},i}switch(i=m._createPatternToken(e,h.escChar,t,2),p){case"a":d=7;break;case"b":d=8;break;case"t":d=9;break;case"r":d=13;break;case"v":d=11;break;case"f":d=12;break;case"n":d=10;break;case"e":d=27;break;default:throw new Bridge.global.System.ArgumentException.$ctor1("Unexpected escaped char: '"+p+"'.")}return i.data={n:d,ch:String.fromCharCode(d)},i}if(p>="0"&&p<="7")return m._parseOctalCharToken(e,t,n);if(m._escapedCharClasses.indexOf(p)>=0){if("p"===p||"P"===p){if((c=m._matchUntil(e,t+2,n,"}")).matchLength<2||"{"!==c.match[0]||1!==c.unmatchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Incomplete p{X} character escape.");if(g=c.match.slice(1),m._unicodeCategories.indexOf(g)>=0)return m._createPatternToken(e,h.escCharClassCategory,t,2+c.matchLength+1);if(m._namedCharBlocks.indexOf(g)>=0)return m._createPatternToken(e,h.escCharClassBlock,t,2+c.matchLength+1);throw new Bridge.global.System.ArgumentException.$ctor1("Unknown property '"+g+"'.")}return m._createPatternToken(e,h.escCharClass,t,2)}return m._escapedSpecialSymbols.indexOf(p)>=0?((i=m._createPatternToken(e,h.escCharOther,t,2)).data={n:p.charCodeAt(0),ch:p},i):null},_parseCharRangeToken:function(e,t,n){var i,r,o,s,a,l,u,d,c,g=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=g.tokenTypes,h=[],p=!1,f=!1,y=!1,S=e[t];if("["!==S)return null;for(a=-1,(s=t+1)u){a=s;break}o=g._createPatternToken(e,m.literal,s,1),l=1}if(f)throw new Bridge.global.System.ArgumentException.$ctor1("A subtraction must be the last element in a character class.");h.length>1&&null!=(i=g._parseCharIntervalToken(e,h[h.length-2],h[h.length-1],o))&&(h.pop(),h.pop(),o=i),null!=o&&(h.push(o),s+=l)}if(a<0||h.length<1)throw new Bridge.global.System.ArgumentException.$ctor1("Unterminated [] set.");return d=p?g._createPatternToken(e,m.charNegativeGroup,t,1+a-t,h,"[^","]"):g._createPatternToken(e,m.charGroup,t,1+a-t,h,"[","]"),c=g._tidyCharRange(h),d.data={ranges:c},null!=r&&(d.data.substractToken=r),d},_parseCharIntervalToken:function(e,t,n,i){var r,o,s,a,l=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,u=l.tokenTypes;if(n.type!==u.literal||"-"!==n.value||t.type!==u.literal&&t.type!==u.escChar&&t.type!==u.escCharOctal&&t.type!==u.escCharHex&&t.type!==u.escCharCtrl&&t.type!==u.escCharUnicode&&t.type!==u.escCharOther||i.type!==u.literal&&i.type!==u.escChar&&i.type!==u.escCharOctal&&i.type!==u.escCharHex&&i.type!==u.escCharCtrl&&i.type!==u.escCharUnicode&&i.type!==u.escCharOther)return null;if(t.type===u.literal?(r=t.value.charCodeAt(0),o=t.value):(r=t.data.n,o=t.data.ch),i.type===u.literal?(s=i.value.charCodeAt(0),a=i.value):(s=i.data.n,a=i.data.ch),r>s)throw new Bridge.global.System.NotSupportedException.$ctor1("[x-y] range in reverse order.");var d=t.index,c=t.length+n.length+i.length,g=l._createPatternToken(e,u.charInterval,d,c,[t,n,i],"","");return g.data={startN:r,startCh:o,endN:s,endCh:a},g},_tidyCharRange:function(e){for(var t,n,i,r,o,s,a,l,u=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,d=u.tokenTypes,c=[],g=[],m=0;mn);t++);c.splice(t,0,{n:n,m:i})}else c.push({n:n,m:i})}for(m=0;m1+o.m);t++)a++,s.m>o.m&&(o.m=s.m);a>0&&c.splice(m+1,a)}return g.length>0&&(l="["+u._constructPattern(g)+"]",c.charClassToken=u._createPatternToken(l,d.charGroup,0,l.length,e,"[","]")),c},_parseDotToken:function(e,t){var n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes;return"."!==e[t]?null:n._createPatternToken(e,i.escCharClassDot,t,1)},_parseAnchorToken:function(e,t){var n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes,r=e[t];return"^"!==r&&"$"!==r?null:n._createPatternToken(e,i.anchor,t,1)},_updateSettingsFromConstructs:function(e,t){null!=t.isIgnoreWhitespace&&(e.ignoreWhitespace=t.isIgnoreWhitespace),null!=t.isExplicitCapture&&(e.explicitCapture=t.isExplicitCapture)},_parseGroupToken:function(e,t,n,i){var r,o,s,a,l,u,d,c,g=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=g.tokenTypes,h={ignoreWhitespace:t.ignoreWhitespace,explicitCapture:t.explicitCapture},p=e[n];if("("!==p)return null;var f=1,y=!1,S=n+1,b=-1,I=!1,C=!1,_=!1,v=!1,T=!1,x=null,w=g._parseGroupConstructToken(e,h,n+1,i);for(null!=w&&(x=this._fillGroupConstructs(w),S+=w.length,w.type===m.commentInline?I=!0:w.type===m.alternationGroupCondition?C=!0:w.type===m.groupConstructImnsx?(this._updateSettingsFromConstructs(h,x),v=!0):w.type===m.groupConstructImnsxMisc&&(this._updateSettingsFromConstructs(t,x),_=!0)),h.explicitCapture&&(null==x||null==x.name1)&&(T=!0),r=S;r1)throw new Bridge.global.System.ArgumentException.$ctor1("Too many | in (?()|).");if(0===u)throw new Bridge.global.System.NotSupportedException.$ctor1("Alternation group without | is not supported.");o=g._createPatternToken(e,m.alternationGroup,n,1+b-n,s,"(",")")}else d=m.group,_?d=m.groupImnsxMisc:v&&(d=m.groupImnsx),(c=g._createPatternToken(e,d,n,1+b-n,s,"(",")")).localSettings=h,o=c}return T&&(o.isNonCapturingExplicit=!0),o},_parseGroupConstructToken:function(e,t,n,i){var r,o,s,a,l,u,d,c=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,g=c.tokenTypes,m=e[n];if("?"!==m||n+1>=i)return null;if(":"===(m=e[n+1])||"="===m||"!"===m||">"===m)return c._createPatternToken(e,g.groupConstruct,n,2);if("#"===m)return c._createPatternToken(e,g.commentInline,n,2);if("("===m)return c._parseAlternationGroupConditionToken(e,t,n,i);if("<"===m&&n+2":m,1!==(s=c._matchUntil(e,n+2,i,o)).unmatchLength||0===s.matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized grouping construct.");if(a=s.match.slice(0,1),"`~@#$%^&*()+{}[]|\\/|'\";:,.?".indexOf(a)>=0)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");return c._createPatternToken(e,g.groupConstructName,n,2+s.matchLength+1)}if((l=c._matchChars(e,n+1,i,"imnsx-")).matchLength>0&&(":"===l.unmatchCh||")"===l.unmatchCh))return u=":"===l.unmatchCh?g.groupConstructImnsx:g.groupConstructImnsxMisc,d=":"===l.unmatchCh?1:0,c._createPatternToken(e,u,n,1+l.matchLength+d);throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized grouping construct.")},_parseQuantifierToken:function(e,t,n){var i,r,o,s=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,a=s.tokenTypes,l=null,u=e[t];if("*"===u||"+"===u||"?"===u)(l=s._createPatternToken(e,a.quantifier,t,1)).data={val:u};else if("{"===u&&0!==(i=s._matchChars(e,t+1,n,s._decSymbols)).matchLength)if("}"===i.unmatchCh)(l=s._createPatternToken(e,a.quantifierN,t,1+i.matchLength+1)).data={n:parseInt(i.match,10)};else if(","===i.unmatchCh&&"}"===(r=s._matchChars(e,i.unmatchIndex+1,n,s._decSymbols)).unmatchCh&&((l=s._createPatternToken(e,a.quantifierNM,t,1+i.matchLength+1+r.matchLength+1)).data={n:parseInt(i.match,10),m:null},0!==r.matchLength&&(l.data.m=parseInt(r.match,10),l.data.n>l.data.m)))throw new Bridge.global.System.ArgumentException.$ctor1("Illegal {x,y} with x > y.");return null!=l&&(o=t+l.length)=i||"("!==e[n+1]||null==(s=d._parseGroupToken(e,t,n+1,i)))return null;if(s.type===c.commentInline)throw new Bridge.global.System.ArgumentException.$ctor1("Alternation conditions cannot be comments.");if((a=s.children)&&a.length){if((r=a[0]).type===c.groupConstructName)throw new Bridge.global.System.ArgumentException.$ctor1("Alternation conditions do not capture and cannot be named.");if((r.type===c.groupConstruct||r.type===c.groupConstructImnsx)&&null!=(o=d._findFirstGroupWithoutConstructs(a))&&(o.isEmptyCapturing=!0),r.type===c.literal)if((l=s.value.slice(1,s.value.length-1))[0]>="0"&&l[0]<="9"){if(d._matchChars(l,0,l.length,d._decSymbols).matchLength!==l.length)throw new Bridge.global.System.ArgumentException.$ctor1("Malformed Alternation group number: "+l+".");g={number:parseInt(l,10)}}else g={name:l}}return a.length&&(a[0].type===c.groupConstruct||a[0].type===c.groupConstructImnsx)||(r=d._createPatternToken("?:",c.groupConstruct,0,2),a.splice(0,0,r)),u=d._createPatternToken(e,c.alternationGroupCondition,s.index-1,1+s.length,[s],"?",""),null!=g&&(u.data=g),u},_findFirstGroupWithoutConstructs:function(e){for(var t,n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes,r=null,o=0;o0&&(a.children=r,a.childrenPrefix=o,a.childrenPostfix=s),a},_modifyPatternToken:function(e,t,n,i,r){null!=n&&(e.type=n),(null!=i||null!=r)&&(null!=i&&(e.index=i),null!=r&&(e.length=r),e.value=t.slice(e.index,e.index+e.length))},_updatePatternToken:function(e,t,n,i,r){e.type=t,e.index=n,e.length=i,e.value=r},_matchChars:function(e,t,n,i,r){var o,s={match:"",matchIndex:-1,matchLength:0,unmatchCh:"",unmatchIndex:-1,unmatchLength:0},a=t;for(null!=r&&r>=0&&(n=t+r);at&&(s.match=e.slice(t,a),s.matchIndex=t,s.matchLength=a-t),s},_matchUntil:function(e,t,n,i,r){var o,s={match:"",matchIndex:-1,matchLength:0,unmatchCh:"",unmatchIndex:-1,unmatchLength:0},a=t;for(null!=r&&r>=0&&(n=t+r);a=0){s.unmatchCh=o,s.unmatchIndex=a,s.unmatchLength=1;break}a++}return a>t&&(s.match=e.slice(t,a),s.matchIndex=t,s.matchLength=a-t),s}}}),Bridge.define("System.BitConverter",{statics:{fields:{isLittleEndian:!1,arg_ArrayPlusOffTooSmall:null},ctors:{init:function(){this.isLittleEndian=Bridge.global.System.BitConverter.getIsLittleEndian(),this.arg_ArrayPlusOffTooSmall="Destination array is not long enough to copy all the items in the collection. Check array index and length."}},methods:{getBytes:function(e){return e?Bridge.global.System.Array.init([1],Bridge.global.System.Byte):Bridge.global.System.Array.init([0],Bridge.global.System.Byte)},getBytes$1:function(e){return Bridge.global.System.BitConverter.getBytes$3(Bridge.Int.sxs(65535&e))},getBytes$3:function(e){var t=Bridge.global.System.BitConverter.view(2);return t.setInt16(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$4:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setInt32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$5:function(e){var t=Bridge.global.System.BitConverter.getView(e);return Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$7:function(e){var t=Bridge.global.System.BitConverter.view(2);return t.setUint16(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$8:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setUint32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$9:function(e){var t=Bridge.global.System.BitConverter.getView(Bridge.global.System.Int64.clip64(e));return Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$6:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setFloat32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$2:function(e){if(isNaN(e))return Bridge.global.System.BitConverter.isLittleEndian?Bridge.global.System.Array.init([0,0,0,0,0,0,248,255],Bridge.global.System.Byte):Bridge.global.System.Array.init([255,248,0,0,0,0,0,0],Bridge.global.System.Byte);var t=Bridge.global.System.BitConverter.view(8);return t.setFloat64(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},toChar:function(e,t){return 65535&Bridge.global.System.BitConverter.toInt16(e,t)},toInt16:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,2);var n=Bridge.global.System.BitConverter.view(2);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getInt16(0)},toInt32:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,4);var n=Bridge.global.System.BitConverter.view(4);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getInt32(0)},toInt64:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,8);var n=Bridge.global.System.BitConverter.toInt32(e,t),i=Bridge.global.System.BitConverter.toInt32(e,t+4|0);return Bridge.global.System.BitConverter.isLittleEndian?Bridge.global.System.Int64([n,i]):Bridge.global.System.Int64([i,n])},toUInt16:function(e,t){return 65535&Bridge.global.System.BitConverter.toInt16(e,t)},toUInt32:function(e,t){return Bridge.global.System.BitConverter.toInt32(e,t)>>>0},toUInt64:function(e,t){var n=Bridge.global.System.BitConverter.toInt64(e,t);return Bridge.global.System.UInt64([n.value.low,n.value.high])},toSingle:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,4);var n=Bridge.global.System.BitConverter.view(4);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getFloat32(0)},toDouble:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,8);var n=Bridge.global.System.BitConverter.view(8);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getFloat64(0)},toString$2:function(e,t,n){var i;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");if(t<0||t>=e.length&&t>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("length");if(t>(e.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.BitConverter.arg_ArrayPlusOffTooSmall);if(0===n)return"";if(n>715827882)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length",Bridge.toString(715827882));var r=Bridge.Int.mul(n,3),o=Bridge.global.System.Array.init(r,0,Bridge.global.System.Char),s=0,a=t;for(s=0;s=0;r=r-1|0)i[Bridge.global.System.Array.index(r,i)]=e.getUint8(Bridge.identity(n,n=n+1|0));else for(o=0;o=0;r=r-1|0)e.setUint8(r,t[Bridge.global.System.Array.index(Bridge.identity(i,i=i+1|0),t)]);else for(o=0;o>>0).gte(Bridge.global.System.Int64(e.length)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t>(e.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.BitConverter.arg_ArrayPlusOffTooSmall)}}}}),Bridge.define("System.Collections.BitArray",{inherits:[Bridge.global.System.Collections.ICollection,Bridge.global.System.ICloneable],statics:{fields:{BitsPerInt32:0,BytesPerInt32:0,BitsPerByte:0,_ShrinkThreshold:0},ctors:{init:function(){this.BitsPerInt32=32,this.BytesPerInt32=4,this.BitsPerByte=8,this._ShrinkThreshold=256}},methods:{GetArrayLength:function(e,t){return e>0?1+(0|Bridge.Int.div(e-1|0,t))|0:0}}},fields:{m_array:null,m_length:0,_version:0},props:{Length:{get:function(){return this.m_length},set:function(e){var t,n,i,r;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Non-negative number required.");((t=Bridge.global.System.Collections.BitArray.GetArrayLength(e,Bridge.global.System.Collections.BitArray.BitsPerInt32))>this.m_array.length||(t+Bridge.global.System.Collections.BitArray._ShrinkThreshold|0)this.m_array.length?this.m_array.length:t),this.m_array=n),e>this.m_length&&(i=Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32)-1|0,(r=this.m_length%32)>0&&(this.m_array[Bridge.global.System.Array.index(i,this.m_array)]=this.m_array[Bridge.global.System.Array.index(i,this.m_array)]&((1<268435455)throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.String.format("The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.",[Bridge.box(Bridge.global.System.Collections.BitArray.BitsPerByte,Bridge.global.System.Int32)]),"bytes");for(this.m_array=Bridge.global.System.Array.init(Bridge.global.System.Collections.BitArray.GetArrayLength(e.length,Bridge.global.System.Collections.BitArray.BytesPerInt32),0,Bridge.global.System.Int32),this.m_length=Bridge.Int.mul(e.length,Bridge.global.System.Collections.BitArray.BitsPerByte),t=0,n=0;(e.length-n|0)>=4;)this.m_array[Bridge.global.System.Array.index(Bridge.identity(t,t=t+1|0),this.m_array)]=255&e[Bridge.global.System.Array.index(n,e)]|(255&e[Bridge.global.System.Array.index(n+1|0,e)])<<8|(255&e[Bridge.global.System.Array.index(n+2|0,e)])<<16|(255&e[Bridge.global.System.Array.index(n+3|0,e)])<<24,n=n+4|0;3==(i=e.length-n|0)&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=(255&e[Bridge.global.System.Array.index(n+2|0,e)])<<16,i=2),2===i&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=this.m_array[Bridge.global.System.Array.index(t,this.m_array)]|(255&e[Bridge.global.System.Array.index(n+1|0,e)])<<8,i=1),1===i&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=this.m_array[Bridge.global.System.Array.index(t,this.m_array)]|255&e[Bridge.global.System.Array.index(n,e)]),this._version=0},ctor:function(e){var t,n;if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("values");for(this.m_array=Bridge.global.System.Array.init(Bridge.global.System.Collections.BitArray.GetArrayLength(e.length,Bridge.global.System.Collections.BitArray.BitsPerInt32),0,Bridge.global.System.Int32),this.m_length=e.length,n=0;n67108863)throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.String.format("The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.",[Bridge.box(Bridge.global.System.Collections.BitArray.BitsPerInt32,Bridge.global.System.Int32)]),"values");this.m_array=Bridge.global.System.Array.init(e.length,0,Bridge.global.System.Int32),this.m_length=Bridge.Int.mul(e.length,Bridge.global.System.Collections.BitArray.BitsPerInt32),Bridge.global.System.Array.copy(e,0,this.m_array,0,e.length),this._version=0},$ctor2:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("bits");var t=Bridge.global.System.Collections.BitArray.GetArrayLength(e.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32);this.m_array=Bridge.global.System.Array.init(t,0,Bridge.global.System.Int32),this.m_length=e.m_length,Bridge.global.System.Array.copy(e.m_array,0,this.m_array,0,t),this._version=e._version}},methods:{getItem:function(e){return this.Get(e)},setItem:function(e,t){this.Set(e,t)},copyTo:function(e,t){var n,i,r,o,s;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(1!==Bridge.global.System.Array.getRank(e))throw new Bridge.global.System.ArgumentException.$ctor1("Only single dimensional arrays are supported for the requested action.");if(Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Int32)))Bridge.global.System.Array.copy(this.m_array,0,e,t,Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32));else if(Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Byte))){if(n=Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerByte),(e.length-t|0)>Bridge.Int.mul(r%4,8)&255}else{if(!Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Boolean)))throw new Bridge.global.System.ArgumentException.$ctor1("Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].");if((e.length-t|0)>s%32&1)}},Get:function(e){if(e<0||e>=this.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","Index was out of range. Must be non-negative and less than the size of the collection.");return 0!=(this.m_array[Bridge.global.System.Array.index(0|Bridge.Int.div(e,32),this.m_array)]&1<=this.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","Index was out of range. Must be non-negative and less than the size of the collection.");t?this.m_array[Bridge.global.System.Array.index(n=0|Bridge.Int.div(e,32),this.m_array)]=this.m_array[Bridge.global.System.Array.index(n,this.m_array)]|1<=this.bitarray.Count)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration already finished.");return Bridge.box(this.currentElement,Bridge.global.System.Boolean,Bridge.global.System.Boolean.toString)}}},alias:["moveNext","System$Collections$IEnumerator$moveNext","Current","System$Collections$IEnumerator$Current","reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e){this.$initialize(),this.bitarray=e,this.index=-1,this.version=e._version}},methods:{moveNext:function(){if(this.version!==this.bitarray._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");return this.index<(this.bitarray.Count-1|0)?(this.index=this.index+1|0,this.currentElement=this.bitarray.Get(this.index),!0):(this.index=this.bitarray.Count,!1)},reset:function(){if(this.version!==this.bitarray._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this.index=-1}}}),Bridge.define("System.Collections.Generic.BitHelper",{statics:{fields:{MarkedBitFlag:0,IntSize:0},ctors:{init:function(){this.MarkedBitFlag=1,this.IntSize=32}},methods:{ToIntArrayLength:function(e){return e>0?1+(0|Bridge.Int.div(e-1|0,Bridge.global.System.Collections.Generic.BitHelper.IntSize))|0:0}}},fields:{_length:0,_array:null},ctors:{ctor:function(e,t){this.$initialize(),this._array=e,this._length=t}},methods:{MarkBit:function(e){var t,n=0|Bridge.Int.div(e,Bridge.global.System.Collections.Generic.BitHelper.IntSize);n=0&&(t=Bridge.global.System.Collections.Generic.BitHelper.MarkedBitFlag<=0&&(t=Bridge.global.System.Collections.Generic.BitHelper.MarkedBitFlag<>>0>(s=2146435071)&&(a=s<=o?o+1|0:s),Bridge.global.System.Array.resize(r,a,Bridge.getDefaultValue(e))),r.v[Bridge.global.System.Array.index(Bridge.identity(o,o=o+1|0),r.v)]=l[Bridge.geti(l,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")];return n.v=o,r.v}}finally{Bridge.hasValue(l)&&l.System$IDisposable$Dispose()}return n.v=0,Bridge.global.System.Array.init(0,function(){return Bridge.getDefaultValue(e)},e)}}}}),Bridge.define("System.Collections.Generic.HashSet$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.ICollection$1(e),Bridge.global.System.Collections.Generic.ISet$1(e),Bridge.global.System.Collections.Generic.IReadOnlyCollection$1(e)],statics:{fields:{Lower31BitMask:0,ShrinkThreshold:0},ctors:{init:function(){this.Lower31BitMask=2147483647,this.ShrinkThreshold=3}},methods:{HashSetEquals:function(t,n,i){var r,o,s,a,l,u,d;if(null==t)return null==n;if(null==n)return!1;if(Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(t,n)){if(t.Count!==n.Count)return!1;r=Bridge.getEnumerator(n);try{for(;r.moveNext();)if(a=r.Current,!t.contains(a))return!1}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return!0}o=Bridge.getEnumerator(n);try{for(;o.moveNext();){l=o.Current,u=!1,s=Bridge.getEnumerator(t);try{for(;s.moveNext();)if(d=s.Current,i[Bridge.geti(i,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](l,d)){u=!0;break}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}if(!u)return!1}}finally{Bridge.is(o,Bridge.global.System.IDisposable)&&o.System$IDisposable$Dispose()}return!0},AreEqualityComparersEqual:function(e,t){return Bridge.equals(e.Comparer,t.Comparer)}}},fields:{_buckets:null,_slots:null,_count:0,_lastIndex:0,_freeList:0,_comparer:null,_version:0},props:{Count:{get:function(){return this._count}},IsReadOnly:{get:function(){return!1}},Comparer:{get:function(){return this._comparer}}},alias:["System$Collections$Generic$ICollection$1$add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","add","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$add","unionWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$unionWith","intersectWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$intersectWith","exceptWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$exceptWith","symmetricExceptWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$symmetricExceptWith","isSubsetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isSubsetOf","isProperSubsetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isProperSubsetOf","isSupersetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isSupersetOf","isProperSupersetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isProperSupersetOf","overlaps","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$overlaps","setEquals","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$setEquals"],ctors:{ctor:function(){Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor3.call(this,Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def)},$ctor3:function(t){this.$initialize(),null==t&&(t=Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def),this._comparer=t,this._lastIndex=0,this._count=0,this._freeList=-1,this._version=0},$ctor1:function(t){Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor2.call(this,t,Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def)},$ctor2:function(t,n){if(Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor3.call(this,n),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");var i=0,r=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e));null!=r&&(i=Bridge.global.System.Array.getCount(r,e)),this.Initialize(i),this.unionWith(t),(0===this._count&&this._slots.length>Bridge.global.System.Collections.HashHelpers.GetMinPrime()||this._count>0&&(0|Bridge.Int.div(this._slots.length,this._count))>Bridge.global.System.Collections.Generic.HashSet$1(e).ShrinkThreshold)&&this.TrimExcess()}},methods:{System$Collections$Generic$ICollection$1$add:function(e){this.AddIfNotPresent(e)},add:function(e){return this.AddIfNotPresent(e)},clear:function(){var t,n;if(this._lastIndex>0){for(t=0;t=0;i=this._slots[Bridge.global.System.Array.index(i,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(i,this._slots)].value,t))return!0;return!1},copyTo:function(e,t){this.CopyTo$1(e,t,this._count)},CopyTo:function(e){this.CopyTo$1(e,0,this._count)},CopyTo$1:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("arrayIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(t>e.length||n>(e.length-t|0))throw new Bridge.global.System.ArgumentException.$ctor1("Destination array is not long enough to copy all the items in the collection. Check array index and length.");for(i=0,r=0;r=0&&(e[Bridge.global.System.Array.index(t+i|0,e)]=this._slots[Bridge.global.System.Array.index(r,this._slots)].value,i=i+1|0)},remove:function(t){var n;if(null!=this._buckets){var i=this.InternalGetHashCode(t),r=i%this._buckets.length,o=-1;for(n=this._buckets[Bridge.global.System.Array.index(r,this._buckets)]-1|0;n>=0;o=n,n=this._slots[Bridge.global.System.Array.index(n,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(n,this._slots)].hashCode===i&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(n,this._slots)].value,t))return o<0?this._buckets[Bridge.global.System.Array.index(r,this._buckets)]=this._slots[Bridge.global.System.Array.index(n,this._slots)].next+1|0:this._slots[Bridge.global.System.Array.index(o,this._slots)].next=this._slots[Bridge.global.System.Array.index(n,this._slots)].next,this._slots[Bridge.global.System.Array.index(n,this._slots)].hashCode=-1,this._slots[Bridge.global.System.Array.index(n,this._slots)].value=Bridge.getDefaultValue(e),this._slots[Bridge.global.System.Array.index(n,this._slots)].next=this._freeList,this._count=this._count-1|0,this._version=this._version+1|0,0===this._count?(this._lastIndex=0,this._freeList=-1):this._freeList=n,!0}return!1},GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this)},System$Collections$Generic$IEnumerable$1$GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this).$clone()},System$Collections$IEnumerable$GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this).$clone()},unionWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)i=n.Current,this.AddIfNotPresent(i)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}},intersectWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count){if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return void this.clear();if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return void this.IntersectWithHashSetWithSameEC(i)}this.IntersectWithEnumerable(t)}},exceptWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count){if(Bridge.referenceEquals(t,this))return void this.clear();n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)i=n.Current,this.remove(i)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}},symmetricExceptWith:function(t){if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count)if(Bridge.referenceEquals(t,this))this.clear();else{var n=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e));null!=n&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,n)?this.SymmetricExceptWithUniqueHashSet(n):this.SymmetricExceptWithEnumerable(t)}else this.unionWith(t)},isSubsetOf:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");return 0===this._count||(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,n)?!(this._count>n.Count)&&this.IsSubsetOfHashSetWithSameEC(n):(i=this.CheckUniqueAndUnfoundElements(t,!1)).uniqueCount===this._count&&i.unfoundCount>=0)},isProperSubsetOf:function(t){var n,i,r;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===this._count)return Bridge.global.System.Array.getCount(n,e)>0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return!(this._count>=i.Count)&&this.IsSubsetOfHashSetWithSameEC(i)}return(r=this.CheckUniqueAndUnfoundElements(t,!1)).uniqueCount===this._count&&r.unfoundCount>0},isSupersetOf:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return!0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i)&&i.Count>this._count)return!1}return this.ContainsAllElements(t)},isProperSupersetOf:function(t){var n,i,r;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0===this._count)return!1;if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return!0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return!(i.Count>=this._count)&&this.ContainsAllElements(i)}return(r=this.CheckUniqueAndUnfoundElements(t,!0)).uniqueCount0)&&(r=this.CheckUniqueAndUnfoundElements(t,!0)).uniqueCount===this._count&&0===r.unfoundCount},RemoveWhere:function(e){var t,n,i;if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(t=0,n=0;n=0&&e(i=this._slots[Bridge.global.System.Array.index(n,this._slots)].value)&&this.remove(i)&&(t=t+1|0);return t},TrimExcess:function(){var t,n;if(0===this._count)this._buckets=null,this._slots=null,this._version=this._version+1|0;else{var i=Bridge.global.System.Collections.HashHelpers.GetPrime(this._count),r=Bridge.global.System.Array.init(i,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e)),o=Bridge.global.System.Array.init(i,0,Bridge.global.System.Int32),s=0;for(t=0;t=0&&(r[Bridge.global.System.Array.index(s,r)]=this._slots[Bridge.global.System.Array.index(t,this._slots)].$clone(),n=r[Bridge.global.System.Array.index(s,r)].hashCode%i,r[Bridge.global.System.Array.index(s,r)].next=o[Bridge.global.System.Array.index(n,o)]-1|0,o[Bridge.global.System.Array.index(n,o)]=s+1|0,s=s+1|0);this._lastIndex=s,this._slots=r,this._buckets=o,this._freeList=-1}},Initialize:function(t){var n=Bridge.global.System.Collections.HashHelpers.GetPrime(t);this._buckets=Bridge.global.System.Array.init(n,0,Bridge.global.System.Int32),this._slots=Bridge.global.System.Array.init(n,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},IncreaseCapacity:function(){var e=Bridge.global.System.Collections.HashHelpers.ExpandPrime(this._count);if(e<=this._count)throw new Bridge.global.System.ArgumentException.$ctor1("HashSet capacity is too big.");this.SetCapacity(e,!1)},SetCapacity:function(t,n){var i,r,o,s,a,l=Bridge.global.System.Array.init(t,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e));if(null!=this._slots)for(i=0;i=0;r=this._slots[Bridge.global.System.Array.index(r,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(r,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(r,this._slots)].value,t))return!1;return this._freeList>=0?(o=this._freeList,this._freeList=this._slots[Bridge.global.System.Array.index(o,this._slots)].next):(this._lastIndex===this._slots.length&&(this.IncreaseCapacity(),i=n%this._buckets.length),o=this._lastIndex,this._lastIndex=this._lastIndex+1|0),this._slots[Bridge.global.System.Array.index(o,this._slots)].hashCode=n,this._slots[Bridge.global.System.Array.index(o,this._slots)].value=t,this._slots[Bridge.global.System.Array.index(o,this._slots)].next=this._buckets[Bridge.global.System.Array.index(i,this._buckets)]-1|0,this._buckets[Bridge.global.System.Array.index(i,this._buckets)]=o+1|0,this._count=this._count+1|0,this._version=this._version+1|0,!0},ContainsAllElements:function(t){var n,i;n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)if(i=n.Current,!this.contains(i))return!1}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}return!0},IsSubsetOfHashSetWithSameEC:function(e){var t,n;t=Bridge.getEnumerator(this);try{for(;t.moveNext();)if(n=t.Current,!e.contains(n))return!1}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return!0},IntersectWithHashSetWithSameEC:function(e){for(var t,n=0;n=0&&(t=this._slots[Bridge.global.System.Array.index(n,this._slots)].value,e.contains(t)||this.remove(t))},IntersectWithEnumerable:function(t){var n,i,r,o,s,a=this._lastIndex,l=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(a),u=Bridge.global.System.Array.init(l,0,Bridge.global.System.Int32);i=new Bridge.global.System.Collections.Generic.BitHelper(u,l),n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)r=n.Current,(o=this.InternalIndexOf(r))>=0&&i.MarkBit(o)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}for(s=0;s=0&&!i.IsMarked(s)&&this.remove(this._slots[Bridge.global.System.Array.index(s,this._slots)].value)},InternalIndexOf:function(t){for(var n=this.InternalGetHashCode(t),i=this._buckets[Bridge.global.System.Array.index(n%this._buckets.length,this._buckets)]-1|0;i>=0;i=this._slots[Bridge.global.System.Array.index(i,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(i,this._slots)].value,t))return i;return-1},SymmetricExceptWithUniqueHashSet:function(e){var t,n;t=Bridge.getEnumerator(e);try{for(;t.moveNext();)n=t.Current,this.remove(n)||this.AddIfNotPresent(n)}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}},SymmetricExceptWithEnumerable:function(t){var n,i,r,o,s,a=this._lastIndex,l=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(a),u=Bridge.global.System.Array.init(l,0,Bridge.global.System.Int32);i=new Bridge.global.System.Collections.Generic.BitHelper(u,l),o=Bridge.global.System.Array.init(l,0,Bridge.global.System.Int32),r=new Bridge.global.System.Collections.Generic.BitHelper(o,l),n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();){var d=n.Current,c={v:0};this.AddOrGetLocation(d,c)?r.MarkBit(c.v):c.v=0;s=this._slots[Bridge.global.System.Array.index(s,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(s,this._slots)].hashCode===r&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(s,this._slots)].value,t))return n.v=s,!1;return this._freeList>=0?(i=this._freeList,this._freeList=this._slots[Bridge.global.System.Array.index(i,this._slots)].next):(this._lastIndex===this._slots.length&&(this.IncreaseCapacity(),o=r%this._buckets.length),i=this._lastIndex,this._lastIndex=this._lastIndex+1|0),this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode=r,this._slots[Bridge.global.System.Array.index(i,this._slots)].value=t,this._slots[Bridge.global.System.Array.index(i,this._slots)].next=this._buckets[Bridge.global.System.Array.index(o,this._buckets)]-1|0,this._buckets[Bridge.global.System.Array.index(o,this._buckets)]=i+1|0,this._count=this._count+1|0,this._version=this._version+1|0,n.v=i,!0},CheckUniqueAndUnfoundElements:function(t,n){var i,r,o,s,a,l,u,d=new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e));if(0===this._count){o=0,i=Bridge.getEnumerator(t,e);try{for(;i.moveNext();){i.Current,o=o+1|0;break}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return d.uniqueCount=0,d.unfoundCount=o,d.$clone()}var c,g=this._lastIndex,m=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(g),h=Bridge.global.System.Array.init(m,0,Bridge.global.System.Int32);c=new Bridge.global.System.Collections.Generic.BitHelper(h,m),s=0,a=0,r=Bridge.getEnumerator(t,e);try{for(;r.moveNext();)if(l=r.Current,(u=this.InternalIndexOf(l))>=0)c.IsMarked(u)||(c.MarkBit(u),a=a+1|0);else if(s=s+1|0,n)break}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return d.uniqueCount=a,d.unfoundCount=s,d.$clone()},ToArray:function(){var t=Bridge.global.System.Array.init(this.Count,function(){return Bridge.getDefaultValue(e)},e);return this.CopyTo(t),t},InternalGetHashCode:function(t){return null==t?0:this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$getHashCode2","System$Collections$Generic$IEqualityComparer$1$getHashCode2")](t)&Bridge.global.System.Collections.Generic.HashSet$1(e).Lower31BitMask}}}}),Bridge.define("System.Collections.Generic.HashSet$1.ElementCount",function(e){return{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e))}}},fields:{uniqueCount:0,unfoundCount:0},ctors:{ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([4920463385,this.uniqueCount,this.unfoundCount])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e))&&Bridge.equals(this.uniqueCount,t.uniqueCount)&&Bridge.equals(this.unfoundCount,t.unfoundCount)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e));return n.uniqueCount=this.uniqueCount,n.unfoundCount=this.unfoundCount,n}}}}),Bridge.define("System.Collections.Generic.HashSet$1.Enumerator",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e)],$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e))}}},fields:{_set:null,_index:0,_version:0,_current:Bridge.getDefaultValue(e)},props:{Current:{get:function(){return this._current}},System$Collections$IEnumerator$Current:{get:function(){if(0===this._index||this._index===(this._set._lastIndex+1|0))throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this.Current}}},alias:["Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"]],ctors:{$ctor1:function(t){this.$initialize(),this._set=t,this._index=0,this._version=t._version,this._current=Bridge.getDefaultValue(e)},ctor:function(){this.$initialize()}},methods:{Dispose:function(){},moveNext:function(){var t,n;if(this._version!==this._set._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");for(;this._index=0)return this._current=(n=this._set._slots)[Bridge.global.System.Array.index(this._index,n)].value,this._index=this._index+1|0,!0;this._index=this._index+1|0}return this._index=this._set._lastIndex+1|0,this._current=Bridge.getDefaultValue(e),!1},System$Collections$IEnumerator$reset:function(){if(this._version!==this._set._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this._index=0,this._current=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this._set,this._index,this._version,this._current])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e))&&Bridge.equals(this._set,t._set)&&Bridge.equals(this._index,t._index)&&Bridge.equals(this._version,t._version)&&Bridge.equals(this._current,t._current)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e));return n._set=this._set,n._index=this._index,n._version=this._version,n._current=this._current,n}}}}),Bridge.define("System.Collections.Generic.HashSet$1.Slot",function(e){return{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))}}},fields:{hashCode:0,value:Bridge.getDefaultValue(e),next:0},ctors:{ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([1953459283,this.hashCode,this.value,this.next])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))&&Bridge.equals(this.hashCode,t.hashCode)&&Bridge.equals(this.value,t.value)&&Bridge.equals(this.next,t.next)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e));return n.hashCode=this.hashCode,n.value=this.value,n.next=this.next,n}}}}),Bridge.define("System.Collections.Generic.List$1.Enumerator",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e),Bridge.global.System.Collections.IEnumerator],$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.List$1.Enumerator(e))}}},fields:{list:null,index:0,version:0,current:Bridge.getDefaultValue(e)},props:{Current:{get:function(){return this.current}},System$Collections$IEnumerator$Current:{get:function(){if(0===this.index||this.index===(this.list._size+1|0))throw new Bridge.global.System.InvalidOperationException.ctor;return this.Current}}},alias:["Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"]],ctors:{$ctor1:function(t){this.$initialize(),this.list=t,this.index=0,this.version=t._version,this.current=Bridge.getDefaultValue(e)},ctor:function(){this.$initialize()}},methods:{Dispose:function(){},moveNext:function(){var e=this.list;return this.version===e._version&&this.index>>>0>>0?(this.current=e._items[Bridge.global.System.Array.index(this.index,e._items)],this.index=this.index+1|0,!0):this.MoveNextRare()},MoveNextRare:function(){if(this.version!==this.list._version)throw new Bridge.global.System.InvalidOperationException.ctor;return this.index=this.list._size+1|0,this.current=Bridge.getDefaultValue(e),!1},System$Collections$IEnumerator$reset:function(){if(this.version!==this.list._version)throw new Bridge.global.System.InvalidOperationException.ctor;this.index=0,this.current=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this.list,this.index,this.version,this.current])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.List$1.Enumerator(e))&&Bridge.equals(this.list,t.list)&&Bridge.equals(this.index,t.index)&&Bridge.equals(this.version,t.version)&&Bridge.equals(this.current,t.current)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.List$1.Enumerator(e));return n.list=this.list,n.index=this.index,n.version=this.version,n.current=this.current,n}}}}),Bridge.define("System.Collections.Generic.Queue$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerable$1(e),Bridge.global.System.Collections.ICollection,Bridge.global.System.Collections.Generic.IReadOnlyCollection$1(e)],statics:{fields:{MinimumGrow:0,GrowFactor:0,DefaultCapacity:0},ctors:{init:function(){this.MinimumGrow=4,this.GrowFactor=200,this.DefaultCapacity=4}}},fields:{_array:null,_head:0,_tail:0,_size:0,_version:0},props:{Count:{get:function(){return this._size}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}},IsReadOnly:{get:function(){return!1}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator"],ctors:{ctor:function(){this.$initialize(),this._array=Bridge.global.System.Array.init(0,function(){return Bridge.getDefaultValue(e)},e)},$ctor2:function(t){if(this.$initialize(),t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("capacity","Non-negative number required.");this._array=Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e)},$ctor1:function(t){if(this.$initialize(),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");this._array=Bridge.global.System.Array.init(Bridge.global.System.Collections.Generic.Queue$1(e).DefaultCapacity,function(){return Bridge.getDefaultValue(e)},e);var n=Bridge.getEnumerator(t,e);try{for(;n.System$Collections$IEnumerator$moveNext();)this.Enqueue(n[Bridge.geti(n,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")])}finally{Bridge.hasValue(n)&&n.System$IDisposable$Dispose()}}},methods:{copyTo:function(e,t){var n,i;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(1!==Bridge.global.System.Array.getRank(e))throw new Bridge.global.System.ArgumentException.$ctor1("Only single dimensional arrays are supported for the requested action.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if((e.length-t|0)0&&Bridge.global.System.Array.copy(this._array,0,e,(t+this._array.length|0)-this._head|0,n))},CopyTo:function(e,t){var n,i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0||t>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Index was out of range. Must be non-negative and less than the size of the collection.");if(((n=e.length)-t|0)0&&Bridge.global.System.Array.copy(this._array,0,e,(t+this._array.length|0)-this._head|0,i))},Clear:function(){this._head0;){if(null==t){if(null==this._array[Bridge.global.System.Array.index(n,this._array)])return!0}else if(null!=this._array[Bridge.global.System.Array.index(n,this._array)]&&r.equals2(this._array[Bridge.global.System.Array.index(n,this._array)],t))return!0;n=this.MoveNext(n)}return!1},GetElement:function(e){return this._array[Bridge.global.System.Array.index((this._head+e|0)%this._array.length,this._array)]},ToArray:function(){var t=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);return 0===this._size?t:(this._head0&&(this._head0;)if(null==t){if(null==this._array[Bridge.global.System.Array.index(n,this._array)])return!0}else if(null!=this._array[Bridge.global.System.Array.index(n,this._array)]&&i.equals2(this._array[Bridge.global.System.Array.index(n,this._array)],t))return!0;return!1},CopyTo:function(e,t){var n,i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0||t>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Non-negative number required.");if((e.length-t|0)e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Non-negative number required.");if((e.length-t|0)=0)&&(this._currentElement=(t=this._stack._array)[Bridge.global.System.Array.index(this._index,t)]),i):-1!==this._index&&(i=(this._index=this._index-1|0)>=0,this._currentElement=i?(n=this._stack._array)[Bridge.global.System.Array.index(this._index,n)]:Bridge.getDefaultValue(e),i)},System$Collections$IEnumerator$reset:function(){if(this._version!==this._stack._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this._index=-2,this._currentElement=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this._stack,this._index,this._version,this._currentElement])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.Stack$1.Enumerator(e))&&Bridge.equals(this._stack,t._stack)&&Bridge.equals(this._index,t._index)&&Bridge.equals(this._version,t._version)&&Bridge.equals(this._currentElement,t._currentElement)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.Stack$1.Enumerator(e));return n._stack=this._stack,n._index=this._index,n._version=this._version,n._currentElement=this._currentElement,n}}}}),Bridge.define("System.Collections.HashHelpers",{statics:{fields:{HashPrime:0,primes:null,MaxPrimeArrayLength:0},ctors:{init:function(){this.HashPrime=101,this.primes=Bridge.global.System.Array.init([3,7,11,17,23,29,37,47,59,71,89,107,131,163,197,239,293,353,431,521,631,761,919,1103,1327,1597,1931,2333,2801,3371,4049,4861,5839,7013,8419,10103,12143,14591,17519,21023,25229,30293,36353,43627,52361,62851,75431,90523,108631,130363,156437,187751,225307,270371,324449,389357,467237,560689,672827,807403,968897,1162687,1395263,1674319,2009191,2411033,2893249,3471899,4166287,4999559,5999471,7199369],Bridge.global.System.Int32),this.MaxPrimeArrayLength=2146435069}},methods:{IsPrime:function(e){var t,n;if(0!=(1&e)){for(t=Bridge.Int.clip32(Math.sqrt(e)),n=3;n<=t;n=n+2|0)if(e%n==0)return!1;return!0}return 2===e},GetPrime:function(e){var t,n,i;if(e<0)throw new Bridge.global.System.ArgumentException.$ctor1("Hashtable's capacity overflowed and went negative. Check load factor, capacity and the current size of the table.");for(t=0;t=e)return n;for(i=1|e;i<2147483647;i=i+2|0)if(Bridge.global.System.Collections.HashHelpers.IsPrime(i)&&(i-1|0)%Bridge.global.System.Collections.HashHelpers.HashPrime!=0)return i;return e},GetMinPrime:function(){return Bridge.global.System.Collections.HashHelpers.primes[Bridge.global.System.Array.index(0,Bridge.global.System.Collections.HashHelpers.primes)]},ExpandPrime:function(e){var t=Bridge.Int.mul(2,e);return t>>>0>Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength&&Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength>e?Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength:Bridge.global.System.Collections.HashHelpers.GetPrime(t)}}}}),Bridge.define("System.Collections.ObjectModel.Collection$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IList$1(e),Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IReadOnlyList$1(e)],statics:{methods:{IsCompatibleObject:function(t){return Bridge.is(t,e)||null==t&&null==Bridge.getDefaultValue(e)}}},fields:{items:null,_syncRoot:null},props:{Count:{get:function(){return Bridge.global.System.Array.getCount(this.items,e)}},Items:{get:function(){return this.items}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return Bridge.global.System.Array.getIsReadOnly(this.items,e)}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){if(null==this._syncRoot){var e=Bridge.as(this.items,Bridge.global.System.Collections.ICollection);if(null==e)throw Bridge.global.System.NotImplemented.ByDesign;this._syncRoot=e.System$Collections$ICollection$SyncRoot}return this._syncRoot}},System$Collections$IList$IsReadOnly:{get:function(){return Bridge.global.System.Array.getIsReadOnly(this.items,e)}},System$Collections$IList$IsFixedSize:{get:function(){var t=Bridge.as(this.items,Bridge.global.System.Collections.IList);return null!=t?Bridge.global.System.Array.isFixedSize(t):Bridge.global.System.Array.getIsReadOnly(this.items,e)}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"setItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$IReadOnlyList$1$setItem"],"getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$IList$clear","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"],"indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","removeAt","System$Collections$IList$removeAt","removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly"],ctors:{ctor:function(){this.$initialize(),this.items=new(Bridge.global.System.Collections.Generic.List$1(e).ctor)},$ctor1:function(e){this.$initialize(),null==e&&Bridge.global.System.ThrowHelper.ThrowArgumentNullException(Bridge.global.System.ExceptionArgument.list),this.items=e}},methods:{getItem:function(t){return Bridge.global.System.Array.getItem(this.items,t,e)},setItem:function(t,n){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),(t<0||t>=Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRange_IndexException(),this.SetItem(t,n)},System$Collections$IList$getItem:function(t){return Bridge.global.System.Array.getItem(this.items,t,e)},System$Collections$IList$setItem:function(t,n){Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,n,Bridge.global.System.ExceptionArgument.value);try{this.setItem(t,Bridge.cast(Bridge.unbox(n),e))}catch(t){if(t=Bridge.global.System.Exception.create(t),!Bridge.is(t,Bridge.global.System.InvalidCastException))throw t;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,n,e)}},add:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection);var n=Bridge.global.System.Array.getCount(this.items,e);this.InsertItem(n,t)},System$Collections$IList$add:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,t,Bridge.global.System.ExceptionArgument.value);try{this.add(Bridge.cast(Bridge.unbox(t),e))}catch(n){if(n=Bridge.global.System.Exception.create(n),!Bridge.is(n,Bridge.global.System.InvalidCastException))throw n;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,t,e)}return this.Count-1|0},clear:function(){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),this.ClearItems()},copyTo:function(t,n){Bridge.global.System.Array.copyTo(this.items,t,n,e)},System$Collections$ICollection$copyTo:function(t,n){var i,r,o,s,a,l;if(null==t&&Bridge.global.System.ThrowHelper.ThrowArgumentNullException(Bridge.global.System.ExceptionArgument.array),1!==Bridge.global.System.Array.getRank(t)&&Bridge.global.System.ThrowHelper.ThrowArgumentException(Bridge.global.System.ExceptionResource.Arg_RankMultiDimNotSupported),0!==Bridge.global.System.Array.getLower(t,0)&&Bridge.global.System.ThrowHelper.ThrowArgumentException(Bridge.global.System.ExceptionResource.Arg_NonZeroLowerBound),n<0&&Bridge.global.System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException(),(t.length-n|0)Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRangeException$2(Bridge.global.System.ExceptionArgument.index,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_ListInsert),this.InsertItem(t,n)},System$Collections$IList$insert:function(t,n){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,n,Bridge.global.System.ExceptionArgument.value);try{this.insert(t,Bridge.cast(Bridge.unbox(n),e))}catch(t){if(t=Bridge.global.System.Exception.create(t),!Bridge.is(t,Bridge.global.System.InvalidCastException))throw t;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,n,e)}},remove:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection);var n=Bridge.global.System.Array.indexOf(this.items,t,0,null,e);return!(n<0||(this.RemoveItem(n),0))},System$Collections$IList$remove:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.Collections.ObjectModel.Collection$1(e).IsCompatibleObject(t)&&this.remove(Bridge.cast(Bridge.unbox(t),e))},removeAt:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),(t<0||t>=Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRange_IndexException(),this.RemoveItem(t)},ClearItems:function(){Bridge.global.System.Array.clear(this.items,e)},InsertItem:function(t,n){Bridge.global.System.Array.insert(this.items,t,n,e)},RemoveItem:function(t){Bridge.global.System.Array.removeAt(this.items,t,e)},SetItem:function(t,n){Bridge.global.System.Array.setItem(this.items,t,n,e)}}}}),Bridge.define("System.Collections.ObjectModel.ReadOnlyCollection$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IList$1(e),Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IReadOnlyList$1(e)],statics:{methods:{IsCompatibleObject:function(t){return Bridge.is(t,e)||null==t&&null==Bridge.getDefaultValue(e)}}},fields:{list:null},props:{Count:{get:function(){return Bridge.global.System.Array.getCount(this.list,e)}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}},Items:{get:function(){return this.list}},System$Collections$IList$IsFixedSize:{get:function(){return!0}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return!0}},System$Collections$IList$IsReadOnly:{get:function(){return!0}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"],"indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","System$Collections$Generic$IList$1$getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IList$1$setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$ICollection$1$add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","System$Collections$Generic$ICollection$1$clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","System$Collections$Generic$IList$1$insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","System$Collections$Generic$ICollection$1$remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","System$Collections$Generic$IList$1$removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt"],ctors:{ctor:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("list");this.list=e}},methods:{getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$Generic$IList$1$getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$Generic$IList$1$setItem:function(){throw new Bridge.global.System.NotSupportedException.ctor},System$Collections$IList$getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$IList$setItem:function(){throw new Bridge.global.System.NotSupportedException.ctor},contains:function(t){return Bridge.global.System.Array.contains(this.list,t,e)},System$Collections$IList$contains:function(t){return!!Bridge.global.System.Collections.ObjectModel.ReadOnlyCollection$1(e).IsCompatibleObject(t)&&this.contains(Bridge.cast(Bridge.unbox(t),e))},copyTo:function(t,n){Bridge.global.System.Array.copyTo(this.list,t,n,e)},System$Collections$ICollection$copyTo:function(t,n){var i,r,o,s,a,l;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(1!==Bridge.global.System.Array.getRank(t))throw new Bridge.global.System.ArgumentException.$ctor1("array");if(0!==Bridge.global.System.Array.getLower(t,0))throw new Bridge.global.System.ArgumentException.$ctor1("array");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if((t.length-n|0)e.length)throw new Bridge.global.System.ArgumentException.$ctor1("index plus count specify a position that is not within buffer.")}if(r="",null!=e)for(1===t&&(n=0,i=e.length),o=n;o<(n+i|0);o=o+1|0)r=(r||"")+String.fromCharCode(e[Bridge.global.System.Array.index(o,e)]);return r},Clear:function(){var e=Bridge.global.console;e&&e.clear&&e.clear()}}}}),Bridge.define("System.TokenType",{$kind:"enum",statics:{fields:{NumberToken:1,YearNumberToken:2,Am:3,Pm:4,MonthToken:5,EndOfString:6,DayOfWeekToken:7,TimeZoneToken:8,EraToken:9,DateWordToken:10,UnknownToken:11,HebrewNumber:12,JapaneseEraToken:13,TEraToken:14,IgnorableSymbol:15,SEP_Unk:256,SEP_End:512,SEP_Space:768,SEP_Am:1024,SEP_Pm:1280,SEP_Date:1536,SEP_Time:1792,SEP_YearSuff:2048,SEP_MonthSuff:2304,SEP_DaySuff:2560,SEP_HourSuff:2816,SEP_MinuteSuff:3072,SEP_SecondSuff:3328,SEP_LocalTimeMark:3584,SEP_DateOrOffset:3840,RegularTokenMask:255,SeparatorTokenMask:65280}}}),Bridge.define("System.UnitySerializationHolder",{inherits:[Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.Runtime.Serialization.IObjectReference],statics:{fields:{NullUnity:0},ctors:{init:function(){this.NullUnity=2}}},alias:["GetRealObject","System$Runtime$Serialization$IObjectReference$GetRealObject"],methods:{GetRealObject:function(){throw Bridge.global.System.NotImplemented.ByDesign}}}),Bridge.define("System.DateTimeKind",{$kind:"enum",statics:{fields:{Unspecified:0,Utc:1,Local:2}}}),Bridge.define("System.DateTimeOffset",{inherits:function(){return[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.Runtime.Serialization.IDeserializationCallback,Bridge.global.System.IComparable$1(Bridge.global.System.DateTimeOffset),Bridge.global.System.IEquatable$1(Bridge.global.System.DateTimeOffset)]},$kind:"struct",statics:{fields:{MaxOffset:Bridge.global.System.Int64(0),MinOffset:Bridge.global.System.Int64(0),UnixEpochTicks:Bridge.global.System.Int64(0),UnixEpochSeconds:Bridge.global.System.Int64(0),UnixEpochMilliseconds:Bridge.global.System.Int64(0),MinValue:null,MaxValue:null},props:{Now:{get:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.getNow())}},UtcNow:{get:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.getUtcNow())}}},ctors:{init:function(){this.MinValue=new Bridge.global.System.DateTimeOffset,this.MaxValue=new Bridge.global.System.DateTimeOffset,this.MaxOffset=Bridge.global.System.Int64([1488826368,117]),this.MinOffset=Bridge.global.System.Int64([-1488826368,-118]),this.UnixEpochTicks=Bridge.global.System.Int64([-139100160,144670709]),this.UnixEpochSeconds=Bridge.global.System.Int64([2006054656,14]),this.UnixEpochMilliseconds=Bridge.global.System.Int64([304928768,14467]),this.MinValue=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.MinTicks,Bridge.global.System.TimeSpan.zero),this.MaxValue=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.MaxTicks,Bridge.global.System.TimeSpan.zero)}},methods:{Compare:function(e,t){return Bridge.compare(e.UtcDateTime,t.UtcDateTime)},Equals:function(e,t){return Bridge.equalsT(e.UtcDateTime,t.UtcDateTime)},FromFileTime:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.FromFileTime(e))},FromUnixTimeSeconds:function(e){var t,n=Bridge.global.System.Int64([-2006054656,-15]),i=Bridge.global.System.Int64([-769665,58]);if(e.lt(n)||e.gt(i))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("seconds",Bridge.global.System.String.format(Bridge.global.System.Environment.GetResourceString("ArgumentOutOfRange_Range"),n,i));return t=e.mul(Bridge.global.System.Int64(1e7)).add(Bridge.global.System.DateTimeOffset.UnixEpochTicks),new Bridge.global.System.DateTimeOffset.$ctor5(t,Bridge.global.System.TimeSpan.zero)},FromUnixTimeMilliseconds:function(e){var t,n=Bridge.global.System.Int64([-304928768,-14468]),i=Bridge.global.System.Int64([-769664001,58999]);if(e.lt(n)||e.gt(i))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("milliseconds",Bridge.global.System.String.format(Bridge.global.System.Environment.GetResourceString("ArgumentOutOfRange_Range"),n,i));return t=e.mul(Bridge.global.System.Int64(1e4)).add(Bridge.global.System.DateTimeOffset.UnixEpochTicks),new Bridge.global.System.DateTimeOffset.$ctor5(t,Bridge.global.System.TimeSpan.zero)},Parse:function(e){var t={},n=Bridge.global.System.DateTimeParse.Parse$1(e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo,0,t);return new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(n),t.v)},Parse$1:function(e,t){return Bridge.global.System.DateTimeOffset.Parse$2(e,t,0)},Parse$2:function(){throw Bridge.global.System.NotImplemented.ByDesign},ParseExact:function(e,t,n){return Bridge.global.System.DateTimeOffset.ParseExact$1(e,t,n,0)},ParseExact$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},TryParse:function(e,t){var n={},i={},r=Bridge.global.System.DateTimeParse.TryParse$1(e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo,0,i,n);return t.v=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(i.v),n.v),r},ValidateOffset:function(e){var t=e.getTicks();if(t.mod(Bridge.global.System.Int64(6e8)).ne(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.Environment.GetResourceString("Argument_OffsetPrecision"),"offset");if(t.lt(Bridge.global.System.DateTimeOffset.MinOffset)||t.gt(Bridge.global.System.DateTimeOffset.MaxOffset))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset",Bridge.global.System.Environment.GetResourceString("Argument_OffsetOutOfRange"));return Bridge.global.System.Int64.clip16(e.getTicks().div(Bridge.global.System.Int64(6e8)))},ValidateDate:function(e,t){var n=Bridge.global.System.DateTime.getTicks(e).sub(t.getTicks());if(n.lt(Bridge.global.System.DateTime.MinTicks)||n.gt(Bridge.global.System.DateTime.MaxTicks))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset",Bridge.global.System.Environment.GetResourceString("Argument_UTCOutOfRange"));return Bridge.global.System.DateTime.create$2(n,0)},op_Implicit:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(e)},op_Addition:function(e,t){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.adddt(e.ClockDateTime,t),e.Offset)},op_Subtraction:function(e,t){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.subdt(e.ClockDateTime,t),e.Offset)},op_Subtraction$1:function(e,t){return Bridge.global.System.DateTime.subdd(e.UtcDateTime,t.UtcDateTime)},op_Equality:function(e,t){return Bridge.equals(e.UtcDateTime,t.UtcDateTime)},op_Inequality:function(e,t){return!Bridge.equals(e.UtcDateTime,t.UtcDateTime)},op_LessThan:function(e,t){return Bridge.global.System.DateTime.lt(e.UtcDateTime,t.UtcDateTime)},op_LessThanOrEqual:function(e,t){return Bridge.global.System.DateTime.lte(e.UtcDateTime,t.UtcDateTime)},op_GreaterThan:function(e,t){return Bridge.global.System.DateTime.gt(e.UtcDateTime,t.UtcDateTime)},op_GreaterThanOrEqual:function(e,t){return Bridge.global.System.DateTime.gte(e.UtcDateTime,t.UtcDateTime)},getDefaultValue:function(){return new Bridge.global.System.DateTimeOffset}}},fields:{m_dateTime:null,m_offsetMinutes:0},props:{DateTime:{get:function(){return this.ClockDateTime}},UtcDateTime:{get:function(){return Bridge.global.System.DateTime.specifyKind(this.m_dateTime,1)}},LocalDateTime:{get:function(){return Bridge.global.System.DateTime.toLocalTime(this.UtcDateTime)}},ClockDateTime:{get:function(){return Bridge.global.System.DateTime.create$2(Bridge.global.System.DateTime.getTicks(Bridge.global.System.DateTime.adddt(this.m_dateTime,this.Offset)),0)}},Date:{get:function(){return Bridge.global.System.DateTime.getDate(this.ClockDateTime)}},Day:{get:function(){return Bridge.global.System.DateTime.getDay(this.ClockDateTime)}},DayOfWeek:{get:function(){return Bridge.global.System.DateTime.getDayOfWeek(this.ClockDateTime)}},DayOfYear:{get:function(){return Bridge.global.System.DateTime.getDayOfYear(this.ClockDateTime)}},Hour:{get:function(){return Bridge.global.System.DateTime.getHour(this.ClockDateTime)}},Millisecond:{get:function(){return Bridge.global.System.DateTime.getMillisecond(this.ClockDateTime)}},Minute:{get:function(){return Bridge.global.System.DateTime.getMinute(this.ClockDateTime)}},Month:{get:function(){return Bridge.global.System.DateTime.getMonth(this.ClockDateTime)}},Offset:{get:function(){return new Bridge.global.System.TimeSpan(0,this.m_offsetMinutes,0)}},Second:{get:function(){return Bridge.global.System.DateTime.getSecond(this.ClockDateTime)}},Ticks:{get:function(){return Bridge.global.System.DateTime.getTicks(this.ClockDateTime)}},UtcTicks:{get:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime)}},TimeOfDay:{get:function(){return Bridge.global.System.DateTime.getTimeOfDay(this.ClockDateTime)}},Year:{get:function(){return Bridge.global.System.DateTime.getYear(this.ClockDateTime)}}},alias:["compareTo",["System$IComparable$1$System$DateTimeOffset$compareTo","System$IComparable$1$compareTo"],"equalsT","System$IEquatable$1$System$DateTimeOffset$equalsT","format","System$IFormattable$format"],ctors:{init:function(){this.m_dateTime=Bridge.global.System.DateTime.getDefaultValue()},$ctor5:function(e,t){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t);var n=Bridge.global.System.DateTime.create$2(e);this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(n,t)},$ctor1:function(e){var t;this.$initialize(),t=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64(0)),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(e,t)},$ctor2:function(e,t){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(e,t)},$ctor4:function(e,t,n,i,r,o,s){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(s),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(Bridge.global.System.DateTime.create(e,t,n,i,r,o),s)},$ctor3:function(e,t,n,i,r,o,s,a){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(a),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(Bridge.global.System.DateTime.create(e,t,n,i,r,o,s),a)},ctor:function(){this.$initialize()}},methods:{ToOffset:function(e){return new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(Bridge.global.System.DateTime.adddt(this.m_dateTime,e)),e)},Add:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.add(this.ClockDateTime,e),this.Offset)},AddDays:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addDays(this.ClockDateTime,e),this.Offset)},AddHours:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addHours(this.ClockDateTime,e),this.Offset)},AddMilliseconds:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMilliseconds(this.ClockDateTime,e),this.Offset)},AddMinutes:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMinutes(this.ClockDateTime,e),this.Offset)},AddMonths:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMonths(this.ClockDateTime,e),this.Offset)},AddSeconds:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addSeconds(this.ClockDateTime,e),this.Offset)},AddTicks:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addTicks(this.ClockDateTime,e),this.Offset)},AddYears:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addYears(this.ClockDateTime,e),this.Offset)},System$IComparable$compareTo:function(e){if(null==e)return 1;if(!Bridge.is(e,Bridge.global.System.DateTimeOffset))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.Environment.GetResourceString("Arg_MustBeDateTimeOffset"));var t=Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTimeOffset)).UtcDateTime,n=this.UtcDateTime;return Bridge.global.System.DateTime.gt(n,t)?1:Bridge.global.System.DateTime.lt(n,t)?-1:0},compareTo:function(e){var t=e.UtcDateTime,n=this.UtcDateTime;return Bridge.global.System.DateTime.gt(n,t)?1:Bridge.global.System.DateTime.lt(n,t)?-1:0},equals:function(e){return!!Bridge.is(e,Bridge.global.System.DateTimeOffset)&&Bridge.equalsT(this.UtcDateTime,Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTimeOffset)).UtcDateTime)},equalsT:function(e){return Bridge.equalsT(this.UtcDateTime,e.UtcDateTime)},EqualsExact:function(e){return Bridge.equals(this.ClockDateTime,e.ClockDateTime)&&Bridge.global.System.TimeSpan.eq(this.Offset,e.Offset)&&Bridge.global.System.DateTime.getKind(this.ClockDateTime)===Bridge.global.System.DateTime.getKind(e.ClockDateTime)},System$Runtime$Serialization$IDeserializationCallback$OnDeserialization:function(){try{this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(this.Offset),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(this.ClockDateTime,this.Offset)}catch(t){var e;throw t=Bridge.global.System.Exception.create(t),Bridge.is(t,Bridge.global.System.ArgumentException)?(e=t,new Bridge.global.System.Runtime.Serialization.SerializationException.$ctor2(Bridge.global.System.Environment.GetResourceString("Serialization_InvalidData"),e)):t}},getHashCode:function(){return Bridge.getHashCode(this.UtcDateTime)},Subtract$1:function(e){return Bridge.global.System.DateTime.subdd(this.UtcDateTime,e.UtcDateTime)},Subtract:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.subtract(this.ClockDateTime,e),this.Offset)},ToFileTime:function(){return Bridge.global.System.DateTime.ToFileTime(this.UtcDateTime)},ToUnixTimeSeconds:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime).div(Bridge.global.System.Int64(1e7)).sub(Bridge.global.System.DateTimeOffset.UnixEpochSeconds)},ToUnixTimeMilliseconds:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime).div(Bridge.global.System.Int64(1e4)).sub(Bridge.global.System.DateTimeOffset.UnixEpochMilliseconds)},ToLocalTime:function(){return this.ToLocalTime$1(!1)},ToLocalTime$1:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.toLocalTime(this.UtcDateTime,e))},toString:function(){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2))},ToString$1:function(e){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),e)},ToString:function(e){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),null,e)},format:function(e,t){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),e,t)},ToUniversalTime:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(this.UtcDateTime)},$clone:function(e){var t=e||new Bridge.global.System.DateTimeOffset;return t.m_dateTime=this.m_dateTime,t.m_offsetMinutes=this.m_offsetMinutes,t}}}),Bridge.define("System.DateTimeParse",{statics:{methods:{TryParseExact:function(e,t,n,i,r){return Bridge.global.System.DateTime.tryParseExact(e,t,null,r)},Parse:function(e,t){return Bridge.global.System.DateTime.parse(e,t)},Parse$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},TryParse:function(e,t,n,i){return Bridge.global.System.DateTime.tryParse(e,null,i)},TryParse$1:function(){throw Bridge.global.System.NotImplemented.ByDesign}}}}),Bridge.define("System.DateTimeResult",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.DateTimeResult}}},fields:{Year:0,Month:0,Day:0,Hour:0,Minute:0,Second:0,fraction:0,era:0,flags:0,timeZoneOffset:null,calendar:null,parsedDate:null,failure:0,failureMessageID:null,failureMessageFormatArgument:null,failureArgumentName:null},ctors:{init:function(){this.timeZoneOffset=new Bridge.global.System.TimeSpan,this.parsedDate=Bridge.global.System.DateTime.getDefaultValue()},ctor:function(){this.$initialize()}},methods:{Init:function(){this.Year=-1,this.Month=-1,this.Day=-1,this.fraction=-1,this.era=-1},SetDate:function(e,t,n){this.Year=e,this.Month=t,this.Day=n},SetFailure:function(e,t,n){this.failure=e,this.failureMessageID=t,this.failureMessageFormatArgument=n},SetFailure$1:function(e,t,n,i){this.failure=e,this.failureMessageID=t,this.failureMessageFormatArgument=n,this.failureArgumentName=i},getHashCode:function(){return Bridge.addHash([5374321750,this.Year,this.Month,this.Day,this.Hour,this.Minute,this.Second,this.fraction,this.era,this.flags,this.timeZoneOffset,this.calendar,this.parsedDate,this.failure,this.failureMessageID,this.failureMessageFormatArgument,this.failureArgumentName])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.DateTimeResult)&&Bridge.equals(this.Year,e.Year)&&Bridge.equals(this.Month,e.Month)&&Bridge.equals(this.Day,e.Day)&&Bridge.equals(this.Hour,e.Hour)&&Bridge.equals(this.Minute,e.Minute)&&Bridge.equals(this.Second,e.Second)&&Bridge.equals(this.fraction,e.fraction)&&Bridge.equals(this.era,e.era)&&Bridge.equals(this.flags,e.flags)&&Bridge.equals(this.timeZoneOffset,e.timeZoneOffset)&&Bridge.equals(this.calendar,e.calendar)&&Bridge.equals(this.parsedDate,e.parsedDate)&&Bridge.equals(this.failure,e.failure)&&Bridge.equals(this.failureMessageID,e.failureMessageID)&&Bridge.equals(this.failureMessageFormatArgument,e.failureMessageFormatArgument)&&Bridge.equals(this.failureArgumentName,e.failureArgumentName)},$clone:function(e){var t=e||new Bridge.global.System.DateTimeResult;return t.Year=this.Year,t.Month=this.Month,t.Day=this.Day,t.Hour=this.Hour,t.Minute=this.Minute,t.Second=this.Second,t.fraction=this.fraction,t.era=this.era,t.flags=this.flags,t.timeZoneOffset=this.timeZoneOffset,t.calendar=this.calendar,t.parsedDate=this.parsedDate,t.failure=this.failure,t.failureMessageID=this.failureMessageID,t.failureMessageFormatArgument=this.failureMessageFormatArgument,t.failureArgumentName=this.failureArgumentName,t}}}),Bridge.define("System.DayOfWeek",{$kind:"enum",statics:{fields:{Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6}}}),Bridge.define("System.DBNull",{inherits:[Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.IConvertible],statics:{fields:{Value:null},ctors:{init:function(){this.Value=new Bridge.global.System.DBNull}}},alias:["ToString","System$IConvertible$ToString","GetTypeCode","System$IConvertible$GetTypeCode"],ctors:{ctor:function(){this.$initialize()}},methods:{toString:function(){return""},ToString:function(){return""},GetTypeCode:function(){return Bridge.global.System.TypeCode.DBNull},System$IConvertible$ToBoolean:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToChar:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToSByte:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToByte:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt16:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt16:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt32:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt32:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt64:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt64:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToSingle:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDouble:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDecimal:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDateTime:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToType:function(e,t){return Bridge.global.System.Convert.defaultToType(Bridge.cast(this,Bridge.global.System.IConvertible),e,t)}}}),Bridge.define("System.Empty",{statics:{fields:{Value:null},ctors:{init:function(){this.Value=new Bridge.global.System.Empty}}},ctors:{ctor:function(){this.$initialize()}},methods:{toString:function(){return""}}}),Bridge.define("System.ApplicationException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"Error in the application."),this.HResult=-2146232832},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e),this.HResult=-2146232832},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t),this.HResult=-2146232832}}}),Bridge.define("System.ArgumentException",{inherits:[Bridge.global.System.SystemException],fields:{_paramName:null},props:{Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message;return Bridge.global.System.String.isNullOrEmpty(this._paramName)?t:(e=Bridge.global.System.SR.Format("Parameter name: {0}",this._paramName),(t||"")+"\n"+(e||""))}},ParamName:{get:function(){return this._paramName}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Value does not fall within the expected range."),this.HResult=-2147024809},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024809},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024809},$ctor4:function(e,t,n){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,n),this._paramName=t,this.HResult=-2147024809},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this._paramName=t,this.HResult=-2147024809}}}),Bridge.define("System.ArgumentNullException",{inherits:[Bridge.global.System.ArgumentException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,"Value cannot be null."),this.HResult=-2147467261},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,"Value cannot be null.",e),this.HResult=-2147467261},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t),this.HResult=-2147467261},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e),this.HResult=-2147467261}}}),Bridge.define("System.ArgumentOutOfRangeException",{inherits:[Bridge.global.System.ArgumentException],fields:{_actualValue:null},props:{Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$ArgumentException$Message;return null!=this._actualValue?(e=Bridge.global.System.SR.Format("Actual value was {0}.",Bridge.toString(this._actualValue)),null==t?e:(t||"")+"\n"+(e||"")):t}},ActualValue:{get:function(){return this._actualValue}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,"Specified argument was out of the range of valid values."),this.HResult=-2146233086},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,"Specified argument was out of the range of valid values.",e),this.HResult=-2146233086},$ctor4:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e),this.HResult=-2146233086},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t),this.HResult=-2146233086},$ctor3:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._actualValue=t,this.HResult=-2146233086}}}),Bridge.define("System.ArithmeticException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Overflow or underflow in the arithmetic operation."),this.HResult=-2147024362},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024362},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024362}}}),Bridge.define("System.Base64FormattingOptions",{$kind:"enum",statics:{fields:{None:0,InsertLineBreaks:1}},$flags:!0}),Bridge.define("System.DivideByZeroException",{inherits:[Bridge.global.System.ArithmeticException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor1.call(this,"Attempted to divide by zero."),this.HResult=-2147352558},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor1.call(this,e),this.HResult=-2147352558},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor2.call(this,e,t),this.HResult=-2147352558}}}),Bridge.define("System.ExceptionArgument",{$kind:"enum",statics:{fields:{obj:0,dictionary:1,array:2,info:3,key:4,collection:5,list:6,match:7,converter:8,capacity:9,index:10,startIndex:11,value:12,count:13,arrayIndex:14,$name:15,item:16,options:17,view:18,sourceBytesToCopy:19,action:20,comparison:21,offset:22,newSize:23,elementType:24,$length:25,length1:26,length2:27,length3:28,lengths:29,len:30,lowerBounds:31,sourceArray:32,destinationArray:33,sourceIndex:34,destinationIndex:35,indices:36,index1:37,index2:38,index3:39,other:40,comparer:41,endIndex:42,keys:43,creationOptions:44,timeout:45,tasks:46,scheduler:47,continuationFunction:48,millisecondsTimeout:49,millisecondsDelay:50,function:51,exceptions:52,exception:53,cancellationToken:54,delay:55,asyncResult:56,endMethod:57,endFunction:58,beginMethod:59,continuationOptions:60,continuationAction:61,concurrencyLevel:62,text:63,callBack:64,type:65,stateMachine:66,pHandle:67,values:68,task:69,s:70,keyValuePair:71,input:72,ownedMemory:73,pointer:74,start:75,format:76,culture:77,comparable:78,source:79,state:80}}}),Bridge.define("System.ExceptionResource",{$kind:"enum",statics:{fields:{Argument_ImplementIComparable:0,Argument_InvalidType:1,Argument_InvalidArgumentForComparison:2,Argument_InvalidRegistryKeyPermissionCheck:3,ArgumentOutOfRange_NeedNonNegNum:4,Arg_ArrayPlusOffTooSmall:5,Arg_NonZeroLowerBound:6,Arg_RankMultiDimNotSupported:7,Arg_RegKeyDelHive:8,Arg_RegKeyStrLenBug:9,Arg_RegSetStrArrNull:10,Arg_RegSetMismatchedKind:11,Arg_RegSubKeyAbsent:12,Arg_RegSubKeyValueAbsent:13,Argument_AddingDuplicate:14,Serialization_InvalidOnDeser:15,Serialization_MissingKeys:16,Serialization_NullKey:17,Argument_InvalidArrayType:18,NotSupported_KeyCollectionSet:19,NotSupported_ValueCollectionSet:20,ArgumentOutOfRange_SmallCapacity:21,ArgumentOutOfRange_Index:22,Argument_InvalidOffLen:23,Argument_ItemNotExist:24,ArgumentOutOfRange_Count:25,ArgumentOutOfRange_InvalidThreshold:26,ArgumentOutOfRange_ListInsert:27,NotSupported_ReadOnlyCollection:28,InvalidOperation_CannotRemoveFromStackOrQueue:29,InvalidOperation_EmptyQueue:30,InvalidOperation_EnumOpCantHappen:31,InvalidOperation_EnumFailedVersion:32,InvalidOperation_EmptyStack:33,ArgumentOutOfRange_BiggerThanCollection:34,InvalidOperation_EnumNotStarted:35,InvalidOperation_EnumEnded:36,NotSupported_SortedListNestedWrite:37,InvalidOperation_NoValue:38,InvalidOperation_RegRemoveSubKey:39,Security_RegistryPermission:40,UnauthorizedAccess_RegistryNoWrite:41,ObjectDisposed_RegKeyClosed:42,NotSupported_InComparableType:43,Argument_InvalidRegistryOptionsCheck:44,Argument_InvalidRegistryViewCheck:45,InvalidOperation_NullArray:46,Arg_MustBeType:47,Arg_NeedAtLeast1Rank:48,ArgumentOutOfRange_HugeArrayNotSupported:49,Arg_RanksAndBounds:50,Arg_RankIndices:51,Arg_Need1DArray:52,Arg_Need2DArray:53,Arg_Need3DArray:54,NotSupported_FixedSizeCollection:55,ArgumentException_OtherNotArrayOfCorrectLength:56,Rank_MultiDimNotSupported:57,InvalidOperation_IComparerFailed:58,ArgumentOutOfRange_EndIndexStartIndex:59,Arg_LowerBoundsMustMatch:60,Arg_BogusIComparer:61,Task_WaitMulti_NullTask:62,Task_ThrowIfDisposed:63,Task_Start_TaskCompleted:64,Task_Start_Promise:65,Task_Start_ContinuationTask:66,Task_Start_AlreadyStarted:67,Task_RunSynchronously_TaskCompleted:68,Task_RunSynchronously_Continuation:69,Task_RunSynchronously_Promise:70,Task_RunSynchronously_AlreadyStarted:71,Task_MultiTaskContinuation_NullTask:72,Task_MultiTaskContinuation_EmptyTaskList:73,Task_Dispose_NotCompleted:74,Task_Delay_InvalidMillisecondsDelay:75,Task_Delay_InvalidDelay:76,Task_ctor_LRandSR:77,Task_ContinueWith_NotOnAnything:78,Task_ContinueWith_ESandLR:79,TaskT_TransitionToFinal_AlreadyCompleted:80,TaskCompletionSourceT_TrySetException_NullException:81,TaskCompletionSourceT_TrySetException_NoExceptions:82,MemoryDisposed:83,Memory_OutstandingReferences:84,InvalidOperation_WrongAsyncResultOrEndCalledMultiple:85,ConcurrentDictionary_ConcurrencyLevelMustBePositive:86,ConcurrentDictionary_CapacityMustNotBeNegative:87,ConcurrentDictionary_TypeOfValueIncorrect:88,ConcurrentDictionary_TypeOfKeyIncorrect:89,ConcurrentDictionary_KeyAlreadyExisted:90,ConcurrentDictionary_ItemKeyIsNull:91,ConcurrentDictionary_IndexIsNegative:92,ConcurrentDictionary_ArrayNotLargeEnough:93,ConcurrentDictionary_ArrayIncorrectType:94,ConcurrentCollection_SyncRoot_NotSupported:95,ArgumentOutOfRange_Enum:96,InvalidOperation_HandleIsNotInitialized:97,AsyncMethodBuilder_InstanceNotInitialized:98,ArgumentNull_SafeHandle:99}}}),Bridge.define("System.FormatException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"One of the identified items was in an invalid format."),this.HResult=-2146233033},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233033},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233033}}}),Bridge.define("System.FormattableString",{inherits:[Bridge.global.System.IFormattable],statics:{methods:{Invariant:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("formattable");return e.ToString(Bridge.global.System.Globalization.CultureInfo.invariantCulture)}}},methods:{System$IFormattable$format:function(e,t){return this.ToString(t)},toString:function(){return this.ToString(Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())}}}),Bridge.define("System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString",{inherits:[Bridge.global.System.FormattableString],$kind:"nested class",fields:{_format:null,_arguments:null},props:{Format:{get:function(){return this._format}},ArgumentCount:{get:function(){return this._arguments.length}}},ctors:{ctor:function(e,t){this.$initialize(),Bridge.global.System.FormattableString.ctor.call(this),this._format=e,this._arguments=t}},methods:{GetArguments:function(){return this._arguments},GetArgument:function(e){return this._arguments[Bridge.global.System.Array.index(e,this._arguments)]},ToString:function(e){return Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[e,this._format].concat(this._arguments))}}}),Bridge.define("System.Runtime.CompilerServices.FormattableStringFactory",{statics:{methods:{Create:function(e,t){if(void 0===t&&(t=[]),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("format");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("arguments");return new Bridge.global.System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString(e,t)}}}}),Bridge.define("System.Guid",{inherits:function(){return[Bridge.global.System.IEquatable$1(Bridge.global.System.Guid),Bridge.global.System.IComparable$1(Bridge.global.System.Guid),Bridge.global.System.IFormattable]},$kind:"struct",statics:{fields:{error1:null,Valid:null,Split:null,NonFormat:null,Replace:null,Rnd:null,Empty:null},ctors:{init:function(){this.Empty=new Bridge.global.System.Guid,this.error1="Byte array for GUID must be exactly {0} bytes long",this.Valid=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",1),this.Split=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(.{8})(.{4})(.{4})(.{4})(.{12})$"),this.NonFormat=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^[{(]?([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})[)}]?$",1),this.Replace=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("-"),this.Rnd=new Bridge.global.System.Random.ctor}},methods:{Parse:function(e){return Bridge.global.System.Guid.ParseExact(e,null)},ParseExact:function(e,t){var n=new Bridge.global.System.Guid.ctor;return n.ParseInternal(e,t,!0),n},TryParse:function(e,t){return Bridge.global.System.Guid.TryParseExact(e,null,t)},TryParseExact:function(e,t,n){return n.v=new Bridge.global.System.Guid.ctor,n.v.ParseInternal(e,t,!1)},NewGuid:function(){var e=Bridge.global.System.Array.init(16,0,Bridge.global.System.Byte);return Bridge.global.System.Guid.Rnd.NextBytes(e),e[Bridge.global.System.Array.index(7,e)]=255&(15&e[Bridge.global.System.Array.index(7,e)]|64),e[Bridge.global.System.Array.index(8,e)]=255&(191&e[Bridge.global.System.Array.index(8,e)]|128),new Bridge.global.System.Guid.$ctor1(e)},MakeBinary:function(e){return Bridge.global.System.Int32.format(255&e,"x2")},op_Equality:function(e,t){return Bridge.referenceEquals(e,null)?Bridge.referenceEquals(t,null):e.equalsT(t)},op_Inequality:function(e,t){return!Bridge.global.System.Guid.op_Equality(e,t)},getDefaultValue:function(){return new Bridge.global.System.Guid}}},fields:{_a:0,_b:0,_c:0,_d:0,_e:0,_f:0,_g:0,_h:0,_i:0,_j:0,_k:0},alias:["equalsT","System$IEquatable$1$System$Guid$equalsT","compareTo",["System$IComparable$1$System$Guid$compareTo","System$IComparable$1$compareTo"],"format","System$IFormattable$format"],ctors:{$ctor4:function(e){this.$initialize(),(new Bridge.global.System.Guid.ctor).$clone(this),this.ParseInternal(e,null,!0)},$ctor1:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("b");if(16!==e.length)throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.format(Bridge.global.System.Guid.error1,[Bridge.box(16,Bridge.global.System.Int32)]));this._a=e[Bridge.global.System.Array.index(3,e)]<<24|e[Bridge.global.System.Array.index(2,e)]<<16|e[Bridge.global.System.Array.index(1,e)]<<8|e[Bridge.global.System.Array.index(0,e)],this._b=Bridge.Int.sxs(65535&(e[Bridge.global.System.Array.index(5,e)]<<8|e[Bridge.global.System.Array.index(4,e)])),this._c=Bridge.Int.sxs(65535&(e[Bridge.global.System.Array.index(7,e)]<<8|e[Bridge.global.System.Array.index(6,e)])),this._d=e[Bridge.global.System.Array.index(8,e)],this._e=e[Bridge.global.System.Array.index(9,e)],this._f=e[Bridge.global.System.Array.index(10,e)],this._g=e[Bridge.global.System.Array.index(11,e)],this._h=e[Bridge.global.System.Array.index(12,e)],this._i=e[Bridge.global.System.Array.index(13,e)],this._j=e[Bridge.global.System.Array.index(14,e)],this._k=e[Bridge.global.System.Array.index(15,e)]},$ctor5:function(e,t,n,i,r,o,s,a,l,u,d){this.$initialize(),this._a=0|e,this._b=Bridge.Int.sxs(65535&t),this._c=Bridge.Int.sxs(65535&n),this._d=i,this._e=r,this._f=o,this._g=s,this._h=a,this._i=l,this._j=u,this._k=d},$ctor3:function(e,t,n,i){if(this.$initialize(),null==i)throw new Bridge.global.System.ArgumentNullException.$ctor1("d");if(8!==i.length)throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.format(Bridge.global.System.Guid.error1,[Bridge.box(8,Bridge.global.System.Int32)]));this._a=e,this._b=t,this._c=n,this._d=i[Bridge.global.System.Array.index(0,i)],this._e=i[Bridge.global.System.Array.index(1,i)],this._f=i[Bridge.global.System.Array.index(2,i)],this._g=i[Bridge.global.System.Array.index(3,i)],this._h=i[Bridge.global.System.Array.index(4,i)],this._i=i[Bridge.global.System.Array.index(5,i)],this._j=i[Bridge.global.System.Array.index(6,i)],this._k=i[Bridge.global.System.Array.index(7,i)]},$ctor2:function(e,t,n,i,r,o,s,a,l,u,d){this.$initialize(),this._a=e,this._b=t,this._c=n,this._d=i,this._e=r,this._f=o,this._g=s,this._h=a,this._i=l,this._j=u,this._k=d},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return this._a^(this._b<<16|65535&this._c)^(this._f<<24|this._k)},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Guid)&&this.equalsT(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.Guid)))},equalsT:function(e){return this._a===e._a&&this._b===e._b&&this._c===e._c&&this._d===e._d&&this._e===e._e&&this._f===e._f&&this._g===e._g&&this._h===e._h&&this._i===e._i&&this._j===e._j&&this._k===e._k},compareTo:function(e){return Bridge.global.System.String.compare(this.toString(),e.toString())},toString:function(){return this.Format(null)},ToString:function(e){return this.Format(e)},format:function(e){return this.Format(e)},ToByteArray:function(){var e=Bridge.global.System.Array.init(16,0,Bridge.global.System.Byte);return e[Bridge.global.System.Array.index(0,e)]=255&this._a,e[Bridge.global.System.Array.index(1,e)]=this._a>>8&255,e[Bridge.global.System.Array.index(2,e)]=this._a>>16&255,e[Bridge.global.System.Array.index(3,e)]=this._a>>24&255,e[Bridge.global.System.Array.index(4,e)]=255&this._b,e[Bridge.global.System.Array.index(5,e)]=this._b>>8&255,e[Bridge.global.System.Array.index(6,e)]=255&this._c,e[Bridge.global.System.Array.index(7,e)]=this._c>>8&255,e[Bridge.global.System.Array.index(8,e)]=this._d,e[Bridge.global.System.Array.index(9,e)]=this._e,e[Bridge.global.System.Array.index(10,e)]=this._f,e[Bridge.global.System.Array.index(11,e)]=this._g,e[Bridge.global.System.Array.index(12,e)]=this._h,e[Bridge.global.System.Array.index(13,e)]=this._i,e[Bridge.global.System.Array.index(14,e)]=this._j,e[Bridge.global.System.Array.index(15,e)]=this._k,e},ParseInternal:function(e,t,n){var i,r,o,s,a,l,u,d,c=null;if(Bridge.global.System.String.isNullOrEmpty(e)){if(n)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return!1}if(Bridge.global.System.String.isNullOrEmpty(t)){if((i=Bridge.global.System.Guid.NonFormat.match(e)).getSuccess()){for(r=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),o=1;o<=i.getGroups().getCount();o=o+1|0)i.getGroups().get(o).getSuccess()&&r.add(i.getGroups().get(o).getValue());c=r.ToArray().join("-").toLowerCase()}}else{if(t=t.toUpperCase(),s=!1,Bridge.referenceEquals(t,"N")){if((a=Bridge.global.System.Guid.Split.match(e)).getSuccess()){for(l=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),u=1;u<=a.getGroups().getCount();u=u+1|0)a.getGroups().get(u).getSuccess()&&l.add(a.getGroups().get(u).getValue());s=!0,e=l.ToArray().join("-")}}else Bridge.referenceEquals(t,"B")||Bridge.referenceEquals(t,"P")?(d=Bridge.referenceEquals(t,"B")?Bridge.global.System.Array.init([123,125],Bridge.global.System.Char):Bridge.global.System.Array.init([40,41],Bridge.global.System.Char),e.charCodeAt(0)===d[Bridge.global.System.Array.index(0,d)]&&e.charCodeAt(e.length-1|0)===d[Bridge.global.System.Array.index(1,d)]&&(s=!0,e=e.substr(1,e.length-2|0))):s=!0;s&&Bridge.global.System.Guid.Valid.isMatch(e)&&(c=e.toLowerCase())}if(null!=c)return this.FromString(c),!0;if(n)throw new Bridge.global.System.FormatException.$ctor1("input is not in a recognized format");return!1},Format:function(e){var t,n,i,r=(Bridge.global.System.UInt32.format(this._a>>>0,"x8")||"")+(Bridge.global.System.UInt16.format(65535&this._b,"x4")||"")+(Bridge.global.System.UInt16.format(65535&this._c,"x4")||"");for(r=(r||"")+(Bridge.global.System.Array.init([this._d,this._e,this._f,this._g,this._h,this._i,this._j,this._k],Bridge.global.System.Byte).map(Bridge.global.System.Guid.MakeBinary).join("")||""),t=Bridge.global.System.Guid.Split.match(r),n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),i=1;i<=t.getGroups().getCount();i=i+1|0)t.getGroups().get(i).getSuccess()&&n.add(t.getGroups().get(i).getValue());switch(r=n.ToArray().join("-"),e){case"n":case"N":return Bridge.global.System.Guid.Replace.replace(r,"");case"b":case"B":return String.fromCharCode(123)+(r||"")+String.fromCharCode(125);case"p":case"P":return String.fromCharCode(40)+(r||"")+String.fromCharCode(41);default:return r}},FromString:function(e){var t,n;if(!Bridge.global.System.String.isNullOrEmpty(e)){for(e=Bridge.global.System.Guid.Replace.replace(e,""),t=Bridge.global.System.Array.init(8,0,Bridge.global.System.Byte),this._a=0|Bridge.global.System.UInt32.parse(e.substr(0,8),16),this._b=Bridge.Int.sxs(65535&Bridge.global.System.UInt16.parse(e.substr(8,4),16)),this._c=Bridge.Int.sxs(65535&Bridge.global.System.UInt16.parse(e.substr(12,4),16)),n=8;n<16;n=n+1|0)t[Bridge.global.System.Array.index(n-8|0,t)]=Bridge.global.System.Byte.parse(e.substr(Bridge.Int.mul(n,2),2),16);this._d=t[Bridge.global.System.Array.index(0,t)],this._e=t[Bridge.global.System.Array.index(1,t)],this._f=t[Bridge.global.System.Array.index(2,t)],this._g=t[Bridge.global.System.Array.index(3,t)],this._h=t[Bridge.global.System.Array.index(4,t)],this._i=t[Bridge.global.System.Array.index(5,t)],this._j=t[Bridge.global.System.Array.index(6,t)],this._k=t[Bridge.global.System.Array.index(7,t)]}},toJSON:function(){return this.toString()},$clone:function(){return this}}}),Bridge.define("System.IndexOutOfRangeException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Index was outside the bounds of the array."),this.HResult=-2146233080},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233080},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233080}}}),Bridge.define("System.InvalidCastException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Specified cast is not valid."),this.HResult=-2147467262},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147467262},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147467262},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=t}}}),Bridge.define("System.InvalidOperationException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Operation is not valid due to the current state of the object."),this.HResult=-2146233079},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233079},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233079}}}),Bridge.define("System.ObjectDisposedException",{inherits:[Bridge.global.System.InvalidOperationException],fields:{_objectName:null},props:{Message:{get:function(){var e,t=this.ObjectName;return null==t||0===t.length?Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message:(e=Bridge.global.System.SR.Format("Object name: '{0}'.",t),(Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message||"")+"\n"+(e||""))}},ObjectName:{get:function(){return null==this._objectName?"":this._objectName}}},ctors:{ctor:function(){Bridge.global.System.ObjectDisposedException.$ctor3.call(this,null,"Cannot access a disposed object.")},$ctor1:function(e){Bridge.global.System.ObjectDisposedException.$ctor3.call(this,e,"Cannot access a disposed object.")},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.InvalidOperationException.$ctor1.call(this,t),this.HResult=-2146232798,this._objectName=e},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.InvalidOperationException.$ctor2.call(this,e,t),this.HResult=-2146232798}}}),Bridge.define("System.InvalidProgramException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Common Language Runtime detected an invalid program."),this.HResult=-2146233030},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233030},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233030}}}),Bridge.define("System.Globalization.Calendar",{inherits:[Bridge.global.System.ICloneable],statics:{fields:{TicksPerMillisecond:Bridge.global.System.Int64(0),TicksPerSecond:Bridge.global.System.Int64(0),TicksPerMinute:Bridge.global.System.Int64(0),TicksPerHour:Bridge.global.System.Int64(0),TicksPerDay:Bridge.global.System.Int64(0),MillisPerSecond:0,MillisPerMinute:0,MillisPerHour:0,MillisPerDay:0,DaysPerYear:0,DaysPer4Years:0,DaysPer100Years:0,DaysPer400Years:0,DaysTo10000:0,MaxMillis:Bridge.global.System.Int64(0),CurrentEra:0},ctors:{init:function(){this.TicksPerMillisecond=Bridge.global.System.Int64(1e4),this.TicksPerSecond=Bridge.global.System.Int64(1e7),this.TicksPerMinute=Bridge.global.System.Int64(6e8),this.TicksPerHour=Bridge.global.System.Int64([1640261632,8]),this.TicksPerDay=Bridge.global.System.Int64([711573504,201]),this.MillisPerSecond=1e3,this.MillisPerMinute=6e4,this.MillisPerHour=36e5,this.MillisPerDay=864e5,this.DaysPerYear=365,this.DaysPer4Years=1461,this.DaysPer100Years=36524,this.DaysPer400Years=146097,this.DaysTo10000=3652059,this.MaxMillis=Bridge.global.System.Int64([-464735232,73466]),this.CurrentEra=0}},methods:{ReadOnly:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("calendar");if(e.IsReadOnly)return e;var t=Bridge.cast(Bridge.clone(e),Bridge.global.System.Globalization.Calendar);return t.SetReadOnlyState(!0),t},CheckAddResult:function(e,t,n){if(e.lt(Bridge.global.System.DateTime.getTicks(t))||e.gt(Bridge.global.System.DateTime.getTicks(n)))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.formatProvider(Bridge.global.System.Globalization.CultureInfo.invariantCulture,Bridge.global.System.SR.Format$1("The result is out of the supported range for this calendar. The result should be between {0} (Gregorian date) and {1} (Gregorian date), inclusive.",Bridge.box(t,Bridge.global.System.DateTime,Bridge.global.System.DateTime.format),Bridge.box(n,Bridge.global.System.DateTime,Bridge.global.System.DateTime.format)),null))},GetSystemTwoDigitYearSetting:function(e,t){var n=2029;return n<0&&(n=t),n}}},fields:{_isReadOnly:!1,twoDigitYearMax:0},props:{MinSupportedDateTime:{get:function(){return Bridge.global.System.DateTime.getMinValue()}},MaxSupportedDateTime:{get:function(){return Bridge.global.System.DateTime.getMaxValue()}},AlgorithmType:{get:function(){return 0}},ID:{get:function(){return 0}},BaseCalendarID:{get:function(){return this.ID}},IsReadOnly:{get:function(){return this._isReadOnly}},CurrentEraValue:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},DaysInYearBeforeMinSupportedYear:{get:function(){return 365}},TwoDigitYearMax:{get:function(){return this.twoDigitYearMax},set:function(e){this.VerifyWritable(),this.twoDigitYearMax=e}}},alias:["clone","System$ICloneable$clone"],ctors:{init:function(){this._isReadOnly=!1,this.twoDigitYearMax=-1},ctor:function(){this.$initialize()}},methods:{clone:function(){var e=Bridge.clone(this);return Bridge.cast(e,Bridge.global.System.Globalization.Calendar).SetReadOnlyState(!1),e},VerifyWritable:function(){if(this._isReadOnly)throw new Bridge.global.System.InvalidOperationException.$ctor1("Instance is read-only.")},SetReadOnlyState:function(e){this._isReadOnly=e},Add:function(e,t,n){var i,r,o=t*n+(t>=0?.5:-.5);if(!(o>-3155378976e5&&o<3155378976e5))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Value to add was out of range.");return i=Bridge.Int.clip64(o),r=Bridge.global.System.DateTime.getTicks(e).add(i.mul(Bridge.global.System.Globalization.Calendar.TicksPerMillisecond)),Bridge.global.System.Globalization.Calendar.CheckAddResult(r,this.MinSupportedDateTime,this.MaxSupportedDateTime),Bridge.global.System.DateTime.create$2(r)},AddMilliseconds:function(e,t){return this.Add(e,t,1)},AddDays:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerDay)},AddHours:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerHour)},AddMinutes:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerMinute)},AddSeconds:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerSecond)},AddWeeks:function(e,t){return this.AddDays(e,Bridge.Int.mul(t,7))},GetDaysInMonth:function(e,t){return this.GetDaysInMonth$1(e,t,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetDaysInYear:function(e){return this.GetDaysInYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetHour:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerHour).mod(Bridge.global.System.Int64(24)))},GetMilliseconds:function(e){return Bridge.global.System.Int64.toNumber(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerMillisecond).mod(Bridge.global.System.Int64(1e3)))},GetMinute:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerMinute).mod(Bridge.global.System.Int64(60)))},GetMonthsInYear:function(e){return this.GetMonthsInYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetSecond:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerSecond).mod(Bridge.global.System.Int64(60)))},GetFirstDayWeekOfYear:function(e,t){var n=this.GetDayOfYear(e)-1|0,i=(14+((this.GetDayOfWeek(e)-n%7|0)-t|0)|0)%7;return 1+(0|Bridge.Int.div(n+i|0,7))|0},GetWeekOfYearFullDays:function(e,t,n){var i,r,o=this.GetDayOfYear(e)-1|0;return 0!=(i=(14+(t-(this.GetDayOfWeek(e)-o%7|0)|0)|0)%7)&&i>=n&&(i=i-7|0),(r=o-i|0)>=0?1+(0|Bridge.Int.div(r,7))|0:Bridge.global.System.DateTime.lte(e,Bridge.global.System.DateTime.addDays(this.MinSupportedDateTime,o))?this.GetWeekOfYearOfMinSupportedDateTime(t,n):this.GetWeekOfYearFullDays(Bridge.global.System.DateTime.addDays(e,0|-(o+1|0)),t,n)},GetWeekOfYearOfMinSupportedDateTime:function(e,t){var n=this.GetDayOfYear(this.MinSupportedDateTime)-1|0,i=this.GetDayOfWeek(this.MinSupportedDateTime)-n%7|0,r=((e+7|0)-i|0)%7;if(0===r||r>=t)return 1;var o=this.DaysInYearBeforeMinSupportedYear-1|0,s=(14+(e-((i-1|0)-o%7|0)|0)|0)%7,a=o-s|0;return s>=t&&(a=a+7|0),1+(0|Bridge.Int.div(a,7))|0},GetWeekOfYear:function(e,t,n){if(n<0||n>6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("firstDayOfWeek",Bridge.global.System.SR.Format$1("Valid values are between {0} and {1}, inclusive.",Bridge.box(Bridge.global.System.DayOfWeek.Sunday,Bridge.global.System.DayOfWeek,Bridge.global.System.Enum.toStringFn(Bridge.global.System.DayOfWeek)),Bridge.box(Bridge.global.System.DayOfWeek.Saturday,Bridge.global.System.DayOfWeek,Bridge.global.System.Enum.toStringFn(Bridge.global.System.DayOfWeek))));switch(t){case 0:return this.GetFirstDayWeekOfYear(e,n);case 1:return this.GetWeekOfYearFullDays(e,n,7);case 2:return this.GetWeekOfYearFullDays(e,n,4)}throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("rule",Bridge.global.System.SR.Format$1("Valid values are between {0} and {1}, inclusive.",Bridge.box(0,Bridge.global.System.Globalization.CalendarWeekRule,Bridge.global.System.Enum.toStringFn(Bridge.global.System.Globalization.CalendarWeekRule)),Bridge.box(2,Bridge.global.System.Globalization.CalendarWeekRule,Bridge.global.System.Enum.toStringFn(Bridge.global.System.Globalization.CalendarWeekRule))))},IsLeapDay:function(e,t,n){return this.IsLeapDay$1(e,t,n,Bridge.global.System.Globalization.Calendar.CurrentEra)},IsLeapMonth:function(e,t){return this.IsLeapMonth$1(e,t,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetLeapMonth:function(e){return this.GetLeapMonth$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetLeapMonth$1:function(e,t){var n,i;if(!this.IsLeapYear$1(e,t))return 0;for(n=this.GetMonthsInYear$1(e,t),i=1;i<=n;i=i+1|0)if(this.IsLeapMonth$1(e,i,t))return i;return 0},IsLeapYear:function(e){return this.IsLeapYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},ToDateTime:function(e,t,n,i,r,o,s){return this.ToDateTime$1(e,t,n,i,r,o,s,Bridge.global.System.Globalization.Calendar.CurrentEra)},TryToDateTime:function(e,t,n,i,r,o,s,a,l){l.v=Bridge.global.System.DateTime.getMinValue();try{return l.v=this.ToDateTime$1(e,t,n,i,r,o,s,a),!0}catch(e){if(e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.ArgumentException))return!1;throw e}},IsValidYear:function(e){return e>=this.GetYear(this.MinSupportedDateTime)&&e<=this.GetYear(this.MaxSupportedDateTime)},IsValidMonth:function(e,t,n){return this.IsValidYear(e,n)&&t>=1&&t<=this.GetMonthsInYear$1(e,n)},IsValidDay:function(e,t,n,i){return this.IsValidMonth(e,t,i)&&n>=1&&n<=this.GetDaysInMonth$1(e,t,i)},ToFourDigitYear:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("year","Non-negative number required.");return e<100?Bridge.Int.mul((0|Bridge.Int.div(this.TwoDigitYearMax,100))-(e>this.TwoDigitYearMax%100?1:0)|0,100)+e|0:e}}}),Bridge.define("System.Globalization.CalendarAlgorithmType",{$kind:"enum",statics:{fields:{Unknown:0,SolarCalendar:1,LunarCalendar:2,LunisolarCalendar:3}}}),Bridge.define("System.Globalization.CalendarId",{$kind:"enum",statics:{fields:{UNINITIALIZED_VALUE:0,GREGORIAN:1,GREGORIAN_US:2,JAPAN:3,TAIWAN:4,KOREA:5,HIJRI:6,THAI:7,HEBREW:8,GREGORIAN_ME_FRENCH:9,GREGORIAN_ARABIC:10,GREGORIAN_XLIT_ENGLISH:11,GREGORIAN_XLIT_FRENCH:12,JULIAN:13,JAPANESELUNISOLAR:14,CHINESELUNISOLAR:15,SAKA:16,LUNAR_ETO_CHN:17,LUNAR_ETO_KOR:18,LUNAR_ETO_ROKUYOU:19,KOREANLUNISOLAR:20,TAIWANLUNISOLAR:21,PERSIAN:22,UMALQURA:23,LAST_CALENDAR:23}},$utype:Bridge.global.System.UInt16}),Bridge.define("System.Globalization.CalendarWeekRule",{$kind:"enum",statics:{fields:{FirstDay:0,FirstFullWeek:1,FirstFourDayWeek:2}}}),Bridge.define("System.Globalization.CultureNotFoundException",{inherits:[Bridge.global.System.ArgumentException],statics:{props:{DefaultMessage:{get:function(){return"Culture is not supported."}}}},fields:{_invalidCultureName:null,_invalidCultureId:null},props:{InvalidCultureId:{get:function(){return this._invalidCultureId}},InvalidCultureName:{get:function(){return this._invalidCultureName}},FormatedInvalidCultureId:{get:function(){return null!=this.InvalidCultureId?Bridge.global.System.String.formatProvider(Bridge.global.System.Globalization.CultureInfo.invariantCulture,"{0} (0x{0:x4})",[Bridge.box(Bridge.global.System.Nullable.getValue(this.InvalidCultureId),Bridge.global.System.Int32)]):this.InvalidCultureName}},Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$ArgumentException$Message;return null!=this._invalidCultureId||null!=this._invalidCultureName?(e=Bridge.global.System.SR.Format("{0} is an invalid culture identifier.",this.FormatedInvalidCultureId),null==t?e:(t||"")+"\n"+(e||"")):t}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,Bridge.global.System.Globalization.CultureNotFoundException.DefaultMessage)},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,e)},$ctor5:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t)},$ctor7:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._invalidCultureName=t},$ctor6:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,n),this._invalidCultureName=t},$ctor3:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,n),this._invalidCultureId=t},$ctor4:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._invalidCultureId=t}}}),Bridge.define("System.Globalization.DateTimeFormatInfoScanner",{statics:{fields:{MonthPostfixChar:0,IgnorableSymbolChar:0,CJKYearSuff:null,CJKMonthSuff:null,CJKDaySuff:null,KoreanYearSuff:null,KoreanMonthSuff:null,KoreanDaySuff:null,KoreanHourSuff:null,KoreanMinuteSuff:null,KoreanSecondSuff:null,CJKHourSuff:null,ChineseHourSuff:null,CJKMinuteSuff:null,CJKSecondSuff:null,s_knownWords:null},props:{KnownWords:{get:function(){if(null==Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords){var e=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String));e.add("/",""),e.add("-",""),e.add(".",""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKYearSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKMonthSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKDaySuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanYearSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanMonthSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanDaySuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanMinuteSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanSecondSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.ChineseHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKMinuteSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKSecondSuff,""),Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords=e}return Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords}}},ctors:{init:function(){this.MonthPostfixChar=57344,this.IgnorableSymbolChar=57345,this.CJKYearSuff="年",this.CJKMonthSuff="月",this.CJKDaySuff="日",this.KoreanYearSuff="년",this.KoreanMonthSuff="월",this.KoreanDaySuff="일",this.KoreanHourSuff="시",this.KoreanMinuteSuff="분",this.KoreanSecondSuff="초",this.CJKHourSuff="時",this.ChineseHourSuff="时",this.CJKMinuteSuff="分",this.CJKSecondSuff="秒"}},methods:{SkipWhiteSpacesAndNonLetter:function(e,t){for(;t0&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(0)>=48&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(0)<=57){for(t=1;t=48&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)<=57;)t=t+1|0;if(t===e[Bridge.global.System.Array.index(n,e)].length)return!1;if(t===(e[Bridge.global.System.Array.index(n,e)].length-1|0))switch(e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)){case 26376:case 50900:return!1}return t!==(e[Bridge.global.System.Array.index(n,e)].length-4|0)||39!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)||32!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+1|0)||26376!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+2|0)||39!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+3|0)}return!1}}},fields:{m_dateWords:null,_ymdFlags:0},ctors:{init:function(){this.m_dateWords=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),this._ymdFlags=Bridge.global.System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None}},methods:{AddDateWordOrPostfix:function(e,t){var n,i,r;if(t.length>0){if(Bridge.global.System.String.equals(t,"."))return void this.AddIgnorableSymbols(".");n={},!1===Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KnownWords.tryGetValue(t,n)&&(null==this.m_dateWords&&(this.m_dateWords=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),Bridge.referenceEquals(e,"MMMM")?(i=String.fromCharCode(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.MonthPostfixChar)+(t||""),this.m_dateWords.contains(i)||this.m_dateWords.add(i)):(this.m_dateWords.contains(t)||this.m_dateWords.add(t),46===t.charCodeAt(t.length-1|0)&&(r=t.substr(0,t.length-1|0),this.m_dateWords.contains(r)||this.m_dateWords.add(r))))}},AddDateWords:function(e,t,n){var i,r,o=Bridge.global.System.Globalization.DateTimeFormatInfoScanner.SkipWhiteSpacesAndNonLetter(e,t);for(o!==t&&null!=n&&(n=null),t=o,i=new Bridge.global.System.Text.StringBuilder;t=4&&t0)for(t=Bridge.global.System.Array.init(this.m_dateWords.Count,null,Bridge.global.System.String),i=0;i>>0},ReadInt64:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0;return Bridge.global.System.Int64.clip64(Bridge.global.System.UInt64(t)).shl(32).or(Bridge.global.System.Int64(e))},ReadUInt64:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0;return Bridge.global.System.UInt64(t).shl(32).or(Bridge.global.System.UInt64(e))},ReadSingle:function(){this.FillBuffer(4);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0;return Bridge.global.System.BitConverter.toSingle(Bridge.global.System.BitConverter.getBytes$8(e),0)},ReadDouble:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0,n=Bridge.global.System.UInt64(t).shl(32).or(Bridge.global.System.UInt64(e));return Bridge.global.System.BitConverter.toDouble(Bridge.global.System.BitConverter.getBytes$9(n),0)},ReadDecimal:function(){this.FillBuffer(23);try{return Bridge.global.System.Decimal.fromBytes(this.m_buffer)}catch(t){var e;throw t=Bridge.global.System.Exception.create(t),Bridge.is(t,Bridge.global.System.ArgumentException)?(e=t,new Bridge.global.System.IO.IOException.$ctor2("Arg_DecBitCtor",e)):t}},ReadString:function(){var e,t,n,i,r,o,s;if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),e=0,(n=this.Read7BitEncodedInt())<0)throw new Bridge.global.System.IO.IOException.$ctor1("IO.IO_InvalidStringLen_Len");if(0===n)return"";null==this.m_charBytes&&(this.m_charBytes=Bridge.global.System.Array.init(Bridge.global.System.IO.BinaryReader.MaxCharBytesSize,0,Bridge.global.System.Byte)),null==this.m_charBuffer&&(this.m_charBuffer=Bridge.global.System.Array.init(this.m_maxCharsSize,0,Bridge.global.System.Char)),o=null;do{if(i=(n-e|0)>Bridge.global.System.IO.BinaryReader.MaxCharBytesSize?Bridge.global.System.IO.BinaryReader.MaxCharBytesSize:n-e|0,0===(t=this.m_stream.Read(this.m_charBytes,0,i))&&Bridge.global.System.IO.__Error.EndOfFile(),r=this.m_encoding.GetChars$2(this.m_charBytes,0,t,this.m_charBuffer,0),0===e&&t===n)return Bridge.global.System.String.fromCharArray(this.m_charBuffer,0,r);for(null==o&&(o=new Bridge.global.System.Text.StringBuilder("",n)),s=0;se.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charsRemaining");for(;r>0&&-1!==(i=this.InternalReadOneChar(!0));)e[Bridge.global.System.Array.index(t,e)]=65535&i,2===this.lastCharsRead&&(e[Bridge.global.System.Array.index(t=t+1|0,e)]=this.m_singleChar[Bridge.global.System.Array.index(1,this.m_singleChar)],r=r-1|0),r=r-1|0,t=t+1|0;return n-r|0},InternalReadOneChar:function(e){var t,n,i,r;void 0===e&&(e=!1);var o=0,s=0,a=Bridge.global.System.Int64(0);for(this.m_stream.CanSeek&&(a=this.m_stream.Position),null==this.m_charBytes&&(this.m_charBytes=Bridge.global.System.Array.init(Bridge.global.System.IO.BinaryReader.MaxCharBytesSize,0,Bridge.global.System.Byte)),null==this.m_singleChar&&(this.m_singleChar=Bridge.global.System.Array.init(2,0,Bridge.global.System.Char)),t=!1,n=0;0===o;){if(s=this.m_2BytesPerChar?2:1,Bridge.is(this.m_encoding,Bridge.global.System.Text.UTF32Encoding)&&(s=4),t)i=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(n=n+1|0,this.m_charBytes)]=255&i,-1===i&&(s=0),2===s&&(i=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(n=n+1|0,this.m_charBytes)]=255&i,-1===i&&(s=1));else if(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(0,this.m_charBytes)]=255&r,n=0,-1===r&&(s=0),2===s)r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(1,this.m_charBytes)]=255&r,-1===r&&(s=1),n=1;else if(4===s){if(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(1,this.m_charBytes)]=255&r,-1===r||(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(2,this.m_charBytes)]=255&r,-1===r)||(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(3,this.m_charBytes)]=255&r,-1===r))return-1;n=3}if(0===s)return-1;t=!1;try{if(o=this.m_encoding.GetChars$2(this.m_charBytes,0,n+1|0,this.m_singleChar,0),!e&&2===o)throw new Bridge.global.System.ArgumentException.ctor}catch(e){throw e=Bridge.global.System.Exception.create(e),this.m_stream.CanSeek&&this.m_stream.Seek(a.sub(this.m_stream.Position),1),e}this.m_encoding._hasError&&(o=0,t=!0)}return this.lastCharsRead=o,0===o?-1:this.m_singleChar[Bridge.global.System.Array.index(0,this.m_singleChar)]},ReadChars:function(e){var t,n,i;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");return null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),0===e?Bridge.global.System.Array.init(0,0,Bridge.global.System.Char):(t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Char),(n=this.InternalReadChars(t,0,e))!==e&&(i=Bridge.global.System.Array.init(n,0,Bridge.global.System.Char),Bridge.global.System.Array.copy(t,0,i,0,Bridge.Int.mul(2,n)),t=i),t)},ReadBytes:function(e){var t,n,i,r;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),0===e)return Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte);t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte),n=0;do{if(0===(i=this.m_stream.Read(t,n,e)))break;n=n+i|0,e=e-i|0}while(e>0);return n!==t.length&&(r=Bridge.global.System.Array.init(n,0,Bridge.global.System.Byte),Bridge.global.System.Array.copy(t,0,r,0,n),t=r),t},FillBuffer:function(e){if(null!=this.m_buffer&&(e<0||e>this.m_buffer.length))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("numBytes","ArgumentOutOfRange_BinaryReaderFillBuffer");var t=0,n=0;if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),1===e)return-1===(n=this.m_stream.ReadByte())&&Bridge.global.System.IO.__Error.EndOfFile(),void(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]=255&n);do{0===(n=this.m_stream.Read(this.m_buffer,t,e-t|0))&&Bridge.global.System.IO.__Error.EndOfFile(),t=t+n|0}while(t>8&255,this.OutStream.Write(this._buffer,0,2)},Write$15:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>8&255,this.OutStream.Write(this._buffer,0,2)},Write$10:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=e>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=e>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$16:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=e>>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=e>>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$11:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=Bridge.global.System.Int64.clipu8(e),this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(8)),this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(16)),this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(24)),this._buffer[Bridge.global.System.Array.index(4,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(32)),this._buffer[Bridge.global.System.Array.index(5,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(40)),this._buffer[Bridge.global.System.Array.index(6,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(48)),this._buffer[Bridge.global.System.Array.index(7,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(56)),this.OutStream.Write(this._buffer,0,8)},Write$17:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=Bridge.global.System.Int64.clipu8(e),this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(8)),this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(16)),this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(24)),this._buffer[Bridge.global.System.Array.index(4,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(32)),this._buffer[Bridge.global.System.Array.index(5,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(40)),this._buffer[Bridge.global.System.Array.index(6,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(48)),this._buffer[Bridge.global.System.Array.index(7,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(56)),this.OutStream.Write(this._buffer,0,8)},Write$13:function(e){var t=Bridge.global.System.BitConverter.toUInt32(Bridge.global.System.BitConverter.getBytes$6(e),0);this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&t,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=t>>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=t>>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=t>>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$14:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");var t=this._encoding.GetBytes$2(e),n=t.length;this.Write7BitEncodedInt(n),this.OutStream.Write(t,0,n)},Write7BitEncodedInt:function(e){for(var t=e>>>0;t>=128;)this.Write$1((128|t)>>>0&255),t>>>=7;this.Write$1(255&t)}}}),Bridge.define("System.IO.Stream",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null,_DefaultCopyBufferSize:0},ctors:{init:function(){this.Null=new Bridge.global.System.IO.Stream.NullStream,this._DefaultCopyBufferSize=81920}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("stream");return e},BlockingEndRead:function(e){return Bridge.global.System.IO.Stream.SynchronousAsyncResult.EndRead(e)},BlockingEndWrite:function(e){Bridge.global.System.IO.Stream.SynchronousAsyncResult.EndWrite(e)}}},props:{CanTimeout:{get:function(){return!1}},ReadTimeout:{get:function(){throw new Bridge.global.System.InvalidOperationException.ctor},set:function(){throw new Bridge.global.System.InvalidOperationException.ctor}},WriteTimeout:{get:function(){throw new Bridge.global.System.InvalidOperationException.ctor},set:function(){throw new Bridge.global.System.InvalidOperationException.ctor}}},alias:["Dispose","System$IDisposable$Dispose"],methods:{CopyTo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("destination");if(!this.CanRead&&!this.CanWrite)throw new Bridge.global.System.Exception;if(!e.CanRead&&!e.CanWrite)throw new Bridge.global.System.Exception("destination");if(!this.CanRead)throw new Bridge.global.System.NotSupportedException.ctor;if(!e.CanWrite)throw new Bridge.global.System.NotSupportedException.ctor;this.InternalCopyTo(e,Bridge.global.System.IO.Stream._DefaultCopyBufferSize)},CopyTo$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("destination");if(t<=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bufferSize");if(!this.CanRead&&!this.CanWrite)throw new Bridge.global.System.Exception;if(!e.CanRead&&!e.CanWrite)throw new Bridge.global.System.Exception("destination");if(!this.CanRead)throw new Bridge.global.System.NotSupportedException.ctor;if(!e.CanWrite)throw new Bridge.global.System.NotSupportedException.ctor;this.InternalCopyTo(e,t)},InternalCopyTo:function(e,t){for(var n,i=Bridge.global.System.Array.init(t,0,Bridge.global.System.Byte);0!==(n=this.Read(i,0,i.length));)e.Write(i,0,n)},Close:function(){this.Dispose$1(!0)},Dispose:function(){this.Close()},Dispose$1:function(){},BeginRead:function(e,t,n,i,r){return this.BeginReadInternal(e,t,n,i,r,!1)},BeginReadInternal:function(e,t,n,i,r){return this.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported(),this.BlockingBeginRead(e,t,n,i,r)},EndRead:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");return Bridge.global.System.IO.Stream.BlockingEndRead(e)},BeginWrite:function(e,t,n,i,r){return this.BeginWriteInternal(e,t,n,i,r,!1)},BeginWriteInternal:function(e,t,n,i,r){return this.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported(),this.BlockingBeginWrite(e,t,n,i,r)},EndWrite:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");Bridge.global.System.IO.Stream.BlockingEndWrite(e)},ReadByte:function(){var e=Bridge.global.System.Array.init(1,0,Bridge.global.System.Byte);return 0===this.Read(e,0,1)?-1:e[Bridge.global.System.Array.index(0,e)]},WriteByte:function(e){var t=Bridge.global.System.Array.init(1,0,Bridge.global.System.Byte);t[Bridge.global.System.Array.index(0,t)]=e,this.Write(t,0,1)},BlockingBeginRead:function(e,t,n,i,r){var o,s,a;try{s=this.Read(e,t,n),o=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.$ctor1(s,r)}catch(e){if(e=Bridge.global.System.Exception.create(e),!Bridge.is(e,Bridge.global.System.IO.IOException))throw e;a=e,o=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.ctor(a,r,!1)}return Bridge.staticEquals(i,null)||i(o),o},BlockingBeginWrite:function(e,t,n,i,r){var o,s;try{this.Write(e,t,n),o=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.$ctor2(r)}catch(e){if(e=Bridge.global.System.Exception.create(e),!Bridge.is(e,Bridge.global.System.IO.IOException))throw e;s=e,o=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.ctor(s,r,!0)}return Bridge.staticEquals(i,null)||i(o),o}}}),Bridge.define("System.IO.BufferedStream",{inherits:[Bridge.global.System.IO.Stream],statics:{fields:{_DefaultBufferSize:0,MaxShadowBufferSize:0},ctors:{init:function(){this._DefaultBufferSize=4096,this.MaxShadowBufferSize=81920}}},fields:{_stream:null,_buffer:null,_bufferSize:0,_readPos:0,_readLen:0,_writePos:0},props:{UnderlyingStream:{get:function(){return this._stream}},BufferSize:{get:function(){return this._bufferSize}},CanRead:{get:function(){return null!=this._stream&&this._stream.CanRead}},CanWrite:{get:function(){return null!=this._stream&&this._stream.CanWrite}},CanSeek:{get:function(){return null!=this._stream&&this._stream.CanSeek}},Length:{get:function(){return this.EnsureNotClosed(),this._writePos>0&&this.FlushWrite(),this._stream.Length}},Position:{get:function(){return this.EnsureNotClosed(),this.EnsureCanSeek(),this._stream.Position.add(Bridge.global.System.Int64((this._readPos-this._readLen|0)+this._writePos|0))},set:function(e){if(e.lt(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("value");this.EnsureNotClosed(),this.EnsureCanSeek(),this._writePos>0&&this.FlushWrite(),this._readPos=0,this._readLen=0,this._stream.Seek(e,0)}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this)},$ctor1:function(e){Bridge.global.System.IO.BufferedStream.$ctor2.call(this,e,Bridge.global.System.IO.BufferedStream._DefaultBufferSize)},$ctor2:function(e,t){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("stream");if(t<=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bufferSize");this._stream=e,this._bufferSize=t,this._stream.CanRead||this._stream.CanWrite||Bridge.global.System.IO.__Error.StreamIsClosed()}},methods:{EnsureNotClosed:function(){null==this._stream&&Bridge.global.System.IO.__Error.StreamIsClosed()},EnsureCanSeek:function(){this._stream.CanSeek||Bridge.global.System.IO.__Error.SeekNotSupported()},EnsureCanRead:function(){this._stream.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported()},EnsureCanWrite:function(){this._stream.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported()},EnsureShadowBufferAllocated:function(){if(this._buffer.length===this._bufferSize&&!(this._bufferSize>=Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize)){var e=Bridge.global.System.Array.init(Math.min(this._bufferSize+this._bufferSize|0,Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize),0,Bridge.global.System.Byte);Bridge.global.System.Array.copy(this._buffer,0,e,0,this._writePos),this._buffer=e}},EnsureBufferAllocated:function(){null==this._buffer&&(this._buffer=Bridge.global.System.Array.init(this._bufferSize,0,Bridge.global.System.Byte))},Dispose$1:function(e){try{if(e&&null!=this._stream)try{this.Flush()}finally{this._stream.Close()}}finally{this._stream=null,this._buffer=null,Bridge.global.System.IO.Stream.prototype.Dispose$1.call(this,e)}},Flush:function(){if(this.EnsureNotClosed(),this._writePos>0)this.FlushWrite();else{if(this._readPosn&&(i=n),Bridge.global.System.Array.copy(this._buffer,this._readPos,e,t,i),this._readPos=this._readPos+i|0,i)},ReadFromBuffer$1:function(e,t,n,i){try{return i.v=null,this.ReadFromBuffer(e,t,n)}catch(e){return e=Bridge.global.System.Exception.create(e),i.v=e,0}},Read:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&(n=n-i|0,t=t+i|0),this._readPos=this._readLen=0,this._writePos>0&&this.FlushWrite(),n>=this._bufferSize?this._stream.Read(e,t,n)+r|0:(this.EnsureBufferAllocated(),this._readLen=this._stream.Read(this._buffer,0,this._bufferSize),(i=this.ReadFromBuffer(e,t,n))+r|0))},ReadByte:function(){return this.EnsureNotClosed(),this.EnsureCanRead(),this._readPos===this._readLen&&(this._writePos>0&&this.FlushWrite(),this.EnsureBufferAllocated(),this._readLen=this._stream.Read(this._buffer,0,this._bufferSize),this._readPos=0),this._readPos===this._readLen?-1:this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._readPos,this._readPos=this._readPos+1|0),this._buffer)]},WriteToBuffer:function(e,t,n){var i=Math.min(this._bufferSize-this._writePos|0,n.v);i<=0||(this.EnsureBufferAllocated(),Bridge.global.System.Array.copy(e,t.v,this._buffer,this._writePos,i),this._writePos=this._writePos+i|0,n.v=n.v-i|0,t.v=t.v+i|0)},WriteToBuffer$1:function(e,t,n,i){try{i.v=null,this.WriteToBuffer(e,t,n)}catch(e){e=Bridge.global.System.Exception.create(e),i.v=e}},Write:function(e,t,n){if(t={v:t},n={v:n},null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t.v<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n.v<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t.v|0)0){if(i<=(this._bufferSize+this._bufferSize|0)&&i<=Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize)return this.EnsureShadowBufferAllocated(),Bridge.global.System.Array.copy(e,t.v,this._buffer,this._writePos,n.v),this._stream.Write(this._buffer,0,i),void(this._writePos=0);this._stream.Write(this._buffer,0,this._writePos),this._writePos=0}this._stream.Write(e,t.v,n.v)}},WriteByte:function(e){this.EnsureNotClosed(),0===this._writePos&&(this.EnsureCanWrite(),this.ClearReadBufferBeforeWrite(),this.EnsureBufferAllocated()),this._writePos>=(this._bufferSize-1|0)&&this.FlushWrite(),this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._writePos,this._writePos=this._writePos+1|0),this._buffer)]=e},Seek:function(e,t){if(this.EnsureNotClosed(),this.EnsureCanSeek(),this._writePos>0)return this.FlushWrite(),this._stream.Seek(e,t);(this._readLen-this._readPos|0)>0&&1===t&&(e=e.sub(Bridge.global.System.Int64(this._readLen-this._readPos|0)));var n=this.Position,i=this._stream.Seek(e,t);return this._readPos=Bridge.global.System.Int64.clip32(i.sub(n.sub(Bridge.global.System.Int64(this._readPos)))),0<=this._readPos&&this._readPos0;)0===(o=s.Read(t,n,r))&&Bridge.global.System.IO.__Error.EndOfFile(),n=n+o|0,r=r-o|0}finally{Bridge.hasValue(s)&&s.System$IDisposable$Dispose()}return t},ReadAllLines:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Argument_EmptyPath");return Bridge.global.System.IO.File.InternalReadAllLines(e,Bridge.global.System.Text.Encoding.UTF8)},ReadAllLines$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("encoding");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Argument_EmptyPath");return Bridge.global.System.IO.File.InternalReadAllLines(e,t)},InternalReadAllLines:function(e,t){var n,i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),r=new Bridge.global.System.IO.StreamReader.$ctor9(e,t);try{for(;null!=(n=r.ReadLine());)i.add(n)}finally{Bridge.hasValue(r)&&r.System$IDisposable$Dispose()}return i.ToArray()},ReadLines:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor3("Argument_EmptyPath","path");return Bridge.global.System.IO.ReadLinesIterator.CreateIterator(e,Bridge.global.System.Text.Encoding.UTF8)},ReadLines$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("encoding");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor3("Argument_EmptyPath","path");return Bridge.global.System.IO.ReadLinesIterator.CreateIterator(e,t)}}}}),Bridge.define("System.IO.FileMode",{$kind:"enum",statics:{fields:{CreateNew:1,Create:2,Open:3,OpenOrCreate:4,Truncate:5,Append:6}}}),Bridge.define("System.IO.FileOptions",{$kind:"enum",statics:{fields:{None:0,WriteThrough:-2147483648,Asynchronous:1073741824,RandomAccess:268435456,DeleteOnClose:67108864,SequentialScan:134217728,Encrypted:16384}},$flags:!0}),Bridge.define("System.IO.FileShare",{$kind:"enum",statics:{fields:{None:0,Read:1,Write:2,ReadWrite:3,Delete:4,Inheritable:16}},$flags:!0}),Bridge.define("System.IO.FileStream",{inherits:[Bridge.global.System.IO.Stream],statics:{methods:{FromFile:function(e){var t=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,n=new FileReader;return n.onload=function(){t.setResult(new Bridge.global.System.IO.FileStream.ctor(n.result,e.name))},n.onerror=function(e){t.setException(new Bridge.global.System.SystemException.$ctor1(Bridge.unbox(e).target.error.As()))},n.readAsArrayBuffer(e),t.task},ReadBytes:function(e){var t,i,r,o;if(Bridge.isNode)return t=n(7),Bridge.cast(t.readFileSync(e),ArrayBuffer);if((i=new XMLHttpRequest).open("GET",e,!1),i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),200!==i.status)throw new Bridge.global.System.IO.IOException.$ctor1(Bridge.global.System.String.concat("Status of request to "+(e||"")+" returned status: ",i.status));return r=i.responseText,o=new Uint8Array(r.length),Bridge.global.System.String.toCharArray(r,0,r.length).forEach(function(e,t){var n;return n=255&e,o[t]=n,n}),o.buffer},ReadBytesAsync:function(e){var t,i=new Bridge.global.System.Threading.Tasks.TaskCompletionSource;return Bridge.isNode?n(7).readFile(e,function(e,t){if(null!=e)throw new Bridge.global.System.IO.IOException.ctor;i.setResult(t)}):((t=new XMLHttpRequest).open("GET",e,!0),t.overrideMimeType("text/plain; charset=binary-data"),t.send(null),t.onreadystatechange=function(){if(4===t.readyState){if(200!==t.status)throw new Bridge.global.System.IO.IOException.$ctor1(Bridge.global.System.String.concat("Status of request to "+(e||"")+" returned status: ",t.status));var n=t.responseText,r=new Uint8Array(n.length);Bridge.global.System.String.toCharArray(n,0,n.length).forEach(function(e,t){var n;return n=255&e,r[t]=n,n}),i.setResult(r.buffer)}}),i.task}}},fields:{name:null,_buffer:null},props:{CanRead:{get:function(){return!0}},CanWrite:{get:function(){return!1}},CanSeek:{get:function(){return!1}},IsAsync:{get:function(){return!1}},Name:{get:function(){return this.name}},Length:{get:function(){return Bridge.global.System.Int64(this.GetInternalBuffer().byteLength)}},Position:Bridge.global.System.Int64(0)},ctors:{$ctor1:function(e){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),this.name=e},ctor:function(e,t){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),this._buffer=e,this.name=t}},methods:{Flush:function(){},Seek:function(){throw new Bridge.global.System.NotImplementedException.ctor},SetLength:function(){throw new Bridge.global.System.NotImplementedException.ctor},Write:function(){throw new Bridge.global.System.NotImplementedException.ctor},GetInternalBuffer:function(){return null==this._buffer&&(this._buffer=Bridge.global.System.IO.FileStream.ReadBytes(this.name)),this._buffer},EnsureBufferAsync:function(){var e,t,n,i=0,r=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,o=Bridge.fn.bind(this,function(){try{for(;;)switch(i=Bridge.global.System.Array.min([0,1,2,3],i)){case 0:if(null==this._buffer){i=1;continue}i=3;continue;case 1:return e=Bridge.global.System.IO.FileStream.ReadBytesAsync(this.name),i=2,void e.continueWith(o);case 2:t=e.getAwaitedResult(),this._buffer=t,i=3;continue;case 3:default:return void r.setResult(null)}}catch(e){n=Bridge.global.System.Exception.create(e),r.setException(n)}},arguments);return o(),r.task},Read:function(e,t,n){var i,r,o,s,a;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0){var t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte);this._length>0&&Bridge.global.System.Array.copy(this._buffer,0,t,0,this._length),this._buffer=t}else this._buffer=null;this._capacity=e}}},Length:{get:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),Bridge.global.System.Int64(this._length-this._origin)}},Position:{get:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),Bridge.global.System.Int64(this._position-this._origin)},set:function(e){if(e.lt(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","ArgumentOutOfRange_NeedNonNegNum");if(this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.gt(Bridge.global.System.Int64(Bridge.global.System.IO.MemoryStream.MemStreamMaxLength)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","ArgumentOutOfRange_StreamLength");this._position=this._origin+Bridge.global.System.Int64.clip32(e)|0}}},ctors:{ctor:function(){Bridge.global.System.IO.MemoryStream.$ctor6.call(this,0)},$ctor6:function(e){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("capacity","ArgumentOutOfRange_NegativeCapacity");this._buffer=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte),this._capacity=e,this._expandable=!0,this._writable=!0,this._exposable=!0,this._origin=0,this._isOpen=!0},$ctor1:function(e){Bridge.global.System.IO.MemoryStream.$ctor2.call(this,e,!0)},$ctor2:function(e,t){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");this._buffer=e,this._length=this._capacity=e.length,this._writable=t,this._exposable=!1,this._origin=0,this._isOpen=!0},$ctor3:function(e,t,n){Bridge.global.System.IO.MemoryStream.$ctor5.call(this,e,t,n,!0,!1)},$ctor4:function(e,t,n,i){Bridge.global.System.IO.MemoryStream.$ctor5.call(this,e,t,n,i,!1)},$ctor5:function(e,t,n,i,r){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)this._capacity){var t=e;return t<256&&(t=256),t>>0>2147483591&&(t=e>2147483591?e:2147483591),this.Capacity=t,!0}return!1},Flush:function(){},GetBuffer:function(){if(!this._exposable)throw new Bridge.global.System.Exception("UnauthorizedAccess_MemStreamBuffer");return this._buffer},TryGetBuffer:function(e){return this._exposable?(e.v=new Bridge.global.System.ArraySegment(this._buffer,this._origin,this._length-this._origin|0),!0):(e.v=Bridge.getDefaultValue(Bridge.global.System.ArraySegment),!1)},InternalGetBuffer:function(){return this._buffer},InternalGetPosition:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this._position},InternalReadInt32:function(){this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed();var e=this._position=this._position+4|0;return e>this._length&&(this._position=this._length,Bridge.global.System.IO.__Error.EndOfFile()),this._buffer[Bridge.global.System.Array.index(e-4|0,this._buffer)]|this._buffer[Bridge.global.System.Array.index(e-3|0,this._buffer)]<<8|this._buffer[Bridge.global.System.Array.index(e-2|0,this._buffer)]<<16|this._buffer[Bridge.global.System.Array.index(e-1|0,this._buffer)]<<24},InternalEmulateRead:function(e){this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed();var t=this._length-this._position|0;return t>e&&(t=e),t<0&&(t=0),this._position=this._position+t|0,t},Read:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)n&&(i=n),i<=0)return 0;if(i<=8)for(r=i;(r=r-1|0)>=0;)e[Bridge.global.System.Array.index(t+r|0,e)]=this._buffer[Bridge.global.System.Array.index(this._position+r|0,this._buffer)];else Bridge.global.System.Array.copy(this._buffer,this._position,e,t,i);return this._position=this._position+i|0,i},ReadByte:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this._position>=this._length?-1:this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._position,this._position=this._position+1|0),this._buffer)]},Seek:function(e,t){var n,i,r;if(this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.gt(Bridge.global.System.Int64(Bridge.global.System.IO.MemoryStream.MemStreamMaxLength)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_StreamLength");switch(t){case 0:if(n=this._origin+Bridge.global.System.Int64.clip32(e)|0,e.lt(Bridge.global.System.Int64(0))||nthis._length&&Bridge.global.System.Array.fill(this._buffer,0,this._length,t-this._length|0),this._length=t,this._position>t&&(this._position=t)},ToArray:function(){var e=Bridge.global.System.Array.init(this._length-this._origin|0,0,Bridge.global.System.Byte);return Bridge.global.System.Array.copy(this._buffer,this._origin,e,0,this._length-this._origin|0),e},Write:function(e,t,n){var i,r,o;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)this._length&&(r=this._position>this._length,i>this._capacity&&this.EnsureCapacity(i)&&(r=!1),r&&Bridge.global.System.Array.fill(this._buffer,0,this._length,i-this._length|0),this._length=i),n<=8&&!Bridge.referenceEquals(e,this._buffer))for(o=n;(o=o-1|0)>=0;)this._buffer[Bridge.global.System.Array.index(this._position+o|0,this._buffer)]=e[Bridge.global.System.Array.index(t+o|0,e)];else Bridge.global.System.Array.copy(e,t,this._buffer,this._position,n);this._position=i},WriteByte:function(e){var t,n;this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this.EnsureWriteable(),this._position>=this._length&&(t=this._position+1|0,n=this._position>this._length,t>=this._capacity&&this.EnsureCapacity(t)&&(n=!1),n&&Bridge.global.System.Array.fill(this._buffer,0,this._length,this._position-this._length|0),this._length=t),this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._position,this._position=this._position+1|0),this._buffer)]=e},WriteTo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("stream","ArgumentNull_Stream");this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.Write(this._buffer,this._origin,this._length-this._origin|0)}}}),Bridge.define("System.IO.ReadLinesIterator",{inherits:[Bridge.global.System.IO.Iterator$1(Bridge.global.System.String)],statics:{methods:{CreateIterator:function(e,t){return Bridge.global.System.IO.ReadLinesIterator.CreateIterator$1(e,t,null)},CreateIterator$1:function(e,t,n){return new Bridge.global.System.IO.ReadLinesIterator(e,t,n||new Bridge.global.System.IO.StreamReader.$ctor9(e,t))}}},fields:{_path:null,_encoding:null,_reader:null},alias:["moveNext","System$Collections$IEnumerator$moveNext"],ctors:{ctor:function(e,t,n){this.$initialize(),Bridge.global.System.IO.Iterator$1(Bridge.global.System.String).ctor.call(this),this._path=e,this._encoding=t,this._reader=n}},methods:{moveNext:function(){if(null!=this._reader){if(this.current=this._reader.ReadLine(),null!=this.current)return!0;this.Dispose()}return!1},Clone:function(){return Bridge.global.System.IO.ReadLinesIterator.CreateIterator$1(this._path,this._encoding,this._reader)},Dispose$1:function(e){try{e&&null!=this._reader&&this._reader.Dispose()}finally{this._reader=null,Bridge.global.System.IO.Iterator$1(Bridge.global.System.String).prototype.Dispose$1.call(this,e)}}}}),Bridge.define("System.IO.SeekOrigin",{$kind:"enum",statics:{fields:{Begin:0,Current:1,End:2}}}),Bridge.define("System.IO.Stream.NullStream",{inherits:[Bridge.global.System.IO.Stream],$kind:"nested class",props:{CanRead:{get:function(){return!0}},CanWrite:{get:function(){return!0}},CanSeek:{get:function(){return!0}},Length:{get:function(){return Bridge.global.System.Int64(0)}},Position:{get:function(){return Bridge.global.System.Int64(0)},set:function(){}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this)}},methods:{Dispose$1:function(){},Flush:function(){},BeginRead:function(e,t,n,i,r){return this.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported(),this.BlockingBeginRead(e,t,n,i,r)},EndRead:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");return Bridge.global.System.IO.Stream.BlockingEndRead(e)},BeginWrite:function(e,t,n,i,r){return this.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported(),this.BlockingBeginWrite(e,t,n,i,r)},EndWrite:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");Bridge.global.System.IO.Stream.BlockingEndWrite(e)},Read:function(){return 0},ReadByte:function(){return-1},Write:function(){},WriteByte:function(){},Seek:function(){return Bridge.global.System.Int64(0)},SetLength:function(){}}}),Bridge.define("System.IO.Stream.SynchronousAsyncResult",{inherits:[Bridge.global.System.IAsyncResult],$kind:"nested class",statics:{methods:{EndRead:function(e){var t=Bridge.as(e,Bridge.global.System.IO.Stream.SynchronousAsyncResult);return(null==t||t._isWrite)&&Bridge.global.System.IO.__Error.WrongAsyncResult(),t._endXxxCalled&&Bridge.global.System.IO.__Error.EndReadCalledTwice(),t._endXxxCalled=!0,t.ThrowIfError(),t._bytesRead},EndWrite:function(e){var t=Bridge.as(e,Bridge.global.System.IO.Stream.SynchronousAsyncResult);null!=t&&t._isWrite||Bridge.global.System.IO.__Error.WrongAsyncResult(),t._endXxxCalled&&Bridge.global.System.IO.__Error.EndWriteCalledTwice(),t._endXxxCalled=!0,t.ThrowIfError()}}},fields:{_stateObject:null,_isWrite:!1,_exceptionInfo:null,_endXxxCalled:!1,_bytesRead:0},props:{IsCompleted:{get:function(){return!0}},AsyncState:{get:function(){return this._stateObject}},CompletedSynchronously:{get:function(){return!0}}},alias:["IsCompleted","System$IAsyncResult$IsCompleted","AsyncState","System$IAsyncResult$AsyncState","CompletedSynchronously","System$IAsyncResult$CompletedSynchronously"],ctors:{$ctor1:function(e,t){this.$initialize(),this._bytesRead=e,this._stateObject=t},$ctor2:function(e){this.$initialize(),this._stateObject=e,this._isWrite=!0},ctor:function(e,t,n){this.$initialize(),this._exceptionInfo=e,this._stateObject=t,this._isWrite=n}},methods:{ThrowIfError:function(){if(null!=this._exceptionInfo)throw this._exceptionInfo}}}),Bridge.define("System.IO.TextReader",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null},ctors:{init:function(){this.Null=new Bridge.global.System.IO.TextReader.NullTextReader}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("reader");return e}}},alias:["Dispose","System$IDisposable$Dispose"],ctors:{ctor:function(){this.$initialize()}},methods:{Close:function(){this.Dispose$1(!0)},Dispose:function(){this.Dispose$1(!0)},Dispose$1:function(){},Peek:function(){return-1},Read:function(){return-1},Read$1:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&r0?t.toString():null}}}),Bridge.define("System.IO.StreamReader",{inherits:[Bridge.global.System.IO.TextReader],statics:{fields:{Null:null,DefaultFileStreamBufferSize:0,MinBufferSize:0},props:{DefaultBufferSize:{get:function(){return 1024}}},ctors:{init:function(){this.Null=new Bridge.global.System.IO.StreamReader.NullStreamReader,this.DefaultFileStreamBufferSize=4096,this.MinBufferSize=128}}},fields:{stream:null,encoding:null,byteBuffer:null,charBuffer:null,charPos:0,charLen:0,byteLen:0,bytePos:0,_maxCharsPerBuffer:0,_detectEncoding:!1,_isBlocked:!1,_closable:!1},props:{CurrentEncoding:{get:function(){return this.encoding}},BaseStream:{get:function(){return this.stream}},LeaveOpen:{get:function(){return!this._closable}},EndOfStream:{get:function(){return null==this.stream&&Bridge.global.System.IO.__Error.ReaderClosed(),!(this.charPos0&&(0==(o=this.charLen-this.charPos|0)&&(o=this.ReadBuffer$1(e,t+i|0,n,r)),0!==o)&&(o>n&&(o=n),r.v||(Bridge.global.System.Array.copy(this.charBuffer,this.charPos,e,t+i|0,o),this.charPos=this.charPos+o|0),i=i+o|0,n=n-o|0,!this._isBlocked););return i},ReadToEndAsync:function(){var e,t,n,i,r=0,o=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,s=Bridge.fn.bind(this,function(){try{for(;;)switch(r=Bridge.global.System.Array.min([0,1,2,3,4],r)){case 0:if(Bridge.is(this.stream,Bridge.global.System.IO.FileStream)){r=1;continue}r=3;continue;case 1:return e=this.stream.EnsureBufferAsync(),r=2,void e.continueWith(s);case 2:e.getAwaitedResult(),r=3;continue;case 3:return t=Bridge.global.System.IO.TextReader.prototype.ReadToEndAsync.call(this),r=4,void t.continueWith(s);case 4:return n=t.getAwaitedResult(),void o.setResult(n);default:return void o.setResult(null)}}catch(e){i=Bridge.global.System.Exception.create(e),o.setException(i)}},arguments);return s(),o.task},ReadToEnd:function(){null==this.stream&&Bridge.global.System.IO.__Error.ReaderClosed();var e=new Bridge.global.System.Text.StringBuilder("",this.charLen-this.charPos|0);do{e.append(Bridge.global.System.String.fromCharArray(this.charBuffer,this.charPos,this.charLen-this.charPos|0)),this.charPos=this.charLen,this.ReadBuffer()}while(this.charLen>0);return e.toString()},ReadBlock:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0||n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1(t<0?"index":"count");if((e.length-t|0)=3&&239===this.byteBuffer[Bridge.global.System.Array.index(0,this.byteBuffer)]&&187===this.byteBuffer[Bridge.global.System.Array.index(1,this.byteBuffer)]&&191===this.byteBuffer[Bridge.global.System.Array.index(2,this.byteBuffer)]?(this.encoding=Bridge.global.System.Text.Encoding.UTF8,this.CompressBuffer(3),e=!0):this.byteLen>=4&&0===this.byteBuffer[Bridge.global.System.Array.index(0,this.byteBuffer)]&&0===this.byteBuffer[Bridge.global.System.Array.index(1,this.byteBuffer)]&&254===this.byteBuffer[Bridge.global.System.Array.index(2,this.byteBuffer)]&&255===this.byteBuffer[Bridge.global.System.Array.index(3,this.byteBuffer)]?(this.encoding=new Bridge.global.System.Text.UTF32Encoding.$ctor1(!0,!0),this.CompressBuffer(4),e=!0):2===this.byteLen&&(this._detectEncoding=!0),e&&(this._maxCharsPerBuffer=this.encoding.GetMaxCharCount(this.byteBuffer.length),this.charBuffer=Bridge.global.System.Array.init(this._maxCharsPerBuffer,0,Bridge.global.System.Char))}},IsPreamble:function(){return!1},ReadBuffer:function(){this.charLen=0,this.charPos=0,this.byteLen=0;do{if(this.byteLen=this.stream.Read(this.byteBuffer,0,this.byteBuffer.length),0===this.byteLen)return this.charLen;this._isBlocked=this.byteLen=2&&this.DetectEncoding(),this.charLen=this.charLen+this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,this.charBuffer,this.charLen)|0)}while(0===this.charLen);return this.charLen},ReadBuffer$1:function(e,t,n,i){this.charLen=0,this.charPos=0,this.byteLen=0;var r=0;i.v=n>=this._maxCharsPerBuffer;do{if(this.byteLen=this.stream.Read(this.byteBuffer,0,this.byteBuffer.length),0===this.byteLen)break;this._isBlocked=this.byteLen=2&&(this.DetectEncoding(),i.v=n>=this._maxCharsPerBuffer),this.charPos=0,i.v?(r=r+this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,e,t+r|0)|0,this.charLen=0):(r=this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,this.charBuffer,r),this.charLen=this.charLen+r|0))}while(0===r);return this._isBlocked=!!(this._isBlocked&r0)&&10===this.charBuffer[Bridge.global.System.Array.index(this.charPos,this.charBuffer)]&&(this.charPos=this.charPos+1|0),i;t=t+1|0}while(t0);return e.toString()}}}),Bridge.define("System.IO.StreamReader.NullStreamReader",{inherits:[Bridge.global.System.IO.StreamReader],$kind:"nested class",props:{BaseStream:{get:function(){return Bridge.global.System.IO.Stream.Null}},CurrentEncoding:{get:function(){return Bridge.global.System.Text.Encoding.Unicode}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.StreamReader.ctor.call(this),this.Init(Bridge.global.System.IO.Stream.Null)}},methods:{Dispose$1:function(){},Peek:function(){return-1},Read:function(){return-1},Read$1:function(){return 0},ReadLine:function(){return null},ReadToEnd:function(){return""},ReadBuffer:function(){return 0}}}),Bridge.define("System.IO.TextWriter",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null,InitialNewLine:null},ctors:{init:function(){this.Null=new Bridge.global.System.IO.TextWriter.NullTextWriter,this.InitialNewLine="\r\n"}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("writer");return e}}},fields:{CoreNewLine:null,InternalFormatProvider:null},props:{FormatProvider:{get:function(){return null==this.InternalFormatProvider?Bridge.global.System.Globalization.CultureInfo.getCurrentCulture():this.InternalFormatProvider}},NewLine:{get:function(){return Bridge.global.System.String.fromCharArray(this.CoreNewLine)},set:function(e){null==e&&(e=Bridge.global.System.IO.TextWriter.InitialNewLine),this.CoreNewLine=Bridge.global.System.String.toCharArray(e,0,e.length)}}},alias:["Dispose","System$IDisposable$Dispose"],ctors:{init:function(){this.CoreNewLine=Bridge.global.System.Array.init([13,10],Bridge.global.System.Char)},ctor:function(){this.$initialize(),this.InternalFormatProvider=null},$ctor1:function(e){this.$initialize(),this.InternalFormatProvider=e}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(){},Dispose:function(){this.Dispose$1(!0)},Flush:function(){},Write$1:function(){},Write$2:function(e){null!=e&&this.Write$3(e,0,e.length)},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&this.stream.Write(this.byteBuffer,0,n),e&&this.stream.Flush()}},Write$1:function(e){this.charPos===this.charLen&&this.Flush$1(!1,!1),this.charBuffer[Bridge.global.System.Array.index(this.charPos,this.charBuffer)]=e,this.charPos=this.charPos+1|0,this.autoFlush&&this.Flush$1(!0,!1)},Write$2:function(e){var t,n,i;if(null!=e){for(t=0,n=e.length;n>0;)this.charPos===this.charLen&&this.Flush$1(!1,!1),(i=this.charLen-this.charPos|0)>n&&(i=n),Bridge.global.System.Array.copy(e,t,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,t=t+i|0,n=n-i|0;this.autoFlush&&this.Flush$1(!0,!1)}},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)0;){this.charPos===this.charLen&&this.Flush$1(!1,!1);var i=this.charLen-this.charPos|0;i>n&&(i=n),Bridge.global.System.Array.copy(e,t,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,t=t+i|0,n=n-i|0}this.autoFlush&&this.Flush$1(!0,!1)},Write$10:function(e){var t,n,i;if(null!=e){for(t=e.length,n=0;t>0;)this.charPos===this.charLen&&this.Flush$1(!1,!1),(i=this.charLen-this.charPos|0)>t&&(i=t),Bridge.global.System.String.copyTo(e,n,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,n=n+i|0,t=t-i|0;this.autoFlush&&this.Flush$1(!0,!1)}}}}),Bridge.define("System.IO.StringReader",{inherits:[Bridge.global.System.IO.TextReader],fields:{_s:null,_pos:0,_length:0},ctors:{ctor:function(e){if(this.$initialize(),Bridge.global.System.IO.TextReader.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");this._s=e,this._length=null==e?0:e.length}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(e){this._s=null,this._pos=0,this._length=0,Bridge.global.System.IO.TextReader.prototype.Dispose$1.call(this,e)},Peek:function(){return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),this._pos===this._length?-1:this._s.charCodeAt(this._pos)},Read:function(){return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),this._pos===this._length?-1:this._s.charCodeAt(Bridge.identity(this._pos,this._pos=this._pos+1|0))},Read$1:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&(i>n&&(i=n),Bridge.global.System.String.copyTo(this._s,this._pos,e,t,i),this._pos=this._pos+i|0),i},ReadToEnd:function(){var e;return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),e=0===this._pos?this._s:this._s.substr(this._pos,this._length-this._pos|0),this._pos=this._length,e},ReadLine:function(){var e,t,n,i;for(null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),e=this._pos;ethis._pos?(i=this._s.substr(this._pos,e-this._pos|0),this._pos=e,i):null}}}),Bridge.define("System.IO.StringWriter",{inherits:[Bridge.global.System.IO.TextWriter],statics:{fields:{m_encoding:null}},fields:{_sb:null,_isOpen:!1},props:{Encoding:{get:function(){return null==Bridge.global.System.IO.StringWriter.m_encoding&&(Bridge.global.System.IO.StringWriter.m_encoding=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!1)),Bridge.global.System.IO.StringWriter.m_encoding}}},ctors:{ctor:function(){Bridge.global.System.IO.StringWriter.$ctor3.call(this,new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())},$ctor1:function(e){Bridge.global.System.IO.StringWriter.$ctor3.call(this,new Bridge.global.System.Text.StringBuilder,e)},$ctor2:function(e){Bridge.global.System.IO.StringWriter.$ctor3.call(this,e,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())},$ctor3:function(e,t){if(this.$initialize(),Bridge.global.System.IO.TextWriter.$ctor1.call(this,t),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("sb");this._sb=e,this._isOpen=!0}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(e){this._isOpen=!1,Bridge.global.System.IO.TextWriter.prototype.Dispose$1.call(this,e)},GetStringBuilder:function(){return this._sb},Write$1:function(e){this._isOpen||Bridge.global.System.IO.__Error.WriterClosed(),this._sb.append(String.fromCharCode(e))},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&42===n.charCodeAt(n.length-1|0)?(n=n.substr(0,n.length-1|0),Bridge.global.System.String.startsWith(Bridge.Reflection.getTypeName(e),n,4)):Bridge.global.System.String.equals(Bridge.Reflection.getTypeName(e),n)},FilterTypeNameIgnoreCaseImpl:function(e,t){var n,i,r;if(null==t||!Bridge.is(t,Bridge.global.System.String))throw new Bridge.global.System.Reflection.InvalidFilterCriteriaException.$ctor1("A String must be provided for the filter criteria.");return(i=Bridge.cast(t,Bridge.global.System.String)).length>0&&42===i.charCodeAt(i.length-1|0)?(i=i.substr(0,i.length-1|0),(r=Bridge.Reflection.getTypeName(e)).length>=i.length&&0===(n=i.length,Bridge.global.System.String.compare(r.substr(0,n),i.substr(0,n),5))):0===Bridge.global.System.String.compare(i,Bridge.Reflection.getTypeName(e),5)},op_Equality:function(e,t){return!!Bridge.referenceEquals(e,t)||null!=e&&null!=t&&e.equals(t)},op_Inequality:function(e,t){return!Bridge.global.System.Reflection.Module.op_Equality(e,t)}}},props:{Assembly:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},FullyQualifiedName:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},Name:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},MDStreamVersion:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},ModuleVersionId:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},ScopeName:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},MetadataToken:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}}},alias:["IsDefined","System$Reflection$ICustomAttributeProvider$IsDefined","GetCustomAttributes","System$Reflection$ICustomAttributeProvider$GetCustomAttributes","GetCustomAttributes$1","System$Reflection$ICustomAttributeProvider$GetCustomAttributes$1"],ctors:{ctor:function(){this.$initialize()}},methods:{IsResource:function(){throw Bridge.global.System.NotImplemented.ByDesign},IsDefined:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetCustomAttributes:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetCustomAttributes$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetMethod:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");return this.GetMethodImpl(e,Bridge.global.System.Reflection.Module.DefaultLookup,null,3,null,null)},GetMethod$2:function(e,t){return this.GetMethod$1(e,Bridge.global.System.Reflection.Module.DefaultLookup,null,3,t,null)},GetMethod$1:function(e,t,n,i,r,o){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");if(null==r)throw new Bridge.global.System.ArgumentNullException.$ctor1("types");for(var s=0;s=56&&(t=1),(n=n+1|0)>=56&&(n=1),(e=this.SeedArray[Bridge.global.System.Array.index(t,this.SeedArray)]-this.SeedArray[Bridge.global.System.Array.index(n,this.SeedArray)]|0)===Bridge.global.System.Random.MBIG&&(e=e-1|0),e<0&&(e=e+Bridge.global.System.Random.MBIG|0),this.SeedArray[Bridge.global.System.Array.index(t,this.SeedArray)]=e,this.inext=t,this.inextp=n,e},Next:function(){return this.InternalSample()},Next$2:function(e,t){if(e>t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minValue","'minValue' cannot be greater than maxValue.");var n=Bridge.global.System.Int64(t).sub(Bridge.global.System.Int64(e));return n.lte(Bridge.global.System.Int64(2147483647))?Bridge.Int.clip32(this.Sample()*Bridge.global.System.Int64.toNumber(n))+e|0:Bridge.global.System.Int64.clip32(Bridge.Int.clip64(this.GetSampleForLargeRange()*Bridge.global.System.Int64.toNumber(n)).add(Bridge.global.System.Int64(e)))},Next$1:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("maxValue","'maxValue' must be greater than zero.");return Bridge.Int.clip32(this.Sample()*e)},GetSampleForLargeRange:function(){var e,t=this.InternalSample();return this.InternalSample()%2==0&&(t=0|-t),e=t,(e+=2147483646)/4294967293},NextDouble:function(){return this.Sample()},NextBytes:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");for(var t=0;t0?this.innerExceptions.getItem(0):null)},handle:function(e){var t,n,i;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("predicate");for(t=this.innerExceptions.Count,n=[],i=0;i0)throw new Bridge.global.System.AggregateException(this.Message,n)},getBaseException:function(){for(var e=this,t=this;null!=t&&1===t.innerExceptions.Count;)e=e.InnerException,t=Bridge.as(e,Bridge.global.System.AggregateException);return e},flatten:function(){var e,t,n,i,r,o,s=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Exception)),a=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.AggregateException));for(a.add(this),e=0;a.Count>e;)for(n=(t=a.getItem(e++).innerExceptions).Count,i=0;i",Bridge.global.System.ThrowHelper.GetResourceString(Bridge.global.System.ExceptionResource.MemoryDisposed))},ThrowAggregateException:function(e){throw new Bridge.global.System.AggregateException(null,e)},ThrowOutOfMemoryException:function(){throw new Bridge.global.System.OutOfMemoryException.ctor},ThrowArgumentException_Argument_InvalidArrayType:function(){throw Bridge.global.System.ThrowHelper.GetArgumentException(Bridge.global.System.ExceptionResource.Argument_InvalidArrayType)},ThrowInvalidOperationException_InvalidOperation_EnumNotStarted:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumNotStarted)},ThrowInvalidOperationException_InvalidOperation_EnumEnded:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumEnded)},ThrowInvalidOperationException_EnumCurrent:function(e){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException_EnumCurrent(e)},ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumFailedVersion)},ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumOpCantHappen)},ThrowInvalidOperationException_InvalidOperation_NoValue:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_NoValue)},ThrowArraySegmentCtorValidationFailedExceptions:function(e,t,n){throw Bridge.global.System.ThrowHelper.GetArraySegmentCtorValidationFailedException(e,t,n)},GetArraySegmentCtorValidationFailedException:function(e,t,n){return null==e?Bridge.global.System.ThrowHelper.GetArgumentNullException(Bridge.global.System.ExceptionArgument.array):t<0?Bridge.global.System.ThrowHelper.GetArgumentOutOfRangeException(Bridge.global.System.ExceptionArgument.offset,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum):n<0?Bridge.global.System.ThrowHelper.GetArgumentOutOfRangeException(Bridge.global.System.ExceptionArgument.count,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum):Bridge.global.System.ThrowHelper.GetArgumentException(Bridge.global.System.ExceptionResource.Argument_InvalidOffLen)},GetArgumentException:function(e){return new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.ThrowHelper.GetResourceString(e))},GetArgumentException$1:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.ThrowHelper.GetResourceString(e),Bridge.global.System.ThrowHelper.GetArgumentName(t))},GetInvalidOperationException:function(e){return new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.ThrowHelper.GetResourceString(e))},GetWrongKeyTypeArgumentException:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.SR.Format$1('The value "{0}" is not of type "{1}" and cannot be used in this generic collection.',e,t),"key")},GetWrongValueTypeArgumentException:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.SR.Format$1('The value "{0}" is not of type "{1}" and cannot be used in this generic collection.',e,t),"value")},GetKeyNotFoundException:function(e){return new Bridge.global.System.Collections.Generic.KeyNotFoundException.$ctor1(Bridge.global.System.SR.Format("The given key '{0}' was not present in the dictionary.",Bridge.toString(e)))},GetArgumentOutOfRangeException:function(e,t){return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4(Bridge.global.System.ThrowHelper.GetArgumentName(e),Bridge.global.System.ThrowHelper.GetResourceString(t))},GetArgumentOutOfRangeException$1:function(e,t,n){return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4((Bridge.global.System.ThrowHelper.GetArgumentName(e)||"")+"["+(Bridge.toString(t)||"")+"]",Bridge.global.System.ThrowHelper.GetResourceString(n))},GetInvalidOperationException_EnumCurrent:function(e){return Bridge.global.System.ThrowHelper.GetInvalidOperationException(e<0?Bridge.global.System.ExceptionResource.InvalidOperation_EnumNotStarted:Bridge.global.System.ExceptionResource.InvalidOperation_EnumEnded)},IfNullAndNullsAreIllegalThenThrow:function(e,t,n){null==Bridge.getDefaultValue(e)||null!=t||Bridge.global.System.ThrowHelper.ThrowArgumentNullException(n)},GetArgumentName:function(e){return Bridge.global.System.Enum.toString(Bridge.global.System.ExceptionArgument,e)},GetResourceString:function(e){return Bridge.global.System.SR.GetResourceString(Bridge.global.System.Enum.toString(Bridge.global.System.ExceptionResource,e))},ThrowNotSupportedExceptionIfNonNumericType:function(e){if(!(Bridge.referenceEquals(e,Bridge.global.System.Byte)||Bridge.referenceEquals(e,Bridge.global.System.SByte)||Bridge.referenceEquals(e,Bridge.global.System.Int16)||Bridge.referenceEquals(e,Bridge.global.System.UInt16)||Bridge.referenceEquals(e,Bridge.global.System.Int32)||Bridge.referenceEquals(e,Bridge.global.System.UInt32)||Bridge.referenceEquals(e,Bridge.global.System.Int64)||Bridge.referenceEquals(e,Bridge.global.System.UInt64)||Bridge.referenceEquals(e,Bridge.global.System.Single)||Bridge.referenceEquals(e,Bridge.global.System.Double)))throw new Bridge.global.System.NotSupportedException.$ctor1("Specified type is not supported")}}}}),Bridge.define("System.TimeoutException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"The operation has timed out."),this.HResult=-2146233083},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233083},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233083}}}),Bridge.define("System.RegexMatchTimeoutException",{inherits:[Bridge.global.System.TimeoutException],_regexInput:"",_regexPattern:"",_matchTimeout:null,config:{init:function(){this._matchTimeout=Bridge.global.System.TimeSpan.fromTicks(-1)}},ctor:function(e,t,n){this.$initialize(),3==arguments.length&&(this._regexInput=e,this._regexPattern=t,this._matchTimeout=n,e="The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.",t=null),Bridge.global.System.TimeoutException.ctor.call(this,e,t)},getPattern:function(){return this._regexPattern},getInput:function(){return this._regexInput},getMatchTimeout:function(){return this._matchTimeout}}),Bridge.define("System.Text.Encoding",{statics:{fields:{_encodings:null},props:{Default:null,Unicode:null,ASCII:null,BigEndianUnicode:null,UTF7:null,UTF8:null,UTF32:null},ctors:{init:function(){this.Default=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!0),this.Unicode=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!0),this.ASCII=new Bridge.global.System.Text.ASCIIEncoding,this.BigEndianUnicode=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!0,!0),this.UTF7=new Bridge.global.System.Text.UTF7Encoding.ctor,this.UTF8=new Bridge.global.System.Text.UTF8Encoding.ctor,this.UTF32=new Bridge.global.System.Text.UTF32Encoding.$ctor1(!1,!0)}},methods:{Convert:function(e,t,n){return Bridge.global.System.Text.Encoding.Convert$1(e,t,n,0,n.length)},Convert$1:function(e,t,n,i,r){if(null==e||null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1(null==e?"srcEncoding":"dstEncoding");if(null==n)throw new Bridge.global.System.ArgumentNullException.$ctor1("bytes");return t.GetBytes(e.GetChars$1(n,i,r))},GetEncoding:function(e){switch(e){case 1200:return Bridge.global.System.Text.Encoding.Unicode;case 20127:return Bridge.global.System.Text.Encoding.ASCII;case 1201:return Bridge.global.System.Text.Encoding.BigEndianUnicode;case 65e3:return Bridge.global.System.Text.Encoding.UTF7;case 65001:return Bridge.global.System.Text.Encoding.UTF8;case 12e3:return Bridge.global.System.Text.Encoding.UTF32}throw new Bridge.global.System.NotSupportedException.ctor},GetEncoding$1:function(e){switch(e){case"utf-16":return Bridge.global.System.Text.Encoding.Unicode;case"us-ascii":return Bridge.global.System.Text.Encoding.ASCII;case"utf-16BE":return Bridge.global.System.Text.Encoding.BigEndianUnicode;case"utf-7":return Bridge.global.System.Text.Encoding.UTF7;case"utf-8":return Bridge.global.System.Text.Encoding.UTF8;case"utf-32":return Bridge.global.System.Text.Encoding.UTF32}throw new Bridge.global.System.NotSupportedException.ctor},GetEncodings:function(){if(null!=Bridge.global.System.Text.Encoding._encodings)return Bridge.global.System.Text.Encoding._encodings;Bridge.global.System.Text.Encoding._encodings=Bridge.global.System.Array.init(6,null,Bridge.global.System.Text.EncodingInfo);var e=Bridge.global.System.Text.Encoding._encodings;return e[Bridge.global.System.Array.index(0,e)]=new Bridge.global.System.Text.EncodingInfo(20127,"us-ascii","US-ASCII"),e[Bridge.global.System.Array.index(1,e)]=new Bridge.global.System.Text.EncodingInfo(1200,"utf-16","Unicode"),e[Bridge.global.System.Array.index(2,e)]=new Bridge.global.System.Text.EncodingInfo(1201,"utf-16BE","Unicode (Big-Endian)"),e[Bridge.global.System.Array.index(3,e)]=new Bridge.global.System.Text.EncodingInfo(65e3,"utf-7","Unicode (UTF-7)"),e[Bridge.global.System.Array.index(4,e)]=new Bridge.global.System.Text.EncodingInfo(65001,"utf-8","Unicode (UTF-8)"),e[Bridge.global.System.Array.index(5,e)]=new Bridge.global.System.Text.EncodingInfo(1200,"utf-32","Unicode (UTF-32)"),e}}},fields:{_hasError:!1,fallbackCharacter:0},props:{CodePage:{get:function(){return 0}},EncodingName:{get:function(){return null}}},ctors:{init:function(){this.fallbackCharacter=63}},methods:{Encode$1:function(e,t,n){return this.Encode$3(Bridge.global.System.String.fromCharArray(e,t,n),null,0,{})},Encode$5:function(e,t,n,i,r){var o={};return this.Encode$3(e.substr(t,n),i,r,o),o.v},Encode$4:function(e,t,n,i,r){var o={};return this.Encode$3(Bridge.global.System.String.fromCharArray(e,t,n),i,r,o),o.v},Encode:function(e){return this.Encode$3(Bridge.global.System.String.fromCharArray(e),null,0,{})},Encode$2:function(e){return this.Encode$3(e,null,0,{})},Decode$1:function(e,t,n){return this.Decode$2(e,t,n,null,0)},Decode:function(e){return this.Decode$2(e,0,e.length,null,0)},GetByteCount:function(e){return this.GetByteCount$1(e,0,e.length)},GetByteCount$2:function(e){return this.Encode$2(e).length},GetByteCount$1:function(e,t,n){return this.Encode$1(e,t,n).length},GetBytes:function(e){return this.GetBytes$1(e,0,e.length)},GetBytes$1:function(e,t,n){return this.Encode$2(Bridge.global.System.String.fromCharArray(e,t,n))},GetBytes$3:function(e,t,n,i,r){return this.Encode$4(e,t,n,i,r)},GetBytes$2:function(e){return this.Encode$2(e)},GetBytes$4:function(e,t,n,i,r){return this.Encode$5(e,t,n,i,r)},GetCharCount:function(e){return this.Decode(e).length},GetCharCount$1:function(e,t,n){return this.Decode$1(e,t,n).length},GetChars:function(e){var t;return t=this.Decode(e),Bridge.global.System.String.toCharArray(t,0,t.length)},GetChars$1:function(e,t,n){var i;return i=this.Decode$1(e,t,n),Bridge.global.System.String.toCharArray(i,0,i.length)},GetChars$2:function(e,t,n,i,r){var o,s=this.Decode$1(e,t,n),a=Bridge.global.System.String.toCharArray(s,0,s.length);if(i.length<(a.length+r|0))throw new Bridge.global.System.ArgumentException.$ctor3(null,"chars");for(o=0;o=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(o+n|0,t)]=a}else t.push(a);r=r+1|0}return i.v=r,l?null:t},Decode$2:function(e,t,n){for(var i,r=t,o="",s=r+n|0;r127?(o||"")+String.fromCharCode(this.fallbackCharacter):(o||"")+(String.fromCharCode(i)||"");return o},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e);if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.define("System.Text.EncodingInfo",{props:{CodePage:0,Name:null,DisplayName:null},ctors:{ctor:function(e,t,n){var i;this.$initialize(),this.CodePage=e,this.Name=t,this.DisplayName=null!=(i=n)?i:t}},methods:{GetEncoding:function(){return Bridge.global.System.Text.Encoding.GetEncoding(this.CodePage)},getHashCode:function(){return this.CodePage},equals:function(e){var t=Bridge.as(e,Bridge.global.System.Text.EncodingInfo);return Bridge.global.System.Nullable.eq(this.CodePage,null!=t?t.CodePage:null)}}}),Bridge.define("System.Text.UnicodeEncoding",{inherits:[Bridge.global.System.Text.Encoding],fields:{bigEndian:!1,byteOrderMark:!1,throwOnInvalid:!1},props:{CodePage:{get:function(){return this.bigEndian?1201:1200}},EncodingName:{get:function(){return this.bigEndian?"Unicode (Big-Endian)":"Unicode"}}},ctors:{ctor:function(){Bridge.global.System.Text.UnicodeEncoding.$ctor1.call(this,!1,!0)},$ctor1:function(e,t){Bridge.global.System.Text.UnicodeEncoding.$ctor2.call(this,e,t,!1)},$ctor2:function(e,t,n){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.bigEndian=e,this.byteOrderMark=t,this.throwOnInvalid=n,this.fallbackCharacter=65533}},methods:{Encode$3:function(e,t,n,i){var r,o,s,a,l=null!=t,d=0,c=0,g=this.fallbackCharacter,m=function(e){if(l){if(n>=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=e}else t.push(e);d=d+1|0},h=function(e,t){m(e),m(t)},p=u.$.System.Text.UnicodeEncoding.f1,f=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF16 text");h(255&g,g>>8&255)});for(l||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),this.bigEndian&&(g=p(g)),r=0;r=56320&&o<=57343){this.bigEndian&&(c=p(c),o=p(o)),h(255&c,c>>8&255),h(255&o,o>>8&255),c=0;continue}f(),c=0}55296<=o&&o<=56319?c=o:56320<=o&&o<=57343?(f(),c=0):o<65536?(this.bigEndian&&(o=p(o)),h(255&o,o>>8&255)):o<=1114111?(s=65535&(1023&(o-=65536)|56320),a=65535&(o>>10&1023|55296),this.bigEndian&&(a=p(a),s=p(s)),h(255&a,a>>8&255),h(255&s,s>>8&255)):f()}return 0!==c&&f(),i.v=d,l?null:t},Decode$2:function(e,t,n){var i,r,o,s=t,a="",l=s+n|0;this._hasError=!1;for(var d=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF16 text");a=(a||"")+String.fromCharCode(this.fallbackCharacter)}),c=u.$.System.Text.UnicodeEncoding.f2,g=Bridge.fn.bind(this,function(){if((s+2|0)>l)return s=s+2|0,null;var t=65535&(e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)]<<8|e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)]);return this.bigEndian||(t=c(t)),t});s=l,o=g(),r)d(),this._hasError=!0;else if(Bridge.global.System.Nullable.hasValue(o))if(Bridge.global.System.Nullable.gte(o,56320)&&Bridge.global.System.Nullable.lte(o,57343)){var m=Bridge.global.System.Nullable.band(i,1023),h=Bridge.global.System.Nullable.band(o,1023),p=Bridge.Int.clip32(Bridge.global.System.Nullable.add(Bridge.global.System.Nullable.bor(Bridge.global.System.Nullable.sl(m,10),h),65536));a=(a||"")+(Bridge.global.System.String.fromCharCode(Bridge.global.System.Nullable.getValue(p))||"")}else d(),s=s-2|0;else d(),d();else d();else d(),this._hasError=!0;return a},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if((t=t.shl(1)).gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e>>1).add(Bridge.global.System.Int64(1&e)).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.ns("System.Text.UnicodeEncoding",u.$),Bridge.apply(u.$.System.Text.UnicodeEncoding,{f1:function(e){return 65535&((255&e)<<8|e>>8&255)},f2:function(e){return 65535&((255&e)<<8|e>>8&255)}}),Bridge.define("System.Text.UTF32Encoding",{inherits:[Bridge.global.System.Text.Encoding],fields:{bigEndian:!1,byteOrderMark:!1,throwOnInvalid:!1},props:{CodePage:{get:function(){return this.bigEndian?1201:1200}},EncodingName:{get:function(){return this.bigEndian?"Unicode (UTF-32 Big-Endian)":"Unicode (UTF-32)"}}},ctors:{ctor:function(){Bridge.global.System.Text.UTF32Encoding.$ctor2.call(this,!1,!0,!1)},$ctor1:function(e,t){Bridge.global.System.Text.UTF32Encoding.$ctor2.call(this,e,t,!1)},$ctor2:function(e,t,n){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.bigEndian=e,this.byteOrderMark=t,this.throwOnInvalid=n,this.fallbackCharacter=65533}},methods:{ToCodePoints:function(e){for(var t,n,i,r=0,o=Bridge.global.System.Array.init(0,0,Bridge.global.System.Char),s=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF32 text");o.push(this.fallbackCharacter)}),a=0;a=56320&&t<=57343?(n=t,i=(Bridge.Int.mul(r-55296|0,1024)+65536|0)+(n-56320|0)|0,o.push(i)):(s(),a=a-1|0),r=0):t>=55296&&t<=56319?r=t:t>=56320&&t<=57343?s():o.push(t);return 0!==r&&s(),o},Encode$3:function(e,t,n,i){var r,o,s=null!=t,a=0,l=function(e){if(s){if(n>=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=e}else t.push(e);a=a+1|0},u=Bridge.fn.bind(this,function(e){var t=Bridge.global.System.Array.init(4,0,Bridge.global.System.Byte);t[Bridge.global.System.Array.index(0,t)]=(255&e)>>>0,t[Bridge.global.System.Array.index(1,t)]=(65280&e)>>>0>>>8,t[Bridge.global.System.Array.index(2,t)]=(16711680&e)>>>0>>>16,t[Bridge.global.System.Array.index(3,t)]=(4278190080&e)>>>0>>>24,this.bigEndian&&t.reverse(),l(t[Bridge.global.System.Array.index(0,t)]),l(t[Bridge.global.System.Array.index(1,t)]),l(t[Bridge.global.System.Array.index(2,t)]),l(t[Bridge.global.System.Array.index(3,t)])});for(s||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),r=this.ToCodePoints(e),o=0;ol)return s=s+4|0,null;var n=e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)],i=e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)],r=e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)],o=e[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),e)];return this.bigEndian&&(t=i,i=r,r=t,t=n,n=o,o=t),o<<24|r<<16|i<<8|n});s2147483647)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return t}}}),Bridge.define("System.Text.UTF7Encoding",{inherits:[Bridge.global.System.Text.Encoding],statics:{methods:{Escape:function(e){return e.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")}}},fields:{allowOptionals:!1},props:{CodePage:{get:function(){return 65e3}},EncodingName:{get:function(){return"Unicode (UTF-7)"}}},ctors:{ctor:function(){Bridge.global.System.Text.UTF7Encoding.$ctor1.call(this,!1)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.allowOptionals=e,this.fallbackCharacter=65533}},methods:{Encode$3:function(e,t,n,i){var r,o,s,a="A-Za-z0-9"+(Bridge.global.System.Text.UTF7Encoding.Escape("'(),-./:?")||""),l=u.$.System.Text.UTF7Encoding.f1,d=Bridge.global.System.Text.UTF7Encoding.Escape('!"#$%&*;<=>@[]^_`{|}'),c=Bridge.global.System.Text.UTF7Encoding.Escape(" \r\n\t");if(e=e.replace(new RegExp("[^"+c+a+(this.allowOptionals?d:"")+"]+","g"),function(e){return"+"+("+"===e?"":l(e))+"-"}),r=Bridge.global.System.String.toCharArray(e,0,e.length),null!=t){if(o=0,r.length>(t.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1("bytes");for(s=0;s>8,n[Bridge.global.System.Array.index(Bridge.identity(i,i=i+1|0),n)]=255&t;return Bridge.global.System.Convert.toBase64String(n,null,null,null).replace(/=+$/,"")},f2:function(e){var t;try{if("undefined"==typeof window)throw new Bridge.global.System.Exception;var n=window.atob(e),i=n.length,r=Bridge.global.System.Array.init(i,0,Bridge.global.System.Char);if(1===i&&0===n.charCodeAt(0))return Bridge.global.System.Array.init(0,0,Bridge.global.System.Char);for(t=0;t=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=i}else t.push(i);d=d+1|0}},g=Bridge.fn.bind(this,u.$.System.Text.UTF8Encoding.f1);for(l||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),r=0;r=55296&&o<=56319?(s=e.charCodeAt(r+1|0))>=56320&&s<=57343||(o=g()):o>=56320&&o<=57343&&(o=g()),o<128?c(Bridge.global.System.Array.init([o],Bridge.global.System.Byte)):o<2048?c(Bridge.global.System.Array.init([192|o>>6,128|63&o],Bridge.global.System.Byte)):o<55296||o>=57344?c(Bridge.global.System.Array.init([224|o>>12,128|o>>6&63,128|63&o],Bridge.global.System.Byte)):(r=r+1|0,a=65536+((1023&o)<<10|1023&e.charCodeAt(r))|0,c(Bridge.global.System.Array.init([240|a>>18,128|a>>12&63,128|a>>6&63,128|63&a],Bridge.global.System.Byte)));return i.v=d,l?null:t},Decode$2:function(e,t,n){var i,r;this._hasError=!1;for(var o=t,s="",a=0,l=!1,u=o+n|0;o0;){if((o=o+1|0)>=u){g=!0;break}if(c=c-1|0,128!=(192&(i=e[Bridge.global.System.Array.index(o,e)]))){o=o-1|0,g=!0;break}d=d<<6|63&i}if(r=null,l=!1,g||(a>0&&!(d>=56320&&d<=57343)?(g=!0,a=0):d>=55296&&d<=56319?a=65535&d:d>=56320&&d<=57343?(g=!0,l=!0,a=0):(r=Bridge.global.System.String.fromCharCode(d),a=0)),g){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");s=(s||"")+String.fromCharCode(this.fallbackCharacter),this._hasError=!0}else 0===a&&(s=(s||"")+(r||""))}if(a>0||l){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");s=s.length>0&&s.charCodeAt(s.length-1|0)===this.fallbackCharacter?(s||"")+String.fromCharCode(this.fallbackCharacter):(s||"")+(this.fallbackCharacter+this.fallbackCharacter|0),this._hasError=!0}return s},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if((t=t.mul(Bridge.global.System.Int64(3))).gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.ns("System.Text.UTF8Encoding",u.$),Bridge.apply(u.$.System.Text.UTF8Encoding,{f1:function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");return this.fallbackCharacter}}),Bridge.define("System.Threading.Timer",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{MAX_SUPPORTED_TIMEOUT:0,EXC_LESS:null,EXC_MORE:null,EXC_DISPOSED:null},ctors:{init:function(){this.MAX_SUPPORTED_TIMEOUT=4294967294,this.EXC_LESS="Number must be either non-negative and less than or equal to Int32.MaxValue or -1.",this.EXC_MORE="Time-out interval must be less than 2^32-2.",this.EXC_DISPOSED="The timer has been already disposed."}}},fields:{dueTime:Bridge.global.System.Int64(0),period:Bridge.global.System.Int64(0),timerCallback:null,state:null,id:null,disposed:!1},alias:["Dispose","System$IDisposable$Dispose"],ctors:{$ctor1:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,Bridge.global.System.Int64(n),Bridge.global.System.Int64(i))},$ctor3:function(e,t,n,i){this.$initialize();var r=Bridge.Int.clip64(n.getTotalMilliseconds()),o=Bridge.Int.clip64(i.getTotalMilliseconds());this.TimerSetup(e,t,r,o)},$ctor4:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,Bridge.global.System.Int64(n),Bridge.global.System.Int64(i))},$ctor2:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,n,i)},ctor:function(e){this.$initialize(),this.TimerSetup(e,this,Bridge.global.System.Int64(-1),Bridge.global.System.Int64(-1))}},methods:{TimerSetup:function(e,t,n,i){if(this.disposed)throw new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.Threading.Timer.EXC_DISPOSED);if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("TimerCallback");if(n.lt(Bridge.global.System.Int64(-1)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("dueTime",Bridge.global.System.Threading.Timer.EXC_LESS);if(i.lt(Bridge.global.System.Int64(-1)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("period",Bridge.global.System.Threading.Timer.EXC_LESS);if(n.gt(Bridge.global.System.Int64(Bridge.global.System.Threading.Timer.MAX_SUPPORTED_TIMEOUT)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("dueTime",Bridge.global.System.Threading.Timer.EXC_MORE);if(i.gt(Bridge.global.System.Int64(Bridge.global.System.Threading.Timer.MAX_SUPPORTED_TIMEOUT)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("period",Bridge.global.System.Threading.Timer.EXC_MORE);return this.dueTime=n,this.period=i,this.state=t,this.timerCallback=e,this.RunTimer(this.dueTime)},HandleCallback:function(){if(!this.disposed&&!Bridge.staticEquals(this.timerCallback,null)){var e=this.id;this.timerCallback(this.state),Bridge.global.System.Nullable.eq(this.id,e)&&this.RunTimer(this.period,!1)}},RunTimer:function(e,t){if(void 0===t&&(t=!0),t&&this.disposed)throw new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.Threading.Timer.EXC_DISPOSED);if(e.ne(Bridge.global.System.Int64(-1))&&!this.disposed){var n=e.toNumber();return this.id=Bridge.global.setTimeout(Bridge.fn.cacheBind(this,this.HandleCallback),n),!0}return!1},Change:function(e,t){return this.ChangeTimer(Bridge.global.System.Int64(e),Bridge.global.System.Int64(t))},Change$2:function(e,t){return this.ChangeTimer(Bridge.Int.clip64(e.getTotalMilliseconds()),Bridge.Int.clip64(t.getTotalMilliseconds()))},Change$3:function(e,t){return this.ChangeTimer(Bridge.global.System.Int64(e),Bridge.global.System.Int64(t))},Change$1:function(e,t){return this.ChangeTimer(e,t)},ChangeTimer:function(e,t){return this.ClearTimeout(),this.TimerSetup(this.timerCallback,this.state,e,t)},ClearTimeout:function(){Bridge.global.System.Nullable.hasValue(this.id)&&(Bridge.global.clearTimeout(Bridge.global.System.Nullable.getValue(this.id)),this.id=null)},Dispose:function(){this.ClearTimeout(),this.disposed=!0}}}),Bridge.define("System.Threading.Tasks.TaskCanceledException",{inherits:[Bridge.global.System.OperationCanceledException],fields:{_canceledTask:null},props:{Task:{get:function(){return this._canceledTask}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor1.call(this,"A task was canceled.")},$ctor1:function(e){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor1.call(this,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor2.call(this,e,t)},$ctor3:function(e){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor4.call(this,"A task was canceled.",new Bridge.global.System.Threading.CancellationToken),this._canceledTask=e}}}),Bridge.define("System.Threading.Tasks.TaskSchedulerException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"An exception was thrown by a TaskScheduler.")},$ctor2:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"An exception was thrown by a TaskScheduler.",e)},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t)}}}),Bridge.define("System.Version",{inherits:function(){return[Bridge.global.System.ICloneable,Bridge.global.System.IComparable$1(Bridge.global.System.Version),Bridge.global.System.IEquatable$1(Bridge.global.System.Version)]},statics:{fields:{separatorsArray:0,ZERO_CHAR_VALUE:0},ctors:{init:function(){this.separatorsArray=46,this.ZERO_CHAR_VALUE=48}},methods:{appendPositiveNumber:function(e,t){var n,i=t.getLength();do{n=e%10,e=0|Bridge.Int.div(e,10),t.insert(i,String.fromCharCode(65535&(Bridge.global.System.Version.ZERO_CHAR_VALUE+n|0)))}while(e>0)},parse:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");var t={v:new Bridge.global.System.Version.VersionResult};if(t.v.init("input",!0),!Bridge.global.System.Version.tryParseVersion(e,t))throw t.v.getVersionParseException();return t.v.m_parsedVersion},tryParse:function(e,t){var n,i={v:new Bridge.global.System.Version.VersionResult};return i.v.init("input",!1),n=Bridge.global.System.Version.tryParseVersion(e,i),t.v=i.v.m_parsedVersion,n},tryParseVersion:function(e,t){var n,i,r={},o={},s={},a={};if(null==e)return t.v.setFailure(Bridge.global.System.Version.ParseFailureKind.ArgumentNullException),!1;if((i=(n=Bridge.global.System.String.split(e,[Bridge.global.System.Version.separatorsArray].map(function(e){return String.fromCharCode(e)}))).length)<2||i>4)return t.v.setFailure(Bridge.global.System.Version.ParseFailureKind.ArgumentException),!1;if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(0,n)],"version",t,r)||!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(1,n)],"version",t,o))return!1;if((i=i-2|0)>0){if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(2,n)],"build",t,s))return!1;if((i=i-1|0)>0){if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(3,n)],"revision",t,a))return!1;t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor3(r.v,o.v,s.v,a.v)}else t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor2(r.v,o.v,s.v)}else t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor1(r.v,o.v);return!0},tryParseComponent:function(e,t,n,i){return Bridge.global.System.Int32.tryParse(e,i)?!(i.v<0&&(n.v.setFailure$1(Bridge.global.System.Version.ParseFailureKind.ArgumentOutOfRangeException,t),1)):(n.v.setFailure$1(Bridge.global.System.Version.ParseFailureKind.FormatException,e),!1)},op_Equality:function(e,t){return Bridge.referenceEquals(e,null)?Bridge.referenceEquals(t,null):e.equalsT(t)},op_Inequality:function(e,t){return!Bridge.global.System.Version.op_Equality(e,t)},op_LessThan:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("v1");return e.compareTo(t)<0},op_LessThanOrEqual:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("v1");return e.compareTo(t)<=0},op_GreaterThan:function(e,t){return Bridge.global.System.Version.op_LessThan(t,e)},op_GreaterThanOrEqual:function(e,t){return Bridge.global.System.Version.op_LessThanOrEqual(t,e)}}},fields:{_Major:0,_Minor:0,_Build:0,_Revision:0},props:{Major:{get:function(){return this._Major}},Minor:{get:function(){return this._Minor}},Build:{get:function(){return this._Build}},Revision:{get:function(){return this._Revision}},MajorRevision:{get:function(){return Bridge.Int.sxs(this._Revision>>16&65535)}},MinorRevision:{get:function(){return Bridge.Int.sxs(65535&this._Revision)}}},alias:["clone","System$ICloneable$clone","compareTo",["System$IComparable$1$System$Version$compareTo","System$IComparable$1$compareTo"],"equalsT","System$IEquatable$1$System$Version$equalsT"],ctors:{init:function(){this._Build=-1,this._Revision=-1},$ctor3:function(e,t,n,i){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("build","Cannot be < 0");if(i<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("revision","Cannot be < 0");this._Major=e,this._Minor=t,this._Build=n,this._Revision=i},$ctor2:function(e,t,n){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("build","Cannot be < 0");this._Major=e,this._Minor=t,this._Build=n},$ctor1:function(e,t){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");this._Major=e,this._Minor=t},$ctor4:function(e){this.$initialize();var t=Bridge.global.System.Version.parse(e);this._Major=t.Major,this._Minor=t.Minor,this._Build=t.Build,this._Revision=t.Revision},ctor:function(){this.$initialize(),this._Major=0,this._Minor=0}},methods:{clone:function(){var e=new Bridge.global.System.Version.ctor;return e._Major=this._Major,e._Minor=this._Minor,e._Build=this._Build,e._Revision=this._Revision,e},compareTo$1:function(e){if(null==e)return 1;var t=Bridge.as(e,Bridge.global.System.Version);if(Bridge.global.System.Version.op_Equality(t,null))throw new Bridge.global.System.ArgumentException.$ctor1("version should be of Bridge.global.System.Version type");return this._Major!==t._Major?this._Major>t._Major?1:-1:this._Minor!==t._Minor?this._Minor>t._Minor?1:-1:this._Build!==t._Build?this._Build>t._Build?1:-1:this._Revision!==t._Revision?this._Revision>t._Revision?1:-1:0},compareTo:function(e){return Bridge.global.System.Version.op_Equality(e,null)?1:this._Major!==e._Major?this._Major>e._Major?1:-1:this._Minor!==e._Minor?this._Minor>e._Minor?1:-1:this._Build!==e._Build?this._Build>e._Build?1:-1:this._Revision!==e._Revision?this._Revision>e._Revision?1:-1:0},equals:function(e){return this.equalsT(Bridge.as(e,Bridge.global.System.Version))},equalsT:function(e){return!Bridge.global.System.Version.op_Equality(e,null)&&this._Major===e._Major&&this._Minor===e._Minor&&this._Build===e._Build&&this._Revision===e._Revision},getHashCode:function(){var e=0;return e|=(15&this._Major)<<28,e|=(255&this._Minor)<<20,(e|=(255&this._Build)<<12)|4095&this._Revision},toString:function(){return-1===this._Build?this.toString$1(2):-1===this._Revision?this.toString$1(3):this.toString$1(4)},toString$1:function(e){var t;switch(e){case 0:return"";case 1:return Bridge.toString(this._Major);case 2:return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.toString();default:if(-1===this._Build)throw new Bridge.global.System.ArgumentException.$ctor3("Build should be > 0 if fieldCount > 2","fieldCount");if(3===e)return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Build,t),t.toString();if(-1===this._Revision)throw new Bridge.global.System.ArgumentException.$ctor3("Revision should be > 0 if fieldCount > 3","fieldCount");if(4===e)return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Build,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Revision,t),t.toString();throw new Bridge.global.System.ArgumentException.$ctor3("Should be < 5","fieldCount")}}}}),Bridge.define("System.Version.ParseFailureKind",{$kind:"nested enum",statics:{fields:{ArgumentNullException:0,ArgumentException:1,ArgumentOutOfRangeException:2,FormatException:3}}}),Bridge.define("System.Version.VersionResult",{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Version.VersionResult}}},fields:{m_parsedVersion:null,m_failure:0,m_exceptionArgument:null,m_argumentName:null,m_canThrow:!1},ctors:{ctor:function(){this.$initialize()}},methods:{init:function(e,t){this.m_canThrow=t,this.m_argumentName=e},setFailure:function(e){this.setFailure$1(e,"")},setFailure$1:function(e,t){if(this.m_failure=e,this.m_exceptionArgument=t,this.m_canThrow)throw this.getVersionParseException()},getVersionParseException:function(){switch(this.m_failure){case Bridge.global.System.Version.ParseFailureKind.ArgumentNullException:return new Bridge.global.System.ArgumentNullException.$ctor1(this.m_argumentName);case Bridge.global.System.Version.ParseFailureKind.ArgumentException:return new Bridge.global.System.ArgumentException.$ctor1("VersionString");case Bridge.global.System.Version.ParseFailureKind.ArgumentOutOfRangeException:return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4(this.m_exceptionArgument,"Cannot be < 0");case Bridge.global.System.Version.ParseFailureKind.FormatException:try{Bridge.global.System.Int32.parse(this.m_exceptionArgument)}catch(e){if(e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.FormatException)||Bridge.is(e,Bridge.global.System.OverflowException))return e;throw e}return new Bridge.global.System.FormatException.$ctor1("InvalidString");default:return new Bridge.global.System.ArgumentException.$ctor1("VersionString")}},getHashCode:function(){return Bridge.addHash([5139482776,this.m_parsedVersion,this.m_failure,this.m_exceptionArgument,this.m_argumentName,this.m_canThrow])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Version.VersionResult)&&Bridge.equals(this.m_parsedVersion,e.m_parsedVersion)&&Bridge.equals(this.m_failure,e.m_failure)&&Bridge.equals(this.m_exceptionArgument,e.m_exceptionArgument)&&Bridge.equals(this.m_argumentName,e.m_argumentName)&&Bridge.equals(this.m_canThrow,e.m_canThrow)},$clone:function(e){var t=e||new Bridge.global.System.Version.VersionResult;return t.m_parsedVersion=this.m_parsedVersion,t.m_failure=this.m_failure,t.m_exceptionArgument=this.m_exceptionArgument,t.m_argumentName=this.m_argumentName,t.m_canThrow=this.m_canThrow,t}}}),void 0===(o=function(){return Bridge}.apply(t,[]))||(e.exports=o)}(this)}).call(this,n(4),n(5))},function(e,t){},function(e,t){Bridge.assembly("Kusto.JavaScript.Client",function(e,t){"use strict";Bridge.define("Kusto.Language.Syntax.ClassificationKind",{$kind:"enum",statics:{fields:{Unknown:0,PlainText:1,Comment:2,Punctuation:3,Literal:4,StringLiteral:5,Type:6,Identifier:7,Column:8,Table:9,Function:10,Parameter:11,Variable:12,Plugin:13,QueryParameter:14,Operator:15,Keyword:16,QueryCommand:17}}}),Bridge.define("Kusto.Charting.ArgumentColumnType",{$kind:"enum",statics:{fields:{None:0,Numeric:2,DateTime:4,TimeSpan:8,String:16,Object:32,DateTimeOrTimeSpan:12,StringOrDateTimeOrTimeSpan:28,NumericOrDateTimeOrTimeSpan:14,StringOrObject:48,All:62}},$flags:!0}),Bridge.define("Kusto.Charting.ArgumentRestrictions",{$kind:"enum",statics:{fields:{None:0,MustHave:1,NotIncludedInSeries:2}},$flags:!0}),Bridge.define("Kusto.Charting.ChartKind",{$kind:"enum",statics:{fields:{Unspecified:0,Line:1,Point:2,Bar:3}}}),Bridge.define("Kusto.Charting.DataChartsHelper",{statics:{methods:{GetData:function(e,t,n,i,r,o,s){void 0===t&&(t=16),void 0===n&&(n=0),void 0===i&&(i=null),void 0===r&&(r=!1),void 0===o&&(o=null),void 0===s&&(s=null);var a=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Charting.DataItem).ctor),l=e.Kusto$Charting$IChartingDataSource$GetSchema();if(null==l||0===Bridge.global.System.Linq.Enumerable.from(l).count())return a;null==i&&(i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),null==s&&(s=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor));var u=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Double)),d=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Double)),c={v:-1},g=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Int32).ctor),m=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Int32).ctor),h={v:!1};Kusto.Charting.DataChartsHelper.ResolvePredefinedColumnsIndexes(e,i,g,s,m,o,c,t,h);var p=!1;if(h.v||(p=Kusto.Charting.DataChartsHelper.DetectChartDimensionsUsingColumnTypes(l,t,n,c,g,m),h.v=!p),h.v&&(p=Kusto.Charting.DataChartsHelper.DetectChartDimensionsUsingData(l,e,i,t,n,c,g,m)),!p)return a;for(var f=0;f1)for(var s=0;s0&&f.append(", "),f.appendFormat("{0}:{1}",S.Item1,Bridge.toString(t.Kusto$Charting$IChartingDataSource$GetValue(r,y)))}}finally{Bridge.is(c,Bridge.global.System.IDisposable)&&c.System$IDisposable$Dispose()}p=f.toString()}for(var b=t.Kusto$Charting$IChartingDataSource$GetValue(r,l),I=Kusto.Charting.DataChartsHelper.ResolveJsonArrayType(Bridge.toString(b)),C=0;C"),e.add(P),D=P.ValueData}}}}},GetArgumentStringArray:function(e,t,n,i){if(!Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.String,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||n<0)return Bridge.global.System.Array.init(i,null,Bridge.global.System.String);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsString(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,null,Bridge.global.System.String):r},GetArgumentNumericArray:function(e,t,n,i){if(t!==Kusto.Charting.ArgumentColumnType.Numeric||n<0)return Bridge.global.System.Array.init(i,0,Bridge.global.System.Double);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsDouble(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,0,Bridge.global.System.Double):r},GetArgumentDateTimeArray:function(e,t,n,i){if(!Bridge.global.System.Enum.hasFlag(Kusto.Charting.ArgumentColumnType.DateTimeOrTimeSpan,Bridge.box(t,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||n<0)return Bridge.global.System.Array.init(i,function(){return Bridge.global.System.DateTime.getDefaultValue()},Bridge.global.System.DateTime);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsDateTime(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,function(){return Bridge.global.System.DateTime.getDefaultValue()},Bridge.global.System.DateTime):r},ResolveDataItemsFromDataRow:function(e,t,n,i,r,o,s,a,l,u,d){var c,g,m=t.Kusto$Charting$IChartingDataSource$GetSchema(),h="";if(Bridge.global.System.Linq.Enumerable.from(u).any()){var p=new Bridge.global.System.Text.StringBuilder;c=Bridge.getEnumerator(u);try{for(;c.moveNext();){var f=c.Current,y=Bridge.global.System.Linq.Enumerable.from(m).elementAt(f);p.getLength()>0&&p.append(", "),p.appendFormat("{0}:{1}",y.Item1,Bridge.toString(t.Kusto$Charting$IChartingDataSource$GetValue(r,f)))}}finally{Bridge.is(c,Bridge.global.System.IDisposable)&&c.System$IDisposable$Dispose()}h=p.toString()}for(var S=t.Kusto$Charting$IChartingDataSource$GetValue(r,l),b=null==S?o:Bridge.global.System.Linq.Enumerable.from(m).elementAt(l).Item2,I=0;I=0?Bridge.toString(S):"",g.ArgumentDateTime=B,g.ArgumentNumeric=D,g.ValueData=a&&n.tryGetValue(x,w)?T+w.v:T,g.ValueName=C.Item1,g.SeriesName=x,g);Bridge.global.System.String.isNullOrEmpty(A.ArgumentData)&&(A.ArgumentData=""),e.add(A),n.set(A.SeriesName,A.ValueData)}}},GetArgumentDateTime:function(e,t){return Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.DateTime,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.TimeSpan,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))?Bridge.is(e,Bridge.global.System.DateTime)?Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTime)):Bridge.is(e,Bridge.global.System.TimeSpan)?Bridge.global.System.DateTime.create$2(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.TimeSpan)).getTicks()):Bridge.global.System.DateTime.getMinValue():Bridge.global.System.DateTime.getMinValue()},GetArgumentNumeric:function(e,t,n,i,r){return!Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||Kusto.Charting.DataChartsHelper.CheckIfDBNull(e)?Number.NaN:n<0?(r.containsKey(i)||r.set(i,0),r.set(i,r.get(i)+1),r.get(i)):Kusto.Charting.DataChartsHelper.ConvertToDouble(e,t)},ConvertToDouble:function(e,t){var n=0;if(t===Kusto.Charting.ArgumentColumnType.DateTime)n=Kusto.Charting.DataChartsHelper.DateTimeToTotalSeconds(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTime)));else if(t===Kusto.Charting.ArgumentColumnType.TimeSpan)n=Kusto.Charting.DataChartsHelper.TimeSpanToTotalSeconds(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.TimeSpan)));else try{n=Bridge.global.System.Convert.toDouble(e)}catch(e){e=Bridge.global.System.Exception.create(e),n=Number.NaN}return n},TryConvertToDouble:function(e,t){return null==e||Kusto.Charting.DataChartsHelper.CheckIfDBNull(e)?null:Kusto.Charting.DataChartsHelper.ConvertToDouble(e,t)},DetectChartDimensionsUsingData:function(e,t,n,i,r,o,s,a){var l,u=Bridge.global.System.Array.init(Bridge.global.System.Linq.Enumerable.from(e).count(),0,Kusto.Charting.ArgumentColumnType);if(0===t.Kusto$Charting$IChartingDataSource$RowsCount)return!1;for(var d=-1,c=0;c=0&&Bridge.global.System.Linq.Enumerable.from(r).any())return!0;if(i.v<0&&o<0&&Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType))))return!1;if(i.v<0){if(t===Kusto.Charting.ArgumentColumnType.DateTimeOrTimeSpan)return!1;Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))?Bridge.global.System.Linq.Enumerable.from(e).count()>1&&(i.v=o):Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.NotIncludedInSeries,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))?i.v=Kusto.Charting.DataChartsHelper.GoBackwardsAndFindColumnNotInList(o,r,a):i.v=o-1|0}if(i.v<0&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.MustHave,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))&&(i.v=0),!Bridge.global.System.Linq.Enumerable.from(r).any()&&i.v>=0){var l=i.v;s[Bridge.global.System.Array.index(i.v,s)]!==Kusto.Charting.ArgumentColumnType.String?l=Kusto.Charting.DataChartsHelper.GetFirstStringColumnIndex(s):Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.NotIncludedInSeries,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))&&(l=i.v-1|0),l>=0&&!a.contains(l)&&r.add(l)}return!0},GoBackwardsAndFindColumnNotInList:function(e,t,n){for(var i=e-1|0;i>=0;i=i-1|0){var r=null==t||!t.contains(i),o=null==n||!n.contains(i);if(r&&o)return i}return-1},GetFirstStringColumnIndex:function(e){for(var t=0;t=2&&Bridge.global.System.String.endsWith(t.v,'"'))return t.v=t.v.substr(1,t.v.length-2|0),!!Kusto.Cloud.Platform.Utils.ExtendedRegex.TryUnescape(t.v,t)}else if(Bridge.global.System.String.startsWith(t.v,"'")){if(t.v.length>=2&&Bridge.global.System.String.endsWith(t.v,"'"))return t.v=t.v.substr(1,t.v.length-2|0),!!Kusto.Cloud.Platform.Utils.ExtendedRegex.TryUnescape(t.v,t)}else if(Bridge.global.System.String.startsWith(t.v,'@"')){if(t.v.length>=3&&Bridge.global.System.String.endsWith(t.v,'"')){var n=t.v.substr(2,t.v.length-3|0);return t.v=Bridge.global.System.String.replaceAll(n,'""','"'),!0}}else if(Bridge.global.System.String.startsWith(t.v,"@'")&&t.v.length>=3&&Bridge.global.System.String.endsWith(t.v,"'")){var i=t.v.substr(2,t.v.length-3|0);return t.v=Bridge.global.System.String.replaceAll(i,"''","'"),!0}return!1},IsStringLiteral:function(e){if(Bridge.global.System.String.isNullOrWhiteSpace(e))return!1;var t=e.charCodeAt(0);return 34===t||39===t||64===t},Equals:function(e,t){return null==e&&null==t||null!=e&&null!=t&&Bridge.global.System.String.equals(e,t,4)},TrimSingleQuotes:function(e){return Bridge.global.System.String.isNullOrWhiteSpace(e)?e:(Bridge.global.System.String.startsWith(e,"'")&&Bridge.global.System.String.endsWith(e,"'")&&e.length>=2&&(e=e.substr(1,e.length-2|0)),e)},TrimBrackets:function(e){return Bridge.global.System.String.startsWith(e,"[")&&Bridge.global.System.String.endsWith(e,"]")&&e.length>=2&&(e=e.substr(1,e.length-2|0)),e},InitArray:function(e,t,n){if(null!=t)for(var i=0;i=0}}}}),Bridge.define("Kusto.Cloud.Platform.Utils.ExtendedString",{statics:{fields:{c_newlineAsStringArray:null,c_postfix:null,c_wrap:null,c_nullGuids:null,SafeToString:null,EmptyArray:null},ctors:{init:function(){this.c_newlineAsStringArray=Bridge.global.System.Array.init(["\n"],Bridge.global.System.String),this.c_postfix="...",this.c_wrap=" ",this.c_nullGuids=Bridge.global.System.Array.init([Bridge.global.System.Guid.Empty.toString(),"{"+(Bridge.global.System.Guid.Empty.toString()||"")+"}"],Bridge.global.System.String),this.SafeToString=e.$.Kusto.Cloud.Platform.Utils.ExtendedString.f1,this.EmptyArray=Bridge.global.System.Array.init(0,null,Bridge.global.System.String)}},methods:{SafeGetHashCode:function(e){return null==e?20080512:Bridge.getHashCode(e)},GuidSafeFastGetHashCode:function(e){return null==e||e.length<26?Kusto.Cloud.Platform.Utils.ExtendedString.SafeGetHashCode(e):(e.charCodeAt(1)^e.charCodeAt(9)<<8|e.charCodeAt(10))^(e.charCodeAt(16)<<16|e.charCodeAt(17))^(e.charCodeAt(24)<<24|e.charCodeAt(25))},SafeFormat:function(e,t){if(void 0===t&&(t=[]),null==e)return"[format:null]";if(null==t||0===t.length)return Bridge.global.System.String.format.apply(Bridge.global.System.String,[e].concat(t));for(var n=Bridge.global.System.Array.init(t.length,null,Bridge.global.System.String),i=0;in?"":e.substr(t,1+(n-t|0)|0)},FindFirstNonWhitespaceCharacter:function(e,t){if(void 0===t&&(t=0),null==e)return-1;for(;;){if(t>=e.length)return-1;if(!Bridge.global.System.Char.isWhiteSpace(String.fromCharCode(e.charCodeAt(t))))return t;t=t+1|0}},FirstFirstUnequalCharacter:function(e,t){if(Bridge.referenceEquals(e,t))return-1;if(null==e||null==t||0===e.length||0===t.length)return 0;for(var n=0;n^\\s*\\|\\s*join\\s+(kind\\s*=\\s*\\w+\\s*)?)(?\\()?(?.+$)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinEndRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?!^.*\\bmake-series\\b.*$)((?^.+?)(?\\)?)\\s*\\b(?on\\s+.+))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesOperatorRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\bmake-series\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_operatorRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\|\\s*(?[\\w-]+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_operatorsNotRequiringFullEntitiesResolve=e.$.Kusto.Data.IntelliSense.CslCommand.f1(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_nameOrListRegex="(?:\\w+)|(?:\\((\\w+)(,\\s*\\w+)*\\))",this.s_hasAssignmentOperationRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*\\|\\s*(extend|parse|summarize|project|mvexpand|make-series|project-rename)\\s+"+(Kusto.Data.IntelliSense.CslCommand.s_nameOrListRegex||"")+")|(^\\s*range)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_startsWithAlpha=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*[a-z]",1)}},methods:{UnionCommands:function(t){var n;if(Bridge.global.System.Linq.Enumerable.from(t).count()<2)return Bridge.global.System.Linq.Enumerable.from(t).firstOrDefault(null,null);var i=Bridge.global.System.Linq.Enumerable.from(t).first(),r=((n=new Kusto.Data.IntelliSense.CslCommand).m_tokens=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f2).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_commandParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f3).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_commentsParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f4).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_clientDirectivesParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f5).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_bracketParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f6).toList(Kusto.Data.IntelliSense.CslCommandToken),n.Text=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f7)).join(""),n.IsRunnable=Bridge.global.System.Linq.Enumerable.from(t).any(e.$.Kusto.Data.IntelliSense.CslCommand.f8),n.RelativeStart=i.RelativeStart,n.AbsolutePositionBias=i.AbsolutePositionBias,n.ParseMode=i.ParseMode,n);return r.Length=r.Text.length,r},NormalizeCommandPart:function(e){return e=e.trim(),Kusto.Data.IntelliSense.CslCommand.s_removeWhiteSpacesAfterPipeRegex.replace(e,"| ")},AppendTabulatedText:function(e,t,n){Kusto.Data.IntelliSense.CslCommand.AppendTabulations(e,t),e.append(n)},AppendTabulations:function(e,t){if(!(t<=0))for(var n=0;n0&&!Kusto.Data.IntelliSense.CslCommand.s_makeSeriesOperatorRegex.isMatch(e.Text)?"":Kusto.Data.IntelliSense.CslCommand.s_operatorRegex.match(e.Text).getGroups().getByName("Operator").toString()},GetKnownEntities:function(e,t,n,i,r,o,s,a,l){if(a.v=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),n.containsKey(o)?l.v=n.get(o):l.v=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),null==i)return t.containsKey(o)&&(a.v=t.get(o)),!1;if(Kusto.Data.IntelliSense.CslCommand.s_operatorsNotRequiringFullEntitiesResolve.contains(s))return t.containsKey(o)&&(a.v=t.get(o)),!1;var u=r.toString();return e.GetKnownEntities(u,o,n,a,l)},IsMatchingRegex:function(e,t){return!Bridge.global.System.String.isNullOrWhiteSpace(e)&&t.isMatch(e)},StartsWithAlpha:function(e){return!Bridge.global.System.String.isNullOrWhiteSpace(e)&&Kusto.Data.IntelliSense.CslCommand.s_startsWithAlpha.isMatch(e)}}},fields:{m_tokens:null,m_commandParts:null,m_commentsParts:null,m_clientDirectivesParts:null,m_bracketParts:null,m_commandPartsParseStates:null},props:{CslExpressionStartPosition:{get:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)?0:this.m_commandParts.getItem(0).RelativeStart}},CslExpressionLength:{get:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)?0:Bridge.global.System.Linq.Enumerable.from(this.m_commandParts).last().RelativeEnd-this.m_commandParts.getItem(0).RelativeStart|0}},Tokens:{get:function(){return this.m_tokens}},CommandParts:{get:function(){return this.m_commandParts}},CommentParts:{get:function(){return this.m_commentsParts}},BracketParts:{get:function(){return this.m_bracketParts}},AllParts:{get:function(){var t=0,n=null;return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)&&(t=t+1|0,n=this.m_commandParts),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commentsParts)&&(t=t+1|0,n=null!=n?Bridge.global.System.Linq.Enumerable.from(n).union(this.m_commentsParts):Bridge.cast(this.m_commentsParts,Bridge.global.System.Collections.Generic.IEnumerable$1(Kusto.Data.IntelliSense.CslCommandToken))),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_clientDirectivesParts)&&(t=t+1|0,n=null!=n?Bridge.global.System.Linq.Enumerable.from(n).union(this.m_clientDirectivesParts):Bridge.cast(this.m_clientDirectivesParts,Bridge.global.System.Collections.Generic.IEnumerable$1(Kusto.Data.IntelliSense.CslCommandToken))),t>1?Bridge.global.System.Linq.Enumerable.from(n).orderBy(e.$.Kusto.Data.IntelliSense.CslCommand.f9):n}},Text:null,RelativeStart:0,Length:0,RelativeEnd:{get:function(){return(this.RelativeStart+this.Length|0)-1|0}},AbsoluteStart:{get:function(){return this.AbsolutePositionBias+this.RelativeStart|0}},AbsoluteEnd:{get:function(){return this.AbsolutePositionBias+this.RelativeEnd|0}},AbsolutePositionBias:0,IsRunnable:!1,ParseMode:0,ContextCache:null},ctors:{ctor:function(){this.$initialize()}},methods:{FormatAsString:function(t,n){var i;if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts))return"";var r=this.m_commandParts;Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.IncludeComments,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commentsParts)&&(r=Bridge.global.System.Linq.Enumerable.from(r).union(this.m_commentsParts).union(this.m_clientDirectivesParts).orderBy(e.$.Kusto.Data.IntelliSense.CslCommand.f10).toList(Kusto.Data.IntelliSense.CslCommandToken));var o=new Bridge.global.System.Text.StringBuilder,s={v:0},a=!0;i=Bridge.getEnumerator(r);try{for(;i.moveNext();){var l=i.Current,u=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(l.Value," ");a||o.append(t),a=!1,Kusto.Data.IntelliSense.CslCommand.AppendTabulations(o,s.v);var d=!1;!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.IncludeComments,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleCommentsAndClientDirectives(t,o,s,l,u)),!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.TabulateOnFunctionBoundaries,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleFunctions(t,o,s,l)),!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.TabulateOnJoins,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleJoins(t,o,s,l,u)),d||o.append(Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(u))}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return o.toString()},HandleCommentsAndClientDirectives:function(e,t,n,i,r){return!Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,Bridge.global.System.Linq.Enumerable.from(this.m_commentsParts).union(this.m_clientDirectivesParts),function(e){return e.AbsoluteStart===i.AbsoluteStart&&e.AbsoluteEnd===i.AbsoluteEnd})&&(t.append(r.trim()),!0)},HandleFunctions:function(e,t,n,i){var r=!1,o=0,s=Bridge.global.System.String.indexOf(i.Value,String.fromCharCode(123)),a=i.AbsoluteStart+s|0;if(s>=0&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_tokens,function(e){return a>=e.AbsoluteStart&&a<=e.AbsoluteEnd})){var l=i.Value.substr(0,s).trim();l=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(l," "),t.append(l),t.append(e),t.append("{"),t.append(e),n.v=n.v+1|0,r=!0,o=s+1|0}var u=Bridge.global.System.String.indexOf(i.Value,String.fromCharCode(125)),d=i.AbsoluteStart+u|0;if(u>=0&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_tokens,function(e){return d>=e.AbsoluteStart&&d<=e.AbsoluteEnd})){var c=i.Value.substr(o,u-o|0).trim(),g=i.Value.substr(u+1|0).trim();g=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(g," "),r&&Kusto.Data.IntelliSense.CslCommand.AppendTabulations(t,n.v),t.append(c),t.append(e),t.append("}"),n.v=n.v-1|0,n.v<0&&(n.v=0),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,g),r=!0}else if(r){var m=i.Value.substr(o).trim();m=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(m," "),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,m)}return r},HandleJoins:function(e,t,n,i,r){var o=!0,s=!1,a=r,l=Kusto.Data.IntelliSense.CslCommand.s_joinStartRegex.match(a),u=0;if(l.getSuccess()){var d=l.getGroups().getByName("JoinOpPart").toString();t.append(Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(d)),t.append(e),o=!Bridge.global.System.String.isNullOrEmpty(l.getGroups().getByName("Bracket").toString()),n.v=n.v+1|0,a=l.getGroups().getByName("PostJoinPart").toString(),u=l.getGroups().getByName("PostJoinPart").getIndex(),s=!0}var c=Kusto.Data.IntelliSense.CslCommand.s_joinEndRegex.match(a);if(c.getSuccess()&&Bridge.global.System.Linq.Enumerable.from(this.m_tokens).any(function(e){return e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken&&Bridge.referenceEquals(e.Value,"on")&&e.AbsoluteStart===((c.getGroups().getByName("JoinOnPart").getIndex()+i.AbsoluteStart|0)+u|0)})){var g=Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(c.getGroups().getByName("InnerJoinPart").toString()),m=Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(c.getGroups().getByName("JoinOnPart").toString()),h=o,p=Kusto.Cloud.Platform.Utils.ExtendedString.CountNonOverlappingSubstrings(g,"("),f=Kusto.Cloud.Platform.Utils.ExtendedString.CountNonOverlappingSubstrings(g,")");!Bridge.global.System.String.isNullOrEmpty(c.getGroups().getByName("Bracket").toString())&&p>f&&(h=!1,g=(g||"")+")"),l.getSuccess()&&(o&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v-1|0,"("),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulations(t,n.v)),t.append(g),t.append(e),n.v=n.v-1|0,n.v<0&&(n.v=0),h&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,")"),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(m)),s=!0}else l.getSuccess()&&(o&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v-1|0,"("),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(a)));return s},AcquireTokens:function(t){this.m_tokens=Bridge.global.System.Linq.Enumerable.from(t.m_tokens).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_commandParts=Bridge.global.System.Linq.Enumerable.from(t.m_commandParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_commentsParts=Bridge.global.System.Linq.Enumerable.from(t.m_commentsParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_clientDirectivesParts=Bridge.global.System.Linq.Enumerable.from(t.m_clientDirectivesParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_bracketParts=Bridge.global.System.Linq.Enumerable.from(t.m_bracketParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken)},ParseTokens:function(t,n,i){var r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);if(Bridge.global.System.String.isNullOrEmpty(this.Text))this.m_tokens=r;else{null!=t&&(t.ResetState(),null!=i&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext),i.ContextCache)&&(t.ContextCache=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext))(i.ContextCache)));var o=null!=t&&t.AllowQueryParameters,s=new Kusto.Data.IntelliSense.CslCommandIndexer(o);s.AntiTokenizers=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).$ctor1)(Bridge.global.System.Array.init([45,95,40],Bridge.global.System.Char)),s.TokenStarters=Bridge.global.System.Array.init([46],Bridge.global.System.Char),s.TokenTerminators=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).$ctor1)(Bridge.global.System.Array.init([40,46],Bridge.global.System.Char)),s.IndexText(this.Text);var a=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);this.m_commandParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var l=s.GetCommandPartsPositions();this.AddCategorizedTokens(this.m_commandParts,null,l,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommandPartToken),this.m_commentsParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var u=s.GetCommentsPositions();this.AddCategorizedTokens(this.m_commentsParts,null,u,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommentToken),this.m_clientDirectivesParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var d=s.GetClientDirectivesPositions();this.AddCategorizedTokens(this.m_clientDirectivesParts,null,d,Kusto.Data.IntelliSense.CslCommandToken.Kind.ClientDirectiveToken),this.m_bracketParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor),this.AddCategorizedTokens(this.m_bracketParts,null,s.GetBracketsPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.BracketRangeToken),this.AddCategorizedTokens(r,a,u,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommentToken),this.AddCategorizedTokens(r,a,d,Kusto.Data.IntelliSense.CslCommandToken.Kind.ClientDirectiveToken),o&&this.AddCategorizedTokens(r,a,s.GetQueryParametersPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.QueryParametersToken),this.AddCategorizedTokens(r,a,s.GetStringLiteralsPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.StringLiteralToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.ControlCommandsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.ControlCommandToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.CslCommandsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.CslCommandToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.OperatorCommandTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.SubOperatorsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.JoinKindTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.ReduceByKindTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.DataTypesTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.DataTypeToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.FunctionsTokens,40),Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken),this.AddCategorizedTokens(r,a,s.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.PluginTokens,40),Kusto.Data.IntelliSense.CslCommandToken.Kind.PluginToken),null!=t&&this.AddEntitiesTokens(t,r,a,s,l,i),r.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12),this.ValidateTokensOutput(r,this.Text),n===Kusto.Data.IntelliSense.ParseMode.TokenizeAllText&&(this.EnsureAllTextIsAnnotated(s,r,a),r.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12)),this.m_tokens=r,null!=t&&(this.ContextCache=t.ContextCache)}},ValidateTokensOutput:function(e,t){for(var n,i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor),r=0,o=t.length,s=0;so?i.add(a):r=a.RelativeEnd}n=Bridge.getEnumerator(i);try{for(;n.moveNext();){var l=n.Current;e.remove(l)}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}},AddEntitiesTokens:function(t,n,i,r,o,s){this.AddCategorizedTokens(n,i,r.GetAllTokenPositions(t.TableNames),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken),this.m_commandPartsParseStates=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand.AddEntitiesTokensState).ctor);for(var a=new Bridge.global.System.Text.StringBuilder,l=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).$ctor1)(t.FunctionNames),u=null!=s,d=null,c=null,g=0;g<(Bridge.global.System.Array.getCount(o,Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition)+1|0);g=g+1|0){var m=g>0?Bridge.global.System.Array.getItem(o,g-1|0,Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition):null,h={v:gg&&Bridge.global.System.Linq.Enumerable.from(s.CommandParts).count()>g&&Bridge.global.System.String.equals(h.v.Text,Bridge.global.System.Linq.Enumerable.from(s.CommandParts).elementAt(g).Value)))){var p=Bridge.global.System.Linq.Enumerable.from(s.CommandParts).elementAt(g),f={v:h.v.Start-p.RelativeStart|0},y=Bridge.global.System.Linq.Enumerable.from(s.Tokens).where(function(e,t){return function(e){return(e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.LetVariablesToken)&&e.RelativeStart>=t.v.Start&&e.RelativeEnd<=t.v.End}}(0,h)).select(function(e,t){return function(e){var n=Bridge.as(e.clone(),Kusto.Data.IntelliSense.CslCommandToken);return n.RelativeStart=n.RelativeStart+t.v|0,n}}(0,f)).ToArray(Kusto.Data.IntelliSense.CslCommandToken);n.AddRange(y),i.AddRange(r.GetTokenPositionsInRange(Bridge.global.System.Linq.Enumerable.from(y).select(e.$.Kusto.Data.IntelliSense.CslCommand.f13),h.v.Start,h.v.End)),this.AddLetStatementTokens(n,i,r,l,h.v),d=s.m_commandPartsParseStates.getItem(g).Clone(),this.m_commandPartsParseStates.add(d)}else{if(null!=h.v&&this.AddLetStatementTokens(n,i,r,l,h.v),null==c){var S=a.toString();c=t.AnalyzeCommand$1(S,s)}else null!=h.v&&(c=t.AnalyzeCommand(c,h.v.Text));var b=c.Context;if(!b.IsEmpty()){var I=Kusto.Data.IntelliSense.CslCommand.ResolveOperatorContext(h.v),C={},_={},v=Kusto.Data.IntelliSense.CslCommand.GetKnownEntities(t,d.MapOfKnownEntities,d.MapOfOriginallyKnownEntities,h.v,a,b,I,C,_);if(null!=h.v){t.ResolveKnownEntitiesFromContext(b);var T=Bridge.global.System.Linq.Enumerable.from(C.v).except(_.v),x=Bridge.global.System.Linq.Enumerable.from(_.v).intersect(C.v);this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(x,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken),this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(T,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken),this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(t.RemoteTableNames,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken)}if(!v&&null!=h.v){var w=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);switch(t.ResolveEntitiesFromCommand((h.v.Text||"")+" | ",w,C.v)){case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities:C.v=w;break;case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None:break;case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities:C.v=Bridge.global.System.Linq.Enumerable.from(C.v).union(w).toList(Bridge.global.System.String)}}if(d.MapOfKnownEntities.set(b,C.v),null!=m&&Kusto.Data.IntelliSense.CslCommand.IsMatchingRegex(m.Text,Kusto.Data.IntelliSense.CslCommand.s_hasAssignmentOperationRegex)&&d.MapOfPreviousCalculatedEntities.containsKey(b)){var B=d.MapOfPreviousCalculatedEntities.get(b);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,B)){var D=r.GetTokenPositionsInRange(B,m.Start,m.End);Bridge.global.System.Linq.Enumerable.from(D).any()&&this.AddCategorizedTokens(n,i,D,Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken)}}d.MapOfPreviousCalculatedEntities.set(b,Bridge.global.System.Linq.Enumerable.from(C.v).except(_.v).toList(Bridge.global.System.String)),this.m_commandPartsParseStates.add(d)}}}},AddLetStatementTokens:function(e,t,n,i,r){var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveLetVariable(r.Text);Bridge.global.System.String.isNullOrEmpty(o)||i.add(o),i.Count>0&&this.AddCategorizedTokens(e,t,n.GetTokenPositionsInRange(i,r.Start,r.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.LetVariablesToken)},AddCategorizedTokens:function(e,t,n,i){null!=t&&t.AddRange(n),e.AddRange(Bridge.global.System.Linq.Enumerable.from(n).select(Bridge.fn.bind(this,function(e){var t;return(t=new Kusto.Data.IntelliSense.CslCommandToken(e.Text,this.RelativeStart,i)).Length=e.Length,t.RelativeStart=e.Start,t})))},EnsureAllTextIsAnnotated:function(t,n,i){if(null!=n){this.AddUnrecognizedTokens(t,n,i),n.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12);for(var r=0,o=n.Count,s=0;s0){var u=this.Text.substr(r,l);this.AddPlainOrUnrecognizedTokens(n,r,u)}}r=a.RelativeEnd}if(r=0?o:a);if(o>0){var l=n.substr(0,o),u=((i=new Kusto.Data.IntelliSense.CslCommandToken(l,this.RelativeStart,Kusto.Data.IntelliSense.CslCommandToken.Kind.PlainTextToken)).Length=o,i.RelativeStart=t,i);e.add(u)}else o=0;var d=n.substr(o,s-o|0),c=Kusto.Data.IntelliSense.CslCommand.StartsWithAlpha(d)?Kusto.Data.IntelliSense.CslCommandToken.Kind.UnknownToken:Kusto.Data.IntelliSense.CslCommandToken.Kind.PlainTextToken,g=((i=new Kusto.Data.IntelliSense.CslCommandToken(d,this.RelativeStart,c)).Length=d.length,i.RelativeStart=t+o|0,i);if(e.add(g),sl.Start){s.v&&(l.End=l.End-1|0);var u=1+(l.End-l.Start|0)|0;l.Text=e.substr(l.Start,u),r.add(l)}return l.End},ReadTill:function(e,t,n,i,r){r.v=!0;for(var o=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).ctor);te.length?e.length:t},ReadVerbatimTill:function(e,t,n,i){i.v=!0;for(var r=0;t=e.Start&&u<=e.End}).any(),g=n[Bridge.global.System.Array.index(u,n)],m=0===u||Bridge.global.System.Char.isWhiteSpace(String.fromCharCode(n[Bridge.global.System.Array.index(u-1|0,n)])),h=!0;if(null!=a&&((124===g||59===g)&&!d||c||u===(n.length-1|0))){u===(n.length-1|0)||59===g?(a.End=u,h=!1):a.End=u-1|0;var p=1+(a.End-a.Start|0)|0;p>1&&(a.Text=e.substr(a.Start,p),this.m_commandPartsPositions.add(a)),a=null}if(null==a&&!c&&h&&((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=u,t.End=u,a=t),!d&&Bridge.global.System.Array.contains(Kusto.Data.IntelliSense.CslCommandIndexer.s_matchingBrackets.getKeys(),g,Bridge.global.System.Char))if(Bridge.global.System.Linq.Enumerable.from(l).any()&&l.Peek().Item1===g){var f=l.Pop(),y=((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=f.Item2,t.End=u,t);y.Text=e.substr(y.Start,1+(y.End-y.Start|0)|0),this.m_bracketPartsPositions.add(y)}else l.Push({Item1:Kusto.Data.IntelliSense.CslCommandIndexer.s_matchingBrackets.get(g),Item2:u});switch(r){case Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenStart:!d&&(this.IsPartOfTheToken(g)&&!this.IsTokenTerminator(g)||m&&this.IsTokenStarter(g))&&(o=new Bridge.global.System.Text.StringBuilder,(t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=u,t.End=u,s=t,o.append(String.fromCharCode(g)),r=Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenEnd);break;case Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenEnd:var S=!1;!d&&this.IsPartOfTheToken(g)?this.IsTokenTerminator(g)?(s.TokenTerminator=g,S=!0):(o.append(String.fromCharCode(g)),s.End=u):S=!0,(S||u===(n.length-1|0))&&(s.Text=o.toString(),this.AddTokenPosition(s),r=Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenStart)}}},GetTokenLookupSkipRanges:function(t){var n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Object).ctor);n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_stringLiteralsPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_clientDirectivesTokenPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_queryParametersPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f3);for(var i=0,r=Bridge.global.System.Linq.Enumerable.from(n).firstOrDefault(null,null),o=Bridge.global.System.Array.init(t,!1,Bridge.global.System.Boolean),s=0;s=r.Item1&&(o[Bridge.global.System.Array.index(s,o)]=!0),r.Item2===s&&(r=Bridge.global.System.Linq.Enumerable.from(n).elementAtOrDefault(i=i+1|0,null));return o},GetCommandPartsPositions:function(){return this.m_commandPartsPositions},GetCommentsPositions:function(){return this.m_commentTokenPositions},GetClientDirectivesPositions:function(){return this.m_clientDirectivesTokenPositions},GetStringLiteralsPositions:function(){return this.m_stringLiteralsPositions},GetQueryParametersPositions:function(){return this.m_queryParametersPositions},GetBracketsPositions:function(){return this.m_bracketPartsPositions},GetUnrecognizedTokenPositions:function(t){return Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.getValues()).selectMany(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f4).except(t)},GetTokenPositionsInRange:function(e,t,n){var i,r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e))return r;i=Bridge.getEnumerator(e,Bridge.global.System.String);try{for(;i.moveNext();){var o=i.Current;if(!Bridge.global.System.String.isNullOrEmpty(o)&&this.m_tokensAndPositions.containsKey(o)){var s=Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.get(o)).where(function(e){return e.Start>=t&&e.End<=n});Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition,s)&&r.AddRange(s)}}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return r},GetAllTokensSortedByPosition:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition)),this.m_tokensAndPositions)?null:Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions).selectMany(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f5).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f6)},GetAllTokenPositions:function(e,t){var n;void 0===t&&(t=0);var i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e))return i;n=Bridge.getEnumerator(e,Bridge.global.System.String);try{for(;n.moveNext();){var r=n.Current;this.m_tokensAndPositions.containsKey(r)&&i.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.get(r)).where(function(e){return e.TokenTerminator===t}))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}return i},IsPartOfTheToken:function(e){return Bridge.global.System.Char.isDigit(e)||Bridge.global.System.Char.isLetter(e)||null!=this.AntiTokenizers&&this.AntiTokenizers.contains(e)},IsTokenTerminator:function(e){return null!=this.TokenTerminators&&this.TokenTerminators.contains(e)},IsTokenStarter:function(e){return null!=this.TokenStarters&&Bridge.global.System.Array.contains(this.TokenStarters,e,Bridge.global.System.Char)},DetectCommentsAndStringLiterals:function(e){Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_queryParametersRegexCollection,this.m_queryParametersPositions),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None(Bridge.global.Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition,this.m_queryParametersPositions)?this.DetectCommentsAndStringLiterals_Simple(e):this.DetectCommentsAndStringLiterals_Complex(e)},DetectCommentsAndStringLiterals_Simple:function(e){for(var t=Bridge.global.System.String.toCharArray(e,0,e.length),n=0,i=0;il.Start){a.v&&(l.End=l.End-1|0);var u=1+(l.End-l.Start|0)|0;l.Text=e.substr(l.Start,u),this.m_stringLiteralsPositions.add(l)}return l.End},DetectCommentsAndStringLiterals_Complex:function(e){var t;Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_commentRegexCollection,this.m_commentTokenPositions),Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_clientDirectivesRegexCollection,this.m_clientDirectivesTokenPositions);for(var n=this.m_queryParametersPositions.Count-1|0;n>=0;n=n-1|0){var i={v:this.m_queryParametersPositions.getItem(n)};Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,i)).any()&&this.m_queryParametersPositions.removeAt(n)}Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_stringLiteralsRegexCollection,this.m_stringLiteralsPositions);for(var r=this.m_stringLiteralsPositions.Count-1|0;r>=0;r=r-1|0){var o={v:this.m_stringLiteralsPositions.getItem(r)};Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,o)).any()&&this.m_stringLiteralsPositions.removeAt(r)}for(var s=this.m_queryParametersPositions.Count-1|0;s>=0;s=s-1|0){var a={v:this.m_queryParametersPositions.getItem(s)},l=Bridge.global.System.Linq.Enumerable.from(this.m_stringLiteralsPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,a)).firstOrDefault(null,null);if(null!=l){var u=((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=a.v.End+1|0,t.End=l.End,t.Text=l.Text.substr(1+(a.v.End-l.Start|0)|0),t);l.End=a.v.Start-1|0,l.Text=l.Text.substr(0,l.Length),this.m_stringLiteralsPositions.add(u)}}},AddTokenPosition:function(e){this.m_tokensAndPositions.containsKey(e.Text)||this.m_tokensAndPositions.add(e.Text,new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor)),this.m_tokensAndPositions.get(e.Text).add(e)}}}),Bridge.ns("Kusto.Data.IntelliSense.CslCommandIndexer",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslCommandIndexer,{f1:function(e){return e.add(40,41),e.add(41,40),e.add(91,93),e.add(93,91),e.add(123,125),e.add(125,123),e},f2:function(e){return{Item1:e.Start,Item2:e.End}},f3:function(e,t){return Bridge.compare(e.Item1,t.Item1)},f4:function(e){return e},f5:function(e){return e.value},f6:function(e){return e.Start}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandIndexer.State",{$kind:"nested enum",statics:{fields:{LookingForTokenStart:0,LookingForTokenEnd:1,InsideComment:2,InsideStringLiteral:3}}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition",{$kind:"nested class",props:{Text:null,Start:0,End:0,TokenTerminator:0,Length:{get:function(){return 1+(this.End-this.Start|0)|0}}},ctors:{ctor:function(){this.$initialize(),this.TokenTerminator=0}}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandParser",{statics:{fields:{ControlCommandsTokens:null,CslCommandsTokens:null,ChartRenderTypesTokens:null,ChartRenderKindTokens:null,SubOperatorsTokens:null,JoinKindTokens:null,ReduceByKindTokens:null,DataTypesTokens:null,ScalarFunctionsDateTimeTokens:null,ScalarFunctionsNoDateTimeTokens:null,SingleParameterFunctionsDateTimeTokens:null,ZeroParameterFunctionsNoDateTimeTokens:null,SingleParameterFunctionsNoDateTimeTokens:null,IntrinsicFunctionTokens:null,TwoParameterFunctionsTokens:null,ThreeParameterFunctionsTokens:null,ManyParametersFunctionsTokens:null,PromotedOperatorCommandTokens:null,ClientDirectiveTokens:null,OperatorCommandTokens:null,SummarizeAggregationSingleParameterTokens:null,SummarizeAggregationTwoParametersTokens:null,SummarizeAggregationThreeParametersTokens:null,SummarizeAggregationManyParametersTokens:null,MakeSeriesAggregationTokens:null,PluginTokens:null,DatetimeFunctionsTokens:null,ScalarFunctionsTokens:null,SingleParameterFunctionsTokens:null,SummarizeAggregationTokens:null,SummarizeAggregationAliasesTokens:null,SortedSummarizeAggregators:null,SortedMakeSeriesAggregationTokens:null,SortedDatetimeFunctions:null,SortedExtendFunctions:null,FunctionsTokens:null,SortedEvaluateFunctions:null,s_isCommentLineRegex:null},ctors:{init:function(){this.ControlCommandsTokens=Bridge.global.System.Array.init([".add",".alter",".alter-merge",".attach",".append",".create",".create-merge",".create-set",".create-or-alter",".define",".detach",".delete",".drop",".drop-pretend",".dup-next-ingest",".dup-next-failed-ingest",".ingest",".export",".load",".move",".purge",".purge-cleanup",".remove",".replace",".save",".set",".set-or-append",".set-or-replace",".show",".rename","async","data","into","ifnotexists","whatif","compressed","monitoring","metadata","folder","docstring","details","hot","records","until","as","csv","tsv","json","sql","policy","encoding","retention","merge","policies","update","ingestiontime","caching","querythrottling","sharding","callout","querylimit","restricted_view_access","softdelete","harddelete","rowstore","rowstores","seal","writeaheadlog","streamingingestion","follower"],Bridge.global.System.String),this.CslCommandsTokens=Bridge.global.System.Array.init(["set","let","restrict","access","alias","pattern","declare","query_parameters"],Bridge.global.System.String),this.ChartRenderTypesTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["columnchart","barchart","piechart","timechart","anomalychart","linechart","ladderchart","pivotchart","areachart","stackedareachart","scatterchart","timepivot","timeline"],Bridge.global.System.String)).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f1).ToArray(Bridge.global.System.String),this.ChartRenderKindTokens=Bridge.global.System.Array.init(["default","stacked","stacked100","unstacked"],Bridge.global.System.String),this.SubOperatorsTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["like","notlike","contains","notcontains","!contains","containscs","!containscs","startswith","!startswith","has","!has","hasprefix","!hasprefix","hassuffix","!hassuffix","matches","regex","in","!in","endswith","!endswith","between","!between","extent","database","diagnostics","admins","basicauth","cache","capacity","cluster","databases","extents","journal","memory","extentcontainers","viewers","unrestrictedviewers","tags","prettyname","blockedprincipals","operations","password","principal","principals","settings","schema","table","tables","user","users","ingestors","version","roles","fabric","locks","services","nodes","commands","queries","query","function","functions","by","on","of","true","false","and","or","asc","desc","nulls","last","first","with","withsource","kind","flags","from","to","step","ingestion","failures","mapping","mappings","geneva","eventhub","source","sources","types","application","period","reason","title"],Bridge.global.System.String)).union(Kusto.Data.IntelliSense.CslCommandParser.ChartRenderTypesTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ChartRenderKindTokens).distinct().ToArray(Bridge.global.System.String),this.JoinKindTokens=Bridge.global.System.Array.init(["anti","inner","innerunique","fullouter","leftanti","leftantisemi","leftouter","leftsemi","rightanti","rightantisemi","rightsemi","rightouter"],Bridge.global.System.String),this.ReduceByKindTokens=Bridge.global.System.Array.init(["mining"],Bridge.global.System.String),this.DataTypesTokens=Bridge.global.System.Array.init(["date","time","timespan","datetime","int","long","real","float","string","bool","boolean","double","dynamic","decimal"],Bridge.global.System.String),this.ScalarFunctionsDateTimeTokens=Bridge.global.System.Array.init(["now","ago","datetime","ingestion_time"],Bridge.global.System.String),this.ScalarFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["time","timespan","dynamic","decimal"],Bridge.global.System.String),this.SingleParameterFunctionsDateTimeTokens=Bridge.global.System.Array.init(["todatetime","between","!between"],Bridge.global.System.String),this.ZeroParameterFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["row_number","extent_id","extent_tags","pi","pack_all"],Bridge.global.System.String),this.SingleParameterFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["strlen","tostring","toupper","tolower","typeof","reverse","parsejson","parse_json","parse_xml","tobool","toboolean","todynamic","toobject","toint","tolong","toguid","todouble","toreal","totimespan","tohex","todecimal","isempty","isnotempty","isnull","isnotnull","isnan","isinf","isfinite","dayofweek","dayofmonth","dayofyear","weekofyear","monthofyear","sqrt","rand","log","log10","log2","exp","exp2","exp10","abs","degrees","radians","sign","sin","cos","tan","asin","acos","atan","cot","getmonth","getyear","arraylength","gettype","cursor_after","gamma","loggamma","dcount_hll","parse_ipv4","parse_url","parse_version","parse_urlquery","url_encode","url_decode","binary_not","not","toscalar","materialize","series_stats","series_fit_line","series_fit_2lines","series_stats_dynamic","series_fit_line_dynamic","series_fit_2lines_dynamic","base64_encodestring","base64_decodestring","hash_sha256","ceiling"],Bridge.global.System.String),this.IntrinsicFunctionTokens=Bridge.global.System.Array.init(["cluster","database","table"],Bridge.global.System.String),this.TwoParameterFunctionsTokens=Bridge.global.System.Array.init(["bin","columnifexists","floor","countof","hash","round","pow","binary_and","binary_or","binary_xor","binary_shift_left","binary_shift_right","datepart","datetime_part","repeat","series_outliers","rank_tdigest","percentrank_tdigest","trim","trim_start","trim_end","startofday","startofweek","startofmonth","startofyear","endofday","endofweek","endofmonth","endofyear","series_fill_backward","series_fill_forward","atan2","format_datetime","format_timespan","strrep","strcat_array","parse_user_agent","strcmp"],Bridge.global.System.String),this.ThreeParameterFunctionsTokens=Bridge.global.System.Array.init(["iff","iif","range","replace","translate","series_iir","bin_at","series_fill_const","datetime_diff","datetime_add"],Bridge.global.System.String),this.ManyParametersFunctionsTokens=Bridge.global.System.Array.init(["extract","extractjson","extractall","strcat","strcat_delim","substring","indexof","split","case","coalesce","max_of","min_of","percentile_tdigest","zip","pack","pack_array","array_concat","welch_test","series_fir","series_periods_detect","prev","next","tdigest_merge","hll_merge","series_fill_linear","series_periods_validate","datatable","make_datetime","make_timespan"],Bridge.global.System.String),this.PromotedOperatorCommandTokens=Bridge.global.System.Array.init(["where","count","extend","join","limit","order","project","project-away","project-rename","render","sort","summarize","distinct","take","top","top-nested","top-hitters","union","mvexpand","reduce","evaluate","parse","sample","sample-distinct","make-series","getschema","serialize","invoke"],Bridge.global.System.String),this.ClientDirectiveTokens=Bridge.global.System.Array.init(["connect"],Bridge.global.System.String),this.OperatorCommandTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["filter","fork","facet","range","consume","find","search","print"],Bridge.global.System.String)).union(Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationSingleParameterTokens=Bridge.global.System.Array.init(["count","countif","dcount","dcountif","sum","min","max","avg","any","makelist","makeset","stdev","stdevif","varianceif","variance","buildschema","hll","hll_merge","tdigest","tdigest_merge"],Bridge.global.System.String),this.SummarizeAggregationTwoParametersTokens=Bridge.global.System.Array.init(["percentile","sumif"],Bridge.global.System.String),this.SummarizeAggregationThreeParametersTokens=Bridge.global.System.Array.init(["percentilew"],Bridge.global.System.String),this.SummarizeAggregationManyParametersTokens=Bridge.global.System.Array.init(["arg_min","arg_max","percentilesw_array","percentilesw","percentiles_array","percentiles"],Bridge.global.System.String),this.MakeSeriesAggregationTokens=Bridge.global.System.Array.init(["count","countif","dcount","dcountif","sum","min","max","avg","any","stdev","stdevp","variance","variancep","sumif"],Bridge.global.System.String),this.PluginTokens=Bridge.global.System.Array.init(["autocluster","diffpatterns","basket","extractcolumns"],Bridge.global.System.String),this.DatetimeFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsDateTimeTokens).ToArray(Bridge.global.System.String),this.ScalarFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsNoDateTimeTokens).ToArray(Bridge.global.System.String),this.SingleParameterFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsNoDateTimeTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationSingleParameterTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationManyParametersTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationThreeParametersTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTwoParametersTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationAliasesTokens=Bridge.global.System.Array.init(["argmax","argmin"],Bridge.global.System.String),this.SortedSummarizeAggregators=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedMakeSeriesAggregationTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.MakeSeriesAggregationTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedDatetimeFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.DatetimeFunctionsTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedExtendFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ZeroParameterFunctionsNoDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.FunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ZeroParameterFunctionsNoDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).union(Kusto.Data.IntelliSense.CslCommandParser.IntrinsicFunctionTokens).ToArray(Bridge.global.System.String),this.SortedEvaluateFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.PluginTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).ToArray(Bridge.global.System.String),this.s_isCommentLineRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*//",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions)}},methods:{IsAdminCommand$1:function(e,t){return Kusto.Data.IntelliSense.CslCommandParser.IsStartingWithPrefix(e,".",t)},IsAdminCommand:function(e){return Kusto.Data.IntelliSense.CslCommandParser.IsAdminCommand$1(e,{})},IsStartingWithPrefix:function(e,t,n){n.v=e.trim();for(var i=Bridge.global.System.String.split(e,Bridge.global.System.Array.init(["\n"],Bridge.global.System.String),null,1),r=0;r0&&(n.v=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(i).skip(r)).join("\n").trim()),!0;if(!Kusto.Data.IntelliSense.CslCommandParser.s_isCommentLineRegex.isMatch(o))return r>0&&(n.v=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(i).skip(r)).join("\n").trim()),!1}return!1},IsClientDirective:function(e,t){return Kusto.Data.IntelliSense.CslCommandParser.IsStartingWithPrefix(e,"#",t)}}},fields:{m_hashedCommands:null,m_rulesProvider:null},props:{Results:null},ctors:{ctor:function(){this.$initialize(),this.Reset()}},methods:{Reset:function(){this.m_hashedCommands=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.CslCommand)),this.Results=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand).ctor)},Parse:function(t,n,i){var r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand).ctor);Bridge.referenceEquals(this.m_rulesProvider,t)||(this.Reset(),this.m_rulesProvider=t);var o=Kusto.Data.IntelliSense.CslCommandParser.CslCommandTokenizer.GetCommands(n);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommand,o))for(var s=0;s *rightRange*) evaluates to `true`.","**Filtering numeric values using '!between' operator** \r\n\r\n\r\n```\r\nrange x from 1 to 10 step 1\r\n| where x !between (5 .. 9)\r\n```\r\n\r\n|x|\r\n|---|\r\n|1|\r\n|2|\r\n|3|\r\n|4|\r\n|10|\r\n\r\n**Filtering datetime using 'between' operator** \r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| where StartTime !between (datetime(2007-07-27) .. datetime(2007-07-30))\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|58590|\r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| where StartTime !between (datetime(2007-07-27) .. 3d)\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|58590|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_notbetweenoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"abs","Calculates the absolute value of the input.","**Syntax**\r\n\r\n`abs(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: An integer or real number, or a timespan value.\r\n\r\n**Returns**\r\n\r\n* Absolute value of x.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_abs_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"acos","Returns the angle whose cosine is the specified number (the inverse operation of [`cos()`](query_language_cosfunction.md)) .","**Syntax**\r\n\r\n`acos(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number in range [-1, 1].\r\n\r\n**Returns**\r\n\r\n* The value of the arc cosine of `x`\r\n* `null` if `x` < -1 or `x` > 1","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_acosfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ago","Subtracts the given timespan from the current UTC clock time.","ago(1h)\r\n ago(1d)\r\n\r\nLike `now()`, this function can be used multiple times\r\nin a statement and the UTC clock time being referenced will be the same\r\nfor all instantiations.\r\n\r\n**Syntax**\r\n\r\n`ago(`*a_timespan*`)`\r\n\r\n**Arguments**\r\n\r\n* *a_timespan*: Interval to subtract from the current UTC clock time\r\n(`now()`).\r\n\r\n**Returns**\r\n\r\n`now() - a_timespan`","All rows with a timestamp in the past hour:\r\n\r\n\r\n```\r\nT | where Timestamp > ago(1h)\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_agofunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"any","Returns random non-empty value from the specified expression values.",'This is useful, for example, when some column has a large number of values\r\n(e.g., an "error text" column) and you want to sample that column once per a unique value of the compound group key.\r\n\r\nNote that there are *no guarantees* about which record will be returned; the algorithm for selecting\r\nthat record is undocumented and one should not assume it is stable.\r\n\r\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` `any(` (*Expr* [`,` *Expr2* ...] | `*`) `)` ...\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *Expr2* .. *ExprN*: Additional expressions that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nRandomly selects one row of the group and returns the value of the specified expression.\r\n\r\nWhen used used with a single parameter (single column) - `any()` will return a non-null value if such present.',"Show Random Continent:\r\n\r\n Continents | summarize any(Continent)\r\n\r\n![](./images/aggregations/any1.png)\r\n\r\n\r\nShow all the details for a random row:\r\n\r\n Continents | summarize any(*) \r\n\r\n![](./images/aggregations/any2.png)\r\n\r\n\r\nShow all the details for each random continent:\r\n\r\n Continents | summarize any(*) by Continent\r\n\r\n![](./images/aggregations/any3.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_any_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"arg_max","Finds a row in the group that maximises *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` [`(`*NameExprToMaximize* `,` *NameExprToReturn* [`,` ...] `)=`] `arg_max` `(`*ExprToMaximize*, `*` | *ExprToReturn* [`,` ...]`)`\r\n\r\n**Arguments**\r\n\r\n* *ExprToMaximize*: Expression that will be used for aggregation calculation. \r\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMaximize* is\r\n maximum. Expression to return may be a wildcard (*) to return all columns of the input table.\r\n* *NameExprToMaximize*: An optional name for the result column representing *ExprToMaximize*.\r\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\r\n\r\n**Returns**\r\n\r\nFinds a row in the group that maximises *ExprToMaximize*, and \r\nreturns the value of *ExprToReturn* (or `*` to return the entire row).","See examples for [arg_min()](query_language_arg_min_aggfunction.md) aggregation function\r\n\r\n**Notes**\r\n\r\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\r\nthe input to the `summarize` operator will be restricted to include only the columns\r\nthat are used following that operator, as the optimization rule to automatically \r\nproject-away such columns is currently not implemented. In other words, make sure\r\nto introduce a projection similar to the marked line below:\r\n\r\n\x3c!--- csl ---\x3e\r\n```\r\ndatatable(a:string, b:string, c:string, d:string) [...]\r\n| project a, b, c // <-- Add this projection to remove d\r\n| summarize arg_max(a, *)\r\n| project B=b, C=c\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arg_max_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"arg_min","Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` [`(`*NameExprToMinimize* `,` *NameExprToReturn* [`,` ...] `)=`] `arg_min` `(`*ExprToMinimize*, `*` | *ExprToReturn* [`,` ...]`)`\r\n\r\n**Arguments**\r\n\r\n* *ExprToMinimize*: Expression that will be used for aggregation calculation. \r\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMinimize* is\r\n minimum. Expression to return may be a wildcard (*) to return all columns of the input table.\r\n* *NameExprToMinimize*: An optional name for the result column representing *ExprToMinimize*.\r\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\r\n\r\n**Returns**\r\n\r\nFinds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","Show cheapest supplier of each product:\r\n\r\n Supplies | summarize arg_min(Price, Supplier) by Product\r\n\r\nShow all the details, not just the supplier name:\r\n\r\n Supplies | summarize arg_min(Price, *) by Product\r\n\r\nFind the southernmost city in each continent, with its country:\r\n\r\n PageViewLog \r\n | summarize (latitude, min_lat_City, min_lat_country)=arg_min(latitude, City, country) \r\n by continent\r\n\r\n![](./images/aggregations/argmin.png)\r\n \r\n **Notes**\r\n\r\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\r\nthe input to the `summarize` operator will be restricted to include only the columns\r\nthat are used following that operator, as the optimization rule to automatically \r\nproject-away such columns is currently not implemented. In other words, make sure\r\nto introduce a projection similar to the marked line below:\r\n\r\n\x3c!--- csl ---\x3e\r\n```\r\ndatatable(a:string, b:string, c:string, d:string) [...]\r\n| project a, b, c // <-- Add this projection to remove d\r\n| summarize arg_min(a, *)\r\n| project B=b, C=c\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arg_min_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"argmax","Finds a row in the group that maximises *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` [`(`*NameExprToMaximize* `,` *NameExprToReturn* [`,` ...] `)=`] `argmax` `(`*ExprToMaximize*, `*` | *ExprToReturn* [`,` ...]`)`\r\n\r\n**Arguments**\r\n\r\n* *ExprToMaximize*: Expression that will be used for aggregation calculation. \r\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMaximize* is\r\n maximum. Expression to return may be a wildcard (*) to return all columns of the input table.\r\n* *NameExprToMaximize*: An optional name for the result column representing *ExprToMaximize*.\r\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\r\n\r\n**Returns**\r\n\r\nFinds a row in the group that maximises *ExprToMaximize*, and \r\nreturns the value of *ExprToReturn* (or `*` to return the entire row).","See examples for [argmin()](query_language_argmin_aggfunction.md) aggregation function\r\n\r\n**Notes**\r\n\r\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\r\nthe input to the `summarize` operator will be restricted to include only the columns\r\nthat are used following that operator, as the optimization rule to automatically \r\nproject-away such columns is currently not implemented. In other words, make sure\r\nto introduce a projection similar to the marked line below:\r\n\r\n\x3c!--- csl ---\x3e\r\n```\r\ndatatable(a:string, b:string, c:string, d:string) [...]\r\n| project a, b, c // <-- Add this projection to remove d\r\n| summarize argmax(a, *)\r\n| project B=max_a_b, C=max_a_c\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_argmax_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"argmin","Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` [`(`*NameExprToMinimize* `,` *NameExprToReturn* [`,` ...] `)=`] `argmin` `(`*ExprToMinimize*, `*` | *ExprToReturn* [`,` ...]`)`\r\n\r\n**Arguments**\r\n\r\n* *ExprToMinimize*: Expression that will be used for aggregation calculation. \r\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMinimize* is\r\n minimum. Expression to return may be a wildcard (*) to return all columns of the input table.\r\n* *NameExprToMinimize*: An optional name for the result column representing *ExprToMinimize*.\r\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\r\n\r\n**Returns**\r\n\r\nFinds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","Show cheapest supplier of each product:\r\n\r\n Supplies | summarize argmin(Price, Supplier) by Product\r\n\r\nShow all the details, not just the supplier name:\r\n\r\n Supplies | summarize argmin(Price, *) by Product\r\n\r\nFind the southernmost city in each continent, with its country:\r\n\r\n PageViewLog \r\n | summarize (latitude, City, country)=argmin(latitude, City, country) \r\n by continent\r\n\r\n![](./images/aggregations/argmin.png)\r\n \r\n **Notes**\r\n\r\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\r\nthe input to the `summarize` operator will be restricted to include only the columns\r\nthat are used following that operator, as the optimization rule to automatically \r\nproject-away such columns is currently not implemented. In other words, make sure\r\nto introduce a projection similar to the marked line below:\r\n\r\n\x3c!--- csl ---\x3e\r\n```\r\ndatatable(a:string, b:string, c:string, d:string) [...]\r\n| project a, b, c // <-- Add this projection to remove d\r\n| summarize argmin(a, *)\r\n| project B=max_a_b, C=max_a_c\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_argmin_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"array_concat","Concatenates a number of dynamic arrays to a single array.","**Syntax**\r\n\r\n`array_concat(`*arr1*`[`,` *arr2*, ...]`)`\r\n\r\n**Arguments**\r\n\r\n* *arr1...arrN*: Input arrays to be concatenated into a dynamic array. All arguments must be dynamic arrays (see [pack_array](query_language_packarrayfunction.md)). \r\n\r\n**Returns**\r\n\r\nDynamic array of arrays with arr1, arr2, ... , arrN.","```\r\nrange x from 1 to 3 step 1\r\n| extend y = x * 2\r\n| extend z = y * 2\r\n| extend a1 = pack_array(x,y,z), a2 = pack_array(x, y)\r\n| project array_concat(a1, a2)\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|[1,2,4,1,2]|\r\n|[2,4,8,2,4]|\r\n|[3,6,12,3,6]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arrayconcatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"array_length","Calculates the number of elements in a dynamic array.","**Syntax**\r\n\r\n`array_length(`*array*`)`\r\n\r\n**Arguments**\r\n\r\n* *array*: A `dynamic` value.\r\n\r\n**Returns**\r\n\r\nThe number of elements in *array*, or `null` if *array* is not an array.","```\r\nprint array_length(parsejson('[1, 2, 3, \"four\"]')) == 4\r\n\r\nprint array_length(parsejson('[8]')) == 1\r\n\r\nprint array_length(parsejson('[{}]')) == 1\r\n\r\nprint array_length(parsejson('[]')) == 0\r\n\r\nprint array_length(parsejson('{}')) == null\r\n\r\nprint array_length(parsejson('21')) == null\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arraylengthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"As","`As` operator temporarily binds a name to the operator's input tabular expression.","**Syntax**\r\n\r\n`T | as *name*`\r\n\r\n**Arguments**\r\n\r\n* *T*: A tabular expression.\r\n* *name*: A temporary name for the tabular expression. \r\n\r\n**Notes**\r\n* The name given by `as` will be used in the `withsource=` column of [union](./query_language_unionoperator.md), the `source_` column of [find](./query_language_findoperator.md) and the `$table` column of [search](./query_language_searchoperator.md)\r\n* The tabular expression named using 'as' in a [join](./query_language_joinoperator.md)'s 'left side' can be used when the [join](./query_language_joinoperator.md)'s 'right side'",'```\r\n// 1. In the following 2 example the union\'s generated TableName column will consist of \'T1\' and \'T2\'\r\nrange x from 1 to 10 step 1 \r\n| as T1 \r\n| union withsource=TableName T2\r\n\r\nunion withsource=TableName (range x from 1 to 10 step 1 | as T1), T2\r\n\r\n// 2. In the following example, the \'left side\' of the join will be: \r\n// MyLogTable filtered by type == "Event" and Name == "Start"\r\n// and the \'right side\' of the join will be: \r\n// MyLogTable filtered by type == "Event" and Name == "Stop"\r\nMyLogTable \r\n| where type == "Event"\r\n| as T\r\n| where Name == "Start"\r\n| join (\r\n T\r\n | where Name == "Stop"\r\n) on ActivityId\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_asoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"asin","Returns the angle whose sine is the specified number (the inverse operation of [`sin()`](query_language_sinfunction.md)) .","**Syntax**\r\n\r\n`asin(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number in range [-1, 1].\r\n\r\n**Returns**\r\n\r\n* The value of the arc sine of `x`\r\n* `null` if `x` < -1 or `x` > 1","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_asinfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"atan","Returns the angle whose tangent is the specified number (the inverse operation of [`tan()`](query_language_tanfunction.md)) .","**Syntax**\r\n\r\n`atan(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The value of the arc tangent of `x`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_atanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"atan2","Calculates the angle, in radians, between the positive x-axis and the ray from the origin to the point (y, x).","**Syntax**\r\n\r\n`atan2(`*y*`,`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: X coordinate (a real number).\r\n* *y*: Y coordinate (a real number).\r\n\r\n**Returns**\r\n\r\n* The angle, in radians, between the positive x-axis and the ray from the origin to the point (y, x).","```\r\nprint atan2_0 = atan2(1,1) // Pi / 4 radians (45 degrees)\r\n| extend atan2_1 = atan2(0,-1) // Pi radians (180 degrees)\r\n| extend atan2_2 = atan2(-1,0) // - Pi / 2 radians (-90 degrees)\r\n\r\n```\r\n\r\n|atan2_0|atan2_1|atan2_2|\r\n|---|---|---|\r\n|0.785398163397448|3.14159265358979|-1.5707963267949|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_atan2function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"avg","Calculates the average of *Expr* across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `avg(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe average value of *Expr* across the group.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_avg_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"base64_decodestring","Decodes a base64 string to a UTF-8 string","**Syntax**\r\n\r\n`base64_decodestring(`*String*`)`\r\n\r\n**Arguments**\r\n\r\n* *String*: Input string to be decoded from base64 to UTF8-8 string.\r\n\r\n**Returns**\r\n\r\nReturns UTF-8 string decoded from base64 string.",'```\r\nrange x from 1 to 1 step 1\r\n| project base64_decodestring("S3VzdG8=")\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|Kusto|\r\n\r\nTrying to decode a base64 string which was generated from invalid UTF-8 encoding will return null:\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| project base64_decodestring("U3RyaW5n0KHR0tGA0L7Rh9C60LA=")\r\n```\r\n\r\n|Column1|\r\n|---|\r\n||',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_base64decodestringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"base64_encodestring","Encodes a string as base64 string","**Syntax**\r\n\r\n`base64_encodestring(`*String*`)`\r\n\r\n**Arguments**\r\n\r\n* *String*: Input string to be encoded as base64 string.\r\n\r\n\r\n**Returns**\r\n\r\nReturns the string encoded as base64 string.",'```\r\nrange x from 1 to 1 step 1\r\n| project base64_encodestring("Kusto")\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|S3VzdG8=|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_base64encodestringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"between","Matches the input that is inside the inclusive range.","Table1 | where Num1 between (1 .. 10)\r\n Table1 | where Time between (datetime(2017-01-01) .. datetime(2017-01-01))\r\n\r\n`between` can operate on any numeric, datetime, or timespan expression.\r\n \r\n**Syntax**\r\n\r\n*T* `|` `where` *expr* `between` `(`*leftRange*` .. `*rightRange*`)` \r\n \r\nIf *expr* expression is datetime - another syntactic sugar syntax is provided:\r\n\r\n*T* `|` `where` *expr* `between` `(`*leftRangeDateTime*` .. `*rightRangeTimespan*`)` \r\n\r\n**Arguments**\r\n\r\n* *T* - The tabular input whose records are to be matched.\r\n* *expr* - the expression to filter.\r\n* *leftRange* - expression of the left range (inclusive).\r\n* *rightRange* - expression of the rihgt range (inclusive).\r\n\r\n**Returns**\r\n\r\nRows in *T* for which the predicate of (*expr* >= *leftRange* and *expr* <= *rightRange*) evaluates to `true`.","**Filtering numeric values using 'between' operator** \r\n\r\n\r\n```\r\nrange x from 1 to 100 step 1\r\n| where x between (50 .. 55)\r\n```\r\n\r\n|x|\r\n|---|\r\n|50|\r\n|51|\r\n|52|\r\n|53|\r\n|54|\r\n|55|\r\n\r\n**Filtering datetime using 'between' operator** \r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| where StartTime between (datetime(2007-07-27) .. datetime(2007-07-30))\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|476|\r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| where StartTime between (datetime(2007-07-27) .. 3d)\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|476|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_betweenoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin","Rounds values down to an integer multiple of a given bin size.",'Used a lot in the [`summarize by ...`](./query_language_summarizeoperator.md) query. \r\nIf you have a scattered set of values, they will be grouped into a smaller set of specific values.\r\n\r\nAlias to `floor()` function.\r\n\r\n**Syntax**\r\n\r\n`bin(`*value*`,`*roundTo*`)`\r\n\r\n**Arguments**\r\n\r\n* *value*: A number, date, or timespan. \r\n* *roundTo*: The "bin size". A number, date or timespan that divides *value*. \r\n\r\n**Returns**\r\n\r\nThe nearest multiple of *roundTo* below *value*. \r\n \r\n `(toint((value/roundTo))) * roundTo`',"Expression | Result\r\n---|---\r\n`bin(4.5, 1)` | `4.0`\r\n`bin(time(16d), 7d)` | `14d`\r\n`bin(datetime(1970-05-11 13:45:07), 1d)`| `datetime(1970-05-11)`\r\n\r\n\r\nThe following expression calculates a histogram of durations,\r\nwith a bucket size of 1 second:\r\n\r\n\r\n```\r\nT | summarize Hits=count() by bin(Duration, 1s)\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin_at",'Rounds values down to a fixed-size "bin", with control over the bin\'s starting point.\r\n(See also [`bin function`](./query_language_binfunction.md).)','**Syntax**\r\n\r\n`bin_at` `(`*Expression*`,` *BinSize*`, ` *FixedPoint*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expression*: A scalar expression of a numeric type (including `datetime` and `timespan`)\r\n indicating the value to round.\r\n* *BinSize*: A scalar constant of the same type as *Expression* indicating\r\n the size of each bin. \r\n* *FixedPoint*: A scalar constant of the same type as *Expression* indicating\r\n one value of *Expression* which is a "fixed point" (that is, a value `fixed_point`\r\n for which `bin_at(fixed_point, bin_size, fixed_point) == fixed_point`.)\r\n\r\n**Returns**\r\n\r\nThe nearest multiple of *BinSize* below *Expression*, shifted so that *FixedPoint*\r\nwill be translated into itself.','|Expression |Result |Comments |\r\n|------------------------------------------------------------------------------|---------------------------------|---------------------------|\r\n|`bin_at(6.5, 2.5, 7)` |`4.5` ||\r\n|`bin_at(time(1h), 1d, 12h)` |`-12h` ||\r\n|`bin_at(datetime(2017-05-15 10:20:00.0), 1d, datetime(1970-01-01 12:00:00.0))`|`datetime(2017-05-14 12:00:00.0)`|All bins will be at noon |\r\n|`bin_at(datetime(2017-05-17 10:20:00.0), 7d, datetime(2017-06-04 00:00:00.0))`|`datetime(2017-05-14 00:00:00.0)`|All bins will be on Sundays|\r\n\r\n\r\nIn the following example, notice that the `"fixed point"` arg is returned as one of the bins and the other bins are aligned to it based on the `bin_size`. Also note that each datetime bin represents the starting time of that bin:\r\n\r\n\r\n```\r\n\r\ndatatable(Date:datetime, Num:int)[\r\ndatetime(2018-02-24T15:14),3,\r\ndatetime(2018-02-23T16:14),4,\r\ndatetime(2018-02-26T15:14),5]\r\n| summarize sum(Num) by bin_at(Date, 1d, datetime(2018-02-24 15:14:00.0000000)) \r\n\r\n\r\n```\r\n\r\n|Date|sum_Num|\r\n|---|---|\r\n|2018-02-23 15:14:00.0000000|4|\r\n|2018-02-24 15:14:00.0000000|3|\r\n|2018-02-26 15:14:00.0000000|5|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin_auto",'Rounds values down to a fixed-size "bin", with control over the bin size and starting point provided by a query property.','**Syntax**\r\n\r\n`bin_auto` `(` *Expression* `)`\r\n\r\n**Arguments**\r\n\r\n* *Expression*: A scalar expression of a numeric type indicating the value to round.\r\n\r\n**Client Request Properties**\r\n\r\n* `query_bin_auto_size`: A numeric literal indicating the size of each bin.\r\n* `query_bin_auto_at`: A numeric literal indicating one value of *Expression* which is a "fixed point" (that is, a value `fixed_point`\r\n for which `bin_auto(fixed_point)` == `fixed_point`.)\r\n\r\n**Returns**\r\n\r\nThe nearest multiple of `query_bin_auto_at` below *Expression*, shifted so that `query_bin_auto_at`\r\nwill be translated into itself.',"```\r\nset query_bin_auto_size=1h;\r\nset query_bin_auto_at=datetime(2017-01-01 00:05);\r\nrange Timestamp from datetime(2017-01-01 00:05) to datetime(2017-01-01 02:00) step 1m\r\n| summarize count() by bin_auto(Timestamp)\r\n```\r\n\r\n|Timestamp | count_|\r\n|-----------------------------|-------|\r\n|2017-01-01 00:05:00.0000000 | 60 |\r\n|2017-01-01 01:05:00.0000000 | 56 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_bin_autofunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_and","Returns a result of the bitwise `and` operation between two values","binary_and(x,y)\t\r\n\r\n**Syntax**\r\n\r\n`binary_and(`*num1*`,` *num2* `)`\r\n\r\n**Arguments**\r\n\r\n* *num1*, *num2*: long numbers.\r\n\r\n**Returns**\r\n\r\nReturns logical AND operation on a pair of numbers: num1 & num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_andfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_not","Returns a bitwise negation of the input value.","binary_not(x)\r\n\r\n**Syntax**\r\n\r\n`binary_not(`*num1*`)`\r\n\r\n**Arguments**\r\n\r\n* *num1*: numeric \r\n\r\n**Returns**\r\n\r\nReturns logical NOT operation on a number: num1.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_notfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_or","Returns a result of the bitwise `or` operation of the two values","binary_or(x,y)\r\n\r\n**Syntax**\r\n\r\n`binary_or(`*num1*`,` *num2* `)`\r\n\r\n**Arguments**\r\n\r\n* *num1*, *num2*: long numbers.\r\n\r\n**Returns**\r\n\r\nReturns logical OR operation on a pair of numbers: num1 | num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_orfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_shift_left","Returns binary shift left operation on a pair of numbers","binary_shift_left(x,y)\t\r\n\r\n**Syntax**\r\n\r\n`binary_shift_left(`*num1*`,` *num2* `)`\r\n\r\n**Arguments**\r\n\r\n* *num1*, *num2*: int numbers.\r\n\r\n**Returns**\r\n\r\nReturns binary shift left operation on a pair of numbers: num1 << (num2%64).\r\nIf n is negative a NULL value is returned.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_shift_leftfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_shift_right","eturns binary shift right operation on a pair of numbers","binary_shift_right(x,y)\t\r\n\r\n**Syntax**\r\n\r\n`binary_shift_right(`*num1*`,` *num2* `)`\r\n\r\n**Arguments**\r\n\r\n* *num1*, *num2*: long numbers.\r\n\r\n**Returns**\r\n\r\nReturns binary shift right operation on a pair of numbers: num1 >> (num2%64).\r\nIf n is negative a NULL value is returned.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_shift_rightfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_xor","Returns a result of the bitwise `xor` operation of the two values","binary_xor(x,y)\r\n\t\r\n**Syntax**\r\n\r\n`binary_xor(`*num1*`,` *num2* `)`\r\n\r\n**Arguments**\r\n\r\n* *num1*, *num2*: long numbers.\r\n\r\n**Returns**\r\n\r\nReturns logical XOR operation on a pair of numbers: num1 ^ num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_xorfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"buildschema","Returns the minimal schema that admits all values of *DynamicExpr*.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `buildschema(`*DynamicExpr*`)`\r\n\r\n**Arguments**\r\n\r\n* *DynamicExpr*: Expression that will be used for aggregation calculation. The parameter column type should be `dynamic`. \r\n\r\n**Returns**\r\n\r\nThe maximum value of *Expr* across the group.\r\n\r\n**Tip** \r\nIf `buildschema(json_column)` gives a syntax error:\r\n*Is your `json_column` a string rather than a dynamic object?* \r\nIf so, you need to use `buildschema(parsejson(json_column))`.",'Assume the input column has three dynamic values:\r\n\r\n||\r\n|---|\r\n|`{"x":1, "y":3.5}`|\r\n|`{"x":"somevalue", "z":[1, 2, 3]}`|\r\n|`{"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]}`|\r\n||\r\n\r\nThe resulting schema would be:\r\n\r\n { \r\n "x":["int", "string"], \r\n "y":["double", {"w": "string"}], \r\n "z":{"`indexer`": ["int", "string"]}, \r\n "t":{"`indexer`": "string"} \r\n }\r\n\r\nThe schema tells us that:\r\n\r\n* The root object is a container with four properties named x, y, z and t.\r\n* The property called "x" that could be either of type "int" or of type "string".\r\n* The property called "y" that could of either of type "double", or another container with a property called "w" of type "string".\r\n* The ``indexer`` keyword indicates that "z" and "t" are arrays.\r\n* Each item in the array "z" is either an int or a string.\r\n* "t" is an array of strings.\r\n* Every property is implicitly optional, and any array may be empty.\r\n\r\n### Schema model\r\n\r\nThe syntax of the returned schema is:\r\n\r\n Container ::= \'{\' Named-type* \'}\';\r\n Named-type ::= (name | \'"`indexer`"\') \':\' Type;\r\n\tType ::= Primitive-type | Union-type | Container;\r\n Union-type ::= \'[\' Type* \']\';\r\n Primitive-type ::= "int" | "string" | ...;\r\n\r\nThey are equivalent to a subset of the TypeScript type annotations, encoded as a Kusto dynamic value. In Typescript, the example schema would be:\r\n\r\n var someobject: \r\n { \r\n x?: (number | string), \r\n y?: (number | { w?: string}), \r\n z?: { [n:number] : (int | string)},\r\n t?: { [n:number]: string } \r\n }',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_buildschema_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"case","Evaluates a list of predicates and returns the first result expression whose predicate is satisfied.","If neither of the predicates return `true`, the result of the last expression (the `else`) is returned.\r\nAll odd arguments (count starts at 1) must be expressions that evaluate to a `boolean` value.\r\nAll even arguments (the `then`s) and the last argument (the `else`) must be of the same type.\r\n\r\n**Syntax**\r\n\r\n`case(`*predicate_1*`,` *then_1*,\r\n *predicate_2*`,` *then_2*,\r\n *predicate_3*`,` *then_3*,\r\n *else*`)`\r\n\r\n**Arguments**\r\n\r\n* *predicate_i*: An expression that evaluates to a `boolean` value.\r\n* *then_i*: An expression that gets evaluated and its value is returned from the function if *predicate_i* is the first predicate that evaluates to `true`.\r\n* *else*: An expression that gets evaluated and its value is returned from the function if neither of the *predicate_i* evaluate to `true`.\r\n\r\n**Returns**\r\n\r\nThe value of the first *then_i* whose *predicate_i* evaluates to `true`, or the value of *else* if neither of the predicates are satisfied.",'```\r\nrange Size from 1 to 15 step 2\r\n| extend bucket = case(Size <= 3, "Small", \r\n Size <= 10, "Medium", \r\n "Large")\r\n```\r\n\r\n|Size|bucket|\r\n|---|---|\r\n|1|Small|\r\n|3|Small|\r\n|5|Medium|\r\n|7|Medium|\r\n|9|Medium|\r\n|11|Large|\r\n|13|Large|\r\n|15|Large|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_casefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ceiling","Calculates the smallest integer greater than, or equal to, the specified numeric expression.","**Syntax**\r\n\r\n`ceiling(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The smallest integer greater than, or equal to, the specified numeric expression.","```\r\nprint c1 = ceiling(-1.1), c2 = ceiling(0), c3 = ceiling(0.9)\r\n\r\n```\r\n\r\n|c1|c2|c3|\r\n|---|---|---|\r\n|-1|0|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ceilingfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cluster","Changes the reference of the query to a remote cluster.","cluster('help').database('Sample').SomeTable\r\n \r\n**Syntax**\r\n\r\n`cluster(`*stringExpression*`)`\r\n\r\n**Arguments**\r\n\r\n* *stringExpression*: Name of the cluster that is referenced. Cluster name can be either \r\nas fully qualified DNS name or as a stirng that will be suffixied with `.kusto.windows.net`. \r\n\r\n**Notes**\r\n\r\n* For accessing database within the same cluster - use [database()](query_language_databasefunction.md) function.\r\n* More information about cross-cluster and cross-database queries available [here](query_language_syntax.md)","### Use cluster() to access remote cluster \r\n\r\nThe next query can be run on any of the Kusto clusters.\r\n\r\n\r\n```\r\ncluster('help').database('Samples').StormEvents | count\r\n\r\ncluster('help.kusto.windows.net').database('Samples').StormEvents | count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use cluster() inside let statements \r\n\r\nThe same query as above can be rewritten to use inline function (let statement) that \r\nreceives a parameter `clusterName` - which is passed into the cluster() function.\r\n\r\n\r\n```\r\nlet foo = (clusterName:string)\r\n{\r\n cluster(clusterName).database('Samples').StormEvents | count\r\n};\r\nfoo('help')\r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use cluster() inside Functions \r\n\r\nThe same query as above can be rewritten to be used in a function that \r\nreceives a parameter `clusterName` - which is passed into the cluster() function.\r\n\r\n\r\n```\r\n.create function foo(clusterName:string)\r\n{\r\n cluster(clusterName).database('Samples').StormEvents | count\r\n};\r\n```\r\n\r\n**Note:** such functions can be used only locally and not in the cross-cluster query.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_clusterfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"coalesce","Evaluates a list of expressions and returns the first non-null (or non-empty for string) expression.",'coalesce(tolong("not a number"), tolong("42"), 33) == 42\r\n\r\n**Syntax**\r\n\r\n`coalesce(`*expr_1*`, `*expr_2`, ...)\r\n\r\n**Arguments**\r\n\r\n* *expr_i*: A scalar expression, to be evaluated.\r\n\r\n- All arguments must be of the same type.\r\n- Maximum of 64 arguments is supported.\r\n\r\n\r\n**Returns**\r\n\r\nThe value of the first *expr_i* whose value is not null (or not-empty for string expressions).','```\r\nprint result=coalesce(tolong("not a number"), tolong("42"), 33)\r\n```\r\n\r\n|result|\r\n|---|\r\n|42|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_coalescefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"consume","Pulls all the data from its source tabular expression without actually doing anything with it.","T | consume\r\n\r\nThe `consume` operator pulls all the data from its source tabular expression\r\nwithout actually doing anything with it. It can be used for estimating the\r\ncost of a query without actually delivering the results back to the client.\r\n(The estimation is not exact for a variety of reasons; for example, `consume`\r\nis calculated distributively, so `T | consume` will not even deliver the table's\r\ndata between the nodes of the cluster.)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_consumeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cos","Returns the cosine function.","**Syntax**\r\n\r\n`cos(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The result of `cos(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cosfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cot","Calculates the trigonometric cotangent of the specified angle, in radians.","**Syntax**\r\n\r\n`cot(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The cotangent function value for `x`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cotfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"count","Returns a count of the records per summarization group (or in total if summarization is done without grouping).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n* Use the [countif](query_language_countif_aggfunction.md) aggregation function\r\n to count only records for which some predicate returns `true`.\r\n\r\n**Syntax**\r\n\r\nsummarize `count()`\r\n\r\n**Returns**\r\n\r\nReturns a count of the records per summarization group (or in total if summarization is done without grouping).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_count_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"count","Returns the number of records in the input record set.","**Syntax**\r\n\r\n`T | count`\r\n\r\n**Arguments**\r\n\r\n* *T*: The tabular data whose records are to be counted.\r\n\r\n**Returns**\r\n\r\nThis function returns a table with a single record and column of type\r\n`long`. The value of the only cell is the number of records in *T*.","```\r\nStormEvents | count\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"countif","Returns a count of rows for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\nSee also - [count()](query_language_count_aggfunction.md) function, which counts rows without predicate expression.\r\n\r\n**Syntax**\r\n\r\nsummarize `countif(`*Predicate*`)`\r\n\r\n**Arguments**\r\n\r\n* *Predicate*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nReturns a count of rows for which *Predicate* evaluates to `true`.\r\n\r\n**Tip**\r\n\r\nUse `summarize countif(filter)` instead of `where filter | summarize count()`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"countof","Counts occurrences of a substring in a string. Plain string matches may overlap; regex matches do not.",'countof("The cat sat on the mat", "at") == 3\r\n countof("The cat sat on the mat", @"\\b.at\\b", "regex") == 3\r\n\r\n**Syntax**\r\n\r\n`countof(`*text*`,` *search* [`,` *kind*]`)`\r\n\r\n**Arguments**\r\n\r\n* *text*: A string.\r\n* *search*: The plain string or [regular expression](./query_language_re2.md) to match inside *text*.\r\n* *kind*: `"normal"|"regex"` Default `normal`. \r\n\r\n**Returns**\r\n\r\nThe number of times that the search string can be matched in the container. Plain string matches may overlap; regex matches do not.','|||\r\n|---|---\r\n|`countof("aaa", "a")`| 3 \r\n|`countof("aaaa", "aa")`| 3 (not 2!)\r\n|`countof("ababa", "ab", "normal")`| 2\r\n|`countof("ababa", "aba")`| 2\r\n|`countof("ababa", "aba", "regex")`| 1\r\n|`countof("abcabc", "a.c", "regex")`| 2',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countoffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"current_principal","Returns the current principal running this query.","**Syntax**\r\n\r\n`current_principal()`\r\n\r\n**Returns**\r\n\r\nThe current principal FQN as a `string`.","```\r\n.show queries | where Principal == current_principal()\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_current_principalfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cursor_after","A predicate over the records of a table to compare their ingestion time\r\nagainst a database cursor.","**Syntax**\r\n\r\n`cursor_after` `(` *RHS* `)`\r\n\r\n**Arguments**\r\n\r\n* *RHS*: Either an empty string literal, or a valid database cursor value.\r\n\r\n**Returns**\r\n\r\nA scalar value of type `bool` that indicates whether the record was ingested\r\nafter the database cursor *RHS* (`true`) or not (`false`).\r\n\r\n**Comments**\r\n\r\nSee [Database Cursor](../concepts/concepts_databasecursor.md) for a detailed\r\nexplanation of this function, the scenario in which it should be used, its\r\nrestrictions, and side-effects.\r\n\r\nThis function can only be invoked on records of a table which has the\r\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) enabled.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cursorafterfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cursor_before_or_at","A predicate over the records of a table to compare their ingestion time\r\nagainst a database cursor.","**Syntax**\r\n\r\n`cursor_before_or_at` `(` *RHS* `)`\r\n\r\n**Arguments**\r\n\r\n* *RHS*: Either an empty string literal, or a valid database cursor value.\r\n\r\n**Returns**\r\n\r\nA scalar value of type `bool` that indicates whether the record was ingested\r\nbefore or at the database cursor *RHS* (`true`) or not (`false`).\r\n\r\n**Comments**\r\n\r\nSee [Database Cursor](../concepts/concepts_databasecursor.md) for a detailed\r\nexplanation of this function, the scenario in which it should be used, its\r\nrestrictions, and side-effects.\r\n\r\nThis function can only be invoked on records of a table which has the\r\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) enabled.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cursorbeforeoratfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"database","Changes the reference of the query to a specific database within the cluster scope.","database('Sample').StormEvents\r\n cluster('help').database('Sample').StormEvents\r\n\r\n**Syntax**\r\n\r\n`database(`*stringExpression*`)`\r\n\r\n**Arguments**\r\n\r\n* *stringExpression*: Name of the database that is referenced. Database identified can be either `DatabaseName` or `PrettyName`. \r\n\r\n**Notes**\r\n\r\n* For accessing remote cluster and remote database, see [cluster()](query_language_clusterfunction.md) scope function.\r\n* More information about cross-cluster and cross-database queries available [here](query_language_syntax.md)","### Use database() to access table of other database. \r\n\r\n\r\n```\r\ndatabase('Samples').StormEvents | count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use database() inside let statements \r\n\r\nThe same query as above can be rewritten to use inline function (let statement) that \r\nreceives a parameter `dbName` - which is passed into the database() function.\r\n\r\n\r\n```\r\nlet foo = (dbName:string)\r\n{\r\n database(dbName).StormEvents | count\r\n};\r\nfoo('help')\r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use database() inside Functions \r\n\r\nThe same query as above can be rewritten to be used in a function that \r\nreceives a parameter `dbName` - which is passed into the database() function.\r\n\r\n\r\n```\r\n.create function foo(dbName:string)\r\n{\r\n database(dbName).StormEvents | count\r\n};\r\n```\r\n\r\n**Note:** such functions can be used only locally and not in the cross-cluster query.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_databasefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"datatable","Returns a table whose schema and values are defined in the query itself.","Note that this operator does not have a pipeline input.\r\n\r\n**Syntax**\r\n\r\n`datatable` `(` *ColumnName* `:` *ColumnType* [`,` ...] `)` `[` *ScalarValue* [`,` *ScalarValue* ...] `]`\r\n\r\n**Arguments**\r\n\r\n* *ColumnName*, *ColumnType*: These define the schema of the table. The Syntax\r\n used is precisely the same as the syntax used when defining a table\r\n (see [.create table](../controlCommands/controlcommands_tables.md#create-table)).\r\n* *ScalarValue*: A constant scalar value to insert into the table. The number of values\r\n must be an integer multiple of the columns in the table, and the *n*'th value\r\n must have a type that corresponds to column *n* % *NumColumns*.\r\n\r\n**Returns**\r\n\r\nThis operator returns a data table of the given schema and data.",'```\r\ndatatable (Date:datetime, Event:string)\r\n [datetime(1910-06-11), "Born",\r\n datetime(1930-01-01), "Enters Ecole Navale",\r\n datetime(1953-01-01), "Published first book",\r\n datetime(1997-06-25), "Died"]\r\n| where strlen(Event) > 4\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datatableoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_add","Calculates a new [datetime](./scalar-data-types/datetime.md) from a specified datepart multiplied by a specified amount, added to a specified [datetime](./scalar-data-types/datetime.md).","**Syntax**\r\n\r\n`datetime_add(`*period*`,`*amount*`,`*datetime*`)`\r\n\r\n**Arguments**\r\n\r\n* `period`: [string](./scalar-data-types/string.md). \r\n* `amount`: [integer](./scalar-data-types/int.md).\r\n* `datetime`: [datetime](./scalar-data-types/datetime.md) value.\r\n\r\nPossible values of *period*: \r\n- Year\r\n- Quarter\r\n- Month\r\n- Week\r\n- Day\r\n- Hour\r\n- Minute\r\n- Second\r\n- Millisecond\r\n- Microsecond\r\n- Nanosecond\r\n\r\n**Returns**\r\n\r\nA date after a certain time/date interval has been added.","```\r\nprint year = datetime_add('year',1,make_datetime(2017,1,1)),\r\nquarter = datetime_add('quarter',1,make_datetime(2017,1,1)),\r\nmonth = datetime_add('month',1,make_datetime(2017,1,1)),\r\nweek = datetime_add('week',1,make_datetime(2017,1,1)),\r\nday = datetime_add('day',1,make_datetime(2017,1,1)),\r\nhour = datetime_add('hour',1,make_datetime(2017,1,1)),\r\nminute = datetime_add('minute',1,make_datetime(2017,1,1)),\r\nsecond = datetime_add('second',1,make_datetime(2017,1,1))\r\n\r\n```\r\n\r\n|year|quarter|month|week|day|hour|minute|second|\r\n|---|---|---|---|---|---|---|---|\r\n|2018-01-01 00:00:00.0000000|2017-04-01 00:00:00.0000000|2017-02-01 00:00:00.0000000|2017-01-08 00:00:00.0000000|2017-01-02 00:00:00.0000000|2017-01-01 01:00:00.0000000|2017-01-01 00:01:00.0000000|2017-01-01 00:00:01.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_addfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_diff","Calculates calendarian difference between two [datetime](./scalar-data-types/datetime.md) values.","**Syntax**\r\n\r\n`datetime_diff(`*period*`,`*datetime_1*`,`*datetime_2*`)`\r\n\r\n**Arguments**\r\n\r\n* `period`: `string`. \r\n* `datetime_1`: [datetime](./scalar-data-types/datetime.md) value.\r\n* `datetime_2`: [datetime](./scalar-data-types/datetime.md) value.\r\n\r\nPossible values of *period*: \r\n- Year\r\n- Quarter\r\n- Month\r\n- Week\r\n- Day\r\n- Hour\r\n- Minute\r\n- Second\r\n- Millisecond\r\n- Microsecond\r\n- Nanosecond\r\n\r\n**Returns**\r\n\r\nAn integer, which represents amount of `periods` in the result of subtraction (`datetime_1` - `datetime_2`).","```\r\nprint\r\nyear = datetime_diff('year',datetime(2017-01-01),datetime(2000-12-31)),\r\nquarter = datetime_diff('quarter',datetime(2017-07-01),datetime(2017-03-30)),\r\nmonth = datetime_diff('month',datetime(2017-01-01),datetime(2015-12-30)),\r\nweek = datetime_diff('week',datetime(2017-10-29 00:00),datetime(2017-09-30 23:59)),\r\nday = datetime_diff('day',datetime(2017-10-29 00:00),datetime(2017-09-30 23:59)),\r\nhour = datetime_diff('hour',datetime(2017-10-31 01:00),datetime(2017-10-30 23:59)),\r\nminute = datetime_diff('minute',datetime(2017-10-30 23:05:01),datetime(2017-10-30 23:00:59)),\r\nsecond = datetime_diff('second',datetime(2017-10-30 23:00:10.100),datetime(2017-10-30 23:00:00.900)),\r\nmillisecond = datetime_diff('millisecond',datetime(2017-10-30 23:00:00.200100),datetime(2017-10-30 23:00:00.100900)),\r\nmicrosecond = datetime_diff('microsecond',datetime(2017-10-30 23:00:00.1009001),datetime(2017-10-30 23:00:00.1008009)),\r\nnanosecond = datetime_diff('nanosecond',datetime(2017-10-30 23:00:00.0000000),datetime(2017-10-30 23:00:00.0000007))\r\n```\r\n\r\n|year|quarter|month|week|day|hour|minute|second|millisecond|microsecond|nanosecond|\r\n|---|---|---|---|---|---|---|---|---|---|---|\r\n|17|2|13|5|29|2|5|10|100|100|-700|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_difffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_part","Extracts the requested date part as an integer value.",'datetime_part("Day",datetime(2015-12-14))\r\n\r\n**Syntax**\r\n\r\n`datetime_part(`*part*`,`*datetime*`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: `datetime`.\r\n* `part`: `string`. \r\n\r\nPossible values of *part*: \r\n- Year\r\n- Quarter\r\n- Month\r\n- WeekOfYear\r\n- Day\r\n- DayOfYear\r\n- Hour\r\n- Minute\r\n- Second\r\n- Millisecond\r\n- Microsecond\r\n- Nanosecond\r\n\r\n**Returns**\r\n\r\nAn integer representing the extracted part.','```\r\nlet dt = datetime(2017-10-30 01:02:03.7654321); \r\nprint \r\nyear = datetime_part("year", dt),\r\nquarter = datetime_part("quarter", dt),\r\nmonth = datetime_part("month", dt),\r\nweekOfYear = datetime_part("weekOfYear", dt),\r\nday = datetime_part("day", dt),\r\ndayOfYear = datetime_part("dayOfYear", dt),\r\nhour = datetime_part("hour", dt),\r\nminute = datetime_part("minute", dt),\r\nsecond = datetime_part("second", dt),\r\nmillisecond = datetime_part("millisecond", dt),\r\nmicrosecond = datetime_part("microsecond", dt),\r\nnanosecond = datetime_part("nanosecond", dt)\r\n\r\n```\r\n\r\n|year|quarter|month|weekOfYear|day|dayOfYear|hour|minute|second|millisecond|microsecond|nanosecond|\r\n|---|---|---|---|---|---|---|---|---|---|---|---|\r\n|2017|4|10|44|30|303|1|2|3|765|765432|765432100|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_partfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofmonth","Returns the integer number representing the day number of the given month","dayofmonth(datetime(2015-12-14)) == 14\r\n\r\n**Syntax**\r\n\r\n`dayofmonth(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\n`day number` of the given month.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofweek","Returns the integer number of days since the preceding Sunday, as a `timespan`.","dayofweek(datetime(2015-12-14)) == 1d // Monday\r\n\r\n\r\n**Syntax**\r\n\r\n`dayofweek(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\nThe `timespan` since midnight at the beginning of the preceding Sunday, rounded down to an integer number of days.","```\r\ndayofweek(1947-11-29 10:00:05) // time(6.00:00:00), indicating Saturday\r\ndayofweek(1970-05-11) // time(1.00:00:00), indicating Monday\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofyear","Returns the integer number represents the day number of the given year.","dayofyear(datetime(2015-12-14))\r\n\r\n**Syntax**\r\n\r\n`dayofweek(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\n`day number` of the given year.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcount","Returns an estimate of the number of distinct values of *Expr* in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `dcount(`*Expr* [`,` *Accuracy*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation.\r\n* *Accuracy*, if specified, controls the balance between speed and accuracy (see Note).\r\n * `0` = the least accurate and fastest calculation. 1.6% error\r\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\r\n * `2` = accurate and slow calculation; about 0.4% error.\r\n * `3` = extra accurate and slow calculation; about 0.28% error.\r\n * `4` = super accurate and slowest calculation; about 0.2% error.\r\n\r\n**Returns**\r\n\r\nReturns an estimate of the number of distinct values of *Expr* in the group.","```\r\nPageViewLog | summarize countries=dcount(country) by continent\r\n```\r\n\r\n![](./images/aggregations/dcount.png)\r\n\r\n**Tip: Listing distinct values**\r\n\r\nTo list the distinct values, you can use:\r\n- `summarize by *Expr*`\r\n- [`makeset`](query_language_makeset_aggfunction.md) : `summarize makeset(`*Expr*`)` \r\n\r\n**Tip: Accurate distinct count**\r\n\r\nWhile `dcount()` provides a fast and reliable way to count distinct values,\r\nit relies on a statistical algorithm to do so. Therefore, invoking this\r\naggregation multiple times might result in different values being returned.\r\n\r\n* If the accuracy level is `1` and the number of distinct values is smaller than 1000 or so, `dcount()` returns a perfectly-accurate count.\r\n* If the accuracy level is `2` and the number of distinct values is smaller than 8000 or so, `dcount()` returns a perfectly-accurate count.\r\n* If the number of distinct values is larger than that, but not very\r\n large, one may try to use double-`count()` to calculate a single `dcount()`.\r\n This is shown in the following example; the two expressions are equivalent\r\n (except that the second one might run out of memory): \r\n\r\n\r\n```\r\nT | summarize dcount(Key)\r\n\r\nT | summarize count() by Key | summarize count()\r\n``` \r\n\r\n## Estimation error of dcount\r\n\r\ndcount uses a variant of [HyperLogLog (HLL) algorithm](https://en.wikipedia.org/wiki/HyperLogLog) which does stochastic estimation of set cardinality. In practice it means that the estimation error is described in terms of probability distribution, not theoretical bounds.\r\nSo the stated error actually specifies the standard deviation of error distribution (sigma), 99.7% of estimation will have a relative error of under 3*sigma\r\nThe following depicts probability distribution function of relative estimation error (in percents) for all dcount's accuracy settings:\r\n\r\n![](./images/aggregations/hll-error-distribution.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcount_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcount_hll","Calculates the dcount from hll results (which was generated by [hll](query_language_hll_aggfunction.md) or [hll_merge](query_language_hll_merge_aggfunction.md)).","Read more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\r\n\r\n**Syntax**\r\n\r\n`dcount_hll(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression which was generated by [hll](query_language_hll_aggfunction.md) or [hll_merge](query_language_hll_merge_aggfunction.md)\r\n\r\n**Returns**\r\n\r\nThe distinct count of each value in *Expr*","```\r\nStormEvents\r\n| summarize hllRes = hll(DamageProperty) by bin(StartTime,10m)\r\n| summarize hllMerged = hll_merge(hllRes)\r\n| project dcount_hll(hllMerged)\r\n```\r\n\r\n|dcount_hll_hllMerged|\r\n|---|\r\n|315|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcount_hllfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcountif","Returns an estimate of the number of distinct values of *Expr* of rows for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\r\n\r\nRead more about the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\r\n\r\n**Syntax**\r\n\r\nsummarize `dcountif(`*Expr*, *Predicate*, [`,` *Accuracy*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation.\r\n* *Predicate*: Expression that will be used to filter rows.\r\n* *Accuracy*, if specified, controls the balance between speed and accuracy.\r\n * `0` = the least accurate and fastest calculation. 1.6% error\r\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\r\n * `2` = accurate and slow calculation; about 0.4% error.\r\n * `3` = extra accurate and slow calculation; about 0.28% error.\r\n * `4` = super accurate and slowest calculation; about 0.2% error.\r\n\t\r\n**Returns**\r\n\r\nReturns an estimate of the number of distinct values of *Expr* of rows for which *Predicate* evaluates to `true` in the group.",'```\r\nPageViewLog | summarize countries=dcountif(country, country startswith "United") by continent\r\n```\r\n\r\n**Tip: Offset error**\r\n\r\n`dcountif()` might result in a one-off error in the edge cases where all rows\r\npass, or none of the rows pass, the `Predicate` expression',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcountif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"degrees","Converts angle value in radians into value in degrees, using formula `degrees = (180 / PI ) * angle_in_radians`","**Syntax**\r\n\r\n`degrees(`*a*`)`\r\n\r\n**Arguments**\r\n\r\n* *a*: Angle in radians (a real number).\r\n\r\n**Returns**\r\n\r\n* The corresponding angle in degrees for an angle specified in radians.","```\r\nprint degrees0 = degrees(pi()/4), degrees1 = degrees(pi()*1.5), degrees2 = degrees(0)\r\n\r\n```\r\n\r\n|degrees0|degrees1|degrees2|\r\n|---|---|---|\r\n|45|270|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_degreesfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"distinct","Produces a table with the distinct combination of the provided columns of the input table.","T | distinct Column1, Column2\r\n\r\nProduces a table with the distinct combination of all columns in the input table.\r\n\r\n T | distinct *",'Shows the distinct combination of fruit and price.\r\n\r\n```\r\nTable | distinct fruit, price\r\n```\r\n\r\n![](./Images/aggregations/distinct.PNG)\r\n\r\n**Remarks**\r\n\r\nThere are two main semantic differences between the `distinct` operator and\r\nusing `summarize by ...`:\r\n* Distinct supports providing an asterisk (`*`) as the group key, making it easier to use for wide tables.\r\n* Distinct doesn’t have auto-binning of time columns (to `1h`).\r\n\r\n\r\n```\r\nlet T=(print t=datetime(2008-05-12 06:45));\r\nunion\r\n (T | distinct * | extend Title="Distinct"),\r\n (T | summarize by t | extend Title="Summarize"),\r\n (T | summarize by bin(t, 1tick) | extend Title="Summarize-distinct")\r\n\t\t\r\n\tt\tTitle\r\n\t2008-05-12 06:00:00.0000000\tSummarize\r\n\t2008-05-12 06:45:00.0000000\tDistinct\r\n\t2008-05-12 06:45:00.0000000\tSummarize-distinct\r\n```\r\n\r\nThis query produces the following table:\r\n\r\nt | Title\r\n-----------------------------|--------------------\r\n2008-05-12 06:45:00.0000000 | Distinct\r\n2008-05-12 06:00:00.0000000 | Summarize\r\n2008-05-12 06:45:00.0000000 | Summarize-distinct',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_distinctoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofday","Returns the end of the day containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`endofday(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset days from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the end of the day for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project dayEnd = endofday(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|dayEnd|\r\n|---|\r\n|2016-12-31 23:59:59.9999999|\r\n|2017-01-01 23:59:59.9999999|\r\n|2017-01-02 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofmonth","Returns the end of the month containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`endofmonth(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset months from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the end of the month for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project monthEnd = endofmonth(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|monthEnd|\r\n|---|\r\n|2016-12-31 23:59:59.9999999|\r\n|2017-01-31 23:59:59.9999999|\r\n|2017-02-28 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofweek","Returns the end of the week containing the date, shifted by an offset, if provided.","Last day of the week is considered to be a Saturday.\r\n\r\n**Syntax**\r\n\r\n`endofweek(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset weeks from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the end of the week for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project weekEnd = endofweek(datetime(2017-01-01 10:10:17), offset) \r\n\r\n```\r\n\r\n|weekEnd|\r\n|---|\r\n|2016-12-31 23:59:59.9999999|\r\n|2017-01-07 23:59:59.9999999|\r\n|2017-01-14 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofyear","Returns the end of the year containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`endofyear(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset years from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the end of the year for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project yearEnd = endofyear(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|yearEnd|\r\n|---|\r\n|2016-12-31 23:59:59.9999999|\r\n|2017-12-31 23:59:59.9999999|\r\n|2018-12-31 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"evaluate","The evaluate operator is an extension mechanism to the Kusto query path that\r\nallows first-party extensions to be appended to queries.","Extensions provided by the evaluate operator are not bound by the necessary\r\nrules of query execution, and may have limitation based on the concrete extension implementation. \r\nFor example extensions which output schema changes depending on the data (e.g. bag_unpack, pivot)\r\ncannot be used in remote functions (cross-cluster query).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_evaluateoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp","The base-e exponential function of x, which is e raised to the power x: e^x.","**Syntax**\r\n\r\n`exp(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number, value of the exponent.\r\n\r\n**Returns**\r\n\r\n* Exponential value of x.\r\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\r\n* For exponential functions of base-2 and base-10 logarithms, see [exp2()](query_language_exp2_function.md), [exp10()](query_language_exp10_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp10","The base-10 exponential function of x, which is 10 raised to the power x: 10^x.","**Syntax**\r\n\r\n`exp10(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number, value of the exponent.\r\n\r\n**Returns**\r\n\r\n* Exponential value of x.\r\n* For natural (base-10) logarithms, see [log10()](query_language_log10_function.md).\r\n* For exponential functions of base-e and base-2 logarithms, see [exp()](query_language_exp_function.md), [exp2()](query_language_exp2_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp10_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp2","The base-2 exponential function of x, which is 2 raised to the power x: 2^x.","**Syntax**\r\n\r\n`exp2(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number, value of the exponent.\r\n\r\n**Returns**\r\n\r\n* Exponential value of x.\r\n* For natural (base-2) logarithms, see [log2()](query_language_log2_function.md).\r\n* For exponential functions of base-e and base-10 logarithms, see [exp()](query_language_exp_function.md), [exp10()](query_language_exp10_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp2_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"extend","Create calculated columns and append them to the result set."," T | extend duration = endTime - startTime\r\n\r\n**Syntax**\r\n\r\n*T* `| extend` [*ColumnName* | `(`*ColumnName*[`,` ...]`)` `=`] *Expression* [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The input tabular result set.\r\n* *ColumnName:* Optional. The name of the column to add or update. If omitted then the name will be generated. If *Expression* returns more than one column, then a list of column names can be specified in parenthesis. In this case *Expression*'s output columns will be given the specified names, dropping all rest of the output columns if any. If list of the column names is not specified then all *Expression*'s output columns with generated names will be added to output.\r\n* *Expression:* A calculation over the columns of the input.\r\n\r\n**Returns**\r\n\r\nA copy of the input tabular result set, such that:\r\n1. Column names noted by `extend` that already exist in the input are removed\r\n and appended as their new calculated values.\r\n2. Column names noted by `extend` that do not exist in the input are appended\r\n as their new calculated values.\r\n\r\n**Tips**\r\n\r\n* The `extend` operator adds a new column to the input result set, which does\r\n **not** have an index. In most cases, if the new column is set to be exactly\r\n the same as an existing table column that has an index, Kusto can automatically\r\n use the existing index. However, in some complex scenarios this propagation is\r\n not currently done. In such cases, if the goal is to rename a column,\r\n use the [`project` operator](query_language_projectoperator.md) instead. (Note that this transformation\r\n will require you to list all other columns as well, so don't use it if there's\r\n not perceived performance impact.)",'```\r\nLogs\r\n| extend\r\n Duration = CreatedOn - CompletedOn\r\n , Age = now() - CreatedOn\r\n , IsSevere = Level == "Critical" or Level == "Error"\r\n```\r\n\r\nSee [series_stats](query_language_series_statsfunction.md) as an example of a function that returns multiple columns',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extendoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extent_id",'Returns a unique identifier that identifies the data shard ("extent") that the current record resides in.',"Applying this function to calculated data which is not attached to a data shard returns an empty guid (all zeros).\r\n\r\n**Syntax**\r\n\r\n`extent_id()`\r\n\r\n**Returns**\r\n\r\nA value of type `guid` that identifies the current record's data shard,\r\nor an empty guid (all zeros).","The following example shows how to get a list of all the data shards\r\nthat have records from an hour ago with a specific value for the\r\ncolumn `ActivityId`. It demonstrates that some query operators (here,\r\nthe `where` operator, but this is also true for `extend` and `project`)\r\npreserve the information about the data shard hosting the record.\r\n\r\n\r\n```\r\nT\r\n| where Timestamp > ago(1h)\r\n| where ActivityId == 'dd0595d4-183e-494e-b88e-54c52fe90e5a'\r\n| extend eid=extent_id()\r\n| summarize by eid\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extentidfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extent_tags",'Returns a dynamic array with the [tags](../concepts/concepts_extents.md#extent-tagging) of the data shard ("extent") that the current record resides in.',"Applying this function to calculated data which is not attached to a data shard returns an empty value.\r\n\r\n**Syntax**\r\n\r\n`extent_tags()`\r\n\r\n**Returns**\r\n\r\nA value of type `dynamic` that is an array holding the current record's extent tags,\r\nor an empty value.","The following example shows how to get a list the tags of all the data shards\r\nthat have records from an hour ago with a specific value for the\r\ncolumn `ActivityId`. It demonstrates that some query operators (here,\r\nthe `where` operator, but this is also true for `extend` and `project`)\r\npreserve the information about the data shard hosting the record.\r\n\r\n\r\n```\r\nT\r\n| where Timestamp > ago(1h)\r\n| where ActivityId == 'dd0595d4-183e-494e-b88e-54c52fe90e5a'\r\n| extend tags = extent_tags()\r\n| summarize by tostring(tags)\r\n```\r\n\r\nThe following example shows how to obtain a count of all records from the \r\nlast hour, which are stored in extents which are tagged with the tag `MyTag`\r\n(and potentially other tags), but not tagged with the tag `drop-by:MyOtherTag`.\r\n\r\n\r\n```\r\nT\r\n| where Timestamp > ago(1h)\r\n| extend Tags = extent_tags()\r\n| where Tags has_cs 'MyTag' and Tags !has_cs 'drop-by:MyOtherTag'\r\n| count\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extenttagsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"externaldata","Returns a table whose schema is defined in the query itself, and whose data is read from an external raw file.","Note that this operator does not have a pipeline input.\r\n\r\n**Syntax**\r\n\r\n`externaldata` `(` *ColumnName* `:` *ColumnType* [`,` ...] `)` `[` *DataFileUri* `]` [`with` `(` *Prop1* `=` *Value1* [`,` ...] `)`]\r\n\r\n**Arguments**\r\n\r\n* *ColumnName*, *ColumnType*: These define the schema of the table. The Syntax\r\n used is precisely the same as the syntax used when defining a table\r\n (see [.create table](../controlCommands/controlcommands_tables.md#create-table)).\r\n* *DataFileUri*: The URI (including authentication option, if any) for the file\r\n holding the data.\r\n* *Prop1*, *Value1*, ...: Additional properties to describe how the data in the raw file\r\n is to be interpreted. Similar to ingestion properties.\r\n\r\n**Returns**\r\n\r\nThis operator returns a data table of the given schema, whose data was parsed\r\nfrom the specified URI.",'The following example shows how to parse at query time a raw CSV data file \r\nin Azure Storage Blob. (Please note that in reality the `data.csv` file will\r\nbe appended by a SAS token to authorize the request.)\r\n\r\n\r\n```\r\nexternaldata (Date:datetime, Event:string)\r\n[h@"https://storageaccount.blob.core.windows.net/storagecontainer/data.csv"]\r\n| where strlen(Event) > 4\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_externaldata_operator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extract","Get a match for a [regular expression](./query_language_re2.md) from a text string.",'Optionally, it then converts the extracted substring to the indicated type.\r\n\r\n extract("x=([0-9.]+)", 1, "hello x=45.6|wo") == "45.6"\r\n\r\n**Syntax**\r\n\r\n`extract(`*regex*`,` *captureGroup*`,` *text* [`,` *typeLiteral*]`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: A [regular expression](./query_language_re2.md).\r\n* *captureGroup*: A positive `int` constant indicating the\r\ncapture group to extract. 0 stands for the entire match, 1 for the value matched by the first \'(\'parenthesis\')\' in the regular expression, 2 or more for subsequent parentheses.\r\n* *text*: A `string` to search.\r\n* *typeLiteral*: An optional type literal (e.g., `typeof(long)`). If provided, the extracted substring is converted to this type. \r\n\r\n**Returns**\r\n\r\nIf *regex* finds a match in *text*: the substring matched against the indicated capture group *captureGroup*, optionally converted to *typeLiteral*.\r\n\r\nIf there\'s no match, or the type conversion fails: `null`.','The example string `Trace` is searched for a definition for `Duration`. \r\nThe match is converted to `real`, then multiplied it by a time constant (`1s`) so that `Duration` is of type `timespan`. In this example, it is equal to 123.45 seconds:\r\n\r\n\r\n```\r\n...\r\n| extend Trace="A=1, B=2, Duration=123.45, ..."\r\n| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s) \r\n```\r\n\r\nThis example is equivalent to `substring(Text, 2, 4)`:\r\n\r\n\r\n```\r\nextract("^.{2,2}(.{4,4})", 1, Text)\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extractall","Get all matches for a [regular expression](./query_language_re2.md) from a text string.",'Optionally, a subset of matching groups can be retrieved.\r\n\r\n extractall(@"(\\d+)", "a set of numbers: 123, 567 and 789") == dynamic(["123", "567", "789"])\r\n\r\n**Syntax**\r\n\r\n`extractall(`*regex*`,` [*captureGroups*`,`] *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: A [regular expression](./query_language_re2.md). Regular \r\nexpression must have at least one capturing group, and less-or-equal than 16 capturing groups.\r\n* *captureGroups*: (optional). A dynamic array constant indicating the capture group to extract. Valid \r\nvalues are from 1 to number of capturing groups in the regular expression. Named capture groups are allowed as\r\nwell (see examples section).\r\n* *text*: A `string` to search.\r\n\r\n**Returns**\r\n\r\nIf *regex* finds a match in *text*: \r\nreturns dynamic array including all matches against the indicated capture groups *captureGroups* (or all of capturing groups in the *regex*).\r\nIf number of *captureGroups* is 1: the returned array has a single dimension of matched values.\r\nIf number of *captureGroups* is more than 1: the returned array is two-dimensionaly - collection of multi-value matches per *captureGroups* selection (or all capture groups present in the *regex* if *captureGroups* is omitted) \r\n\r\nIf there\'s no match: `null`.','### Extracting single capture group\r\nThe example below returns hex-byte representation (two hex-digits) of the GUID.\r\n\r\n\r\n```\r\nrange r from 1 to 1 step 1\r\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\r\n| extend guid_bytes = extractall(@"([\\da-f]{2})", Id) \r\n```\r\n\r\n|Id|guid_bytes|\r\n|---|---|\r\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"]|\r\n\r\n### Extracting several capture groups \r\nNext example uses a regular expression with 3 capturing groups to split each GUID part into first letter, last letter and whatever in the middle.\r\n\r\n\r\n```\r\nrange r from 1 to 1 step 1\r\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\r\n| extend guid_bytes = extractall(@"(\\w)(\\w+)(\\w)", Id) \r\n```\r\n\r\n|Id|guid_bytes|\r\n|---|---|\r\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]|\r\n\r\n### Extracting subset of capture groups\r\n\r\nNext example shows how to select a subset of capturing groups: in this case the regular expression \r\nmatches into first letter, last letter and all the rest - while the *captureGroups* parameter is used to select only first and the last part. \r\n\r\n\r\n```\r\nrange r from 1 to 1 step 1\r\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\r\n| extend guid_bytes = extractall(@"(\\w)(\\w+)(\\w)", dynamic([1,3]), Id) \r\n```\r\n\r\n|Id|guid_bytes|\r\n|---|---|\r\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]|\r\n\r\n\r\n### Using named capture groups\r\n\r\nYou can utilize named capture groups of RE2 in extractall(). \r\nIn the example below - the *captureGroups* uses both capture group indexes and named capture group reference to fetch matching values.\r\n\r\n\r\n```\r\nrange r from 1 to 1 step 1\r\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\r\n| extend guid_bytes = extractall(@"(?P\\w)(?P\\w+)(?P\\w)", dynamic([\'first\',2,\'last\']), Id) \r\n```\r\n\r\n|Id|guid_bytes|\r\n|---|---|\r\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractallfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extractjson","Get a specified element out of a JSON text using a path expression.",'Optionally convert the extracted string to a specific type.\r\n\r\n extractjson("$.hosts[1].AvailableMB", EventText, typeof(int))\r\n\r\n\r\n**Syntax**\r\n\r\n`extractjson(`*jsonPath*`,` *dataSource*`)` \r\n\r\n**Arguments**\r\n\r\n* *jsonPath*: JsonPath string that defines an accessor into the JSON document.\r\n* *dataSource*: A JSON document.\r\n\r\n**Returns**\r\n\r\nThis function performs a JsonPath query into dataSource which contains a valid JSON string, optionally converting that value to another type depending on the third argument.',"The `[`bracket`]` notatation and dot (`.`) notation are equivalent:\r\n\r\n\r\n```\r\nT \r\n| extend AvailableMB = extractjson(\"$.hosts[1].AvailableMB\", EventText, typeof(int)) \r\n\r\nT\r\n| extend AvailableMD = extractjson(\"$['hosts'][1]['AvailableMB']\", EventText, typeof(int)) \r\n```\r\n\r\n### JSON Path expressions\r\n\r\n|||\r\n|---|---|\r\n|`$`|Root object|\r\n|`@`|Current object|\r\n|`.` or `[ ]` | Child|\r\n|`[ ]`|Array subscript|\r\n\r\n*(We don't currently implement wildcards, recursion, union, or slices.)*\r\n\r\n\r\n**Performance tips**\r\n\r\n* Apply where-clauses before using `extractjson()`\r\n* Consider using a regular expression match with [extract](query_language_extractfunction.md) instead. This can run very much faster, and is effective if the JSON is produced from a template.\r\n* Use `parsejson()` if you need to extract more than one value from the JSON.\r\n* Consider having the JSON parsed at ingestion by declaring the type of the column to be dynamic.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractjsonfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"facet","Returns a set of tables, one for each specified column.\r\nEach table specifies the list of values taken by its column.\r\nAn additional table can be created by using the `with` clause.","**Syntax**\r\n\r\n*T* `| facet by` *ColumnName* [`, ` ...] [`with (` *filterPipe* `)`\r\n\r\n**Arguments**\r\n\r\n* *ColumnName:* The name of column in the input, to be summarized as an output table.\r\n* *filterPipe:* A query expression applied to the input table to produce one of the outputs.\r\n\r\n**Returns**\r\n\r\nMultiple tables: one for the `with` clause, and one for each column.","```\r\nMyTable \r\n| facet by city, eventType \r\n with (where timestamp > ago(7d) | take 1000)\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_facetoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"find","Finds rows that match a predicate across a set of tables.","The scope of the `find` can also be cross-database or cross-cluster.\r\n\r\n\r\n```\r\nfind in (Table1, Table2, Table3) where Fruit==\"apple\"\r\n\r\nfind in (database('*').*) where Fruit == \"apple\"\r\n\r\nfind in (cluster('cluster_name').database('MyDB*'.*)) where Fruit == \"apple\"\r\n\r\n```\r\n\r\n## Syntax\r\n\r\n* `find` [`withsource`=*ColumnName*] [`in` `(`*Table* [`,` *Table*, ...]`)`] `where` *Predicate* [`project-smart` | `project` *ColumnName* [`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...][`,` `pack(*)`]] \r\n\r\n* `find` *Predicate* [`project-smart` | `project` *ColumnName*[`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...] [`, pack(*)`]] \r\n\r\n## Arguments\r\n* `withsource=`*ColumnName*: Optional. By default the output will include a column called *source_* whose values indicates which source table has contributed each row. If specified, *ColumnName* will be used instead of *source_* .\r\nIf the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database. Similarly __cluster and database__ qualifications will be present in the value if more than one cluster is referenced.\r\n* *Predicate*: [see details](./query_language_findoperator.md#predicate-syntax). A `boolean` [expression](./scalar-data-types/bool.md) over the columns of the input tables *Table* [`,` *Table*, ...]. It is evaluated for each row in each input table. \r\n* `Table`: Optional. By default *find* will search in all tables in the current database\r\n * The name of a table, such as `Events` or\r\n * A query expression, such as `(Events | where id==42)`\r\n * A set of tables specified with a wildcard. For example, `E*` would form the union of all the tables in the database whose names begin `E`.\r\n* `project-smart` | `project`: [see details](./query_language_findoperator.md#output-schema) if not specified `project-smart` will be used by default\r\n\r\n## Returns\r\n\r\nTransformation of rows in *Table* [`,` *Table*, ...] for which *Predicate* is `true`. The rows are transformed\r\naccording to the output schema as described below.\r\n\r\n## Output Schema\r\n\r\n**source_ column**\r\n\r\nThe find operator output will always include a *source_* column with the source table name. The column can be renamed using the `withsource` parameter.\r\n\r\n**results columns**\r\n\r\nSource tables that do not contain any column used by the predicate evaluation will be be filtered out.\r\n\r\nWhen using `project-smart`, the columns that will appear in the output will be:\r\n1. Columns that appear explicitly in the predicate\r\n2. Columns that are common to all the filtered tables\r\nThe rest of the columns will be packed into a property bag and will appear in an additional `pack_` column.\r\nA column that is referenced explicitly by the predicate and appears in multiple tables with multiple types, will have a different column in the result schema for each such type. Each of the column names will be constructed from the original column name and the type, separated by an underscore.\r\n\r\nWhen using `project` *ColumnName*[`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...][`,` `pack(*)`]:\r\n1. The result table will include the columns specified in the list. If a source table doesn't contain a certain column, the values in the corresponding rows will be null.\r\n2. When specifying a *ColumnType* along with a *ColumnName*, this column in the **result** will have the given type, and the values will be casted to that type if needed. Note that this will not have an effect on the column type when evaluating the *Predicate*.\r\n3. When `pack(*)` is used, the rest of the columns will be packed into a property bag and will appear in an additional `pack_` column\r\n\r\n**pack_ column**\r\n\r\nThis column will contain a property bag with the data from all the columns that doesn't appear in the output schema. The source column name will serve as the property name and the column value will serve as the property value.\r\n\r\n## Predicate Syntax\r\n\r\nPlease refer to the [where operator](./query_language_whereoperator.md) for some filtering functions summary.\r\n\r\nfind operator supports an alternative syntax for `* has` *term* , and using just *term* will search a term across all input columns\r\n\r\n## Notes\r\n\r\n* If the project clause references a column that appears in multiple tables and has multiple types, a type must follow this column reference in the project clause\r\n* When using *project-smart*, changes in the predicate, in the source tables set or in the tables schema may result in a changes to the output schema. If a constant result schema is needed, use *project* instead\r\n* `find` scope can not include [functions](../controlCommands/controlcommands_functions.md). To include a function in the find scope - define a [let statement](./query_language_letstatement.md) with [view keyword](./query_language_letstatement.md)\r\n\r\n## Performance Tips\r\n\r\n* Use [tables](../controlCommands/controlcommands_tables.md) as opposed to [tabular expressions](./query_language_tabularexpressionstatements.md)- in case of tabular expression the find operator falls back to a `union` query which can result in degraded performance\r\n* If a column that appears in multiple tables and has multiple types is part of the project clause, prefer adding a *ColumnType* to the project clause over modifying the table before passing it to `find` (see previous tip)\r\n* Add time based filters to the predicate (using a datetime column value or [ingestion_time()](./query_language_ingestiontimefunction.md))\r\n* Prefer to search in specific columns over full text search \r\n* Prefer not to reference explicitly columns that appears in multiple tables and has multiple types. If the predicate is valid when resolving such columns type for more than one type, the query will fallback to union\r\n\r\n[see examples](./query_language_findoperator.md#examples-of-cases-where-find-will-perform-as-union)",'### Term lookup across all tables (in current database)\r\n\r\nThe next query finds all rows from all tables in the current database in which any column includes the word `Kusto`. \r\nThe resulting records are transformed according to the [output schema](#output-schema). \r\n\r\n\r\n```\r\nfind "Kusto"\r\n```\r\n\r\n## Term lookup across all tables matching a name pattern (in the current database)\r\n\r\nThe next query finds all rows from all tables in the current database whose name starts with `K`, and in which any column includes the word `Kusto`.\r\nThe resulting records are transformed according to the [output schema](#output-schema). \r\n\r\n\r\n```\r\nfind in (K*) where * has "Kusto"\r\n```\r\n\r\n### Term lookup across all tables in all databases (in the cluster)\r\n\r\nThe next query finds all rows from all tables in all databases in which any column includes the word `Kusto`. \r\nThis is a [cross database](./query_language_syntax.md#cross-database-and-cross-cluster-queries) query. \r\nThe resulting records are transformed according to the [output schema](#output-schema). \r\n\r\n\r\n```\r\nfind in (database(\'*\').*) "Kusto"\r\n```\r\n\r\n### Term lookup across all tables and databases matching a name pattern (in the cluster)\r\n\r\nThe next query finds all rows from all tables whose name starts with `K` in all databases whose name start with `B` and \r\nin which any column includes the word `Kusto`. \r\nThe resulting records are transformed according to the [output schema](#output-schema). \r\n\r\n\r\n```\r\nfind in (database("B*").K*) where * has "Kusto"\r\n```\r\n\r\n\r\n### Term lookup in several clusters\r\n\r\nThe next query finds all rows from all tables whose name starts with `K` in all databases whose name start with `B` and \r\nin which any column includes the word `Kusto`. \r\nThe resulting records are transformed according to the [output schema](#output-schema). \r\n\r\n\r\n```\r\nfind in (cluster("cluster1").database("B*").K*, cluster("cluster2").database("C*".*))\r\nwhere * has "Kusto"\r\n```\r\n\r\n## Examples of `find` output results \r\n\r\nThe following examples show how `find` can be used over two tables: EventsTable1 and EventsTable2. \r\nAssume we have next content of these two tables: \r\n\r\n### EventsTable1\r\n\r\n|Session_Id|Level|EventText|Version\r\n|---|---|---|---|\r\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Text1|v1.0.0\r\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Text2|v1.0.0\r\n|28b8e46e-3c31-43cf-83cb-48921c3986fc|Error|Some Text3|v1.0.1\r\n|8f057b11-3281-45c3-a856-05ebb18a3c59|Information|Some Text4|v1.1.0\r\n\r\n### EventsTable2\r\n\r\n|Session_Id|Level|EventText|EventName\r\n|---|---|---|---|\r\n|f7d5f95f-f580-4ea6-830b-5776c8d64fdd|Information|Some Other Text1|Event1\r\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Other Text2|Event2\r\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Other Text3|Event3\r\n|15eaeab5-8576-4b58-8fc6-478f75d8fee4|Error|Some Other Text4|Event4\r\n\r\n\r\n### Search in common columns, project common and uncommon columns and pack the rest \r\n\r\n\r\n```\r\nfind in (EventsTable1, EventsTable2) \r\n where Session_Id == \'acbd207d-51aa-4df7-bfa7-be70eb68f04e\' and Level == \'Error\' \r\n project EventText, Version, EventName, pack(*)\r\n```\r\n\r\n|source_|EventText|Version|EventName|pack_\r\n|---|---|---|---|---|\r\n|EventsTable1|Some Text2|v1.0.0||{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"}\r\n|EventsTable2|Some Other Text3||Event3|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"}\r\n\r\n\r\n### Search in common and uncommon columns\r\n\r\n\r\n```\r\nfind Version == \'v1.0.0\' or EventName == \'Event1\' project Session_Id, EventText, Version, EventName\r\n```\r\n\r\n|source_|Session_Id|EventText|Version|EventName|\r\n|---|---|---|---|---|\r\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Some Text1|v1.0.0\r\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Some Text2|v1.0.0\r\n|EventsTable2|f7d5f95f-f580-4ea6-830b-5776c8d64fdd|Some Other Text1||Event1\r\n\r\nNote: in practice, *EventsTable1* rows will be filtered with ```Version == \'v1.0.0\'``` predicate and *EventsTable2* rows will be filtered with ```EventName == \'Event1\'``` predicate.\r\n\r\n### Use abbreviated notation to search across all tables in the current database\r\n\r\n\r\n```\r\nfind Session_Id == \'acbd207d-51aa-4df7-bfa7-be70eb68f04e\'\r\n```\r\n\r\n|source_|Session_Id|Level|EventText|pack_|\r\n|---|---|---|---|---|\r\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Text1|{"Version":"v1.0.0"}\r\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Text2|{"Version":"v1.0.0"}\r\n|EventsTable2|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Other Text2|{"EventName":"Event2"}\r\n|EventsTable2|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Other Text3|{"EventName":"Event3"}\r\n\r\n\r\n### Return the results from each row as a property bag\r\n\r\n\r\n```\r\nfind Session_Id == \'acbd207d-51aa-4df7-bfa7-be70eb68f04e\' project pack(*)\r\n```\r\n\r\n|source_|pack_|\r\n|---|---|\r\n|EventsTable1|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Text1", "Version":"v1.0.0"}\r\n|EventsTable1|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Text2", "Version":"v1.0.0"}\r\n|EventsTable2|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Other Text2", "EventName":"Event2"}\r\n|EventsTable2|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Other Text3", "EventName":"Event3"}\r\n\r\n\r\n## Examples of cases where `find` will perform as `union`\r\n\r\n### Using a non tabular expression as find operand\r\n\r\n\r\n```\r\nlet PartialEventsTable1 = view() { EventsTable1 | where Level == \'Error\' };\r\nfind in (PartialEventsTable1, EventsTable2) \r\n where Session_Id == \'acbd207d-51aa-4df7-bfa7-be70eb68f04e\'\r\n```\r\n\r\n### Referencing a column that appears in multiple tables and has multiple types\r\n\r\nAssume we have created two tables by running: \r\n\r\n\r\n```\r\n.create tables \r\n Table1 (Level:string, Timestamp:datetime, ProcessId:string),\r\n Table2 (Level:string, Timestamp:datetime, ProcessId:int64)\r\n```\r\n\r\n* The following query will be executed as `union`:\r\n\r\n```\r\nfind in (Table1, Table2) where ProcessId == 1001\r\n```\r\n\r\nAnd the output result schema will be __(Level:string, Timestamp, ProcessId_string, ProcessId_int)__\r\n\r\n* The following query will, as well, be executed as `union` but will produce a different result schema:\r\n\r\n```\r\nfind in (Table1, Table2) where ProcessId == 1001 project Level, Timestamp, ProcessId:string \r\n```\r\n\r\nAnd the output result schema will be __(Level:string, Timestamp, ProcessId_string)__',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_findoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"floor","An alias for [`bin()`](query_language_binfunction.md).","","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_floorfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"fork","Runs multiple consumer operators in parallel.","**Syntax**\r\n\r\n*T* `|` `fork` [*name*`=`]`(`*subquery*`)` [*name*`=`]`(`*subquery*`)` ...\r\n\r\n**Arguments**\r\n\r\n* *subquery* is a downstream pipeline of query operators\r\n* *name* is a temporary name for the subquery result table\r\n\r\n**Returns**\r\n\r\nMultiple result tables, one for each of the subqueries.\r\n\r\n**Supported Operators**\r\n\r\n[`as`](query_language_asoperator.md), [`count`](query_language_countoperator.md), [`extend`](query_language_extendoperator.md), [`parse`](query_language_parseoperator.md), [`where`](query_language_whereoperator.md), [`take`](query_language_takeoperator.md), [`project`](query_language_projectoperator.md), [`project-away`](query_language_projectawayoperator.md), [`summarize`](query_language_summarizeoperator.md), [`top`](query_language_topoperator.md), [`top-nested`](query_language_topnestedoperator.md), [`sort`](query_language_sortoperator.md), [`mvexpand`](query_language_mvexpandoperator.md), [`reduce`](query_language_reduceoperator.md)\r\n\r\n**Notes**\r\n\r\n* [`materialize`](query_language_materializefunction.md) function can be used as a replacement for using [`join`](query_language_joinoperator.md) or [`union`](query_language_unionoperator.md) on fork legs.\r\nThe input stream will be cached by materialize and then the cached expression can be used in join/union legs.\r\n\r\n* A name, given by the `name` argument or by using [`as`](query_language_asoperator.md) operator will be used as the to name the result tab in [`Kusto.Explorer`](../tools/tools_kusto_explorer.md) tool.\r\n\r\n* Avoid using `fork` with a single subquery.\r\n\r\n* Prefer using [batch](query_language_batches.md) of tabular expression statements over `fork` operator.",'```\r\nKustoLogs\r\n| where Timestamp > ago(1h)\r\n| fork\r\n ( where Level == "Error" | project EventText | limit 100 )\r\n ( project Timestamp, EventText | top 1000 by Timestamp desc)\r\n ( summarize min(Timestamp), max(Timestamp) by ActivityID )\r\n \r\n// In the following examples the result tables will be named: Errors, EventsTexts and TimeRangePerActivityID\r\nKustoLogs\r\n| where Timestamp > ago(1h)\r\n| fork\r\n ( where Level == "Error" | project EventText | limit 100 | as Errors )\r\n ( project Timestamp, EventText | top 1000 by Timestamp desc | as EventsTexts )\r\n ( summarize min(Timestamp), max(Timestamp) by ActivityID | as TimeRangePerActivityID )\r\n \r\n KustoLogs\r\n| where Timestamp > ago(1h)\r\n| fork\r\n Errors = ( where Level == "Error" | project EventText | limit 100 )\r\n EventsTexts = ( project Timestamp, EventText | top 1000 by Timestamp desc )\r\n TimeRangePerActivityID = ( summarize min(Timestamp), max(Timestamp) by ActivityID )\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_forkoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"format_datetime","Formats a datetime parameter based on the format pattern parameter.",'format_datetime(datetime(2015-12-14 02:03:04.12345), \'y-M-d h:m:s.fffffff\') \r\n \r\n => "15-12-14 2:3:4.1234500"\r\n\r\n\r\n**Syntax**\r\n\r\n`format_datetime(`*a_date*,*a_format*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: a `datetime` to format.\r\n* `a_date`: a `format` to use.\r\n\r\n**Returns**\r\n\r\nThe string with the format result.\r\n\r\n**Supported formats**\r\n\r\n|Format specifier\t|Description\t|Examples\r\n|---|---|---\r\n|"d"\t|The day of the month, from 1 through 31. |\t2009-06-01T13:45:30 -> 1, 2009-06-15T13:45:30 -> 15\r\n|"dd"\t|The day of the month, from 01 through 31.|\t2009-06-01T13:45:30 -> 01, 2009-06-15T13:45:30 -> 15\r\n|"f"\t|The tenths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 6, 2009-06-15T13:45:30.05 -> 0\r\n|"ff"\t|The hundredths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 61, 2009-06-15T13:45:30.0050000 -> 00\r\n|"fff"\t|The milliseconds in a date and time value. |6/15/2009 13:45:30.617 -> 617, 6/15/2009 13:45:30.0005 -> 000\r\n|"ffff"\t|The ten thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175000 -> 6175, 2009-06-15T13:45:30.0000500 -> 0000\r\n|"fffff"\t|The hundred thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175400 -> 61754, 2009-06-15T13:45:30.000005 -> 00000\r\n|"ffffff"\t|The millionths of a second in a date and time value. |2009-06-15T13:45:30.6175420 -> 617542, 2009-06-15T13:45:30.0000005 -> 000000\r\n|"fffffff"\t|The ten millionths of a second in a date and time value. |2009-06-15T13:45:30.6175425 -> 6175425, 2009-06-15T13:45:30.0001150 -> 0001150\r\n|"F"\t|If non-zero, the tenths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 6, 2009-06-15T13:45:30.0500000 -> (no output)\r\n|"FF"\t|If non-zero, the hundredths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 61, 2009-06-15T13:45:30.0050000 -> (no output)\r\n|"FFF"\t|If non-zero, the milliseconds in a date and time value. |2009-06-15T13:45:30.6170000 -> 617, 2009-06-15T13:45:30.0005000 -> (no output)\r\n|"FFFF"\t|If non-zero, the ten thousandths of a second in a date and time value. |2009-06-15T13:45:30.5275000 -> 5275, 2009-06-15T13:45:30.0000500 -> (no output)\r\n|"FFFFF"\t|If non-zero, the hundred thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175400 -> 61754, 2009-06-15T13:45:30.0000050 -> (no output)\r\n|"FFFFFF"\t|If non-zero, the millionths of a second in a date and time value. |2009-06-15T13:45:30.6175420 -> 617542, 2009-06-15T13:45:30.0000005 -> (no output)\r\n|"FFFFFFF"\t|If non-zero, the ten millionths of a second in a date and time value. |2009-06-15T13:45:30.6175425 -> 6175425, 2009-06-15T13:45:30.0001150 -> 000115\r\n|"h"\t|The hour, using a 12-hour clock from 1 to 12. |2009-06-15T01:45:30 -> 1, 2009-06-15T13:45:30 -> 1\r\n|"hh"\t|The hour, using a 12-hour clock from 01 to 12. |2009-06-15T01:45:30 -> 01, 2009-06-15T13:45:30 -> 01\r\n|"H"\t|The hour, using a 24-hour clock from 0 to 23. |2009-06-15T01:45:30 -> 1, 2009-06-15T13:45:30 -> 13\r\n|"HH"\t|The hour, using a 24-hour clock from 00 to 23. |2009-06-15T01:45:30 -> 01, 2009-06-15T13:45:30 -> 13\r\n|"m"\t|The minute, from 0 through 59. |2009-06-15T01:09:30 -> 9, 2009-06-15T13:29:30 -> 29\r\n|"mm"\t|The minute, from 00 through 59. |2009-06-15T01:09:30 -> 09, 2009-06-15T01:45:30 -> 45\r\n|"M"\t|The month, from 1 through 12. |2009-06-15T13:45:30 -> 6\r\n|"MM"\t|The month, from 01 through 12.|2009-06-15T13:45:30 -> 06\r\n|"s"\t|The second, from 0 through 59. |2009-06-15T13:45:09 -> 9\r\n|"ss"\t|The second, from 00 through 59. |2009-06-15T13:45:09 -> 09\r\n|"y"\t|The year, from 0 to 99. |0001-01-01T00:00:00 -> 1, 0900-01-01T00:00:00 -> 0, 1900-01-01T00:00:00 -> 0, 2009-06-15T13:45:30 -> 9, 2019-06-15T13:45:30 -> 19\r\n|"yy"\t|The year, from 00 to 99. |\t0001-01-01T00:00:00 -> 01, 0900-01-01T00:00:00 -> 00, 1900-01-01T00:00:00 -> 00, 2019-06-15T13:45:30 -> 19\r\n|"yyyy"\t|The year as a four-digit number. |\t0001-01-01T00:00:00 -> 0001, 0900-01-01T00:00:00 -> 0900, 1900-01-01T00:00:00 -> 1900, 2009-06-15T13:45:30 -> 2009\r\n|"tt"\t|AM / PM hours |2009-06-15T13:45:09 -> PM\r\n\r\n**Supported delimeters**\r\n\r\n\' \', \'/\', \'-\', \':\', \',\', \'.\', \'_\', \'[\', \']\'',"```\r\nformat_datetime(datetime(2017-01-29 09:00:05), 'yy-MM-dd [HH:mm:ss]') //'17-01-29 [09:00:05]'\r\nformat_datetime(datetime(2017-01-29 09:00:05), 'yyyy-M-dd [H:mm:ss]') //'2017-1-29 [9:00:05]'\r\nformat_datetime(datetime(2017-01-29 09:00:05), 'yy-MM-dd [hh:mm:ss tt]') //'17-01-29 [09:00:05 AM]'\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_format_datetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"format_timespan","Formats a timespan parameter based on the format pattern parameter.",'format_timespan(time(14.02:03:04.12345), \'h:m:s.fffffff\') \r\n \r\n => "2:3:4.1234500"\r\n\r\n\r\n**Syntax**\r\n\r\n`format_timespan(`*a_timespan*,*a_format*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_timespan`: a `timespan` to format.\r\n* `a_format`: a `format` to use.\r\n\r\n**Returns**\r\n\r\nThe string with the format result.\r\n\r\n**Supported formats**\r\n\r\n|Format specifier\t|Description\t|Examples\r\n|---|---|---\r\n|"d"-"dddddddd"\t|The number of whole days in the time interval. Padded with zeros if needed.|\t15.13:45:30: d -> 15, dd -> 15, ddd -> 015\r\n|"f"\t|The tenths of a second in the time interval. |15.13:45:30.6170000 -> 6, 15.13:45:30.05 -> 0\r\n|"ff"\t|The hundredths of a second in the time interval. |15.13:45:30.6170000 -> 61, 15.13:45:30.0050000 -> 00\r\n|"fff"\t|The milliseconds in the time interval. |6/15/2009 13:45:30.617 -> 617, 6/15/2009 13:45:30.0005 -> 000\r\n|"ffff"\t|The ten thousandths of a second in the time interval. |15.13:45:30.6175000 -> 6175, 15.13:45:30.0000500 -> 0000\r\n|"fffff"\t|The hundred thousandths of a second in the time interval. |15.13:45:30.6175400 -> 61754, 15.13:45:30.000005 -> 00000\r\n|"ffffff"\t|The millionths of a second in the time interval. |15.13:45:30.6175420 -> 617542, 15.13:45:30.0000005 -> 000000\r\n|"fffffff"\t|The ten millionths of a second in the time interval. |15.13:45:30.6175425 -> 6175425, 15.13:45:30.0001150 -> 0001150\r\n|"F"\t|If non-zero, the tenths of a second in the time interval. |15.13:45:30.6170000 -> 6, 15.13:45:30.0500000 -> (no output)\r\n|"FF"\t|If non-zero, the hundredths of a second in the time interval. |15.13:45:30.6170000 -> 61, 15.13:45:30.0050000 -> (no output)\r\n|"FFF"\t|If non-zero, the milliseconds in the time interval. |15.13:45:30.6170000 -> 617, 15.13:45:30.0005000 -> (no output)\r\n|"FFFF"\t|If non-zero, the ten thousandths of a second in the time interval. |15.13:45:30.5275000 -> 5275, 15.13:45:30.0000500 -> (no output)\r\n|"FFFFF"\t|If non-zero, the hundred thousandths of a second in the time interval. |15.13:45:30.6175400 -> 61754, 15.13:45:30.0000050 -> (no output)\r\n|"FFFFFF"\t|If non-zero, the millionths of a second in the time interval. |15.13:45:30.6175420 -> 617542, 15.13:45:30.0000005 -> (no output)\r\n|"FFFFFFF"\t|If non-zero, the ten millionths of a second in the time interval. |15.13:45:30.6175425 -> 6175425, 15.13:45:30.0001150 -> 000115\r\n|"h"\t|The number of whole hours in the time interval that are not counted as part of days. Single-digit hours do not have a leading zero. |15.01:45:30 -> 1, 15.13:45:30 -> 1\r\n|"hh"\t|The number of whole hours in the time interval that are not counted as part of days. Single-digit hours have a leading zero. |15.01:45:30 -> 01, 15.13:45:30 -> 01\r\n|"H"\t|The hour, using a 24-hour clock from 0 to 23. |15.01:45:30 -> 1, 15.13:45:30 -> 13\r\n|"HH"\t|The hour, using a 24-hour clock from 00 to 23. |15.01:45:30 -> 01, 15.13:45:30 -> 13\r\n|"m"\t|The number of whole minutes in the time interval that are not included as part of hours or days. Single-digit minutes do not have a leading zero. |15.01:09:30 -> 9, 15.13:29:30 -> 29\r\n|"mm"\t|The number of whole minutes in the time interval that are not included as part of hours or days. Single-digit minutes have a leading zero. |15.01:09:30 -> 09, 15.01:45:30 -> 45\r\n|"s"\t|The number of whole seconds in the time interval that are not included as part of hours, days, or minutes. Single-digit seconds do not have a leading zero. |15.13:45:09 -> 9\r\n|"ss"\t|The number of whole seconds in the time interval that are not included as part of hours, days, or minutes. Single-digit seconds have a leading zero. |15.13:45:09 -> 09\r\n\r\n\r\n**Supported delimeters**\r\n\r\n\' \', \'/\', \'-\', \':\', \',\', \'.\', \'_\', \'[\', \']\'\'',"```\r\nformat_timespan(time(29.09:00:05.12345), 'dd.hh:mm:ss [FF]') //'29.09:00:05 [12]'\r\nformat_timespan(time(29.09:00:05.12345), 'ddd.h:mm:ss [fff]') //'029.9:00:05 [123]'\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_format_timespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"gamma","Computes [gamma function](https://en.wikipedia.org/wiki/Gamma_function)","**Syntax**\r\n\r\n`gamma(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Parameter for the gamma function\r\n\r\n**Returns**\r\n\r\n* Gamma function of x.\r\n* For computing log-gamma function, see [loggamma()](query_language_loggammafunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_gammafunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"getmonth","Get the month number (1-12) from a datetime.","","```\r\nT \r\n| extend month = getmonth(datetime(2015-10-12))\r\n// month == 10\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"getschema","Produce a table that represents a tabular schema of the input.","T | summarize MyCount=count() by Country | getschema \r\n\r\n**Syntax**\r\n\r\n*T* `| ` `getschema`","```\r\nStormEvents\r\n| top 10 by Timestamp\r\n| getschema\r\n```\r\n\r\n|ColumnName|ColumnOrdinal|DataType|ColumnType|\r\n|---|---|---|---|\r\n|Timestamp|0|Bridge.global.System.DateTime|datetime|\r\n|Language|1|Bridge.global.System.String|string|\r\n|Page|2|Bridge.global.System.String|string|\r\n|Views|3|Bridge.global.System.Int64|long\r\n|BytesDelivered|4|Bridge.global.System.Int64|long","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getschemaoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"gettype","Returns the runtime type of its single argument.","The runtime type may be different than the nominal (static) type for expressions\r\nwhose nominal type is `dynamic`; in such cases `gettype()` can be useful to reveal\r\nthet type of the actual value (how the value is encoded in memory).\r\n\r\n**Syntax**\r\n\r\n* `gettype(`*Expr*`)`\r\n\r\n**Returns**\r\n\r\nA string representing the runtime type of its single argument.","|Expression |Returns |\r\n|------------------------------------|-------------|\r\n|`gettype(\"a\")` |`string` |\r\n|`gettype(111)` |`long` |\r\n|`gettype(1==1)` |`bool` |\r\n|`gettype(now())` |`datetime` |\r\n|`gettype(1s)` |`timespan` |\r\n|`gettype(parsejson('1'))` |`int` |\r\n|`gettype(parsejson(' \"abc\" '))` |`string` |\r\n|`gettype(parsejson(' {\"abc\":1} '))` |`dictionary` | \r\n|`gettype(parsejson(' [1, 2, 3] '))` |`array` |\r\n|`gettype(123.45)` |`real` |\r\n|`gettype(guid(12e8b78d-55b4-46ae-b068-26d7a0080254))`|`guid`| \r\n|`gettype(parsejson(''))` |`null`|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_gettypefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"getyear","Returns the year part of the `datetime` argument.","","```\r\nT\r\n| extend year = getyear(datetime(2015-10-12))\r\n// year == 2015\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hash","Returns a hash value for the input value.","**Syntax**\r\n\r\n`hash(`*source* [`,` *mod*]`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The value to be hashed.\r\n* *mod*: An optional module value to be applied to the hash result, so that\r\n the output value is between `0` and *mod* - 1\r\n\r\n**Returns**\r\n\r\nThe hash value of the given scalar, modulo the given mod value (if specified).\r\n\r\n
The algorithm used to calculate the hash is xxhash.\r\nThis algorithm might change in the future; callers are only guaranteed that\r\nwithin a single query all invocations of this method will use the same\r\nalgorithm.
",'```\r\nhash("World") // 1846988464401551951\r\nhash("World", 100) // 51 (1846988464401551951 % 100)\r\nhash(datetime("2015-01-01")) // 1380966698541616202\r\n```\r\n\r\nThe following example uses the hash function to run a query on 10% of the data,\r\nIt is helpful to use the hash function for sampling the data when assuming the value is uniformly distributed (In this example StartTime value)\r\n\r\n\r\n```\r\nStormEvents \r\n| where hash(StartTime, 10) == 0\r\n| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State \r\n| top 5 by StormCount desc\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hashfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hash_sha256","Returns a sha256 hash value for the input value.","**Syntax**\r\n\r\n`hash_sha256(`*source*`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The value to be hashed.\r\n\r\n**Returns**\r\n\r\nThe sha256 hash value of the given scalar.",'```\r\nhash_sha256("World") // 78ae647dc5544d227130a0682a51e30bc7777fbb6d8a8f17007463a3ecd1d524\r\nhash_sha256(datetime("2015-01-01")) // e7ef5635e188f5a36fafd3557d382bbd00f699bd22c671c3dea6d071eb59fbf8\r\n\r\n```\r\n\r\nThe following example uses the hash_sha256 function to run a query on SatrtTime column of the data\r\n\r\n\r\n```\r\nStormEvents \r\n| where hash_sha256(StartTime) == 0\r\n| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State \r\n| top 5 by StormCount desc\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sha256hashfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hll","Calculates the Intermediate results of [dcount](query_language_dcount_aggfunction.md) across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\r\n\r\nRead more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\r\n\r\n**Syntax**\r\n\r\n`summarize` `hll(`*Expr* [`,` *Accuracy*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *Accuracy*, if specified, controls the balance between speed and accuracy.\r\n * `0` = the least accurate and fastest calculation. 1.6% error\r\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\r\n * `2` = accurate and slow calculation; about 0.4% error.\r\n * `3` = extra accurate and slow calculation; about 0.28% error.\r\n * `4` = super accurate and slowest calculation; about 0.2% error.\r\n\t\r\n**Returns**\r\n\r\nThe Intermediate results of distinct count of *Expr* across the group.\r\n \r\n**Tips**\r\n\r\n1) You may use the aggregation function [hll_merge](query_language_hll_merge_aggfunction.md) to merge more than one hll intermediate results (it works on hll output only).\r\n\r\n2) You may use the function [dcount_hll] (query_language_dcount_hllfunction.md) which will calculate the dcount from hll / hll_merge aggregation functions.","```\r\nStormEvents\r\n| summarize hll(DamageProperty) by bin(StartTime,10m)\r\n\r\n```\r\n\r\n|StartTime|hll_DamageProperty|\r\n|---|---|\r\n|2007-09-18 20:00:00.0000000|[[1024,14],[-5473486921211236216,-6230876016761372746,3953448761157777955,4246796580750024372],[]]|\r\n|2007-09-20 21:50:00.0000000|[[1024,14],[4835649640695509390],[]]|\r\n|2007-09-29 08:10:00.0000000|[[1024,14],[4246796580750024372],[]]|\r\n|2007-12-30 16:00:00.0000000|[[1024,14],[4246796580750024372,-8936707700542868125],[]]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hll_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hll_merge","Merges HLL results across the group into single HLL value.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\r\n\r\nRead more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\r\n\r\n**Syntax**\r\n\r\n`summarize` `hll_merge(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe merged hll values of *Expr* across the group.\r\n \r\n**Tips**\r\n\r\n1) You may use the function [dcount_hll] (query_language_dcount_hllfunction.md) which will calculate the dcount from hll / hll_merge aggregation functions.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hll_merge_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hourofday","Returns the integer number representing the hour number of the given date","hourofday(datetime(2015-12-14 18:54)) == 18\r\n\r\n**Syntax**\r\n\r\n`hourofday(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\n`hour number` of the day (0-23).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hourofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iff","Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).","The second and third arguments must be of the same type.\r\n\r\n**Syntax**\r\n\r\n`iff(`*predicate*`,` *ifTrue*`,` *ifFalse*`)`\r\n\r\n**Arguments**\r\n\r\n* *predicate*: An expression that evaluates to a `boolean` value.\r\n* *ifTrue*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `true`.\r\n* *ifFalse*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `false`.\r\n\r\n**Returns**\r\n\r\nThis function returns the value of *ifTrue* if *predicate* evaluates to `true`,\r\nor the value of *ifFalse* otherwise.",'```\r\nT \r\n| extend day = iff(floor(Timestamp, 1d)==floor(now(), 1d), "today", "anotherday")\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ifffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iif","Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).","The second and third arguments must be of the same type.\r\n\r\n**Syntax**\r\n\r\n`iif(`*predicate*`,` *ifTrue*`,` *ifFalse*`)`\r\n\r\n**Arguments**\r\n\r\n* *predicate*: An expression that evaluates to a `boolean` value.\r\n* *ifTrue*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `true`.\r\n* *ifFalse*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `false`.\r\n\r\n**Returns**\r\n\r\nThis function returns the value of *ifTrue* if *predicate* evaluates to `true`,\r\nor the value of *ifFalse* otherwise.",'```\r\nT \r\n| extend day = iif(floor(Timestamp, 1d)==floor(now(), 1d), "today", "anotherday")\r\n```\r\n\r\nAn alias for [`iff()`](query_language_ifffunction.md).',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_iiffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"in","Filters a recordset based on the provided set of values.",'Table1 | where col in (\'value1\', \'value2\')\r\n\r\n\r\n**Syntax**\r\n\r\n*Case sensitive syntax:*\r\n\r\n*T* `|` `where` *col* `in` `(`*list of scalar expressions*`)` \r\n*T* `|` `where` *col* `in` `(`*tabular expression*`)` \r\n \r\n*T* `|` `where` *col* `!in` `(`*list of scalar expressions*`)` \r\n*T* `|` `where` *col* `!in` `(`*tabular expression*`)` \r\n\r\n*Case insensitive syntax:*\r\n\r\n*T* `|` `where` *col* `in~` `(`*list of scalar expressions*`)` \r\n*T* `|` `where` *col* `in~` `(`*tabular expression*`)` \r\n \r\n*T* `|` `where` *col* `!in~` `(`*list of scalar expressions*`)` \r\n*T* `|` `where` *col* `!in~` `(`*tabular expression*`)` \r\n\r\n**Arguments**\r\n\r\n* *T* - The tabular input whose records are to be filtered.\r\n* *col* - the column to filter.\r\n* *list of expressions* - a comma separated list of tabular, scalar or literal expressions \r\n* *tabular expression* - a tabular expression that has a set of values (in a case expression has multiple columns, the first column is used)\r\n\r\n**Returns**\r\n\r\nRows in *T* for which the predicate is `true`\r\n\r\n**Notes**\r\n\r\n* The expression list can produce up to `1,000,000` values \r\n* Nested arrays are flattened into a single list of values, for example `x in (dynamic([1,[2,3]]))` turns into `x in (1,2,3)` \r\n* In case of tabular expressions, the first column of the result set is selected \r\n* Adding \'~\' to operator makes values\' search case insensitive: `x in~ (expresion)` or `x !in~ (expression)`.\r\n\r\n**Examples:** \r\n\r\n**A simple usage of \'in\' operator:** \r\n\r\n\r\n```\r\nStormEvents \r\n| where State in ("FLORIDA", "GEORGIA", "NEW YORK") \r\n| count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|4775| \r\n\r\n\r\n**A simple usage of \'in~\' operator:** \r\n\r\n\r\n```\r\nStormEvents \r\n| where State in~ ("Florida", "Georgia", "New York") \r\n| count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|4775| \r\n\r\n**A simple usage of \'!in\' operator:** \r\n\r\n\r\n```\r\nStormEvents \r\n| where State !in ("FLORIDA", "GEORGIA", "NEW YORK") \r\n| count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|54291| \r\n\r\n\r\n**Using dynamic array:**\r\n\r\n```\r\nlet states = dynamic([\'FLORIDA\', \'ATLANTIC SOUTH\', \'GEORGIA\']);\r\nStormEvents \r\n| where State in (states)\r\n| count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|3218|\r\n\r\n\r\n**A subquery example:** \r\n\r\n\r\n```\r\n// Using subquery\r\nlet Top_5_States = \r\nStormEvents\r\n| summarize count() by State\r\n| top 5 by count_; \r\nStormEvents \r\n| where State in (Top_5_States) \r\n| count\r\n```\r\n\r\nThe same query can be written as:\r\n\r\n\r\n```\r\n// Inline subquery \r\nStormEvents \r\n| where State in (\r\n ( StormEvents\r\n | summarize count() by State\r\n | top 5 by count_ )\r\n) \r\n| count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|14242| \r\n\r\n**Top with other example:** \r\n\r\n\r\n```\r\nlet Death_By_State = materialize(StormEvents | summarize deaths = sum(DeathsDirect) by State);\r\nlet Top_5_States = Death_By_State | top 5 by deaths | project State; \r\nDeath_By_State\r\n| extend State = iif(State in (Top_5_States), State, "Other")\r\n| summarize sum(deaths) by State \r\n\r\n\r\n```\r\n\r\n|State|sum_deaths|\r\n|---|---|\r\n|ALABAMA|29|\r\n|ILLINOIS|29|\r\n|CALIFORNIA|48|\r\n|FLORIDA|57|\r\n|TEXAS|71|\r\n|Other|286|\r\n\r\n\r\n**Using a static list returned by a function:** \r\n\r\n\r\n```\r\nStormEvents | where State in (InterestingStates()) | count\r\n\r\n```\r\n\r\n|Count|\r\n|---|\r\n|4775| \r\n\r\n\r\nHere is the function definition: \r\n\r\n\r\n```\r\n.show function InterestingStates\r\n\r\n```\r\n\r\n|Name|Parameters|Body|Folder|DocString|\r\n|---|---|---|---|---|\r\n|InterestingStates|()|{ dynamic(["WASHINGTON", "FLORIDA", "GEORGIA", "NEW YORK"]) }',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_inoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"indexof","Function reports the zero-based index of the first occurrence of a specified string within input string.","If lookup or input string is not of string type - forcibly casts the value to string.\r\n\r\n**Syntax**\r\n\r\n`indexof(`*source*`,`*lookup*`[,`*start_index*`[,`*length*`]])`\r\n\r\n**Arguments**\r\n\r\n* *source*: input string. \r\n* *lookup*: string to seek.\r\n* *start_index*: search start position (optional).\r\n* *length*: number of character positions to examine (optional).\r\n\r\n**Returns**\r\n\r\nZero-based index position of *lookup*.\r\n\r\nReturns -1 if the string is not found in the input.\r\n\r\nIn case of irrelevant (less than 0) *start_index* or *length* parameter - returns *null*.",'```\r\nrange x from 1 to 1 step 1\r\n| project idx1 = indexof("abcdefg","cde") // lookup found in input string\r\n| extend idx2 = indexof("abcdefg","cde",1,4) // lookup found in researched range \r\n| extend idx3 = indexof("abcdefg","cde",1,2) // search starts from index 1, but stops after 2 chars, so full lookup can\'t be found\r\n| extend idx4 = indexof("abcdefg","cde",3,4) // search starts after occurrence of lookup\r\n| extend idx5 = indexof("abcdefg","cde",-1) // invalid input\r\n| extend idx6 = indexof(1234567,5,1,4) // two first parameters were forcibly casted to strings "12345" and "5"\r\n```\r\n\r\n|idx1|idx2|idx3|idx4|idx5|idx6|\r\n|---|---|---|---|---|---|\r\n|2|2|-1|-1||4|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_indexoffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ingestion_time","Retrieves the record's `$IngestionTime` hidden `datetime` column, or null.","The `$IngestionTime` column is automatically defined when the table's\r\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) is set (enabled).\r\nIf the table does not have this policy defined, a null value is returned.\r\n\r\nThis function must be used in the context of an actual table in order\r\nto return the relevant data. (For example, it will return null for all records\r\nif it is invoked following a `summarize` operator).\r\n\r\n**Syntax**\r\n\r\n `ingestion_time()`\r\n\r\n**Returns**\r\n\r\nA `datetime` value specifying the approximate time of ingestion into a table.","```\r\nT \r\n| extend ingestionTime = ingestion_time() | top 10 by ingestionTime\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ingestiontimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"invoke","Invokes lambda that receives the source of `invoke` as tablular parameter argument.","T | invoke foo(param1, param2)\r\n\r\n**Syntax**\r\n\r\n`T | invoke` *function*`(`[*param1*`,` *param2*]`)`\r\n\r\n**Arguments**\r\n\r\n* *T*: The tabular source.\r\n* *function*: The name of the lambda expression or function name to be evaluated.\r\n* *param1*, *param2* ... : additional lambda arguments.\r\n\r\n**Returns**\r\n\r\nReturns the result of the evaluated expression.\r\n\r\n**Notes**\r\n\r\nSee [let statements](./query_language_letstatement.md) for more details how to declare lambda expressions that can accept tabular arguments.","The following example shows how to use `invoke` operator to call lambda expression:\r\n\r\n\r\n```\r\n// clipped_average(): calculates percentiles limits, and then makes another \r\n// pass over the data to calcualte average with values inisde the percentiles\r\nlet clipped_average = (T:(x: long), lowPercentile:double, upPercentile:double)\r\n{\r\n let high = toscalar(T | summarize percentiles(x, upPercentile));\r\n let low = toscalar(T | summarize percentiles(x, lowPercentile));\r\n T \r\n | where x > low and x < high\r\n | summarize avg(x) \r\n};\r\nrange x from 1 to 100 step 1\r\n| invoke clipped_average(5, 99)\r\n```\r\n\r\n|avg_x|\r\n|---|\r\n|52|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_invokeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iscolumnexists","Returns a boolean value indicating if the given string argument exists in the schema produced by the preceding tabular operator.",'**Syntax**\r\n\r\n`iscolumnexists(`*value*`)\r\n\r\n**Arguments**\r\n\r\n* *value*: A string\r\n\r\n**Returns**\r\n\r\nA boolean indicating if the given string argument exists in the schema produced by the preceding tabular operator.\r\n**Examples**\r\n\r\n\r\n```\r\n.create function with (docstring = "Returns a boolean indicating whether a column exists in a table", folder="My Functions")\r\nDoesColumnExistInTable(tableName:string, columnName:string)\r\n{\r\n\ttable(tableName) | limit 1 | project ColumnExists = iscolumnexists(columnName) \r\n}\r\n\r\nDoesColumnExistInTable("StormEvents", "StartTime")\r\n```',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_iscolumnexistsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isempty","Returns `true` if the argument is an empty string or is null.",'isempty("") == true\r\n\r\n**Syntax**\r\n\r\n`isempty(`[*value*]`)`\r\n\r\n**Returns**\r\n\r\nIndicates whether the argument is an empty string or isnull.\r\n\r\n|x|isempty(x)\r\n|---|---\r\n| "" | true\r\n|"x" | false\r\n|parsejson("")|true\r\n|parsejson("[]")|false\r\n|parsejson("{}")|false',"```\r\nT\r\n| where isempty(fieldName)\r\n| count\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isemptyfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isfinite","Returns whether input is a finite value (is neither infinite nor NaN).","**Syntax**\r\n\r\n`isfinite(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\nA non-zero value (true) if x is finite; and zero (false) otherwise.\r\n\r\n**See also**\r\n\r\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\r\n* For checking if value is infinite, see [isinf()](query_language_isinffunction.md).\r\n* For checking if value is NaN (Not-a-Number), see [isnan()](query_language_isnanfunction.md).","```\r\nrange x from -1 to 1 step 1\r\n| extend y = 0.0\r\n| extend div = 1.0*x/y\r\n| extend isfinite=isfinite(div)\r\n```\r\n\r\n|x|y|div|isfinite|\r\n|---|---|---|---|\r\n|-1|0|-∞|0|\r\n|0|0|NaN|0|\r\n|1|0|∞|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isfinitefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isinf","Returns whether input is an infinite (positive or negative) value.","**Syntax**\r\n\r\n`isinf(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\nA non-zero value (true) if x is a positive or negative infinite; and zero (false) otherwise.\r\n\r\n**See also**\r\n\r\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\r\n* For checking if value is finite, see [isfinite()](query_language_isfinitefunction.md).\r\n* For checking if value is NaN (Not-a-Number), see [isnan()](query_language_isnanfunction.md).","```\r\nrange x from -1 to 1 step 1\r\n| extend y = 0.0\r\n| extend div = 1.0*x/y\r\n| extend isinf=isinf(div)\r\n```\r\n\r\n|x|y|div|isinf|\r\n|---|---|---|---|\r\n|-1|0|-∞|1|\r\n|0|0|NaN|0|\r\n|1|0|∞|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isinffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnan","Returns whether input is Not-a-Number (NaN) value.","**Syntax**\r\n\r\n`isnan(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\nA non-zero value (true) if x is NaN; and zero (false) otherwise.\r\n\r\n**See also**\r\n\r\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\r\n* For checking if value is finite, see [isfinite()](query_language_isfinitefunction.md).\r\n* For checking if value is infinite, see [isinf()](query_language_isinffunction.md).","```\r\nrange x from -1 to 1 step 1\r\n| extend y = (-1*x) \r\n| extend div = 1.0*x/y\r\n| extend isnan=isnan(div)\r\n```\r\n\r\n|x|y|div|isnan|\r\n|---|---|---|---|\r\n|-1|1|-1|0|\r\n|0|0|NaN|1|\r\n|1|-1|-1|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnotempty","Returns `true` if the argument is not an empty string nor it is a null.",'isnotempty("") == false\r\n\r\n**Syntax**\r\n\r\n`isnotempty(`[*value*]`)`\r\n\r\n`notempty(`[*value*]`)` -- alias of `isnotempty`',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnotemptyfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnotnull","Returns `true` if the argument is not null.","**Syntax**\r\n\r\n`isnotnull(`[*value*]`)`\r\n\r\n`notnull(`[*value*]`)` - alias for `isnotnull`","```\r\nT | where isnotnull(PossiblyNull) | count\r\n```\r\n\r\nNotice that there are other ways of achieving this effect:\r\n\r\n\r\n```\r\nT | summarize count(PossiblyNull)\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnotnullfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnull","Evaluates its sole argument and returns a `bool` value indicating if the argument evaluates to a null value.",'isnull(parsejson("")) == true\r\n\r\n**Syntax**\r\n\r\n`isnull(`*Expr*`)`\r\n\r\n**Returns**\r\n\r\nTrue or false depending on the whether the value is null or not null.\r\n\r\n**Comments**\r\n\r\n* `string` values cannot be null. Use [isempty](./query_language_isemptyfunction.md)\r\n to determine if a value of type `string` is empty or not.\r\n\r\n|x |`isnull(x)`|\r\n|-----------------|-----------|\r\n|`""` |`false` |\r\n|`"x"` |`false` |\r\n|`parsejson("")` |`true` |\r\n|`parsejson("[]")`|`false` |\r\n|`parsejson("{}")`|`false` |',"```\r\nT | where isnull(PossiblyNull) | count\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnullfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"join","Merge the rows of two tables to form a new table by matching values of the specified column(s) from each table.","Table1 | join (Table2) on CommonColumn, $left.Col1 == $right.Col2\r\n\r\n**Syntax**\r\n\r\n*LeftTable* `|` `join` [*JoinParameters*] `(` *RightTable* `)` `on` *Attributes*\r\n\r\n**Arguments**\r\n\r\n* *LeftTable*: The **left** table or tabular expression (sometimes called **outer** table) whose rows are to be merged. Denoted as `$left`.\r\n\r\n* *RightTable*: The **right** table or tabular expression (sometimes called **inner* table) whose rows are to be merged. Denoted as `$right`.\r\n\r\n* *Attributes*: One or more (comma-separated) rules that describe how rows from\r\n *LeftTable* are matched to rows from *RightTable*. A rule can be one of:\r\n |Rule kind |Syntax |Predicate |\r\n |-----------------|------------------------------------------------|---------------------------------------------------------------|\r\n |Equality by name |*ColumnName* |`where` *LeftTable*.*ColumnName* `==` *RightTable*.*ColumnName*|\r\n |Equality by value|`$left.`*LeftColumn* `==` `$right.`*RightColumn*|`where` `$left.`*LeftColumn* `==` `$right.`*RightColumn |\r\n\r\n* *JoinParameters*: Zero or more (space-separated) parameters in the form of\r\n *Name* `=` *Value* that control the behavior\r\n of the row-match operation and execution plan. The following parameters are supported:\r\n |Name |Values |Description|\r\n |------|---------------------------------------------------------------------------|-----------|\r\n |`kind`|`fullouter`, `inner`, `innerunique`, `leftanti`, `leftantisemi`,
`leftouter`, `leftsemi`, `rightanti`, `rightantisemi`, `rightouter`, `rightsemi`|See below|\r\n |`hint.remote`|`auto`, `left`, `local`, `right`|See [Cross-Cluster Join](query_language_joincrosscluster.md)|\r\n |`hint.strategy`|`broadcast`, `centralized`||\r\n\r\n**Returns**\r\n\r\nA table with:\r\n\r\n* A column for every column in each of the two tables, including the matching keys. The columns of the right side will be automatically renamed if there are name clashes.\r\n* A row for every match between the input tables. A match is a row selected from one table that has the same value for all the `on` fields as a row in the other table. \r\n\r\n * `kind` unspecified, `kind=innerunique`\r\n\r\n Only one row from the left side is matched for each value of the `on` key. The output contains a row for each match of this row with rows from the right.\r\n\r\n * `Kind=inner`\r\n \r\n There's a row in the output for every combination of matching rows from left and right.\r\n\r\n * `kind=leftouter` (or `kind=rightouter` or `kind=fullouter`)\r\n\r\n In addition to the inner matches, there's a row for every row on the left (and/or right), even if it has no match. In that case, the unmatched output cells contain nulls.\r\n\r\n * `kind=leftanti` (or `kind=rightanti`)\r\n\r\n Returns all the records from the left side that do not have matches from the right. The result table just has the columns from the left side. \r\n Equivalent to `kind=leftantisemi`.\r\n\r\n * `kind=leftsemi` (or `kind=rightsemi`)\r\n\r\n Returns all the records from the left side that have matches from the right. The result table contains columns from the left side only. \r\n \r\nIf there are several rows with the same values for those fields, you'll get rows for all the combinations.\r\n\r\n**Tips**\r\n\r\nFor best performance:\r\n\r\n* Use `where` and `project` to reduce the numbers of rows and columns in the input tables, before the `join`. \r\n* If one table is always smaller than the other, use it as the left (piped) side of the join.\r\n* The columns for the join match must have the same name. Use the project operator if necessary to rename a column in one of the tables.","Get extended activities from a log in which some entries mark the start and end of an activity. \r\n\r\n\r\n```\r\nlet Events = MyLogTable | where type==\"Event\" ;\r\nEvents\r\n| where Name == \"Start\"\r\n| project Name, City, ActivityId, StartTime=timestamp\r\n| join (Events\r\n | where Name == \"Stop\"\r\n | project StopTime=timestamp, ActivityId)\r\n on ActivityId\r\n| project City, ActivityId, StartTime, StopTime, Duration, StopTime, StartTime\r\n```\r\n\r\n```\r\nlet Events = MyLogTable | where type==\"Event\" ;\r\nEvents\r\n| where Name == \"Start\"\r\n| project Name, City, ActivityIdLeft = ActivityId, StartTime=timestamp\r\n| join (Events\r\n | where Name == \"Stop\"\r\n | project StopTime=timestamp, ActivityIdRight = ActivityId)\r\n on $left.ActivityIdLeft == $right.ActivityIdRight\r\n| project City, ActivityId, StartTime, StopTime, Duration, StopTime, StartTime\r\n```\r\n\r\n[More about this example](./query_language_samples.md#activities).\r\n\r\n# Join flavors\r\n\r\nThe exact flavor of the join operator is specified with the kind keyword. As of today, Kusto\r\nsupports the following flavors of the join operator: \r\n- [inner join with left side deduplication (the default)](#default-join-flavor) \r\n- [standard inner join](#inner-join)\r\n- [left outer join](#left-outer-join)\r\n- [right outer join](#right-outer-join)\r\n- [full outer join](#full-outer-join)\r\n- [left anti join](#left-anti-join)\r\n- [right anti join](#right-anti-join)\r\n- [left semi join](#left-semi-join)\r\n- [right semi join](#right-semi-join)\r\n \r\n## Default join flavor\r\n \r\n X | join Y on Key\r\n X | join kind=innerunique Y on Key\r\n \r\nLet's use two sample tables to explain the operation of the join: \r\n \r\nTable X \r\n\r\n|Key |Value1 \r\n|---|---\r\n|a |1 \r\n|b |2 \r\n|b |3 \r\n|c |4 \r\n\r\nTable Y \r\n\r\n|Key |Value2 \r\n|---|---\r\n|b |10 \r\n|c |20 \r\n|c |30 \r\n|d |40 \r\n \r\nThe default join performs an inner join after de-duplicating the left side on the join key (deduplication retains the first record). \r\nGiven this statement: \r\n\r\n X | join Y on Key \r\n\r\nthe effective left side of the join (table X after de-duplication) would be: \r\n\r\n|Key |Value1 \r\n|---|---\r\n|a |1 \r\n|b |2 \r\n|c |4 \r\n\r\nand the result of the join would be: \r\n\r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join Y on Key\r\n```\r\n\r\n|Key|Value1|Key1|Value2|\r\n|---|---|---|---|\r\n|b|2|b|10|\r\n|c|4|c|20|\r\n|c|4|c|30|\r\n\r\n\r\n(Note that the keys 'a' and 'd' do not appear in the output, since there were no matching keys on both left and right sides). \r\n \r\n(Historically, this was the first implementation of the join supported by the initial version of Kusto; it is useful in the typical log/trace analysis scenarios where we want to correlate two events (each matching some filtering criterion) under the same correlation ID, and get back all appearances of the phenomenon we're looking for, ignoring multiple appearances of the contributing trace records.)\r\n \r\n## Inner join\r\n\r\nThis is the standard inner join as known from the SQL world. Output record is produced whenever a record on the left side has the same join key as the record on the right side. \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=inner Y on Key\r\n```\r\n\r\n|Key|Value1|Key1|Value2|\r\n|---|---|---|---|\r\n|b|3|b|10|\r\n|b|2|b|10|\r\n|c|4|c|20|\r\n|c|4|c|30|\r\n\r\nNote that (b,10) coming from the right side was joined twice: with both (b,2) and (b,3) on the left; also (c,4) on the left was joined twice: with both (c,20) and (c,30) on the right. \r\n\r\n## Left outer join \r\n\r\nThe result of a left outer join for tables X and Y always contains all records of the left table (X), even if the join condition does not find any matching record in the right table (Y). \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=leftouter Y on Key\r\n```\r\n\r\n|Key|Value1|Key1|Value2|\r\n|---|---|---|---|\r\n|b|3|b|10|\r\n|b|2|b|10|\r\n|c|4|c|20|\r\n|c|4|c|30|\r\n|a|1|||\r\n\r\n \r\n## Right outer join \r\n\r\nResembles the left outer join, but the treatment of the tables is reversed. \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=rightouter Y on Key\r\n```\r\n\r\n|Key|Value1|Key1|Value2|\r\n|---|---|---|---|\r\n|b|3|b|10|\r\n|b|2|b|10|\r\n|c|4|c|20|\r\n|c|4|c|30|\r\n|||d|40|\r\n\r\n \r\n## Full outer join \r\n\r\nConceptually, a full outer join combines the effect of applying both left and right outer joins. Where records in the joined tables do not match, the result set will have NULL values for every column of the table that lacks a matching row. For those records that do match, a single row will be produced in the result set (containing fields populated from both tables). \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=fullouter Y on Key\r\n```\r\n\r\n|Key|Value1|Key1|Value2|\r\n|---|---|---|---|\r\n|b|3|b|10|\r\n|b|2|b|10|\r\n|c|4|c|20|\r\n|c|4|c|30|\r\n|||d|40|\r\n|a|1|||\r\n\r\n \r\n## Left anti join\r\n\r\nLeft anti join returns all records from the left side that do not match any record from the right side. \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=leftanti Y on Key\r\n```\r\n\r\n|Key|Value1|\r\n|---|---|\r\n|a|1|\r\n\r\nAnti-join models the \"NOT IN\" query. \r\n\r\n## Right anti join\r\n\r\nRight anti join returns all records from the right side that do not match any record from the left side. \r\n \r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=rightanti Y on Key\r\n```\r\n\r\n|Key|Value2|\r\n|---|---|\r\n|d|40|\r\n\r\nAnti-join models the \"NOT IN\" query. \r\n\r\n## Left semi join\r\n\r\nLeft semi join returns all records from the left side that match a record from the right side. Only columns from the left side are returned. \r\n\r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=leftsemi Y on Key\r\n```\r\n\r\n|Key|Value1|\r\n|---|---|\r\n|b|3|\r\n|b|2|\r\n|c|4|\r\n\r\n## Right semi join\r\n\r\nRight semi join returns all records from the right side that match a record from the left side. Only columns from the right side are returned. \r\n\r\n\r\n```\r\nlet X = datatable(Key:string, Value1:long)\r\n[\r\n 'a',1,\r\n 'b',2,\r\n 'b',3,\r\n 'c',4\r\n];\r\nlet Y = datatable(Key:string, Value2:long)\r\n[\r\n 'b',10,\r\n 'c',20,\r\n 'c',30,\r\n 'd',40\r\n];\r\nX | join kind=rightsemi Y on Key\r\n```\r\n\r\n|Key|Value2|\r\n|---|---|\r\n|b|10|\r\n|c|20|\r\n|c|30|\r\n\r\n\r\n## Cross join\r\n\r\nKusto doesn't natively provide a cross-join flavor (i.e., you can't mark the operator with `kind=cross`).\r\nIt isn't difficult to simulate this, however, by coming up with a dummy key:\r\n\r\n X | extend dummy=1 | join kind=inner (Y | extend dummy=1) on dummy\r\n\r\n# Join hints\r\n\r\nThe `join` operator supports a number of hints that control the way a query executes.\r\nThese do not change the semantic of `join`, but may affect its performance.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_joinoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"limit","Return up to the specified number of rows."," T | limit 5\r\n\r\n**Alias**\r\n\r\n[take operator](query_language_takeoperator.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_limitoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log","Returns the natural logarithm function.","**Syntax**\r\n\r\n`log(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number > 0.\r\n\r\n**Returns**\r\n\r\n* The natural logarithm is the base-e logarithm: the inverse of the natural exponential function (exp).\r\n* For common (base-10) logarithms, see [log10()](query_language_log10_function.md).\r\n* For base-2 logarithms, see [log2()](query_language_log2_function.md)\r\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log10","Retuns the comon (base-10) logarithm function.","**Syntax**\r\n\r\n`log10(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number > 0.\r\n\r\n**Returns**\r\n\r\n* The common logarithm is the base-10 logarithm: the inverse of the exponential function (exp) with base 10.\r\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\r\n* For base-2 logarithms, see [log2()](query_language_log2_function.md)\r\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log10_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log2","Returns the base-2 logarithm function.","**Syntax**\r\n\r\n`log2(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number > 0.\r\n\r\n**Returns**\r\n\r\n* The logarithm is the base-2 logarithm: the inverse of the exponential function (exp) with base 2.\r\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\r\n* For common (base-10) logarithms, see [log10()](query_language_log10_function.md)\r\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log2_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"loggamma","Computes log of absolute value of the [gamma function](https://en.wikipedia.org/wiki/Gamma_function)","**Syntax**\r\n\r\n`loggamma(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Parameter for the gamma function\r\n\r\n**Returns**\r\n\r\n* Returns the natural logarithm of the absolute value of the gamma function of x.\r\n* For computing gamma function, see [gamma()](query_language_gammafunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_loggammafunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"make_datetime","Creates a [datetime](./scalar-data-types/datetime.md) scalar value from the specified date and time.","make_datetime(2017,10,01,12,10) == datetime(2017-10-01 12:10)\r\n\r\n**Syntax**\r\n\r\n`make_datetime(`*year*,*month*,*day*`)`\r\n\r\n`make_datetime(`*year*,*month*,*day*,*hour*,*minute*`)`\r\n\r\n`make_datetime(`*year*,*month*,*day*,*hour*,*minute*,*second*`)`\r\n\r\n**Arguments**\r\n\r\n* *year*: year (an integer value, from 0 to 9999)\r\n* *month*: month (an integer value, from 1 to 12)\r\n* *day*: day (an integer value, from 1 to 28-31)\r\n* *hour*: hour (an integer value, from 0 to 23)\r\n* *minute*: minute (an integer value, from 0 to 59)\r\n* *second*: second (a real value, from 0 to 59.9999999)\r\n\r\n**Returns**\r\n\r\nIf creation is successful, result will be a [datetime](./scalar-data-types/datetime.md) value, otherwise, result will be null.","```\r\nprint year_month_day = make_datetime(2017,10,01)\r\n```\r\n\r\n|year_month_day|\r\n|---|\r\n|2017-10-01 00:00:00.0000000|\r\n\r\n\r\n\r\n\r\n\r\n```\r\nprint year_month_day_hour_minute = make_datetime(2017,10,01,12,10)\r\n```\r\n\r\n|year_month_day_hour_minute|\r\n|---|\r\n|2017-10-01 12:10:00.0000000|\r\n\r\n\r\n\r\n\r\n\r\n```\r\nprint year_month_day_hour_minute_second = make_datetime(2017,10,01,12,11,0.1234567)\r\n```\r\n\r\n|year_month_day_hour_minute_second|\r\n|---|\r\n|2017-10-01 12:11:00.1234567|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_datetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"make_timespan","Creates a [timespan](./scalar-data-types/timespan.md) scalar value from the specified time period.","make_timespan(1,12,30,55.123) == time(1.12:30:55.123)\r\n\r\n**Syntax**\r\n\r\n`make_timespan(`*hour*,*minute*`)`\r\n\r\n`make_timespan(`*hour*,*minute*,*second*`)`\r\n\r\n`make_timespan(`*day*,*hour*,*minute*,*second*`)`\r\n\r\n**Arguments**\r\n\r\n* *day*: day (a positive integer value)\r\n* *hour*: hour (an integer value, from 0 to 23)\r\n* *minute*: minute (an integer value, from 0 to 59)\r\n* *second*: second (a real value, from 0 to 59.9999999)\r\n\r\n**Returns**\r\n\r\nIf creation is successful, result will be a [timespan](./scalar-data-types/timespan.md) value, otherwise, result will be null.","```\r\nprint ['timespan'] = make_timespan(1,12,30,55.123)\r\n\r\n```\r\n\r\n|timespan|\r\n|---|\r\n|1.12:30:55.1230000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_timespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"makelist","Returns a `dynamic` (JSON) array of all the values of *Expr* in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` `makelist(`*Expr*` [`,` *MaxListSize*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation.\r\n* *MaxListSize* is an optional integer limit on the maximum number of elements returned (default is *128*).\r\n\r\n**Returns**\r\n\r\nReturns a `dynamic` (JSON) array of all the values of *Expr* in the group.\r\nIf the input to the `summarize` operator is not sorted, the order of elements in the resulting array is undefined.\r\nIf the input to the `summarize` operator is sorted, the order of elements in the resulting array tracks that of the input.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_makelist_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"make-series","Create series of specified aggregated values along specified axis.","T | make-series sum(amount) default=0, avg(price) default=0 on timestamp in range(datetime(2016-01-01), datetime(2016-01-10), 1d) by fruit, supplier\r\n\r\nA table that shows arrays of the numbers and average prices of each fruit from each supplier ordered by the timestamp with specified range. There's a row in the output for each distinct combination of fruit and supplier. The output columns show the fruit, supplier and arrays of: count, average and the whole time line (from 2016-01-01 until 2016-01-10). All arrays are sorted by the respective timestamp and all gaps are filled with default values (0 in this example). All other input columns are ignored.\r\n\r\n**Syntax**\r\n\r\n*T* `| make-series`\r\n [*Column* `=`] *Aggregation* [`default` `=` *DefaultValue*] [`,` ...]\r\n `on` *AxisColumn* `in` `range(`*start*`,` *stop*`,` *step*`)`\r\n [`by`\r\n [*Column* `=`] *GroupExpression* [`,` ...]]\r\n\r\n**Arguments**\r\n\r\n* *Column:* Optional name for a result column. Defaults to a name derived from the expression.\r\n* *DefaultValue:* Default value which will be used instead of absent values. If there is no row with specific values of *AxisColumn* and *GroupExpression* then in the results the corresponding element of the array will be assigned with a *DefaultValue*. If `default =` *DefaultValue* is omitted then 0 is assumed. \r\n* *Aggregation:* A call to an [aggregation function](query_language_make_seriesoperator.md#list-of-aggregation-functions) such as `count()` or `avg()`, with column names as arguments. See the [list of aggregation functions](query_language_make_seriesoperator.md#list-of-aggregation-functions). Note that only aggregation functions that return numeric result can be used with `make-series` operator.\r\n* *AxisColumn:* A column on which the series will be ordered. It could be considered as timeline, but besides `datetime` any numeric types are accepted.\r\n* *start*: The low bound value of the *AxisColumn* for each the series will be built. Similar to the `range` function *start*, *stop* and *step* are used to build array of *AxisColumn* values within a given range and using specified *step*. All *Aggregation* values are ordered respectively to this array. This *AxisColumn* array is also the last output column in the output with the same name as *AxisColumn*.\r\n* *stop*: The high bound value of the *AxisColumn* for each the series will be built or the least value that is greater than the last element in the resulting array and within an integer multiple of *step* from *start*.\r\n* *step*: The difference between two consecutive elements of the *AxisColumn* array (i.e. the bin size).\r\n* *GroupExpression:* An expression over the columns, that provides a set of distinct values. Typically it's a column name that already provides a restricted set of values. \r\n\r\n**Returns**\r\n\r\nThe input rows are arranged into groups having the same values of the `by` expressions and `bin(`*AxisColumn*`, `*step*`)` expression. Then the specified aggregation functions are computed over each group, producing a row for each group. The result contains the `by` columns, *AxisColumn* column and also at least one column for each computed aggregate. (Aggregation that multiple columns or non-numeric results are not supported.)\r\n\r\nThis intermediate result has as many rows as there are distinct combinations of `by` and `bin(`*AxisColumn*`,` *step*`)` values.\r\n\r\nFinally the rows from the intermediate result arranged into groups having the same values of the `by` expressions and all aggregated values are arranged into arrays (values of `dynamic` type). For each aggregation there is one column containing its array with the same name. The last column in the output of the range function with all *AxisColumn* values. Its value is repeated for all rows. \r\n\r\nNote that due to the fill missing bins by default value, the resulting pivot table has the same number of bins (i.e. aggregated values) for all series \r\n\r\n**Note**\r\n\r\nAlthough you can provide arbitrary expressions for both the aggregation and grouping expressions, it's more efficient to use simple column names.\r\n \r\n\r\n## List of aggregation functions\r\n\r\n|Function|Description|\r\n|--------|-----------|\r\n|[any()](query_language_any_aggfunction.md)|Returns random non-empty value for the group|\r\n|[avg()](query_language_avg_aggfunction.md)|Retuns average value across the group|\r\n|[count()](query_language_count_aggfunction.md)|Returns count of the group|\r\n|[countif()](query_language_countif_aggfunction.md)|Returns count with the predicate of the group|\r\n|[dcount()](query_language_dcount_aggfunction.md)|Returns approximate distinct count of the group elements|\r\n|[max()](query_language_max_aggfunction.md)|Returns the maximum value across the group|\r\n|[min()](query_language_min_aggfunction.md)|Returns the minimum value across the group|\r\n|[stdev()](query_language_stdev_aggfunction.md)|Returns the standard deviation across the group|\r\n|[sum()](query_language_sum_aggfunction.md)|Returns the sum of the elements withing the group|\r\n|[variance()](query_language_variance_aggfunction.md)|Returns the variance across the group|\r\n\r\n## List of series analysis functions\r\n\r\n|Function|Description|\r\n|--------|-----------|\r\n|[series_fir()](query_language_series_firfunction.md)|Applies [Finite Impulse Response](https://en.wikipedia.org/wiki/Finite_impulse_response) filter|\r\n|[series_iir()](query_language_series_iirfunction.md)|Applies [Infinite Impulse Response](https://en.wikipedia.org/wiki/Infinite_impulse_response) filter||[series_fit_line()](query_language_series_fit_linefunction.md)|Finds a straight line that is the best approximation of the input|\r\n|[series_fit_line()](query_language_series_fit_linefunction.md)|Finds a line that is the best approximation of the input|\r\n|[series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)|Finds a line that is the best approximation of the input, returning dynamic object|\r\n[series_fit_2lines()](query_language_series_fit_2linesfunction.md)|Finds two lines that is the best approximation of the input|\r\n|[series_fit_2lines_dynamic()](query_language_series_fit_2lines_dynamicfunction.md)|Finds two lines that is the best approximation of the input, returning dynamic object|\r\n|[series_outliers()](query_language_series_outliersfunction.md)|Scores anomaly points in a series|\r\n|[series_periods_detect()](query_language_series_periods_detectfunction.md)|Finds the most significant periods that exist in a time series|\r\n|[series_periods_validate()](query_language_series_periods_validatefunction.md)|Checks whether a time series contains periodic patterns of given lengths|\r\n|[series_stats_dynamic()](query_language_series_stats_dynamicfunction.md)|Return multiple columns with the common statistics (min/max/variance/stdev/average)|\r\n|[series_stats()](query_language_series_statsfunction.md)|Generates a dynamic value with the common statistics (min/max/variance/stdev/average)|\r\n \r\n## List of series interpolation functions\r\n|Function|Description|\r\n|--------|-----------|\r\n|[series_fill_backward()](query_language_series_fill_backwardfunction.md)|Performs backward fill interpolation of missing values in a series|\r\n|[series_fill_const()](query_language_series_fill_constfunction.md)|Replaces missing values in a series with a specified constant value|\r\n|[series_fill_forward()](query_language_series_fill_forwardfunction.md)|Performs forward fill interpolation of missing values in a series|\r\n|[series_fill_linear()](query_language_series_fill_linearfunction.md)|Performs linear interpolation of missing values in a series|\r\n\r\n* Note: Interpolation functions by default assume `null` as a missing value. Therefore it is recommended to specify `default=`*double*(`null`) in `make-series` if you intend to use interpolation functions for the series.",'```\r\nT | make-series PriceAvg=avg(Price) default=0\r\non Purchase in range(datetime(2016-09-10), datetime(2016-09-12), 1d) by Supplier, Fruit\r\n```\r\n \r\n![](./Images/aggregations/makeseries.png)\r\n \r\n\r\n```\r\nlet data=datatable(timestamp:datetime, metric: real)\r\n[\r\n datetime(2016-12-31T06:00), 50,\r\n datetime(2017-01-01), 4,\r\n datetime(2017-01-02), 3,\r\n datetime(2017-01-03), 4,\r\n datetime(2017-01-03T03:00), 6,\r\n datetime(2017-01-05), 8,\r\n datetime(2017-01-05T13:40), 13,\r\n datetime(2017-01-06), 4,\r\n datetime(2017-01-07), 3,\r\n datetime(2017-01-08), 8,\r\n datetime(2017-01-08T21:00), 8,\r\n datetime(2017-01-09), 2,\r\n datetime(2017-01-09T12:00), 11,\r\n datetime(2017-01-10T05:00), 5,\r\n];\r\nlet interval = 1d;\r\nlet stime = datetime(2017-01-01);\r\nlet etime = datetime(2017-01-09);\r\ndata\r\n| make-series avg(metric) on timestamp in range(stime, etime, interval) \r\n```\r\n \r\n|avg_metric|timestamp|\r\n|---|---|\r\n|[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ]|[ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ]|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_seriesoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"makeset","Returns a `dynamic` (JSON) array of the set of distinct values that *Expr* takes in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` `makeset(`*Expr*` [`,` *MaxListSize*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation.\r\n* *MaxListSize* is an optional integer limit on the maximum number of elements returned (default is *128*).\r\n\r\n**Returns**\r\n\r\nReturns a `dynamic` (JSON) array of the set of distinct values that *Expr* takes in the group.\r\nThe array's sort order is undefined.\r\n\r\n**Tip**\r\n\r\nTo just count the distinct values, use [dcount()](query_language_dcount_aggfunction.md)","```\r\nPageViewLog \r\n| summarize countries=makeset(country) by continent\r\n```\r\n\r\n![](./images/aggregations/makeset.png)\r\n\r\nSee also the [`mvexpand` operator](./query_language_mvexpandoperator.md) for the opposite function.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_makeset_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"materialize","Allows caching a sub-query result during the time of query execution in a way that other subqueries can reference the partial result.","**Syntax**\r\n\r\n`materialize(`*expression*`)`\r\n\r\n**Arguments**\r\n\r\n* *expression*: Tabular expression to be evaluated and cached during query execution.\r\n\r\n**Tips**\r\n\r\n* Use materialize when you have join/union where their operands has mutual sub-queries that can be executed once (see the examples below).\r\n\r\n* Useful also in scenarios when we need to join/union fork legs.\r\n\r\n* Materialize is allowed to be used only in let statements by giving the cached result a name.\r\n\r\n* Materialize has a cache size limit which is **5 GB**. \r\n This limit is per cluster node and is mutual for all queries running concurrently.\r\n If a query uses `materialize()` and the cache cannot hold any additional data,\r\n the query aborts with an error.",'Assuming that we are interested in finding the Retention of Pages views.\r\n\r\nUsing `materialize()` operator to improve runtime performance:\r\n\r\n\r\n```\r\nlet totalPagesPerDay = PageViews\r\n| summarize by Page, Day = startofday(Timestamp)\r\n| summarize count() by Day;\r\nlet materializedScope = PageViews\r\n| summarize by Page, Day = startofday(Timestamp);\r\nlet cachedResult = materialize(materializedScope);\r\ncachedResult\r\n| project Page, Day1 = Day\r\n| join kind = inner\r\n(\r\n cachedResult\r\n | project Page, Day2 = Day\r\n)\r\non Page\r\n| where Day2 > Day1\r\n| summarize count() by Day1, Day2\r\n| join kind = inner\r\n totalPagesPerDay\r\non $left.Day1 == $right.Day\r\n| project Day1, Day2, Percentage = count_*100.0/count_1\r\n\r\n\r\n```\r\n\r\n|Day1|Day2|Percentage|\r\n|---|---|---|\r\n|2016-05-01 00:00:00.0000000|2016-05-02 00:00:00.0000000|34.0645725975255|\r\n|2016-05-01 00:00:00.0000000|2016-05-03 00:00:00.0000000|16.618368960101|\r\n|2016-05-02 00:00:00.0000000|2016-05-03 00:00:00.0000000|14.6291376489636|\r\n\r\nUsing self-join without caching the mutual sub-query :\r\n\r\n\r\n```\r\nlet totalPagesPerDay = PageViews\t\r\n| summarize by Page, Day = startofday(Timestamp)\r\n| summarize count() by Day;\r\nlet subQuery = (PageViews\t\r\n| summarize by Page, Day = startofday(Timestamp));\r\nsubQuery\r\n| project Page, Day1 = Day\r\n| join kind = inner\r\n(\r\n subQuery\r\n | project Page, Day2 = Day\r\n)\r\non Page\r\n| where Day2 > Day1\r\n| summarize count() by Day1, Day2\r\n| join kind = inner\r\n totalPagesPerDay\r\non $left.Day1 == $right.Day\r\n| project Day1, Day2, Percentage = count_*100.0/count_1\r\n```\r\n\r\n|Day1|Day2|Percentage|\r\n|---|---|---|\r\n|2016-05-01 00:00:00.0000000|2016-05-02 00:00:00.0000000|34.0645725975255|\r\n|2016-05-01 00:00:00.0000000|2016-05-03 00:00:00.0000000|16.618368960101|\r\n|2016-05-02 00:00:00.0000000|2016-05-03 00:00:00.0000000|14.6291376489636|\r\n\r\n\r\nThe same works for union, for example, getting the Pages which are one of the top 2 viewed, or top 2 with bytes delivered (not in both groups): \r\n\r\nUsing `materialize()` :\r\n\r\n\r\n```\r\nlet JunkPagesSuffix = ".jpg";\r\nlet materializedScope = PageViews\r\n| where Timestamp > datetime(2016-05-01 00:00:00.0000000)\r\n| summarize sum(BytesDelivered), count() by Page\r\n| where Page !endswith JunkPagesSuffix\r\n| where isempty(Page) == false;\r\nlet cachedResult = materialize(materializedScope);\r\nunion (cachedResult | top 2 by count_ | project Page ), (cachedResult | top 2 by sum_BytesDelivered | project Page)\r\n| summarize count() by Page | where count_ < 2 | project Page\r\n```\r\n\r\n|Page|\r\n|---|\r\n|de|\r\n|ar|\r\n|Special:Log/block|\r\n|Special:Search|\r\n\r\n\r\nUsing regular union without caching the result:\r\n\r\n\r\n```\r\nlet JunkPagesSuffix = ".jpg";\r\nlet subQuery = PageViews\r\n| where Timestamp > datetime(2016-05-01 00:00:00.0000000)\r\n| summarize sum(BytesDelivered), count() by Page\r\n| where Page !endswith JunkPagesSuffix\r\n| where isempty(Page) == false;\r\nunion (subQuery | top 2 by count_| project Page ), (subQuery | top 2 by sum_BytesDelivered| project Page)\r\n| summarize count() by Page\r\n| where count_ < 2\r\n| project Page\r\n```\r\n\r\n|Page|\r\n|---|\r\n|Special:Log/block|\r\n|Special:Search|\r\n|de|\r\n|ar|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_materializefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"max","Returns the maximum value across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` `max(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe maximum value of *Expr* across the group.\r\n \r\n**Tip**\r\n\r\nThis gives you the min or max on its own - for example, the highest or lowest price. \r\nBut if you want other columns in the row - for example, the name of the supplier with the lowest \r\nprice - use [arg_max](query_language_arg_max_aggfunction.md) or [arg_min](query_language_arg_min_aggfunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_max_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"max_of","Returns the maximum value of several evaluated numeric expressions.","max_of(10, 1, -3, 17) == 17\r\n\r\n**Syntax**\r\n\r\n`max_of` `(`*expr_1*`,` *expr_2* ...`)`\r\n\r\n**Arguments**\r\n\r\n* *expr_i*: A scalar expression, to be evaluated.\r\n\r\n- All arguments must be of the same type.\r\n- Maximum of 64 arguments is supported.\r\n\r\n**Returns**\r\n\r\nThe maximum value of all argument expressions.","```\r\nprint result = max_of(10, 1, -3, 17) \r\n```\r\n\r\n|result|\r\n|---|\r\n|17|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_max_offunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"merge_tdigests","Merges tdigest results (scalar version of the aggregate version [`merge_tdigests()`](query_language_merge_tdigests_aggfunction.md)).","Read more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\r\n\r\n**Syntax**\r\n\r\n`merge_tdigests(` *Expr1*`,` *Expr2*`, ...)`\r\n\r\n`tdigest_merge(` *Expr1*`,` *Expr2*`, ...)` - An alias.\r\n\r\n**Arguments**\r\n\r\n* Columns which has the tdigests to be merged.\r\n\r\n**Returns**\r\n\r\nThe result for merging the columns `*Exrp1*`, `*Expr2*`, ... `*ExprN*` to one tdigest.","```\r\nrange x from 1 to 10 step 1 \r\n| extend y = x + 10\r\n| summarize tdigestX = tdigest(x), tdigestY = tdigest(y)\r\n| project merged = merge_tdigests(tdigestX, tdigestY)\r\n| project percentile_tdigest(merged, 100, typeof(long))\r\n```\r\n\r\n|percentile_tdigest_merged|\r\n|---|\r\n|20|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigestmergefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"min","Returns the minimum value agross the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\n`summarize` `min(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe minimum value of *Expr* across the group.\r\n \r\n**Tip**\r\n\r\nThis gives you the min or max on its own - for example, the highest or lowest price. \r\nBut if you want other columns in the row - for example, the name of the supplier with the lowest \r\nprice - use [argmax](query_language_argmax_aggfunction.md) or [argmin](query_language_argmin_aggfunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_min_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"min_of","Returns the minimum value of several evaluated numeric expressions.","min_of(10, 1, -3, 17) == -3\r\n\r\n**Syntax**\r\n\r\n`min_of` `(`*expr_1*`,` *expr_2* ...`)`\r\n\r\n**Arguments**\r\n\r\n* *expr_i*: A scalar expression, to be evaluated.\r\n\r\n- All arguments must be of the same type.\r\n- Maximum of 64 arguments is supported.\r\n\r\n**Returns**\r\n\r\nThe minimum value of all argument expressions.","```\r\nprint result=min_of(10, 1, -3, 17) \r\n```\r\n\r\n|result|\r\n|---|\r\n|-3|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_min_offunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"monthofyear","Returns the integer number represents the month number of the given year.",'monthofyear(datetime("2015-12-14"))\r\n\r\n**Syntax**\r\n\r\n`monthofyear(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\n`month number` of the given year.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_monthofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"mvexpand","Expands multi-value collection(s) from a [dynamic](./scalar-data-types/dynamic.md)-typed column so that each value in the collection gets a separate row.\r\nAll the other column in an expanded row are duplicated.","T | mvexpand listColumn [, listColumn2 ...] \r\n\r\n(See also [`summarize makelist`](query_language_makelist_aggfunction.md) which performs the opposite function.)",'Assume the input table is:\r\n\r\n|A:int|B:string|D:dynamic|D2:dynamic|\r\n|---|---|---|---|\r\n|1|"hello"|{"key":"value"}|{"key1":"value1", "key2":"value2"}|\r\n|2|"world"|[0,1,"k","v"]|[2,3,"q"]|\r\n\r\n\r\n```\r\nmvexpand D, D2\r\n```\r\n\r\nResult is:\r\n\r\n|A:int|B:string|D:dynamic|D2:dynamic|\r\n|---|---|---|---|\r\n|1|"hello"|{"key":"value"}|{"key1":"value1"}|\r\n|1|"hello"||{"key2":"value2"}|\r\n|2|"world"|0|2|\r\n|2|"world"|1|3|\r\n|2|"world"|"k"|"q"|\r\n|2|"world"|"v"||\r\n\r\n\r\n**Syntax**\r\n\r\n*T* `| mvexpand ` [`bagexpansion=`(`bag` | `array`)] *ColumnName* [`,` *ColumnName* ...] [`limit` *Rowlimit*]\r\n\r\n*T* `| mvexpand ` [`bagexpansion=`(`bag` | `array`)] [*Name* `=`] *ArrayExpression* [`to typeof(`*Typename*`)`] [, [*Name* `=`] *ArrayExpression* [`to typeof(`*Typename*`)`] ...] [`limit` *Rowlimit*]\r\n\r\n**Arguments**\r\n\r\n* *ColumnName:* In the result, arrays in the named column are expanded to multiple rows. \r\n* *ArrayExpression:* An expression yielding an array. If this form is used, a new column is added and the existing one is preserved.\r\n* *Name:* A name for the new column.\r\n* *Typename:* Indicates the underlying type of the array\'s elements,\r\n which becomes the type of the column produced by the operator.\r\n Note that values in the array that do not conform to this type will\r\n not be converted; rather, they will take on a `null` value.\r\n* *RowLimit:* The maximum number of rows generated from each original row. The default is 128.\r\n\r\n**Returns**\r\n\r\nMultiple rows for each of the values in any array in the named column or in the array expression.\r\nIf several columns or expressions are specified they are expanded in parallel so for each input row there will be as many output rows as there are elements in the longest expanded expression (shorter lists are padded with null\'s). If the value in a row is an empty array, the row expands to nothing (will not show in the result set). If the value in a row is not an array, the row is kept as is in the result set. \r\n\r\nThe expanded column always has dynamic type. Use a cast such as `todatetime()` or `toint()` if you want to compute or aggregate values.\r\n\r\nTwo modes of property-bag expansions are supported:\r\n* `bagexpansion=bag`: Property bags are expanded into single-entry property bags. This is the default expansion.\r\n* `bagexpansion=array`: Property bags are expanded into two-element `[`*key*`,`*value*`]` array structures,\r\n allowing uniform access to keys and values (as well as, for example, running a distinct-count aggregation\r\n over property names). \r\n\r\n**Examples**\r\n\r\nSee [Chart count of live activites over time](./query_language_samples.md#concurrent-activities).',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_mvexpandoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"next","Returns the value of a column in a row that it at some offset following the\r\ncurrent row in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\r\n\r\n`next(column)`\r\n\r\n`next(column, offset)`\r\n\r\n`next(column, offset, default_value)`\r\n\r\n**Arguments**\r\n\r\n* `column`: the column to get the values from.\r\n\r\n* `offset`: the offset to go ahead in rows. When no offset is specified a default offset 1 is used.\r\n\r\n* `default_value`: the default value to be used when there is no next rows to take the value from. When no default value is specified, null is used.","```\r\nTable | serialize | extend nextA = next(A,1)\r\n| extend diff = A - nextA\r\n| where diff > 1\r\n\r\nTable | serialize nextA = next(A,1,10)\r\n| extend diff = A - nextA\r\n| where diff <= 10\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_nextfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"not","Reverses the value of its `bool` argument.","not(false) == true\r\n\r\n**Syntax**\r\n\r\n`not(`*expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *expr*: A `bool` expression to be reversed.\r\n\r\n**Returns**\r\n\r\nReturns the reversed logical value of its `bool` argument.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_notfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"now","Returns the current UTC clock time, optionally offset by a given timespan.\r\nThis function can be used multiple times in a statement and the clock time being referenced will be the same for all instances.","now()\r\n now(-2d)\r\n\r\n\r\n**Syntax**\r\n\r\n`now(`[*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* *offset*: A `timespan`, added to the current UTC clock time. Default: 0.\r\n\r\n**Returns**\r\n\r\nThe current UTC clock time as a `datetime`.\r\n\r\n`now()` + *offset*","Determines the interval since the event identified by the predicate:\r\n\r\n\r\n```\r\nT | where ... | extend Elapsed=now() - Timestamp\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_nowfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"order","Sort the rows of the input table into order by one or more columns.","T | order by country asc, price desc\r\n\r\n**Alias**\r\n\r\n[sort operator](query_language_sortoperator.md)\r\n\r\n**Syntax**\r\n\r\n*T* `| sort by` *column* [`asc` | `desc`] [`nulls first` | `nulls last`] [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The table input to sort.\r\n* *column*: Column of *T* by which to sort. The type of the values must be numeric, date, time or string.\r\n* `asc` Sort by into ascending order, low to high. The default is `desc`, descending high to low.\r\n* `nulls first` (the default for `asc` order) will place the null values at the beginning and `nulls last` (the default for `desc` order) will place the null values at the end.",'```\r\nTraces\r\n| where ActivityId == "479671d99b7b"\r\n| sort by Timestamp asc nulls first\r\n```\r\n\r\nAll rows in table Traces that have a specific `ActivityId`, sorted by their timestamp. If `Timestamp` column contains null values, those will appear at the first lines of the result.\r\n\r\nIn order to exclude null values from the result add a filter before the call to sort:\r\n\r\n\r\n```\r\nTraces\r\n| where ActivityId == "479671d99b7b" and isnotnull(Timestamp)\r\n| sort by Timestamp asc\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_orderoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack","Creates a `dynamic` object (property bag) from a list of names and values.","**Syntax**\r\n\r\n`pack(`*key1*`,` *value1*`,` *key2*`,` *value2*`,... )`\r\n\r\n**Arguments**\r\n\r\n* An alternating list of keys and values (the total length of the list must be even)\r\n* All keys must be non-empty constant strings",'The following example returns `{"Level":"Information","ProcessID":1234,"Data":{"url":"www.bing.com"}}`:\r\n\r\n\r\n```\r\npack("Level", "Information", "ProcessID", 1234, "Data", pack("url", "www.bing.com"))\r\n```\r\n\r\nLets take 2 tables, SmsMessages and MmsMessages:\r\n\r\nTable SmsMessages \r\n\r\n|SourceNumber |TargetNumber| CharsCount\r\n|---|---|---\r\n|555-555-1234 |555-555-1212 | 46 \r\n|555-555-1234 |555-555-1213 | 50 \r\n|555-555-1212 |555-555-1234 | 32 \r\n\r\nTable MmsMessages \r\n\r\n|SourceNumber |TargetNumber| AttachmnetSize | AttachmnetType | AttachmnetName\r\n|---|---|---|---|---\r\n|555-555-1212 |555-555-1213 | 200 | jpeg | Pic1\r\n|555-555-1234 |555-555-1212 | 250 | jpeg | Pic2\r\n|555-555-1234 |555-555-1213 | 300 | png | Pic3\r\n\r\nThe following query:\r\n\r\n```\r\nSmsMessages \r\n| extend Packed=pack("CharsCount", CharsCount) \r\n| union withsource=TableName kind=inner \r\n( MmsMessages \r\n | extend Packed=pack("AttachmnetSize", AttachmnetSize, "AttachmnetType", AttachmnetType, "AttachmnetName", AttachmnetName))\r\n| where SourceNumber == "555-555-1234"\r\n``` \r\n\r\nReturns:\r\n\r\n|TableName |SourceNumber |TargetNumber | Packed\r\n|---|---|---|---\r\n|SmsMessages|555-555-1234 |555-555-1212 | {"CharsCount": 46}\r\n|SmsMessages|555-555-1234 |555-555-1213 | {"CharsCount": 50}\r\n|MmsMessages|555-555-1234 |555-555-1212 | {"AttachmnetSize": 250, "AttachmnetType": "jpeg", "AttachmnetName": "Pic2"}\r\n|MmsMessages|555-555-1234 |555-555-1213 | {"AttachmnetSize": 300, "AttachmnetType": "png", "AttachmnetName": "Pic3"}',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack_all","Creates a `dynamic` object (property bag) from all the columns of the tabular expression.","**Syntax**\r\n\r\n`pack_all()`",'Given a table SmsMessages \r\n\r\n|SourceNumber |TargetNumber| CharsCount\r\n|---|---|---\r\n|555-555-1234 |555-555-1212 | 46 \r\n|555-555-1234 |555-555-1213 | 50 \r\n|555-555-1212 |555-555-1234 | 32 \r\n\r\nThe following query:\r\n\r\n```\r\nSmsMessages | extend Packed=pack_all()\r\n``` \r\n\r\nReturns:\r\n\r\n|TableName |SourceNumber |TargetNumber | Packed\r\n|---|---|---|---\r\n|SmsMessages|555-555-1234 |555-555-1212 | {"SourceNumber":"555-555-1234", "TargetNumber":"555-555-1212", "CharsCount": 46}\r\n|SmsMessages|555-555-1234 |555-555-1213 | {"SourceNumber":"555-555-1234", "TargetNumber":"555-555-1213", "CharsCount": 50}\r\n|SmsMessages|555-555-1212 |555-555-1234 | {"SourceNumber":"555-555-1212", "TargetNumber":"555-555-1234", "CharsCount": 32}',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packallfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack_array","Packs all input values into a dynamic array.","**Syntax**\r\n\r\n`pack_array(`*Expr1*`[`,` *Expr2*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr1...N*: Input expressions to be packed into a dynamic array.\r\n\r\n**Returns**\r\n\r\nDynamic array which includes the values of Expr1, Expr2, ... , ExprN.",'```\r\nrange x from 1 to 3 step 1\r\n| extend y = x * 2\r\n| extend z = y * 2\r\n| project pack_array(x,y,z)\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|[1,2,4]|\r\n|[2,4,8]|\r\n|[3,6,12]|\r\n\r\n\r\n```\r\nrange x from 1 to 3 step 1\r\n| extend y = tostring(x * 2)\r\n| extend z = (x * 2) * 1s\r\n| project pack_array(x,y,z)\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|[1,"2","00:00:02"]|\r\n|[2,"4","00:00:04"]|\r\n|[3,"6","00:00:06"]|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packarrayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"parse","Evaluates a string expression and parses its value into one or more calculated columns.",'T | parse Text with "ActivityName=" name ", ActivityType=" type\r\n\r\n**Syntax**\r\n\r\n*T* `| parse` [`kind=regex`|`simple`|`relaxed`] *Expression* `with` `*` (*StringConstant* *ColumnName* [`:` *ColumnType*]) `*`...\r\n\r\n**Arguments**\r\n\r\n* *T*: The input table.\r\n* kind: \r\n\r\n\t* simple (the default) : StringConstant is a regular string value and the match is strict, extended columns must match the required types.\r\n\t\t\r\n\t* regex : StringConstant may be a regular expression.\r\n\t\t\r\n\t* relaxed : StringConstant is a regular string value and the match is relaxed, extended columns may match the required types partially.\r\n* *Expression*: An expression that evaluates to a string.\r\n* *ColumnName:* The name of a column to assign a value (taken out\r\n of the string expression) to. \r\n* *ColumnType:* should be Optional scalar type that indicates the type to convert the value to (by default it is string type).\r\n\r\n**Returns**\r\n\r\nThe input table, extended according to the list of columns that are\r\nprovided to the operator.\r\n\r\n**Tips**\r\n\r\n* Use [`project`](query_language_projectoperator.md) instead, if you also want to drop or rename some columns.\r\n\r\n* Use * in the pattern in order to skip junk values (can\'t be used after string column)\r\n\r\n* The parse pattern may start with *ColumnName* and not only with *StringConstant*. \r\n\r\n* If the parsed *Expression* is not of type string , it will be converted to type string.\r\n\r\n* If regex mode is used, there is an option to add regex flags in order to control the whole regex used in parse.\r\n\r\n* In regex mode, parse will translate the pattern to a regex and use [RE2 syntax](query_language_re2.md) in order to do the matching using numbered captured groups which \r\n are handeled internally.\r\n So for example, this parse statement :\r\n \r\n\t\r\n\t```\r\n\tparse kind=regex Col with * var1:string var2:long\r\n\t```\r\n\r\n\tThe regex that will be generated by the parse internally is `.*?(.*?)(\\-\\d+)`.\r\n\t\t\r\n\t- `*` was translated to `.*?`.\r\n\t\t\r\n\t- `string` was translated to `.*?`.\r\n\t\t\r\n\t- `long` was translated to `\\-\\d+`.','The `parse` operator provides a streamlined way to `extend` a table\r\nby using multiple `extract` applications on the same `string` expression.\r\nThis is most useful when the table has a `string` column that contains\r\nseveral values that you want to break into individual columns, such as a\r\ncolumn that was produced by a developer trace ("`printf`"/"`Console.WriteLine`")\r\nstatement.\r\n\r\nIn the example below, assume that the column `EventText` of table `Traces` contains\r\nstrings of the form `Event: NotifySliceRelease (resourceName={0}, totalSlices= {1}, sliceNumber={2}, lockTime={3}, releaseTime={4}, previousLockTime={5})`.\r\nThe operation below will extend the table with 6 columns: `resourceName` , `totalSlices`, `sliceNumber`, `lockTime `, `releaseTime`, `previouLockTime`, \r\n `Month` and `Day`. \r\n\r\n\r\n|eventText|\r\n|---|\r\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01, previousLockTime=02/17/2016 08:39:01)|\r\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=15, lockTime=02/17/2016 08:40:00, releaseTime=02/17/2016 08:40:00, previousLockTime=02/17/2016 08:39:00)|\r\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=20, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01, previousLockTime=02/17/2016 08:39:01)|\r\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=22, lockTime=02/17/2016 08:41:01, releaseTime=02/17/2016 08:41:00, previousLockTime=02/17/2016 08:40:01)|\r\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=16, lockTime=02/17/2016 08:41:00, releaseTime=02/17/2016 08:41:00, previousLockTime=02/17/2016 08:40:00)|\r\n\r\n\r\n```\r\nTraces \r\n| parse eventText with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \r\n| project resourceName ,totalSlices , sliceNumber , lockTime , releaseTime , previouLockTime\r\n```\r\n\r\n|resourceName|totalSlices|sliceNumber|lockTime|releaseTime|previouLockTime|\r\n|---|---|---|---|---|---|\r\n|PipelineScheduler|27|15|02/17/2016 08:40:00|2016-02-17 08:40:00.0000000|2016-02-17 08:39:00.0000000|\r\n|PipelineScheduler|27|23|02/17/2016 08:40:01|2016-02-17 08:40:01.0000000|2016-02-17 08:39:01.0000000|\r\n|PipelineScheduler|27|20|02/17/2016 08:40:01|2016-02-17 08:40:01.0000000|2016-02-17 08:39:01.0000000|\r\n|PipelineScheduler|27|16|02/17/2016 08:41:00|2016-02-17 08:41:00.0000000|2016-02-17 08:40:00.0000000|\r\n|PipelineScheduler|27|22|02/17/2016 08:41:01|2016-02-17 08:41:00.0000000|2016-02-17 08:40:01.0000000|\r\n\r\nfor regex mode :\r\n\r\n\r\n```\r\nTraces \r\n| parse kind = regex eventText with "(.*?)[a-zA-Z]*=" resourceName @", totalSlices=\\s*\\d+\\s*.*?sliceNumber=" sliceNumber:long ".*?(previous)?lockTime=" lockTime ".*?releaseTime=" releaseTime ".*?previousLockTime=" previouLockTime:date "\\\\)" \r\n| project resourceName , sliceNumber , lockTime , releaseTime , previouLockTime\r\n```\r\n\r\n|resourceName|sliceNumber|lockTime|releaseTime|previouLockTime|\r\n|---|---|---|---|---|\r\n|PipelineScheduler|15|02/17/2016 08:40:00, |02/17/2016 08:40:00, |2016-02-17 08:39:00.0000000|\r\n|PipelineScheduler|23|02/17/2016 08:40:01, |02/17/2016 08:40:01, |2016-02-17 08:39:01.0000000|\r\n|PipelineScheduler|20|02/17/2016 08:40:01, |02/17/2016 08:40:01, |2016-02-17 08:39:01.0000000|\r\n|PipelineScheduler|16|02/17/2016 08:41:00, |02/17/2016 08:41:00, |2016-02-17 08:40:00.0000000|\r\n|PipelineScheduler|22|02/17/2016 08:41:01, |02/17/2016 08:41:00, |2016-02-17 08:40:01.0000000|\r\n\r\nfor regex mode using regex flags:\r\n\r\nif we are interested in getting the resourceName only and we use this query:\r\n\r\n\r\n```\r\nTraces\r\n| parse kind = regex EventText with * "resourceName=" resourceName \',\' *\r\n| project resourceName\r\n```\r\n\r\n|resourceName|\r\n|---|\r\n|PipelineScheduler, totalSlices=27, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01|\r\n|PipelineScheduler, totalSlices=27, sliceNumber=15, lockTime=02/17/2016 08:40:00, releaseTime=02/17/2016 08:40:00|\r\n|PipelineScheduler, totalSlices=27, sliceNumber=22, lockTime=02/17/2016 08:41:01, releaseTime=02/17/2016 08:41:00|\r\n|PipelineScheduler, totalSlices=27, sliceNumber=20, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01|\r\n|PipelineScheduler, totalSlices=27, sliceNumber=16, lockTime=02/17/2016 08:41:00, releaseTime=02/17/2016 08:41:00|\r\n\r\n\r\nwe don\'t get the expected results since the default mode is greedy.\r\nor even if we had few records where the resourceName appears sometimes lower-case sometimes upper-case so we may\r\nget nulls for some values.\r\nin order to get the wanted result, we may run this one with regex flags ungreedy and disable case-sensitive mode :\r\n\r\n\r\n```\r\nTraces\r\n| parse kind = regex flags = Ui EventText with * "RESOURCENAME=" resourceName \',\' *\r\n| project resourceName\r\n```\r\n\r\n|resourceName|\r\n|---|\r\n|PipelineScheduler|\r\n|PipelineScheduler|\r\n|PipelineScheduler|\r\n|PipelineScheduler|\r\n|PipelineScheduler|\r\n\r\n\r\n\r\n\r\nfor relaxed mode :\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1 | parse kind=relaxed "Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=NULL, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=NULL, previousLockTime=02/17/2016 08:39:01)" with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \r\n| project resourceName ,totalSlices , sliceNumber , lockTime , releaseTime , previouLockTime\r\n```\r\n\r\n|resourceName|totalSlices|sliceNumber|lockTime|releaseTime|previouLockTime|\r\n|---|---|---|---|---|---|\r\n|PipelineScheduler||23|02/17/2016 08:40:01||2016-02-17 08:39:01.0000000|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_ipv4","Converts input to integener (signed 64-bit) number representation.","parse_ipv4(\"127.0.0.1\") == 2130706433\r\n parse_ipv4('192.1.168.1') < parse_ipv4('192.1.168.2') == true\r\n\r\n**Syntax**\r\n\r\n`parse_ipv4(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to long. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a long number.\r\nIf conversion is not successful, result will be `null`.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_ipv4function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_json","Interprets a `string` as a [JSON value](http://json.org/)) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md). \r\nIt is superior to using [extractjson() function](./query_language_extractjsonfunction.md)\r\nwhen you need to extract more than one element of a JSON compound object.","**Syntax**\r\n\r\n`parse_json(`*json*`)`\r\n\r\nAliases:\r\n- [todynamic()](./query_language_todynamicfunction.md)\r\n- [toobject()](./query_language_todynamicfunction.md)\r\n\r\n**Arguments**\r\n\r\n* *json*: An expression of type `string`, representing a JSON-formatted value,\r\n or an expression of type `dynamic`, representing the actual `dynamic` value.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` that is determined by the value of *json*:\r\n* If *json* is of type `dynamic`, its value is used as-is.\r\n* If *json* is of type `string`, and is a [properly-formatted JSON string](http://json.org/),\r\n the string is parsed and the value produced is returned.\r\n* If *json* is of type `string`, but it is **not** a [properly-formatted JSON string](http://json.org/),\r\n then the returned value is an object of type `dynamic` that holds the original\r\n `string` value.",'In the following example, when `context_custom_metrics` is a `string`\r\nthat looks like this: \r\n\r\n```\r\n{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}\r\n```\r\n\r\nthen the following CSL Fragment retrieves the value of the `duration` slot\r\nin the object, and from that it retrieves two slots, `duration.value` and\r\n `duration.min` (`118.0` and `110.0`, respectively).\r\n\r\n\r\n```\r\nT\r\n| extend d=parse_json(context_custom_metrics) \r\n| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]\r\n```\r\n\r\n**Notes**\r\n\r\nIt is somewhat common to have a JSON string describing a property bag in which\r\none of the "slots" is another JSON string. For example:\r\n\r\n\r\n\r\n```\r\nlet d=\'{"a":123, "b":"{\\\\"c\\\\":456}"}\';\r\nprint d\r\n```\r\n\r\nIn such cases, it is not only necessary to invoke `parse_json` twice, but also\r\nto make sure that in the second call, `tostring` will be used. Otherwise, the\r\nsecond call to `parse_json` will simply pass-on the input to the output as-is,\r\nbecause its declared type is `dynamic`:\r\n\r\n\r\n\r\n```\r\nlet d=\'{"a":123, "b":"{\\\\"c\\\\":456}"}\';\r\nprint d_b_c=parse_json(tostring(parse_json(d).b)).c\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parsejsonfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_url","Parses an absolute URL `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains all parts of the URL (Scheme, Host, Port, Path, Username, Password, Query Parameters, Fragment).","**Syntax**\r\n\r\n`parse_url(`*url*`)`\r\n\r\n**Arguments**\r\n\r\n* *url*: A string represents a URL or the query part of the URL.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` that inculded the URL components as listed above.",'```\r\nT | extend Result = parse_url("scheme://username:password@host:1234/this/is/a/path?k1=v1&k2=v2#fragment")\r\n```\r\n\r\nwill result\r\n\r\n```\r\n {\r\n \t"Scheme":"scheme",\r\n \t"Host":"host",\r\n \t"Port":"1234",\r\n \t"Path":"this/is/a/path",\r\n \t"Username":"username",\r\n \t"Password":"password",\r\n \t"Query Parameters":"{"k1":"v1", "k2":"v2"}",\r\n \t"Fragment":"fragment"\r\n }\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseurlfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_urlquery","Parses a url query `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains the Query parameters.","**Syntax**\r\n\r\n`parse_urlquery(`*query*`)`\r\n\r\n**Arguments**\r\n\r\n* *query*: A string represents a url query.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` that includes the query parameters.",'```\r\nparse_urlquery("k1=v1&k2=v2&k3=v3")\r\n```\r\n\r\nwill result:\r\n\r\n```\r\n {\r\n \t"Query Parameters":"{"k1":"v1", "k2":"v2", "k3":"v3"}",\r\n }\r\n```\r\n\r\n**Notes**\r\n\r\n* Input format should follow URL query standards (key=value& ...)',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseurlqueryfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_user_agent","Interprets a user-agent string, which identifies the user's browser and provides certain system details to servers hosting the websites the user visits. The result is returned as [`dynamic`](./scalar-data-types/dynamic.md).",'**Syntax**\r\n\r\n`parse_user_agent(`*user-agent-string*, *look-for*`)`\r\n\r\n**Arguments**\r\n\r\n* *user-agent-string*: An expression of type `string`, representing a user-agent string.\r\n\r\n* *look-for*: An expression of type `string` or `dynamic`, representing what the function should be looking for in the user-agent string (parsing target). \r\nThe possible options: "browser", "os", "device". If only a single parsing target is required it can be passed a `string` parameter.\r\nIf two or three are required they can be passed as a `dynamic array`.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` that contains the information about the requested parsing targets.\r\n\r\nBrowser: Family, MajorVersion, MinorVersion, Patch \r\n\r\nOperatingBridge.global.System: Family, MajorVersion, MinorVersion, Patch, PatchMinor \r\n\r\nDevice: Family, Brand, Model','```\r\nprint useragent = "Mozilla/5.0 (Windows; U; en-US) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"\r\n| extend x = parse_user_agent(useragent, "browser") \r\n```\r\n\r\nExpected result is a dynamic object:\r\n\r\n{\r\n "Browser": {\r\n "Family": "AdobeAIR",\r\n "MajorVersion": "2",\r\n "MinorVersion": "5",\r\n "Patch": "1"\r\n }\r\n}\r\n\r\n\r\n```\r\nprint useragent = "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN81-3/10.0.032 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/4"\r\n| extend x = parse_user_agent(useragent, dynamic(["browser","os","device"])) \r\n```\r\n\r\nExpected result is a dynamic object:\r\n\r\n{\r\n "Browser": {\r\n "Family": "Nokia OSS Browser",\r\n "MajorVersion": "3",\r\n "MinorVersion": "1",\r\n "Patch": ""\r\n },\r\n "OperatingBridge.global.System": {\r\n "Family": "Symbian OS",\r\n "MajorVersion": "9",\r\n "MinorVersion": "2",\r\n "Patch": "",\r\n "PatchMinor": ""\r\n },\r\n "Device": {\r\n "Family": "Nokia N81",\r\n "Brand": "Nokia",\r\n "Model": "N81-3"\r\n }\r\n}',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_useragentfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_version","Converts input string representation of version to a comparable decimal number.","parse_version(\"0.0.0.1\")\r\n\r\n**Syntax**\r\n\r\n`parse_version` `(` *Expr* `)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: A scalar expression of type `string` that specifies the version to be parsed.\r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a decimal.\r\nIf conversion is not successful, result will be `null`.\r\n\r\n**Notes**\r\n\r\nInput string must contain from 1 to 4 version parts, represented as numbers and separated with dots ('.').\r\n\r\nEach part of version may contain up to 8 digits (max value - 99999999).\r\n\r\nIn case, if amount of parts is less than 4, all the missing parts are considered as trailing (`1.0` == `1.0.0.0`).",'```\r\nlet dt = datatable(v:string)\r\n["0.0.0.5","0.0.7.0","0.0.3","0.2","0.1.2.0","1.2.3.4","1","99999999.0.0.0"];\r\ndt | project v1=v, _key=1 \r\n| join kind=inner (dt | project v2=v, _key = 1) on _key | where v1 != v2\r\n| summarize v1 = max(v1),v2 = min(v2) by (hash(v1) + hash(v2)) // removing duplications\r\n| project v1, v2, higher_version = iif(parse_version(v1) > parse_version(v2), v1, v2)\r\n\r\n```\r\n\r\n|v1|v2|higher_version|\r\n|---|---|---|\r\n|99999999.0.0.0|0.0.0.5|99999999.0.0.0|\r\n|1|0.0.0.5|1|\r\n|1.2.3.4|0.0.0.5|1.2.3.4|\r\n|0.1.2.0|0.0.0.5|0.1.2.0|\r\n|0.2|0.0.0.5|0.2|\r\n|0.0.3|0.0.0.5|0.0.3|\r\n|0.0.7.0|0.0.0.5|0.0.7.0|\r\n|99999999.0.0.0|0.0.7.0|99999999.0.0.0|\r\n|1|0.0.7.0|1|\r\n|1.2.3.4|0.0.7.0|1.2.3.4|\r\n|0.1.2.0|0.0.7.0|0.1.2.0|\r\n|0.2|0.0.7.0|0.2|\r\n|0.0.7.0|0.0.3|0.0.7.0|\r\n|99999999.0.0.0|0.0.3|99999999.0.0.0|\r\n|1|0.0.3|1|\r\n|1.2.3.4|0.0.3|1.2.3.4|\r\n|0.1.2.0|0.0.3|0.1.2.0|\r\n|0.2|0.0.3|0.2|\r\n|99999999.0.0.0|0.2|99999999.0.0.0|\r\n|1|0.2|1|\r\n|1.2.3.4|0.2|1.2.3.4|\r\n|0.2|0.1.2.0|0.2|\r\n|99999999.0.0.0|0.1.2.0|99999999.0.0.0|\r\n|1|0.1.2.0|1|\r\n|1.2.3.4|0.1.2.0|1.2.3.4|\r\n|99999999.0.0.0|1.2.3.4|99999999.0.0.0|\r\n|1.2.3.4|1|1.2.3.4|\r\n|99999999.0.0.0|1|99999999.0.0.0|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_versionfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_xml","Interprets a `string` as a XML value, converts the value to a [JSON value](http://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).",'**Syntax**\r\n\r\n`parse_xml(`*xml*`)`\r\n\r\n**Arguments**\r\n\r\n* *xml*: An expression of type `string`, representing a XML-formatted value.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` that is determined by the value of *xml*, or null, if the XML format is invalid.\r\n\r\nConverting the XML to JSON is done using [xml2json](https://github.com/Cheedoong/xml2json) library.\r\n\r\nThe conversion is done as following:\r\n\r\nXML |JSON |Access\r\n-----------------------------------|------------------------------------------------|-------------- \r\n`` | { "e": null } | o.e\r\n`text`\t | { "e": "text" }\t | o.e\r\n`` | { "e":{"@name": "value"} }\t | o.e["@name"]\r\n`text` | { "e": { "@name": "value", "#text": "text" } } | o.e["@name"] o.e["#text"]\r\n` text text ` | { "e": { "a": "text", "b": "text" } }\t | o.e.a o.e.b\r\n` text text ` | { "e": { "a": ["text", "text"] } }\t | o.e.a[0] o.e.a[1]\r\n` text text ` | { "e": { "#text": "text", "a": "text" } }\t | 1`o.e["#text"] o.e.a\r\n\r\n**Notes**\r\n\r\n* Maximal input `string` length for `parse_xml` is 128 KB. Longer strings interpretation will result in a null object \r\n* Only element nodes, attributes and text nodes will be translated. Everything else will be skipped\r\n* Translation of XMLs with namespaces is currently not supported','In the following example, when `context_custom_metrics` is a `string`\r\nthat looks like this: \r\n\r\n```\r\n\r\n\r\n 118.0\r\n 5.0\r\n 100.0\r\n 150.0\r\n 0.0\r\n 118.0\r\n 118.0\r\n\r\n```\r\n\r\nthen the following CSL Fragment translates the XML to the following JSON:\r\n```\r\n{\r\n "duration": {\r\n "value": 118.0,\r\n "count": 5.0,\r\n "min": 100.0,\r\n "max": 150.0,\r\n "stdDev": 0.0,\r\n "sampledValue": 118.0,\r\n "sum": 118.0\r\n }\r\n}\r\n```\r\n\r\nand retrieves the value of the `duration` slot\r\nin the object, and from that it retrieves two slots, `duration.value` and\r\n `duration.min` (`118.0` and `110.0`, respectively).\r\n\r\n\r\n```\r\nT\r\n| extend d=parse_xml(context_custom_metrics) \r\n| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_xmlfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentile","Returns an estimate for the specified [nearest-rank percentile](#nearest-rank-percentile) of the population defined by *Expr*. \r\nThe accuracy depends on the density of population in the region of the percentile.",'* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n`percentiles()` is like `percentile()`, but calculates a number of \r\npercentile values (which is faster than calculating each percentile individually).\r\n\r\n`percentilesw()` is like `percentilew()`, but calculates a number of \r\npercentile values (which is faster than calculating each percentile individually).\r\n\r\n`percentilew()` and `percentilesw()` allows calculating weighted percentiles. Weighted\r\npercentiles calculate the given percentiles in a "weighted" way - threating each value\r\nas if it was repeated `Weight` times in the input.\r\n\r\n**Syntax**\r\n\r\nsummarize `percentile(`*Expr*`,` *Percentile*`)`\r\n\r\nsummarize `percentiles(`*Expr*`,` *Percentile1* [`,` *Percentile2*]`)`\r\n\r\nsummarize `percentiles_array(`*Expr*`,` *Percentile1* [`,` *Percentile2*]`)`\r\n\r\nsummarize `percentiles_array(`*Expr*`,` *Dynamic array*`)`\r\n\r\nsummarize `percentilew(`*Expr*`,` *WeightExpr*`,` *Percentile*`)`\r\n\r\nsummarize `percentilesw(`*Expr*`,` *WeightExpr*`,` *Percentile1* [`,` *Percentile2*]`)`\r\n\r\nsummarize `percentilesw_array(`*Expr*`,` *WeightExpr*`,` *Percentile1* [`,` *Percentile2*]`)`\r\n\r\nsummarize `percentilesw_array(`*Expr*`,` *WeightExpr*`,` *Dynamic array*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation.\r\n* *WeightExpr*: Expression that will be used as the weight of values for aggregation calculation.\r\n* *Percentile* is a double constant that specifies the percentile.\r\n* *Dynamic array*: list of percentiles in a dynamic array of integer or floating point numbers\r\n\r\n**Returns**\r\n\r\nReturns an estimate for *Expr* of the specified percentiles in the group.','The value of `Duration` that is larger than 95% of the sample set and smaller than 5% of the sample set:\r\n\r\n\r\n```\r\nCallDetailRecords | summarize percentile(Duration, 95) by continent\r\n```\r\n\r\nSimultaneously calculate 5, 50 (median) and 95:\r\n\r\n\r\n```\r\nCallDetailRecords \r\n| summarize percentiles(Duration, 5, 50, 95) by continent\r\n```\r\n\r\n![](./images/aggregations/percentiles.png)\r\n\r\nThe results show that in Europe, 5% of calls are shorter than 11.55s, 50% of calls are shorter than 3 minutes 18.46 seconds, and 95% of calls are shorter than 40 minutes 48 seconds.\r\n\r\nCalculate multiple statistics:\r\n\r\n\r\n```\r\nCallDetailRecords \r\n| summarize percentiles(Duration, 5, 50, 95), avg(Duration)\r\n```\r\n\r\n## Weighted percentiles\r\n\r\nAssume you measure the time (Duration) it takes an action to complete again and again, and\r\nthen instead of recording each and every value of the measurement, you "condense" them by\r\nrecording each value of Duration rounded to 100 msec and how many times that rounded value\r\nappeared (BucketSize).\r\n\r\nYou can use `summarize percentilesw(Duration, BucketSize, ...)` to calculates the given\r\npercentiles in a "weighted" way - treating each value of Duration as if it was repeated\r\nBucketSize times in the input, without actually needing to materialize those records.\r\n\r\nConsider the following following example (taken from [StackOverflow](https://stackoverflow/questions/8106/kusto-percentiles-on-aggregated-data)).\r\nA customer has a set of latency values in milliseconds:\r\n`{ 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }`.\r\n\r\nIn order to reduce bandwidth and storage, the custmer performs pre-aggregation to the\r\nfollowing buckets: `{ 10, 20, 30, 40, 50, 100 }`, and counts the number of events in each bucket,\r\nwhich gives the following Kusto table:\r\n\r\n![](./images/aggregations/percentilesw-table.png)\r\n\r\nWhich can be read as:\r\n - 8 events in the 10ms bucket (corresponding to subset `{ 1, 1, 2, 2, 2, 5, 7, 7 }`)\r\n - 6 events in the 20ms bucket (corresponding to subset `{ 12, 12, 15, 15, 15, 18 }`)\r\n - 3 events in the 30ms bucket (corresponding to subset `{ 21, 22, 26 }`)\r\n - 1 event in the 40ms bucket (corresponding to subset `{ 35 }`)\r\n\r\nAt this point, the original data is no longer available to us, and all we have is the\r\nnumber of events in each bucket. In order to compute percentiles from this data,\r\nwe can use the `percentilesw()` function. For example, for the 50,\r\n75 and 99.9 percentiles, we\'ll use the following query: \r\n\r\n\r\n```\r\nTable\r\n| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9) \r\n```\r\n\r\nThe result for the above query is:\r\n\r\n![](./images/aggregations/percentilesw-result.png)\r\n\r\nNotice, that the above query corresponds to the function\r\n`percentiles(LatencyBucket, 50, 75, 99.9)` if the data was expended to the following form:\r\n\r\n![](./images/aggregations/percentilesw-rawtable.png)\r\n\r\n## Getting multiple percentiles in an array\r\nMultiple percentiles percentiles can be obtained as an array in a single dynamic column instead of multiple columns: \r\n\r\n\r\n```\r\nCallDetailRecords \r\n| summarize percentiles_array(Duration, 5, 25, 50, 75, 95), avg(Duration)\r\n```\r\n\r\n![](./images/aggregations/percentiles_array-result.png)\r\n\r\nSimilarily weighted percentiles can be returned as a dynamic array using `percentilesw_array`\r\n\r\nPercentiles for `percentiles_array` and `percentilesw_array` can be specified in a dynamic array of integer or floating-point numbers. The array must be constant but does not have to be literal.\r\n\r\n\r\n```\r\nCallDetailRecords \r\n| summarize percentiles_array(Duration, dynamic([5, 25, 50, 75, 95])), avg(Duration)\r\n```\r\n\r\n\r\n```\r\nCallDetailRecords \r\n| summarize percentiles_array(Duration, range(0, 100, 5)), avg(Duration)\r\n```\r\n## Nearest-rank percentile\r\n*P*-th percentile (0 < *P* <= 100) of a list of ordered values (sorted from least to greatest) is the smallest value in the list such that *P* percent of the data is less or equal to that value ([from Wikipedia article on percentiles](https://en.wikipedia.org/wiki/Percentile#The_Nearest_Rank_method))\r\n\r\nWe also define *0*-th percentiles to be the smallest member of the population.\r\n\r\n**Note**\r\n* Given the approximating nature of the calculation the actual returned value may not be a member of the population\r\n* Nearest-rank definition means that *P*=50 does not conform to the [interpolative definition of the median](https://en.wikipedia.org/wiki/Median). When evaluating the significance of this discrepancy for the specific application the size of the population and an [estimation error](#estimation-error-in-percentiles) should be taken into account. \r\n\r\n## Estimation error in percentiles\r\n\r\nThe percentiles aggregate provides an approximate value using [T-Digest](https://github.com/tdunning/t-digest/blob/master/docs/t-digest-paper/histo.pdf). \r\n\r\nA few important points: \r\n\r\n* The bounds on the estimation error vary with the value of the requested percentile. The best accuracy is at the ends of [0..100] scale, percentiles 0 and 100 are the exact minimum and maximum values of the distribution. The accuracy gradually decreases towards the middle of the scale. It is worst at the median and is capped at 1%. \r\n* Error bounds are observed on the rank, not on the value. Suppose percentile(X, 50) returned value of Xm. The estimation guarantees that at least 49% and at most 51% of the values of X are less or equal to Xm. There is no theoretical limit on the difference between Xm and actual median value of X.\r\n* The estimation may sometimes result in a precise value but there are no reliable conditions to define when it will be the case',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentiles_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentile_tdigest","Calculates the percentile result from tdigest results (which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md))","**Syntax**\r\n\r\n`percentile_tdigest(`*Expr*`,` *Percentile1* [`,` *typeLiteral*]`)`\r\n\r\n`percentiles_array_tdigest(`*Expr*`,` *Percentile1* [`,` *Percentile2*] ...[`,` *PercentileN*]`)`\r\n\r\n`percentiles_array_tdigest(`*Expr*`,` *Dynamic array*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md)\r\n* *Percentile* is a double constant that specifies the percentile.\r\n* *typeLiteral*: An optional type literal (e.g., `typeof(long)`). If provided, the result set will be of this type. \r\n* *Dynamic array*: list of percentiles in a dynamic array of integer or floating point numbers\r\n\r\n**Returns**\r\n\r\nThe percentiles/percentilesw value of each value in *Expr*.\r\n\r\n**Tips**\r\n\r\n1) The function must recieve at least one percent (and maybe more, see the syntax above: *Percentile1* [`,` *Percentile2*] ...[`,` *PercentileN*]) and the result will be\r\n a dynamic array which includes the results. (such like [`percentiles()`](query_language_percentiles_aggfunction.md))\r\n \r\n2) if only one percent was provided and the type was provided also then the result will be a column of the same type provided with the results of that percent (all tdigests must be of that type in this case).\r\n\r\n3) if *Expr* includes tdigests of different types, then don't provide the type and the result will be of type dynamic. (see examples below).",'```\r\nStormEvents\r\n| summarize tdigestRes = tdigest(DamageProperty) by State\r\n| project percentile_tdigest(tdigestRes, 100, typeof(int))\r\n```\r\n\r\n|percentile_tdigest_tdigestRes|\r\n|---|\r\n|0|\r\n|62000000|\r\n|110000000|\r\n|1200000|\r\n|250000|\r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| summarize tdigestRes = tdigest(DamageProperty) by State\r\n| project percentiles_array_tdigest(tdigestRes, range(0, 100, 50), typeof(int))\r\n```\r\n\r\n|percentile_tdigest_tdigestRes|\r\n|---|\r\n|[0,0,0]|\r\n|[0,0,62000000]|\r\n|[0,0,110000000]|\r\n|[0,0,1200000]|\r\n|[0,0,250000]|\r\n\r\n\r\n\r\n```\r\nStormEvents\r\n| summarize tdigestRes = tdigest(DamageProperty) by State\r\n| union (StormEvents | summarize tdigestRes = tdigest(EndTime) by State)\r\n| project percentile_tdigest(tdigestRes, 100)\r\n```\r\n\r\n|percentile_tdigest_tdigestRes|\r\n|---|\r\n|[0]|\r\n|[62000000]|\r\n|["2007-12-20T11:30:00.0000000Z"]|\r\n|["2007-12-31T23:59:00.0000000Z"]|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentile_tdigestfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentrank_tdigest","Calculates the approximate rank of the value in a set where rank is expressed as percentage of set's size. \r\nThis function can be viewed as the inverse of the percentile.","**Syntax**\r\n\r\n`percentrank_tdigest(`*TDigest*`,` *Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *TDigest*: Expression which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md)\r\n* *Expr*: Expression representing a value to be used for percentage ranking calculation.\r\n\r\n**Returns**\r\n\r\nThe percentage rank of value in a dataset.\r\n\r\n**Tips**\r\n\r\n1) The type of second parameter and the type of the elements in the tdigest should be the same.\r\n\r\n2) First parameter should be TDigest which was generated by [tdigest()](query_language_tdigest_aggfunction.md) or [merge_tdigests()](query_language_merge_tdigests_aggfunction.md)","Getting the percentrank_tdigest() of the damage property that valued 4490$ is ~85%:\r\n\r\n\r\n```\r\nStormEvents\r\n| summarize tdigestRes = tdigest(DamageProperty)\r\n| project percentrank_tdigest(tdigestRes, 4490)\r\n\r\n```\r\n\r\n|Column1|\r\n|---|\r\n|85.0015237192293|\r\n\r\n\r\nUsing percentile 85 over the damage property should give 4490$:\r\n\r\n\r\n```\r\nStormEvents\r\n| summarize tdigestRes = tdigest(DamageProperty)\r\n| project percentile_tdigest(tdigestRes, 85, typeof(long))\r\n\r\n```\r\n\r\n|percentile_tdigest_tdigestRes|\r\n|---|\r\n|4490|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentrank_tdigestfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pi","Returns the constant value of Pi (π).","**Syntax**\r\n\r\n`pi()`\r\n\r\n**Returns**\r\n\r\n* The value of Pi.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_pifunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pow","Returns a result of raising to power","**Syntax**\r\n\r\n`pow(`*base*`,` *exponent* `)`\r\n\r\n**Arguments**\r\n\r\n* *base*: Base value.\r\n* *exponent*: Exponent value.\r\n\r\n**Returns**\r\n\r\nReturns base raised to the power exponent: base ^ exponent.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_powfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"prev","Returns the value of a column in a row that it at some offset prior to the\r\ncurrent row in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\r\n\r\n`prev(column)`\r\n\r\n`prev(column, offset)`\r\n\r\n`prev(column, offset, default_value)`\r\n\r\n**Arguments**\r\n\r\n* `column`: the column to get the values from.\r\n\r\n* `offset`: the offset to go back in rows. When no offset is specified a default offset 1 is used.\r\n\r\n* `default_value`: the default value to be used when there is no previous rows to take the value from. When no default value is specified, null is used.","```\r\nTable | serialize | extend prevA = prev(A,1)\r\n| extend diff = A - prevA\r\n| where diff > 1\r\n\r\nTable | serialize prevA = prev(A,1,10)\r\n| extend diff = A - prevA\r\n| where diff <= 10\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_prevfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"print","Evaluates one or more scalar expressions and inserts the results (as a single-row table with as many columns as there are expressions) into the output.",'print banner=strcat("Hello", ", ", "World!")\r\n\r\n**Syntax**\r\n\r\n`print` [*ColumnName* `=`] *ScalarExpression* [\',\' ...]\r\n\r\n**Arguments**\r\n\r\n* *ColumnName*: An option name to assign to the output\'s singular column.\r\n* *ScalarExpression*: A scalar expression to evaluate.\r\n\r\n**Returns**\r\n\r\nA single-column, single-row, table whose single cell has the value of the evaluated *ScalarExpression*.','The `print` operator is useful as a quick way to test scalar expression evaluation\r\nin the system. Without it, one has to resort to tricks such as prepending the\r\nevaluation with a `range x from 1 to 1 step 1 | project ...` or\r\n`datatable (print_0:long)[1] | project ...`.\r\n\r\n\r\n```\r\nprint 0 + 1 + 2 + 3 + 4 + 5, x = "Wow!"\r\n\r\nprint banner=strcat("Hello", ", ", "World!")\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_printoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project","Select the columns to include, rename or drop, and insert new computed columns.","The order of the columns in the result is specified by the order of the arguments. Only the columns specified in the arguments are included in the result: any others in the input are dropped. (See also `extend`.)\r\n\r\n T | project cost=price*quantity, price\r\n\r\n**Syntax**\r\n\r\n*T* `| project` *ColumnName* [`=` *Expression*] [`,` ...]\r\n \r\nor\r\n \r\n*T* `| project` [*ColumnName* | `(`*ColumnName*[`,`]`)` `=`] *Expression* [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The input table.\r\n* *ColumnName:* Optional name of a column to appear in the output. If there is no *Expression*, then *ColumnName* is mandatory and a column of that name must appear in the input. If omitted then the name will be generated. If *Expression* returns more than one column, then a list of column names can be specified in parenthesis. In this case *Expression*'s output columns will be given the specified names, dropping all rest of the output columns if any. If list of the column names is not specified then all *Expression*'s output columns with generated names will be added to output.\r\n* *Expression:* Optional scalar expression referencing the input columns. If *ColumnName* is not omitted then Expression* is mandatory.\r\n\r\n It is legal to return a new calculated column with the same name as an existing column in the input.\r\n\r\n**Returns**\r\n\r\nA table that has the columns named as arguments, and as many rows as the input table.",'The following example shows several kinds of manipulations that can be done\r\nusing the `project` operator. The input table `T` has three columns of type `int`: `A`, `B`, and `C`. \r\n\r\n\r\n```\r\nT\r\n| project\r\n X=C, // Rename column C to X\r\n A=2*B, // Calculate a new column A from the old B\r\n C=strcat("-",tostring(C)), // Calculate a new column C from the old C\r\n B=2*B // Calculate a new column B from the old B\r\n```\r\n\r\nSee [series_stats](query_language_series_statsfunction.md) as an example of a function that returns multiple columns',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project-away","Select what columns to exclude from the input.","T | project-away price, quantity\r\n\r\nThe order of the columns in the result is specified by their original order in the table. Only the columns that were specified as arguments are dropped: any others are included in the result. (See also `project`.)\r\n\r\n**Syntax**\r\n\r\n*T* `| project-away` *ColumnName* [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The input table.\r\n* *ColumnName:* The name of a column to remove from the output. \r\n\r\n**Returns**\r\n\r\nA table that has the columns that were not named as arguments, and as many rows as the input table.\r\n\r\n**Tips**\r\n\r\n* Use [`project-rename`](query_language_projectrenameoperator.md) instead if you also want to rename some of the columns.\r\n\r\n* You can project-away any columns that are present in the original table or that were computed as part of the query.",'The input table `T` has three columns of type `int`: `A`, `B`, and `C`. \r\n\r\n\r\n```\r\nT | project-away C // Removes column C from the output\r\n```\r\n\r\nReturns the table only with columns `A`, `B`. \r\n\r\nConsider the example for [`parse`](query_language_parseoperator.md). \r\nThe column `eventText` of table `Traces` contains\r\nstrings of the form `Event: NotifySliceRelease (resourceName={0}, totalSlices= {1}, sliceNumber={2}, lockTime={3}, releaseTime={4}, previousLockTime={5})`.\r\nThe operation below will extend the table with 6 columns: `resourceName` , `totalSlices`, `sliceNumber`, `lockTime `, `releaseTime`, `previouLockTime`, \r\n `Month` and `Day`, excluding the original \'evenText\' column.\r\n\r\n\r\n```\r\nTraces \r\n| parse eventText with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \r\n| project-away eventText\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectawayoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project-rename","Renames columns in the result output.","T | project-rename new_column_name = column_name\r\n\r\n**Syntax**\r\n\r\n*T* `| project-rename` *NewColumnName* = *ExistingColumnName* [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The input table.\r\n* *NewColumnName:* The new name of a column. \r\n* *ExistingColumnName:* The existing name of a column. \r\n\r\n**Returns**\r\n\r\nA table that has the columns in the same order as in an existing table, with columns renamed.","```\r\nprint a='a', b='b', c='c'\r\n| project-rename new_b=b, new_a=a\r\n```\r\n\r\n|new_a|new_b|c|\r\n|---|---|---|\r\n|a|b|c|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectrenameoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"radians","Converts angle value in degrees into value in radians, using formula `radians = (PI / 180 ) * angle_in_degrees`","**Syntax**\r\n\r\n`radians(`*a*`)`\r\n\r\n**Arguments**\r\n\r\n* *a*: Angle in degrees (a real number).\r\n\r\n**Returns**\r\n\r\n* The corresponding angle in radians for an angle specified in degrees.","```\r\nprint radians0 = radians(90), radians1 = radians(180), radians2 = radians(360) \r\n\r\n```\r\n\r\n|radians0|radians1|radians2|\r\n|---|---|---|\r\n|1.5707963267949|3.14159265358979|6.28318530717959|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_radiansfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"rand","Returns a random number.","rand()\r\n rand(1000)\r\n\r\n**Syntax**\r\n\r\n* `rand()` - returns a real number between 0.0 and 1.0.\r\n* `rand(n)` - returns an integer number between 0 and n-1.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_randfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"range","Generates a dynamic array holding a series of equally-spaced values.","**Syntax**\r\n\r\n`range(`*start*`,` *stop*[`,` *step*]`)` \r\n\r\n**Arguments**\r\n\r\n* *start*: The value of the first element in the resulting array. \r\n* *stop*: The value of the last element in the resulting array,\r\nor the least value that is greater than the last element in the resulting\r\narray and within an integer multiple of *step* from *start*.\r\n* *step*: The difference between two consecutive elements of\r\nthe array. \r\nThe default value for *step* is `1` for numeric and `1h` for `timespan` or `datetime`",'The following example returns `[1, 4, 7]`:\r\n\r\n\r\n```\r\nT | extend r = range(1, 8, 3)\r\n```\r\n\r\nThe following example returns an array holding all days\r\nin the year 2015:\r\n\r\n\r\n```\r\nT | extend r = range(datetime(2015-01-01), datetime(2015-12-31), 1d)\r\n```\r\n\r\nThe following example returns `[1,2,3]`:\r\n\r\n```\r\nrange(1, 3)\r\n```\r\n\r\nThe follwing example returns `["01:00:00","02:00:00","03:00:00","04:00:00","05:00:00"]`:\r\n```\r\nrange(1h, 5h)\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rangefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"range","Generates a single-column table of values.","Notice that it doesn't have a pipeline input. \r\n\r\n**Syntax**\r\n\r\n`range` *columnName* `from` *start* `to` *stop* `step` *step*\r\n\r\n**Arguments**\r\n\r\n* *columnName*: The name of the single column in the output table.\r\n* *start*: The smallest value in the output.\r\n* *stop*: The highest value being generated in the output (or a bound\r\non the highest value, if *step* steps over this value).\r\n* *step*: The difference between two consecutive values. \r\n\r\nThe arguments must be numeric, date or timespan values. They can't reference the columns of any table. (If you want to compute the range based on an input table, use the range function, maybe with the mvexpand operator.) \r\n\r\n**Returns**\r\n\r\nA table with a single column called *columnName*,\r\nwhose values are *start*, *start* `+` *step*, ... up to and until *stop*.","A table of midnight at the past seven days. The bin (floor) function reduces each time to the start of the day.\r\n\r\n\r\n```\r\nrange LastWeek from ago(7d) to now() step 1d\r\n```\r\n\r\n|LastWeek|\r\n|---|\r\n|2015-12-05 09:10:04.627|\r\n|2015-12-06 09:10:04.627|\r\n|...|\r\n|2015-12-12 09:10:04.627|\r\n\r\n\r\nA table with a single column called `Steps`\r\nwhose type is `long` and whose values are `1`, `4`, and `7`.\r\n\r\n\r\n```\r\nrange Steps from 1 to 8 step 3\r\n```\r\n\r\nThe next example shows how the `range` operator can be used to create\r\na small, ad-hoc, dimension table which is then used to introduce zeros where the source data has no values.\r\n\r\n\r\n```\r\nrange TIMESTAMP from ago(4h) to now() step 1m\r\n| join kind=fullouter\r\n (Traces\r\n | where TIMESTAMP > ago(4h)\r\n | summarize Count=count() by bin(TIMESTAMP, 1m)\r\n ) on TIMESTAMP\r\n| project Count=iff(isnull(Count), 0, Count), TIMESTAMP\r\n| render timechart \r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rangeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"reduce","The `reduce` operator groups a set of `string` values together based on similarity.\r\nFor each such group, it outputs a **pattern** that best describes the group (possibly using the\r\nasterix (`*`) character to represent wildcards), a **count** of the number of values in the group,\r\nand a **representative** of the group (one of the original values in the group).",'T | reduce by LogMessage with threshold=0.1\r\n\r\n> The implementation is largely based on the following paper:\r\n * [A Data Clustering Algorithm for Mining Patterns From Event Logs](http://ristov.github.io/publications/slct-ipom03-web.pdf), \r\n by Risto Vaarandi.\r\n\r\n\r\n**Syntax**\r\n\r\n*T* `|` `reduce` [`kind` `=` *ReduceKind*] `by` *Expr* [`with` [`threshold` `=` *Threshold*] [`,` `characters` `=` *Characters*] ]\r\n\r\n**Arguments**\r\n\r\n* *Expr*: An expression that evaluates to a `string` value.\r\n* *Threshold*: A `real` literal in the range (0..1). Default is 0.1. For large inputs, threshold should be small. \r\n* *Characters*: A `string` literal containing a list of characters to add to the list of characters\r\n that don\'t break a term. (For example, if you want `aaa=bbbb` and `aaa:bbb` to each be a whole term,\r\n rather than break on `=` and `:`, use `":="` as the string literal.)\r\n* *ReduceKind*: Specifies the reduce flavor. The only valid value for the time being is `source`.\r\n\r\n**Returns**\r\n\r\nThis operator returns a table with three columns (`Pattern`, `Count`, and `Representative`),\r\nand as many rows as there are groups. `Pattern` is the pattern value for the group, with `*`\r\nbeing used as a wildcard (representing arbitrary insertion strings), `Count` counts how\r\nmany rows in the input to the operator are represented by this pattern, and `Representative`\r\nis one value from the input that falls into this group.\r\n\r\nIf `[kind=source]` is specified, the operator will append the `Pattern` column to the existing table structure.\r\nNote that the syntax an schema of this flavor might be subjected to future changes.\r\n\r\nFor example, the result of `reduce by city` might include: \r\n\r\n|Pattern |Count |Representative|\r\n|------------|------|--------------|\r\n| San * | 5182 |San Bernard |\r\n| Saint * | 2846 |Saint Lucy |\r\n| Moscow | 3726 |Moscow |\r\n| \\* -on- \\* | 2730 |One -on- One |\r\n| Paris | 2716 |Paris |\r\n\r\nAnother example with customized tokenization:\r\n\r\n\r\n```\r\nrange x from 1 to 1000 step 1\r\n| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))\r\n| reduce by MyText with threshold=0.001 , characters = "X" \r\n```\r\n\r\n|Pattern |Count|Representative |\r\n|----------------|-----|-----------------|\r\n|MachineLearning*|1000 |MachineLearningX4|','The following example shows how one might apply the `reduce` operator to a "sanitized"\r\ninput, in which GUIDs in the column being reduced are replaced prior to reducing\r\n\r\n\r\n```\r\n// Start with a few records from the Trace table.\r\nTrace | take 10000\r\n// We will reduce the Text column which includes random GUIDs.\r\n// As random GUIDs interfere with the reduce operation, replace them all\r\n// by the string "GUID".\r\n| extend Text=replace(@"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID", Text)\r\n// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded \'-\'\r\n// or \'_\' characters in them, treat these as non-term-breakers.\r\n| reduce by Text with characters="-_"\r\n```\r\n\r\n**See also**\r\n\r\n[autocluster](./query_language_autoclusterplugin.md)',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_reduceoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"render","Renders results in as graphical output.",'T | render timechart\r\n\r\nThe render operator should be the last operator in the query expression.\r\n\r\n**Syntax**\r\n\r\n*T* `|` `render` *Visualization* [`with` (\r\n\r\n [`title` `=` *Title*],\r\n\r\n [`xcolumn` `=` *xColumn*],\r\n\r\n [`series` `=` *Series*],\r\n\r\n [`ycolumns` `=` *yColumns*],\r\n\r\n [`kind` `=` *VisualizationKind*],\r\n\r\n [`xtitle` `=` *xTitle*],\r\n\r\n [`ytitle` `=` *yTitle*],\r\n\r\n [`legend` `=` *Legend*],\r\n\r\n [`ysplit` `=` *ySplit*],\r\n\r\n [`accumulate` `=` *Accumulate*]\r\n)]\r\n\r\nWhere:\r\n* *Visualization* indicates the kind of visualization to perform. Supported values are:\r\n\r\n|*Visualization* |Description|\r\n|--------------------|-|\r\n| `anomalychart` | Similar to timechart, but [highlights anomalies](./query_language_samples.md#get-more-out-of-your-data-in-kusto-using-machine-learning) using an external machine-learning service. |\r\n| `areachart` | Area graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\r\n| `barchart` | First column is x-axis, and can be text, datetime or numeric. Other columns are numeric, displayed as horizontal strips.|\r\n| `columnchart` | Like `barchart`, with vertical strips instead of horizontal strips.|\r\n| `ladderchart` | Last two columns are the x-axis, other columns are y-axis.|\r\n| `linechart` | Line graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\r\n| `piechart` | First column is color-axis, second column is numeric. |\r\n| `pivotchart` | Displays a pivot table and chart. User can interactively select data, columns, rows and various chart types. |\r\n| `scatterchart` | Points graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\r\n| `stackedareachart` | Stacked area graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\r\n| `table` | Default - results are shown as a table.|\r\n| `timechart` | Line graph. First column is x-axis, and should be datetime. Other columns are y-axes.|\r\n| `timepivot` | Interactive navigation over the events time-line (pivoting on time axis)|\r\n\r\n* *title* is an optional `string` value that holds the title for the results.\r\n\r\n* *xColumn* is an optional column identifier, that defines data from which column will be used as x-axis.\r\n\r\n* *series* is an optional list of columns to control which "axis" is driven by which column in the data.\r\n\r\n* *yColumns* is an optional list of columns, data from which will be used as y-values.\r\n\r\n* *kind* is an optional identifier that chooses between the available kinds of the\r\n chosen *Visualization* (such as `barchart` and `columnchart`), if more than one kind is supported:\r\n\r\n|*Visualization*|*kind*|Description |\r\n|---------------|-------------------|--------------------------------|\r\n|`areachart` |`default` |Default, same as `unstacked` |\r\n| |`unstacked` |Each "area" to its own |\r\n| |`stacked` |"Areas" are stacked to the right|\r\n| |`stacked100` |"Areas" are stacked to the right, and stretched to the same width|\r\n|`barchart` |`default` |Default, same as `unstacked` |\r\n| |`unstacked` |Each bar to its own |\r\n| |`stacked` |Bars are stacked to the right |\r\n| |`stacked100` |Bars are stacked to the right, and stretched to the same width|\r\n|`columnchart` |`default` |Default, same as `unstacked` |\r\n| |`unstacked` |Each column to its own |\r\n| |`stacked` |Columns are stacked upwards |\r\n| |`stacked100` |Columns are stacked upwards, and stretched to the same height|\r\n\r\n* *xTitle* is an optional `string` value that holds the title for the X-Axis.\r\n\r\n* *yTitle* is an optional `string` value that holds the title for the Y-Axis.\r\n\r\n* *legend* is an optional value that can be set to either `visible` (the default) or `hidden`, which defines whether to display chart legend or not.\r\n\r\n* *ySplit* is an optional identifier that chooses between the available options of Y-Axis visualization:\r\n\r\n|*ySplit*|Description |\r\n|---------------|-------------------|\r\n|`none` |Default, chart displayed with single Y-Axis for all series |\r\n|`axes` |Displayed single chart with separate Y-Axis for each serie |\r\n|`panels` |For every column, defined as Y, generated separate panel, with binding to the same X-Axis (maximal panels amount is 5)|\r\n\r\n* *accumulate* is an optional value that can be set to either `true` or `false` (the default),\r\n and indicates whether to accumulate y-axis numeric values for presentation.\r\n\r\n**Tips**\r\n\r\n* Only positive values are displayed.\r\n* Use `where`, `summarize` and `top` to limit the volume that you display.\r\n* Sort the data to define the order of the x-axis.',"[Rendering examples in the tutorial](./query_language_tutorial.md#render-display-a-chart-or-table).\r\n\r\n[Anomaly detection](./query_language_samples.md#get-more-out-of-your-data-in-kusto-using-machine-learning)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_renderoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"repeat","Generates a dynamic array holding a series of equal values.","**Syntax**\r\n\r\n`repeat(`*value*`,` *count*`)` \r\n\r\n**Arguments**\r\n\r\n* *value*: The value of the element in the resulting array. The type of *value* can be integer, long, real, datetime, or timespan. \r\n* *count*: The count of the elements in the resulting array. The *count* must be an integer number.\r\nIf *count* is equal to zero, a empty array is returned.\r\nIf *count* is less than zero, a null value is returned.","The following example returns `[1, 1, 1]`:\r\n\r\n\r\n```\r\nT | extend r = repeat(1, 3)\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_repeatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"replace","Replace all regex matches with another string.","**Syntax**\r\n\r\n`replace(`*regex*`,` *rewrite*`,` *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: The [regular expression](https://github.com/google/re2/wiki/Syntax) to search *text*. It can contain capture groups in '('parentheses')'. \r\n* *rewrite*: The replacement regex for any match made by *matchingRegex*. Use `\\0` to refer to the whole match, `\\1` for the first capture group, `\\2` and so on for subsequent capture groups.\r\n* *text*: A string.\r\n\r\n**Returns**\r\n\r\n*text* after replacing all matches of *regex* with evaluations of *rewrite*. Matches do not overlap.","This statement:\r\n\r\n\r\n```\r\nrange x from 1 to 5 step 1\r\n| extend str=strcat('Number is ', tostring(x))\r\n| extend replaced=replace(@'is (\\d+)', @'was: \\1', str)\r\n```\r\n\r\nHas the following results:\r\n\r\n| x | str | replaced|\r\n|---|---|---|\r\n| 1 | Number is 1.000000 | Number was: 1.000000|\r\n| 2 | Number is 2.000000 | Number was: 2.000000|\r\n| 3 | Number is 3.000000 | Number was: 3.000000|\r\n| 4 | Number is 4.000000 | Number was: 4.000000|\r\n| 5 | Number is 5.000000 | Number was: 5.000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_replacefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"reverse","Function makes reverse of input string.","If input value is not of string type, function forcibly casts the value to string.\r\n\r\n**Syntax**\r\n\r\n`reverse(`*source*`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: input value. \r\n\r\n**Returns**\r\n\r\nThe reverse order of a string value.","```\r\nprint str = \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\"\r\n| extend rstr = reverse(str)\r\n```\r\n\r\n|str|rstr|\r\n|---|---|\r\n|ABCDEFGHIJKLMNOPQRSTUVWXYZ|ZYXWVUTSRQPONMLKJIHGFEDCBA|\r\n\r\n\r\n\r\n```\r\nprint ['int'] = 12345, ['double'] = 123.45, \r\n['datetime'] = datetime(2017-10-15 12:00), ['timespan'] = 3h\r\n| project rint = reverse(['int']), rdouble = reverse(['double']), \r\nrdatetime = reverse(['datetime']), rtimespan = reverse(['timespan'])\r\n```\r\n\r\n|rint|rdouble|rdatetime|rtimespan|\r\n|---|---|---|---|\r\n|54321|54.321|Z0000000.00:00:21T51-01-7102|00:00:30|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_reversefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"round","Returns the rounded source to the specified precision.","**Syntax**\r\n\r\n`round(`*source* [`,` *Precision*]`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The source scalar the round is calculated on.\r\n* *Precision*: Number of digits the source will be rounded to.(default value is 0)\r\n\r\n**Returns**\r\n\r\nThe rounded source to the specified precision.\r\n\r\nRound is different than [`bin()`](query_language_binfunction.md)/[`floor()`](query_language_floorfunction.md) in\r\nthat the first rounds a number to a specific number of digits while the last rounds value to an integer multiple \r\nof a given bin size (round(2.15, 1) returns 2.2 while bin(2.15, 1) returns 2).","```\r\nround(2.15, 1) // 2.2\r\nround(2.15) (which is the same as round(2.15, 0)) // 2\r\nround(-50.55, -2) // -100\r\nround(21.5, -1) // 20\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_roundfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"row_cumsum","Calculates the cumulative sum of a column in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\r\n\r\n`row_cumsum` `(` *Term* [`,` *Restart*] `)`\r\n\r\n* *Term* is an expression indicating the value to be summed.\r\n The expression must be a scalar of one of the following types:\r\n `decimal`, `int`, `long`, or `real`. Null *Term* values do not affect the\r\n sum.\r\n* *Restart* is an optional argument of type `bool` that indicates when the\r\n accummulation operation should be restarted (set back to 0). It can be\r\n used to indicate partitions of the data; see the second example below.\r\n\r\n**Returns**\r\n\r\nThe function returns the cumulative sum of its argument.",'The following example shows how to calculate the cumulative sum of the first\r\nfew odd integers.\r\n\r\n\r\n```\r\ndatatable (a:long) [\r\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\r\n]\r\n| where a%2==0\r\n| serialize cs=row_cumsum(a)\r\n```\r\n\r\na | cs\r\n-----|-----\r\n2 | 2\r\n4 | 6\r\n6 | 12\r\n8 | 20\r\n10 | 30\r\n\r\nThis example shows how to calculate the cumulative sum (here, of `salary`)\r\nwhen the data is partitioned (here, by `name`):\r\n\r\n\r\n```\r\ndatatable (name:string, month:int, salary:long)\r\n[\r\n "Alice", 1, 1000,\r\n "Bob", 1, 1000,\r\n "Alice", 2, 2000,\r\n "Bob", 2, 1950,\r\n "Alice", 3, 1400,\r\n "Bob", 3, 1450,\r\n]\r\n| order by name asc, month asc\r\n| extend total=row_cumsum(salary, name != prev(name))\r\n```\r\n\r\nname | month | salary | total\r\n-------|--------|---------|------\r\nAlice | 1 | 1000 | 1000\r\nAlice | 2 | 2000 | 3000\r\nAlice | 3 | 1400 | 4400\r\nBob | 1 | 1000 | 1000\r\nBob | 2 | 1950 | 2950\r\nBob | 3 | 1450 | 4400',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rowcumsumfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"row_number","Returns the current row's index in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set),\r\nstarting at either `1` (the default) or by some specified starting index.","**Syntax**\r\n\r\n`row_number()`\r\n\r\n`row_number(start index)`","```\r\nTable | serialize | extend rn = row_number()\r\nTable | serialize | extend rn = row_number(0)\r\nTable | serialize rn = row_number()\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rownumberfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sample","Returns up to the specified number of random rows from the input table."," T | sample 5\r\n\r\n**Syntax**\r\n\r\n*T* `| sample` *NumberOfRows*\r\n\r\n**Arguments**\r\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\r\n\r\n**Tips**\r\n\r\n* if you want to sample a certain percentage of your data (rather than a specified number of rows), you can use \r\n\r\n\r\n```\r\nStormEvents | where rand() < 0.1\r\n\r\n```\r\n\r\n* If you want to sample keys rather than rows (for example - sample 100 user ids and get all rows for these user IDS) you can use [`sample-distinct`](./query_language_sampledistinctoperator.md) in combination with the `in` operator.","```\r\nStormEvents | sample 10\r\n\r\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sampleoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sample-distinct","Returns a single column that contains up to the specified number of distinct values of the requested column.","the default (and currently only) flavor of the operator tries to return an answer as quickly as possible (rather than trying to make a fair sample)\r\n\r\n T | sample-distinct 5 of DeviceId\r\n\r\n**Syntax**\r\n\r\n*T* `| sample-distinct` *NumberOfValues* `of` *ColumnName*\r\n\r\n**Arguments**\r\n* *NumberOfValues*: The number distinct values of *T* to return. You can specify any numeric expression.\r\n\r\n**Tips**\r\n\r\n Can be handy to sample a population by putting `sample-distinct` in a let statement and later filter using the `in` operator (see example) \r\n\r\n If you want the top values rather than just a sample, you can use the [top-hitters](query_language_tophittersoperator.md) operator \r\n\r\n if you want to sample data rows (rather than values of a specific column), refer to the [sample operator](query_language_sampleoperator.md)\r\n\r\n**Examples** \r\nGet 10 distinct values from a population\r\n\r\n```\r\nStormEvents | sample-distinct 10 of EpisodeId\r\n\r\n```\r\n\r\nSample a population and do further computation knowing the summarize won't exceed query limits. \r\n\r\n\r\n```\r\nlet sampleEpisodes = toscalar(StormEvents | sample-distinct 10 of EpisodeId);\r\nStormEvents | where EpisodeId in (sampleEpisodes) | summarize totalInjuries=sum(InjuriesDirect) by EpisodeId\r\n\r\n```","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sampledistinctoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"search","The search operator provides a multi-table/multi-column search experience.",'## Syntax\r\n\r\n* [*TabularSource* `|`] `search` [`kind=`*CaseSensitivity*] [`in` `(`*TableSources*`)`] *SearchPredicate*\r\n\r\n## Arguments\r\n\r\n* *TabularSource*: An optional tabular expression that acts as a data source to be searched over,\r\n such as a table name, a [union operator](query_language_unionoperator.md), the results\r\n of a tabular query, etc. Cannot appear together with the optional phrase that includes *TableSources*.\r\n\r\n* *CaseSensitivity*: An optional flag that controls the behavior of all `string` scalar operators\r\n with respect to case sensitivity. Valid values are the two synonyms `default` and `case_insensitive`\r\n (which is the default for operators such as `has`, namely being case-insensitive) and `case_sensitive`\r\n (which forces all such operators into case-sensitive matching mode).\r\n\r\n* *TableSources*: An optional comma-separated list of "wildcarded" table names to take part in the search.\r\n The list has the same syntax as the list of the [union operator](query_language_unionoperator.md).\r\n Cannot appear together with the optional *TabularSource*.\r\n\r\n* *SearchPredicate*: A mandatory predicate that defines what to search for (in other words,\r\n a Boolean expression that is evaluated for every record in the input and that, if it returns\r\n `true`, the record is outputted.)\r\n The syntax for *SearchPredicate* extends and modifies the normal Kusto syntax for Boolean expressions:\r\n\r\n **String matching extensions**: String literals that appear as terms in the *SearchPredicate* indicate a term\r\n match between all columns and the literal using `has`, `hasprefix`, `hassuffix`, and the inverted (`!`)\r\n or case-sensitive (`sc`) versions of these operators. The decision whether to apply `has`, `hasprefix`,\r\n or `hassuffix` depends on whether the literal starts or ends (or both) by an asterisk (`*`). Asterisks\r\n inside the literal are not allowed.\r\n\r\n |Literal |Operator |\r\n |----------|-----------|\r\n |`billg` |`has` |\r\n |`*billg` |`hassuffix`|\r\n |`billg*` |`hasprefix`|\r\n |`*billg*` |`contains` |\r\n |`bi*lg` |`matches regex`|\r\n\r\n **Column restriction**: By default, string matching extensions attempt to match against all columns\r\n of the data set. It is possible to restrict this matching to a particular column by using\r\n the following syntax: *ColumnName*`:`*StringLiteral*.\r\n\r\n **String equality**: Exact matches of a column against a string value (instead of a term-match)\r\n can be done using the syntax *ColumnName*`==`*StringLiteral*.\r\n\r\n **Other Boolean expressions**: All regular Kusto Boolean expressions are supported by the syntax.\r\n For example, `"error" and x==123` means: search for records that have the term `error` in any\r\n of their columns, and have the value `123` in the `x` column."\r\n\r\n **Regex match**: Regular expression matching is indicated using *Column* `matches regex` *StringLiteral*\r\n syntax, where *StringLiteral* is the regex pattern.\r\n\r\nNote that if both *TabularSource* and *TableSources* are omitted, the search is carried over all unrestricted tables\r\nand views of the database in scope.\r\n\r\n## Summary of string matching extensions\r\n\r\n |# |Syntax |Meaning (equivalent `where`) |Comments|\r\n |--|---------------------------------------|---------------------------------------|--------|\r\n | 1|`search "err"` |`where * has "err"` ||\r\n | 2|`search in (T1,T2,A*) and "err"` |`union T1,T2,A* | where * has "err"` ||\r\n | 3|`search col:"err"` |`where col has "err"` ||\r\n | 4|`search col=="err"` |`where col=="err"` ||\r\n | 5|`search "err*"` |`where * hasprefix "err"` ||\r\n | 6|`search "*err"` |`where * hassuffix "err"` ||\r\n | 7|`search "*err*"` |`where * contains "err"` ||\r\n | 8|`search "Lab*PC"` |`where * matches regex @"\\bLab\\w*PC\\b"`||\r\n | 9|`search *` |`where 0==0` ||\r\n |10|`search col matches regex "..."` |`where col matches regex "..."` ||\r\n |11|`search kind=case_sensitive` | |All string comparisons are case-sensitive|\r\n |12|`search "abc" and ("def" or "hij")` |`where * has "abc" and (* has "def" or * has hij")`||\r\n |13|`search "err" or (A>a and Aa and A= datetime(1981-01-01)\r\n\r\n// 7. Searches over all the higher-ups\r\nsearch in (C*, TF) "billg" or "davec" or "steveb"\r\n\r\n// 8. A different way to say (7)\r\nunion C*, TF | search "billg" or "davec" or "steveb"\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_searchoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"serialize","Makes the row set serialized to allow activating on it functions that can be performed on serilaized data only, e.g. [row_number()](query_language_rownumberfunction.md).","T | serialize\r\n\r\n**Alias**\r\n\r\n`serialize`",'```\r\nTraces\r\n| where ActivityId == "479671d99b7b"\r\n| serialize\r\n\r\nTraces\r\n| where ActivityId == "479671d99b7b"\r\n| serialize rn = row_number()\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_serializeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_backward","Performs backward fill interpolation of missing values in a series.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with the nearest value from its right side other than missing_value_placeholder and returns the resulting array. The rightmost instances of missing_value_placeholder are preserved.\r\n\r\n**Syntax**\r\n\r\n`series_fill_backward(`*x*`[, `*missing_value_placeholder*`])`\r\n* Will return series *x* with all instances of *missing_value_placeholder* filled backward.\r\n\r\n**Arguments**\r\n\r\n* *x*: dynamic array scalar expression which is an array of numeric values.\r\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\r\n\r\n**Notes**\r\n\r\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \r\n\r\n\r\n```\r\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\r\n```\r\n\r\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\r\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\r\n* The functions preserves original type of array elements.","```\r\nlet data = datatable(arr: dynamic)\r\n[\r\n dynamic([111,null,36,41,null,null,16,61,33,null,null]) \r\n];\r\ndata \r\n| project arr, \r\n fill_forward = series_fill_backward(arr)\r\n\r\n```\r\n\r\n|arr|fill_forward|\r\n|---|---|\r\n|[111,null,36,41,null,null,16,61,33,null,null]|[111,36,36,41,16, 16,16,61,33,null,null]|\r\n\r\n \r\nOne can use [series_fill_forward](query_language_series_fill_forwardfunction.md) or [series_fill_const](query_language_series_fill_constfunction.md) in order to complete interpolation of the above array.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_backwardfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_const","Replaces missing values in a series with a specified constant value.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with specified constant_value and returns the resulting array.\r\n\r\n**Syntax**\r\n\r\n`series_fill_const(`*x*`[, `*constant_value*`[,` *missing_value_placeholder*`]])`\r\n* Will return series *x* with all instances of *missing_value_placeholder* replaced with *constant_value*.\r\n\r\n**Arguments**\r\n\r\n* *x*: dynamic array scalar expression which is an array of numeric values.\r\n* *constant_value*: parameter which specifies a placeholder for a missing values to be replaced. Default value is *0*. \r\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\r\n\r\n**Notes**\r\n* It is possible to create a series with constant fill in one call using `default = ` *DefaultValue* syntax (or just omitting which will assume 0). See [make-series](query_language_make_seriesoperator.md) for more information.\r\n\r\n\r\n```\r\nmake-series num=count() default=-1 on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\r\n```\r\n \r\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \r\n\r\n\r\n```\r\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\r\n```\r\n \r\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\r\n* The function preserves original type of the array elements.","```\r\nlet data = datatable(arr: dynamic)\r\n[\r\n dynamic([111,null,36,41,23,null,16,61,33,null,null]) \r\n];\r\ndata \r\n| project arr, \r\n fill_const1 = series_fill_const(arr, 0.0),\r\n fill_const2 = series_fill_const(arr, -1) \r\n\r\n```\r\n\r\n|arr|fill_const1|fill_const2|\r\n|---|---|---|\r\n|[111,null,36,41,23,null,16,61,33,null,null]|[111,0.0,36,41,23,0.0,16,61,33,0.0,0.0]|[111,-1,36,41,23,-1,16,61,33,-1,-1]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_constfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_forward","Performs forward fill interpolation of missing values in a series.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with the nearest value from its left side other than missing_value_placeholder and returns the resulting array. The leftmost instances of missing_value_placeholder are preserved.\r\n\r\n**Syntax**\r\n\r\n`series_fill_forward(`*x*`[, `*missing_value_placeholder*`])`\r\n* Will return series *x* with all instances of *missing_value_placeholder* filled forward.\r\n\r\n**Arguments**\r\n\r\n* *x*: dynamic array scalar expression which is an array of numeric values. \r\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\r\n\r\n**Notes**\r\n\r\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \r\n\r\n\r\n```\r\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\r\n```\r\n\r\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\r\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\r\n* The functions preserves original type of array elements.","```\r\nlet data = datatable(arr: dynamic)\r\n[\r\n dynamic([null,null,36,41,null,null,16,61,33,null,null]) \r\n];\r\ndata \r\n| project arr, \r\n fill_forward = series_fill_forward(arr) \r\n\r\n```\r\n\r\n|arr|fill_forward|\r\n|---|---|\r\n|[null,null,36,41,null,null,16,61,33,null,null]|[null,null,36,41,41,41,16,61,33,33,33]|\r\n \r\nOne can use [series_fill_backward](query_language_series_fill_backwardfunction.md) or [series_fill_const](query_language_series_fill_constfunction.md) in order to complete interpolation of the above array.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_forwardfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_linear","Performs linear interpolation of missing values in a series.",'Takes an expression containing dynamic numerical array as input, performs linear interpolation for all instances of missing_value_placeholder and returns the resulting array. If the beginning and end of the array contains missing_value_placeholder, then it will be replaced with the nearest value other than missing_value_placeholder (can be turned off). If the whole array consists of the missing_value_placeholder then the array will be filled with constant_value or 0 if no specified. \r\n\r\n**Syntax**\r\n\r\n`series_fill_linear(`*x*`[,` *missing_value_placeholder*` [,`*fill_edges*` [,`*constant_value*`]]]))`\r\n* Will return series linear interpolation of *x* using specified parameters.\r\n \r\n\r\n**Arguments**\r\n\r\n* *x*: dynamic array scalar expression which is an array of numeric values.\r\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for the "missing values" to be replaced. Default value is `double`(*null*).\r\n* *fill_edges*: Boolean value which indicates whether *missing_value_placeholder* at the start and end of the array should be replaced with nearest value. *True* by default. If set to *false* then *missing_value_placeholder* at the start and end of the array will be preserved.\r\n* *constant_value*: optional parameter relevant only for arrays entirely consists of *null* values, which specifies constant value to fill the series with. Default value is *0*. Setting this parameter it to `double`(*null*) will effectively leave *null* values where they are.\r\n\r\n**Notes**\r\n\r\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \r\n\r\n\r\n```\r\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\r\n```\r\n\r\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\r\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\r\n* The function preserves original type of array elements. If *x* contains only *int* or *long* elements then the linear interpolation will return rounded interpolated values rather than exact ones.',"```\r\nlet data = datatable(arr: dynamic)\r\n[\r\n dynamic([null, 111.0, null, 36.0, 41.0, null, null, 16.0, 61.0, 33.0, null, null]), // Array of double \r\n dynamic([null, 111, null, 36, 41, null, null, 16, 61, 33, null, null]), // Similar array of int\r\n dynamic([null, null, null, null]) // Array with missing values only\r\n];\r\ndata\r\n| project arr, \r\n without_args = series_fill_linear(arr),\r\n with_edges = series_fill_linear(arr, double(null), true),\r\n wo_edges = series_fill_linear(arr, double(null), false),\r\n with_const = series_fill_linear(arr, double(null), true, 3.14159) \r\n\r\n```\r\n\r\n|arr|without_args|with_edges|wo_edges|with_const|\r\n|---|---|---|---|---|\r\n|[null,111.0,null,36.0,41.0,null,null,16.0,61.0,33.0,null,null]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|[null,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,null,null]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|\r\n|[null,111,null,36,41,null,null,16,61,33,null,null]|[111,111,73,36,41,32,24,16,61,33,33,33]|[111,111,73,36,41,32,24,16,61,33,33,33]|[null,111,73,36,41,32,24,16,61,33,null,null]|[111,111,74,38, 41,32,24,16,61,33,33,33]|\r\n|[null,null,null,null]|[0.0,0.0,0.0,0.0]|[0.0,0.0,0.0,0.0]|[0.0,0.0,0.0,0.0]|[3.14159,3.14159,3.14159,3.14159]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_linearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fir","Applies a Finite Impulse Response filter on a series.","Takes an expression containing dynamic numerical array as input and applies a [Finite Impulse Response](https://en.wikipedia.org/wiki/Finite_impulse_response) filter. By specifying the `filter` coefficients, it can be used for calculating moving average, smoothing, change-detection and many more use cases. The function takes as input the column containing the dynamic array and a static dynamic array of the filter's coefficients and applies the filter on the column. It outputs a new dynamic array column, containing the filtered output. \r\n\r\n**Syntax**\r\n\r\n`series_fir(`*x*`,` *filter* [`,` *normalize*[`,` *center*]]`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array cell which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\r\n* *filter*: A constant expression containing the coefficients of the filter (stored as a dynamic array of numeric values).\r\n* *normalize*: Optional Boolean value indicating whether the filter should be normalized (i.e. divided by the sum of the coefficients). If *filter* contains negative values then *normalize* must be specified as `false`, otherwise result will be `null`. If not specified then a default value of *normalize* will be assumed depending on presence of negative values in the *filter*: if *filter* contains at least one negative value then *normalize* is assumed to be `false`. \r\nNormalization is a convenient way to make sure that the sum of the coefficients is 1 and thus the filter doesn't amplifies or attenuates the series. For example, moving average of 4 bins could be specified by *filter*=[1,1,1,1] and *normalized*=true, which is easier than typing [0.25,0.25.0.25,0.25].\r\n* *center*: An optional Boolean value indicating whether the filter is applied symmetrically on a time window before and after the current point, or on a time window from the current point backwards. By default, center is false, which fits the scenario of streaming data, where we can only apply the filter on the current and older points; however, for ad-hoc processing you can set it to true, keeping it synchronized with the time series (see examples below). Technically speaking, this parameter controls the filter’s [group delay](https://en.wikipedia.org/wiki/Group_delay_and_phase_delay).","* Calculating a moving average of 5 points can be performed by setting *filter*=[1,1,1,1,1] and *normalize*=`true` (default). Note the effect of *center*=`false` (default) vs. `true`:\r\n\r\n\r\n```\r\nrange t from bin(now(), 1h)-23h to bin(now(), 1h) step 1h\r\n| summarize t=makelist(t)\r\n| project id='TS', val=dynamic([0,0,0,0,0,0,0,0,0,10,20,40,100,40,20,10,0,0,0,0,0,0,0,0]), t\r\n| extend 5h_MovingAvg=series_fir(val, dynamic([1,1,1,1,1])),\r\n 5h_MovingAvg_centered=series_fir(val, dynamic([1,1,1,1,1]), true, true)\r\n| render timechart\r\n```\r\n\r\nThis query returns: \r\n*5h_MovingAvg*: 5 points moving average filter. The spike is smoothed and its peak shifted by (5-1)/2 = 2h. \r\n*5h_MovingAvg_centered*: same but with setting center=true, causes the peak to stay in its original location.\r\n\r\n![](./Images/samples/series_fir.png)\r\n\r\n* Calculating the difference between a point and its preceding one can be performed by setting *filter*=[1,-1]:\r\n\r\n\r\n```\r\nrange t from bin(now(), 1h)-11h to bin(now(), 1h) step 1h\r\n| summarize t=makelist(t)\r\n| project id='TS',t,value=dynamic([0,0,0,0,2,2,2,2,3,3,3,3])\r\n| extend diff=series_fir(value, dynamic([1,-1]), false, false)\r\n| render timechart\r\n```\r\n\r\n![](./Images/samples/series_fir2.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_firfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_2lines","Applies two segments linear regression on a series, returning multiple columns.","Takes an expression containing dynamic numerical array as input and applies [two segments linear regression](https://en.wikipedia.org/wiki/Segmented_regression) in order to identify and quantify trend change in a series. The function iterates on the series indexes and in each iteration splits the series to 2 parts, fits a separate line (using [series_fit_line()](query_language_series_fit_linefunction.md)) to each part and calculate the total r-square. The best split is the one that maximized r-square; the function returns its parameters:\r\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It's a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line\r\n* `split_idx`: the index of breaking point to 2 segments (zero-based)\r\n* `variance`: variance of the input data\r\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones (by the 2 line segments).\r\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\r\n* `right_rsquare`: r-square of the line on the right side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md)\r\n* `right_slope`: slope of the right approximated line (this is a from y=ax+b)\r\n* `right_interception`: interception of the approximated left line (this is b from y=ax+b)\r\n* `right_variance`: variance of the input data on the right side of the split\r\n* `right_rvariance`: residual variance of the input data on the right side of the split\r\n* `left_rsquare`: r-square of the line on the left side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md)\r\n* `left_slope`: slope of the left approximated line (this is a from y=ax+b)\r\n* `left_interception`: interception of the approximated left line (this is b from y=ax+b)\r\n* `left_variance`: variance of the input data on the left side of the split\r\n* `left_rvariance`: residual variance of the input data on the left side of the split\r\n\r\n*Note* that this function returns multiple columns therefore it cannot be used as an argument for another function.\r\n\r\n**Syntax**\r\n\r\nproject `series_fit_2lines(`*x*`)`\r\n* Will return all mentioned above columns with the following names: series_fit_2lines_x_rsquare, series_fit_2lines_x_split_idx and etc.\r\nproject (rs, si, v)=`series_fit_2lines(`*x*`)`\r\n* Will return the following columns: rs (r-square), si (split index), v (variance) and the rest will look like series_fit_2lines_x_rvariance, series_fit_2lines_x_line_fit and etc.\r\nextend (rs, si, v)=`series_fit_2lines(`*x*`)`\r\n* Will return only: rs (r-square), si (split index) and v (variance).\r\n \r\n**Arguments**\r\n\r\n* *x*: Dynamic array of numeric values. \r\n\r\n**Important note**\r\n\r\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\r\nrange x from 1 to 1 step 1\r\n| project id=' ', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([1,2.2, 2.5, 4.7, 5.0, 12, 10.3, 10.3, 9, 8.3, 6.2])\r\n| extend (Slope,Interception,RSquare,Variance,RVariance,LineFit)=series_fit_line(y), (RSquare2, SplitIdx, Variance2,RVariance2,LineFit2)=series_fit_2lines(y)\r\n| project id, x, y, LineFit, LineFit2\r\n| render timechart\r\n```\r\n\r\n![](./Images/samples/series_fit_2lines.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_2linesfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_2lines_dynamic","Applies two segments linear regression on a series, returning dynamic object.","Takes an expression containing dynamic numerical array as input and applies [two segments linear regression](https://en.wikipedia.org/wiki/Segmented_regression) in order to identify and quantify trend change in a series. The function iterates on the series indexes and in each iteration splits the series to 2 parts, fits a separate line (using [series_fit_line()](query_language_series_fit_linefunction.md) or [series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)) to each part and calculate the total r-square. The best split is the one that maximized r-square; the function returns its parameters in dynamic value with the following content::\r\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It's a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line\r\n* `split_idx`: the index of breaking point to 2 segments (zero-based)\r\n* `variance`: variance of the input data\r\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones (by the 2 line segments).\r\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\r\n* `right.rsquare`: r-square of the line on the right side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md) or[series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)\r\n* `right.slope`: slope of the right approximated line (this is a from y=ax+b)\r\n* `right.interception`: interception of the approximated left line (this is b from y=ax+b)\r\n* `right.variance`: variance of the input data on the right side of the split\r\n* `right.rvariance`: residual variance of the input data on the right side of the split\r\n* `left.rsquare`: r-square of the line on the left side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md) or [series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)\r\n* `left.slope`: slope of the left approximated line (this is a from y=ax+b)\r\n* `left.interception`: interception of the approximated left line (this is b from y=ax+b)\r\n* `left.variance`: variance of the input data on the left side of the split\r\n* `left.rvariance`: residual variance of the input data on the left side of the split\r\n\r\nThis operator is similar to [series_fit_2lines](query_language_series_fit_2linesfunction.md), but unlike `series_fit_2lines` it returns a dynamic bag.\r\n\r\n**Syntax**\r\n\r\n`series_fit_2lines_dynamic(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array of numeric values. \r\n\r\n**Important note**\r\n\r\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\r\nrange x from 1 to 1 step 1\r\n| project id=' ', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([1,2.2, 2.5, 4.7, 5.0, 12, 10.3, 10.3, 9, 8.3, 6.2])\r\n| extend LineFit=series_fit_line_dynamic(y).line_fit, LineFit2=series_fit_2lines_dynamic(y).line_fit\r\n| project id, x, y, LineFit, LineFit2\r\n| render timechart\r\n```\r\n\r\n![](./Images/samples/series_fit_2lines.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_2lines_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_line","Applies linear regression on a series, returning multiple columns.","Takes an expression containing dynamic numerical array as input and performs [linear regression](https://en.wikipedia.org/wiki/Line_fitting) in order to find the line that best fits it. This function should be used on time series arrays, fitting the output of make-series operator. It generates the following columns:\r\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It's a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line \r\n* `slope`: slope of the approximated line (this is a from y=ax+b)\r\n* `variance`: variance of the input data\r\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones.\r\n* `interception`: interception of the approximated line (this is b from y=ax+b)\r\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\r\n\r\n**Syntax**\r\n\r\n`series_fit_line(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array of numeric values.\r\n\r\n**Important note**\r\n\r\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\r\nrange x from 1 to 1 step 1\r\n| project id=' ', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([2,5,6,8,11,15,17,18,25,26,30,30])\r\n| extend (RSquare,Slope,Variance,RVariance,Interception,LineFit)=series_fit_line(y)\r\n| render timechart\r\n```\r\n\r\n![](./Images/samples/series_fit_line.png)\r\n\r\n| RSquare | Slope | Variance | RVariance | Interception | LineFit |\r\n|---------|-------|----------|-----------|--------------|---------------------------------------------------------------------------------------------|\r\n| 0.982 | 2.730 | 98.628 | 1.686 | -1.666 | 1.064, 3.7945, 6.526, 9.256, 11.987, 14.718, 17.449, 20.180, 22.910, 25.641, 28.371, 31.102 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_linefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_line_dynamic","Applies linear regression on a series, returning dynamic object.","Takes an expression containing dynamic numerical array as input and performs [linear regression](https://en.wikipedia.org/wiki/Line_fitting) in order to find the line that best fits it. This function should be used on time series arrays, fitting the output of make-series operator. It generates a dynamic value with the following content:\r\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It's a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line \r\n* `slope`: slope of the approximated line (this is a from y=ax+b)\r\n* `variance`: variance of the input data\r\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones.\r\n* `interception`: interception of the approximated line (this is b from y=ax+b)\r\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\r\n\r\nThis operator is similar to [series_fit_line](query_language_series_fit_linefunction.md), but unlike `series_fit_line` it returns a dynamic bag.\r\n\r\n**Syntax**\r\n\r\n`series_fit_line_dynamic(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array of numeric values.\r\n\r\n**Important note**\r\n\r\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\r\nrange x from 1 to 1 step 1\r\n| project id=' ', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([2,5,6,8,11,15,17,18,25,26,30,30])\r\n| extend fit=series_fit_line_dynamic(y)\r\n| extend RSquare=fit.rsquare, Slope=fit.slope, Variance=fit.variance,RVariance=fit.rvariance,Interception=fit.interception,LineFit=fit.line_fit\r\n| render timechart\r\n```\r\n\r\n![](./Images/samples/series_fit_line.png)\r\n\r\n| RSquare | Slope | Variance | RVariance | Interception | LineFit |\r\n|---------|-------|----------|-----------|--------------|---------------------------------------------------------------------------------------------|\r\n| 0.982 | 2.730 | 98.628 | 1.686 | -1.666 | 1.064, 3.7945, 6.526, 9.256, 11.987, 14.718, 17.449, 20.180, 22.910, 25.641, 28.371, 31.102 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_line_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_iir","Applies a Infinite Impulse Response filter on a series.",'Takes an expression containing dynamic numerical array as input and applies an [Infinite Impulse Response](https://en.wikipedia.org/wiki/Infinite_impulse_response) filter. By specifying the filter coefficients, it can be used, for example, to calculate the cumulative sum of the series, to apply smoothing operations, as well as various [high-pass](https://en.wikipedia.org/wiki/High-pass_filter), [band-pass](https://en.wikipedia.org/wiki/Band-pass_filter) and [low-pass](https://en.wikipedia.org/wiki/Low-pass_filter) filters. The function takes as input the column containing the dynamic array and two static dynamic arrays of the filter\'s *a* and *b* coefficients, and applies the filter on the column. It outputs a new dynamic array column, containing the filtered output. \r\n \r\n\r\n**Syntax**\r\n\r\n`series_iir(`*x*`,` *b* `,` *a*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array cell which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\r\n* *b*: A constant expression containing the numerator coefficients of the filter (stored as a dynamic array of numeric values).\r\n* *a*: A constant expression, like *b*. Containing the denominator coefficients of the filter.\r\n\r\n**Important note**\r\n\r\n* The first element of *a* (i.e. `a[0]`) mustn’t be zero (to avoid division by 0; see the formula below).\r\n\r\n**More about the filter’s recursive formula**\r\n\r\n* Given an input array X and coefficients arrays a, b of lengths n_a and n_b respectively, the transfer function of the filter, generating the output array Y, is defined by (see also in Wikipedia):\r\n\r\n
\r\nYi = a0-1(b0Xi\r\n + b1Xi-1 + ... + bnb-1Xi-nb-1\r\n - a1Yi-1-a2Yi-2 - ... - ana-1Yi-na-1)\r\n
',"Calculating cumulative sum can be performed by iir filter with coefficients *a*=[1,-1] and *b*=[1]: \r\n\r\n```\r\nlet x = range(1.0, 10, 1);\r\nrange t from 1 to 1 step 1\r\n| project x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))\r\n| mvexpand x, y\r\n```\r\n\r\n| x | y |\r\n|:--|:--|\r\n|1.0|1.0|\r\n|2.0|3.0|\r\n|3.0|6.0|\r\n|4.0|10.0|\r\n\r\nHere's how to wrap it in a function:\r\n\r\n\r\n```\r\nlet vector_sum=(x:dynamic)\r\n{\r\n let y=arraylength(x) - 1;\r\n toreal(series_iir(x, dynamic([1]), dynamic([1, -1]))[y])\r\n};\r\nprint d=dynamic([0, 1, 2, 3, 4])\r\n| extend dd=vector_sum(d)\r\n```\r\n\r\n|d |dd |\r\n|-------------|----|\r\n|`[0,1,2,3,4]`|`10`|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_iirfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_outliers","Scores anomaly points in a series.",'Takes an expression containing dynamic numerical array as input and generates a dynamic numeric array of the same length. Each value of the array indicates a score of possible anomaly using [Tukey\'s test](https://en.wikipedia.org/wiki/Outlier#Tukey.27s_test). A value greater than 1.5 or less than -1.5 indicates a rise or decline anomaly respectively in the same element of the input. \r\n\r\n**Syntax**\r\n\r\n`series_outliers(`*x*`, `*kind*`, `*ignore_val*`, `*min_percentile*`, `*max_percentile*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array cell which is an array of numeric values\r\n* *kind*: Algorithm of outlier detection. Currently supports `"tukey"` (traditional Tukey) and `"ctukey"` (custom Tukey). Default is `"ctukey"`\r\n* *ignore_val*: numeric value indicating missing values in the series, default is double(null)\r\n* *min_percentile*: for calulation of the normal inter quantile range, default is 10 (ctukey only) \r\n* *max_percentile*: same, default is 90 (ctukey only) \r\n\r\nThe following table describes differences between `"tukey"` and `"ctukey"`:\r\n\r\n| Algorithm | Default quantile range | Supports custom quantile range |\r\n|-----------|----------------------- |--------------------------------|\r\n| `"tukey"` | 25% / 75% | No |\r\n| `"ctukey"`| 10% / 90% | Yes |\r\n\r\n\r\n**Important note**\r\n\r\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.',"* For the following input `[30,28,5,27,31,38,29,80,25,37,30]` the series_outliers() returns `[0.0,0.0,-3.206896551724138,-0.1724137931034483,0.0,2.6666666666666667,0.0,16.666666666666669,-0.4482758620689655,2.3333333333333337,0.0]`, meaning the `5` is an anomaly on decline and `80` is an anomaly on rise compared to the rest of the series.\r\n\r\n* Suppose you have a time series with some noise that creates outliers and you would like to replace those outliers (noise) with the average value, you could use series_outliers() to detect the outliers then replace them:\r\n\r\n```\r\nrange x from 1 to 100 step 1 \r\n| extend y=iff(x==20 or x==80, 10*rand()+10+(50-x)/2, 10*rand()+10) // generate a sample series with outliers at x=20 and x=80\r\n| summarize x=makelist(x),series=makelist(y)\r\n| extend series_stats(series), outliers=series_outliers(series)\r\n| mvexpand x to typeof(long), series to typeof(double), outliers to typeof(double)\r\n| project x, series , outliers_removed=iff(outliers > 1.5 or outliers < -1.5, series_stats_series_avg , series ) // replace outliers with the average\r\n| render linechart\r\n``` \r\n\r\n![](./Images/samples/series_outliers.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_outliersfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_periods_detect","Finds the most significant periods that exist in a time series.","Very often a metric measuring an application’s traffic is characterized by two significant periods: a weekly and a daily. Given such a time series, `series_periods_detect()` shall detect these 2 dominant periods. \r\nThe function takes as input a column containing a dynamic array of time series (typically the resulting output of [make-series](query_language_make_seriesoperator.md) operator), two `real` numbers defining the minimal and maximal period size (i.e. number of bins, e.g. for 1h bin the size of a daily period would be 24) to search for, and a `long` number defining the total number of periods for the function to search. The function outputs 2 columns:\r\n* *periods*: a dynamic array containing the periods that have been found (in units of the bin size), ordered by their scores\r\n* *scores*: a dynamic array containing values between 0 and 1, each measures the significance of a period in its respective position in the *periods* array\r\n \r\n\r\n**Syntax**\r\n\r\n`series_periods_detect(`*x*`,` *min_period*`,` *max_period*`,` *num_periods*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array scalar expression which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\r\n* *min_period*: A `real` number specifying the minimal period to search for.\r\n* *max_period*: A `real` number specifying the maximal period to search for.\r\n* *num_periods*: A `long` number specifying the maximum required number of periods. This will be the length of the output dynamic arrays.\r\n\r\n**Important notes**\r\n\r\n* The algorithm can detect periods containing at least 4 points and at most half of the series length. \r\n* You should set the *min_period* a little below and *max_period* a little above the periods you expect to find in the time series. For example, if you have an hourly-aggregated signal, and you look for both daily and weekly periods (that would be 24 & 168 respectively) you can set *min_period*=0.8\\*24, *max_period*=1.2\\*168, leaving 20% margins around these periods.\r\n* The input time series must be regular, i.e. aggregated in constant bins (which is always the case if it has been created using [make-series](query_language_make_seriesoperator.md)). Otherwise, the output is meaningless.","The following query embeds a snapshot of a month of an application’s traffic, aggregated twice a day (i.e. the bin size is 12 hours).\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\r\n| project x=range(1, arraylength(y), 1), y \r\n| render linechart \r\n```\r\n\r\n![](./Images/samples/series_periods.png)\r\n\r\nRunning `series_periods_detect()` on this series results in the weekly period (14 points long):\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\r\n| project x=range(1, arraylength(y), 1), y \r\n| project series_periods_detect(y, 0.0, 50.0, 2)\r\n```\r\n\r\n| series\\_periods\\_detect\\_y\\_periods | series\\_periods\\_detect\\_y\\_periods\\_scores |\r\n|-------------|-------------------|\r\n| [14.0, 0.0] | [0.84, 0.0] |\r\n\r\n\r\nNote that the daily period that can be also seen in the chart was not found since the sampling is too coarse (12h bin size) so a daily period of 2 bins is bellow the minimum period size of 4 points required by the algorithm.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_periods_detectfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_periods_validate","Checks whether a time series contains periodic patterns of given lengths.","Very often a metric measuring the traffic of an application is characterized by a weekly and/or daily periods. This can be confirmed by running `series_periods_validate()` checking for a weekly and daily periods.\r\n\r\nThe function takes as input a column containing a dynamic array of time series (typically the resulting output of [make-series](query_language_make_seriesoperator.md) operator), and one or more `real` numbers that define the lengths of the periods to validate. \r\n\r\nThe function outputs 2 columns:\r\n* *periods*: a dynamic array containing the periods to validate (supplied in the input)\r\n* *scores*: a dynamic array containing a score between 0 and 1 that measures the significance of a period in its respective position in the *periods* array\r\n\r\n**Syntax**\r\n\r\n`series_periods_validate(`*x*`,` *period1* [ `,` *period2* `,` . . . ] `)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array scalar expression which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\r\n* *period1*, *period2*, etc.: `real` numbers specifying the periods to validate, in units of the bin size. For example, if the series is in 1h bins, a weekly period is 168 bins.\r\n\r\n**Important notes**\r\n\r\n* The minimal value for each of the *period* arguments is **4** and the maximal is half of the length of the input series; for a *period* argument outside these bounds, the output score will be **0**.\r\n* The input time series must be regular, i.e. aggregated in constant bins (which is always the case if it has been created using [make-series](query_language_make_seriesoperator.md)). Otherwise, the output is meaningless.\r\n* The function accepts up to 16 periods to validate.","The following query embeds a snapshot of a month of an application’s traffic, aggregated twice a day (i.e. the bin size is 12 hours).\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\r\n| project x=range(1, arraylength(y), 1), y \r\n| render linechart \r\n```\r\n\r\n![](./Images/samples/series_periods.png)\r\n\r\nRunning `series_periods_validate()` on this series to validate a weekly period (14 points long) results in a high score, and with a **0** score when validating a five days period (10 points long).\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\r\n| project x=range(1, arraylength(y), 1), y \r\n| project series_periods_validate(y, 14.0, 10.0)\r\n```\r\n\r\n| series\\_periods\\_validate\\_y\\_periods | series\\_periods\\_validate\\_y\\_scores |\r\n|-------------|-------------------|\r\n| [14.0, 10.0] | [0.84,0.0] |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_periods_validatefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_stats","Returns statistics for a series in multiple columns.","The `series_stats()` function takes a column containing dynamic numerical array as input and calculates the following columns:\r\n* `min`: minimum value in the input array\r\n* `min_idx`: minimum value in the input array\r\n* `max`: maximum value in the input array\r\n* `max_idx`: maximum value in the input array\r\n* `average`: average value of the input array\r\n* `variance`: sample variance of input array\r\n* `stdev`: sample standard deviation of the input array\r\n\r\n*Note* that this function returns multiple columns therefore it cannot be used as an argument for another function.\r\n\r\n**Syntax**\r\n\r\nproject `series_stats(`*x*`)` or extend `series_stats(`*x*`)` \r\n* Will return all mentioned above columns with the following names: series_stats_x_min, series_stats_x_min_idx and etc.\r\n \r\nproject (m, mi)=`series_stats(`*x*`)` or extend (m, mi)=`series_stats(`*x*`)`\r\n* Will return the following columns: m (min) and mi (min_idx).\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array cell which is an array of numeric values.","```\r\nprint x=dynamic([23,46,23,87,4,8,3,75,2,56,13,75,32,16,29]) \r\n| project series_stats(x)\r\n\r\n```\r\n\r\n|series_stats_x_min|series_stats_x_min_idx|series_stats_x_max|series_stats_x_max_idx|series_stats_x_avg|series_stats_x_stdev|series_stats_x_variance|\r\n|---|---|---|---|---|---|---|\r\n|2|8|87|3|32.8|28.5036338535483|812.457142857143|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_statsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_stats_dynamic","Returns statistics for a series in dynamic object.","The `series_stats_dynamic()` function takes a column containing dynamic numerical array as input and generates a dynamic value with the following content:\r\n* `min`: minimum value in the input array\r\n* `min_idx`: minimum value in the input array\r\n* `max`: maximum value in the input array\r\n* `max_idx`: maximum value in the input array\r\n* `average`: average value of the input array\r\n* `variance`: sample variance of input array\r\n* `stdev`: sample standard deviation of the input array\r\n\r\n**Syntax**\r\n\r\n`series_stats_dynamic(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: Dynamic array cell which is an array of numeric values.",'```\r\nprint x=dynamic([23,46,23,87,4,8,3,75,2,56,13,75,32,16,29]) \r\n| project stats=series_stats_dynamic(x)\r\n\r\n```\r\n\r\n|stats|\r\n|---|\r\n{ \r\n "min": 2.0, \r\n "min_idx": 8, \r\n "max": 87.0, \r\n "max_idx": 3, \r\n "avg": 32.8, \r\n "stdev": 28.503633853548269, \r\n "variance": 812.45714285714291 \r\n}',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_stats_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sign","Sign of a numeric expression","**Syntax**\r\n\r\n`sign(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The positive (+1), zero (0), or negative (-1) sign of the specified expression.","```\r\nprint s1 = sign(-42), s2 = sign(0), s3 = sign(11.2)\r\n\r\n```\r\n\r\n|s1|s2|s3|\r\n|---|---|---|\r\n|-1|0|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_signfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sin","Returns the sine function.","**Syntax**\r\n\r\n`sin(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The result of `sin(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sinfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sort","Sort the rows of the input table into order by one or more columns.","T | sort by strlen(country) asc, price desc\r\n\r\n**Alias**\r\n\r\n`order`\r\n\r\n**Syntax**\r\n\r\n*T* `| sort by` *expression* [`asc` | `desc`] [`nulls first` | `nulls last`] [`,` ...]\r\n\r\n**Arguments**\r\n\r\n* *T*: The table input to sort.\r\n* *expression*: A scalar expression by which to sort. The type of the values must be numeric, date, time or string.\r\n* `asc` Sort by into ascending order, low to high. The default is `desc`, descending high to low.\r\n* `nulls first` (the default for `asc` order) will place the null values at the beginning and `nulls last` (the default for `desc` order) will place the null values at the end.",'```\r\nTraces\r\n| where ActivityId == "479671d99b7b"\r\n| sort by Timestamp asc nulls first\r\n```\r\n\r\nAll rows in table Traces that have a specific `ActivityId`, sorted by their timestamp. If `Timestamp` column contains null values, those will appear at the first lines of the result.\r\n\r\nIn order to exclude null values from the result add a filter before the call to sort:\r\n\r\n\r\n```\r\nTraces\r\n| where ActivityId == "479671d99b7b" and isnotnull(Timestamp)\r\n| sort by Timestamp asc\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sortoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"split","Splits a given string according to a given delimiter and returns a string array with the conatined substrings.",'Optionally, a specific substring can be returned if exists.\r\n\r\n split("aaa_bbb_ccc", "_") == ["aaa","bbb","ccc"]\r\n\r\n**Syntax**\r\n\r\n`split(`*source*`,` *delimiter* [`,` *requestedIndex*]`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The source string that will be splitted according to the given delimiter.\r\n* *delimiter*: The delimiter that will be used in order to split the source string.\r\n* *requestedIndex*: An optional zero-based index `int`. If provided, the returned string array will contain the requested substring if exists. \r\n\r\n**Returns**\r\n\r\nA string array that contains the substrings of the given source string that are delimited by the given delimiter.','```\r\nsplit("aa_bb", "_") // ["aa","bb"]\r\nsplit("aaa_bbb_ccc", "_", 1) // ["bbb"]\r\nsplit("", "_") // [""]\r\nsplit("a__b") // ["a","","b"]\r\nsplit("aabbcc", "bb") // ["aa","cc"]\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_splitfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sqrt","Returns the square root function.","**Syntax**\r\n\r\n`sqrt(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number >= 0.\r\n\r\n**Returns**\r\n\r\n* A positive number such that `sqrt(x) * sqrt(x) == x`\r\n* `null` if the argument is negative or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sqrtfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofday","Returns the start of the day containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`startofday(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset days from the input date (integer, default - 0). \r\n\r\n**Returns**\r\n\r\nA datetime representing the start of the day for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project dayStart = startofday(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|dayStart|\r\n|---|\r\n|2016-12-31 00:00:00.0000000|\r\n|2017-01-01 00:00:00.0000000|\r\n|2017-01-02 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofmonth","Returns the start of the month containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`startofmonth(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset months from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the start of the month for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project monthStart = startofmonth(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|monthStart|\r\n|---|\r\n|2016-12-01 00:00:00.0000000|\r\n|2017-01-01 00:00:00.0000000|\r\n|2017-02-01 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofweek","Returns the start of the week containing the date, shifted by an offset, if provided.","Start of the week is considered to be a Sunday.\r\n\r\n**Syntax**\r\n\r\n`startofweek(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset weeks from the input date (integer, default - 0).\r\n\r\n**Returns**\r\n\r\nA datetime representing the start of the week for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project weekStart = startofweek(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|weekStart|\r\n|---|\r\n|2016-12-25 00:00:00.0000000|\r\n|2017-01-01 00:00:00.0000000|\r\n|2017-01-08 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofyear","Returns the start of the year containing the date, shifted by an offset, if provided.","**Syntax**\r\n\r\n`startofyear(`*date* [`,`*offset*]`)`\r\n\r\n**Arguments**\r\n\r\n* `date`: The input date.\r\n* `offset`: An optional number of offset years from the input date (integer, default - 0). \r\n\r\n**Returns**\r\n\r\nA datetime representing the start of the year for the given *date* value, with the offset, if specified.","```\r\n range offset from -1 to 1 step 1\r\n | project yearStart = startofyear(datetime(2017-01-01 10:10:17), offset) \r\n```\r\n\r\n|yearStart|\r\n|---|\r\n|2016-01-01 00:00:00.0000000|\r\n|2017-01-01 00:00:00.0000000|\r\n|2018-01-01 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdev","Calculates the standard deviation of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).","* Used formula:\r\n![](./images/aggregations/stdev_sample.png)\r\n\r\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `stdev(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe standard deviation value of *Expr* across the group.","```\r\nrange x from 1 to 5 step 1\r\n| summarize makelist(x), stdev(x)\r\n\r\n```\r\n\r\n|list_x|stdev_x|\r\n|---|---|\r\n|[ 1, 2, 3, 4, 5]|1.58113883008419|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdev_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdevif","Calculates the [stdev](query_language_stdev_aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `stdevif(`*Expr*`, `*Predicate*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the standard deviation.\r\n\r\n**Returns**\r\n\r\nThe standard deviation value of *Expr* across the group where *Predicate* evaluates to `true`.","```\r\nrange x from 1 to 100 step 1\r\n| summarize stdevif(x, x%2 == 0)\r\n\r\n```\r\n\r\n|stdevif_x|\r\n|---|\r\n|29.1547594742265|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdevif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdevp","Calculates the standard deviation of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).","* Used formula:\r\n![](./images/aggregations/stdev_population.png)\r\n\r\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `stdevp(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe standard deviation value of *Expr* across the group.","```\r\nrange x from 1 to 5 step 1\r\n| summarize makelist(x), stdevp(x)\r\n\r\n```\r\n\r\n|list_x|stdevp_x|\r\n|---|---|\r\n|[ 1, 2, 3, 4, 5]|1.4142135623731|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdevp_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat","Concatenates between 1 and 64 arguments.","* In case if arguments are not of string type, they will be forcibly converted to string.\r\n\r\n**Syntax**\r\n\r\n`strcat(`*argument1*,*argument2* [, *argumentN*]`)`\r\n\r\n**Arguments**\r\n\r\n* *argument1* ... *argumentN* : expressions to be concatenated.\r\n\r\n**Returns**\r\n\r\nArguments, concatenated to a single string.",'```\r\nprint str = strcat("hello", " ", "world")\r\n```\r\n\r\n|str|\r\n|---|\r\n|hello world|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat_array","Creates a concatenated string of array values using specified delimeter.","**Syntax**\r\n\r\n`strcat_array(`*array*, *delimiter*`)`\r\n\r\n**Arguments**\r\n\r\n* *array*: A `dynamic` value representing an array of values to be concatenated.\r\n* *delimeter*: A `string` value that will be used to concatenate the values in *array*\r\n\r\n**Returns**\r\n\r\nArray values, concatenated to a single string.",'```\r\nprint str = strcat_array(dynamic([1, 2, 3]), "->")\r\n```\r\n\r\n|str|\r\n|---|\r\n|1->2->3|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcat_arrayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat_delim","Concatenates between 2 and 64 arguments, with delimiter, provided as first argument.","* In case if arguments are not of string type, they will be forcibly converted to string.\r\n\r\n**Syntax**\r\n\r\n`strcat_delim(`*delimiter*,*argument1*,*argument2* [, *argumentN*]`)`\r\n\r\n**Arguments**\r\n\r\n* *delimiter*: string expression, which will be used as seperator.\r\n* *argument1* ... *argumentN* : expressions to be concatenated.\r\n\r\n**Returns**\r\n\r\nArguments, concatenated to a single string with *delimiter*.","```\r\nprint st = strcat_delim('-', 1, '2', 'A', 1s)\r\n\r\n```\r\n\r\n|st|\r\n|---|\r\n|1-2-A-00:00:01|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcat_delimfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcmp","Compares two strings.","The function starts comparing the first character of each string. If they are equal to each other, it continues with the following pairs until the characters differ or until the end of shorter string is reached.\r\n\r\n**Syntax**\r\n\r\n`strcmp(`*string1*`,` *string2*`)` \r\n\r\n**Arguments**\r\n\r\n* *string1*: first input string for comparison. \r\n* *string2*: second input string for comparison.\r\n\r\n**Returns**\r\n\r\nReturns an integral value indicating the relationship between the strings:\r\n* *<0* - the first character that does not match has a lower value in string1 than in string2\r\n* *0* - the contents of both strings are equal\r\n* *>0* - the first character that does not match has a greater value in string1 than in string2",'```\r\ndatatable(string1:string, string2:string)\r\n["ABC","ABC",\r\n"abc","ABC",\r\n"ABC","abc",\r\n"abcde","abc"]\r\n| extend result = strcmp(string1,string2)\r\n```\r\n\r\n|string1|string2|result|\r\n|---|---|---|\r\n|ABC|ABC|0|\r\n|abc|ABC|1|\r\n|ABC|abc|-1|\r\n|abcde|abc|1|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcmpfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strlen","Returns the length, in characters, of the input string.",'strlen("hello") == 5\r\n\r\n**Syntax**\r\n\r\n`strlen(`*source*`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The source string that will be measured for string length.\r\n\r\n**Returns**\r\n\r\nReturns the length, in characters, of the input string.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strlenfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strrep","Repeates given [string](./scalar-data-types/string.md) provided amount of times.","* In case if first or third argument is not of a string type, it will be forcibly converted to string.\r\n\r\n**Syntax**\r\n\r\n`strrep(`*value*,*multiplier*,[*delimiter*]`)`\r\n\r\n**Arguments**\r\n\r\n* *value*: input expression\r\n* *multiplier*: positive integer value (from 1 to 1024)\r\n* *delimiter*: an optional string expression (default: empty string)\r\n\r\n**Returns**\r\n\r\nValue repeated for a specified number of times, concatenated with *delimiter*.\r\n\r\nIn case if *multiplier* is more than maximal allowed value (1024), input string will be repeated 1024 times.","```\r\nprint from_str = strrep('ABC', 2), from_int = strrep(123,3,'.'), from_time = strrep(3s,2,' ')\r\n```\r\n\r\n|from_str|from_int|from_time|\r\n|---|---|---|\r\n|ABCABC|123.123.123|00:00:03 00:00:03|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strrepfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"substring","Extracts a substring from a source string starting from some index to the end of the string.",'Optionally, the length of the requested substring can be specified.\r\n\r\n substring("abcdefg", 1, 2) == "bc"\r\n\r\n**Syntax**\r\n\r\n`substring(`*source*`,` *startingIndex* [`,` *length*]`)`\r\n\r\n**Arguments**\r\n\r\n* *source*: The source string that the substring will be taken from.\r\n* *startingIndex*: The zero-based starting character position of the requested substring.\r\n* *length*: An optional parameter that can be used to specify the requested number of characters in the substring. \r\n\r\n**Returns**\r\n\r\nA substring from the given string. The substring starts at startingIndex (zero-based) character position and continues to the end of the string or length characters if specified.','```\r\nsubstring("123456", 1) // 23456\r\nsubstring("123456", 2, 2) // 34\r\nsubstring("ABCD", 0, 2) // AB\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_substringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sum","Calculates the sum of *Expr* across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `sum(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe sum value of *Expr* across the group.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sum_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sumif","Returns a sum of *Expr* for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\nSee also - [sum()](query_language_sum_aggfunction.md) function, which sums rows without predicate expression.\r\n\r\n**Syntax**\r\n\r\nsummarize `sumif(`*Expr*`,`*Predicate*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the sum. \r\n\r\n**Returns**\r\n\r\nThe sum value of *Expr* for which *Predicate* evaluates to `true`.\r\n\r\n**Tip**\r\n\r\nUse `summarize sumif(expr, filter)` instead of `where filter | summarize sum(expr)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sumif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"summarize","Produces a table that aggregates the content of the input table.","T | summarize count(), avg(price) by fruit, supplier\r\n\r\nA table that shows the number and average price of each fruit from each supplier. There's a row in the output for each distinct combination of fruit and supplier. The output columns show the count, average price, fruit and supplier. All other input columns are ignored.\r\n\r\n\r\n T | summarize count() by price_range=bin(price, 10.0)\r\n\r\nA table that shows how many items have prices in each interval [0,10.0], [10.0,20.0], and so on. This example has a column for the count and one for the price range. All other input columns are ignored.\r\n\r\n\r\n**Syntax**\r\n\r\n*T* `| summarize`\r\n [[*Column* `=`] *Aggregation* [`,` ...]]\r\n [`by`\r\n [*Column* `=`] *GroupExpression* [`,` ...]]\r\n\r\n**Arguments**\r\n\r\n* *Column:* Optional name for a result column. Defaults to a name derived from the expression.\r\n* *Aggregation:* A call to an [aggregation function](query_language_summarizeoperator.md#list-of-aggregation-functions) such as `count()` or `avg()`, with column names as arguments. See the [list of aggregation functions](query_language_summarizeoperator.md#list-of-aggregation-functions).\r\n* *GroupExpression:* An expression over the columns, that provides a set of distinct values. Typically it's either a column name that already provides a restricted set of values, or `bin()` with a numeric or time column as argument. \r\n\r\n If you don't provide a *GroupExpression,* the whole table is summarized in a single output row.\r\n\r\n**Returns**\r\n\r\nThe input rows are arranged into groups having the same values of the `by` expressions. Then the specified aggregation functions are computed over each group, producing a row for each group. The result contains the `by` columns and also at least one column for each computed aggregate. (Some aggregation functions return multiple columns.)\r\n\r\nThe result has as many rows as there are distinct combinations of `by` values. If you want to summarize over ranges of numeric values, use `bin()` to reduce ranges to discrete values.\r\n\r\n**Note**\r\n\r\nAlthough you can provide arbitrary expressions for both the aggregation and grouping expressions, it's more efficient to use simple column names, or apply `bin()` to a numeric column.\r\n\r\n## List of aggregation functions\r\n\r\n|Function|Description|\r\n|--------|-----------|\r\n|[any()](query_language_any_aggfunction.md)|Returns random non-empty value for the group|\r\n|[argmax()](query_language_argmax_aggfunction.md)|Returns one or more expressions when argument is maximized|\r\n|[argmin()](query_language_argmin_aggfunction.md)|Returns one or more expressions when argument is minimized|\r\n|[avg()](query_language_avg_aggfunction.md)|Retuns average value across the group|\r\n|[buildschema()](query_language_buildschema_aggfunction.md)|Returns the minimal schema that admits all values of the `dynamic` input|\r\n|[count()](query_language_count_aggfunction.md)|Returns count of the group|\r\n|[countif()](query_language_countif_aggfunction.md)|Returns count with the predicate of the group|\r\n|[dcount()](query_language_dcount_aggfunction.md)|Returns approximate distinct count of the group elements|\r\n|[makelist()](query_language_makelist_aggfunction.md)|Returns a list of all the values within the group|\r\n|[makeset()](query_language_makeset_aggfunction.md)|Returns a set of distinct values within the group|\r\n|[max()](query_language_max_aggfunction.md)|Returns the maximum value across the group|\r\n|[min()](query_language_min_aggfunction.md)|Returns the minimum value across the group|\r\n|[percentiles()](query_language_percentiles_aggfunction.md)|Returns the percentile approximate of the group|\r\n|[stdev()](query_language_stdev_aggfunction.md)|Returns the standard deviateion across the group|\r\n|[sum()](query_language_sum_aggfunction.md)|Returns the sum of the elements withing the group|\r\n|[variance()](query_language_variance_aggfunction.md)|Returns the variance across the group|\r\n\r\n## Aggregates default values\r\n\r\nThe following table summarizes the default values of aggregations\r\n\r\nOperator |Default value \r\n---------------|------------------------------------\r\n `count()`, `countif()`, `dcount()`, `dcountif()` | 0 \r\n `makeset()`, `makelist()` | empty dynamic array ([]) \r\n `any()`, `argmax()`. `argmin()`, `avg()`, `buildschema()`, `hll()`, `max()`, `min()`, `percentiles()`, `stdev()`, `sum()`, `sumif()`, `tdigest()`, `variance()` | null \r\n\r\n In addition, when using these aggregates over entities which includes null values, the null values will be ignored and won't participate in the calculation (See examples below).","![](./Images/aggregations/01.png)\r\n\r\n**Example**\r\n\r\nDetermine what unique combinations of\r\n`ActivityType` and `CompletionStatus` there are in a table. Note that\r\nthere are no aggregation functions, just group-by keys. The output will just show the columns for those results:\r\n\r\n```\r\nActivities | summarize by ActivityType, completionStatus\r\n```\r\n\r\n|`ActivityType`|`completionStatus`\r\n|---|---\r\n|`dancing`|`started`\r\n|`singing`|`started`\r\n|`dancing`|`abandoned`\r\n|`singing`|`completed`\r\n\r\n**Example**\r\n\r\nFinds the minimum and maximum timestamp of all records in the Activities table. There is no group-by clause, so there is just one row in the output:\r\n\r\n```\r\nActivities | summarize Min = min(Timestamp), Max = max(Timestamp)\r\n```\r\n\r\n|`Min`|`Max`\r\n|---|---\r\n|`1975-06-09 09:21:45` | `2015-12-24 23:45:00`\r\n\r\n**Example**\r\n\r\nCreate a row for each continent, showing a count of the cities in which activities occur. Because there are few values for \"continent\", no grouping function is needed in the 'by' clause:\r\n\r\n Activities | summarize cities=dcount(city) by continent\r\n\r\n|`cities`|`continent`\r\n|---:|---\r\n|`4290`|`Asia`|\r\n|`3267`|`Europe`|\r\n|`2673`|`North America`|\r\n\r\n\r\n**Example**\r\n\r\nThe following example calculates a histogram for each activity\r\ntype. Because `Duration` has many values, we use `bin` to group its values into 10-minute intervals:\r\n\r\n```\r\nActivities | summarize count() by ActivityType, length=bin(Duration, 10m)\r\n```\r\n\r\n|`count_`|`ActivityType`|`length`\r\n|---:|---|---\r\n|`354`| `dancing` | `0:00:00.000`\r\n|`23`|`singing` | `0:00:00.000`\r\n|`2717`|`dancing`|`0:10:00.000`\r\n|`341`|`singing`|`0:10:00.000`\r\n|`725`|`dancing`|`0:20:00.000`\r\n|`2876`|`singing`|`0:20:00.000`\r\n|...\r\n\r\n**Examples for the aggregates default values**\r\n\r\nWhen the input of summarize operator that has at least one group-by key is empty then it's result is empty too.\r\n\r\nWhen the input of summarize operator that doesn't have any group-by key is empty, then the result is the default values of the aggregates used in the summarize:\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| where 1 == 2\r\n| summarize any(x), argmax(x, x), argmin(x, x), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)\r\n\r\n\r\n```\r\n\r\n|any_x|max_x|max_x_x|min_x|min_x_x|avg_x|schema_x|max_x1|min_x1|percentile_x_55|hll_x|stdev_x|sum_x|sumif_x|tdigest_x|variance_x|\r\n|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\r\n|||||||||||||||||\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| where 1 == 2\r\n| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)\r\n```\r\n\r\n|count_x|countif_|dcount_x|dcountif_x|\r\n|---|---|---|---|\r\n|0|0|0|0|\r\n\r\n\r\n```\r\nrange x from 1 to 1 step 1\r\n| where 1 == 2\r\n| summarize makeset(x), makelist(x)\r\n```\r\n\r\n|set_x|list_x|\r\n|---|---|\r\n|[]|[]|\r\n\r\nThe aggregate avg sums all the non-nulls and counts only those which participated in the calculation (will not take nulls into account).\r\n\r\n\r\n```\r\nrange x from 1 to 2 step 1\r\n| extend y = iff(x == 1, real(null), real(5))\r\n| summarize sum(y), avg(y)\r\n```\r\n\r\n|sum_y|avg_y|\r\n|---|---|\r\n|5|5|\r\n\r\nThe regular count will count nulls: \r\n\r\n\r\n```\r\nrange x from 1 to 2 step 1\r\n| extend y = iff(x == 1, real(null), real(5))\r\n| summarize count(y)\r\n```\r\n\r\n|count_y|\r\n|---|\r\n|2|\r\n\r\n\r\n```\r\nrange x from 1 to 2 step 1\r\n| extend y = iff(x == 1, real(null), real(5))\r\n| summarize makeset(y), makeset(y)\r\n```\r\n\r\n|set_y|set_y1|\r\n|---|---|\r\n|[5.0]|[5.0]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_summarizeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"table","References specific table using an query-time evaluated string-expression.",'table(\'StormEvent\')\r\n\r\n**Syntax**\r\n\r\n`table(`*stringExpression* [`,` *query_data_scope* ]`)`\r\n\r\n**Arguments**\r\n\r\n* *stringExpression*: Name of the table that is referenced.\r\n* *query_data_scope*: An optional parameter that controls the tables\'s datascope -- whether the query applies to all data or just part of it. Possible values:\r\n - `"hotcache"`: Table scope is data that is covered by [cache policy](../concepts/concepts_cachepolicy.md)\r\n - `"all"`: Table scope is all data, hot or cold.\r\n - `"default"`: Table scope is default (cluster default policy)',"### Use table() to access table of the current database. \r\n\r\n\r\n```\r\ntable('StormEvent') | count\r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use table() inside let statements \r\n\r\nThe same query as above can be rewritten to use inline function (let statement) that \r\nreceives a parameter `tableName` - which is passed into the table() function.\r\n\r\n\r\n```\r\nlet foo = (tableName:string)\r\n{\r\n table(tableName) | count\r\n};\r\nfoo('help')\r\n```\r\n\r\n|Count|\r\n|---|\r\n|59066|\r\n\r\n### Use table() inside Functions \r\n\r\nThe same query as above can be rewritten to be used in a function that \r\nreceives a parameter `tableName` - which is passed into the table() function.\r\n\r\n\r\n```\r\n.create function foo(tableName:string)\r\n{\r\n table(tableName) | count\r\n};\r\n```\r\n\r\n**Note:** such functions can be used only locally and not in the cross-cluster query.\r\n\r\n### Use table() with non-constant parameter\r\n\r\nA parameter, which is not scalar constant string can't be passed as parameter to `table()` function.\r\n\r\nBelow, given an example of workaround for such case.\r\n\r\n\r\n```\r\nlet T1 = range x from 1 to 1 step 1;\r\nlet T2 = range x from 2 to 2 step 1;\r\nlet _choose = (_selector:string)\r\n{\r\n union \r\n (T1 | where _selector == 'T1'),\r\n (T2 | where _selector == 'T2')\r\n};\r\n_choose('T2')\r\n\r\n```\r\n\r\n|x|\r\n|---|\r\n|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tablefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"take","Return up to the specified number of rows."," T | take 5\r\n\r\nThere is no guarantee which records are returned, unless\r\nthe source data is sorted.\r\n\r\n**Syntax**\r\n\r\n`take` *NumberOfRows*\r\n`limit` *NumberOfRows*\r\n\r\n(`take` and `limit` are synonyms.)\r\n\r\n**Remarks**\r\n\r\n`take` is a simple, quick, and efficient way to view a small sample of records\r\nwhen browing data interactively, but be aware that it doesn't guarantee any consistency\r\nin its results when executing multiple times, even if the data set hasn't changed.\r\n\r\nEven is the number of rows returned by the query is not explicitly limited\r\nby the query (no `take` operator is used), Kusto limits that number by default.\r\nPlease see [Kusto query limits](../concepts/concepts_querylimits.md) for details.\r\n\r\nSee:\r\n[sort operator](query_language_sortoperator.md)\r\n[top operator](query_language_topoperator.md)\r\n[top-nested operator](query_language_topnestedoperator.md)\r\n\r\n## A note on paging through a large resultset (or: the lack of a `skip` operator)\r\n\r\nKusto does not support the complementary `skip` operator. This is intentional, as\r\n`take` and `skip` together are mainly used for thin client paging, and have a major\r\nperformance impact on the service. Application builders that want to support result\r\npaging are advised to query for several pages of data (say, 10,000 records at a time)\r\nand then display a page of data at a time to the user.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_takeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tan","Returns the tangent function.","**Syntax**\r\n\r\n`tan(`*x*`)`\r\n\r\n**Arguments**\r\n\r\n* *x*: A real number.\r\n\r\n**Returns**\r\n\r\n* The result of `tan(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tdigest","Calculates the Intermediate results of [`percentiles()`](query_language_percentiles_aggfunction.md) across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\r\n\r\nRead more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\r\n\r\n**Syntax**\r\n\r\n`summarize` `tdigest(`*Expr* [`,` *WeightExpr*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *WeightExpr*: Expression that will be used as the weight of values for aggregation calculation.\r\n\r\n\t\r\n**Returns**\r\n\r\nThe Intermediate results of weighted percentiles of *Expr* across the group.\r\n \r\n \r\n**Tips**\r\n\r\n1) You may use the aggregation function [`merge_tdigests()`](query_language_merge_tdigests_aggfunction.md) to merge the output of tdigest again across another group.\r\n\r\n2) You may use the function [`percentile_tdigest()`] (query_language_percentile_tdigestfunction.md) to calculate the percentile/percentilew of the tdigest results.","```\r\nStormEvents\r\n| summarize tdigest(DamageProperty) by State\r\n```\r\n\r\n|State|tdigest_DamageProperty|\r\n|---|---|\r\n|ATLANTIC SOUTH|[[5],[0],[193]]|\r\n|FLORIDA|[[5],[250,10,600000,5000,375000,15000000,20000,6000000,0,110000,150000,500,12000,30000,15000,46000000,7000000,6200000,200000,40000,8000,52000000,62000000,1200000,130000,1500000,4000000,7000,250000,875000,3000,100000,10600000,300000,1000000,25000,75000,2000,60000,10000,170000,350000,50000,1000,16000,80000,2500,400000],[9,1,1,22,1,1,9,1,842,1,3,7,2,4,7,1,1,1,2,5,3,3,1,1,1,1,2,2,1,1,9,7,1,1,2,5,2,9,2,27,1,1,7,27,1,1,1,1]]|\r\n|GEORGIA|[[5],[468,209,300000,3000,250000,775000,14000,500000,0,75000,4500000,500,6928,22767,9714,800000,700000,600000,150000,25000,5000,1600000,1250000,2700000,1500000,2250000,400000,4000,175000,325000,2500,73750,750000,1400000,350000,28000000,39000,1500,35000,6455,140000,225000,30000,1000,110000000,21700000,2000,275000,200000,100000,1000000,2600000,370000,2100000,355000,117500,50000,20100,10000],[11,11,4,53,21,1,6,10,1317,8,1,56,8,6,7,1,1,1,14,29,69,1,2,1,1,1,3,14,5,1,3,4,4,1,4,1,5,14,3,5,2,1,9,96,1,1,72,1,10,17,3,1,1,1,1,2,21,4,31]]|\r\n|MISSISSIPPI|[[5],[267,55,90000,3000,75000,300000,11167,160000,0,32000,40000,1000,7000,13000,8000,400000,200000,180000,50000,15000,5000,700000,500000,120000,650000,1000000,150000,4000,60000,100000,2500,30000,250000,600000,110000,12000,20000,1500,17000,6000,45000,70000,15250,1219,10000,25000,2000,80000,65000,35000,450000,1200000,130000,750000],[3,2,6,21,1,4,6,1,741,4,13,44,8,2,8,1,5,1,23,21,32,1,3,1,1,1,5,18,17,4,1,14,2,4,4,16,13,10,4,9,2,10,4,8,31,17,51,13,1,1,1,2,1,1]]|\r\n|AMERICAN SAMOA|[[5],[0,250000],[15,1]]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigest_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tdigest_merge","Merges tdigest results across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\r\n\r\nRead more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\r\n\r\n**Syntax**\r\n\r\nsummarize `tdigest_merge(`*Expr*`)`.\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe merged tdigest values of *Expr* across the group.\r\n \r\n\r\n**Tips**\r\n\r\n1) You may use the function [`percentile_tdigest()`] (query_language_percentile_tdigestfunction.md).\r\n\r\n2) All tdigests that are included in the same group must be of the same type.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigest_merge_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tobool","Converts input to boolean (signed 8-bit) representation.",'tobool("true") == true\r\n tobool("false") == false\r\n tobool(1) == true\r\n tobool(123) == true\r\n\r\n**Syntax**\r\n\r\n`tobool(`*Expr*`)`\r\n`toboolean(`*Expr*`)` (alias)\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to boolean. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a boolean.\r\nIf conversion is not successful, result will be `null`.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toboolfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todatetime","Converts input to [datetime](./scalar-data-types/datetime.md) scalar.",'todatetime("2015-12-24") == datetime(2015-12-24)\r\n\r\n**Syntax**\r\n\r\n`todatetime(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to [datetime](./scalar-data-types/datetime.md). \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a [datetime](./scalar-data-types/datetime.md) value.\r\nIf conversion is not successful, result will be null.\r\n \r\n*Note*: Prefer using [datetime()](./scalar-data-types/datetime.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todatetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todecimal","Converts input to decimal number representation.",'todecimal("123.45678") == decimal(123.45678)\r\n\r\n**Syntax**\r\n\r\n`todecimal(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to decimal. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a decimal number.\r\nIf conversion is not successful, result will be `null`.\r\n \r\n*Note*: Prefer using [real()](./scalar-data-types/real.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todecimalfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todouble","Converts the input to a value of type `real`. (`todouble()` and `toreal()` are synonyms.)",'toreal("123.4") == 123.4\r\n\r\n**Syntax**\r\n\r\n`toreal(`*Expr*`)`\r\n`todouble(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: An expression whose value will be converted to a value of type `real`.\r\n\r\n**Returns**\r\n\r\nIf conversion is successful, the result is a value of type `real`.\r\nIf conversion is not successful, the result is the value `real(null)`.\r\n\r\n*Note*: Prefer using [double() or real()](./scalar-data-types/real.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todoublefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todynamic","Interprets a `string` as a [JSON value](http://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).","It is superior to using [extractjson() function](./query_language_extractjsonfunction.md)\r\nwhen you need to extract more than one element of a JSON compound object.\r\n\r\nAliases to [parsejson()](./query_language_parsejsonfunction.md) function.\r\n\r\n**Syntax**\r\n\r\n`todynamic(`*json*`)`\r\n`toobject(`*json*`)`\r\n\r\n**Arguments**\r\n\r\n* *json*: A JSON document.\r\n\r\n**Returns**\r\n\r\nAn object of type `dynamic` specified by *json*.\r\n\r\n*Note*: Prefer using [dynamic()](./scalar-data-types/dynamic.md) when possible.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toguid","Converts input to [`guid`](./scalar-data-types/guid.md) representation.",'toguid("70fc66f7-8279-44fc-9092-d364d70fce44") == guid("70fc66f7-8279-44fc-9092-d364d70fce44")\r\n\r\n**Syntax**\r\n\r\n`toguid(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to [`guid`](./scalar-data-types/guid.md) scalar. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a [`guid`](./scalar-data-types/guid.md) scalar.\r\nIf conversion is not successful, result will be `null`.\r\n\r\n*Note*: Prefer using [guid()](./scalar-data-types/guid.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toguidfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tohex","Converts input to a hexadecimal string.","tohex(256) == '100'\r\n tohex(-256) == 'ffffffffffffff00' // 64-bit 2's complement of -256\r\n tohex(toint(-256), 8) == 'ffffff00' // 32-bit 2's complement of -256\r\n tohex(256, 8) == '00000100'\r\n tohex(256, 2) == '100' // Exceeds min length of 2, so min length is ignored.\r\n\r\n**Syntax**\r\n\r\n`tohex(`*Expr*`, [`,` *MinLength*]`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: int or long value that will be converted to a hex string. Other types are not supported.\r\n* *MinLength*: numeric value representing the number of leading characters to include in the output. Values between 1 and 16 are supported, values greater than 16 will be truncated to 16. If the string is longer than minLength without leading characters, then minLength is effectively ignored. Negative numbers may only be represented at minimum by their underlying data size, so for an int (32-bit) the minLength will be at minimum 8, for a long (64-bit) it will be at minimum 16.\r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a string value.\r\nIf conversion is not successful, result will be null.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tohexfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toint","Converts input to integener (signed 32-bit) number representation.",'toint("123") == 123\r\n\r\n**Syntax**\r\n\r\n`toint(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to integer. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a integer number.\r\nIf conversion is not successful, result will be `null`.\r\n \r\n*Note*: Prefer using [int()](./scalar-data-types/int.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tointfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tolong","Converts input to long (signed 64-bit) number representation.",'tolong("123") == 123\r\n\r\n**Syntax**\r\n\r\n`tolong(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to long. \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a long number.\r\nIf conversion is not successful, result will be `null`.\r\n \r\n*Note*: Prefer using [long()](./scalar-data-types/long.md) when possible.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tolongfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tolower","Converts input string to lower case.",'tolower("Hello") == "hello"',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tolowerfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top","Returns the first *N* records sorted by the specified columns.",'T | top 5 by Name desc nulls last\r\n\r\n**Syntax**\r\n\r\n*T* `| top` *NumberOfRows* `by` *sort_key* [`asc` | `desc`] [`nulls first` | `nulls last`]\r\n\r\n**Arguments**\r\n\r\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\r\n* *sort_key*: The name of the column by which to sort the rows.\r\n* `asc` or `desc` (the default) may appear to control whether selection is actually from the "bottom" or "top" of the range.\r\n* `nulls first` (the default for `asc` order) or `nulls last` (the default for `desc` order) may appear to control whether null values will be at the beginning or the end of the range.\r\n\r\n\r\n**Tips**\r\n\r\n`top 5 by name` is superficially equivalent to `sort by name | take 5`. However, it runs faster and always returns sorted results, whereas `take` makes no such guarantee.\r\n[top-nested](query_language_topnestedoperator.md) allows to produce hierarchical top results.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_topoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top-hitters","Returns an approximation of the first *N* results (assuming skewed distribution of the input).","T | top-hitters 25 of Page by Views \r\n\r\n**Syntax**\r\n\r\n*T* `| top-hitters` *NumberOfRows* `of` *sort_key* `[` `by` *expression* `]`\r\n\r\n**Arguments**\r\n\r\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\r\n* *sort_key*: The name of the column by which to sort the rows.\r\n* *expression*: (optional) An expression which will be used for the top-hitters estimation. \r\n * *expression*: top-hitters will return *NumberOfRows* rows which have an approximated maximum of sum(*expression*). Expression can be a column, or any other expression that evaluates to a number. \r\n * If *expression* is not mentioned, top-hitters algorithm will count the occurences of the *sort-key*. \r\n\r\n**Notes**\r\n\r\n`top-hitters` is an approximation algorithm and should be used when running with large data. \r\nThe approximation of the the top-hitters is based on the [Count-Min-Sketch](https://en.wikipedia.org/wiki/Count%E2%80%93min_sketch) algorithm.","## Getting top hitters (most frequent items) \r\n\r\nThe next example shows how to find top-5 languages with most pages in Wikipedia (accessed after during April 2016). \r\n\r\n\r\n```\r\nPageViews\r\n| where Timestamp > datetime(2016-04-01) and Timestamp < datetime(2016-05-01) \r\n| top-hitters 5 of Language \r\n```\r\n\r\n|Language|approximate_count_Language|\r\n|---|---|\r\n|en|1539954127|\r\n|zh|339827659|\r\n|de|262197491|\r\n|ru|227003107|\r\n|fr|207943448|\r\n\r\n## Getting top hitters (based on column value) ***\r\n\r\nThe next example shows how to find most viewed English pages of Wikipedia of the year 2016. \r\nThe query uses 'Views' (integer number) to calculate page popularity (number of views). \r\n\r\n\r\n```\r\nPageViews\r\n| where Timestamp > datetime(2016-01-01)\r\n| where Language == \"en\"\r\n| where Page !has 'Special'\r\n| top-hitters 10 of Page by Views\r\n```\r\n\r\n|Page|approximate_sum_Views|\r\n|---|---|\r\n|Main_Page|1325856754|\r\n|Web_scraping|43979153|\r\n|Java_(programming_language)|16489491|\r\n|United_States|13928841|\r\n|Wikipedia|13584915|\r\n|Donald_Trump|12376448|\r\n|YouTube|11917252|\r\n|The_Revenant_(2015_film)|10714263|\r\n|Star_Wars:_The_Force_Awakens|9770653|\r\n|Portal:Current_events|9578000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tophittersoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top-nested","Produces hierarchical top results, where each level is a drill-down based on previous level values.",'T | top-nested 3 of Location with others="Others" by sum(MachinesNumber), top-nested 4 of bin(Timestamp,5m) by sum(MachinesNumber)\r\n\r\nIt is useful for dashboard visualization scenarios, or when it is necessary to answer to a question that \r\nsounds like: "find what are top-N values of K1 (using some aggregation); for each of them, find what are the top-M values of K2 (using another aggregation); ..."\r\n\r\n**Syntax**\r\n\r\n*T* `|` `top-nested` [*N1*] `of` *Expression1* [`with others=` *ConstExpr1*] `by` [*AggName1* `=`] *Aggregation1* [`asc` | `desc`] [`,`...]\r\n\r\n**Arguments**\r\n\r\nfor each top-nested rule:\r\n* *N1*: The number of top values to return for each hierarchy level. Optional (if omitted, all distinct values will be returned).\r\n* *Expression1*: An expression by which to select the top values. Typically it\'s either a column name in *T*, or some binning operation (e.g., `bin()`) on such a column. \r\n* *ConstExpr1*: If specified, then for the applicable nesting level, an additional row will be appended that holds the aggregated result for the other values that are not included in the top values.\r\n* *Aggregation1*: A call to an aggregation function which may be one of:\r\n [sum()](query_language_sum_aggfunction.md),\r\n [count()](query_language_count_aggfunction.md),\r\n [max()](query_language_max_aggfunction.md),\r\n [min()](query_language_min_aggfunction.md),\r\n [dcount()](query_language_dcountif_aggfunction.md),\r\n [avg()](query_language_avg_aggfunction.md),\r\n [percentile()](query_language_percentiles_aggfunction.md),\r\n [percentilew()](query_language_percentiles_aggfunction.md),\r\n or any algebric combination of these aggregations.\r\n* `asc` or `desc` (the default) may appear to control whether selection is actually from the "bottom" or "top" of the range.\r\n\r\n**Returns**\r\n\r\nHierarchial table which includes input columns and for each one a new column is produced to include result of the Aggregation for the same level for each element.\r\nThe columns are arranged in the same order of the input columns and the new produced column will be close to the aggregated column. \r\nEach record has a hierarchial structure where each value is selected after applying all the previous top-nested rules on all the previous levels and then applying the current level\'s rule on this output.\r\nThis means that the top n values for level i are calculated for each value in level i - 1.\r\n \r\n**Tips**\r\n\r\n* Use columns renaming in for *Aggregation* results: T | top-nested 3 of Location by MachinesNumberForLocation = sum(MachinesNumber) ... .\r\n\r\n* The number of records returned might be quite large; up to (*N1*+1) * (*N2*+1) * ... * (*Nm*+1) (where m is the number of the levels and *Ni* is the top count for level i).\r\n\r\n* The Aggregation must receive a numeric column with aggregation function which is one of the mentioned above.\r\n\r\n* Use the `with others=` option in order to get the aggregated value of all other values that was not top N values in some level.\r\n\r\n* If you are not interested in getting `with others=` for some level, null values will be appended (for the aggreagated column and the level key, see example below).\r\n\r\n\r\n* It is possible to return additional columns for the selected top-nested candidates by appending additional top-nested statements like these (see examples below):\r\n\r\n\r\n```\r\ntop-nested 2 of ...., ..., ..., top-nested of by max(1), top-nested of by max(1)\r\n```',"```\r\nStormEvents\r\n| top-nested 2 of State by sum(BeginLat),\r\n top-nested 3 of Source by sum(BeginLat),\r\n top-nested 1 of EndLocation by sum(BeginLat)\r\n```\r\n\r\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|\r\n|---|---|---|---|---|---|\r\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|FT SCOTT|264.858|\r\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|\r\n|TEXAS|123400.5101|Public|13650.9079|AMARILLO|246.2598|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|\r\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|\r\n\r\n\r\n* With others example:\r\n\r\n\r\n```\r\nStormEvents\r\n| top-nested 2 of State with others = \"All Other States\" by sum(BeginLat),\r\n top-nested 3 of Source by sum(BeginLat),\r\n top-nested 1 of EndLocation with others = \"All Other End Locations\" by sum(BeginLat)\r\n\r\n\r\n```\r\n\r\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|\r\n|---|---|---|---|---|---|\r\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|FT SCOTT|264.858|\r\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|\r\n|TEXAS|123400.5101|Public|13650.9079|AMARILLO|246.2598|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|\r\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|\r\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|All Other End Locations|18479.965|\r\n|KANSAS|87771.2355000001|Public|22855.6206|All Other End Locations|22367.3749|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|All Other End Locations|20890.9679|\r\n|TEXAS|123400.5101|Public|13650.9079|All Other End Locations|13404.6481|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|All Other End Locations|36939.2788|\r\n|TEXAS|123400.5101|Trained Spotter|13997.7124|All Other End Locations|13576.2724|\r\n|KANSAS|87771.2355000001|||All Other End Locations|24891.0836|\r\n|TEXAS|123400.5101|||All Other End Locations|58523.2932000001|\r\n|All Other States|1149279.5923|||All Other End Locations|1149279.5923|\r\n\r\n\r\nThe following query shows the same results for the first level used in the example above:\r\n\r\n\r\n```\r\n StormEvents\r\n | where State !in ('TEXAS', 'KANSAS')\r\n | summarize sum(BeginLat)\r\n```\r\n\r\n|sum_BeginLat|\r\n|---|\r\n|1149279.5923|\r\n\r\n\r\nRequesting another column (EventType) to the top-nested result: \r\n\r\n\r\n```\r\nStormEvents\r\n| top-nested 2 of State by sum(BeginLat), top-nested 2 of Source by sum(BeginLat), top-nested 1 of EndLocation by sum(BeginLat), top-nested of EventType by tmp = max(1)\r\n| project-away tmp\r\n\r\n\r\n```\r\n\r\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|EventType|\r\n|---|---|---|---|---|---|---|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Thunderstorm Wind|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Hail|\r\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Tornado|\r\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Hail|\r\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Thunderstorm Wind|\r\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Flood|\r\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|Hail|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Hail|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Flood|\r\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Flash Flood|\r\n\r\nIn order to sort the result by the last nested level (in this example by EndLocation) and give an index sort order for each value in this level (per group) :\r\n\r\n\r\n```\r\nStormEvents\r\n| top-nested 2 of State by sum(BeginLat), top-nested 2 of Source by sum(BeginLat), top-nested 4 of EndLocation by sum(BeginLat)\r\n| order by State , Source, aggregated_EndLocation\r\n| summarize EndLocations = makelist(EndLocation, 10000) , endLocationSums = makelist(aggregated_EndLocation, 10000) by State, Source\r\n| extend indicies = range(0, arraylength(EndLocations) - 1, 1)\r\n| mvexpand EndLocations, endLocationSums, indicies\r\n\r\n\r\n\r\n```\r\n\r\n|State|Source|EndLocations|endLocationSums|indicies|\r\n|---|---|---|---|---|\r\n|TEXAS|Trained Spotter|CLAUDE|421.44|0|\r\n|TEXAS|Trained Spotter|AMARILLO|316.8892|1|\r\n|TEXAS|Trained Spotter|DALHART|252.6186|2|\r\n|TEXAS|Trained Spotter|PERRYTON|216.7826|3|\r\n|TEXAS|Law Enforcement|PERRYTON|289.3178|0|\r\n|TEXAS|Law Enforcement|LEAKEY|267.9825|1|\r\n|TEXAS|Law Enforcement|BRACKETTVILLE|264.3483|2|\r\n|TEXAS|Law Enforcement|GILMER|261.9068|3|\r\n|KANSAS|Trained Spotter|SHARON SPGS|388.7404|0|\r\n|KANSAS|Trained Spotter|ATWOOD|358.6136|1|\r\n|KANSAS|Trained Spotter|LENORA|317.0718|2|\r\n|KANSAS|Trained Spotter|SCOTT CITY|307.84|3|\r\n|KANSAS|Public|BUCKLIN|488.2457|0|\r\n|KANSAS|Public|ASHLAND|446.4218|1|\r\n|KANSAS|Public|PROTECTION|446.11|2|\r\n|KANSAS|Public|MEADE STATE PARK|371.1|3|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_topnestedoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toscalar","Returns a scalar constant value of the evaluated expression.","This function is useful for queries that require staged calculations, as for example\r\ncalculating a total count of events and then use it for for filtering groups\r\nthat exceed certain percent of all events. \r\n\r\n**Syntax**\r\n\r\n`toscalar(`*Expression*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expression*: Expression that will be evaluated for scalar conversion \r\n\r\n**Returns**\r\n\r\nA scalar constant value of the evaluated expression.\r\nIf expression result is a tabular, then the first column and first row will be taken for conversion.\r\n\r\n**Tip**\r\nYou can use [`let` statement](query_language_letstatement.md) for readability of the query when using `toscalar()`. \r\n\r\n**Notes**\r\n\r\n`toscalar()` can be calculated a constant number of times during the query execution.\r\nIn other words, `toscalar()` function cannot be applied on row-level of (for-each-row scenario).","The following query evaluates `Start`, `End` and `Step` as scalar constants - and\r\nuse it for `range` evaluation. \r\n\r\n\r\n```\r\nlet Start = toscalar(range x from 1 to 1 step 1); \r\nlet End = toscalar(range x from 1 to 9 step 1 | count); \r\nlet Step = toscalar(2);\r\nrange z from Start to End step Step | extend start=Start, end=End, step=Step\r\n```\r\n\r\n|z|start|end|step|\r\n|---|---|---|---|\r\n|1|1|9|2|\r\n|3|1|9|2|\r\n|5|1|9|2|\r\n|7|1|9|2|\r\n|9|1|9|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toscalarfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tostring","Converts input to a string representation.",'tostring(123) == "123"\r\n\r\n**Syntax**\r\n\r\n`tostring(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to string. \r\n\r\n**Returns**\r\n\r\nIf *Expr* value is non-null result will be a string representation of *Expr*.\r\nIf *Expr* value is null, result will be empty string.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tostringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"totimespan","Converts input to [timespan](./scalar-data-types/timespan.md) scalar.",'totimespan("0.00:01:00") == time(1min)\r\n\r\n**Syntax**\r\n\r\n`totimespan(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be converted to [timespan](./scalar-data-types/timespan.md). \r\n\r\n**Returns**\r\n\r\nIf conversion is successful, result will be a [timespan](./scalar-data-types/timespan.md) value.\r\nIf conversion is not successful, result will be null.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_totimespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toupper","Converts a string to upper case.",'toupper("hello") == "HELLO"',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toupperfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"translate","Replaces a set of characters ('searchList') with another set of characters ('replacementList') in a given a string.\r\nThe function searches for characters in the 'searchList' and replaces them with the corresponding characters in 'replacementList'","**Syntax**\r\n\r\n`translate(`*searchList*`,` *replacementList*,` *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *searchList*: The list of characters that should be replaced\r\n* *replacementList*: The list of characters that should replace the characters in 'searchList'\r\n* *text*: A string to search\r\n\r\n**Returns**\r\n\r\n*text* after replacing all ocurrences of characters in 'replacementList' with the corresponding characters in 'searchList'",'|||\r\n|---|---\r\n|`translate("abc", "x", "abc")`| "xxx" \r\n|`translate("abc", "", "ab")`| ""\r\n|`translate("krasp", "otsku", "spark")`| "kusto"',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_translatefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"treepath","Enumerates all the path expressions that identify leaves in a dynamic object.","`treepath(`*dynamic object*`)`\r\n\r\n**Returns**\r\n\r\nAn array of path expressions.",'|Expression|Evaluates to|\r\n|---|---|\r\n|`treepath(parsejson(\'{"a":"b", "c":123}\'))` | `["[\'a\']","[\'c\']"]`|\r\n|`treepath(parsejson(\'{"prop1":[1,2,3,4], "prop2":"value2"}\'))`|`["[\'prop1\']","[\'prop1\'][0]","[\'prop2\']"]`|\r\n|`treepath(parsejson(\'{"listProperty":[100,200,300,"abcde",{"x":"y"}]}\'))`|`["[\'listProperty\']","[\'listProperty\'][0]","[\'listProperty\'][0][\'x\']"]`|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_treepathfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim","Removes all leading and trailing matches of the specified regular expression.","**Syntax**\r\n\r\n`trim(`*regex*`,` *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the beginning and/or the end of *text*. \r\n* *text*: A string.\r\n\r\n**Returns**\r\n\r\n*text* after trimming matches of *regex* found in the beginning and/or the end of *text*.",'Statement bellow trims *substring* from the start and the end of the *string_to_trim*:\r\n\r\n\r\n```\r\nlet string_to_trim = @"--http://bing.com--";\r\nlet substring = "--";\r\nrange x from 1 to 1 step 1\r\n| project string_to_trim = string_to_trim, trimmed_string = trim(substring,string_to_trim)\r\n```\r\n\r\n|string_to_trim|trimmed_string|\r\n|---|---|\r\n|--http://bing.com--|http://bing.com|\r\n\r\nNext statement trims all non-word characters from start and end of the string:\r\n\r\n\r\n```\r\nrange x from 1 to 5 step 1\r\n| project str = strcat("- ","Te st",x,@"// $")\r\n| extend trimmed_str = trim(@"[^\\w]+",str)\r\n```\r\n\r\n|str|trimmed_str|\r\n|---|---|\r\n|- Te st1// $|Te st1|\r\n|- Te st2// $|Te st2|\r\n|- Te st3// $|Te st3|\r\n|- Te st4// $|Te st4|\r\n|- Te st5// $|Te st5|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim_end","Removes trailing match of the specified regular expression.","**Syntax**\r\n\r\n`trim_end(`*regex*`,` *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the end of *text*. \r\n* *text*: A string.\r\n\r\n**Returns**\r\n\r\n*text* after trimming matches of *regex* found in the end of *text*.",'Statement bellow trims *substring* from the end of *string_to_trim*:\r\n\r\n\r\n```\r\nlet string_to_trim = @"bing.com";\r\nlet substring = ".com";\r\nrange x from 1 to 1 step 1\r\n| project string_to_trim = string_to_trim,trimmed_string = trim_end(substring,string_to_trim)\r\n```\r\n\r\n|string_to_trim|trimmed_string|\r\n|---|---|\r\n|bing.com|bing|\r\n\r\nNext statement trims all non-word characters from the end of the string:\r\n\r\n\r\n```\r\nrange x from 1 to 5 step 1\r\n| project str = strcat("- ","Te st",x,@"// $")\r\n| extend trimmed_str = trim_end(@"[^\\w]+",str)\r\n```\r\n\r\n|str|trimmed_str|\r\n|---|---|\r\n|- Te st1// $|- Te st1|\r\n|- Te st2// $|- Te st2|\r\n|- Te st3// $|- Te st3|\r\n|- Te st4// $|- Te st4|\r\n|- Te st5// $|- Te st5|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimendfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim_start","Removes leading match of the specified regular expression.","**Syntax**\r\n\r\n`trim_start(`*regex*`,` *text*`)`\r\n\r\n**Arguments**\r\n\r\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the beginning of *text*. \r\n* *text*: A string.\r\n\r\n**Returns**\r\n\r\n*text* after trimming match of *regex* found in the beginning of *text*.",'Statement bellow trims *substring* from the start of *string_to_trim*:\r\n\r\n\r\n```\r\nlet string_to_trim = @"http://bing.com";\r\nlet substring = "http://";\r\nrange x from 1 to 1 step 1\r\n| project string_to_trim = string_to_trim,trimmed_string = trim_start(substring,string_to_trim)\r\n```\r\n\r\n|string_to_trim|trimmed_string|\r\n|---|---|\r\n|http://bing.com|bing.com|\r\n\r\nNext statement trims all non-word characters from the beginning of the string:\r\n\r\n\r\n```\r\nrange x from 1 to 5 step 1\r\n| project str = strcat("- ","Te st",x,@"// $")\r\n| extend trimmed_str = trim_start(@"[^\\w]+",str)\r\n```\r\n\r\n|str|trimmed_str|\r\n|---|---|\r\n|- Te st1// $|Te st1// $|\r\n|- Te st2// $|Te st2// $|\r\n|- Te st3// $|Te st3// $|\r\n|- Te st4// $|Te st4// $|\r\n|- Te st5// $|Te st5// $|',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimstartfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"union","Takes two or more tables and returns the rows of all of them.",'```\r\nTable1 | union Table2, Table3\r\n```\r\n\r\n**Syntax**\r\n\r\n*T* `| union` [`kind=` `inner`|`outer`] [`withsource=`*ColumnName*] [`isfuzzy=` `true`|`false`] *Table* [`,` *Table*]... \r\n\r\nAlternative form with no piped input:\r\n\r\n`union` [`kind=` `inner`|`outer`] [`withsource=`*ColumnName*] [`isfuzzy=` `true`|`false`] *Table* [`,` *Table*]... \r\n\r\n**Arguments**\r\n\r\n* `Table`:\r\n * The name of a table, such as `Events`; or\r\n * A query expression that must be enclosed with parenthesis, such as `(Events | where id==42)` or `(cluster("https://help.kusto.windows.net:443").database("Samples").table("*"))`\r\n * A set of tables specified with a wildcard. For example, `E*` would form the union of all the tables in the database whose names begin `E`.\r\n* `kind`: \r\n * `inner` - The result has the subset of columns that are common to all of the input tables.\r\n * `outer` - The result has all the columns that occur in any of the inputs. Cells that were not defined by an input row are set to `null`.\r\n* `withsource`=*ColumnName*: If specified, the output will include a column\r\ncalled *ColumnName* whose value indicates which source table has contributed each row.\r\nIf the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database.\r\nSimilarly __cluster and database__ qualifications will be present in the value if more than one cluster is referenced. \r\n* `isfuzzy=` `true` | `false`: If `isfuzzy` is set to `true` - allows fuzzy resolution of union legs. `Fuzzy` means that query execution will continue even if the underlying table or view reference is not present, yielding a warning in the query status results (one for each missing reference). At least one successful union leg must exists; if no resolutions were successful - query will return an error.\r\nThe default is `isfuzzy=` `false`.\r\n\r\n**Returns**\r\n\r\nA table with as many rows as there are in all the input tables.\r\n\r\n**Notes**\r\n1. `union` scope can include [let statements](./query_language_letstatement.md) if those are \r\nattributed with [view keyword](./query_language_letstatement.md)\r\n2. `union` scope will not include [functions](../controlCommands/controlcommands_functions.md). To include \r\nfunction in the union scope - define a [let statement](./query_language_letstatement.md) \r\nwith [view keyword](./query_language_letstatement.md)\r\n3. If the `union` input is [tables](../controlCommands/controlcommands_tables.md) (as oppose to [tabular expressions](./query_language_findoperator.md)), and the `union` is followed by a [where operator](./query_language_whereoperator.md), consider replacing both with [find](./query_language_syntax.md) for better performance. Please note the different [output schema](./query_language_findoperator.md#output-schema) produced by the `find` operator.',"```\r\nunion K* | where * has \"Kusto\"\r\n```\r\n\r\nRows from all tables in the database whose name starts with `K`, and in which any column includes the word `Kusto`.\r\n\r\n**Example**\r\n\r\n\r\n```\r\nunion withsource=SourceTable kind=outer Query, Command\r\n| where Timestamp > ago(1d)\r\n| summarize dcount(UserId)\r\n```\r\n\r\nThe number of distinct users that have produced\r\neither a `Query` event or a `Command` event over the past day. In the result, the 'SourceTable' column will indicate either \"Query\" or \"Command\".\r\n\r\n\r\n```\r\nQuery\r\n| where Timestamp > ago(1d)\r\n| union withsource=SourceTable kind=outer \r\n (Command | where Timestamp > ago(1d))\r\n| summarize dcount(UserId)\r\n```\r\n\r\nThis more efficient version produces the same result. It filters each table before creating the union.\r\n\r\n**Example: Using `isfuzzy=true`**\r\n \r\n\r\n``` \r\n// Using union isfuzzy=true to access non-existing view: \r\nlet View_1 = view () { range x from 1 to 1 step 1 };\r\nlet View_2 = view () { range x from 1 to 1 step 1 };\r\nlet OtherView_1 = view () { range x from 1 to 1 step 1 };\r\nunion isfuzzy=true\r\n(View_1 | where x > 0), \r\n(View_2 | where x > 0),\r\n(View_3 | where x > 0)\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|2|\r\n\r\nObserving Query Status - the following warning returned:\r\n`Failed to resolve entity 'View_3'`\r\n\r\n\r\n```\r\n// Using union isfuzzy=true and wildcard access:\r\nlet View_1 = view () { range x from 1 to 1 step 1 };\r\nlet View_2 = view () { range x from 1 to 1 step 1 };\r\nlet OtherView_1 = view () { range x from 1 to 1 step 1 };\r\nunion isfuzzy=true View*, SomeView*, OtherView*\r\n| count \r\n```\r\n\r\n|Count|\r\n|---|\r\n|3|\r\n\r\nObserving Query Status - the following warning returned:\r\n`Failed to resolve entity 'SomeView*'`","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_unionoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"url_decode","The function converts encoded URL into a to regular URL representation.","Detailed information about URL decoding and encoding can be found [here](https://en.wikipedia.org/wiki/Percent-encoding).\r\n\r\n**Syntax**\r\n\r\n`url_decode(`*encoded url*`)`\r\n\r\n**Arguments**\r\n\r\n* *encoded url*: encoded URL (string). \r\n\r\n**Returns**\r\n\r\nURL (string) in a regular representation.","```\r\nlet url = @'https%3a%2f%2fwww.bing.com%2f';\r\nprint original = url, decoded = url_decode(url)\r\n```\r\n\r\n|original|decoded|\r\n|---|---|\r\n|https%3a%2f%2fwww.bing.com%2f|https://www.bing.com/|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_urldecodefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"url_encode","The function converts characters of the input URL into a format that can be transmitted over the Internet.","Detailed information about URL encoding and decoding can be found [here](https://en.wikipedia.org/wiki/Percent-encoding).\r\n\r\n**Syntax**\r\n\r\n`url_encode(`*url*`)`\r\n\r\n**Arguments**\r\n\r\n* *url*: input URL (string). \r\n\r\n**Returns**\r\n\r\nURL (string) converted into a format that can be transmitted over the Internet.","```\r\nlet url = @'https://www.bing.com/';\r\nprint original = url, encoded = url_encode(url)\r\n```\r\n\r\n|original|encoded|\r\n|---|---|\r\n|https://www.bing.com/|https%3a%2f%2fwww.bing.com%2f|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_urlencodefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"variance","Calculates the variance of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).","* Used formula:\r\n![](./images/aggregations/variance_sample.png)\r\n\r\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `variance(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe variance value of *Expr* across the group.","```\r\nrange x from 1 to 5 step 1\r\n| summarize makelist(x), variance(x) \r\n```\r\n\r\n|list_x|variance_x|\r\n|---|---|\r\n|[ 1, 2, 3, 4, 5]|2.5|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_variance_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"varianceif","Calculates the [variance](query_language_variance_aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `varianceif(`*Expr*`, `*Predicate*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the variance.\r\n\r\n**Returns**\r\n\r\nThe variance value of *Expr* across the group where *Predicate* evaluates to `true`.","```\r\nrange x from 1 to 100 step 1\r\n| summarize varianceif(x, x%2 == 0)\r\n\r\n```\r\n\r\n|varianceif_x|\r\n|---|\r\n|850|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_varianceif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"variancep","Calculates the variance of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).","* Used formula:\r\n![](./images/aggregations/variance_population.png)\r\n\r\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\r\n\r\n**Syntax**\r\n\r\nsummarize `variancep(`*Expr*`)`\r\n\r\n**Arguments**\r\n\r\n* *Expr*: Expression that will be used for aggregation calculation. \r\n\r\n**Returns**\r\n\r\nThe variance value of *Expr* across the group.","```\r\nrange x from 1 to 5 step 1\r\n| summarize makelist(x), variancep(x) \r\n```\r\n\r\n|list_x|variance_x|\r\n|---|---|\r\n|[ 1, 2, 3, 4, 5]|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_variancep_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"weekofyear","Retunrs the integer number represents the week number.",'Aligned with ISO 8601 standards, where first day of the week is Sunday.\r\n\r\n weekofyear(datetime("2015-12-14"))\r\n\r\n**Syntax**\r\n\r\n`weekofyear(`*a_date*`)`\r\n\r\n**Arguments**\r\n\r\n* `a_date`: A `datetime`.\r\n\r\n**Returns**\r\n\r\n`week number` - The week number that contains the given date.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_weekofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"welch_test","Computes the p_value of the [Welch-test function](https://en.wikipedia.org/wiki/Welch%27s_t-test)",'```\r\n// s1, s2 values are from https://en.wikipedia.org/wiki/Welch%27s_t-test\r\nrange r from 1 to 1 step 1\r\n| extend s1 = dynamic([27.5, 21.0, 19.0, 23.6, 17.0, 17.9, 16.9, 20.1, 21.9, 22.6, 23.1, 19.6, 19.0, 21.7, 21.4]),\r\n s2 = dynamic([27.1, 22.0, 20.8, 23.4, 23.4, 23.5, 25.8, 22.0, 24.8, 20.2, 21.9, 22.1, 22.9, 20.5, 24.4])\r\n| mvexpand s1 to typeof(double), s2 to typeof(double)\r\n| summarize m1=avg(s1), v1=variance(s1), c1=count(), m2=avg(s2), v2=variance(s2), c2=count()\r\n| extend pValue=welch_test(m1,v1,c1,m2,v2,c2)\r\n\r\n// pValue = 0.021\r\n```\r\n\r\n**Syntax**\r\n\r\n`welch_test(`*mean1*`, `*variance1*`, `*count1*`, `*mean2*`, `*variance2*`, `*count2*`)`\r\n\r\n**Arguments**\r\n\r\n* *mean1*: Expression that represents the mean (average) value of the 1st series\r\n* *variance1*: Expression that represents the variance value of the 1st series\r\n* *count1*: Expression that represents the count of values in the 1st series\r\n* *mean2*: Expression that represents the mean (average) value of the 2nd series\r\n* *variance2*: Expression that represents the variance value of the 2nd series\r\n* *count2*: Expression that represents the count of values in the 2nd series\r\n\r\n**Returns**\r\n\r\nFrom [Wikipedia](https://en.wikipedia.org/wiki/Welch%27s_t-test):\r\n\r\nIn statistics, Welch\'s t-test, or unequal variances t-test, is a two-sample location test \r\nwhich is used to test the hypothesis that two populations have equal means. Welch\'s t-test \r\nis an adaptation of Student\'s t-test, that is, it has been derived with the help of Student\'s \r\nt-test and is more reliable when the two samples have unequal variances and unequal sample\r\nsizes. These tests are often referred to as "unpaired" or "independent samples" t-tests, \r\nas they are typically applied when the statistical units underlying the two samples\r\nbeing compared are non-overlapping. Given that Welch\'s t-test has been less popular than \r\nStudent\'s t-test and may be less familiar to readers, a more informative name is "Welch\'s \r\nunequal variances t-test" or "unequal variances t-test" for brevity.',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_welch_testfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"where","Filters a table to the subset of rows that satisfy a predicate."," T | where fruit==\"apple\"\r\n\r\n**Alias** `filter`\r\n\r\n**Syntax**\r\n\r\n*T* `| where` *Predicate*\r\n\r\n**Arguments**\r\n\r\n* *T*: The tabular input whose records are to be filtered.\r\n* *Predicate*: A `boolean` [expression](./scalar-data-types/bool.md) over the columns of *T*. It is evaluated for each row in *T*.\r\n\r\n**Returns**\r\n\r\nRows in *T* for which *Predicate* is `true`.\r\n\r\n**Notes**\r\nNull values: all filtering functions return false when compared with null values. \r\nYou can use special null-aware functions to write queries that take null values into account:\r\n[isnull()](./query_language_isnullfunction.md),\r\n[isnotnull()](./query_language_isnotnullfunction.md),\r\n[isempty()](./query_language_isemptyfunction.md),\r\n[isnotempty()](./query_language_isnotemptyfunction.md). \r\n\r\n**Tips**\r\n\r\nTo get the fastest performance:\r\n\r\n* **Use simple comparisons** between column names and constants. ('Constant' means constant over the table - so `now()` and `ago()` are OK, and so are scalar values assigned using a [`let` statement](./query_language_letstatement.md).)\r\n\r\n For example, prefer `where Timestamp >= ago(1d)` to `where floor(Timestamp, 1d) == ago(1d)`.\r\n\r\n* **Simplest terms first**: If you have multiple clauses conjoined with `and`, put first the clauses that involve just one column. So `Timestamp > ago(1d) and OpId == EventId` is better than the other way around.\r\n\r\n[See here](./concepts_datatypes_string_operators.md) for a summary of available string operators.\r\n\r\n[See here](./concepts_numoperators.md) for a summary of available numeric operators.",'```\r\nTraces\r\n| where Timestamp > ago(1h)\r\n and Source == "Kuskus"\r\n and ActivityId == SubActivityId \r\n```\r\n\r\nRecords that are no older than 1 hour,\r\nand come from the Source called "Kuskus", and have two columns of the same value. \r\n\r\nNotice that we put the comparison between two columns last, as it can\'t utilize the index and forces a scan.\r\n\r\n**Example**\r\n\r\n\r\n```\r\nTraces | where * has "Kusto"\r\n```\r\n\r\nAll the rows in which the word "Kusto" appears in any column.',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_whereoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"zip","The `zip` function accepts any number of `dynamic` arrays, and returns an\r\narray whose elements are each an array holding the elements of the input\r\narrays of the same index.","**Syntax**\r\n\r\n`zip(`*array1*`,` *array2*`, ... )`\r\n\r\n**Arguments**\r\n\r\nBetween 2 and 16 dynamic arrays.",'The following example returns `[[1,2],[3,4],[5,6]]`:\r\n\r\n\r\n```\r\nT \r\n| zip([1,3,5], [2,4,6])\r\n```\r\n\r\nThe following example returns `[["A",{}], [1,"B"], [1.5, null]]`:\r\n\r\n\r\n```\r\nT \r\n| zip(["A", 1, 1.5], [{}, "B"])\r\n```',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_zipfunction.html")))}}}),Bridge.ns("Kusto.Data.IntelliSense.CslDocumentation",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslDocumentation,{f1:function(e){return e.value}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase",{statics:{fields:{CommonRegexOptions:0,DefaultRegexOptions:0,s_isCommandRegex:null,s_firstWordAfterPipeRegex:null},ctors:{init:function(){this.CommonRegexOptions=16,this.DefaultRegexOptions=0,this.s_isCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_firstWordAfterPipeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*(?[\\w\\-]+)\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)}},methods:{FindRules:function(e,t,n,i,r){var o;o=Bridge.getEnumerator(e);try{for(;o.moveNext();){var s=o.Current;if((!(null!=s.RequiredKeywords&&s.RequiredKeywords.Count>0)||(s.RequiresFullCommand?Bridge.global.System.Linq.Enumerable.from(s.RequiredKeywords).any(function(e){return Bridge.global.System.String.contains(t,e)}):!Bridge.global.System.String.isNullOrEmpty(r)&&s.RequiredKeywords.contains(r)))&&s.IsMatch(n,s.RequiresFullCommand?t:i))return s}}finally{Bridge.is(o,Bridge.global.System.IDisposable)&&o.System$IDisposable$Dispose()}return null},FindLastStatement:function(e){return Bridge.global.System.String.isNullOrEmpty(e)?"":Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.ParseAsStatements(e,59,!1)).lastOrDefault(null,null)},ParseAsStatements:function(e,t,n){var i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);if(Bridge.global.System.String.isNullOrEmpty(e))return i;for(var r=0,o=Bridge.global.System.String.toCharArray(e,0,e.length),s=0;s0&&i.add(e.substr(r,u)),r=s+1|0}}return i},SkipToBalancedChar:function(e,t,n,i){for(var r=t;r1&&(t.v="|"+(r||"")),Bridge.global.System.String.isNullOrEmpty(r)?n.v="":n.v=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.GetFirstWordAfterPipe(r)},GetFirstWordAfterPipe:function(e){return Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_firstWordAfterPipeRegex.match(e).getGroups().getByName("FirstWord").toString()}}},props:{Locker:null,GeneralRules:null,CommandRules:null,QueryParametersRules:null,DefaultRule:null,CommandToolTips:null,ContextConnection:null},ctors:{ctor:function(){this.$initialize(),this.Locker={}}},methods:{TryMatchAnyRule:function(e,t){var n,i,r=this.AnalyzeCommand$1(e,null),o=r.Context,s={},a={};Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.GetApproximateCommandLastPart(r.Command,a,s);var l=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_isCommandRegex.isMatch(e);if(t.v=null,l){Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for commands rules"),n=Bridge.getEnumerator(this.CommandRules);try{for(;n.moveNext();){var u=n.Current;if(u.IsMatch(o,u.RequiresFullCommand?e:a.v)){t.v=u;break}}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}if(null==t.v&&(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for general rules"),t.v=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.FindRules(this.GeneralRules,e,o,a.v,s.v)),null==t.v){Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for query parameters rules"),i=Bridge.getEnumerator(this.QueryParametersRules);try{for(;i.moveNext();){var d=i.Current;if(d.IsMatch(o,d.RequiresFullCommand?e:a.v)){t.v=d;break}}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}}return null!=t.v&&t.v.IsContextual?(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: rule {0} was found",[Bridge.box(t.v.Kind,Bridge.global.System.Int32)]),this.UpdateProviderAvailableEntities(e,o),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: Entities were updated",[Bridge.box(t.v.Kind,Bridge.global.System.Int32)])):Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: no rule was found"),null!=t.v},TryMatchSpecificRule:function(e,t,n,i){return i.v=null,Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_isCommandRegex.isMatch(e)&&(i.v=Bridge.global.System.Linq.Enumerable.from(this.CommandRules).firstOrDefault(function(i){return i.Kind===n&&i.IsMatch(t,e)},null)),null==i.v&&(i.v=Bridge.global.System.Linq.Enumerable.from(this.GeneralRules).firstOrDefault(function(i){return i.Kind===n&&i.IsMatch(t,e)},null)),null!=i.v&&i.v.IsContextual&&this.UpdateProviderAvailableEntities(e,t),null!=i.v},SetQueryParametersRule:function(e){},Initialize:function(){this.CommandRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor),this.GeneralRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor),this.CommandToolTips=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTip).ctor),this.QueryParametersRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor)}}}),Bridge.define("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult",{$kind:"nested enum",statics:{fields:{None:0,AppendEntities:1,ReplaceEntities:2}}}),Bridge.define("Kusto.Data.IntelliSense.CslTopicDocumentation",{props:{TokenKind:0,Name:null,ShortDescription:null,LongDescription:null,Examples:null,Url:null},ctors:{ctor:function(e,t,n,i,r,o){void 0===o&&(o=null),this.$initialize(),this.TokenKind=e,this.Name=t,this.ShortDescription=n,this.LongDescription=i,this.Examples=r,this.Url=o}},methods:{GetMarkDownText:function(){var e,t=new Bridge.global.System.Text.StringBuilder;t.appendFormat(Bridge.global.System.String.format("## [{0}]({1})",this.Name,this.Url)),t.appendLine(),t.appendLine(),e=Bridge.getEnumerator(Bridge.global.System.Array.init([this.ShortDescription,this.LongDescription,this.Examples],Bridge.global.System.String));try{for(;e.moveNext();){var n=e.Current;Bridge.global.System.String.isNullOrEmpty(n)||(t.appendLine(n),t.appendLine())}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}return t.toString()},equals:function(e){if(null==e)return!1;var t=Bridge.as(e,Kusto.Data.IntelliSense.CslTopicDocumentation);return null!=t&&this.TokenKind===t.TokenKind&&Bridge.referenceEquals(this.Name,t.Name)&&Bridge.referenceEquals(this.ShortDescription,t.ShortDescription)&&Bridge.referenceEquals(this.Examples,t.Examples)},getHashCode:function(){var e,t,n,i;return Bridge.getHashCode(this.TokenKind)^Bridge.getHashCode(this.Name)^(null!=(e=null!=(t=this.ShortDescription)?Bridge.getHashCode(t):null)?e:0)^(null!=(n=null!=(i=this.Examples)?Bridge.getHashCode(i):null)?n:0)}}}),Bridge.define("Kusto.Data.IntelliSense.EntityDataType",{$kind:"enum",statics:{fields:{Empty:0,Object:1,DBNull:2,Boolean:3,Char:4,SByte:5,Byte:6,Int16:7,UInt16:8,Int32:9,UInt32:10,Int64:11,UInt64:12,Single:13,Double:14,Decimal:15,DateTime:16,String:18,Dynamic:19,TimeSpan:20}}}),Bridge.define("Kusto.Data.IntelliSense.EntityDataTypeConverter",{statics:{methods:{FromType:function(e){var t={v:Kusto.Data.IntelliSense.EntityDataType.String};return Bridge.global.System.Enum.tryParse(Bridge.global.Kusto.Data.IntelliSense.EntityDataType,e,t)||Bridge.referenceEquals(e,"Guid")&&(t.v=Kusto.Data.IntelliSense.EntityDataType.String),t.v}}}}),Bridge.define("Kusto.Data.IntelliSense.ExpressionEntity",{fields:{Operator:null,Name:null,Arguments:null,IsGenerated:!1},ctors:{init:function(){this.IsGenerated=!1}},methods:{FirstArgument:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.Arguments)?Bridge.global.System.Linq.Enumerable.from(this.Arguments).first():""}}}),Bridge.define("Kusto.Data.IntelliSense.ExpressionEntityParser",{statics:{methods:{ParseEntities:function(e){return Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,e,Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntityExpression)},ParseEntities$1:function(e,t){return Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,e,Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntityExpression,t)},ParseEntitiesList:function(e,t,n,i){void 0===i&&(i=null);var r=new(Bridge.global.System.Collections.Generic.List$1(e).ctor);if(Bridge.global.System.String.isNullOrWhiteSpace(t))return r;for(var o=0,s=Bridge.global.System.String.toCharArray(t,0,t.length),a=0,l={v:0},u=-1,d=0;d=t.length?t.substr(i):t.substr(i,s);var l=o(a=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(a));n.AddRange(l)}},UnescapeEntityName:function(e){return e=e.trim(),e=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedSquareBrackets(e),Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedSingleAndDoubleQuotes(e)},NormalizeEntityName:function(e){if(Bridge.global.System.String.isNullOrEmpty(e))return"";if(!Bridge.global.System.Linq.Enumerable.from(e).contains(46)&&!Bridge.global.System.Linq.Enumerable.from(e).contains(91))return e;for(var t=new Bridge.global.System.Text.StringBuilder,n=Bridge.global.System.String.toCharArray(e,0,e.length),i=0,r=0;r0&&(r<0||i=0&&(t=t.substr(0,s));var a=Kusto.Data.IntelliSense.ExpressionEntityParser.NormalizeEntityName(t.trim());return Bridge.global.System.Array.init([(n=new Kusto.Data.IntelliSense.ExpressionEntity,n.Name=a,n)],Kusto.Data.IntelliSense.ExpressionEntity)}if(0===r){var l=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(t),u=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.System.String,l,e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f1);return Bridge.global.System.Linq.Enumerable.from(u).select(e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f2)}var d=t.substr(0,r).trim(),c=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(t.substr(r)),g=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.System.String,c,e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f1),m=((n=new Kusto.Data.IntelliSense.ExpressionEntity).Operator=d,n);return Bridge.global.System.Linq.Enumerable.from(g).any()&&(m.Name=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(g.getItem(0)),m.Arguments=Bridge.global.System.Linq.Enumerable.from(g).skip(1).ToArray(Bridge.global.System.String)),Bridge.global.System.Array.init([m],Kusto.Data.IntelliSense.ExpressionEntity)},IndexOfClosingBracket:function(e,t,n){for(var i=n;i{0}({1})",this.Name,t)}else this.m_signature=(this.Name||"")+"()";return this.m_signature}},Summary:null,Usage:null,NameSuffix:null,Parameters:null},methods:{GetSignatureWithBoldParameter:function(t){var n,i;if(null!=this.Parameters&&Bridge.global.System.Linq.Enumerable.from(this.Parameters).any())if(Bridge.global.System.Linq.Enumerable.from(this.Parameters).count()>t){var r=Bridge.global.System.Array.init([Bridge.global.System.String.format("{0}",[(n=Bridge.global.System.Linq.Enumerable.from(this.Parameters).ToArray())[Bridge.global.System.Array.index(t,n)].PlainSignature])],Bridge.global.System.String),o=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(this.Parameters).take(t).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2).concat(r).concat(Bridge.global.System.Linq.Enumerable.from(this.Parameters).skip(t+1|0).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2))).join(", ");i=Bridge.global.System.String.format('{0}({1})',this.Name,o)}else{var s=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(this.Parameters).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2)).join(", ");i=Bridge.global.System.String.format('{0}({1})',this.Name,s)}else i=null!=this.NameSuffix?(this.Name||"")+(this.NameSuffix||""):(this.Name||"")+"()";return i},Clone:function(){var t,n=null!=this.Parameters&&Bridge.global.System.Linq.Enumerable.from(this.Parameters).any()?Bridge.global.System.Linq.Enumerable.from(this.Parameters).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f3).ToArray(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter):null;return(t=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name=this.Name,t.NameSuffix=this.NameSuffix,t.Parameters=n,t.Summary=this.Summary,t.Usage=this.Usage,t}}}),Bridge.ns("Kusto.Data.IntelliSense.IntelliSenseCommandTip",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip,{f1:function(e){return e.Singature},f2:function(e){return e.PlainSignature},f3:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter",{props:{Name:null,Description:null,DataType:null,Optional:!1,IsArgsArray:!1,Singature:{get:function(){return this.IsArgsArray?"...":Bridge.global.System.String.format("{0}{1} {2}",this.Optional?"[?] ":"",this.DataType,this.Name)}},PlainSignature:{get:function(){return this.IsArgsArray?"...":Bridge.global.System.String.format('{0}{1} {2}',this.Optional?"[?] ":"",this.DataType,this.Name)}}},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType=this.DataType,e.Description=this.Description,e.IsArgsArray=this.IsArgsArray,e.Name=this.Name,e.Optional=this.Optional,e}}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer",{$kind:"nested class",statics:{fields:{Tracer:null},ctors:{init:function(){this.Tracer=new Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer}}},methods:{TraceVerbose:function(e,t){void 0===t&&(t=[])}}}),Bridge.define("Kusto.Data.IntelliSense.KustoCommandContext",{inherits:function(){return[Bridge.global.System.IEquatable$1(Kusto.Data.IntelliSense.KustoCommandContext)]},statics:{fields:{Empty:null},ctors:{init:function(){this.Empty=new Kusto.Data.IntelliSense.KustoCommandContext("")}}},props:{Context:null,Operation:0},alias:["equalsT","Bridge.global.System$IEquatable$1$Kusto$Data$IntelliSense$KustoCommandContext$equalsT"],ctors:{ctor:function(e,t){void 0===t&&(t=0),this.$initialize(),this.Context=e,this.Operation=t}},methods:{equalsT:function(e){return null!=e&&Bridge.global.System.String.equals(e.Context,this.Context)&&e.Operation===this.Operation},getHashCode:function(){return Bridge.getHashCode(this.Context)^Bridge.getHashCode(this.Operation)},Flatten:function(){return Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.String.split(this.Context,Bridge.global.System.Array.init([44],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1)).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.KustoCommandContext.f1)).ToArray(Kusto.Data.IntelliSense.KustoCommandContext)},IsEmpty:function(){return Bridge.global.System.String.isNullOrEmpty(this.Context)}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoCommandContext",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoCommandContext,{f1:function(e){return new Kusto.Data.IntelliSense.KustoCommandContext(e.trim(),this.Operation)}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseAccountEntity",{props:{Name:null}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity",{props:{ConnectionString:null,Alias:null,Databases:null,Plugins:null},methods:{Clone:function(){var t,n,i;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity).ConnectionString=this.ConnectionString,t.Alias=this.Alias,t.Databases=null!=(n=this.Databases)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity):null,t.Plugins=null!=(i=this.Plugins)?Bridge.global.System.Linq.Enumerable.from(i).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity.f2).ToArray(Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity):null,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity,{f1:function(e){return e.Clone()},f2:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity",{props:{Name:null,TypeCode:0},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity).Name=this.Name,e.TypeCode=this.TypeCode,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity",{props:{Name:null,Alias:null,Tables:null,Functions:null,IsInitialized:!1},methods:{Clone:function(){var t,n,i;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity).Name=this.Name,t.Alias=this.Alias,t.Tables=null!=(n=this.Tables)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity):null,t.Functions=null!=(i=this.Functions)?Bridge.global.System.Linq.Enumerable.from(i).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity.f2).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity):null,t.IsInitialized=this.IsInitialized,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,{f1:function(e){return e.Clone()},f2:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity",{props:{Name:null,CallName:null,Expression:null},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity).Name=this.Name,e.CallName=this.CallName,e.Expression=this.Expression,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity",{props:{Name:null},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity).Name=this.Name,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema",{props:{Cluster:null,Database:null},ctors:{ctor:function(e,t){this.$initialize(),this.Cluster=e,this.Database=t}},methods:{Clone:function(){return new Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema(null!=this.Cluster?this.Cluster.Clone():null,null!=this.Database?this.Database.Clone():null)}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseServiceEntity",{props:{Name:null}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity",{props:{Name:null,IsInvisible:!1,Columns:null},methods:{Clone:function(){var t,n;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity).Name=this.Name,t.Columns=null!=(n=this.Columns)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity):null,t.IsInvisible=this.IsInvisible,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity,{f1:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.OptionKind",{$kind:"enum",statics:{fields:{None:0,Operator:1,Command:2,Service:3,Policy:4,Database:5,Table:6,DataType:7,Literal:8,Parameter:9,IngestionMapping:10,ExpressionFunction:11,Option:12,OptionKind:13,OptionRender:14,Column:15,ColumnString:16,ColumnNumeric:17,ColumnDateTime:18,ColumnTimespan:19,FunctionServerSide:20,FunctionAggregation:21,FunctionFilter:22,FunctionScalar:23,ClientDirective:24}}}),Bridge.define("Kusto.Data.IntelliSense.ParseMode",{$kind:"enum",statics:{fields:{CommandTokensOnly:0,TokenizeAllText:1}}}),Bridge.define("Kusto.Data.IntelliSense.RuleKind",{$kind:"enum",statics:{fields:{None:0,YieldColumnNamesForFilter:1,YieldColumnNamesForProject:2,YieldColumnNamesForProjectAway:3,YieldColumnNamesForProjectRename:4,YieldColumnNamesForJoin:5,YieldKindFlavorsForJoin:6,YieldKindFlavorsForReduceBy:7,YieldColumnNamesForOrdering:8,YieldColumnNamesForTwoParamFunctions:9,YieldColumnNamesForThreeParamFunctions:10,YieldColumnNamesForManyParamFunctions:11,YieldColumnNamesAndFunctionsForExtend:12,YieldColumnNamesForMakeSeries:13,YieldTableNames:14,YieldTableNamesForFindIn:15,YieldRenderOptions:16,YieldRenderKindKeywordOption:17,YieldRenderKindOptions:18,YieldOperatorsAfterPipe:19,YieldStringComparisonOptions:20,YieldNumericComparisonOptions:21,YieldDateTimeOperatorsOptions:22,YieldSummarizeOperatorOptions:23,YieldAscendingDescendingOptions:24,YieldNumericScalarOptions:25,YieldByKeywordOptions:26,YieldWithKeywordOptions:27,YieldStarOption:28,YieldParseTypesKeywordOptions:29,YieldColumnNamesForParse:30,YieldColumnNamesForDiffPatternsPluginSplitParameter:31,YieldParseKeywordKindsOptions:32,YieldRangeFromOptions:33,YieldRangeFromToOptions:34,YieldRangeFromToStepOptions:35,YieldQueryParameters:36,YieldEvaluateOperatorOptions:37,YieldPostJoinOptions:38,YieldPostFindInOptions:39,YieldPostFindOptions:40,YieldTopNestedOfKeywordOption:41,YieldTopNestedOthersOption:42,YieldTopNestedKeywordOption:43,YieldTopHittersKeywordOption:44,YieldTimespanOptions:45,YieldDatabaseNamesOptions:46,YieldClusterNamesOptions:47,YieldDatabaseFunctionOption:48,YieldNullsFirstNullsLastOptions:49,YieldTableNamesForRemoteQueryOptions:50,YieldColumnNamesForRender:51,YieldColumnNamesForFilterInFind:52,YieldColumnNamesForProjectInFind:53,YieldEndOrContinueFindInOptions:54,YieldPostFindInListOptions:55,YieldFindProjectSmartOptions:56,YieldMakeSeriesOperatorOptions:57,YieldMakeSeriesOperatorForDefaultOrOn:58,YieldMakeSeriesOperatorForOn:59,YieldMakeSeriesOperatorForRange:60,YieldMakeSeriesOperatorForBy:61,YieldPostSearchOptions:62,YieldPostSearchKindOptions:63,YieldSearchKindOptions:64,YieldInsideSearchOptions:65,YieldClientDirectivesOptions:66,YieldClientDirective_ConnectOptions:67,Last:68}}}),Bridge.define("Kusto.JavaScript.Client.App",{statics:{methods:{Test:function(){Kusto.UT.IntelliSenseRulesTests.InitializeTestClass();var e=new Kusto.UT.IntelliSenseRulesTests;e.IntelliSenseCommandEntitiesTest(),e.IntelliSenseCommandEntitiesForTablesTest(),e.IntelliSenseCommandEntitiesUsingFunctionsTest(),e.IntelliSenseCommandEntities_FindTest(),e.IntelliSenseCommandEntities_SearchTest(),e.IntelliSenseExtendTest(),e.IntelliSenseFilterTest(),e.IntelliSenseGetCommandContextTest(),e.IntelliSenseJoinTest(),e.IntelliSenseLimitTest(),e.IntelliSenseParseOperator(),e.IntelliSenseProjectAwayTest(),e.IntelliSenseProjectRenameTest(),e.IntelliSenseProjectTest(),e.IntelliSenseQueryParametersTest(),e.IntelliSenseRangeTest(),e.IntelliSenseReduceTest(),e.IntelliSenseRenderTest(),e.IntelliSenseSummarizeTest(),e.IntelliSenseTopTest(),e.IntelliSenseTopNestedTest(),e.IntelliSenseToScalarTest(),e.IntelliSenseTimeKeywordsTest(),e.IntelliSenseEvaluateTest(),e.IntelliSenseClusterTest(),e.IntelliSenseDatabaseTest(),e.IntelliSenseFindTest(),e.IntelliSenseSearchTest(),e.IntelliSenseSampleTest(),e.IntelliSenseSampleDistinctTest(),e.IntelliSenseMakeSeriesTest();var t=new Kusto.UT.IntelliSenseCslCommandParserTests;t.InitializeTestClass(),t.TestCslCommandParserEntities(),Bridge.global.alert("Success")}}}}),Bridge.define("Kusto.UT.AssertStub",{methods:{AreEqual:function(e,t){var n,i;if(!Bridge.referenceEquals(e,t))throw new Bridge.global.System.Exception(Bridge.global.System.String.format("Values do not match: expected='{0}', actual='{1}'",null!=(n=e)?n:"null",null!=(i=t)?i:"null"))},AreEqual$1:function(e,t,n){var i,r;if(!Bridge.referenceEquals(e,t))throw new Bridge.global.System.Exception(Bridge.global.System.String.format("Values do not match: expected='{0}', actual='{1}'\n{2}",null!=(i=e)?i:"null",null!=(r=t)?r:"null",n))},Fail:function(e){throw new Bridge.global.System.Exception(e)},IsTrue:function(e,t){if(!e)throw new Bridge.global.System.Exception(t)}}}),Bridge.define("Kusto.UT.IntelliSenseCslCommandParserTests",{fields:{Assert:null,m_intelliSenseProvider:null},ctors:{init:function(){this.Assert=new Kusto.UT.AssertStub}},methods:{InitializeTestClass:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),t=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),n=Kusto.UT.IntelliSenseRulesTests.GenerateKustoEntities(e,t),i=new Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema(n,Bridge.global.System.Linq.Enumerable.from(n.Databases).first());this.m_intelliSenseProvider=new Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.$ctor1(n,i,e,t,void 0,!0,!0)},TestClsCommandsPerttifier:function(){var e,t=Bridge.global.System.Array.init([{Item1:'let ErrorCounts = (message:string) {\r\nErrorCountsByBin(message, 1d)\r\n};\r\nErrorCounts("Can not perform requested operation on nested resource. Parent resource") | extend error = "parent not found"',Item2:'let ErrorCounts = (message:string)\r\n{\r\n ErrorCountsByBin(message, 1d)\r\n};\r\nErrorCounts("Can not perform requested operation on nested resource. Parent resource")\r\n| extend error = "parent not found"'},{Item1:"Table\r\n//| project ProjectKind, UserId, ProjectType\r\n//| join (activeTable) on UserId\r\n//| summarize dcount(UserId) by ProjectType\r\n//| sort by dcount_UserId asc\r\n| count",Item2:"Table\r\n//| project ProjectKind, UserId, ProjectType\r\n//| join (activeTable) on UserId\r\n//| summarize dcount(UserId) by ProjectType\r\n//| sort by dcount_UserId asc\r\n| count"},{Item1:"Table\r\n| join (Table) on Key",Item2:"Table\r\n| join\r\n(\r\n Table\r\n)\r\non Key"},{Item1:'PerRequestTable | where MSODS contains "}" | take 1',Item2:'PerRequestTable\r\n| where MSODS contains "}"\r\n| take 1'},{Item1:"let variable=1;Table | count",Item2:"let variable=1;\r\nTable\r\n| count"},{Item1:"// comment\r\nKustoLogs | where Timestamp > ago(1d) and EventText contains \"[0]Kusto.DataNode.Exceptions.SemanticErrorException: Semantic error: Query 'Temp_MonRgLoad | project TIMESTAMP | consume' has the following semantic error: \" | summarize cnt() by Source",Item2:"// comment\r\nKustoLogs\r\n| where Timestamp > ago(1d) and EventText contains \"[0]Kusto.DataNode.Exceptions.SemanticErrorException: Semantic error: Query 'Temp_MonRgLoad | project TIMESTAMP | consume' has the following semantic error: \"\r\n| summarize cnt() by Source"},{Item1:"Table | join (Table | project x ) on x | count",Item2:"Table\r\n| join\r\n(\r\n Table\r\n | project x\r\n)\r\non x\r\n| count"},{Item1:"Table | join kind=inner (Table | project x ) on x | count",Item2:"Table\r\n| join kind=inner\r\n(\r\n Table\r\n | project x\r\n)\r\non x\r\n| count"},{Item1:"let foo = (i: long) { range x from 1 to 1 step 1 }; foo()",Item2:"let foo = (i: long)\r\n{\r\n range x from 1 to 1 step 1\r\n};\r\nfoo()"},{Item1:"let foo = (i: long) {range x from 1 to 1 step 1 | count }; foo()",Item2:"let foo = (i: long)\r\n{\r\n range x from 1 to 1 step 1\r\n | count\r\n};\r\nfoo()"},{Item1:'.alter function with (docstring = @\'List of UserIds that are WebSites only\', folder =@\'Filters\') UsersWithWebSiteAppsOnly() { DimAppUsage() | join kind=leftouter DimApplications() on ApplicationId | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto") | summarize by UserId = UserId }',Item2:'.alter function with (docstring = @\'List of UserIds that are WebSites only\', folder =@\'Filters\') UsersWithWebSiteAppsOnly()\r\n{\r\n DimAppUsage()\r\n | join kind=leftouter\r\n DimApplications()\r\n on ApplicationId\r\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\r\n | summarize by UserId = UserId\r\n}'},{Item1:'.alter function with (docstring = @\'List of UserIds that are WebSites only\', folder =@\'Filters\') UsersWithWebSiteAppsOnly()\r\n{\r\n DimAppUsage()\r\n | join kind=leftouter DimApplications() on ApplicationId\r\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\r\n | summarize by UserId = UserId\r\n}',Item2:'.alter function with (docstring = @\'List of UserIds that are WebSites only\', folder =@\'Filters\') UsersWithWebSiteAppsOnly()\r\n{\r\n DimAppUsage()\r\n | join kind=leftouter\r\n DimApplications()\r\n on ApplicationId\r\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\r\n | summarize by UserId = UserId\r\n}'},{Item1:"KustoLogs | where Timestamp > ago(6d) | where ClientActivityId=='KE.RunQuery;e0944367-3fd6-4f83-b2e9-ff0724d55053'",Item2:"KustoLogs\r\n| where Timestamp > ago(6d)\r\n| where ClientActivityId=='KE.RunQuery;e0944367-3fd6-4f83-b2e9-ff0724d55053'"},{Item1:"KustoLogs | make-series dusers=dcount(RequestSource) default=0 on Timestamp in range(ago(6d), now(), 1d) by userid | where stat(dusers).max>1000",Item2:"KustoLogs\r\n| make-series dusers=dcount(RequestSource) default=0 on Timestamp in range(ago(6d), now(), 1d) by userid\r\n| where stat(dusers).max>1000"}],Bridge.global.System.Object);e=Bridge.getEnumerator(t);try{for(;e.moveNext();){var n=e.Current,i=n.Item1;i=Bridge.global.System.String.replaceAll(i,"\n","");var r=Kusto.Data.Common.CslQueryParser.PrettifyQuery(i,""),o=n.Item2;o=Bridge.global.System.String.replaceAll(o,"\r",""),this.Assert.AreEqual(o,r)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}},TestCslCommandParserEntities:function(){var e=new Kusto.Data.IntelliSense.CslCommandParser;this.ValidateTokens(e,"Table1 \r\n | parse Field1 with * Column1:string * Column2:int\r\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken,Bridge.global.System.Array.init(["Column1","Column2"],Bridge.global.System.String)),this.ValidateTokens(e,"let s = now();\r\n Table1 \r\n | extend x = Field1 \r\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken,Bridge.global.System.Array.init(["Field1"],Bridge.global.System.String)),this.ValidateTokens(e,"Table1 \r\n | extend x = Field1 \r\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken,Bridge.global.System.Array.init(["Field1"],Bridge.global.System.String))},ValidateTokens:function(t,n,i,r){var o=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,n,Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).toList(Bridge.global.Kusto.Data.IntelliSense.CslCommand),s=Bridge.global.System.Linq.Enumerable.from(o).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(function(e){return e.TokenKind===i}).select(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f2).toList(Bridge.global.System.String);Kusto.UT.IntelliSenseRulesTests.ValidateEntities(n,r,s)},TestCslCommandParserReuse:function(){var e,t=new Kusto.Data.IntelliSense.CslCommandParser;e=Bridge.getEnumerator(Bridge.global.System.Array.init(["let s = 1;\r\n let r = range x from s to 1 step 1;\r\n r | ","Table1 | where Field1 == 'rrr' "],Bridge.global.System.String));try{for(;e.moveNext();){var n=e.Current;this.ValidateParserReuse(t,n)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}},ValidateParserReuse:function(t,n){var i=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,n,Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken),r=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,(n||"")+" ",Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken);this.ComapreParseResultTokens(i,Bridge.global.System.Linq.Enumerable.from(r).ToArray(),0,!1);var o=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,"// comment\n"+(n||""),Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken);this.Assert.AreEqual(Bridge.box(i.length,Bridge.global.System.Int32),Bridge.box(o.length-1|0,Bridge.global.System.Int32));for(var s=0;s",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 < ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 == ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 != ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 >= ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 <= ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where Field1 == 'ff' and DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where Field1 == 'ff' or DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("aago(",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("ago(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("ago( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(" ago(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("nnow(",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("now(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("now( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(" now( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseEvaluateTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | evaluate ",Kusto.Data.IntelliSense.RuleKind.YieldEvaluateOperatorOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('Table1 | evaluate diffpatterns("split= ',Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForDiffPatternsPluginSplitParameter)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('Table1 | evaluate diffpatterns("bsplit= ',Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | extend split=",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesAndFunctionsForExtend)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseExportCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandNoModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export to",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed to",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSensePurgeCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSensePurgeCleanupCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseCreateRowstoreAdminCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldRowStoreCreatePersistencyOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName volatile",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog (h@'', h@'')",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseSearchTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind= ",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind = ",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_insensitive ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('search "ff" or',Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('search "ff" or ',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('search "ff" and ',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('search in (Table1) "ff" and ',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, ['Table.2']) \"ff\" or ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2('search kind=case_sensitive "ff" and ',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive in (Table1) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, ['Table.2'])",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, ['Table.2']) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, database('*').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, database('*').*) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseFindTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource = SourceTable ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, Table2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, Table2, ",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2, ",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2'] ",Kusto.Data.IntelliSense.RuleKind.YieldEndOrContinueFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2 ",Kusto.Data.IntelliSense.RuleKind.YieldEndOrContinueFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2'])",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, database('*').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, database('*').*) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, database('*').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, database('*').*) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field1 == 'abc' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field1 == 'abc' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database('*').*) where * has 'abc' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database('*').*) where * has 'abc' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database('*').*) where 'abc' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database('*').*) where 'abc' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field1 == 'abc' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field1 == 'abc' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field3 == 'abc' project",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field3 == 'abc' project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field0 == 'abc' and DateTimeField1 > ago(1h) project",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field0 == 'abc' and DateTimeField1 > ago(1h) project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field0 == 'abc' project DateTimeField1",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field0 == 'abc' and DateTimeField1 > ago(1h) project NumField1",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project NumField2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project NumField2, ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field3 == 'abc' and DateTimeField0 > ago(1h) project Field0,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, ['Table.2']) where Field3 == 'abc' and DateTimeField0 > ago(1h) project Field0, ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project-smart",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project-smart ",Kusto.Data.IntelliSense.RuleKind.YieldFindProjectSmartOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project NumField2 | where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project NumField2 | where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilter)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, ['Table.2']) where Field8 == 'abc' project NumField2 | project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProject)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseGetCommandContextTest:function(){var t,n,i=e.$.Kusto.UT.IntelliSenseRulesTests.f3(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)));t=Bridge.getEnumerator(Bridge.global.System.Array.init([!1,!0],Bridge.global.System.Boolean));try{for(;t.moveNext();){t.Current,n=Bridge.getEnumerator(i);try{for(;n.moveNext();){var r=n.Current,o=r.key;o=Bridge.global.System.String.replaceAll(Bridge.global.System.String.replaceAll(o,String.fromCharCode(10),String.fromCharCode(32)),String.fromCharCode(13),String.fromCharCode(32));var s=Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider.AnalyzeCommand$1(o,null).Context;Kusto.UT.IntelliSenseRulesTests.Assert.AreEqual$1(r.value,s.Context,Kusto.Cloud.Platform.Utils.ExtendedString.FormatWithInvariantCulture("Command context was not resolved correctly for command '{0}'",[o]))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}}}}),Bridge.ns("Kusto.UT.IntelliSenseRulesTests",e.$),Bridge.apply(e.$.Kusto.UT.IntelliSenseRulesTests,{f1:function(e){return e.Name},f2:function(e){return(e.Operator||"")+":"+(e.Name||"")},f3:function(e){return e.add("database('","database('"),e.add("database('someDB')","database('someDB')"),e.add("database('someDB').","database('someDB')."),e.add("database('someDB').Table","database('someDB').Table"),e.add("database('someDB with space')","database('someDB with space')"),e.add("database('someDB with space').","database('someDB with space')."),e.add("database('someDB with space').Table","database('someDB with space').Table"),e.add('database("someDB with space")','database("someDB with space")'),e.add('database("someDB with space").','database("someDB with space").'),e.add('database("someDB with space").Table','database("someDB with space").Table'),e.add("cluster('abc').database('","cluster('abc').database('"),e.add("cluster('abc').database('someDB')","cluster('abc').database('someDB')"),e.add("cluster('abc').database('someDB').","cluster('abc').database('someDB')."),e.add("cluster('abc').database('someDB').Table","cluster('abc').database('someDB').Table"),e.add("cluster('https://abc.kusto.windows.net').database('","cluster('https://abc.kusto.windows.net').database('"),e.add("cluster('https://abc.kusto.windows.net').database('someDB')","cluster('https://abc.kusto.windows.net').database('someDB')"),e.add("cluster('https://abc.kusto.windows.net').database('someDB').","cluster('https://abc.kusto.windows.net').database('someDB')."),e.add("cluster('https://abc.kusto.windows.net').database('someDB').Table","cluster('https://abc.kusto.windows.net').database('someDB').Table"),e.add('cluster("https://abc.kusto.windows.net").database(\'','cluster("https://abc.kusto.windows.net").database(\''),e.add("cluster(\"https://abc.kusto.windows.net\").database('someDB')","cluster(\"https://abc.kusto.windows.net\").database('someDB')"),e.add("cluster(\"https://abc.kusto.windows.net\").database('someDB').","cluster(\"https://abc.kusto.windows.net\").database('someDB')."),e.add("cluster(\"https://abc.kusto.windows.net\").database('someDB').Table","cluster(\"https://abc.kusto.windows.net\").database('someDB').Table"),e.add("let x = toscalar(Table1 | ","Table1"),e.add("range x from toscalar(Table1 | count) to toscalar(Table2 | ","Table2"),e.add("set querytrace;\r\n Table2 | ","Table2"),e.add('union\r\n(Table1 | where body has keyword and body has "Google" | summarize posts=dcount(link_id) | extend context = "Google"),\r\n(Table2 | where ',"Table2"),e.add("union (Table1), (Table2 ","Table2"),e.add("union\n (Table ","Table"),e.add("union (Table ","Table"),e.add("let x = () {request};\n let y = x;\n y ","request"),e.add("let x = request;\n x ","request"),e.add("let x = request | count;\n x ","request"),e.add("let x = request;\n x | count ","request"),e.add("let x = request;\n let y = x;\n y ","request"),e.add("let x = () {request | limit 100};\n let y = x;\n y ","request"),e.add(".show database XYZ ",".show database XYZ"),e.add("Table1 | count","Table1"),e.add("Table1 | join (Table2 | ","Table2"),e.add("let x = 1;\n Table2 | ","Table2"),e.add("range xyz from 1 to 1 step 1| ","range"),e.add("let x = () { request | where ","request"),e.add("let x = request | where ","request"),e.add("cluster('lxprdscu02').database('Analytics Billing').ApplicationHourlyEntryCount\r\n| where StartTime >= ago(rangeInDaysForBililngData)\r\n| where DataSource == 'AI'\r\n| where Database in (longtailDatabases)\r\n| summarize totalGB=1.0*sum(SizeInBytes)/1024/1024/1024 by bin(StartTime, 1d), ApplicationName , InstrumentationKey , ClusterName, DatabasePrettyName, Database, ProfileId\r\n| top-nested of ClusterName by count(), top-nested of DatabasePrettyName by count(), top-nested of Database by count(),top-nested topAppCountByData of ProfileId by avg_totalGB = avg(totalGB) desc, top-nested of ApplicationName by count(), top-nested of InstrumentationKey by count()\r\n| project ClusterName, DatabasePrettyName , Database, ProfileId , ApplicationName ,InstrumentationKey, avg_totalGB\r\n| order by ClusterName , avg_totalGB desc ","cluster('lxprdscu02').database('Analytics Billing').ApplicationHourlyEntryCount"),e.add("database('Analytics Billing').ApplicationHourlyEntryCount\r\n| where StartTime >= ago(rangeInDaysForBililngData)\r\n| where DataSource == 'AI'\r\n| where Database in (longtailDatabases)\r\n| summarize totalGB=1.0*sum(SizeInBytes)/1024/1024/1024 by bin(StartTime, 1d), ApplicationName , InstrumentationKey , ClusterName, DatabasePrettyName, Database, ProfileId\r\n| top-nested of ClusterName by count(), top-nested of DatabasePrettyName by count(), top-nested of Database by count(),top-nested topAppCountByData of ProfileId by avg_totalGB = avg(totalGB) desc, top-nested of ApplicationName by count(), top-nested of InstrumentationKey by count()\r\n| project ClusterName, DatabasePrettyName , Database, ProfileId , ApplicationName ,InstrumentationKey, avg_totalGB\r\n| order by ClusterName , avg_totalGB desc ","database('Analytics Billing').ApplicationHourlyEntryCount"),e.add("find 'abc'","*"),e.add("find in (database('*').*) 'abc'","database('*').*"),e.add("find in (database(\"*\").*) 'abc'",'database("*").*'),e.add("find in (Table) where","Table"),e.add("find in (['Table']) where","['Table']"),e.add("find in (database('Office*').*, T*, cluster('somecluster').database('x').T*) 'abc'","database('Office*').*, T*, cluster('somecluster').database('x').T*"),e.add("find withsource=X 'abc'","*"),e.add("find withsource=X in (database('*').*) 'abc'","database('*').*"),e.add("find withsource=X in (database(\"*\").*) 'abc'",'database("*").*'),e.add("find withsource=X in (Table) where","Table"),e.add("find withsource=X in (['Table']) where","['Table']"),e.add("find withsource=X in (database('Office*').*, T*, cluster('somecluster').database('x').T*) 'abc'","database('Office*').*, T*, cluster('somecluster').database('x').T*"),e.add("search 'abc'","*"),e.add("Table1 | search 'abc'","Table1"),e.add("search in (database('*').*) 'abc'","database('*').*"),e.add("search in (database(\"*\").*) 'abc'",'database("*").*'),e.add("search in (Table) where","Table"),e.add("search in (Table1, Table2) where","Table1, Table2"),e.add("search in (['Table']) where","['Table']"),e.add("search in (database('Office*').*, T*, cluster('somecluster').database('x').T*) 'abc'","database('Office*').*, T*, cluster('somecluster').database('x').T*"),e}}),Bridge.define("Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern",{$kind:"nested class",props:{Input:null,ExpectedMatch:!1,ExpectedRuleKind:0},ctors:{ctor:function(e){this.$initialize(),this.Input=e,this.ExpectedRuleKind=Kusto.Data.IntelliSense.RuleKind.None,this.ExpectedMatch=!1},$ctor2:function(e,t){this.$initialize(),this.Input=e,this.ExpectedRuleKind=t,this.ExpectedMatch=t!==Kusto.Data.IntelliSense.RuleKind.None},$ctor1:function(e,t){this.$initialize(),this.Input=e,this.ExpectedRuleKind=t,this.ExpectedMatch=t!==Kusto.Data.IntelliSense.AdminEngineRuleKind.None}}}),Bridge.define("Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],props:{MatchingRegex:null,AdditionalOptions:null,ContextualOptions:null,OverrideOptions:null,OptionsKind:0,RequiresFullCommand:{get:function(){return!0}},IsContextual:{get:function(){return!0}}},methods:{IsMatch:function(e,t){return this.MatchingRegex.isMatch(t)},GetOptions:function(t){if(null==this.AdditionalOptions||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions))return this.GetContextOptions(t);var n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).$ctor1)(this.GetContextOptions(t));return Bridge.global.System.Linq.Enumerable.from(n).union(Bridge.global.System.Linq.Enumerable.from(this.AdditionalOptions).selectMany(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f1))},GetContextOptions:function(e){if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)),this.OverrideOptions)&&this.OverrideOptions.containsKey(e))return this.OverrideOptions.get(e);var t=new Kusto.Data.IntelliSense.KustoCommandContext(e.Context);return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)),this.ContextualOptions)&&this.ContextualOptions.containsKey(t)?this.ContextualOptions.get(t):Bridge.global.System.Array.init([],Bridge.global.System.String)},GetCompletionOptions:function(t){if(null==this.AdditionalOptions||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions))return Bridge.global.System.Linq.Enumerable.from(this.GetContextOptions(t)).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f2)).ToArray(Kusto.Data.IntelliSense.CompletionOption);var n=new Kusto.Data.IntelliSense.CompletionOptionCollection(this.OptionsKind,this.GetContextOptions(t));return Bridge.global.System.Linq.Enumerable.from(function(e){return e.add(n),e}(new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CompletionOptionCollection).ctor))).concat(this.AdditionalOptions).orderByDescending(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f3).selectMany(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f4)}}}),Bridge.ns("Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule,{f1:function(e){return e.Values},f2:function(e){return new Kusto.Data.IntelliSense.CompletionOption(this.OptionsKind,e)},f3:function(e){return e.Priority},f4:function(e){return e.GetCompletionOptions()}}),Bridge.define("Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],statics:{methods:{GetHashStringForContextAndToken:function(e,t){return(e||"")+";"+(t||"")}}},props:{MatchingRegex:null,MatchingTokens:null,GroupNameToUseAfterMatch:null,Options:null,RequiresFullCommand:{get:function(){return!0}},IsContextual:{get:function(){return!0}}},methods:{IsMatch:function(e,t){if(null==this.MatchingTokens||!Bridge.global.System.Linq.Enumerable.from(this.MatchingTokens).any()||Bridge.global.System.String.isNullOrEmpty(this.GroupNameToUseAfterMatch))return!1;var n=this.MatchingRegex.match(t);if(!n.getSuccess()||n.getGroups().getCount()<1)return!1;var i=Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.Context,n.getGroups().getByName(this.GroupNameToUseAfterMatch).toString());return this.MatchingTokens.contains(i)},GetOptions:function(e){return this.Options.Values},GetCompletionOptions:function(e){return this.Options.GetCompletionOptions()}}}),Bridge.define("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase],statics:{fields:{s_afterPipeRegex:null,s_renderRegex:null,s_renderMultiChartsRegex:null,s_renderKindOptionsRegex:null,s_evaluateRegex:null,s_makeSeriesRequestingAggregatorsRegex:null,s_makeSeriesBeforeDefaultOrOnRegex:null,s_makeSeriesBeforeOnRegex:null,s_makeSeriesBeforeRangeRegex:null,s_makeSeriesBeforeByRegex:null,s_joinRegex:null,s_diffPatternsPluginSplitParameterRegex:null,s_startOfLineWithSpaceOrAfterJoinRegex:null,s_startOfCommandWithClusterRegex:null,s_tablesScopeRegex:null,s_startOfCommandWithDatabaseRegex:null,s_clusterFunctionRegex:null,s_databaseFunctionInFindRegex:null,s_databaseFunctionRegex:null,s_operatorContextForFilterColumnRegex:null,s_operatorContextForProject:null,s_operatorContextForProjectAway:null,s_operatorContextForProjectRename:null,s_operatorContextForFilterColumnInFindRegex:null,s_operatorContextForFindProject:null,s_singleParamFunctions:null,s_singleParamFunctionsColumnContextRegex:null,s_twoParamFunctions:null,s_twoParamFunctionsColumnContextRegex:null,s_threeParamFunctions:null,s_threeParamFunctionsColumnContextRegex:null,s_manyParamFunctions:null,s_manyParamFunctionsColumnContextRegex:null,s_operatorContextForExtend_ColumnAndFunctionRegex:null,s_entitiesForJoin_ColumnsRegex:null,s_joinFlavorsForJoin_Regex:null,s_parseKindChoose_Regex:null,s_parseWith_Regex:null,s_parseTypesSuggest_Regex:null,s_parseStarOption_Regex:null,m_commandsRequestingAggregators:null,s_lineWithDotBeginningRegex:null,s_topOrLimitOrTakeOrSampleRegex:null,s_agoContextRegex:null,s_nowContextRegex:null,s_operatorContextForTopNestedAndTopHitters:null,s_operatorContextForSampleDistinct:null,s_topNestedKeywordPrefixRegex:null,s_topNestedWithOthersOption:null,s_topHittersKeywordPrefixRegex:null,s_yieldByKeywordRegex:null,s_parseColumnContextRegex:null,s_renderTimePivotColumnContextRegex:null,s_topSortOrderReduceByRegex:null,s_topTopNestedSortOrderByAscDescRegex:null,s_findContextRegex:null,s_findInRegex:null,s_findInStartOrContinueListRegex:null,s_FindInEndOrContinueListRegex:null,s_findWhereRegex:null,s_findProjectSmartRegex:null,s_reduceByColumnContextRegex:null,s_topNestedSuggestingColumnsRegex:null,s_topHittersSuggestingColumnsRegex:null,s_sampleDistinctSuggestingColumnsRegex:null,s_topOrOrderAscendingDescendingRegex:null,s_topNestedAscendingDescendingRegex:null,s_rangeFromRegex:null,s_rangeFromToRegex:null,s_rangeFromToStepRegex:null,s_filteredColumnString:null,s_filteredColumnRegex:null,s_filterPredicateRightValueRegex:null,s_makeSeriesByRegex:null,s_searchPrefixRegex:null,s_searchContextRegex:null,s_searchKindRegex:null,s_searchAfterKindContextRegex:null,s_searchMoreContextRegex:null,s_searchKind_Regex:null,s_clientDirective_Regex:null,s_clientDirectiveConnect_Regex:null,s_operatorOptions:null,s_renderOptions:null,s_renderKindOptions:null,s_aggregateOperationOptions:null,s_makeSeriesAggregateOperationOptions:null,s_extendOperationOptions:null,s_databaseFunctionOptions:null,s_stringOperatorOptions:null,s_numericOperatorOptions:null,s_numericScalarsOptions:null,s_byKeywordOptions:null,s_kindChooseKeywordOptions:null,s_withOthersKeywordOptions:null,s_ofKeywordOptions:null,s_withKeywordOptions:null,s_parseSuggestedTypesKeywordOptions:null,s_parseStarOption:null,s_ascDescKeywordOptions:null,s_nullsLastFirstKeywordOptions:null,s_ascDescOrNullsLastNullsFirstKeywordOptions:null,s_rangeFromOptions:null,s_rangeFromToOptions:null,s_rangeFromToStepOptions:null,s_joinFlavorsOptions:null,s_postJoinOptions:null,s_kindKeywordOptions:null,s_searchInKeywordOptions:null,s_searchLiteralsOptions:null,s_reduceByFlavorsOptions:null,s_datetimeOptions:null,s_timespanOptions:null,s_negativeTimespanOptions:null,s_postFindInOptions:null,s_findInEndOrContinueOptions:null,s_findWhereInOptions:null,s_findInPostListOptions:null,s_makeSeriesDefaultOrOnOptions:null,s_makeSeriesOnOptions:null,s_makeSeriesInRangeOptions:null,s_searchKindOptions:null,s_clientDirectivesOptions:null,MultiColumnFunctionResultSuffixes:null,s_afterFunctionsApplyPolicies:null,s_filterKeywords:null,s_projectKeywords:null,s_projectAwayKeywords:null,s_projectRenameKeywords:null,s_projectExtendKeywords:null,s_joinKeywords:null,s_topSortOrderReduceKeywords:null,s_operatorsUsingByKeywordKeywords:null,s_topSortOrderKeywords:null,s_topTopNestedSortOrderKeywords:null,s_reduceKeywords:null,s_parseKeywords:null,s_renderKeywords:null,s_topLimitTakeSampleKeywords:null,s_evaluateKeywords:null,s_summarizeKeywords:null,s_distinctKeywords:null,s_topNestedKeywords:null,s_topHittersKeywords:null,s_sampleDistinctKeywords:null,s_operatorsRequestingAggregators:null,s_databaseKeywords:null,s_findKeywords:null,s_searchKeywords:null,s_makeSeriesKeywords:null,s_remoteContextRegex:null,s_queryParametersRegex:null,s_joinClosureRegex:null,s_joinWithMakeSeriesClosureRegex:null,s_makeSeriesStartRegex:null,s_findSubClausesRegex:null,s_searchSubClausesRegex:null,s_rangeEntitiesRegex:null,s_parsedEntitiesRegex:null,s_removeStringLiteralsRegex:null,s_removeStringLiteralsSurroundedBySpacesRegex:null,s_removeCommentsRegex:null,s_fieldInvalidCharacters:null,s_fieldQuotableCharacters:null,s_aggregateOperatorToColumnPrefixMapping:null,s_lastCommandSegmentRegex:null,s_incompleteJoinRegex:null,s_commandClausesRegex:null,s_operatorsReplacingEntities:null,s_withsourceExtractRegex:null,s_findProjectionRegex:null,s_packRgx:null,s_topNestedLevelExtractRegex:null,s_sampleDistinctEntityExtractRegex:null,s_aggregateOperatorsHash:null,s_byKeywordRegex:null,s_byAndOnKeywordRegex:null,s_makeSeriesDropNonFieldsRegex:null,s_fieldMatchingRegex:null,s_numericSuffixRegex:null,s_defaultContextPattern:null,s_commandContext_Join:null,s_commandContext_Union:null,s_commandContext_ToScalar:null,s_commandContext_Show:null,s_commandContext_Range:null,s_commandContext_Callable:null,s_commandContext_Let:null,s_commandContext_ConnectDirective:null,s_commandContext_Find:null,s_commandContext_Search:null,s_commandDefaultContext:null,s_twoOrMoreSpacesRegex:null,s_showCommandFixRegex:null,s_commandContextRegexes:null,s_nonDefaultContextKeywordsRegex:null,s_letVariableRegex:null,s_letStatementRegexList:null},props:{Operators:{get:function(){return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_operatorOptions}}},ctors:{init:function(){this.s_afterPipeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\|\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)render\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderMultiChartsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)render\\s+(areachart|barchart|columnchart)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderKindOptionsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)render\\s+(areachart|barchart|columnchart)\\s+kind\\s*=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_evaluateRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)evaluate\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesRequestingAggregatorsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)make-series\\s+(\\w+\\s*?=\\s*?)?$|(^|\\|\\s*?)make-series\\s+(?!.*\\b(by|on|range|in)\\b).*?,\\s+(\\w+\\s*?=\\s*?)?$|(^|\\|\\s*?)make-series\\s+(?!.*\\b(by|on|range|in)\\b).*[+*/\\-]\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeDefaultOrOnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)make-series(?!.*\\b(by|on|range|in).*)(.*\\))\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeOnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)make-series\\s+(?!.*\\b(range|on).*)(.*\\bdefault\\b\\s*\\=\\s*\\w+)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeRangeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)make-series(?!.*\\b(range).*)(.*\\bon\\b\\s+.*)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)make-series(?!.*\\b(by).*)(.*\\bin\\s+range\\b\\s*\\(.*,.*,.*\\))\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)join\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_diffPatternsPluginSplitParameterRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor('diffpatterns\\("split=\\s*$',Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_startOfLineWithSpaceOrAfterJoinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*$|join\\s+.*?\\(\\s+$|^\\s*let\\s+\\w+\\s*=\\s+$|toscalar\\(\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_startOfCommandWithClusterRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*|join\\s+.*?\\(\\s+|^\\s*let\\s+\\w+\\s*=\\s+|toscalar\\(\\s*|;\\s+)cluster\\($",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_tablesScopeRegex="(((cluster\\([^\\)]+\\)\\.)?(database\\([^\\)]+\\)\\.)?(\\[.+?\\]|[\\w\\d\\*]+),\\s*)*((cluster\\([^\\)]+\\)\\.)?(database\\([^\\)]+\\)\\.)?(\\[.+?\\]|[\\w\\d\\*]+)))",this.s_startOfCommandWithDatabaseRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*|join\\s+.*?\\(\\s+|find\\s+in\\s*\\(|find\\s+in\\s*\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+",\\s*|^\\s*let\\s+\\w+\\s*=\\s+|toscalar\\(\\s*|;\\s+|cluster\\([^\\)]+?\\)\\.)database\\($",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clusterFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("cluster\\([^\\)]+\\)\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databaseFunctionInFindRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("find\\s+in\\s*\\([^\\|]*database\\([^\\)]+\\)\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databaseFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("database\\([^\\)]+\\)\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFilterColumnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(filter|where)\\s+$|(^|\\|\\s*?)(filter|where)\\s+[^\\|]+(and|or)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProject=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)project\\s+$|(^|\\|\\s*?)project\\s+[^\\|]*,\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProjectAway=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)project-away\\s+$|(^|\\|\\s*?)project-away\\s+[^\\|]*,\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProjectRename=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)project-rename\\s+[^\\|]*?\\=\\s*$|(^|\\|\\s*?)project-rename\\s+[^\\|]*,\\s+[^\\|]*?\\=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFilterColumnInFindRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+[^\\|]*where\\s+$|(^|\\s*)find\\s+[^\\|]+(and|or)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFindProject=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+[^\\|]+project\\s+$|(^|\\s*)find\\s+[^\\|]+project\\s+[^\\|]*,\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_singleParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationSingleParameterTokens)).join("\\(|"),this.s_singleParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\b("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_singleParamFunctions||"")+"\\()\\s*$|(^|\\|\\s*?)summarize\\s+[^\\|]*?by\\s+$|(^|\\|\\s*?)summarize\\s+[^\\|]*\\)\\s*,\\s+$|(^|\\|\\s*?)summarize\\s+[^\\|]*?by\\s+(?!bin)[^\\|]+,\\s+$|(^|\\|\\s*?)distinct\\s+([^\\|]+,\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_twoParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTwoParametersTokens)).join("\\(|"),this.s_twoParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_twoParamFunctions||"")+"\\()\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_threeParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationThreeParametersTokens)).join("\\(|"),this.s_threeParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_threeParamFunctions||"")+"\\()\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_manyParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationManyParametersTokens)).join("(\\(|[^\\)]+,)|"),this.s_manyParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_manyParamFunctions||"")+"\\()\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForExtend_ColumnAndFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)extend\\s+[^\\|]*?[\\=\\-\\+\\/\\*]\\s*$|(^|\\|\\s*?)project\\s+[^\\|]*?\\=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_entitiesForJoin_ColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)join\\s+.*\\(.+\\)\\s+on\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinFlavorsForJoin_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)join\\s+kind\\s*=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseKindChoose_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)parse\\s+kind\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseWith_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor('(^|\\|\\s*?)parse\\s*(kind\\s*=\\s*\\w+(\\s*flags\\s*=\\s*\\w+)?\\s*)?\\s*(\\w+|".*?")\\s*$',Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseTypesSuggest_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)parse\\s+.*\\swith\\s+.*\\s*:\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseStarOption_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)parse(.+?)with(.+?[^\\*\\s])?\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.m_commandsRequestingAggregators=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)summarize\\s+(\\w+\\s*?=\\s*?)?$|(^|\\|\\s*?)summarize\\s+(?!.*\\bby\\b).*,\\s+(\\w+\\s*?=\\s*?)?$|(^|\\|\\s*?)summarize\\s+(?!.*\\bby\\b).*[+*/\\-]\\s*$|(^|\\|\\s*?).*top-(nested|hitters).*\\s+by\\s+(\\w+\\s*?=\\s*\\s*?)?$|(^|\\|\\s*?).*top-(nested|hitters).*\\s+by\\s+.*?[+*/\\-]\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_lineWithDotBeginningRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topOrLimitOrTakeOrSampleRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(top|.*top-hitters|limit|take|.*top-nested|sample|sample-distinct)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_agoContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\bago\\(\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_nowContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\bnow\\(\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForTopNestedAndTopHitters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*top-(nested|hitters)\\s+\\d+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForSampleDistinct=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*sample-distinct\\s+\\d+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedKeywordPrefixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)top-nested.*by.*(\\d|\\)|asc|desc)\\s*,\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedWithOthersOption=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)top-nested.*?of\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topHittersKeywordPrefixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)top-hitters.*by.*(\\d|\\))\\s*,\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_yieldByKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(top\\s+\\d+|.*top-hitters.*of\\s+\\w+|.*top-nested.*of\\s+[\\w,\\(\\)]+\\s*(with others\\s*=\\s*\\w+\\s*)?|distinct|sort|order|reduce|render\\s+timepivot)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)parse\\s+(kind\\s*=\\s*\\w+\\s*(flags\\s*=\\s*\\w+\\s*)?\\s*)?\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderTimePivotColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)render\\s+timepivot\\s+by(.*,)?\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topSortOrderReduceByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(top\\s+\\d+|sort|order|reduce)\\s+by\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topTopNestedSortOrderByAscDescRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)((top\\s+\\d+|sort|order).*?by.*?(asc|desc))[ ]+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+(withsource\\s*\\=\\s*\\w+\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findInRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+(withsource\\s*\\=\\s*[^\\|\\(\\)]*\\s+)?in\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findInStartOrContinueListRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+[^\\|\\(\\)]*in\\s*\\(\\s*("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+",\\s+)?\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_FindInEndOrContinueListRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+(withsource\\s*\\=\\s*\\w+\\s+)?in\\s*\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findWhereRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+[^\\|\\(\\)]*in\\s*\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findProjectSmartRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*)find\\s+[^\\|]*\\s+project\\-smart\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_reduceByColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)reduce\\s+by\\s+\\w+\\s+kind\\s*=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*top-nested.*of\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topHittersSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*top-hitters.*of\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_sampleDistinctSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*sample-distinct.*of\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topOrOrderAscendingDescendingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(top\\s+\\d+|sort|order)\\s+by\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedAscendingDescendingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?).*top-nested.*by\\s+.*(\\)|\\d)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*|join\\s+\\(\\s+|;\\s*)range\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*|join\\s+\\(\\s+|;\\s*)range\\s+\\w+\\s+from(?!.*\\bto)\\s+[^|]*[\\w\\)]+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromToStepRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*|join\\s+\\(\\s+|;\\s*)range(?!.*step)\\s+\\w+\\s+from\\s+[^|]+to\\s+[^|]+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_filteredColumnString="((^|\\|\\s*?)(filter|where)|\\b(and|or))\\s+(?\\S+?)\\s+",this.s_filteredColumnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_filteredColumnString||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_filterPredicateRightValueRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_filteredColumnString||"")+"(\\=\\=|\\!\\=|\\>|\\<|\\<\\=|\\>\\=)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\|\\s*?)(make-series\\s+[^\\|]*\\bon\\s+[^\\|]+\\s+in\\s+range\\b\\([^\\|]+,[^\\|]+\\,[^\\|]+\\))\\s+by\\s+$|(^|\\|\\s*?)(make-series\\s+[^\\|]*\\bon\\s+[^\\|]+\\s+in\\s+range\\b\\([^\\|]+,[^\\|]+\\,[^\\|]+\\))\\s+by\\s+[^\\|]+?,\\s+$|(^|\\|\\s*?)(make-series\\s+[^\\|]*\\bon\\b)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchPrefixRegex="(^|;|\\|)\\s*search\\s+",this.s_searchContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchKindRegex="(kind\\s*=\\s*(case_sensitive|case_insensitive)\\s+)",this.s_searchAfterKindContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchKindRegex||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchMoreContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"[^\\|]+(and|or)\\s+$|"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"[^\\|\\(\\)]*in\\s*\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchKind_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"kind\\s*=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clientDirective_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*#$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clientDirectiveConnect_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*#connect\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorOptions=Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens,this.s_renderOptions=Kusto.Data.IntelliSense.CslCommandParser.ChartRenderTypesTokens,this.s_renderKindOptions=Kusto.Data.IntelliSense.CslCommandParser.ChartRenderKindTokens,this.s_aggregateOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedSummarizeAggregators,this.s_makeSeriesAggregateOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedMakeSeriesAggregationTokens,this.s_extendOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedExtendFunctions,this.s_databaseFunctionOptions=Bridge.global.System.Array.init(["database()"],Bridge.global.System.String),this.s_stringOperatorOptions=Bridge.global.System.Array.init(["==","!=","has","contains","startswith","matches regex","endswith","!has","!contains","=~","!~","in","!in","containscs","!containscs","!startswith","!endswith","hasprefix","!hasprefix","hassuffix","!hassuffix"],Bridge.global.System.String),this.s_numericOperatorOptions=Bridge.global.System.Array.init(["==","!=",">","<","<=",">="],Bridge.global.System.String),this.s_numericScalarsOptions=Bridge.global.System.Array.init(["1","10","100","1000"],Bridge.global.System.String),this.s_byKeywordOptions=Bridge.global.System.Array.init(["by"],Bridge.global.System.String),this.s_kindChooseKeywordOptions=Bridge.global.System.Array.init(["= simple","= regex","= relaxed"],Bridge.global.System.String),this.s_withOthersKeywordOptions=Bridge.global.System.Array.init(["with others = "],Bridge.global.System.String),this.s_ofKeywordOptions=Bridge.global.System.Array.init(["of"],Bridge.global.System.String),this.s_withKeywordOptions=Bridge.global.System.Array.init(["with"],Bridge.global.System.String),this.s_parseSuggestedTypesKeywordOptions=Bridge.global.System.Array.init(["long","int64","real","double","string","time","timespan","date","datetime","int"],Bridge.global.System.String),this.s_parseStarOption=Bridge.global.System.Array.init(["*"],Bridge.global.System.String),this.s_ascDescKeywordOptions=Bridge.global.System.Array.init(["asc","desc"],Bridge.global.System.String),this.s_nullsLastFirstKeywordOptions=Bridge.global.System.Array.init(["nulls last","nulls first"],Bridge.global.System.String),this.s_ascDescOrNullsLastNullsFirstKeywordOptions=Bridge.global.System.Array.init(["asc","desc","nulls last","nulls first"],Bridge.global.System.String),this.s_rangeFromOptions=Bridge.global.System.Array.init(["from"],Bridge.global.System.String),this.s_rangeFromToOptions=Bridge.global.System.Array.init(["to"],Bridge.global.System.String),this.s_rangeFromToStepOptions=Bridge.global.System.Array.init(["step"],Bridge.global.System.String),this.s_joinFlavorsOptions=Kusto.Data.IntelliSense.CslCommandParser.JoinKindTokens,this.s_postJoinOptions=Bridge.global.System.Array.init(["(","kind="],Bridge.global.System.String),this.s_kindKeywordOptions=Bridge.global.System.Array.init(["kind="],Bridge.global.System.String),this.s_searchInKeywordOptions=Bridge.global.System.Array.init(["in"],Bridge.global.System.String),this.s_searchLiteralsOptions=Bridge.global.System.Array.init(['""',"*"],Bridge.global.System.String),this.s_reduceByFlavorsOptions=Kusto.Data.IntelliSense.CslCommandParser.ReduceByKindTokens,this.s_datetimeOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedDatetimeFunctions,this.s_timespanOptions=Bridge.global.System.Array.init(["30m","1h","12h","1d","3d","7d"],Bridge.global.System.String),this.s_negativeTimespanOptions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_timespanOptions).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f1).ToArray(Bridge.global.System.String),this.s_postFindInOptions=Bridge.global.System.Array.init(["("],Bridge.global.System.String),this.s_findInEndOrContinueOptions=Bridge.global.System.Array.init([")",","],Bridge.global.System.String),this.s_findWhereInOptions=Bridge.global.System.Array.init(["where","in"],Bridge.global.System.String),this.s_findInPostListOptions=Bridge.global.System.Array.init(["where"],Bridge.global.System.String),this.s_makeSeriesDefaultOrOnOptions=Bridge.global.System.Array.init(["on","default="],Bridge.global.System.String),this.s_makeSeriesOnOptions=Bridge.global.System.Array.init(["on"],Bridge.global.System.String),this.s_makeSeriesInRangeOptions=Bridge.global.System.Array.init(["in range()"],Bridge.global.System.String),this.s_searchKindOptions=Bridge.global.System.Array.init(["case_sensitive","case_insensitive"],Bridge.global.System.String),this.s_clientDirectivesOptions=Bridge.global.System.Array.init(["connect"],Bridge.global.System.String),this.MultiColumnFunctionResultSuffixes=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f2(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Array.type(Bridge.global.System.String)))),this.s_afterFunctionsApplyPolicies=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SortedExtendFunctions).toDictionary(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f3,e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f4,Bridge.global.System.String,Bridge.global.Kusto.Data.IntelliSense.ApplyPolicy),this.s_filterKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f5(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f6(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectAwayKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f7(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectRenameKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f8(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectExtendKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f9(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_joinKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f10(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topSortOrderReduceKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f11(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_operatorsUsingByKeywordKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f12(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topSortOrderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f13(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topTopNestedSortOrderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f14(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_reduceKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f15(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_parseKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f16(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_renderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f17(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topLimitTakeSampleKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f18(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_evaluateKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f19(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_summarizeKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f20(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_distinctKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f21(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topNestedKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f22(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topHittersKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f23(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_sampleDistinctKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f24(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_operatorsRequestingAggregators=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f25(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_databaseKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f26(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_findKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f27(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_searchKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f28(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_makeSeriesKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f29(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_remoteContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?cluster\\((?[^\\)]+?)\\)\\.?)?((?database)\\((?[^\\)]*)\\))?(\\.(?(\\[.+?\\]|[\\w\\*]+))?)?",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_queryParametersRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("{\\w*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinClosureRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\)\\s*on\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinWithMakeSeriesClosureRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*make-series\\s+.*?\\b(on)\\b.*?\\)\\s*on\\b"),this.s_makeSeriesStartRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*make-series"),this.s_findSubClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*?|;)find\\s+[^\\|]*(where|project)\\s+[^\\|]*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchSubClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\s*?|;\\s*)search\\s+[^\\|]*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeEntitiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?[\\w_]+)\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parsedEntitiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(".*?with\\s+(?.+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeStringLiteralsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("('.*?'|\".*?\")",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeStringLiteralsSurroundedBySpacesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\s('.*?'|\".*?\")\\s",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeCommentsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("//.+[\\r\\n]+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldInvalidCharacters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("[^\\w \\-\\.]",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldQuotableCharacters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("[ \\-\\.\\[\\]]",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_aggregateOperatorToColumnPrefixMapping=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f30(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String))),this.s_lastCommandSegmentRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("union(\\s*\\(.*?\\)\\s*,)+\\s*\\((?.*$)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_incompleteJoinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("join(?!.+\\bon\\b)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\s*(?.*?)join|\\s*\\((?.+?)\\)\\s+on\\s+\\w+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorsReplacingEntities=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f31(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_withsourceExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("withsource\\s*=\\s*(?\\w+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findProjectionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("project\\s+(?[^\\|]+)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_packRgx=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(,)?\\s*pack\\s*\\(\\s*\\*\\s*\\)\\s*",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedLevelExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(top-nested)?\\s*\\d+\\s+of\\s+(?[\\w_]+)\\s+by\\s+((?[\\w_]+)\\s*=\\s*)?(?.+?(,)?)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_sampleDistinctEntityExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(sample-distinct)?\\s*\\d+\\s+of\\s+(?[\\w_\\(\\), ]+)\\s",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_aggregateOperatorsHash=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).$ctor1)(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationAliasesTokens)),this.s_byKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\bby\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_byAndOnKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\b(by|on)\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_makeSeriesDropNonFieldsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(\\b(default\\s*\\=\\s*\\S+)\\b)|(\\bin\\s+range\\s*\\(\\s*\\S+\\s*,\\s*\\S+\\s*,\\s*\\S+\\s*\\))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldMatchingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?[\\w_]+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_numericSuffixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?\\d+)$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_defaultContextPattern="(?(((cluster.+?)?database\\([^\\)]*\\)?\\.?(\\[.+?\\]|[\\w|\\d|*]+)?|\\[.+?\\])|[\\w\\d\\*]+))",this.s_commandContext_Join=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(".*join\\s.*?\\(\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Union=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("union\\s.*\\(\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_ToScalar=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("toscalar\\s*\\(\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Show=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?\\.show\\s+\\w+(\\s+\\w+)*)\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Range=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?range)\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Callable=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\{\\s+"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Let=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^let\\s.*?=\\s*(\\(.*?\\)\\s*\\{\\s*)?"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_ConnectDirective=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*#connect\\s+(?cluster\\(.+?\\)(.database\\(.+\\))?)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Find=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|.*;)((find\\s+[^\\|]*in\\s*\\((?("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"))\\))|(find\\s+[^\\|]*in\\s*\\(("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\s*,\\s*)?(((?((cluster.+\\.)?database\\([^\\)]*\\)))\\.)|(database\\((?))|((?(cluster.+\\.database\\())))))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Search=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|.*;)((search\\s+[^\\|]*in\\s*\\((?("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"))\\))|(search\\s+[^\\|]*in\\s*\\(("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\s*,\\s*)?(((?((cluster.+\\.)?database\\([^\\)]*\\)))\\.)|(database\\((?))|((?(cluster.+\\.database\\())))))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandDefaultContext=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||""),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_twoOrMoreSpacesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\s\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showCommandFixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(.show)(.*)(extents)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContextRegexes=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f32(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Object))),this.s_nonDefaultContextKeywordsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContextRegexes.getKeys()).orderByDescending(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f33).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f34)).join("|"),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_letVariableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|;)\\s*let\\s+(?\\w+)\\s*=",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_letStatementRegexList=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f35(new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Text.RegularExpressions.Regex).ctor))}},methods:{MapColumnsToTables:function(t){var n,i,r=new(Bridge.global.System.Collections.Generic.Dictionary$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)));if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity,t))return r;var o=new(Bridge.global.System.Collections.Generic.Dictionary$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.String)));n=Bridge.getEnumerator(t,Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity);try{for(;n.moveNext();){var s=n.Current;o.add(new Kusto.Data.IntelliSense.KustoCommandContext(s.Name),Bridge.global.System.Linq.Enumerable.from(s.Columns).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f36))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}i=Bridge.getEnumerator(o);try{for(;i.moveNext();){var a=i.Current;r.set(a.key,Bridge.global.System.Linq.Enumerable.from(a.value).orderBy(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f37).toList(Bridge.global.System.String))}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return r},ParseCommandClauses:function(e){var t;if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_incompleteJoinRegex.isMatch(e))return Bridge.global.System.Array.init([e],Bridge.global.System.String);var n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandClausesRegex.matches(e);if(0===n.getCount())return Bridge.global.System.Array.init([e],Bridge.global.System.String);var i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);t=Bridge.getEnumerator(n);try{for(;t.moveNext();){var r=(Bridge.cast(t.Current,Bridge.global.System.Text.RegularExpressions.Match).getGroups().getByName("Clause").toString()||"")+" | ";Bridge.global.System.String.isNullOrWhiteSpace(r)||i.add(r)}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return i.add(e),i},BuildOpEntitiesMap:function(e){var t,n=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)),i=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.ParseAsStatements(e,124,!1)).reverse();t=Bridge.getEnumerator(i);try{for(;t.moveNext();){var r=t.Current;if(!Bridge.global.System.String.isNullOrWhiteSpace(r)){if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_joinClosureRegex.isMatch(r)){if(!Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_makeSeriesStartRegex.isMatch(r))continue;if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_joinWithMakeSeriesClosureRegex.isMatch(r))continue}if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchSubClausesRegex.isMatch(r))n.containsKey("search")||n.add("search","");else if(Bridge.global.System.String.endsWith(r,"|")||Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_findSubClausesRegex.isMatch(r)){var o=Bridge.global.System.String.split(r,Bridge.global.System.Array.init([32,13,10],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),2,1);if(2===o.length){var s=o[Bridge.global.System.Array.index(0,o)],a=Bridge.referenceEquals(s,"find")?o[Bridge.global.System.Array.index(1,o)]:Kusto.Cloud.Platform.Utils.ExtendedString.TrimEnd(o[Bridge.global.System.Array.index(1,o)],"|");if(n.containsKey(s)?n.set(s,(n.get(s)||"")+","+(a||"")):n.add(s,a),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_operatorsReplacingEntities.contains(s))break}}}}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return n},HandleParseEntities:function(e,t,n,i){var r,o={v:null};if(!n.tryGetValue("parse",o))return t;var s=!1,a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_parsedEntitiesRegex.match(o.v);if(a.getSuccess()){var l=a.getGroups().getByName("Entities").toString(),u=Bridge.global.System.String.split(l,Bridge.global.System.Array.init([42,32],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);r=Bridge.getEnumerator(u);try{for(;r.moveNext();){var d=r.Current.trim();!Bridge.global.System.String.isNullOrEmpty(d)&&Bridge.global.System.Char.isLetter(d.charCodeAt(0))&&(d=Kusto.Cloud.Platform.Utils.ExtendedString.SplitFirst(d,":"),s=!!(s|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,d)))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}return s?Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities:t},HandleReduceByEntities:function(e,t,n,i){return n.tryGetValue("reduce",{v:null})?(e.AddRange(Bridge.global.System.Array.init(["Pattern","Count"],Bridge.global.System.String)),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities):t},HandleGetSchemaEntities:function(e,t,n,i){return n.tryGetValue("getschema",{v:null})?(e.AddRange(Bridge.global.System.Array.init(["ColumnName","ColumnOrdinal","DataType","ColumnType"],Bridge.global.System.String)),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities):t},HandleRangeEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("range",r))return t;var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_rangeEntitiesRegex.match(r.v);if(o.getSuccess()){var s=o.getGroups().getByName("Field").toString();e.contains(s)||(e.add(s),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities)}return t},HandlePrintEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("print",r))return t;var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_rangeEntitiesRegex.match(r.v);if(o.getSuccess()){var s=o.getGroups().getByName("Field").toString();e.contains(s)||(e.add(s),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities)}return t},HandleProjectEntities:function(e,t,n,i){var r={v:null};return n.tryGetValue("project",r)?(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromListWithImplicitColumns(e,r.v)&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t):t},HandleProjectAwayEntities:function(e,t,n,i){var r,o,s={v:null};if(!n.tryGetValue("project-away",s))return t;var a=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntities(s.v),l=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);r=Bridge.getEnumerator(a);try{for(;r.moveNext();){var u=r.Current.Name;e.contains(u)?e.remove(u):l.add(u)}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}if(Bridge.global.System.Linq.Enumerable.from(l).any()&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e)){var d=null!=i?i:new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);o=Bridge.getEnumerator(Bridge.global.System.Linq.Enumerable.from(d).except(l));try{for(;o.moveNext();){var c=o.Current;Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,c)}}finally{Bridge.is(o,Bridge.global.System.IDisposable)&&o.System$IDisposable$Dispose()}}return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities},HandleMvexpandEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("mvexpand",r))return t;var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromList(e,r.v);return t===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None&&o&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities),t},HandleTopNestedEntities:function(e,t,n,i){var r,o={v:null},s=!1;if(!n.tryGetValue("top-nested",o))return t;var a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_topNestedLevelExtractRegex.matches(o.v);a.getCount()>0&&(s=!0),r=Bridge.getEnumerator(a);try{for(;r.moveNext();){var l=r.Current,u=Bridge.as(l,Bridge.global.System.Text.RegularExpressions.Match),d=u.getGroups().getByName("InputColumn").toString();Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,d);var c=u.getGroups().getByName("ReanmingColumn").toString();Bridge.global.System.String.isNullOrEmpty(c)&&(c="aggregated_"+(d||"")),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,c)}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return s&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleExtendEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("extend",r))return t;var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromListWithImplicitColumns(e,r.v);return t===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None&&o&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities),t},HandleSampleDistinctEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("sample-distinct",r))return t;var o=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_sampleDistinctEntityExtractRegex.match(r.v);if(!o.getSuccess())return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None;var s=o.getGroups().getByName("InputColumn").toString();return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleAggregationEntities(e,s,i)},GenerateImplicitEntitiesForFunction:function(e,t,n,i){var r,o;if(0!==n||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,t)||!Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.MultiColumnFunctionResultSuffixes.containsKey(e))return!1;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.MultiColumnFunctionResultSuffixes.get(e);if(s.length0){var l=i.toString();e=(this.InjectFunctionsAsLetStatementsIfNeeded(l,t)||"")+(e||"")}}return e},ResolveEntitiesFromClause:function(e,t,n,i){var r=this.InjectFunctionsAsLetStatementsIfNeeded(i,new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),o=this.AnalyzeStatementsImpl(r,!1).Command;if(Bridge.global.System.String.isNullOrWhiteSpace(o))return n.v;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.BuildOpEntitiesMap(o);return n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleRangeEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandlePrintEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleProjectEntities(e,n.v,s,t),n.v=this.HandleFindEntities(e,n.v,s,t),n.v=this.HandleSearchEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleExtendEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleMvexpandEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleSummarizeEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleMakeSeriesEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleTopNestedEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleReduceByEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleParseEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleGetSchemaEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleSampleDistinctEntities(e,n.v,s,t),n.v===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities?t=e:n.v===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities&&(t=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,t)?e:Bridge.global.System.Linq.Enumerable.from(t).union(e).toList(Bridge.global.System.String)),n.v=this.HandleProjectRenameEntities(e,n.v,s,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleProjectAwayEntities(e,n.v,s,t),n.v},HandleFindEntities:function(e,t,n,i){var r,o,s,a={v:null};if(!n.tryGetValue("find",a))return t;var l=!1,u=Bridge.global.System.String.endsWith(a.v,"|");if(a.v=Kusto.Cloud.Platform.Utils.ExtendedString.TrimEnd(a.v,"|"),u){var d=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_findProjectionRegex.match(a.v);if(d.getSuccess()){var c=d.getGroups().getByName("projectedList").getValue(),g=c;c=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_packRgx.replace(c,""),Bridge.referenceEquals(c,g)||(l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_")));var m=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromList(m,c)){var h=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.IntersectWith(Bridge.global.System.String,m,i);r=Bridge.getEnumerator(h,Bridge.global.System.String);try{for(;r.moveNext();){var p=r.Current;l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,p))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}}else{if(null!=i){o=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;o.moveNext();){var f=o.Current;l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,f))}}finally{Bridge.is(o,Bridge.global.System.IDisposable)&&o.System$IDisposable$Dispose()}}l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_"))}var y=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_withsourceExtractRegex.match(a.v),S=y.getSuccess()?y.getGroups().getByName("tableNameColumn").getValue():"source_";l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,S)),d.getSuccess()||(l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_")))}else if(null!=i){s=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;s.moveNext();){var b=s.Current;l=!!(l|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,b))}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}}return l&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleSearchEntities:function(e,t,n,i){var r;if(!n.tryGetValue("search",{v:null}))return t;var o=!1;if(null!=i){r=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;r.moveNext();){var s=r.Current;o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,s))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}return o&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleProjectRenameEntities:function(e,t,n,i){var r,o,s={v:null};if(!n.tryGetValue("project-rename",s))return t;var a=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),l=!1,u=Bridge.global.System.String.split(s.v,Bridge.global.System.Array.init([44],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,u))return t;var d=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e);r=Bridge.getEnumerator(u);try{for(;r.moveNext();){var c=r.Current,g=Bridge.global.System.String.split(c,Bridge.global.System.Array.init([61],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);if(2===g.length){var m=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(g[Bridge.global.System.Array.index(0,g)]),h=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(g[Bridge.global.System.Array.index(1,g)]);Bridge.global.System.String.isNullOrEmpty(m)||Bridge.global.System.String.isNullOrEmpty(h)||Bridge.global.System.String.equals(m,h,4)||(a.add(h),e.contains(h)&&(e.remove(h),l=!0),e.contains(m)||(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,m),l=!0))}}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}if(Bridge.global.System.Linq.Enumerable.from(a).any()&&d&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,i)){o=Bridge.getEnumerator(Bridge.global.System.Linq.Enumerable.from(i).except(a));try{for(;o.moveNext();){var p=o.Current;Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,p)}}finally{Bridge.is(o,Bridge.global.System.IDisposable)&&o.System$IDisposable$Dispose()}}return l&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},AnalyzeCommand$1:function(e,t){var n=this.InjectFunctionsAsLetStatementsIfNeeded(e,new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor));if(null!=t&&null!=t.ContextCache&&(this.ContextCache=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext))(t.ContextCache)),Bridge.global.System.String.indexOf(n,String.fromCharCode(59))<0){var i=new Kusto.Data.IntelliSense.AnalyzedCommand;return i.Command=e,i.Context=this.ResolveContextFromCommand(n),i}return this.AnalyzeStatementsImpl(n,!0)},AnalyzeCommand:function(e,t){var n;if(Bridge.global.System.String.isNullOrWhiteSpace(t))return e;if(null==e||Bridge.global.System.String.isNullOrEmpty(e.Command))return this.AnalyzeCommand$1(t,null);var i=(e.Command||"")+(t||"");return Bridge.global.System.String.indexOf(t,String.fromCharCode(59))>=0||Bridge.global.System.String.endsWith(e.Command.trim(),";")||Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_nonDefaultContextKeywordsRegex.isMatch(t)?this.AnalyzeCommand$1(i,null):((n=new Kusto.Data.IntelliSense.AnalyzedCommand).Command=i,n.Context=e.Context,n)},ResolveContextFromCommand:function(e){var t;if(Bridge.global.System.String.isNullOrWhiteSpace(e))return Kusto.Data.IntelliSense.KustoCommandContext.Empty;var n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeStringLiteralsSurroundedBySpacesRegex.replace(e," ");n=(n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeCommentsRegex.replace(n,"")).trim();var i=Bridge.getHashCode(n);if(this.m_contextCache.containsKey(i))return this.m_contextCache.get(i);var r="",o=Kusto.Data.IntelliSense.ContextOperation.Intersect,s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_nonDefaultContextKeywordsRegex.matches(n),a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.GetLatestMatch(s),l=!1,u=!1;if(null!=a){var d=a.getGroups().get(0).toString(),c={};Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContextRegexes.tryGetValue(d,c)&&(r=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveContextUsingRegex(n,c.v,a.getIndex())),l=Bridge.referenceEquals(d,"find"),(u=Bridge.referenceEquals(d,"search"))&&!Bridge.global.System.String.isNullOrEmpty(r)&&(o=Kusto.Data.IntelliSense.ContextOperation.Union)}if(l&&Bridge.referenceEquals(r,"")&&(r="database('*')"),Bridge.global.System.String.isNullOrEmpty(r))if(l)r="*";else{var g={Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandDefaultContext,Item2:null};r=null!=(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveContextUsingRegex(n,g,0))?t:"",u&&Bridge.global.System.String.equals(r,"search")&&(r="*",o=Kusto.Data.IntelliSense.ContextOperation.Union)}var m=Bridge.global.System.String.isNullOrEmpty(r)?Kusto.Data.IntelliSense.KustoCommandContext.Empty:new Kusto.Data.IntelliSense.KustoCommandContext(r,o);return this.m_contextCache.set(i,m),m},AnalyzeStatementsImpl:function(e,t){var n=new Kusto.Data.IntelliSense.AnalyzedCommand,i=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveLetExpressions(e);if(n.Command=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.FindLastStatement(e),(t||i.count>0)&&(n.Context=this.ResolveContextFromCommand(n.Command)),0===i.count)return n;for(;i.containsKey(n.Context.Context);){var r=i.get(n.Context.Context),o=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\b"+(n.Context.Context||"")+"\\b(\\(.*?\\))?");n.Command=o.replace(n.Command,r),i.remove(n.Context.Context),n.Context=this.ResolveContextFromCommand(r)}return n},GetKnownEntities:function(e,t,n,i,r){var o={};return this.TryMatchSpecificRule(e,t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind,o)?(i.v=Bridge.global.System.Linq.Enumerable.from(o.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0):this.TryMatchSpecificRule((e||"")+" project ",t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind,o)?(i.v=Bridge.global.System.Linq.Enumerable.from(o.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0):(e=(e||"")+" | project ",!!this.TryMatchSpecificRule(e,t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProject,o)&&(i.v=Bridge.global.System.Linq.Enumerable.from(o.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0))},LoadCommandToolTips:function(){var e,t=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTip).ctor);this.CommandToolTips=t;var n=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="tostring",e.Summary="Converts the given value to string",e.Usage="... | extend str = tostring(Column1)",e),i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);n.Parameters=i,i.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="value",e.Description="The value to convert to string",e)),t.add(n);var r=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="strlen",e.Summary="Returns the length of the given string",e.Usage="... | extend length = strlen(Column1)",e),o=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);r.Parameters=o,o.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string being measured for length",e)),t.add(r);var s=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="hash",e.Summary="Returns the xxhash value of a scalar value",e.Usage="... | extend hash = hash(Column1, 100)",e),a=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);s.Parameters=a,a.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="Every scalar type except Dynamic",e.Name="target",e.Description="The value the hash is calculated on",e)),a.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="modulo",e.Description="The modulo value to be applied on the hash result",e)),t.add(s);var l=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="iff",e.Summary="Returns one of two values, depending on whether the Boolean expression evaluates to true or false",e.Usage="... | extend val = iff(strlen(Column1) > 10, 'long', 'short')",e),u=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);l.Parameters=u,u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="bool",e.Name="expression",e.Description="The Boolean expression you want to evaluate",e)),u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="trueValue",e.Description=" Returned if 'expression' evaluates to True",e)),u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="falseValue",e.Description="Returned if 'expression' evaluates to False",e)),t.add(l);var d=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="extract",e.Summary="Produces a scalar using a regular expression (RE2 reference)",e.Usage="... | extend number = extract(@'(\\d+)', 1, Column1, typeof(int))",e),c=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);d.Parameters=c,c.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="regex",e.Description="The regular expression to be applied",e)),c.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="int",e.Name="groupIndex",e.Description="The index of the matching group (1 = 1st matching group in regex, 2 = 2nd matching group, etc.)",e)),c.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),c.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="typename typeof(T)",e.Name="type",e.Description="Optional type to convert the result to",e.Optional=!0,e)),t.add(d);var g=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="replace",e.Summary="Replace a string with another string using a regular expression (RE2 reference)",e.Usage="... | replace str = replace(@'foo', @'bar', Column1)",e),m=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);g.Parameters=m,m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="matchingPattern",e.Description="String or regular expression to be applied for matching",e)),m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="rewritePattern",e.Description="String or regular expression to be used for rewrite (\\1 = 1st matching group in regex, \\2 = 2nd matching group, etc.)",e)),m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),t.add(g);var h=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="extractjson",e.Summary="Produces a scalar using a JSONPath expression (JSONPath reference)",e.Usage="... | extend number = extractjson(@'$.Object.Property', Column1, typeof(int))",e),p=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);h.Parameters=p,p.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="jsonPath",e.Description="The JSON Path expression to be used",e)),p.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),p.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="typename typeof(T)",e.Name="type",e.Description="Optional type to convert the result to",e.Optional=!0,e)),t.add(h);var f=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="parsejson",e.Summary="Converts a JSON string into a value of type 'dynamic' (an object), whose properties can be further accessed using dot or bracket notation",e.Usage="... | extend obj = parsejson(Column1)",e),y=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);f.Parameters=y,y.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="columnName",e.Description="Any valid query expression that returns a string (e.g. a column name)",e)),t.add(f);var S=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="toupper",e.Summary="Converts the given string to upper case",e.Usage="... | extend upper = topupper(Column1)",e),b=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);S.Parameters=b,b.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be converted to upper case",e)),t.add(S);var I=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="tolower",e.Summary="Converts the given string to lower case",e.Usage="... | extend lower = tolower(Column1)",e),C=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);I.Parameters=C,C.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be converted to lower case",e)),t.add(I);var _=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="substring",e.Summary="Retrieves a substring from the given string",e.Usage="... | extend substr = substring(Column1,1,3)",e),v=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);_.Parameters=v,v.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be substringed",e)),v.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="startIndex",e.Description="The zero-based starting character position of a substring in this instance",e)),v.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="count",e.Description="The number of characters in the substring",e.Optional=!0,e)),t.add(_);var T=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="split",e.Summary="Retrieves a string array that contains the substrings of the given source string that are delimited by the given delimiter",e.Usage='... | extend split = split(Column1,";")',e),x=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);T.Parameters=x,x.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="source",e.Description="The string to be splitted",e)),x.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="delimiter",e.Description="The delimiter on which the split will be based on",e)),x.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="index",e.Description="The index of the requested substring",e.Optional=!0,e)),t.add(T);var w=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="strcat",e.Summary="Concatenates several strings together (up-to 16 parameters)",e.Usage="... | extend s = strcat('KU', 'S', 'TO')",e),B=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);w.Parameters=B,B.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="First part",e)),B.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="values",e.Description="Other parts",e.IsArgsArray=!0,e.Optional=!0,e)),t.add(w);var D=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="countof",e.Summary="Returns the number of pattern matches in the given string",e.Usage="... | extend matches = countof(Expression, Pattern, Type)",e),A=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);D.Parameters=A,A.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Expression",e.Description="The string to match the pattern to",e)),A.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Pattern",e.Description="The pattern to match the expression to. Can be a regular expression",e)),A.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Type",e.Description="For substring count leave empty or specifiy 'normal', for regular expression count specify 'regex'",e)),t.add(D);var R=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentile",e.Summary="Returns the estimated value for the given percentile over source values",e.Usage="... | summarize percentile(source, percent) ...",e),E=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);R.Parameters=E,E.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),E.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e)),t.add(R);var K=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentiles",e.Summary="Returns the estimated value for each of the given percentiles over source values",e.Usage="... | summarize percentiles(source, percent, ...) ...",e),N=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);K.Parameters=N,N.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),N.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e.IsArgsArray=!0,e)),t.add(K);var P=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentilew",e.Summary="Returns the estimated value for the given percentile over weighted source values",e.Usage="... | summarize percentilew(source, weight, percent) ...",e),O=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);P.Parameters=O,O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Weight",e.Description="Range of weights to give to each source value",e)),O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e)),t.add(P);var $=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentilesw",e.Summary="Returns the estimated value for each of the given percentiles over weighted source values",e.Usage="... | summarize percentilesw(source, weight, percent, ...) ...",e),k=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);$.Parameters=k,k.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),k.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Weight",e.Description="Range of weights to give to each source value",e)),k.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e.IsArgsArray=!0,e)),t.add($);var L=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="ingestion_time",e.Summary="returns a datetime value specifying when the record was first available for query",e.Usage="... | extend length = ingestiontime()",e);L.Parameters=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor),t.add(L);var M=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="countif",e.Summary="Returns the number of rows that matches the predicate",e.Usage="... | summarize countif(Predicate)",e),F=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);M.Parameters=F,F.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),t.add(M);var z=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="dcountif",e.Summary="Returns the number of unique values of Expression in rows that matches the predicate",e.Usage="... | summarize dcountif(Expression, Predicate, Accuracy)",e),j=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);z.Parameters=j,j.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="Expression",e.Description="The unique values to count",e)),j.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),j.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Accuracy",e.Description="Optional. Controls the balance between speed and accuracy",e)),t.add(z);var U=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="sumif",e.Summary="Returns the sum of rows that matches the predicate",e.Usage="... | summarize sumif(Predicate, Column)",e),G=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);U.Parameters=G,G.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),G.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Column",e.Description="Column or other scalar funciton to calculate the sum of",e)),t.add(U)}}}),Bridge.define("$AnonymousType$1",e,{$kind:"anonymous",ctors:{ctor:function(e,t,n){this.Name=e,this.ParentTableName=t,this.TypeCode=n}},methods:{equals:function(t){return!!Bridge.is(t,e.$AnonymousType$1)&&Bridge.equals(this.Name,t.Name)&&Bridge.equals(this.ParentTableName,t.ParentTableName)&&Bridge.equals(this.TypeCode,t.TypeCode)},getHashCode:function(){return Bridge.addHash([7550196186,this.Name,this.ParentTableName,this.TypeCode])},toJSON:function(){return{Name:this.Name,ParentTableName:this.ParentTableName,TypeCode:this.TypeCode}}},statics:{methods:{$metadata:function(){return{m:[{a:2,n:"Name",t:16,rt:Bridge.global.System.String,g:{a:2,n:"get_Name",t:8,rt:Bridge.global.System.String,fg:"Name"},fn:"Name"},{a:2,n:"ParentTableName",t:16,rt:Bridge.global.System.String,g:{a:2,n:"get_ParentTableName",t:8,rt:Bridge.global.System.String,fg:"ParentTableName"},fn:"ParentTableName"},{a:2,n:"TypeCode",t:16,rt:Kusto.Data.IntelliSense.EntityDataType,g:{a:2,n:"get_TypeCode",t:8,rt:Kusto.Data.IntelliSense.EntityDataType,fg:"TypeCode",box:function(e){return Bridge.box(e,Kusto.Data.IntelliSense.EntityDataType,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.EntityDataType))}},fn:"TypeCode"}]}}}}}),Bridge.ns("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider,{f1:function(e){return"-"+(e||"")},f2:function(e){return e.add("series_stats",Bridge.global.System.Array.init(["min","min_idx","max","max_idx","avg","stdev","variance"],Bridge.global.System.String)),e.add("series_fit_line",Bridge.global.System.Array.init(["rsquare","slope","variance","rvariance","interception","line_fit"],Bridge.global.System.String)),e.add("series_fit_2lines",Bridge.global.System.Array.init(["rsquare","split_idx","variance","rvariance","line_fit","right_rsquare","right_slope","right_interception","right_variance","right_rvariance","left_rsquare","left_slope","left_interception","left_variance","left_rvariance"],Bridge.global.System.String)),e.add("series_periods_detect",Bridge.global.System.Array.init(["periods","scores"],Bridge.global.System.String)),e.add("series_periods_validate",Bridge.global.System.Array.init(["periods","scores"],Bridge.global.System.String)),e},f3:function(e){return e},f4:function(e){return Kusto.Data.IntelliSense.ApplyPolicy.AppendSpaceStepBackPolicy},f5:function(e){return e.add("filter"),e.add("where"),e},f6:function(e){return e.add("project"),e},f7:function(e){return e.add("project-away"),e},f8:function(e){return e.add("project-rename"),e},f9:function(e){return e.add("project"),e.add("extend"),e},f10:function(e){return e.add("join"),e},f11:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("reduce"),e.add("top-nested"),e},f12:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("reduce"),e.add("top-nested"),e.add("render"),e},f13:function(e){return e.add("top"),e.add("order"),e.add("sort"),e},f14:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("top-nested"),e},f15:function(e){return e.add("reduce"),e},f16:function(e){return e.add("parse"),e},f17:function(e){return e.add("render"),e},f18:function(e){return e.add("top"),e.add("limit"),e.add("take"),e.add("top-nested"),e.add("top-hitters"),e.add("sample"),e.add("sample-distinct"),e},f19:function(e){return e.add("evaluate"),e},f20:function(e){return e.add("summarize"),e},f21:function(e){return e.add("distinct"),e},f22:function(e){return e.add("top-nested"),e},f23:function(e){return e.add("top-hitters"),e},f24:function(e){return e.add("sample-distinct"),e},f25:function(e){return e.add("top-nested"),e.add("top-hitters"),e.add("summarize"),e.add("distinct"),e},f26:function(e){return e.add("database"),e},f27:function(e){return e.add("find"),e},f28:function(e){return e.add("search"),e},f29:function(e){return e.add("make-series"),e},f30:function(e){return e.add("cnt","count"),e.add("percentiles","percentile"),e.add("percentilew","percentile"),e.add("percentilesw","percentile"),e.add("makelist","list"),e.add("makeset","set"),e},f31:function(e){return e.add("join"),e.add("project"),e.add("summarize"),e.add("reduce"),e.add("getschema"),e.add("distinct"),e},f32:function(e){return e.add("join",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Join,Item2:null}),e.add(".show",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Show,Item2:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_showCommandFixRegex}),e.add("range",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Range,Item2:null}),e.add("toscalar",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_ToScalar,Item2:null}),e.add("{",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Callable,Item2:null}),e.add("let",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Let,Item2:null}),e.add("union",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Union,Item2:null}),e.add("find",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Find,Item2:null}),e.add("search",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Search,Item2:null}),e.add("#connect",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_ConnectDirective,Item2:null}),e},f33:function(e){return e},f34:function(e){return Bridge.global.System.Text.RegularExpressions.Regex.escape(e)},f35:function(e){return e.add(new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\blet\\s+(?\\w+)\\s*=.*?\\{(?.+?)\\}",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)),e.add(new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\blet\\s+(?\\w+)\\s*=\\s*(?.+?);",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)),e},f36:function(e){return e.Name},f37:function(e){return e},f38:function(e){return(e.getGroups().get(1).getValue()||"")+" "+(e.getGroups().get(3).getValue()||"")},f39:function(e){return e.add("kind=",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("(",Kusto.Data.IntelliSense.ApplyPolicy.AppendJoinClauseWithoutOpenningBracketPolicy),e},f40:function(e){var t;return e.add("timechart",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" with 'cats' ",t)),e.add("barchart",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" with 'dogs' ",t)),e},f41:function(e){var t;return e.add("autocluster",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e.add("diffpatterns",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text='("split= ")',t.OffsetToken="=",t.OffsetPosition=2,t)),e.add("basket",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e.add("extractcolumns",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e},f42:function(e){return e.add("where",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClausePolicy),e},f43:function(e){return e.add("(",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClauseWithoutOpenningBracketPolicy),e},f44:function(e){var t;return e.add(")",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" where ",t)),e.add(",",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClauseWithoutOpenningBracketPolicy),e},f45:function(e){return e.add('""',Kusto.Data.IntelliSense.ApplyPolicy.AppendSpaceStepBackPolicy),e.add("kind=",Kusto.Data.IntelliSense.ApplyPolicy.NullApplyPolicy),e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendSearchInClausePolicy),e},f46:function(e){return e.value},f47:function(e){return e.toLowerCase()},f48:function(e){return e},f49:function(e){return e.Name},f50:function(e){return e.value},f51:function(e){return e.Tables},f52:function(t){return Bridge.global.System.Linq.Enumerable.from(t.Columns).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f36)},f53:function(e){return"'"+(e||"")+"'"},f54:function(e){return"'"+(e||"")+"'"},f55:function(e){return"'"+(e.Name||"")+"'"},f56:function(e){return!e.IsInvisible},f57:function(e){return e},f58:function(e){return e.CallName},f59:function(e){return Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy},f60:function(e){return(e.Name||"")+"()"},f61:function(e){return e},f62:function(e){return e.Name},f63:function(e){return{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeCommentsRegex.replace(e.Expression,""),Item2:new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\b"+(e.Name||"")+"\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions)}},f64:function(e){return"cluster('"+(e||"")+"')"},f65:function(t){return Bridge.global.System.Linq.Enumerable.from(t.Columns).select(function(n){return new e.$AnonymousType$1(n.Name,t.Name,n.TypeCode)})},f66:function(e){return e.TypeCode===Kusto.Data.IntelliSense.EntityDataType.String},f67:function(e){return Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.ParentTableName,e.Name)},f68:function(e){return Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.Name,"*")},f69:function(e){return e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendStringLiteralArrayPolicy),e.add("!in",Kusto.Data.IntelliSense.ApplyPolicy.AppendStringLiteralArrayPolicy),e},f70:function(e){return e.TypeCode!==Kusto.Data.IntelliSense.EntityDataType.String},f71:function(e){return e.TypeCode===Kusto.Data.IntelliSense.EntityDataType.DateTime}}),Bridge.define("Kusto.Data.IntelliSense.RegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],props:{MatchingRegex:null,Options:null,AdditionalOptions:null,RequiresFullCommand:{get:function(){return!1}},IsContextual:{get:function(){return!1}}},methods:{IsMatch:function(e,t){return!!this.MatchingRegex.isMatch(t)},GetOptions:function(t){var n=this.Options.Values;return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions)?n:Bridge.global.System.Linq.Enumerable.from(n).union(Bridge.global.System.Linq.Enumerable.from(this.AdditionalOptions).selectMany(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f1))},GetCompletionOptions:function(t){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions)?this.Options.GetCompletionOptions():Bridge.global.System.Linq.Enumerable.from(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f2)(new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CompletionOptionCollection).ctor))).concat(this.AdditionalOptions).orderByDescending(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f3).selectMany(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f4)}}}),Bridge.ns("Kusto.Data.IntelliSense.RegexIntelliSenseRule",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule,{f1:function(e){return e.Values},f2:function(e){return e.add(this.Options),e},f3:function(e){return e.Priority},f4:function(e){return e.GetCompletionOptions()}}),Bridge.define("Kusto.UT.IntelliSenseRulesTests.RemoteSchemaResolverMock",{inherits:[Kusto.Data.IntelliSense.IKustoIntelliSenseSchemaResolver],$kind:"nested class",fields:{s_dbMap:null,s_clusterDatabasesMap:null},alias:["ResolveDatabaseNames","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseNames","ResolveDatabaseSchema","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseSchema","ResolveDatabaseSchema$1","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseSchema$1"],ctors:{ctor:function(){var e;this.$initialize(),this.s_dbMap=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity)),this.s_clusterDatabasesMap=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)));var t=Kusto.UT.IntelliSenseRulesTests.GenerateKustoEntities(null,null);e=Bridge.getEnumerator(Bridge.global.System.Array.init([{Item1:"",Item2:"db1"},{Item1:"other",Item2:"db2"}],Bridge.global.System.Object));try{for(;e.moveNext();){var n=e.Current,i=(n.Item1||"")+":"+(n.Item2||"");this.s_dbMap.set(i,Bridge.global.System.Linq.Enumerable.from(t.Databases).first()),this.s_clusterDatabasesMap.containsKey(n.Item1)||this.s_clusterDatabasesMap.set(n.Item1,new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),this.s_clusterDatabasesMap.get(n.Item1).add(n.Item2)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}}},methods:{ResolveDatabaseNames:function(e){var t={};return this.s_clusterDatabasesMap.tryGetValue(e,t),t.v},ResolveDatabaseSchema:function(e,t){var n=(e||"")+":"+(t||"");return this.s_dbMap.containsKey(n)?this.s_dbMap.get(n):null},ResolveDatabaseSchema$1:function(e,t,n){var i=(e||"")+":"+(t||""),r=Bridge.global.System.Linq.Enumerable.from(this.s_dbMap).where(function(t){return Bridge.global.System.String.startsWith(t.key,(e||"")+":")});if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity),r))if(Kusto.Cloud.Platform.Utils.ExtendedRegex.IsWildCardPattern(t)){var o=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(i),s=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(t);null!=s&&(r=r.where(function(e){return o.isMatch(e.key)||s.isMatch(e.value.Name)||s.isMatch(e.value.Alias)}))}else r=r.where(function(e){return Bridge.global.System.String.equals(i,e.key,5)||Bridge.global.System.String.equals(t,e.value.Name,5)||Bridge.global.System.String.equals(t,e.value.Alias,5)});if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity),r))return null;var a=null;Bridge.global.System.String.isNullOrEmpty(n)||Kusto.Cloud.Platform.Utils.ExtendedRegex.IsWildCardPattern(n)&&(a=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(n));var l=r.select(function(e){var t=new Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity;return t.Name=e.value.Name,t.Alias=e.value.Alias,t.Tables=Bridge.global.System.Linq.Enumerable.from(e.value.Tables).where(function(e){return Bridge.global.System.String.isNullOrEmpty(n)||null==a&&Bridge.referenceEquals(n,e.Name)||null!=a&&a.isMatch(e.Name)}),t.Functions=e.value.Functions,t.IsInitialized=e.value.IsInitialized,t});return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,l)?null:l}}}),Bridge.define("Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider",{inherits:[Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider],statics:{fields:{s_showCommandRegex:null,s_setCommandRegex:null,s_addCommandRegex:null,s_alterCommandRegex:null,s_alterMergeCommandRegex:null,s_deleteCommandRegex:null,s_createCommandRegex:null,s_dropCommandRegex:null,s_moveCommandRegex:null,s_attachCommandRegex:null,s_replaceCommandRegex:null,s_ingestionDuplicationCommandRegex:null,s_createOrAlterCommandRegex:null,s_purgeCommandRegex:null,s_purgeCleanupCommandRegex:null,s_createDatabaseCommandRegex:null,s_createDatabaseCommandEndingRegex:null,s_showDatabaseCommandRegex:null,s_showBasicAuthCommandRegex:null,s_showDatabasePrincipalsCommandRegex:null,s_showClusterCommandRegex:null,s_showPrincipalCommandRegex:null,s_showFabricCommandRegex:null,s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex:null,s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex:null,s_addClusterBlockedPrincipalsCommandRegex:null,s_setClusterAdminsNoneCommandRegex:null,s_setClusterUsersNoneCommandRegex:null,s_setClusterViewersNoneCommandRegex:null,s_setClusterDatabaseCreatorsNoneCommandRegex:null,s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex:null,s_showTableOptionsCommandRegex:null,s_setDatabaseCommandRegex:null,s_addDatabaseCommandRegex:null,s_dropDatabaseCommandRegex:null,s_anySimpleSyntaxActionTableCommandRegex:null,s_anySimpleSyntaxActionFunctionCommandRegex:null,s_dropExtentTagsCommandRegex:null,s_alterExtentTagsCommandRegex:null,s_attachExtentsCommandRegex:null,s_attachExtentsIntoTableCommandRegex:null,s_attachExtentsIntoSpecifiedTableCommandRegex:null,s_moveExtentsCommandRegex:null,s_moveSpecifiedExtentsCommandRegex:null,s_moveExtentsFromSpecifiedTableCommandRegex:null,s_moveExtentsFromTableCommandRegex:null,s_moveExtentsToTableCommandRegex:null,s_replaceExtentsCommandRegex:null,s_replaceExtentsInTableCommandRegex:null,s_showExtentsInSpecifiedEntityCommandRegex:null,s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex:null,s_dropExtentTagsFromTableCommandRegex:null,s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex:null,s_addDatabaseAdminsUsersViewersCommandRegex:null,s_dropDatabasePropertyCommandRegex:null,s_setTableAdminsCommandRegex:null,s_addTableAdminsCommandRegex:null,s_createTableEntitiesCommandRegex:null,s_alterTableEntitiesCommandRegex:null,s_alterMergeTableEntitiesCommandRegex:null,s_dropTableEntitiesCommandRegex:null,s_deleteTableEntitiesCommandRegex:null,s_dropTableColumnsSyntaxCommandRegex:null,s_alterFunctionEntitiesCommandRegex:null,s_setDatabaseAdminsNoneCommandRegex:null,s_setDatabaseUsersNoneCommandRegex:null,s_setDatabaseViewersNoneCommandRegex:null,s_setDatabaseIngestorsNoneCommandRegex:null,s_setTableAdminsNoneCommandRegex:null,s_setTableIngestorsNoneCommandRegex:null,s_appendTableCommandRegex:null,s_setOrAppendReplaceTableCommandRegex:null,s_clusterPolicyRegex:null,s_alterDatabaseRegex:null,s_databasePolicyRegex:null,s_tablePolicyRegex:null,s_columnPolicyRegex:null,s_policyCommandOnDatabase:null,s_policyCommand:null,s_alterMultiplePoliciesRegex:null,s_deleteMultiplePoliciesRegex:null,s_exportCommandRegex:null,s_exportCommandWithModifiersToRegex:null,s_exportCommandNoModifiersToRegex:null,s_duplicateIngestionIntoRegex:null,s_purgeWhatIfRegex:null,s_purgeWithPropertiesRegex:null,s_purgeTableRegex:null,s_purgeSpecifiedTableRegex:null,s_alterMergePolicyRetentionRegex:null,s_alterMergePolicyRetentionSoftDeleteDefinedRegex:null,s_alterMergePolicyRetentionOptionsRegex:null,s_createRowstoreCommandRegex:null,s_createRowstoreCommandEndingRegex:null,s_adminOperationOptions:null,s_showCommandOptions:null,s_clusterShowKeywordOptions:null,s_tableShowKeywordOptions:null,s_setAddCommandsOptions:null,s_dropCommandsOptions:null,s_attachCommandsOptions:null,s_moveCommandsOptions:null,s_replaceCommandsOptions:null,s_dropExtentTagsCommandsOptions:null,s_attachExtentsCommandsOptions:null,s_attachExtentsIntoSpecifedTableCommandsOptions:null,s_moveExtentsCommandsOptions:null,s_moveSpecifiedExtentsCommandsOptions:null,s_moveExtentsFromTableCommandsOptions:null,s_showExtentsByEntityCommandsOptions:null,s_showExtentsByEntityWithTagFiltersCommandsOptions:null,s_replaceExtentsCommandsOptions:null,s_alterCommandOptions:null,s_alterMergeAndDeleteCommandOptions:null,s_createCommandOptions:null,s_setUsersAdminsPrettyNameKeywordOptions:null,s_addSetDropUsersAdminsKeywordOptions:null,s_dropDatabaseKeywordOptions:null,s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions:null,s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions:null,s_addClusterBlockedPrincipalsApplicationKeywordOptions:null,s_showBasicAuthUsersKeywordOptions:null,s_AddSetAdminsKeywordOptions:null,s_createTableEntitiesKeywordOptions:null,s_alterTableEntitiesKeywordOptions:null,s_alterMergeTableEntitiesKeywordOptions:null,s_dropTableEntitiesKeywordOptions:null,s_deleteTableEntitiesKeywordOptions:null,s_alterFunctionEntitiesKeywordOptions:null,s_DropColumnsSyntaxKeywordOptions:null,s_setNoneKeywordOptions:null,s_clusterPoliciesOptions:null,s_databasePoliciesOptions:null,s_tablePoliciesOptions:null,s_columnPoliciesOptions:null,s_multiplePoliciesOptions:null,s_multipleDeletionPoliciesOptions:null,s_databasePersistencyOptions:null,s_rowstorePersistencyOptions:null,s_ifNotExistsOptions:null,s_policyKeywordOptions:null,s_principalsPolicySchemaAndExtentsKeywordOptions:null,s_exportFileFormatOptions:null,s_exportCommandOptions:null,s_alterDatabaseCommandOptions:null,s_duplicateIngestionCommandsOptions:null,s_purgeWhatIfCommandOptions:null,s_purgeTableCommandsOptions:null,s_purgeCleanupCommandsOptions:null,s_purgeCommandsOptions:null,s_purgeWithPropertiesCommandsOptions:null,s_showPrincipalKeywordOptions:null,s_showFabricKeywordOptions:null,s_alterMergePolicyRetentionOptions:null,s_alterMergePolicyRetentionSoftDeleteDefinedOptions:null,s_timeSpanPolicyOptions:null,s_createOrAlterOptions:null},ctors:{init:function(){this.s_showCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergeCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter-merge\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.delete\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.attach\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.replace\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_ingestionDuplicationCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.dup-next-(failed-)?ingest\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createOrAlterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create-or-alter\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeCleanupCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge-cleanup\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+database\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createDatabaseCommandEndingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+database\\s+\\w+\\s+(persist\\s+\\(.+\\)|volatile)\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+database\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showBasicAuthCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+basicauth\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showDatabasePrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+database\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showClusterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+cluster\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showPrincipalCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+principal\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showFabricCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+fabric\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+cluster\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+cluster\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addClusterBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+cluster\\s+blockedprincipals\\s+('(.*?)'|\"(.*?)\")\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+cluster\\s+admins\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterUsersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+cluster\\s+users\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterViewersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+cluster\\s+viewers\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterDatabaseCreatorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+cluster\\s+databasecreators\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+cluster\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showTableOptionsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+database\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+database\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_anySimpleSyntaxActionTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|create|add|set|alter|alter-merge|drop|delete)\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_anySimpleSyntaxActionFunctionCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|drop)\\s+function\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropExtentTagsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+extent\\s+tags\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterExtentTagsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+extent\\s+tags\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.attach\\s+(async\\s+)?extents\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsIntoTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.attach\\s+(async\\s+)?extents\\s+into\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsIntoSpecifiedTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.attach\\s+(async\\s+)?extents\\s+into\\s+table\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?extents\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveSpecifiedExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?extents\\s+([A-Za-z0-9(),.-]+)\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsFromSpecifiedTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?extents\\s+([A-Za-z0-9(),.-]+)\\s+from\\s+table\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsFromTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?extents\\s+([A-Za-z0-9(),.-]+)\\s+from\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsToTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.move\\s+(async\\s+)?extents\\s+([A-Za-z0-9(),.-]+)\\s+from\\s+table\\s+\\S+\\s+to\\s+table\\s+$|^\\s*\\.move\\s+(async\\s+)?extents\\s+to\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.replace\\s+(async\\s+)?extents\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceExtentsInTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.replace\\s+(async\\s+)?extents\\s+in\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showExtentsInSpecifiedEntityCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+(database|table)\\s+\\S+\\s+extents\\s+$|^\\s*\\.show\\s+cluster\\s+extents\\s+$|^\\s*\\.show\\s+tables\\s+\\([^)]+\\)\\s+extents\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.show\\s+((database\\s+\\S+)|(table\\s+\\S+)|(tables\\s+\\([^)]+\\))|(cluster))\\s+extents\\s+(hot\\s+)?where\\s+tags\\s+((has|!has|contains|!contains)\\s+\\S+\\s+and\\s+tags\\s+)*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropExtentTagsFromTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+extent\\s+tags\\s+from\\s+table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addDatabaseAdminsUsersViewersCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+database\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropDatabasePropertyCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+database\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableAdminsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addTableAdminsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.add\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergeTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter-merge\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.delete\\s+table\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropTableColumnsSyntaxCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.drop\\s+table\\s+\\w+\\s+columns\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterFunctionEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+function\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+\\w+\\s+admins\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseUsersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+\\w+\\s+users\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseViewersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+\\w+\\s+viewers\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseIngestorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+database\\s+\\w+\\s+ingestors\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+table\\s+\\w+\\s+admins\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableIngestorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.set\\s+table\\s+\\w+\\s+ingestors\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_appendTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.append\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setOrAppendReplaceTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(set-or-append|set-or-replace)\\s+(async\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clusterPolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|alter-merge|delete)\\s+cluster\\s+policy\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterDatabaseRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+database\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databasePolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|alter-merge|delete)\\s+database\\s+\\S+\\s+policy\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_tablePolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|alter-merge|delete)\\s+table\\s+\\S+\\s+policy\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_columnPolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|alter-merge|delete)\\s+column\\s+\\S+\\s+policy\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_policyCommandOnDatabase=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(show|alter|alter-merge|delete)\\s+database\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_policyCommand=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(alter|alter-merge|delete)\\s+column\\s+\\S+\\s+$|^\\s*\\.(alter|alter-merge|delete)\\s+cluster\\s+$|^\\s*\\.(alter-merge|delete)\\s+database\\s+\\S+\\s+$|^\\s*\\.show\\s+column\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMultiplePoliciesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.alter\\s+policies\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteMultiplePoliciesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.delete\\s+policies\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.export\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandWithModifiersToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.export\\s+(async|async compressed|compressed)\\s+to\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandNoModifiersToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.export\\s+to\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_duplicateIngestionIntoRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.dup-next-(failed-)?ingest\\s+into\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeWhatIfRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge\\s+(async\\s+)?whatif\\s*=\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeWithPropertiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge\\s+(async\\s+)?whatif\\s*=\\s*\\S+\\s+(maxRecords\\s*=\\s*\\d+\\s+)?$|^\\s*\\.purge\\s+(async\\s+)?maxRecords\\s*=\\s*\\d+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeTableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge\\s+(async\\s+)?(whatif\\s*=\\s*\\S+\\s+)?(maxRecords\\s*=\\s*\\d+\\s+)?table\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeSpecifiedTableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.purge\\s+(async\\s+)?(whatif\\s*=\\s*\\S+\\s+)?(maxRecords\\s*=\\s*\\d+\\s+)?table\\s+\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(alter-merge)\\s+(database|table)\\s+\\S+\\s+policy\\s+retention\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionSoftDeleteDefinedRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(alter-merge)\\s+(database|table)\\s+\\S+\\s+policy\\s+retention\\s+softdelete\\s*=\\s*\\S+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionOptionsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.(alter-merge)\\s+(database|table)\\s+\\S+\\s+policy\\s+retention\\s+((softdelete\\s*=\\s*\\S+\\s+harddelete)|((soft|hard)delete))\\s*=\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createRowstoreCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+rowstore\\s+\\w+\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createRowstoreCommandEndingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\s*\\.create\\s+rowstore\\s+\\w+\\s+(writeaheadlog\\s+\\(.+\\)|volatile)\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_adminOperationOptions=Bridge.global.System.Array.init(["show","alter","alter-merge","append","attach","create","delete","detach","drop","rename","set-or-append","set-or-replace","set","export","move","replace","create-or-alter","dup-next-ingest","dup-next-failed-ingest","seal table","purge","purge-cleanup"],Bridge.global.System.String),this.s_showCommandOptions=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["basicauth","cache","capacity","cluster","column","database","databases","diagnostics","extentcontainers","fabric","function","functions","ingestion failures","journal","memory","operations","schema","table","tables","version","queries","commands","principal","rowstores","rowstore","rowstore transactions","rowstore seals"],Bridge.global.System.String)).orderBy(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f1).ToArray(Bridge.global.System.String),this.s_clusterShowKeywordOptions=Bridge.global.System.Array.init(["principals","policy","extents","monitoring","journal","blockedprincipals"," "],Bridge.global.System.String),this.s_tableShowKeywordOptions=Bridge.global.System.Array.init(["principals","policy","extents","ingestion csv mappings","ingestion json mappings","rowstores"," "],Bridge.global.System.String),this.s_setAddCommandsOptions=Bridge.global.System.Array.init(["database","cluster","table","async"],Bridge.global.System.String),this.s_dropCommandsOptions=Bridge.global.System.Array.init(["database","cluster","table","tables","function","column","extent tags","extent","extents","rowstore"],Bridge.global.System.String),this.s_attachCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_moveCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_replaceCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_dropExtentTagsCommandsOptions=Bridge.global.System.Array.init(["from table"],Bridge.global.System.String),this.s_attachExtentsCommandsOptions=Bridge.global.System.Array.init(["into table","by metadata"],Bridge.global.System.String),this.s_attachExtentsIntoSpecifedTableCommandsOptions=Bridge.global.System.Array.init(["by metadata"],Bridge.global.System.String),this.s_moveExtentsCommandsOptions=Bridge.global.System.Array.init(["all","(GUID,...,GUID)","to table"],Bridge.global.System.String),this.s_moveSpecifiedExtentsCommandsOptions=Bridge.global.System.Array.init(["from table"],Bridge.global.System.String),this.s_moveExtentsFromTableCommandsOptions=Bridge.global.System.Array.init(["to table"],Bridge.global.System.String),this.s_showExtentsByEntityCommandsOptions=Bridge.global.System.Array.init(["hot","where tags"],Bridge.global.System.String),this.s_showExtentsByEntityWithTagFiltersCommandsOptions=Bridge.global.System.Array.init(["has","!has","contains","!contains"],Bridge.global.System.String),this.s_replaceExtentsCommandsOptions=Bridge.global.System.Array.init(["in table"],Bridge.global.System.String),this.s_alterCommandOptions=Bridge.global.System.Array.init(["cluster","column","database","function","table","policies","extent tags"],Bridge.global.System.String),this.s_alterMergeAndDeleteCommandOptions=Bridge.global.System.Array.init(["cluster","column","database","table"],Bridge.global.System.String),this.s_createCommandOptions=Bridge.global.System.Array.init(["database","function","table","rowstore"],Bridge.global.System.String),this.s_setUsersAdminsPrettyNameKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors","prettyname"],Bridge.global.System.String),this.s_addSetDropUsersAdminsKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors"],Bridge.global.System.String),this.s_dropDatabaseKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors","prettyname"],Bridge.global.System.String),this.s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","databasecreators"],Bridge.global.System.String),this.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","databasecreators","blockedprincipals"],Bridge.global.System.String),this.s_addClusterBlockedPrincipalsApplicationKeywordOptions=Bridge.global.System.Array.init(["application","user","period","reason"],Bridge.global.System.String),this.s_showBasicAuthUsersKeywordOptions=Bridge.global.System.Array.init(["users"],Bridge.global.System.String),this.s_AddSetAdminsKeywordOptions=Bridge.global.System.Array.init(["admins","ingestors"],Bridge.global.System.String),this.s_createTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["ingestion csv mapping","ingestion json mapping"],Bridge.global.System.String),this.s_alterTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["ingestion csv mapping","ingestion json mapping","docstring","folder","column-docstrings","policy"],Bridge.global.System.String),this.s_alterMergeTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["column-docstrings","policy"],Bridge.global.System.String),this.s_dropTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["admins","ingestors","columns","ingestion csv mapping","ingestion json mapping"],Bridge.global.System.String),this.s_deleteTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["policy"],Bridge.global.System.String),this.s_alterFunctionEntitiesKeywordOptions=Bridge.global.System.Array.init(["docstring","folder"],Bridge.global.System.String),this.s_DropColumnsSyntaxKeywordOptions=Bridge.global.System.Array.init(["(COLUMN1,COLUMN2)"],Bridge.global.System.String),this.s_setNoneKeywordOptions=Bridge.global.System.Array.init(["none"],Bridge.global.System.String),this.s_clusterPoliciesOptions=Bridge.global.System.Array.init(["caching","querythrottling","capacity","rowstore","callout","querylimit"],Bridge.global.System.String),this.s_databasePoliciesOptions=Bridge.global.System.Array.init(["caching","encoding","merge","retention","sharding","streamingingestion"],Bridge.global.System.String),this.s_tablePoliciesOptions=Bridge.global.System.Array.init(["caching","encoding","merge","ingestiontime","retention","roworder","update","sharding","streamingingestion","restricted_view_access"],Bridge.global.System.String),this.s_columnPoliciesOptions=Bridge.global.System.Array.init(["caching","encoding"],Bridge.global.System.String),this.s_multiplePoliciesOptions=Bridge.global.System.Array.init(["of retention","of encoding"],Bridge.global.System.String),this.s_multipleDeletionPoliciesOptions=Bridge.global.System.Array.init(["of retention"],Bridge.global.System.String),this.s_databasePersistencyOptions=Bridge.global.System.Array.init(["persist","volatile"],Bridge.global.System.String),this.s_rowstorePersistencyOptions=Bridge.global.System.Array.init(["writeaheadlog","volatile"],Bridge.global.System.String),this.s_ifNotExistsOptions=Bridge.global.System.Array.init(["ifnotexists"," "],Bridge.global.System.String),this.s_policyKeywordOptions=Bridge.global.System.Array.init(["policy"],Bridge.global.System.String),this.s_principalsPolicySchemaAndExtentsKeywordOptions=Bridge.global.System.Array.init(["principals","policy","schema","extents","journal","purge operations"," "],Bridge.global.System.String),this.s_exportFileFormatOptions=Bridge.global.System.Array.init(["csv","tsv","json","sql"],Bridge.global.System.String),this.s_exportCommandOptions=Bridge.global.System.Array.init(["async compressed","async","compressed"," "],Bridge.global.System.String),this.s_alterDatabaseCommandOptions=Bridge.global.System.Array.init(["policy","persist metadata","prettyname"],Bridge.global.System.String),this.s_duplicateIngestionCommandsOptions=Bridge.global.System.Array.init(["into"],Bridge.global.System.String),this.s_purgeWhatIfCommandOptions=Bridge.global.System.Array.init(["info","stats","purge","retain"],Bridge.global.System.String),this.s_purgeTableCommandsOptions=Bridge.global.System.Array.init(["records"],Bridge.global.System.String),this.s_purgeCleanupCommandsOptions=Bridge.global.System.Array.init(["until="],Bridge.global.System.String),this.s_purgeCommandsOptions=Bridge.global.System.Array.init(["whatif =","maxRecords =","table"],Bridge.global.System.String),this.s_purgeWithPropertiesCommandsOptions=Bridge.global.System.Array.init(["table"],Bridge.global.System.String),this.s_showPrincipalKeywordOptions=Bridge.global.System.Array.init(["access","roles","@'principal' roles"],Bridge.global.System.String),this.s_showFabricKeywordOptions=Bridge.global.System.Array.init(["clocks","locks","cache","nodes","services"],Bridge.global.System.String),this.s_alterMergePolicyRetentionOptions=Bridge.global.System.Array.init(["softdelete","harddelete"],Bridge.global.System.String),this.s_alterMergePolicyRetentionSoftDeleteDefinedOptions=Bridge.global.System.Array.init(["harddelete"],Bridge.global.System.String),this.s_timeSpanPolicyOptions=Bridge.global.System.Array.init(["1d","7d","30d","90d","365d"],Bridge.global.System.String),this.s_createOrAlterOptions=Bridge.global.System.Array.init(["function"],Bridge.global.System.String)}}},fields:{s_afterCreateDatabaseApplyPolicies:null,s_afterAlterDatabaseApplyPolicies:null,s_afterCreateRowStoreApplyPolicies:null,s_afterExportFile:null},ctors:{init:function(){this.s_afterCreateDatabaseApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f2(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterAlterDatabaseApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f3(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterCreateRowStoreApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f4(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterExportFile=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f5(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy)))},$ctor1:function(e,t,n,i,r,o,s){void 0===n&&(n=null),void 0===i&&(i=null),void 0===r&&(r=null),void 0===o&&(o=!1),void 0===s&&(s=!1),this.$initialize(),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.$ctor1.call(this,e,t,n,i,r,o,s),this.LoadRules$1()},ctor:function(e){this.$initialize(),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ctor.call(this,e),this.LoadRules$1()}},methods:{Clone$1:function(){return new Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.ctor(this)},LoadRules$1:function(){Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.TableNames)&&this.AddTableControlCommands(),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.FunctionNames)&&this.AddFunctionControlCommands(),this.AddControlCommandKeywords(),this.AddPolicyControlCommands(),this.AddMultiplePoliciesControlCommands(),this.DeleteMultiplePoliciesControlCommands(),this.AddPermissionsControlCommands(),this.AddDatabaseCreateCommands(),this.AddExportControlCommand(),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,this.Databases)&&this.AddDatabaseControlCommands(this.Databases),this.AddAddDropControlCommandKeywords(),this.AddRowStoreControlCommands()},AddDatabaseCreateCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseCreatePersistencyOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createDatabaseCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePersistencyOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterCreateDatabaseApplyPolicies,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateIfNotExistsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createDatabaseCommandEndingRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_ifNotExistsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddControlCommandKeywords:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAdminCommandsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_lineWithDotBeginningRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Command,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_adminOperationOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowPrincipalCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showPrincipalCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showPrincipalKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowFabricOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showFabricCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showFabricKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddExportControlCommand:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" to ",t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandWithModifiersToRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportFileFormatOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterExportFile,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandNoModifiersAndOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandNoModifiersToRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportFileFormatOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterExportFile,e))},AddPermissionsControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowBasicAuthOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showBasicAuthCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showBasicAuthUsersKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowClusterPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showClusterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterShowKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterAdminsUsersViewersDatabaseCreatorsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddClusterBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterBlockedPrincipalsApplicationKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterUsersNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterUsersNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterAdminsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterAdminsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterViewersNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterViewersNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterDatabaseCreatorsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterDatabaseCreatorsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddPolicyControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyCommand,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldClusterPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterPolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabasePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTablePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tablePolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tablePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldColumnPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_columnPolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_columnPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddMultiplePoliciesControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMultiplePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMultiplePoliciesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_multiplePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},DeleteMultiplePoliciesControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteMultiplePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteMultiplePoliciesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_multipleDeletionPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddDatabaseControlCommands:function(t){var n;this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowDatabasePrincipalsPoliciesAndSchemaOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showDatabasePrincipalsCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_principalsPolicySchemaAndExtentsKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseAdminsUsersViewersPrettyNameOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setUsersAdminsPrettyNameKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddDatabaseAdminsUsersViewersOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDatabaseAdminsUsersViewersCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addSetDropUsersAdminsKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropDatabaseOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabasePropertyCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabaseKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseUsersNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseUsersNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseAdminsNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseAdminsNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseViewersNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseViewersNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseIngestorsNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseIngestorsNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n));var i=Bridge.global.System.Linq.Enumerable.from(t).select(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f6).orderBy(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f7).ToArray(Bridge.global.System.String);this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyCommandOnDatabase,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterDatabaseCommandOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterDatabaseRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterDatabaseCommandOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n.AfterApplyPolicies=this.s_afterAlterDatabaseApplyPolicies,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergePolicyRetentionOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendAssignmentPolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergePolicyRetentionSoftDeleteDefinedOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionSoftDeleteDefinedRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionSoftDeleteDefinedOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendAssignmentPolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTimeSpanPolicyOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionOptionsRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_timeSpanPolicyOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n))},AddTableControlCommands:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_appendTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setOrAppendReplaceTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showTableOptionsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tableShowKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_anySimpleSyntaxActionTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropExtentTagsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsFromTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (@'')",t.OffsetPosition=-2,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterExtentTagsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterExtentTagsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Command,Bridge.global.System.Array.init(["(@'') <| "],Bridge.global.System.String)),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="",t.OffsetPosition=-6,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachExtentsIntoTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoSpecifiedTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoSpecifedTableCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveSpecifiedExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveSpecifiedExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveSpecifiedExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveExtentsToTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromSpecifiedTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromTableCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsToTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowExtentsByEntityOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsInSpecifiedEntityCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsByEntityCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowExtentsByEntityWithTagsFiltersOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsByEntityWithTagFiltersCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" @''",t.OffsetPosition=-1,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldReplaceExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsInTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableAdminsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableAdminsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_AddSetAdminsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddTableAdminsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addTableAdminsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_AddSetAdminsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropTableColumnsSyntaxOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableColumnsSyntaxCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_DropColumnsSyntaxKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableAdminsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableAdminsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableIngestorsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableIngestorsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_duplicateIngestionIntoRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" to h@''",t.OffsetPosition=-1,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWhatIfRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWhatIfCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWithPropertiesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWithPropertiesCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeTableRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeSpecifiedTableRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeTableCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" <|",t),e))},AddRowStoreControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldRowStoreCreatePersistencyOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createRowstoreCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_rowstorePersistencyOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterCreateRowStoreApplyPolicies,e))},AddFunctionControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldFunctionNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_anySimpleSyntaxActionFunctionCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.ExpressionFunction,this.FunctionNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterFunctionEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterFunctionEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterFunctionEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddAddDropControlCommandKeywords:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setAddCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setAddCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldReplaceCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergeCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeAndDeleteCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeAndDeleteCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateOrAlterOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createOrAlterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createOrAlterOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldIngestionDuplicationOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_ingestionDuplicationCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_duplicateIngestionCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCleanupCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCleanupCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" datetime()",t.OffsetPosition=-1,t),e))}}}),Bridge.ns("Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider,{f1:function(e){return e},f2:function(e){var t;return e.add("volatile",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("persist",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@'', h@'') ",t.OffsetPosition=-9,t)),e},f3:function(e){var t;return e.add("policy",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("persist metadata",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" h'' ",t.OffsetPosition=-2,t)),e},f4:function(e){var t;return e.add("volatile",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("writeaheadlog",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@'', h@'') ",t.OffsetPosition=-9,t)),e},f5:function(e){var t;return e.add("csv",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@'')",t.OffsetPosition=-2,t)),e.add("tsv",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@'')",t.OffsetPosition=-2,t)),e.add("json",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@'')",t.OffsetPosition=-2,t)),e.add("sql",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e},f6:function(e){return e.Name},f7:function(e){return e}})})},function(e,t,n){"use strict";var i,r,o,s,a,l,u,d,c,g,m,h,p,f,y;n.r(t),n.d(t,"Position",function(){return i}),n.d(t,"Range",function(){return r}),n.d(t,"Location",function(){return o}),n.d(t,"Color",function(){return s}),n.d(t,"ColorInformation",function(){return a}),n.d(t,"ColorPresentation",function(){return l}),n.d(t,"FoldingRangeKind",function(){return u}),n.d(t,"FoldingRange",function(){return d}),n.d(t,"DiagnosticRelatedInformation",function(){return c}),n.d(t,"DiagnosticSeverity",function(){return g}),n.d(t,"Diagnostic",function(){return m}),n.d(t,"Command",function(){return h}),n.d(t,"TextEdit",function(){return p}),n.d(t,"TextDocumentEdit",function(){return f}),n.d(t,"WorkspaceEdit",function(){return y}),n.d(t,"WorkspaceChange",function(){return $}),n.d(t,"TextDocumentIdentifier",function(){return S}),n.d(t,"VersionedTextDocumentIdentifier",function(){return b}),n.d(t,"TextDocumentItem",function(){return I}),n.d(t,"MarkupKind",function(){return C}),n.d(t,"MarkupContent",function(){return _}),n.d(t,"CompletionItemKind",function(){return v}),n.d(t,"InsertTextFormat",function(){return T}),n.d(t,"CompletionItem",function(){return x}),n.d(t,"CompletionList",function(){return w}),n.d(t,"MarkedString",function(){return B}),n.d(t,"Hover",function(){return D}),n.d(t,"ParameterInformation",function(){return A}),n.d(t,"SignatureInformation",function(){return R}),n.d(t,"DocumentHighlightKind",function(){return E}),n.d(t,"DocumentHighlight",function(){return K}),n.d(t,"SymbolKind",function(){return N}),n.d(t,"SymbolInformation",function(){return P}),n.d(t,"DocumentSymbol",function(){return j}),n.d(t,"CodeActionKind",function(){return k}),n.d(t,"CodeActionContext",function(){return L}),n.d(t,"CodeAction",function(){return M}),n.d(t,"CodeLens",function(){return F}),n.d(t,"FormattingOptions",function(){return z}),n.d(t,"DocumentLink",function(){return U}),n.d(t,"EOL",function(){return V}),n.d(t,"TextDocument",function(){return G}),n.d(t,"TextDocumentSaveReason",function(){return W}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return q.objectLiteral(t)&&q.number(t.line)&&q.number(t.character)}}(i||(i={})),function(e){e.create=function(e,t,n,r){if(q.number(e)&&q.number(t)&&q.number(n)&&q.number(r))return{start:i.create(e,t),end:i.create(n,r)};if(i.is(e)&&i.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},e.is=function(e){var t=e;return q.objectLiteral(t)&&i.is(t.start)&&i.is(t.end)}}(r||(r={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return q.defined(t)&&r.is(t.range)&&(q.string(t.uri)||q.undefined(t.uri))}}(o||(o={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return q.number(t.red)&&q.number(t.green)&&q.number(t.blue)&&q.number(t.alpha)}}(s||(s={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&s.is(t.color)}}(a||(a={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return q.string(t.label)&&(q.undefined(t.textEdit)||p.is(t))&&(q.undefined(t.additionalTextEdits)||q.typedArray(t.additionalTextEdits,p.is))}}(l||(l={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(u||(u={})),function(e){e.create=function(e,t,n,i,r){var o={startLine:e,endLine:t};return q.defined(n)&&(o.startCharacter=n),q.defined(i)&&(o.endCharacter=i),q.defined(r)&&(o.kind=r),o},e.is=function(e){var t=e;return q.number(t.startLine)&&q.number(t.startLine)&&(q.undefined(t.startCharacter)||q.number(t.startCharacter))&&(q.undefined(t.endCharacter)||q.number(t.endCharacter))&&(q.undefined(t.kind)||q.string(t.kind))}}(d||(d={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return q.defined(t)&&o.is(t.location)&&q.string(t.message)}}(c||(c={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(g||(g={})),function(e){e.create=function(e,t,n,i,r,o){var s={range:e,message:t};return q.defined(n)&&(s.severity=n),q.defined(i)&&(s.code=i),q.defined(r)&&(s.source=r),q.defined(o)&&(s.relatedInformation=o),s},e.is=function(e){var t=e;return q.defined(t)&&r.is(t.range)&&q.string(t.message)&&(q.number(t.severity)||q.undefined(t.severity))&&(q.number(t.code)||q.string(t.code)||q.undefined(t.code))&&(q.string(t.source)||q.undefined(t.source))&&(q.undefined(t.relatedInformation)||q.typedArray(t.relatedInformation,c.is))}}(m||(m={})),function(e){e.create=function(e,t){for(var n=[],i=2;i0&&(r.arguments=n),r},e.is=function(e){var t=e;return q.defined(t)&&q.string(t.title)&&q.string(t.command)}}(h||(h={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){var t=e;return q.objectLiteral(t)&&q.string(t.newText)&&r.is(t.range)}}(p||(p={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return q.defined(t)&&b.is(t.textDocument)&&Array.isArray(t.edits)}}(f||(f={})),(y||(y={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||q.typedArray(t.documentChanges,f.is))};var S,b,I,C,_,v,T,x,w,B,D,A,R,E,K,N,P,O=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(p.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(p.replace(e,t))},e.prototype.delete=function(e){this.edits.push(p.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),$=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach(function(e){var n=new O(e.edits);t._textEditChanges[e.textDocument.uri]=n}):e.changes&&Object.keys(e.changes).forEach(function(n){var i=new O(e.changes[n]);t._textEditChanges[n]=i}))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(b.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for versioned document changes.");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new O(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new O(r),this._textEditChanges[e]=i}return i},e}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return q.defined(t)&&q.string(t.uri)}}(S||(S={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return q.defined(t)&&q.string(t.uri)&&q.number(t.version)}}(b||(b={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return q.defined(t)&&q.string(t.uri)&&q.string(t.languageId)&&q.number(t.version)&&q.string(t.text)}}(I||(I={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(C||(C={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(C||(C={})),(_||(_={})).is=function(e){var t=e;return q.objectLiteral(e)&&C.is(t.kind)&&q.string(t.value)},function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(v||(v={})),function(e){e.PlainText=1,e.Snippet=2}(T||(T={})),(x||(x={})).create=function(e){return{label:e}},(w||(w={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},function(e){e.fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},e.is=function(e){var t=e;return q.string(t)||q.objectLiteral(t)&&q.string(t.language)&&q.string(t.value)}}(B||(B={})),(D||(D={})).is=function(e){var t=e;return q.objectLiteral(t)&&(_.is(t.contents)||B.is(t.contents)||q.typedArray(t.contents,B.is))&&(void 0===e.range||r.is(e.range))},(A||(A={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(R||(R={})).create=function(e,t){for(var n=[],i=2;i=0;o--){var s=i[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=r))throw new Error("Ovelapping edit");n=n.substring(0,a)+s.newText+n.substring(l,n.length),r=a}return n}}(G||(G={})),function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3}(W||(W={}));var q,Y=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=null}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=null},e.prototype.getLineOffsets=function(){if(null===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return i.create(0,e);for(;ne?r=o:n=o+1}var s=n-1;return i.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1this.length)&&(t=this.length),this.substring(t-e.length,t)===e}),"undefined"==typeof document&&(n(6),n(8));var r=n(9),o=n(106),s=monaco.Promise,a=Kusto.Data.IntelliSense,l=Bridge.global.System.Collections.Generic.List$1,u=(Bridge.global.System.Collections.Generic.IEnumerable$1,function(){function e(e,t,n){this.version=e,this.uri=t,this.parseMode=n}return e.prototype.isParseNeeded=function(e,t){return!(e.uri===this.uri&&e.version<=this.version&&t<=this.parseMode)},e}()),d=function(){function e(t,n){var i;this._kustoKindtoKsKind=((i={})[a.OptionKind.None]=r.CompletionItemKind.Interface,i[a.OptionKind.Operator]=r.CompletionItemKind.Method,i[a.OptionKind.Command]=r.CompletionItemKind.Method,i[a.OptionKind.Service]=r.CompletionItemKind.Class,i[a.OptionKind.Policy]=r.CompletionItemKind.Reference,i[a.OptionKind.Database]=r.CompletionItemKind.Class,i[a.OptionKind.Table]=r.CompletionItemKind.Class,i[a.OptionKind.DataType]=r.CompletionItemKind.Class,i[a.OptionKind.Literal]=r.CompletionItemKind.Property,i[a.OptionKind.Parameter]=r.CompletionItemKind.Variable,i[a.OptionKind.IngestionMapping]=r.CompletionItemKind.Variable,i[a.OptionKind.ExpressionFunction]=r.CompletionItemKind.Variable,i[a.OptionKind.Option]=r.CompletionItemKind.Interface,i[a.OptionKind.OptionKind]=r.CompletionItemKind.Interface,i[a.OptionKind.OptionRender]=r.CompletionItemKind.Interface,i[a.OptionKind.Column]=r.CompletionItemKind.Function,i[a.OptionKind.ColumnString]=r.CompletionItemKind.Field,i[a.OptionKind.ColumnNumeric]=r.CompletionItemKind.Field,i[a.OptionKind.ColumnDateTime]=r.CompletionItemKind.Field,i[a.OptionKind.ColumnTimespan]=r.CompletionItemKind.Field,i[a.OptionKind.FunctionServerSide]=r.CompletionItemKind.Field,i[a.OptionKind.FunctionAggregation]=r.CompletionItemKind.Field,i[a.OptionKind.FunctionFilter]=r.CompletionItemKind.Field,i[a.OptionKind.FunctionScalar]=r.CompletionItemKind.Field,i[a.OptionKind.ClientDirective]=r.CompletionItemKind.Enum,i),this._kustoJsSchema=e.convertToKustoJsSchema(t),this.configure(n),this._newlineAppendPipePolicy=new Kusto.Data.IntelliSense.ApplyPolicy,this._newlineAppendPipePolicy.Text="\n| "}return e.prototype.configure=function(e){this._languageSettings=e,this._languageSettings.useIntellisenseV2||this.createRulesProvider(this._kustoJsSchema)},e.prototype.doComplete=function(e,t){return this.doCompleteV1(e,t)},e.prototype.doCompleteV1=function(e,t){var n=this;this.parseDocumentV1(e,a.ParseMode.TokenizeAllText);var i=e.offsetAt(t),o=this.getCurrentCommand(e,i),l=o?o.Text.substring(o.CslExpressionStartPosition,i):"",u=this.getCommandWithoutLastWord(l),d=this._rulesProvider.AnalyzeCommand$1(l,o).Context,c={v:null};this._rulesProvider.TryMatchAnyRule(u,c);var g=c.v;if(g){var m=Bridge.toArray(g.GetCompletionOptions(d));this._languageSettings.newlineAfterPipe&&g.DefaultAfterApplyPolicy===Kusto.Data.IntelliSense.ApplyPolicy.AppendPipePolicy&&(g.DefaultAfterApplyPolicy=this._newlineAppendPipePolicy);var h=m.map(function(e,t){var i=n.getTextToInsert(g,e),o=i.insertText,s=i.insertTextFormat,l=a.CslDocumentation.Instance.GetTopic(e),u=r.CompletionItem.create(e.Value);return u.kind=n.kustoKindToLsKind(e.Kind),u.insertText=o,u.insertTextFormat=s,u.sortText=n.getSortText(t+1),u.detail=l?l.ShortDescription:void 0,u.documentation=l?{value:l.LongDescription,kind:r.MarkupKind.Markdown}:void 0,u});return s.as(r.CompletionList.create(h))}return s.as(r.CompletionList.create([]))},e.prototype.doRangeFormat=function(t,n){var i=t.getText(),o=t.offsetAt(n.start),a=t.offsetAt(n.end),l=i.substring(o,a),u=e.trimTrailingNewlineFromRange(l,o,t,n),d=Kusto.Data.Common.CslQueryParser.PrettifyQuery(l,"");return s.as([r.TextEdit.replace(u,d)])},e.prototype.doDocumentformat=function(e){return this.getCommandsInDocument(e).then(function(t){var n=t.map(function(e){return Kusto.Data.Common.CslQueryParser.PrettifyQuery(e.text,"")}).join("\r\n\r\n"),i=e.positionAt(0),o=e.positionAt(e.getText().length),s=r.Range.create(i,o);return[r.TextEdit.replace(s,n)]})},e.prototype.doCurrentCommandFormat=function(e,t){var n=this.getCurrentCommand(e,e.offsetAt(t)),i=e.positionAt(n.AbsoluteStart),o=e.positionAt(n.AbsoluteEnd),s=r.Range.create(i,o);return this.doRangeFormat(e,s)},e.prototype.doFolding=function(e){return this.getCommandsInDocument(e).then(function(t){return t.map(function(t){t.text.endsWith("\r\n")?t.absoluteEnd-=2:(t.text.endsWith("\r")||t.text.endsWith("\n"))&&--t.absoluteEnd;var n=e.positionAt(t.absoluteStart),i=e.positionAt(t.absoluteEnd);return{startLine:n.line,startColumn:n.character,endLine:i.line,endColumn:i.character}})})},e.prototype.doValidation=function(e){return s.as([])},e.prototype.doColorization=function(e){return s.as([])},e.prototype.setSchema=function(t){var n=this;if(this._schema=t,!this._languageSettings.useIntellisenseV2)return s.timeout(0).then(function(){n._schema=t;var i=e.convertToKustoJsSchema(t);n._kustoJsSchema=i,n.createRulesProvider(i)});var i=e.convertToKustoJsSchemaV2(t);this._kustoJsSchemaV2=i},e.prototype.setSchemaFromShowSchema=function(e,t,n){var i=this;return this.normalizeSchema(e,t,n).then(function(e){return i.setSchema(e)})},e.prototype.normalizeSchema=function(e,t,n){var i=Object.keys(e.Databases).map(function(t){return e.Databases[t]}).map(function(e){var t=e.Name,n=e.Tables,i=e.Functions;return{name:t,tables:Object.keys(n).map(function(e){return n[e]}).map(function(e){return{name:e.Name,columns:e.OrderedColumns.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType}})}}),functions:Object.keys(i).map(function(e){return i[e]}).map(function(e){return{name:e.Name,body:e.Body,inputParameters:e.InputParameters.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType,columns:e.Columns?e.Columns.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType}}):[]}})}})}});return{cluster:{connectionString:t,databases:i},database:i.filter(function(e){return e.name===n})[0]}},e.prototype.getSchema=function(){return s.as(this._schema)},e.prototype.getCommandInContext=function(e,t){this.parseDocumentV1(e,a.ParseMode.CommandTokensOnly);var n=this.getCurrentCommand(e,t);return n?s.as(n.Text):null},e.prototype.getCommandsInDocument=function(e){this.parseDocumentV1(e,a.ParseMode.CommandTokensOnly);var t=Bridge.toArray(this._parser.Results);return s.as(t.map(function(e){return{absoluteStart:e.AbsoluteStart,absoluteEnd:e.AbsoluteEnd,text:e.Text}}))},e.prototype.getClientDirective=function(e){var t={v:null},n=a.CslCommandParser.IsClientDirective(e,t);return s.as({isClientDirective:n,directiveWithoutLeadingComments:t.v})},e.prototype.getAdminCommand=function(e){var t={v:null},n=a.CslCommandParser.IsAdminCommand$1(e,t);return s.as({isAdminCommand:n,adminCommandWithoutLeadingComments:t.v})},Object.defineProperty(e,"dummySchema",{get:function(){var e={name:"Kuskus",tables:[{name:"KustoLogs",columns:[{name:"Source",type:"Bridge.global.System.String"},{name:"Timestamp",type:"Bridge.global.System.DateTime"},{name:"Directory",type:"Bridge.global.System.String"}]}],functions:[{name:"HowBig",inputParameters:[{name:"T",columns:[{name:"Timestamp",type:"Bridge.global.System.Datetime",cslType:"datetime"}]}],body:"{\r\n union \r\n (T | count | project V='Volume', Metric = strcat(Count/1e9, ' Billion records')),\r\n (T | summarize FirstRecord=min(Timestamp)| project V='Volume', Metric = strcat(toint((now()-FirstRecord)/1d), ' Days of data (from: ', format_datetime(FirstRecord, 'yyyy-MM-dd'),')')),\r\n (T | where Timestamp > ago(1h) | count | project V='Velocity', Metric = strcat(Count/1e6, ' Million records / hour')),\r\n (T | summarize Latency=now()-max(Timestamp) | project V='Velocity', Metric = strcat(Latency / 1sec, ' seconds latency')),\r\n (T | take 1 | project V='Variety', Metric=tostring(pack_all()))\r\n | order by V \r\n}"},{name:"FindCIDPast24h",inputParameters:[{name:"clientActivityId",type:"Bridge.global.System.String",cslType:"string"}],body:"{ KustoLogs | where Timestamp > now(-1d) | where ClientActivityId == clientActivityId} "}]};return{cluster:{connectionString:"https://kuskus.kusto.windows.net;fed=true",databases:[e]},database:e}},enumerable:!0,configurable:!0}),e.convertToKustoJsSchema=function(e){var t=e.database?e.database.name:void 0,n=new a.KustoIntelliSenseClusterEntity,r=void 0;n.ConnectionString=e.cluster.connectionString;var o=[];return e.cluster.databases.forEach(function(e){var n=new a.KustoIntelliSenseDatabaseEntity;n.Name=e.name;var s=[];e.tables.forEach(function(e){var t=new a.KustoIntelliSenseTableEntity;t.Name=e.name;var n=[];e.columns.forEach(function(e){var t=new a.KustoIntelliSenseColumnEntity;t.Name=e.name,t.TypeCode=a.EntityDataType[e.type.replace("Bridge.global.System.","")],n.push(t)}),t.Columns=new Bridge.ArrayEnumerable(n),s.push(t)});var l=[];e.functions.forEach(function(e){var t=new a.KustoIntelliSenseFunctionEntity;t.Name=e.name,t.CallName=i.getCallName(e),t.Expression=i.getExpression(e),l.push(t)}),n.Tables=new Bridge.ArrayEnumerable(s),n.Functions=new Bridge.ArrayEnumerable(l),o.push(n),e.name==t&&(r=n)}),n.Databases=new Bridge.ArrayEnumerable(o),new a.KustoIntelliSenseQuerySchema(n,r)},e.scalarParametersToSignature=function(e){return"("+e.map(function(e){return e.name+": "+e.cslType}).join(", ")+")"},e.inputParameterToSignature=function(e){var t=this;return"("+e.map(function(e){if(e.columns){var n=t.scalarParametersToSignature(e.columns);return e.name+": "+n}return e.name+": "+e.cslType}).join(", ")+")"},e.toLetStatement=function(e){var t=this.inputParameterToSignature(e.inputParameters);return"let "+e.name+" = "+t+" "+e.body},e.trimTrailingNewlineFromRange=function(e,t,n,i){for(var o=e.length-1;"\r"===e[o]||"\n"===e[o];)--o;var s=t+o+1,a=n.positionAt(s);return r.Range.create(i.start,a)},e.prototype.getSortText=function(e){if(e<=0)throw new RangeError("order should be a number >= 1. instead got "+e);for(var t="",n=Math.floor(e/26),i=0;i0&&(t+=String.fromCharCode(96+r)),t},e.prototype.parseDocumentV1=function(e,t){this._parsePropertiesV1&&!this._parsePropertiesV1.isParseNeeded(e,t)||(this._parser.Parse(this._rulesProvider,e.getText(),t),this._parsePropertiesV1=new u(e.version,e.uri,t))},e.prototype.getCurrentCommand=function(e,t){var n=Bridge.toArray(this._parser.Results),i=n.filter(function(e){return e.AbsoluteStart<=t&&e.AbsoluteEnd>=t})[0];return i||(i=n.filter(function(e){return e.AbsoluteStart<=t&&e.AbsoluteEnd+1>=t})[0])&&!i.Text.endsWith("\r\n\r\n")?i:null},e.prototype.getTextToInsert=function(e,t){var n=e.GetBeforeApplyInfo(t.Value),i=e.GetAfterApplyInfo(t.Value),o=n.Text||""+t.Value+i.Text||"",s=r.InsertTextFormat.PlainText;if(i.OffsetToken&&i.OffsetPosition){var a=o.indexOf(i.OffsetToken);a>=0&&(o=this.insertToString(o,"$0",a-o.length+i.OffsetPosition),s=r.InsertTextFormat.Snippet)}else i.OffsetPosition&&(o=this.insertToString(o,"$0",i.OffsetPosition),s=r.InsertTextFormat.Snippet);return{insertText:o,insertTextFormat:s}},e.prototype.insertToString=function(e,t,n){var i=e.length+n;return n>=0||i<0?e:e.substring(0,i)+t+e.substring(i)},e.prototype.getCommandWithoutLastWord=function(e){var t=o("[\\w_]*$","s");return e.replace(t,"")},e.prototype.createRulesProvider=function(e){var t=new(l(String)),n=new(l(String));this._rulesProvider=this._languageSettings&&this._languageSettings.includeControlCommands?new a.CslIntelliSenseRulesProvider.$ctor1(e.Cluster,e,t,n,null,!0,!0):new a.CslQueryIntelliSenseRulesProvider.$ctor1(e.Cluster,e,t,n,null,null,null),this._parser=new a.CslCommandParser},e.prototype.kustoKindToLsKind=function(e){return this._kustoKindtoKsKind[e]||r.CompletionItemKind.Variable},e.prototype.tokenize=function(e,t){return this._parser.Parse(this._rulesProvider,e,a.ParseMode.TokenizeAllText),Bridge.toArray(this._parser.Results).map(function(e){return Bridge.toArray(e.Tokens)}).reduce(function(e,t){return e.concat(t)},[])},e}(),c=new d(d.dummySchema,{includeControlCommands:!0,useIntellisenseV2:!1});t.getKustoLanguageService=function(){return c},t.getKustoTokenizer=function(){return c}},function(e,t){function n(e){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=11},function(e,t,n){var i=n(13);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* -------------------- IE10 remove auto clear button -------------------- */\n\n::-ms-clear {\n\tdisplay: none;\n}\n\n/* All widgets */\n/* I am not a big fan of this rule */\n.monaco-editor .editor-widget input {\n\tcolor: inherit;\n}\n\n/* -------------------- Editor -------------------- */\n\n.monaco-editor {\n\tposition: relative;\n\toverflow: visible;\n\t-webkit-text-size-adjust: 100%;\n\t-webkit-font-feature-settings: "liga" off, "calt" off;\n\tfont-feature-settings: "liga" off, "calt" off;\n}\n.monaco-editor.enable-ligatures {\n\t-webkit-font-feature-settings: "liga" on, "calt" on;\n\tfont-feature-settings: "liga" on, "calt" on;\n}\n\n/* -------------------- Misc -------------------- */\n\n.monaco-editor .overflow-guard {\n\tposition: relative;\n\toverflow: hidden;\n}\n\n.monaco-editor .view-overlays {\n\tposition: absolute;\n\ttop: 0;\n}',""])},function(e,t){e.exports=function(e){var t="undefined"!=typeof window&&window.location;if(!t)throw new Error("fixUrls requires window.location");if(!e||"string"!=typeof e)return e;var n=t.protocol+"//"+t.host,i=n+t.pathname.replace(/\/[^\/]*$/,"/");return e.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(e,t){var r,o=t.trim().replace(/^"(.*)"$/,function(e,t){return t}).replace(/^'(.*)'$/,function(e,t){return t});return/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/|\s*$)/i.test(o)?e:(r=0===o.indexOf("//")?o:0===o.indexOf("/")?n+o:i+o.replace(/^\.\//,""),"url("+JSON.stringify(r)+")")})}},function(e,t,n){var i=n(16);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .vs-whitespace {\n\tdisplay:inline-block;\n}\n\n",""])},function(e,t,n){var i=n(18);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .inputarea {\n\tmin-width: 0;\n\tmin-height: 0;\n\tmargin: 0;\n\tpadding: 0;\n\tposition: absolute;\n\toutline: none !important;\n\tresize: none;\n\tborder: none;\n\toverflow: hidden;\n\tcolor: transparent;\n\tbackground-color: transparent;\n}\n/*.monaco-editor .inputarea {\n\tposition: fixed !important;\n\twidth: 800px !important;\n\theight: 500px !important;\n\ttop: initial !important;\n\tleft: initial !important;\n\tbottom: 0 !important;\n\tright: 0 !important;\n\tcolor: black !important;\n\tbackground: white !important;\n\tline-height: 15px !important;\n\tfont-size: 14px !important;\n}*/\n.monaco-editor .inputarea.ime-input {\n\tz-index: 10;\n}\n",""])},function(e,t,n){var i=n(20);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .margin-view-overlays .line-numbers {\n\tposition: absolute;\n\ttext-align: right;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tbox-sizing: border-box;\n\tcursor: default;\n\theight: 100%;\n}\n\n.monaco-editor .relative-current-line-number {\n\ttext-align: left;\n\tdisplay: inline-block;\n\twidth: 100%;\n}\n\n.monaco-editor .margin-view-overlays .line-numbers {\n\tcursor: -webkit-image-set(\n\t\turl("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNSIgaGVpZ2h0PSIyMSIgeD0iMHB4IiB5PSIwcHgiIHZpZXdCb3g9IjAgMCAxNSAyMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMTUgMjE7Ij48cG9seWdvbiBzdHlsZT0iZmlsbDojRkZGRkZGO3N0cm9rZTojMDAwMDAwIiBwb2ludHM9IjE0LjUsMS4yIDEuOSwxMy44IDcuMSwxMy44IDQuNSwxOS4xIDcuNywyMC4xIDEwLjMsMTQuOSAxNC41LDE4Ii8+PC9zdmc+") 1x,\n\t\turl("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMzAiIGhlaWdodD0iNDIiIHZpZXdCb3g9IjAgMCAzMCA0MiIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAgMzAgNDI7Ij48cG9seWdvbiBzdHlsZT0iZmlsbDojRkZGRkZGO3N0cm9rZTojMDAwMDAwO3N0cm9rZS13aWR0aDoyOyIgcG9pbnRzPSIyOSwyLjQgMy44LDI3LjYgMTQuMywyNy42IDksMzguMSAxNS40LDQwLjIgMjAuNiwyOS43IDI5LDM2Ii8+PC9zdmc+Cg==") 2x\n\t) 30 0, default;\n}\n\n.monaco-editor.mac .margin-view-overlays .line-numbers {\n\tcursor: -webkit-image-set(\n\t\turl("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMiIgaGVpZ2h0PSIxOCIgdmlld0JveD0iMCAwIDEyIDE4Ij48c3R5bGU+LnN0MHtmaWxsOiNmZmZ9PC9zdHlsZT48dGl0bGU+ZmxpcHBlZC1jdXJzb3ItbWFjPC90aXRsZT48cGF0aCBkPSJNNC4zIDE2LjVsMS42LTQuNkgxLjFMMTEuNSAxLjJ2MTQuNEw4LjcgMTNsLTEuNiA0LjV6Ii8+PHBhdGggY2xhc3M9InN0MCIgZD0iTTExIDE0LjVsLTIuNS0yLjNMNyAxNi43IDUgMTZsMS42LTQuNWgtNGw4LjUtOU0wIDEyLjVoNS4ybC0xLjUgNC4xTDcuNSAxOCA5IDE0LjJsMi45IDIuM1YwTDAgMTIuNXoiLz48L3N2Zz4=") 1x,\n\t\turl("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIzNiIgdmlld0JveD0iMCAwIDI0IDM2LjEiPjxkZWZzPjxzdHlsZT4uYXtmaWxsOiNmZmY7fTwvc3R5bGU+PC9kZWZzPjx0aXRsZT5mbGlwcGVkLWN1cnNvci1tYWMtMng8L3RpdGxlPjxwb2x5Z29uIHBvaW50cz0iOC42IDMzLjEgMTEuOCAyMy45IDIuMiAyMy45IDIzIDIuNSAyMyAzMS4zIDE3LjQgMjYuMSAxNC4yIDM1LjEgOC42IDMzLjEiLz48cGF0aCBjbGFzcz0iYSIgZD0iTTIyLDI5LjFsLTUtNC42LTMuMDYyLDguOTM4LTQuMDYyLTEuNUwxMywyM0g1TDIyLDVNMCwyNUgxMC40bC0zLDguM0wxNSwzNi4xbDMuMTI1LTcuNjYyTDI0LDMzVjBaIi8+PC9zdmc+") 2x\n\t) 24 3, default;\n}\n\n.monaco-editor .margin-view-overlays .line-numbers.lh-odd {\n\tmargin-top: 1px;\n}\n',""])},function(e,t,n){var i=n(22);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .view-overlays .current-line {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbox-sizing: border-box;\n}",""])},function(e,t,n){var i=n(24);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .margin-view-overlays .current-line {\n\tdisplay: block;\n\tposition: absolute;\n\tleft: 0;\n\ttop: 0;\n\tbox-sizing: border-box;\n}\n\n.monaco-editor .margin-view-overlays .current-line.current-line-margin.current-line-margin-both {\n\tborder-right: 0;\n}",""])},function(e,t,n){var i=n(26);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcdr = core decorations rendering (div)\n*/\n.monaco-editor .lines-content .cdr {\n\tposition: absolute;\n}",""])},function(e,t,n){var i=n(28);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .glyph-margin {\n\tposition: absolute;\n\ttop: 0;\n}\n\n/*\n\tKeeping name short for faster parsing.\n\tcgmr = core glyph margin rendering (div)\n*/\n.monaco-editor .margin-view-overlays .cgmr {\n\tposition: absolute;\n}\n",""])},function(e,t,n){var i=n(30);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcigr = core ident guides rendering (div)\n*/\n.monaco-editor .lines-content .cigr {\n\tposition: absolute;\n}\n.monaco-editor .lines-content .cigra {\n\tposition: absolute;\n}\n",""])},function(e,t,n){var i=n(32);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Uncomment to see lines flashing when they're painted */\n/*.monaco-editor .view-lines > .view-line {\n\tbackground-color: none;\n\tanimation-name: flash-background;\n\tanimation-duration: 800ms;\n}\n@keyframes flash-background {\n\t0% { background-color: lightgreen; }\n\t100% { background-color: none }\n}*/\n\n.monaco-editor.safari .lines-content,\n.monaco-editor.safari .view-line,\n.monaco-editor.safari .view-lines {\n\t-webkit-user-select: text;\n\tuser-select: text;\n}\n\n.monaco-editor .lines-content,\n.monaco-editor .view-line,\n.monaco-editor .view-lines {\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-o-user-select: none;\n\tuser-select: none;\n}\n\n.monaco-editor .view-lines {\n\tcursor: text;\n\twhite-space: nowrap;\n}\n\n.monaco-editor.vs-dark.mac .view-lines,\n.monaco-editor.hc-black.mac .view-lines {\n\tcursor: -webkit-image-set(url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAL0lEQVQoz2NgCD3x//9/BhBYBWdhgFVAiVW4JBFKGIa4AqD0//9D3pt4I4tAdAMAHTQ/j5Zom30AAAAASUVORK5CYII=) 1x, url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAQAAADZc7J/AAAAz0lEQVRIx2NgYGBY/R8I/vx5eelX3n82IJ9FxGf6tksvf/8FiTMQAcAGQMDvSwu09abffY8QYSAScNk45G198eX//yev73/4///701eh//kZSARckrNBRvz//+8+6ZohwCzjGNjdgQxkAg7B9WADeBjIBqtJCbhRA0YNoIkBSNmaPEMoNmA0FkYNoFKhapJ6FGyAH3nauaSmPfwI0v/3OukVi0CIZ+F25KrtYcx/CTIy0e+rC7R1Z4KMICVTQQ14feVXIbR695u14+Ir4gwAAD49E54wc1kWAAAAAElFTkSuQmCC) 2x) 5 8, text;\n}\n\n.monaco-editor .view-line {\n\tposition: absolute;\n\twidth: 100%;\n}\n\n/* TODO@tokenization bootstrap fix */\n/*.monaco-editor .view-line > span > span {\n\tfloat: none;\n\tmin-height: inherit;\n\tmargin-left: inherit;\n}*/",""])},function(e,t,n){var i=n(34);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .lines-decorations {\n\tposition: absolute;\n\ttop: 0;\n\tbackground: white;\n}\n\n/*\n\tKeeping name short for faster parsing.\n\tcldr = core lines decorations rendering (div)\n*/\n.monaco-editor .margin-view-overlays .cldr {\n\tposition: absolute;\n\theight: 100%;\n}",""])},function(e,t,n){var i=n(36);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcmdr = core margin decorations rendering (div)\n*/\n.monaco-editor .margin-view-overlays .cmdr {\n\tposition: absolute;\n\tleft: 0;\n\twidth: 100%;\n\theight: 100%;\n}",""])},function(e,t,n){var i=n(38);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .overlayWidgets {\n\tposition: absolute;\n\ttop: 0;\n\tleft:0;\n}",""])},function(e,t,n){var i=n(40);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .view-ruler {\n\tposition: absolute;\n\ttop: 0;\n}",""])},function(e,t,n){var i=n(42);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .scroll-decoration {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\theight: 6px;\n}",""])},function(e,t,n){var i=n(44);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/*\n\tKeeping name short for faster parsing.\n\tcslr = core selections layer rendering (div)\n*/\n.monaco-editor .lines-content .cslr {\n\tposition: absolute;\n}\n\n.monaco-editor\t\t\t.top-left-radius\t\t{ border-top-left-radius: 3px; }\n.monaco-editor\t\t\t.bottom-left-radius\t\t{ border-bottom-left-radius: 3px; }\n.monaco-editor\t\t\t.top-right-radius\t\t{ border-top-right-radius: 3px; }\n.monaco-editor\t\t\t.bottom-right-radius\t{ border-bottom-right-radius: 3px; }\n\n.monaco-editor.hc-black .top-left-radius\t\t{ border-top-left-radius: 0; }\n.monaco-editor.hc-black .bottom-left-radius\t\t{ border-bottom-left-radius: 0; }\n.monaco-editor.hc-black .top-right-radius\t\t{ border-top-right-radius: 0; }\n.monaco-editor.hc-black .bottom-right-radius\t{ border-bottom-right-radius: 0; }\n",""])},function(e,t,n){var i=n(46);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-editor .cursors-layer {\n\tposition: absolute;\n\ttop: 0;\n}\n\n.monaco-editor .cursors-layer > .cursor {\n\tposition: absolute;\n\tcursor: text;\n\toverflow: hidden;\n}\n\n/* -- block-outline-style -- */\n.monaco-editor .cursors-layer.cursor-block-outline-style > .cursor {\n\tbox-sizing: border-box;\n\tbackground: transparent !important;\n\tborder-style: solid;\n\tborder-width: 1px;\n}\n\n/* -- underline-style -- */\n.monaco-editor .cursors-layer.cursor-underline-style > .cursor {\n\tborder-bottom-width: 2px;\n\tborder-bottom-style: solid;\n\tbackground: transparent !important;\n\tbox-sizing: border-box;\n}\n\n/* -- underline-thin-style -- */\n.monaco-editor .cursors-layer.cursor-underline-thin-style > .cursor {\n\tborder-bottom-width: 1px;\n\tborder-bottom-style: solid;\n\tbackground: transparent !important;\n\tbox-sizing: border-box;\n}\n\n@keyframes monaco-cursor-smooth {\n\t0%,\n\t20% {\n\t\topacity: 1;\n\t}\n\t60%,\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes monaco-cursor-phase {\n\t0%,\n\t20% {\n\t\topacity: 1;\n\t}\n\t90%,\n\t100% {\n\t\topacity: 0;\n\t}\n}\n\n@keyframes monaco-cursor-expand {\n\t0%,\n\t20% {\n\t\ttransform: scaleY(1);\n\t}\n\t80%,\n\t100% {\n\t\ttransform: scaleY(0);\n\t}\n}\n\n.cursor-smooth {\n\tanimation: monaco-cursor-smooth 0.5s ease-in-out 0s 20 alternate;\n}\n\n.cursor-phase {\n\tanimation: monaco-cursor-phase 0.5s ease-in-out 0s 20 alternate;\n}\n\n.cursor-expand > .cursor {\n\tanimation: monaco-cursor-expand 0.5s ease-in-out 0s 20 alternate;\n}",""])},function(e,t,n){var i=n(48);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Arrows */\n.monaco-scrollable-element > .scrollbar > .up-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=");\n\tcursor: pointer;\n}\n.monaco-scrollable-element > .scrollbar > .down-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=");\n\tcursor: pointer;\n}\n.monaco-scrollable-element > .scrollbar > .left-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+");\n\tcursor: pointer;\n}\n.monaco-scrollable-element > .scrollbar > .right-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iIzQyNDI0MiIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+");\n\tcursor: pointer;\n}\n\n.hc-black .monaco-scrollable-element > .scrollbar > .up-arrow,\n.vs-dark .monaco-scrollable-element > .scrollbar > .up-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiIGZpbGw9IiNFOEU4RTgiLz48L3N2Zz4=");\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .down-arrow,\n.vs-dark .monaco-scrollable-element > .scrollbar > .down-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTE4MCA1LjQ5MDQ1OTkxODk3NTgzLDUuODExNTAwMDcyNDc5MjQ4KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC45NjE1bDEuMjYsLTEuMjZsLTUuMDQsLTUuMDRsLTUuNDYsNS4wNGwxLjI2LDEuMjZsNC4yLC0zLjc4bDMuNzgsMy43OHoiLz48L3N2Zz4=");\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .left-arrow,\n.vs-dark .monaco-scrollable-element > .scrollbar > .left-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMSAxMSI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDUuNDkwNDU5OTE4OTc1ODMxLDUuNDMxMzgyMTc5MjYwMjU0KSIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNDgwNDYsOC41ODEzOGwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+");\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .right-arrow,\n.vs-dark .monaco-scrollable-element > .scrollbar > .right-arrow {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgMTEgMTEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggdHJhbnNmb3JtPSJyb3RhdGUoOTAgNS42MTcxNjUwODg2NTM1NjQ1LDUuNTU4MDg5NzMzMTIzNzgpICIgZmlsbD0iI0U4RThFOCIgZD0ibTkuNjA3MTcsOC43MDgwOWwxLjI2LC0xLjI2bC01LjA0LC01LjA0bC01LjQ2LDUuMDRsMS4yNiwxLjI2bDQuMiwtMy43OGwzLjc4LDMuNzh6Ii8+PC9zdmc+");\n}\n\n.monaco-scrollable-element > .visible {\n\topacity: 1;\n\n\t/* Background rule added for IE9 - to allow clicks on dom node */\n\tbackground:rgba(0,0,0,0);\n\n\t-webkit-transition: opacity 100ms linear;\n\t-o-transition: opacity 100ms linear;\n\t-moz-transition: opacity 100ms linear;\n\t-ms-transition: opacity 100ms linear;\n\ttransition: opacity 100ms linear;\n}\n.monaco-scrollable-element > .invisible {\n\topacity: 0;\n\tpointer-events: none;\n}\n.monaco-scrollable-element > .invisible.fade {\n\t-webkit-transition: opacity 800ms linear;\n\t-o-transition: opacity 800ms linear;\n\t-moz-transition: opacity 800ms linear;\n\t-ms-transition: opacity 800ms linear;\n\ttransition: opacity 800ms linear;\n}\n\n/* Scrollable Content Inset Shadow */\n.monaco-scrollable-element > .shadow {\n\tposition: absolute;\n\tdisplay: none;\n}\n.monaco-scrollable-element > .shadow.top {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 3px;\n\theight: 3px;\n\twidth: 100%;\n\tbox-shadow: #DDD 0 6px 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.left {\n\tdisplay: block;\n\ttop: 3px;\n\tleft: 0;\n\theight: 100%;\n\twidth: 3px;\n\tbox-shadow: #DDD 6px 0 6px -6px inset;\n}\n.monaco-scrollable-element > .shadow.top-left-corner {\n\tdisplay: block;\n\ttop: 0;\n\tleft: 0;\n\theight: 3px;\n\twidth: 3px;\n}\n.monaco-scrollable-element > .shadow.top.left {\n\tbox-shadow: #DDD 6px 6px 6px -6px inset;\n}\n\n/* ---------- Default Style ---------- */\n\n.vs .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(100, 100, 100, .4);\n}\n.vs-dark .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(121, 121, 121, .4);\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .slider {\n\tbackground: rgba(111, 195, 223, .6);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(100, 100, 100, .7);\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .slider:hover {\n\tbackground: rgba(111, 195, 223, .8);\n}\n\n.monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(0, 0, 0, .6);\n}\n.vs-dark .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(191, 191, 191, .4);\n}\n.hc-black .monaco-scrollable-element > .scrollbar > .slider.active {\n\tbackground: rgba(111, 195, 223, 1);\n}\n\n.vs-dark .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n.vs-dark .monaco-scrollable-element .shadow.left {\n\tbox-shadow: #000 6px 0 6px -6px inset;\n}\n\n.vs-dark .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: #000 6px 6px 6px -6px inset;\n}\n\n.hc-black .monaco-scrollable-element .shadow.top {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-scrollable-element .shadow.left {\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-scrollable-element .shadow.top.left {\n\tbox-shadow: none;\n}',""])},function(e,t,n){var i=n(50);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* START cover the case that slider is visible on mouseover */\n.monaco-editor .minimap.slider-mouseover .minimap-slider {\n\topacity: 0;\n\ttransition: opacity 100ms linear;\n}\n.monaco-editor .minimap.slider-mouseover:hover .minimap-slider {\n\topacity: 1;\n}\n.monaco-editor .minimap.slider-mouseover .minimap-slider.active {\n\topacity: 1;\n}\n/* END cover the case that slider is visible on mouseover */\n\n.monaco-editor .minimap-shadow-hidden {\n\tposition: absolute;\n\twidth: 0;\n}\n.monaco-editor .minimap-shadow-visible {\n\tposition: absolute;\n\tleft: -6px;\n\twidth: 6px;\n}\n",""])},function(e,t,n){var i=n(52);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-action-bar {\n\ttext-align: right;\n\toverflow: hidden;\n\twhite-space: nowrap;\n}\n\n.monaco-action-bar .actions-container {\n\tdisplay: flex;\n\tmargin: 0 auto;\n\tpadding: 0;\n\twidth: 100%;\n\tjustify-content: flex-end;\n}\n\n.monaco-action-bar.vertical .actions-container {\n\tdisplay: inline-block;\n}\n\n.monaco-action-bar.reverse .actions-container {\n\tflex-direction: row-reverse;\n}\n\n.monaco-action-bar .action-item {\n\tcursor: pointer;\n\tdisplay: inline-block;\n\t-ms-transition: -ms-transform 50ms ease;\n\t-webkit-transition: -webkit-transform 50ms ease;\n\t-moz-transition: -moz-transform 50ms ease;\n\t-o-transition: -o-transform 50ms ease;\n\ttransition: transform 50ms ease;\n\tposition: relative; /* DO NOT REMOVE - this is the key to preventing the ghosting icon bug in Chrome 42 */\n}\n\n.monaco-action-bar .action-item.disabled {\n\tcursor: default;\n}\n\n.monaco-action-bar.animated .action-item.active {\n\t-ms-transform: scale(1.272019649, 1.272019649); /* 1.272019649 = √φ */\n\t-webkit-transform: scale(1.272019649, 1.272019649);\n\t-moz-transform: scale(1.272019649, 1.272019649);\n\t-o-transform: scale(1.272019649, 1.272019649);\n\ttransform: scale(1.272019649, 1.272019649);\n}\n\n.monaco-action-bar .action-item .icon {\n\tdisplay: inline-block;\n}\n\n.monaco-action-bar .action-label {\n\tfont-size: 11px;\n\tmargin-right: 4px;\n}\n\n.monaco-action-bar .action-label.octicon {\n\tfont-size: 15px;\n\tline-height: 35px;\n\ttext-align: center;\n}\n\n.monaco-action-bar .action-item.disabled .action-label,\n.monaco-action-bar .action-item.disabled .action-label:hover {\n\topacity: 0.4;\n}\n\n/* Vertical actions */\n\n.monaco-action-bar.vertical {\n\ttext-align: left;\n}\n\n.monaco-action-bar.vertical .action-item {\n\tdisplay: block;\n}\n\n.monaco-action-bar.vertical .action-label.separator {\n\tdisplay: block;\n\tborder-bottom: 1px solid #bbb;\n\tpadding-top: 1px;\n\tmargin-left: .8em;\n\tmargin-right: .8em;\n}\n\n.monaco-action-bar.animated.vertical .action-item.active {\n\t-ms-transform: translate(5px, 0);\n\t-webkit-transform: translate(5px, 0);\n\t-moz-transform: translate(5px, 0);\n\t-o-transform: translate(5px, 0);\n\ttransform: translate(5px, 0);\n}\n\n.secondary-actions .monaco-action-bar .action-label {\n\tmargin-left: 6px;\n}\n\n/* Action Items */\n.monaco-action-bar .action-item.select-container {\n\toverflow: hidden; /* somehow the dropdown overflows its container, we prevent it here to not push */\n\tflex: 1;\n\tmax-width: 170px;\n\tmin-width: 60px;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}",""])},function(e,t,n){var i=n(54);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-builder-hidden {\n\tdisplay: none !important;\n}",""])},function(e,t,n){var i=n(56);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Checkbox */\n\n.monaco-checkbox .label {\n\twidth: 12px;\n\theight: 12px;\n\tborder: 1px solid black;\n\tbackground-color: transparent;\n\tdisplay: inline-block;\n}\n\n.monaco-checkbox .checkbox {\n\tposition: absolute;\n\toverflow: hidden;\n\tclip: rect(0 0 0 0);\n\theight: 1px;\n\twidth: 1px;\n\tmargin: -1px;\n\tpadding: 0;\n\tborder: 0;\n}\n\n.monaco-checkbox .checkbox:checked + .label {\n\tbackground-color: black;\n}\n\n/* Find widget */\n.monaco-editor .find-widget {\n\tposition: absolute;\n\tz-index: 10;\n\ttop: -44px; /* find input height + shadow (10px) */\n\theight: 34px; /* find input height */\n\toverflow: hidden;\n\tline-height: 19px;\n\n\t-webkit-transition: top 200ms linear;\n\t-o-transition: top 200ms linear;\n\t-moz-transition: top 200ms linear;\n\t-ms-transition: top 200ms linear;\n\ttransition: top 200ms linear;\n\n\tpadding: 0 4px;\n}\n/* Find widget when replace is toggled on */\n.monaco-editor .find-widget.replaceToggled {\n\ttop: -74px; /* find input height + replace input height + shadow (10px) */\n\theight: 64px; /* find input height + replace input height */\n}\n.monaco-editor .find-widget.replaceToggled > .replace-part {\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\talign-items: center;\n}\n\n.monaco-editor .find-widget.visible,\n.monaco-editor .find-widget.replaceToggled.visible {\n\ttop: 0;\n}\n\n.monaco-editor .find-widget .monaco-inputbox .input {\n\tbackground-color: transparent;\n\t/* Style to compensate for //winjs */\n\tmin-height: 0;\n}\n\n.monaco-editor .find-widget .replace-input .input {\n\tfont-size: 13px;\n}\n\n.monaco-editor .find-widget > .find-part,\n.monaco-editor .find-widget > .replace-part {\n\tmargin: 4px 0 0 17px;\n\tfont-size: 12px;\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\talign-items: center;\n}\n\n.monaco-editor .find-widget > .find-part .monaco-inputbox,\n.monaco-editor .find-widget > .replace-part .monaco-inputbox {\n\theight: 25px;\n}\n\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .wrapper > .input {\n\twidth: 100% !important;\n\tpadding-right: 66px;\n}\n.monaco-editor .find-widget > .find-part .monaco-inputbox > .wrapper > .input,\n.monaco-editor .find-widget > .replace-part .monaco-inputbox > .wrapper > .input {\n\tpadding-top: 2px;\n\tpadding-bottom: 2px;\n}\n\n.monaco-editor .find-widget .monaco-findInput {\n\tvertical-align: middle;\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\tflex:1;\n}\n\n.monaco-editor .find-widget .matchesCount {\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\tflex: initial;\n\tmargin: 0 1px 0 3px;\n\tpadding: 2px 2px 0 2px;\n\theight: 25px;\n\tvertical-align: middle;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 23px;\n}\n\n.monaco-editor .find-widget .button {\n\tmin-width: 20px;\n\twidth: 20px;\n\theight: 20px;\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\tflex: initial;\n\tmargin-left: 3px;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tcursor: pointer;\n}\n\n.monaco-editor .find-widget .button:not(.disabled):hover {\n\tbackground-color: rgba(0, 0, 0, 0.1);\n}\n\n.monaco-editor .find-widget .button.left {\n\tmargin-left: 0;\n\tmargin-right: 3px;\n}\n\n.monaco-editor .find-widget .button.wide {\n\twidth: auto;\n\tpadding: 1px 6px;\n\ttop: -1px;\n}\n\n.monaco-editor .find-widget .button.toggle {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\twidth: 18px;\n\theight: 100%;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n}\n\n.monaco-editor .find-widget .button.toggle.disabled {\n\tdisplay: none;\n}\n\n.monaco-editor .find-widget .previous {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iLTEgLTMgMTYgMTYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgLTEgLTMgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjNDI0MjQyIiBwb2ludHM9IjEzLDQgNiw0IDksMSA2LDEgMiw1IDYsOSA5LDkgNiw2IDEzLDYgIi8+Cjwvc3ZnPgo=");\n}\n\n.monaco-editor .find-widget .next {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iLTEgLTMgMTYgMTYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgLTEgLTMgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjNDI0MjQyIiBkPSJNMSw0aDdMNSwxaDNsNCw0TDgsOUg1bDMtM0gxVjR6Ii8+Cjwvc3ZnPgo=");\n}\n\n.monaco-editor .find-widget .disabled {\n\topacity: 0.3;\n\tcursor: default;\n}\n\n.monaco-editor .find-widget .monaco-checkbox {\n\twidth: 20px;\n\theight: 20px;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n\tmargin-left: 3px;\n}\n\n.monaco-editor .find-widget .monaco-checkbox .label {\n\tcontent: \'\';\n\tdisplay: inline-block;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 0 0;\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTEwMzIuMzYyMikiPgogIDxyZWN0IHdpZHRoPSI5IiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjEwNDYuMzYyMiIgc3R5bGU9ImZpbGw6IzQyNDI0MjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iMiIgeD0iMiIgeT0iMTA0My4zNjIyIiBzdHlsZT0iZmlsbDojNDI0MjQyO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgogIDxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjEwNDAuMzYyMiIgc3R5bGU9ImZpbGw6IzQyNDI0MjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMiIgeD0iMiIgeT0iMTAzNy4zNjIyIiBzdHlsZT0iZmlsbDojNDI0MjQyO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L2c+Cjwvc3ZnPg==");\n\twidth: 20px;\n\theight: 20px;\n\tborder: none;\n}\n\n.monaco-editor .find-widget .monaco-checkbox .checkbox:disabled + .label {\n\topacity: 0.3;\n\tcursor: default;\n}\n\n.monaco-editor .find-widget .monaco-checkbox .checkbox:not(:disabled) + .label {\n\tcursor: pointer;\n}\n\n.monaco-editor .find-widget .monaco-checkbox .checkbox:not(:disabled):hover:before + .label {\n\tbackground-color: #DDD;\n}\n\n.monaco-editor .find-widget .monaco-checkbox .checkbox:checked + .label {\n\tbackground-color: rgba(100, 100, 100, 0.2);\n}\n\n.monaco-editor .find-widget .close-fw {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iIzQyNDI0MiIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==");\n}\n\n.monaco-editor .find-widget .expand {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iIzY0NjQ2NSIgZD0iTTExIDEwLjA3aC01LjY1Nmw1LjY1Ni01LjY1NnY1LjY1NnoiLz48L3N2Zz4=");\n}\n\n.monaco-editor .find-widget .collapse {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iIzY0NjQ2NSIgZD0iTTYgNHY4bDQtNC00LTR6bTEgMi40MTRsMS41ODYgMS41ODYtMS41ODYgMS41ODZ2LTMuMTcyeiIvPjwvc3ZnPg==");\n}\n\n.monaco-editor .find-widget .replace {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTZweCIKCSBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iaWNvbl94NUZfYmciPgoJPGc+CgkJPHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTExLDNWMWgtMXY1djFoMWgyaDFWNFYzSDExeiBNMTMsNmgtMlY0aDJWNnoiLz4KCQk8cGF0aCBmaWxsPSIjNDI0MjQyIiBkPSJNMiwxNWg3VjlIMlYxNXogTTQsMTBoM3YxSDV2MmgydjFINFYxMHoiLz4KCTwvZz4KPC9nPgo8ZyBpZD0iY29sb3JfeDVGX2ltcG9ydGFuY2UiPgoJPHBhdGggZmlsbD0iIzAwNTM5QyIgZD0iTTMuOTc5LDMuNUw0LDZMMyw1djEuNUw0LjUsOEw2LDYuNVY1TDUsNkw0Ljk3OSwzLjVjMC0wLjI3NSwwLjIyNS0wLjUsMC41LTAuNUg5VjJINS40NzkKCQlDNC42NTEsMiwzLjk3OSwyLjY3MywzLjk3OSwzLjV6Ii8+CjwvZz4KPC9zdmc+Cg==");\n}\n\n.monaco-editor .find-widget .replace-all {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTZweCIKCSBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iaWNvbl94NUZfYmciPgoJPHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTExLDE1VjlIMXY2SDExeiBNMiwxNHYtMmgxdi0xSDJ2LTFoM3Y0SDJ6IE0xMCwxMUg4djJoMnYxSDd2LTRoM1YxMXogTTMsMTN2LTFoMXYxSDN6IE0xMyw3djZoLTFWOEg1VjcKCQlIMTN6IE0xMywyVjFoLTF2NWgzVjJIMTN6IE0xNCw1aC0xVjNoMVY1eiBNMTEsMnY0SDhWNGgxdjFoMVY0SDlWM0g4VjJIMTF6Ii8+CjwvZz4KPGcgaWQ9ImNvbG9yX3g1Rl9hY3Rpb24iPgoJPHBhdGggZmlsbD0iIzAwNTM5QyIgZD0iTTEuOTc5LDMuNUwyLDZMMSw1djEuNUwyLjUsOEw0LDYuNVY1TDMsNkwyLjk3OSwzLjVjMC0wLjI3NSwwLjIyNS0wLjUsMC41LTAuNUg3VjJIMy40NzkKCQlDMi42NTEsMiwxLjk3OSwyLjY3MywxLjk3OSwzLjV6Ii8+CjwvZz4KPC9zdmc+Cg==");\n}\n\n.monaco-editor .find-widget > .replace-part {\n\tdisplay: none;\n}\n\n.monaco-editor .find-widget > .replace-part > .replace-input {\n\tdisplay: flex;\n\tdisplay: -webkit-flex;\n\tvertical-align: middle;\n\twidth: auto !important;\n}\n\n/* REDUCED */\n.monaco-editor .find-widget.reduced-find-widget .matchesCount,\n.monaco-editor .find-widget.reduced-find-widget .monaco-checkbox {\n\tdisplay:none;\n}\n\n/* NARROW (SMALLER THAN REDUCED) */\n.monaco-editor .find-widget.narrow-find-widget {\n\tmax-width: 257px !important;\n}\n\n/* COLLAPSED (SMALLER THAN NARROW) */\n.monaco-editor .find-widget.collapsed-find-widget {\n\tmax-width: 111px !important;\n}\n\n.monaco-editor .find-widget.collapsed-find-widget .button.previous,\n.monaco-editor .find-widget.collapsed-find-widget .button.next,\n.monaco-editor .find-widget.collapsed-find-widget .button.replace,\n.monaco-editor .find-widget.collapsed-find-widget .button.replace-all,\n.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-findInput .controls {\n\tdisplay:none;\n}\n\n.monaco-editor .find-widget.collapsed-find-widget > .find-part .monaco-inputbox > .wrapper > .input {\n\tpadding-right: 0px;\n}\n\n.monaco-editor .findMatch {\n\t-webkit-animation-duration: 0;\n\t-webkit-animation-name: inherit !important;\n\t-moz-animation-duration: 0;\n\t-moz-animation-name: inherit !important;\n\t-ms-animation-duration: 0;\n\t-ms-animation-name: inherit !important;\n\tanimation-duration: 0;\n\tanimation-name: inherit !important;\n}\n\n.monaco-editor .find-widget .monaco-sash {\n\twidth: 2px !important;\n\tmargin-left: -4px;\n}\n\n.monaco-editor.hc-black .find-widget .previous,\n.monaco-editor.vs-dark .find-widget .previous {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iLTEgLTMgMTYgMTYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgLTEgLTMgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cG9seWdvbiBmaWxsPSIjQzVDNUM1IiBwb2ludHM9IjEzLDQgNiw0IDksMSA2LDEgMiw1IDYsOSA5LDkgNiw2IDEzLDYgIi8+Cjwvc3ZnPgo=");\n}\n\n.monaco-editor.hc-black .find-widget .next,\n.monaco-editor.vs-dark .find-widget .next {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiCgkgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIKCSB4PSIwcHgiIHk9IjBweCIgd2lkdGg9IjE2cHgiIGhlaWdodD0iMTZweCIgdmlld0JveD0iLTEgLTMgMTYgMTYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgLTEgLTMgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8cGF0aCBmaWxsPSIjQzVDNUM1IiBkPSJNMSw0aDdMNSwxaDNsNCw0TDgsOUg1bDMtM0gxVjR6Ii8+Cjwvc3ZnPgo=");\n}\n\n.monaco-editor.hc-black .find-widget .monaco-checkbox .label,\n.monaco-editor.vs-dark .find-widget .monaco-checkbox .label {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsLTEwMzIuMzYyMikiPgogIDxyZWN0IHdpZHRoPSI5IiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjEwNDYuMzYyMiIgc3R5bGU9ImZpbGw6I0M1QzVDNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICA8cmVjdCB3aWR0aD0iMTMiIGhlaWdodD0iMiIgeD0iMiIgeT0iMTA0My4zNjIyIiBzdHlsZT0iZmlsbDojQzVDNUM1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgogIDxyZWN0IHdpZHRoPSI2IiBoZWlnaHQ9IjIiIHg9IjIiIHk9IjEwNDAuMzYyMiIgc3R5bGU9ImZpbGw6I0M1QzVDNTtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICA8cmVjdCB3aWR0aD0iMTIiIGhlaWdodD0iMiIgeD0iMiIgeT0iMTAzNy4zNjIyIiBzdHlsZT0iZmlsbDojQzVDNUM1O2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L2c+Cjwvc3ZnPg==");\n}\n\n.monaco-editor.vs-dark .find-widget .monaco-checkbox .checkbox:not(:disabled):hover:before + .label {\n\tbackground-color: rgba(255, 255, 255, 0.1);\n}\n\n.monaco-editor.vs-dark .find-widget .monaco-checkbox .checkbox:checked + .label {\n\tbackground-color: rgba(255, 255, 255, 0.1);\n}\n\n.monaco-editor.hc-black .find-widget .close-fw,\n.monaco-editor.vs-dark .find-widget .close-fw {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iI2U4ZThlOCIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==");\n}\n\n.monaco-editor.hc-black .find-widget .replace,\n.monaco-editor.vs-dark .find-widget .replace {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTZweCIKCSBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iaWNvbl94NUZfYmciPgoJPGc+CgkJPHBhdGggZmlsbD0iI0M1QzVDNSIgZD0iTTExLDNWMWgtMXY1djFoMWgyaDFWNFYzSDExeiBNMTMsNmgtMlY0aDJWNnoiLz4KCQk8cGF0aCBmaWxsPSIjQzVDNUM1IiBkPSJNMiwxNWg3VjlIMlYxNXogTTQsMTBoM3YxSDV2MmgydjFINFYxMHoiLz4KCTwvZz4KPC9nPgo8ZyBpZD0iY29sb3JfeDVGX2ltcG9ydGFuY2UiPgoJPHBhdGggZmlsbD0iIzc1QkVGRiIgZD0iTTMuOTc5LDMuNUw0LDZMMyw1djEuNUw0LjUsOEw2LDYuNVY1TDUsNkw0Ljk3OSwzLjVjMC0wLjI3NSwwLjIyNS0wLjUsMC41LTAuNUg5VjJINS40NzkKCQlDNC42NTEsMiwzLjk3OSwyLjY3MywzLjk3OSwzLjV6Ii8+CjwvZz4KPC9zdmc+Cg==");\n}\n\n.monaco-editor.hc-black .find-widget .replace-all,\n.monaco-editor.vs-dark .find-widget .replace-all {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4IiB3aWR0aD0iMTZweCIKCSBoZWlnaHQ9IjE2cHgiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMTYgMTYiIHhtbDpzcGFjZT0icHJlc2VydmUiPgo8ZyBpZD0iaWNvbl94NUZfYmciPgoJPHBhdGggZmlsbD0iI0M1QzVDNSIgZD0iTTExLDE1VjlIMXY2SDExeiBNMiwxNHYtMmgxdi0xSDJ2LTFoM3Y0SDJ6IE0xMCwxMUg4djJoMnYxSDd2LTRoM1YxMXogTTMsMTN2LTFoMXYxSDN6IE0xMyw3djZoLTFWOEg1VjcKCQlIMTN6IE0xMywyVjFoLTF2NWgzVjJIMTN6IE0xNCw1aC0xVjNoMVY1eiBNMTEsMnY0SDhWNGgxdjFoMVY0SDlWM0g4VjJIMTF6Ii8+CjwvZz4KPGcgaWQ9ImNvbG9yX3g1Rl9hY3Rpb24iPgoJPHBhdGggZmlsbD0iIzc1QkVGRiIgZD0iTTEuOTc5LDMuNUwyLDZMMSw1djEuNUwyLjUsOEw0LDYuNVY1TDMsNkwyLjk3OSwzLjVjMC0wLjI3NSwwLjIyNS0wLjUsMC41LTAuNUg3VjJIMy40NzkKCQlDMi42NTEsMiwxLjk3OSwyLjY3MywxLjk3OSwzLjV6Ii8+CjwvZz4KPC9zdmc+Cg==");\n}\n\n.monaco-editor.hc-black .find-widget .expand,\n.monaco-editor.vs-dark .find-widget .expand {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2U4ZThlOCIgZD0iTTExIDEwLjA3aC01LjY1Nmw1LjY1Ni01LjY1NnY1LjY1NnoiLz48L3N2Zz4=");\n}\n\n.monaco-editor.hc-black .find-widget .collapse,\n.monaco-editor.vs-dark .find-widget .collapse {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2U4ZThlOCIgZD0iTTYgNHY4bDQtNC00LTR6bTEgMi40MTRsMS41ODYgMS41ODYtMS41ODYgMS41ODZ2LTMuMTcyeiIvPjwvc3ZnPg==");\n}\n\n.monaco-editor.hc-black .find-widget .button:not(.disabled):hover,\n.monaco-editor.vs-dark .find-widget .button:not(.disabled):hover {\n\tbackground-color: rgba(255, 255, 255, 0.1);\n}\n\n.monaco-editor.hc-black .find-widget .button:before {\n\tposition: relative;\n\ttop: 1px;\n\tleft: 2px;\n}\n\n.monaco-editor.hc-black .find-widget .monaco-checkbox .checkbox:checked + .label {\n\tbackground-color: rgba(255, 255, 255, 0.1);\n}\n',""])},function(e,t,n){var i=n(58);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-sash {\n\tposition: absolute;\n\tz-index: 90;\n\ttouch-action: none;\n}\n\n.monaco-sash.disabled {\n\tpointer-events: none;\n}\n\n.monaco-sash.vertical {\n\tcursor: ew-resize;\n\ttop: 0;\n\twidth: 4px;\n\theight: 100%;\n}\n\n.monaco-sash.mac.vertical {\n\tcursor: col-resize;\n}\n\n.monaco-sash.vertical.minimum {\n\tcursor: e-resize;\n}\n\n.monaco-sash.vertical.maximum {\n\tcursor: w-resize;\n}\n\n.monaco-sash.horizontal {\n\tcursor: ns-resize;\n\tleft: 0;\n\twidth: 100%;\n\theight: 4px;\n}\n\n.monaco-sash.mac.horizontal {\n\tcursor: row-resize;\n}\n\n.monaco-sash.horizontal.minimum {\n\tcursor: s-resize;\n}\n\n.monaco-sash.horizontal.maximum {\n\tcursor: n-resize;\n}\n\n.monaco-sash:not(.disabled).orthogonal-start::before,\n.monaco-sash:not(.disabled).orthogonal-end::after {\n\tcontent: ' ';\n\theight: 8px;\n\twidth: 8px;\n\tz-index: 100;\n\tdisplay: block;\n\tcursor: all-scroll;\n\tposition: absolute;\n}\n\n.monaco-sash.orthogonal-start.vertical::before {\n\tleft: -2px;\n\ttop: -4px;\n}\n\n.monaco-sash.orthogonal-end.vertical::after {\n\tleft: -2px;\n\tbottom: -4px;\n}\n\n.monaco-sash.orthogonal-start.horizontal::before {\n\ttop: -2px;\n\tleft: -4px;\n}\n\n.monaco-sash.orthogonal-end.horizontal::after {\n\ttop: -2px;\n\tright: -4px;\n}\n\n.monaco-sash.disabled {\n\tcursor: default !important;\n}\n\n/** Touch **/\n\n.monaco-sash.touch.vertical {\n\twidth: 20px;\n}\n\n.monaco-sash.touch.horizontal {\n\theight: 20px;\n}\n\n/** Debug **/\n\n.monaco-sash.debug:not(.disabled) {\n\tbackground: cyan;\n}\n\n.monaco-sash.debug:not(.disabled).orthogonal-start::before,\n.monaco-sash.debug:not(.disabled).orthogonal-end::after {\n\tbackground: red;\n}",""])},function(e,t,n){var i=n(60);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-inputbox {\n\tposition: relative;\n\tdisplay: block;\n\tpadding: 0;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\tline-height: auto !important;\n\n\t/* Customizable */\n\tfont-size: inherit;\n}\n\n.monaco-inputbox.idle {\n\tborder: 1px solid transparent;\n}\n\n.monaco-inputbox > .wrapper > .input,\n.monaco-inputbox > .wrapper > .mirror {\n\n\t/* Customizable */\n\tpadding: 4px;\n}\n\n.monaco-inputbox > .wrapper {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-inputbox > .wrapper > .input {\n\tdisplay: inline-block;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\twidth: 100%;\n\theight: 100%;\n\tline-height: inherit;\n\tborder: none;\n\tfont-family: inherit;\n\tfont-size: inherit;\n\tresize: none;\n\tcolor: inherit;\n}\n\n.monaco-inputbox > .wrapper > input {\n\ttext-overflow: ellipsis;\n}\n\n.monaco-inputbox > .wrapper > textarea.input {\n\tdisplay: block;\n\toverflow: hidden;\n}\n\n.monaco-inputbox > .wrapper > .mirror {\n\tposition: absolute;\n\tdisplay: inline-block;\n\twidth: 100%;\n\ttop: 0;\n\tleft: 0;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\twhite-space: pre-wrap;\n\tvisibility: hidden;\n\tmin-height: 26px;\n\tword-wrap: break-word;\n}\n\n/* Context view */\n\n.monaco-inputbox-container {\n\ttext-align: right;\n}\n\n.monaco-inputbox-container .monaco-inputbox-message {\n\tdisplay: inline-block;\n\toverflow: hidden;\n\ttext-align: left;\n\twidth: 100%;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\tpadding: 0.4em;\n\tfont-size: 12px;\n\tline-height: 17px;\n\tmin-height: 34px;\n\tmargin-top: -1px;\n\tword-wrap: break-word;\n}\n\n/* Action bar support */\n.monaco-inputbox .monaco-action-bar {\n\tposition: absolute;\n\tright: 2px;\n\ttop: 4px;\n}\n\n.monaco-inputbox .monaco-action-bar .action-item {\n\tmargin-left: 2px;\n}\n\n.monaco-inputbox .monaco-action-bar .action-item .icon {\n\tbackground-repeat: no-repeat;\n\twidth: 16px;\n\theight: 16px;\n}",""])},function(e,t,n){var i=n(62);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-aria-container {\n\tposition: absolute; /* try to hide from window but not from screen readers */\n\tleft:-999em;\n}",""])},function(e,t,n){var i=n(64);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.context-view {\n\tposition: absolute;\n\tz-index: 2000;\n}",""])},function(e,t,n){var i=n(66);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/* ---------- Find input ---------- */\n\n.monaco-findInput {\n\tposition: relative;\n}\n\n.monaco-findInput .monaco-inputbox {\n\tfont-size: 13px;\n\twidth: 100%;\n\theight: 25px;\n}\n\n.monaco-findInput > .controls {\n\tposition: absolute;\n\ttop: 3px;\n\tright: 2px;\n}\n\n.vs .monaco-findInput.disabled {\n\tbackground-color: #E1E1E1;\n}\n\n/* Theming */\n.vs-dark .monaco-findInput.disabled {\n\tbackground-color: #333;\n}\n\n/* Highlighting */\n.monaco-findInput.highlight-0 .controls {\n\tanimation: monaco-findInput-highlight-0 100ms linear 0s;\n}\n.monaco-findInput.highlight-1 .controls {\n\tanimation: monaco-findInput-highlight-1 100ms linear 0s;\n}\n.hc-black .monaco-findInput.highlight-0 .controls,\n.vs-dark .monaco-findInput.highlight-0 .controls {\n\tanimation: monaco-findInput-highlight-dark-0 100ms linear 0s;\n}\n.hc-black .monaco-findInput.highlight-1 .controls,\n.vs-dark .monaco-findInput.highlight-1 .controls {\n\tanimation: monaco-findInput-highlight-dark-1 100ms linear 0s;\n}\n\n@keyframes monaco-findInput-highlight-0 {\n\t0% { background: rgba(253, 255, 0, 0.8); }\n\t100% { background: transparent; }\n}\n@keyframes monaco-findInput-highlight-1 {\n\t0% { background: rgba(253, 255, 0, 0.8); }\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\n\t99% { background: transparent; }\n}\n\n@keyframes monaco-findInput-highlight-dark-0 {\n\t0% { background: rgba(255, 255, 255, 0.44); }\n\t100% { background: transparent; }\n}\n@keyframes monaco-findInput-highlight-dark-1 {\n\t0% { background: rgba(255, 255, 255, 0.44); }\n\t/* Made intentionally different such that the CSS minifier does not collapse the two animations into a single one*/\n\t99% { background: transparent; }\n}",""])},function(e,t,n){var i=n(68);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-custom-checkbox {\n\tmargin-left: 2px;\n\tfloat: left;\n\tcursor: pointer;\n\toverflow: hidden;\n\topacity: 0.7;\n\twidth: 20px;\n\theight: 20px;\n\tborder: 1px solid transparent;\n\tpadding: 1px;\n\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-o-user-select: none;\n\t-ms-user-select: none;\n\tuser-select: none;\n}\n\n.monaco-custom-checkbox:hover,\n.monaco-custom-checkbox.checked {\n\topacity: 1;\n}\n\n.hc-black .monaco-custom-checkbox {\n\tbackground: none;\n}\n\n.hc-black .monaco-custom-checkbox:hover {\n\tbackground: none;\n}",""])},function(e,t,n){var i=n(70);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.vs .monaco-custom-checkbox.monaco-case-sensitive {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe29wYWNpdHk6MDtmaWxsOiNGNkY2RjY7fSAuc3Qxe2ZpbGw6I0Y2RjZGNjt9IC5zdDJ7ZmlsbDojNDI0MjQyO308L3N0eWxlPjxnIGlkPSJvdXRsaW5lIj48cmVjdCBjbGFzcz0ic3QwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQuMTc2IDUuNTkyYy0uNTU1LS42LTEuMzM2LS45MDQtMi4zMjItLjkwNC0uMjU4IDAtLjUyMS4wMjQtLjc4NC4wNzItLjI0Ni4wNDQtLjQ3OS4xMDEtLjcuMTY5LS4yMjguMDctLjQzMi4xNDctLjYxMy4yMjktLjIyLjA5OS0uMzg5LjE5Ni0uNTEyLjI4NGwtLjQxOS4yOTl2Mi43MDFjLS4wODYuMTA4LS4xNjIuMjIzLS4yMjkuMzQ0bC0yLjQ1LTYuMzU0aC0yLjM5NGwtMy43NTMgOS44MDR2LjU5OGgzLjAyNWwuODM4LTIuMzVoMi4xNjdsLjg5MSAyLjM1aDMuMjM3bC0uMDAxLS4wMDNjLjMwNS4wOTIuNjMzLjE1Ljk5My4xNS4zNDQgMCAuNjcxLS4wNDkuOTc4LS4xNDZoMi44NTN2LTQuOTAzYy0uMDAxLS45NzUtLjI3MS0xLjc2My0uODA1LTIuMzR6Ii8+PC9nPjxnIGlkPSJpY29uX3g1Rl9iZyI+PHBhdGggY2xhc3M9InN0MiIgZD0iTTcuNjExIDExLjgzNGwtLjg5MS0yLjM1aC0zLjU2MmwtLjgzOCAyLjM1aC0xLjA5NWwzLjIxNy04LjQwMmgxLjAybDMuMjQgOC40MDJoLTEuMDkxem0tMi41MzEtNi44MTRsLS4wNDQtLjEzNS0uMDM4LS4xNTYtLjAyOS0uMTUyLS4wMjQtLjEyNmgtLjAyM2wtLjAyMS4xMjYtLjAzMi4xNTItLjAzOC4xNTYtLjA0NC4xMzUtMS4zMDcgMy41NzRoMi45MThsLTEuMzE4LTMuNTc0eiIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMy4wMiAxMS44MzR2LS45MzhoLS4wMjNjLS4xOTkuMzUyLS40NTYuNjItLjc3MS44MDZzLS42NzMuMjc4LTEuMDc1LjI3OGMtLjMxMyAwLS41ODgtLjA0NS0uODI2LS4xMzVzLS40MzgtLjIxMi0uNTk4LS4zNjYtLjI4MS0uMzM4LS4zNjMtLjU1MS0uMTI0LS40NDItLjEyNC0uNjg4YzAtLjI2Mi4wMzktLjUwMi4xMTctLjcyMXMuMTk4LS40MTIuMzYtLjU4LjM2Ny0uMzA4LjYxNS0uNDE5LjU0NC0uMTkuODg4LS4yMzdsMS44MTEtLjI1MmMwLS4yNzMtLjAyOS0uNTA3LS4wODgtLjdzLS4xNDMtLjM1MS0uMjUyLS40NzItLjI0MS0uMjEtLjM5Ni0uMjY3LS4zMjUtLjA4NS0uNTEzLS4wODVjLS4zNjMgMC0uNzE0LjA2NC0xLjA1Mi4xOTNzLS42MzguMzEtLjkwNC41NHYtLjk4NGMuMDgyLS4wNTkuMTk2LS4xMjEuMzQzLS4xODhzLjMxMi0uMTI4LjQ5NS0uMTg1LjM3OC0uMTA0LjU4My0uMTQxLjQwNy0uMDU2LjYwNi0uMDU2Yy42OTkgMCAxLjIyOS4xOTQgMS41ODguNTgzcy41MzkuOTQyLjUzOSAxLjY2MXYzLjkwMmgtLjk2em0tMS40NTQtMi44M2MtLjI3My4wMzUtLjQ5OC4wODUtLjY3NC4xNDlzLS4zMTMuMTQ0LS40MS4yMzctLjE2NS4yMDUtLjIwMi4zMzQtLjA1NS4yNzYtLjA1NS40NGMwIC4xNDEuMDI1LjI3MS4wNzYuMzkzcy4xMjQuMjI3LjIyLjMxNi4yMTUuMTYuMzU3LjIxMS4zMDguMDc2LjQ5NS4wNzZjLjI0MiAwIC40NjUtLjA0NS42NjgtLjEzNXMuMzc4LS4yMTQuNTI0LS4zNzIuMjYxLS4zNDQuMzQzLS41NTcuMTIzLS40NDIuMTIzLS42ODh2LS42MDlsLTEuNDY1LjIwNXoiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n.hc-black .monaco-custom-checkbox.monaco-case-sensitive,\n.hc-black .monaco-custom-checkbox.monaco-case-sensitive:hover,\n.vs-dark .monaco-custom-checkbox.monaco-case-sensitive {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe29wYWNpdHk6MDtmaWxsOiMyNjI2MjY7fSAuc3Qxe2ZpbGw6IzI2MjYyNjt9IC5zdDJ7ZmlsbDojQzVDNUM1O308L3N0eWxlPjxnIGlkPSJvdXRsaW5lIj48cmVjdCBjbGFzcz0ic3QwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTQuMTc2IDUuNTkyYy0uNTU1LS42LTEuMzM2LS45MDQtMi4zMjItLjkwNC0uMjU4IDAtLjUyMS4wMjQtLjc4NC4wNzItLjI0Ni4wNDQtLjQ3OS4xMDEtLjcuMTY5LS4yMjguMDctLjQzMi4xNDctLjYxMy4yMjktLjIyLjA5OS0uMzg5LjE5Ni0uNTEyLjI4NGwtLjQxOS4yOTl2Mi43MDFjLS4wODYuMTA4LS4xNjIuMjIzLS4yMjkuMzQ0bC0yLjQ1LTYuMzU0aC0yLjM5NGwtMy43NTMgOS44MDR2LjU5OGgzLjAyNWwuODM4LTIuMzVoMi4xNjdsLjg5MSAyLjM1aDMuMjM3bC0uMDAxLS4wMDNjLjMwNS4wOTIuNjMzLjE1Ljk5My4xNS4zNDQgMCAuNjcxLS4wNDkuOTc4LS4xNDZoMi44NTN2LTQuOTAzYy0uMDAxLS45NzUtLjI3MS0xLjc2My0uODA1LTIuMzR6Ii8+PC9nPjxnIGlkPSJpY29uX3g1Rl9iZyI+PHBhdGggY2xhc3M9InN0MiIgZD0iTTcuNjExIDExLjgzNGwtLjg5MS0yLjM1aC0zLjU2MmwtLjgzOCAyLjM1aC0xLjA5NWwzLjIxNy04LjQwMmgxLjAybDMuMjQgOC40MDJoLTEuMDkxem0tMi41MzEtNi44MTRsLS4wNDQtLjEzNS0uMDM4LS4xNTYtLjAyOS0uMTUyLS4wMjQtLjEyNmgtLjAyM2wtLjAyMS4xMjYtLjAzMi4xNTItLjAzOC4xNTYtLjA0NC4xMzUtMS4zMDcgMy41NzRoMi45MThsLTEuMzE4LTMuNTc0eiIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xMy4wMiAxMS44MzR2LS45MzhoLS4wMjNjLS4xOTkuMzUyLS40NTYuNjItLjc3MS44MDZzLS42NzMuMjc4LTEuMDc1LjI3OGMtLjMxMyAwLS41ODgtLjA0NS0uODI2LS4xMzVzLS40MzgtLjIxMi0uNTk4LS4zNjYtLjI4MS0uMzM4LS4zNjMtLjU1MS0uMTI0LS40NDItLjEyNC0uNjg4YzAtLjI2Mi4wMzktLjUwMi4xMTctLjcyMXMuMTk4LS40MTIuMzYtLjU4LjM2Ny0uMzA4LjYxNS0uNDE5LjU0NC0uMTkuODg4LS4yMzdsMS44MTEtLjI1MmMwLS4yNzMtLjAyOS0uNTA3LS4wODgtLjdzLS4xNDMtLjM1MS0uMjUyLS40NzItLjI0MS0uMjEtLjM5Ni0uMjY3LS4zMjUtLjA4NS0uNTEzLS4wODVjLS4zNjMgMC0uNzE0LjA2NC0xLjA1Mi4xOTNzLS42MzguMzEtLjkwNC41NHYtLjk4NGMuMDgyLS4wNTkuMTk2LS4xMjEuMzQzLS4xODhzLjMxMi0uMTI4LjQ5NS0uMTg1LjM3OC0uMTA0LjU4My0uMTQxLjQwNy0uMDU2LjYwNi0uMDU2Yy42OTkgMCAxLjIyOS4xOTQgMS41ODguNTgzcy41MzkuOTQyLjUzOSAxLjY2MXYzLjkwMmgtLjk2em0tMS40NTQtMi44M2MtLjI3My4wMzUtLjQ5OC4wODUtLjY3NC4xNDlzLS4zMTMuMTQ0LS40MS4yMzctLjE2NS4yMDUtLjIwMi4zMzQtLjA1NS4yNzYtLjA1NS40NGMwIC4xNDEuMDI1LjI3MS4wNzYuMzkzcy4xMjQuMjI3LjIyLjMxNi4yMTUuMTYuMzU3LjIxMS4zMDguMDc2LjQ5NS4wNzZjLjI0MiAwIC40NjUtLjA0NS42NjgtLjEzNXMuMzc4LS4yMTQuNTI0LS4zNzIuMjYxLS4zNDQuMzQzLS41NTcuMTIzLS40NDIuMTIzLS42ODh2LS42MDlsLTEuNDY1LjIwNXoiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n\n.vs .monaco-custom-checkbox.monaco-whole-word {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe29wYWNpdHk6MDtmaWxsOiNGNkY2RjY7fSAuc3Qxe2ZpbGw6I0Y2RjZGNjt9IC5zdDJ7ZmlsbDojNDI0MjQyO308L3N0eWxlPjxnIGlkPSJvdXRsaW5lIj48cmVjdCBjbGFzcz0ic3QwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTYgNC4wMjJ2LTMuMDIyaC0xNi4wMTR2My4wMjJoMy4wNDZsLTMuMDQzIDcuOTQ1aC0uMDA0di4wMWwuMDE1IDEuMDIzaC0uMDE0djEuOTkxaDE2LjAxNHYtMy4wMjNoLTF2LTcuOTQ2aDF6bS01LjkxNCA1LjMwMWMwIC4yMzMtLjAyMy40NDEtLjA2Ni41OTUtLjA0Ny4xNjQtLjA5OS4yNDctLjEyNy4yODRsLS4wNzguMDY5LS4xNTEuMDI2LS4xMTUtLjAxNy0uMTM5LS4xMzdjLS4wMzEtLjA3OC0uMTEyLS4zMzItLjExMi0uNTY2IDAtLjI1NC4wOTEtLjU2MS4xMjYtLjY1NmwuMDY5LS4xNDEuMTA5LS4wODIuMTc4LS4wMjdjLjA3NyAwIC4xMTcuMDE0LjE3Ny4wNTZsLjA4Ny4xNzkuMDUxLjIzNy0uMDA5LjE4em0tMy42OTUtNS4zMDF2Mi44OTNsLTEuMTE2LTIuODkzaDEuMTE2em0tMy4wMjYgNy4wMmgxLjU3M2wuMzUxLjkyNmgtMi4yNTRsLjMzLS45MjZ6bTguNjM1LTQuMzU0Yy0uMjA2LS4yLS40MzEtLjM4LS42OTUtLjUxMi0uMzk2LS4xOTgtLjg1My0uMjk4LTEuMzU1LS4yOTgtLjIxNSAwLS40MjMuMDItLjYyMS4wNTh2LTEuOTE0aDIuNjcxdjIuNjY2eiIvPjwvZz48ZyBpZD0iaWNvbl94NUZfYmciPjxyZWN0IHg9IjEzIiB5PSI0IiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+PHBhdGggY2xhc3M9InN0MiIgZD0iTTExLjIyNSA4LjM4N2MtLjA3OC0uMjk5LS4xOTktLjU2Mi0uMzYtLjc4NnMtLjM2NS0uNDAxLS42MDktLjUzLS41MzQtLjE5My0uODY2LS4xOTNjLS4xOTggMC0uMzguMDI0LS41NDcuMDczLS4xNjUuMDQ5LS4zMTYuMTE3LS40NTMuMjA1LS4xMzYuMDg4LS4yNTcuMTk0LS4zNjUuMzE4bC0uMTc5LjI1OHYtMy4xNTRoLS44OTN2Ny40MjJoLjg5M3YtLjU3NWwuMTI2LjE3NWMuMDg3LjEwMi4xODkuMTkuMzA0LjI2OS4xMTcuMDc4LjI0OS4xNC4zOTguMTg2LjE0OS4wNDYuMzE0LjA2OC40OTguMDY4LjM1MyAwIC42NjYtLjA3MS45MzctLjIxMi4yNzItLjE0My40OTktLjMzOC42ODItLjU4Ni4xODMtLjI1LjMyMS0uNTQzLjQxNC0uODc5LjA5My0uMzM4LjE0LS43MDMuMTQtMS4wOTctLjAwMS0uMzQyLS4wNC0uNjYzLS4xMi0uOTYyem0tMS40NzktLjYwN2MuMTUxLjA3MS4yODIuMTc2LjM5LjMxNC4xMDkuMTQuMTk0LjMxMy4yNTUuNTE3LjA1MS4xNzQuMDgyLjM3MS4wODkuNTg3bC0uMDA3LjEyNWMwIC4zMjctLjAzMy42Mi0uMS44NjktLjA2Ny4yNDYtLjE2MS40NTMtLjI3OC42MTQtLjExNy4xNjItLjI2LjI4NS0uNDIxLjM2Ni0uMzIyLjE2Mi0uNzYuMTY2LTEuMDY5LjAxNS0uMTUzLS4wNzUtLjI4Ni0uMTc1LS4zOTMtLjI5Ni0uMDg1LS4wOTYtLjE1Ni0uMjE2LS4yMTgtLjM2NyAwIDAtLjE3OS0uNDQ3LS4xNzktLjk0NyAwLS41LjE3OS0xLjAwMi4xNzktMS4wMDIuMDYyLS4xNzcuMTM2LS4zMTguMjI0LS40My4xMTQtLjE0My4yNTYtLjI1OS40MjQtLjM0NS4xNjgtLjA4Ni4zNjUtLjEyOS41ODctLjEyOS4xOSAwIC4zNjQuMDM3LjUxNy4xMDl6Ii8+PHJlY3QgeD0iLjk4NyIgeT0iMiIgY2xhc3M9InN0MiIgd2lkdGg9IjE0LjAxMyIgaGVpZ2h0PSIxLjAyMyIvPjxyZWN0IHg9Ii45ODciIHk9IjEyLjk2OCIgY2xhc3M9InN0MiIgd2lkdGg9IjE0LjAxMyIgaGVpZ2h0PSIxLjAyMyIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xLjk5MSAxMi4wMzFsLjcyOC0yLjAzMWgyLjIxOWwuNzc4IDIuMDMxaDEuMDgybC0yLjQ4NS03LjE1OGgtLjk0MWwtMi40NDEgNy4wODYtLjAyNS4wNzJoMS4wODV6bTEuODI3LTUuNjA5aC4wMjJsLjkxNCAyLjc1M2gtMS44NDFsLjkwNS0yLjc1M3oiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n.hc-black .monaco-custom-checkbox.monaco-whole-word,\n.hc-black .monaco-custom-checkbox.monaco-whole-word:hover,\n.vs-dark .monaco-custom-checkbox.monaco-whole-word {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uc3Qwe29wYWNpdHk6MDtmaWxsOiMyNjI2MjY7fSAuc3Qxe2ZpbGw6IzI2MjYyNjt9IC5zdDJ7ZmlsbDojQzVDNUM1O308L3N0eWxlPjxnIGlkPSJvdXRsaW5lIj48cmVjdCBjbGFzcz0ic3QwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiLz48cGF0aCBjbGFzcz0ic3QxIiBkPSJNMTYgNC4wMjJ2LTMuMDIyaC0xNi4wMTR2My4wMjJoMy4wNDZsLTMuMDQzIDcuOTQ1aC0uMDA0di4wMWwuMDE1IDEuMDIzaC0uMDE0djEuOTkxaDE2LjAxNHYtMy4wMjNoLTF2LTcuOTQ2aDF6bS01LjkxNCA1LjMwMWMwIC4yMzMtLjAyMy40NDEtLjA2Ni41OTUtLjA0Ny4xNjQtLjA5OS4yNDctLjEyNy4yODRsLS4wNzguMDY5LS4xNTEuMDI2LS4xMTUtLjAxNy0uMTM5LS4xMzdjLS4wMzEtLjA3OC0uMTEyLS4zMzItLjExMi0uNTY2IDAtLjI1NC4wOTEtLjU2MS4xMjYtLjY1NmwuMDY5LS4xNDEuMTA5LS4wODIuMTc4LS4wMjdjLjA3NyAwIC4xMTcuMDE0LjE3Ny4wNTZsLjA4Ny4xNzkuMDUxLjIzNy0uMDA5LjE4em0tMy42OTUtNS4zMDF2Mi44OTNsLTEuMTE2LTIuODkzaDEuMTE2em0tMy4wMjYgNy4wMmgxLjU3M2wuMzUxLjkyNmgtMi4yNTRsLjMzLS45MjZ6bTguNjM1LTQuMzU0Yy0uMjA2LS4yLS40MzEtLjM4LS42OTUtLjUxMi0uMzk2LS4xOTgtLjg1My0uMjk4LTEuMzU1LS4yOTgtLjIxNSAwLS40MjMuMDItLjYyMS4wNTh2LTEuOTE0aDIuNjcxdjIuNjY2eiIvPjwvZz48ZyBpZD0iaWNvbl94NUZfYmciPjxyZWN0IHg9IjEzIiB5PSI0IiBjbGFzcz0ic3QyIiB3aWR0aD0iMSIgaGVpZ2h0PSI4Ii8+PHBhdGggY2xhc3M9InN0MiIgZD0iTTExLjIyNSA4LjM4N2MtLjA3OC0uMjk5LS4xOTktLjU2Mi0uMzYtLjc4NnMtLjM2NS0uNDAxLS42MDktLjUzLS41MzQtLjE5My0uODY2LS4xOTNjLS4xOTggMC0uMzguMDI0LS41NDcuMDczLS4xNjUuMDQ5LS4zMTYuMTE3LS40NTMuMjA1LS4xMzYuMDg4LS4yNTcuMTk0LS4zNjUuMzE4bC0uMTc5LjI1OHYtMy4xNTRoLS44OTN2Ny40MjJoLjg5M3YtLjU3NWwuMTI2LjE3NWMuMDg3LjEwMi4xODkuMTkuMzA0LjI2OS4xMTcuMDc4LjI0OS4xNC4zOTguMTg2LjE0OS4wNDYuMzE0LjA2OC40OTguMDY4LjM1MyAwIC42NjYtLjA3MS45MzctLjIxMi4yNzItLjE0My40OTktLjMzOC42ODItLjU4Ni4xODMtLjI1LjMyMS0uNTQzLjQxNC0uODc5LjA5My0uMzM4LjE0LS43MDMuMTQtMS4wOTctLjAwMS0uMzQyLS4wNC0uNjYzLS4xMi0uOTYyem0tMS40NzktLjYwN2MuMTUxLjA3MS4yODIuMTc2LjM5LjMxNC4xMDkuMTQuMTk0LjMxMy4yNTUuNTE3LjA1MS4xNzQuMDgyLjM3MS4wODkuNTg3bC0uMDA3LjEyNWMwIC4zMjctLjAzMy42Mi0uMS44NjktLjA2Ny4yNDYtLjE2MS40NTMtLjI3OC42MTQtLjExNy4xNjItLjI2LjI4NS0uNDIxLjM2Ni0uMzIyLjE2Mi0uNzYuMTY2LTEuMDY5LjAxNS0uMTUzLS4wNzUtLjI4Ni0uMTc1LS4zOTMtLjI5Ni0uMDg1LS4wOTYtLjE1Ni0uMjE2LS4yMTgtLjM2NyAwIDAtLjE3OS0uNDQ3LS4xNzktLjk0NyAwLS41LjE3OS0xLjAwMi4xNzktMS4wMDIuMDYyLS4xNzcuMTM2LS4zMTguMjI0LS40My4xMTQtLjE0My4yNTYtLjI1OS40MjQtLjM0NS4xNjgtLjA4Ni4zNjUtLjEyOS41ODctLjEyOS4xOSAwIC4zNjQuMDM3LjUxNy4xMDl6Ii8+PHJlY3QgeD0iLjk4NyIgeT0iMiIgY2xhc3M9InN0MiIgd2lkdGg9IjE0LjAxMyIgaGVpZ2h0PSIxLjAyMyIvPjxyZWN0IHg9Ii45ODciIHk9IjEyLjk2OCIgY2xhc3M9InN0MiIgd2lkdGg9IjE0LjAxMyIgaGVpZ2h0PSIxLjAyMyIvPjxwYXRoIGNsYXNzPSJzdDIiIGQ9Ik0xLjk5MSAxMi4wMzFsLjcyOC0yLjAzMWgyLjIxOWwuNzc4IDIuMDMxaDEuMDgybC0yLjQ4NS03LjE1OGgtLjk0MWwtMi40NDEgNy4wODYtLjAyNS4wNzJoMS4wODV6bTEuODI3LTUuNjA5aC4wMjJsLjkxNCAyLjc1M2gtMS44NDFsLjkwNS0yLjc1M3oiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n\n.vs .monaco-custom-checkbox.monaco-regex {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBvbHlnb24gZmlsbD0iI0Y2RjZGNiIgcG9pbnRzPSIxMy42NCw3LjM5NiAxMi4xNjksMi44OTggMTAuNzA2LDMuNzYxIDExLjA4NywyIDYuNTU3LDIgNi45MzYsMy43NjIgNS40NzMsMi44OTggNCw3LjM5NiA1LjY4Miw3LjU1NCA0LjUxMyw4LjU2MSA1LjAxMyw5IDIsOSAyLDE0IDcsMTQgNywxMC43NDcgNy45NzgsMTEuNjA2IDguODIsOS43MjUgOS42NjEsMTEuNjAyIDEzLjE0NCw4LjU2MiAxMS45NjgsNy41NTQiLz48ZyBmaWxsPSIjNDI0MjQyIj48cGF0aCBkPSJNMTIuMzAxIDYuNTE4bC0yLjc3Mi4yNjIgMi4wODYgMS43ODgtMS41OTQgMS4zOTItMS4yMDEtMi42ODItMS4yMDEgMi42ODItMS41ODMtMS4zOTIgMi4wNzUtMS43ODgtMi43NzEtLjI2Mi42OTYtMi4xMjYgMi4zNTggMS4zOTItLjU5OS0yLjc4NGgyLjA1M2wtLjYwMiAyLjc4MyAyLjM1OS0xLjM5Mi42OTYgMi4xMjd6Ii8+PHJlY3QgeD0iMyIgeT0iMTAiIHdpZHRoPSIzIiBoZWlnaHQ9IjMiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n.hc-black .monaco-custom-checkbox.monaco-regex,\n.hc-black .monaco-custom-checkbox.monaco-regex:hover,\n.vs-dark .monaco-custom-checkbox.monaco-regex {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBvbHlnb24gZmlsbD0iIzJkMmQzMCIgcG9pbnRzPSIxMy42NCw3LjM5NiAxMi4xNjksMi44OTggMTAuNzA2LDMuNzYxIDExLjA4NywyIDYuNTU3LDIgNi45MzYsMy43NjIgNS40NzMsMi44OTggNCw3LjM5NiA1LjY4Miw3LjU1NCA0LjUxMyw4LjU2MSA1LjAxMyw5IDIsOSAyLDE0IDcsMTQgNywxMC43NDcgNy45NzgsMTEuNjA2IDguODIsOS43MjUgOS42NjEsMTEuNjAyIDEzLjE0NCw4LjU2MiAxMS45NjgsNy41NTQiLz48ZyBmaWxsPSIjQzVDNUM1Ij48cGF0aCBkPSJNMTIuMzAxIDYuNTE4bC0yLjc3Mi4yNjIgMi4wODYgMS43ODgtMS41OTQgMS4zOTItMS4yMDEtMi42ODItMS4yMDEgMi42ODItMS41ODMtMS4zOTIgMi4wNzUtMS43ODgtMi43NzEtLjI2Mi42OTYtMi4xMjYgMi4zNTggMS4zOTItLjU5OS0yLjc4NGgyLjA1M2wtLjYwMiAyLjc4MyAyLjM1OS0xLjM5Mi42OTYgMi4xMjd6Ii8+PHJlY3QgeD0iMyIgeT0iMTAiIHdpZHRoPSIzIiBoZWlnaHQ9IjMiLz48L2c+PC9zdmc+") center center no-repeat;\n}\n',""])},function(e,t,n){var i=n(72);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .margin-view-overlays .folding {\n\tmargin-left: 5px;\n\tcursor: pointer;\n\tbackground-repeat: no-repeat;\n\tbackground-origin: border-box;\n\tbackground-position: 3px center;\n\tbackground-size: 15px;\n\topacity: 0;\n\ttransition: opacity 0.5s;\n}\n\n.monaco-editor .margin-view-overlays .folding {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1IDE1OyI+CjxwYXRoIHN0eWxlPSJmaWxsOiNCNkI2QjYiIGQ9Ik0xMSw0djdINFY0SDExIE0xMiwzSDN2OWg5VjNMMTIsM3oiLz4KPGxpbmUgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6IzZCNkI2QjtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgeDE9IjEwIiB5MT0iNy41IiB4Mj0iNSIgeTI9IjcuNSIvPgo8L3N2Zz4=");\n}\n\n.monaco-editor.hc-black .margin-view-overlays .folding,\n.monaco-editor.vs-dark .margin-view-overlays .folding {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1IDE1OyI+CjxwYXRoIHN0eWxlPSJmaWxsOiM1QTVBNUEiIGQ9Ik0xMSw0djdINFY0SDExIE0xMiwzSDN2OWg5VjNMMTIsM3oiLz4KPGxpbmUgc3R5bGU9ImZpbGw6bm9uZTtzdHJva2U6I0M1QzVDNTtzdHJva2UtbWl0ZXJsaW1pdDoxMCIgeDE9IjEwIiB5MT0iNy41IiB4Mj0iNSIgeTI9IjcuNSIvPgo8L3N2Zz4=");\n}\n\n.monaco-editor .margin-view-overlays:hover .folding,\n.monaco-editor .margin-view-overlays .folding.alwaysShowFoldIcons {\n\topacity: 1;\n}\n\n.monaco-editor .margin-view-overlays .folding.collapsed {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1IDE1OyI+CjxyZWN0IHg9IjMiIHk9IjMiIHN0eWxlPSJmaWxsOiNFOEU4RTgiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiLz4KPHBhdGggc3R5bGU9ImZpbGw6I0I2QjZCNiIgZD0iTTExLDR2N0g0VjRIMTEgTTEyLDNIM3Y5aDlWM0wxMiwzeiIvPgo8bGluZSBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojNkI2QjZCO3N0cm9rZS1taXRlcmxpbWl0OjEwIiB4MT0iMTAiIHkxPSI3LjUiIHgyPSI1IiB5Mj0iNy41Ii8+CjxsaW5lIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiM2QjZCNkI7c3Ryb2tlLW1pdGVybGltaXQ6MTAiIHgxPSI3LjUiIHkxPSI1IiB4Mj0iNy41IiB5Mj0iMTAiLz4KPC9zdmc+");\n\topacity: 1;\n}\n\n.monaco-editor.hc-black .margin-view-overlays .folding.collapsed,\n.monaco-editor.vs-dark .margin-view-overlays .folding.collapsed {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHg9IjBweCIgeT0iMHB4IiB2aWV3Qm94PSIwIDAgMTUgMTUiIHN0eWxlPSJlbmFibGUtYmFja2dyb3VuZDpuZXcgMCAwIDE1IDE1OyI+CjxyZWN0IHg9IjMiIHk9IjMiIHN0eWxlPSJvcGFjaXR5OjAuMTtmaWxsOiNGRkZGRkYiIHdpZHRoPSI5IiBoZWlnaHQ9IjkiLz4KPHBhdGggc3R5bGU9ImZpbGw6IzVBNUE1QSIgZD0iTTExLDR2N0g0VjRIMTEgTTEyLDNIM3Y5aDlWM0wxMiwzeiIvPgo8bGluZSBzdHlsZT0iZmlsbDpub25lO3N0cm9rZTojQzVDNUM1O3N0cm9rZS1taXRlcmxpbWl0OjEwIiB4MT0iMTAiIHkxPSI3LjUiIHgyPSI1IiB5Mj0iNy41Ii8+CjxsaW5lIHN0eWxlPSJmaWxsOm5vbmU7c3Ryb2tlOiNDNUM1QzU7c3Ryb2tlLW1pdGVybGltaXQ6MTAiIHgxPSI3LjUiIHkxPSI1IiB4Mj0iNy41IiB5Mj0iMTAiLz4KPC9zdmc+");\n}\n\n.monaco-editor .inline-folded:after {\n\tcolor: grey;\n\tmargin: 0.1em 0.2em 0 0.2em;\n\tcontent: "\\22EF";\n\tdisplay: inline;\n\tline-height: 1em;\n\tcursor: pointer;\n}\n\n',""])},function(e,t,n){var i=n(74);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor.vs\t\t.snippet-placeholder { background-color: rgba(10, 50, 100, 0.2); min-width: 2px; }\n.monaco-editor.vs-dark\t.snippet-placeholder { background-color: rgba(124, 124, 124, 0.3); min-width: 2px; }\n.monaco-editor.hc-black\t.snippet-placeholder { background-color: rgba(124, 124, 124, 0.3); min-width: 2px; }\n\n.monaco-editor.vs\t\t.finish-snippet-placeholder { outline: rgba(10, 50, 100, 0.5) solid 1px; }\n.monaco-editor.vs-dark\t.finish-snippet-placeholder\t{ outline: #525252 solid 1px; }\n.monaco-editor.hc-black\t.finish-snippet-placeholder\t{ outline: #525252 solid 1px; }\n",""])},function(e,t,n){var i=n(76);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n/* Suggest widget*/\n.monaco-editor .suggest-widget {\n\tz-index: 40;\n}\n\n/** Initial widths **/\n\n.monaco-editor .suggest-widget {\n\twidth: 430px;\n}\n\n.monaco-editor .suggest-widget > .message,\n.monaco-editor .suggest-widget > .tree,\n.monaco-editor .suggest-widget > .details {\n\twidth: 100%;\n\tborder-style: solid;\n\tborder-width: 1px;\n\tbox-sizing: border-box;\n}\n\n.monaco-editor.hc-black .suggest-widget > .message,\n.monaco-editor.hc-black .suggest-widget > .tree,\n.monaco-editor.hc-black .suggest-widget > .details {\n\tborder-width: 2px;\n}\n\n/** Adjust width when docs are expanded to the side **/\n.monaco-editor .suggest-widget.docs-side {\n\twidth: 660px;\n}\n\n.monaco-editor .suggest-widget.docs-side > .tree,\n.monaco-editor .suggest-widget.docs-side > .details {\n\twidth: 50%;\n\tfloat: left;\n}\n\n.monaco-editor .suggest-widget.docs-side.list-right > .tree,\n.monaco-editor .suggest-widget.docs-side.list-right > .details {\n\tfloat: right;\n}\n\n\n/* Styles for Message element for when widget is loading or is empty */\n.monaco-editor .suggest-widget > .message {\n\tpadding-left: 22px;\n}\n\n/** Styles for the list element **/\n.monaco-editor .suggest-widget > .tree {\n\theight: 100%;\n}\n\n\n\n/** Styles for each row in the list element **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row {\n\tdisplay: flex;\n\t-mox-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tpadding-right: 10px;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 2px 2px;\n\twhite-space: nowrap;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents {\n\tflex: 1;\n\theight: 100%;\n\toverflow: hidden;\n\tpadding-left: 2px;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main {\n\tdisplay: flex;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\twhite-space: pre;\n}\n\n.monaco-editor .suggest-widget:not(.frozen) .monaco-highlighted-label .highlight {\n\tfont-weight: bold;\n}\n\n/** Icon styles **/\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .header > .close,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .readMore {\n\topacity: 0.6;\n\tbackground-position: center center;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 70%;\n\tcursor: pointer;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .header > .close {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iIzQyNDI0MiIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==");\n\tfloat: right;\n\tmargin-right: 5px;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .readMore {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZD0iTTggMWMtMy44NjUgMC03IDMuMTM1LTcgN3MzLjEzNSA3IDcgNyA3LTMuMTM1IDctNy0zLjEzNS03LTctN3ptMSAxMmgtMnYtN2gydjd6bTAtOGgtMnYtMmgydjJ6IiBmaWxsPSIjMUJBMUUyIi8+PHBhdGggZD0iTTcgNmgydjdoLTJ2LTd6bTAtMWgydi0yaC0ydjJ6IiBmaWxsPSIjZmZmIi8+PC9zdmc+");\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .header > .close:hover,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .readMore:hover {\n\topacity: 1;\n}\n\n/** Type Info and icon next to the label in the focused completion item **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .type-label {\n\tmargin-left: 0.8em;\n\tflex: 1;\n\ttext-align: right;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\topacity: 0.7;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .type-label > .monaco-tokenized-source {\n\tdisplay: inline;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .readMore,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row > .contents > .main > .type-label,\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused > .contents > .main > .readMore,\n.monaco-editor .suggest-widget.docs-side .monaco-list .monaco-list-row.focused > .contents > .main > .type-label,\n.monaco-editor .suggest-widget.docs-below .monaco-list .monaco-list-row.focused > .contents > .main > .readMore {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main > .readMore,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row.focused > .contents > .main > .type-label {\n\tdisplay: inline;\n}\n\n/** Styles for each row in the list **/\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon {\n\tdisplay: block;\n\theight: 16px;\n\twidth: 16px;\n\tbackground-repeat: no-repeat;\n\tbackground-size: 80%;\n\tbackground-position: center;\n}\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDEwYzAgMi4yMDUtMS43OTQgNC00IDQtMS44NTggMC0zLjQxMS0xLjI3OS0zLjg1OC0zaC0uOTc4bDIuMzE4IDRIMHYtMS43MDNsMi0zLjQwOFYwaDExdjYuMTQyYzEuNzIxLjQ0NyAzIDIgMyAzLjg1OHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0xMiAxdjQuNzVBNC4yNTUgNC4yNTUgMCAwIDAgNy43NSAxMGgtLjczMkw0LjI3NSA1LjI2OSAzIDcuNDQyVjFoOXpNNy43NDcgMTRMNC4yNjkgOCAuNzQ4IDE0aDYuOTk5ek0xNSAxMGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.method,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.function,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.constructor { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1wdXJwbGV7ZmlsbDojNjUyZDkwfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE1IDMuMzQ5djguNDAzTDguOTc1IDE2SDguMDdMMSAxMS41ODJWMy4zMjdMNy41OTUgMGgxLjExOEwxNSAzLjM0OXoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0xMi43MTUgNC4zOThMOC40ODcgNy4wMiAzLjU2NSA0LjI3Mmw0LjU3OC0yLjMwOSA0LjU3MiAyLjQzNXpNMyA1LjEwMmw1IDIuNzkydjUuNzA1bC01LTMuMTI1VjUuMTAyem02IDguNDM0VjcuODc4bDQtMi40OHY1LjMxN2wtNCAyLjgyMXoiIGlkPSJpY29uRmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tcHVycGxlIiBkPSJNOC4xNTYuODM3TDIgMy45NDJ2Ny4wODVMOC41MTcgMTUuMSAxNCAxMS4yMzNWMy45NUw4LjE1Ni44Mzd6bTQuNTU5IDMuNTYxTDguNDg3IDcuMDIgMy41NjUgNC4yNzJsNC41NzgtMi4zMDkgNC41NzIgMi40MzV6TTMgNS4xMDJsNSAyLjc5MnY1LjcwNWwtNS0zLjEyNVY1LjEwMnptNiA4LjQzNFY3Ljg3OGw0LTIuNDh2NS4zMTdsLTQgMi44MjF6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.field { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6IzAwNTM5Y308L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0wIDEwLjczNlY0LjVMOSAwbDcgMy41djYuMjM2bC05IDQuNS03LTMuNXoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik05IDFMMSA1djVsNiAzIDgtNFY0TDkgMXpNNyA2Ljg4MkwzLjIzNiA1IDkgMi4xMTggMTIuNzY0IDQgNyA2Ljg4MnoiIGlkPSJpY29uQmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTkgMi4xMThMMTIuNzY0IDQgNyA2Ljg4MiAzLjIzNiA1IDkgMi4xMTh6IiBpZD0iaWNvbkZnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.event { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYWN0aW9uLW9yYW5nZXtmaWxsOiNjMjdkMWF9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTQgMS40MTRMOS40MTQgNkgxNHYxLjQxNEw1LjQxNCAxNkgzdi0xLjIzNEw1LjM3MSAxMEgyVjguNzY0TDYuMzgyIDBIMTR2MS40MTR6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLW9yYW5nZSIgZD0iTTcgN2g2bC04IDhINGwyLjk4NS02SDNsNC04aDZMNyA3eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.operator { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6IzAwNTM5Y308L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xIDF2MTRoMTRWMUgxem02IDEySDN2LTFoNHYxem0wLTNIM1Y5aDR2MXptMC01SDV2Mkg0VjVIMlY0aDJWMmgxdjJoMnYxem0zLjI4MSA4SDguNzE5bDMtNGgxLjU2M2wtMy4wMDEgNHpNMTQgNUg5VjRoNXYxeiIgaWQ9Imljb25CZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNNyA1SDV2Mkg0VjVIMlY0aDJWMmgxdjJoMnYxem03LTFIOXYxaDVWNHpNNyA5SDN2MWg0Vjl6bTAgM0gzdjFoNHYtMXptMy4yODEgMWwzLTRoLTEuNTYzbC0zIDRoMS41NjN6IiBpZD0iaWNvbkZnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz48L3N2Zz4="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.variable { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiMwMDUzOWN9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTEgM3YxLjAxNUw4LjczMyAyLjg4MiA1IDQuNzQ5VjNIMHYxMGg1di0xLjg1OWwyLjE1NiAxLjA3N0wxMSAxMC4yOTVWMTNoNVYzaC01eiIgaWQ9Im91dGxpbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMiA1djZoMnYxSDFWNGgzdjFIMnptMTAgNnYxaDNWNGgtM3YxaDJ2NmgtMnoiIGlkPSJpY29uQmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTcuMTU2IDcuMTU2bC0xLjU3OC0uNzg5IDMuMTU2LTEuNTc4IDEuNTc4Ljc4OS0zLjE1NiAxLjU3OHoiIGlkPSJpY29uRmciIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWFjdGlvbi1ibHVlIiBkPSJNOC43MzMgNEw0IDYuMzY3djMuMTU2TDcuMTU2IDExLjFsNC43MzMtMi4zNjdWNS41NzhMOC43MzMgNHpNNy4xNTYgNy4xNTZsLTEuNTc4LS43ODkgMy4xNTYtMS41NzggMS41NzguNzg5LTMuMTU2IDEuNTc4eiIgaWQ9ImNvbG9ySW1wb3J0YW5jZSIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.class { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYWN0aW9uLW9yYW5nZXtmaWxsOiNjMjdkMWF9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTYgNi41ODZsLTMtM0wxMS41ODYgNUg5LjQxNGwxLTEtNC00aC0uODI4TDAgNS41ODZ2LjgyOGw0IDRMNi40MTQgOEg3djVoMS41ODZsMyAzaC44MjhMMTYgMTIuNDE0di0uODI4TDEzLjkxNCA5LjUgMTYgNy40MTR2LS44Mjh6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWFjdGlvbi1vcmFuZ2UiIGQ9Ik0xMyAxMGwyIDItMyAzLTItMiAxLTFIOFY3SDZMNCA5IDEgNmw1LTUgMyAzLTIgMmg1bDEtMSAyIDItMyAzLTItMiAxLTFIOXY0bDIuOTk5LjAwMkwxMyAxMHoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.interface { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6IzAwNTM5Y308L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xMS41IDEyYy0xLjkxNSAwLTMuNjAyLTEuMjQxLTQuMjI4LTNoLTEuNDFhMy4xMSAzLjExIDAgMCAxLTIuNzM3IDEuNjI1QzEuNDAyIDEwLjYyNSAwIDkuMjIzIDAgNy41czEuNDAyLTMuMTI1IDMuMTI1LTMuMTI1YzEuMTY1IDAgMi4yMDEuNjM5IDIuNzM3IDEuNjI1aDEuNDFjLjYyNi0xLjc1OSAyLjMxMy0zIDQuMjI4LTNDMTMuOTgxIDMgMTYgNS4wMTkgMTYgNy41UzEzLjk4MSAxMiAxMS41IDEyeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTExLjUgOUExLjUwMSAxLjUwMSAwIDEgMSAxMyA3LjVjMCAuODI2LS42NzMgMS41LTEuNSAxLjV6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMS41IDRhMy40OSAzLjQ5IDAgMCAwLTMuNDUgM0g1LjE4NUEyLjEyMiAyLjEyMiAwIDAgMCAxIDcuNWEyLjEyMyAyLjEyMyAwIDEgMCA0LjE4NS41SDguMDVhMy40OSAzLjQ5IDAgMCAwIDMuNDUgMyAzLjUgMy41IDAgMSAwIDAtN3ptMCA1Yy0uODI3IDAtMS41LS42NzMtMS41LTEuNVMxMC42NzMgNiAxMS41IDZzMS41LjY3MyAxLjUgMS41UzEyLjMyNyA5IDExLjUgOXoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.struct { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYWN0aW9uLWJsdWV7ZmlsbDojMDA1MzljfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTkgMTRWOEg3djZIMVYyaDE0djEySDl6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMCA5aDR2NGgtNFY5em0tOCA0aDRWOUgydjR6TTIgM3Y0aDEyVjNIMnoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTEwLjcwMiAxMC41bDItMi0yLTIgLjUtLjVIMTB2NWgxdjNINXYtM2gxVjZINC43OThsLjUuNS0yIDIgMiAyTDMgMTIuNzk3bC0zLTNWNy4yMDFsMy0zVjJoMTB2Mi4yMDFsMyAzdjIuNTk2bC0zIDMtMi4yOTgtMi4yOTd6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik00IDNoOHYyaC0xdi0uNWMwLS4yNzctLjIyNC0uNS0uNS0uNUg5djcuNWMwIC4yNzUuMjI0LjUuNS41aC41djFINnYtMWguNWEuNS41IDAgMCAwIC41LS41VjRINS41YS41LjUgMCAwIDAtLjUuNVY1SDRWM3pNMyA1LjYxNUwuMTE2IDguNSAzIDExLjM4M2wuODg0LS44ODMtMi0yIDItMkwzIDUuNjE1em0xMCAwbC0uODg0Ljg4NSAyIDItMiAyIC44ODQuODgzTDE1Ljg4NCA4LjUgMTMgNS42MTV6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.module { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTkuMjYgMTEuOTg0bC45NzgtLjAyMWEuOTYyLjk2MiAwIDAgMCAuMDktLjAwNmMuMDExLS4wNjMuMDI2LS4xNzkuMDI2LS4zNjFWOS42ODhjMC0uNjc5LjE4NS0xLjI1Ny41My0xLjcwNy0uMzQ2LS40NTItLjUzLTEuMDMtLjUzLTEuNzA1VjQuMzVjMC0uMTY3LS4wMjEtLjI1OS0uMDM0LS4zMDJMOS4yNiA0LjAyVi45NzNsMS4wMTEuMDExYzIuMTY3LjAyNCAzLjQwOSAxLjE1NiAzLjQwOSAzLjEwNXYxLjk2MmMwIC4zNTEuMDcxLjQ2MS4wNzIuNDYybC45MzYuMDYuMDUzLjkyN3YxLjkzNmwtLjkzNi4wNjFjLS4wNzYuMDE2LS4xMjUuMTQ2LS4xMjUuNDI0djIuMDE3YzAgLjkxNC0uMzMyIDMuMDQzLTMuNDA4IDMuMDc4bC0xLjAxMi4wMTF2LTMuMDQzem0tMy41MjEgMy4wMzJjLTMuMDg5LS4wMzUtMy40MjItMi4xNjQtMy40MjItMy4wNzhWOS45MjFjMC0uMzI3LS4wNjYtLjQzMi0uMDY3LS40MzNsLS45MzctLjA2LS4wNjMtLjkyOVY2LjU2M2wuOTQyLS4wNmMuMDU4IDAgLjEyNS0uMTE0LjEyNS0uNDUyVjQuMDljMC0xLjk0OSAxLjI0OC0zLjA4MSAzLjQyMi0zLjEwNUw2Ljc1Ljk3M1Y0LjAybC0uOTc1LjAyM2EuNTcyLjU3MiAwIDAgMC0uMDkzLjAxYy4wMDYuMDIxLS4wMTkuMTE1LS4wMTkuMjk3djEuOTI4YzAgLjY3NS0uMTg2IDEuMjUzLS41MzQgMS43MDUuMzQ4LjQ1LjUzNCAxLjAyOC41MzQgMS43MDd2MS45MDdjMCAuMTc1LjAxNC4yOTEuMDI3LjM2My4wMjMuMDAyIDEuMDYuMDI1IDEuMDYuMDI1djMuMDQzbC0xLjAxMS0uMDEyeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTUuNzUgMTQuMDE2Yy0xLjYyMy0uMDE5LTIuNDM0LS43MTEtMi40MzQtMi4wNzhWOS45MjFjMC0uOTAyLS4zNTUtMS4zNzYtMS4wNjYtMS40MjJ2LS45OThjLjcxMS0uMDQ1IDEuMDY2LS41MjkgMS4wNjYtMS40NDlWNC4wOWMwLTEuMzg1LjgxMS0yLjA4NyAyLjQzNC0yLjEwNXYxLjA2Yy0uNzI1LjAxNy0xLjA4Ny40NTMtMS4wODcgMS4zMDV2MS45MjhjMCAuOTItLjQ1NCAxLjQ4OC0xLjM2IDEuNzAyVjhjLjkwNy4yMDEgMS4zNi43NjMgMS4zNiAxLjY4OHYxLjkwN2MwIC40ODguMDgxLjgzNS4yNDMgMS4wNDIuMTYyLjIwOC40NDMuMzE2Ljg0NC4zMjV2MS4wNTR6bTcuOTktNS41MTdjLS43MDYuMDQ1LTEuMDYuNTItMS4wNiAxLjQyMnYyLjAxN2MwIDEuMzY3LS44MDcgMi4wNi0yLjQyIDIuMDc4di0xLjA1M2MuMzk2LS4wMDkuNjc4LS4xMTguODQ0LS4zMjguMTY3LS4yMS4yNS0uNTU2LjI1LTEuMDM5VjkuNjg4YzAtLjkyNS40NDktMS40ODggMS4zNDctMS42ODh2LS4wMjFjLS44OTgtLjIxNC0xLjM0Ny0uNzgyLTEuMzQ3LTEuNzAyVjQuMzVjMC0uODUyLS4zNjQtMS4yODgtMS4wOTQtMS4zMDZ2LTEuMDZjMS42MTMuMDE4IDIuNDIuNzIgMi40MiAyLjEwNXYxLjk2MmMwIC45Mi4zNTQgMS40MDQgMS4wNiAxLjQ0OXYuOTk5eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.property { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVjLS4yNzUgMC0uNTQzLS4wMjctLjgwNy0uMDY2bC0uMDc5LS4wMTJhNS40MjkgNS40MjkgMCAwIDEtLjgxLS4xOTJsLTQuNTM3IDQuNTM3Yy0uNDcyLjQ3My0xLjEuNzMzLTEuNzY3LjczM3MtMS4yOTUtLjI2LTEuNzY4LS43MzJhMi41MDIgMi41MDIgMCAwIDEgMC0zLjUzNWw0LjUzNy00LjUzN2E1LjQ1MiA1LjQ1MiAwIDAgMS0uMTkxLS44MTJjLS4wMDUtLjAyNS0uMDA4LS4wNTEtLjAxMi0uMDc3QTUuNTAzIDUuNTAzIDAgMCAxIDUgNS41YTUuNSA1LjUgMCAxIDEgMTEgMHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0xNSA1LjVhNC41IDQuNSAwIDAgMS00LjUgNC41Yy0uNjkzIDAtMS4zNDItLjE3LTEuOTI5LS40NWwtNS4wMSA1LjAxYy0uMjkzLjI5NC0uNjc3LjQ0LTEuMDYxLjQ0cy0uNzY4LS4xNDYtMS4wNjEtLjQzOWExLjUgMS41IDAgMCAxIDAtMi4xMjFsNS4wMS01LjAxQTQuNDgzIDQuNDgzIDAgMCAxIDYgNS41IDQuNSA0LjUgMCAwIDEgMTAuNSAxYy42OTMgMCAxLjM0Mi4xNyAxLjkyOS40NUw5LjYzNiA0LjI0M2wyLjEyMSAyLjEyMSAyLjc5My0yLjc5M2MuMjguNTg3LjQ1IDEuMjM2LjQ1IDEuOTI5eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.unit { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxMS4wMTNIMVY0aDE1djcuMDEzeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTggOUg3VjZoM3YzSDlWN0g4djJ6TTQgN2gxdjJoMVY2SDN2M2gxVjd6bTggMGgxdjJoMVY2aC0zdjNoMVY3eiIgaWQ9Imljb25GZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMiA1djVoMTNWNUgyem00IDRINVY3SDR2MkgzVjZoM3Yzem00IDBIOVY3SDh2Mkg3VjZoM3Yzem00IDBoLTFWN2gtMXYyaC0xVjZoM3YzeiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.constant { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiMwMDUzOWN9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMi44NzkgMTRMMSAxMi4xMjFWMy44NzlMMi44NzkgMmgxMC4yNDJMMTUgMy44Nzl2OC4yNDJMMTMuMTIxIDE0SDIuODc5eiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTEyLjI5MyA0SDMuNzA3TDMgNC43MDd2Ni41ODZsLjcwNy43MDdoOC41ODZsLjcwNy0uNzA3VjQuNzA3TDEyLjI5MyA0ek0xMSAxMEg1VjloNnYxem0wLTNINVY2aDZ2MXoiIGlkPSJpY29uRmciLz48ZyBpZD0iaWNvbkJnIj48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTEyLjcwNyAxM0gzLjI5M0wyIDExLjcwN1Y0LjI5M0wzLjI5MyAzaDkuNDE0TDE0IDQuMjkzdjcuNDE0TDEyLjcwNyAxM3ptLTktMWg4LjU4NmwuNzA3LS43MDdWNC43MDdMMTIuMjkzIDRIMy43MDdMMyA0LjcwN3Y2LjU4NmwuNzA3LjcwN3oiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tYmx1ZSIgZD0iTTExIDdINVY2aDZ2MXptMCAySDV2MWg2Vjl6Ii8+PC9nPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.value,\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.enum { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1vcmFuZ2V7ZmlsbDojYzI3ZDFhfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE0LjQxNCAxTDE2IDIuNTg2djUuODI4TDE0LjQxNCAxMEgxMHYzLjQxNkw4LjQxNCAxNUgxLjU4NkwwIDEzLjQxNnYtNS44M0wxLjU4NiA2SDZWMi41ODZMNy41ODYgMWg2LjgyOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0yIDEzaDZWOEgydjV6bTEtNGg0djFIM1Y5em0wIDJoNHYxSDN2LTF6bTExLTVWM0g4djNoLjQxNEw5IDYuNTg2VjZoNHYxSDkuNDE0bC41ODYuNTg2VjhoNFY2em0tMS0xSDlWNGg0djF6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLW9yYW5nZSIgZD0iTTMgMTFoNC4wMDF2MUgzdi0xem0wLTFoNC4wMDFWOUgzdjF6bTYtMnY1bC0xIDFIMmwtMS0xVjhsMS0xaDZsMSAxek04IDhIMnY1aDZWOHptMS0ybDEgMWgzVjZIOXptMC0xaDRWNEg5djF6bTUtM0g4TDcgM3YzaDFWM2g2djVoLTR2MWg0bDEtMVYzbC0xLTF6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.enum-member { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtZmd7ZmlsbDojZjBlZmYxfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6IzAwNTM5Y308L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0wIDE1VjZoNlYyLjU4Nkw3LjU4NSAxaDYuODI5TDE2IDIuNTg2djUuODI5TDE0LjQxNCAxMEgxMHY1SDB6bTMtNnoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik04IDN2M2g1djFoLTN2MWg0VjNIOHptNSAySDlWNGg0djF6TTIgOHY1aDZWOEgyem01IDNIM3YtMWg0djF6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMCA2aDN2MWgtM1Y2ek05IDR2MWg0VjRIOXptNS0ySDhMNyAzdjNoMVYzaDZ2NWgtNHYxaDRsMS0xVjNsLTEtMXptLTcgOEgzdjFoNHYtMXptMi0zdjdIMVY3aDh6TTggOEgydjVoNlY4eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.keyword { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiA1VjJIOVYxSDB2MTRoMTN2LTNoM1Y5aC0xVjZIOVY1aDd6bS04IDdWOWgxdjNIOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0yIDNoNXYxSDJWM3oiIGlkPSJpY29uRmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTE1IDRoLTVWM2g1djF6bS0xIDNoLTJ2MWgyVjd6bS00IDBIMXYxaDlWN3ptMiA2SDF2MWgxMXYtMXptLTUtM0gxdjFoNnYtMXptOCAwaC01djFoNXYtMXpNOCAydjNIMVYyaDd6TTcgM0gydjFoNVYzeiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.text { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxNUgwVjFoMTZ2MTR6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNOS4yMjkgNy4zNTRjLjAzNS4xNDYuMDUyLjMxLjA1Mi40OTQgMCAuMjM0LS4wMi40NDEtLjA2LjYyMS0uMDM5LjE4LS4wOTUuMzI4LS4xNjguNDQ1YS42ODcuNjg3IDAgMCAxLS45MTQuMjgxLjc2Ljc2IDAgMCAxLS4yMzctLjIwNy45ODguOTg4IDAgMCAxLS4xNTQtLjMwNiAxLjI2MiAxLjI2MiAwIDAgMS0uMDU3LS4zODF2LS41MDZjMC0uMTcuMDItLjMyNi4wNjEtLjQ2NXMuMDk2LS4yNTguMTY4LS4zNTlhLjc1Ni43NTYgMCAwIDEgLjI1Ny0uMjMyYy4xLS4wNTUuMjEtLjA4Mi4zMzEtLjA4MmEuNjQ2LjY0NiAwIDAgMSAuNTcxLjMyYy4wNjcuMTA1LjExNi4yMy4xNS4zNzd6bS01LjEyNi44NjlhLjU1Ny41NTcgMCAwIDAtLjE5Ni4xMzJjLS4wNDcuMDUzLS4wOC4xMTItLjA5Ny4xOHMtLjAyOC4xNDctLjAyOC4yMzNhLjUxMy41MTMgMCAwIDAgLjE1Ny4zOS41MjguNTI4IDAgMCAwIC4xODYuMTEzLjY4Mi42ODIgMCAwIDAgLjI0Mi4wNDEuNzYuNzYgMCAwIDAgLjU5My0uMjcxLjg5Ny44OTcgMCAwIDAgLjE2NS0uMjk1Yy4wMzgtLjExMy4wNTktLjIzNC4wNTktLjM2NXYtLjM0NmwtLjc2MS4xMWExLjI5IDEuMjkgMCAwIDAtLjMyLjA3OHpNMTQgM3YxMEgyVjNoMTJ6TTUuOTYyIDcuNDY5YzAtLjIzOC0uMDI3LS40NTEtLjA4My0uNjM3YTEuMjg2IDEuMjg2IDAgMCAwLS4yNDktLjQ3MSAxLjA4IDEuMDggMCAwIDAtLjQyNC0uMjk1IDEuNjQ0IDEuNjQ0IDAgMCAwLS42MDgtLjEwMWMtLjExOSAwLS4yNDEuMDEyLS4zNjguMDMzYTMuMjEzIDMuMjEzIDAgMCAwLS42NzMuMTk1IDEuMzEzIDEuMzEzIDAgMCAwLS4yMTIuMTE0di43NjhjLjE1OC0uMTMyLjM0MS0uMjM1LjU0NC0uMzEzLjIwNC0uMDc4LjQxMy0uMTE3LjYyNy0uMTE3LjIxMyAwIC4zNzcuMDYzLjQ5NC4xODYuMTE2LjEyNS4xNzQuMzI0LjE3NC42bC0xLjAzLjE1NGMtLjIwNS4wMjYtLjM4LjA3Ny0uNTI2LjE1MWExLjA4MyAxLjA4MyAwIDAgMC0uNTYzLjY2QTEuNTYyIDEuNTYyIDAgMCAwIDMgOC44NTdjMCAuMTcuMDI1LjMyMy4wNzQuNDYzYS45NDUuOTQ1IDAgMCAwIC41NjguNTk2Yy4xMzkuMDU3LjI5Ny4wODQuNDc4LjA4NC4yMjkgMCAuNDMxLS4wNTMuNjA0LS4xNmExLjMgMS4zIDAgMCAwIC40MzktLjQ2M2guMDE0di41MjloLjc4NVY3LjQ2OXpNMTAgNy44NjFhMy41NCAzLjU0IDAgMCAwLS4wNzQtLjczNCAyLjA0NyAyLjA0NyAwIDAgMC0uMjI4LS42MTEgMS4yMDMgMS4yMDMgMCAwIDAtLjM5NC0uNDE2IDEuMDMgMS4wMyAwIDAgMC0uNTc0LS4xNTNjLS4xMjMgMC0uMjM0LjAxOC0uMzM2LjA1MWExIDEgMCAwIDAtLjI3OC4xNDcgMS4xNTMgMS4xNTMgMCAwIDAtLjIyNS4yMjIgMi4wMjIgMi4wMjIgMCAwIDAtLjE4MS4yODloLS4wMTNWNUg3djQuODg3aC42OTd2LS40ODVoLjAxM2MuMDQ0LjA4Mi4wOTUuMTU4LjE1MS4yMjkuMDU3LjA3LjExOS4xMzMuMTkxLjE4NmEuODM1LjgzNSAwIDAgMCAuMjM4LjEyMS45NDMuOTQzIDAgMCAwIC4yOTMuMDQyYy4yMyAwIC40MzQtLjA1My42MDktLjE2YTEuMzQgMS4zNCAwIDAgMCAuNDQzLS40NDNjLjEyLS4xODguMjExLS40MTIuMjcyLS42NzJBMy42MiAzLjYyIDAgMCAwIDEwIDcuODYxem0zLTEuNjU4YS43LjcgMCAwIDAtLjEwNi0uMDY2IDEuMTgzIDEuMTgzIDAgMCAwLS4xNDItLjA2MyAxLjIzMyAxLjIzMyAwIDAgMC0uMzYzLS4wNjVjLS4yMDkgMC0uMzk5LjA1MS0uNTY5LjE1YTEuMzU1IDEuMzU1IDAgMCAwLS40MzMuNDI0Yy0uMTE4LjE4Mi0uMjEuNDAyLS4yNzMuNjZhMy42MyAzLjYzIDAgMCAwLS4wMDggMS42MTVjLjA2LjIzLjE0My40My4yNTIuNjAyLjEwOS4xNjguMjQxLjMwMy4zOTYuMzk2YS45NzIuOTcyIDAgMCAwIC41MjQuMTQ0Yy4xNTggMCAuMjk2LS4wMjEuNDEzLS4wNjguMTE3LS4wNDUuMjE5LS4xMDguMzA5LS4xODR2LS43N2ExLjA5NCAxLjA5NCAwIDAgMS0uMjg4LjIyNS44MTkuODE5IDAgMCAxLS4xNTguMDY4LjQ4LjQ4IDAgMCAxLS4xNTMuMDI3LjYyLjYyIDAgMCAxLS4yNzQtLjA3NGMtLjI0MS0uMTM2LS40MjMtLjQ3OS0uNDIzLTEuMTQ2IDAtLjcxNS4yMDYtMS4xMi40NjktMS4zMDEuMDc3LS4wMzIuMTUzLS4wNjQuMjM4LS4wNjQuMTEzIDAgLjIyLjAyNy4zMTcuMDgyLjA5Ni4wNTcuMTg4LjEzMS4yNzIuMjIzdi0uODE1eiIgaWQ9Imljb25GZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMSAydjEyaDE0VjJIMXptMTMgMTFIMlYzaDEydjEwek01LjYzIDYuMzYxYTEuMDggMS4wOCAwIDAgMC0uNDI0LS4yOTUgMS42NDQgMS42NDQgMCAwIDAtLjYwOC0uMTAxYy0uMTE5IDAtLjI0MS4wMTItLjM2OC4wMzNhMy4yMTMgMy4yMTMgMCAwIDAtLjY3My4xOTUgMS4zMTMgMS4zMTMgMCAwIDAtLjIxMi4xMTR2Ljc2OGMuMTU4LS4xMzIuMzQxLS4yMzUuNTQ0LS4zMTMuMjA0LS4wNzguNDEzLS4xMTcuNjI3LS4xMTcuMjEzIDAgLjM3Ny4wNjMuNDk0LjE4Ni4xMTYuMTI1LjE3NC4zMjQuMTc0LjZsLTEuMDMuMTU0Yy0uMjA1LjAyNi0uMzguMDc3LS41MjYuMTUxYTEuMDgzIDEuMDgzIDAgMCAwLS41NjMuNjZBMS41NjIgMS41NjIgMCAwIDAgMyA4Ljg1N2MwIC4xNy4wMjUuMzIzLjA3NC40NjNhLjk0NS45NDUgMCAwIDAgLjU2OC41OTZjLjEzOS4wNTcuMjk3LjA4NC40NzguMDg0LjIyOSAwIC40MzEtLjA1My42MDQtLjE2YTEuMyAxLjMgMCAwIDAgLjQzOS0uNDYzaC4wMTR2LjUyOWguNzg1VjcuNDY5YzAtLjIzOC0uMDI3LS40NTEtLjA4My0uNjM3YTEuMjg2IDEuMjg2IDAgMCAwLS4yNDktLjQ3MXptLS40NDYgMi4wMmMwIC4xMzEtLjAyLjI1Mi0uMDU5LjM2NWEuODk3Ljg5NyAwIDAgMS0uMTY1LjI5NS43NTguNzU4IDAgMCAxLS41OTMuMjcyLjY4Mi42ODIgMCAwIDEtLjI0Mi0uMDQxLjUwNy41MDcgMCAwIDEtLjMwMi0uMjg2LjU4My41ODMgMCAwIDEtLjA0MS0uMjE4YzAtLjA4Ni4wMS0uMTY0LjAyNy0uMjMycy4wNTEtLjEyNy4wOTgtLjE4YS41NDYuNTQ2IDAgMCAxIC4xOTYtLjEzM2MuMDgzLS4wMzMuMTg5LS4wNjEuMzItLjA3OGwuNzYxLS4xMDl2LjM0NXptNC41MTQtMS44NjVhMS4yMDMgMS4yMDMgMCAwIDAtLjM5NC0uNDE2IDEuMDMgMS4wMyAwIDAgMC0uNTc0LS4xNTNjLS4xMjMgMC0uMjM0LjAxOC0uMzM2LjA1MWExIDEgMCAwIDAtLjI3OC4xNDcgMS4xNTMgMS4xNTMgMCAwIDAtLjIyNS4yMjIgMi4wMjIgMi4wMjIgMCAwIDAtLjE4MS4yODloLS4wMTNWNUg3djQuODg3aC42OTd2LS40ODVoLjAxM2MuMDQ0LjA4Mi4wOTUuMTU4LjE1MS4yMjkuMDU3LjA3LjExOS4xMzMuMTkxLjE4NmEuODM1LjgzNSAwIDAgMCAuMjM4LjEyMS45NDMuOTQzIDAgMCAwIC4yOTMuMDQyYy4yMyAwIC40MzQtLjA1My42MDktLjE2YTEuMzQgMS4zNCAwIDAgMCAuNDQzLS40NDNjLjEyLS4xODguMjExLS40MTIuMjcyLS42NzJBMy42MiAzLjYyIDAgMCAwIDEwIDcuODYxYTMuNTQgMy41NCAwIDAgMC0uMDc0LS43MzQgMi4wNDcgMi4wNDcgMCAwIDAtLjIyOC0uNjExem0tLjQ3NiAxLjk1M2MtLjAzOS4xOC0uMDk1LjMyOC0uMTY4LjQ0NWEuNzU1Ljc1NSAwIDAgMS0uMjY0LjI2Ni42ODcuNjg3IDAgMCAxLS42NTEuMDE1Ljc2Ljc2IDAgMCAxLS4yMzctLjIwNy45ODguOTg4IDAgMCAxLS4xNTQtLjMwNiAxLjI2MiAxLjI2MiAwIDAgMS0uMDU3LS4zODF2LS41MDZjMC0uMTcuMDItLjMyNi4wNjEtLjQ2NXMuMDk2LS4yNTguMTY4LS4zNTlhLjc1Ni43NTYgMCAwIDEgLjI1Ny0uMjMyYy4xLS4wNTUuMjEtLjA4Mi4zMzEtLjA4MmEuNjQ2LjY0NiAwIDAgMSAuNTcxLjMyYy4wNjYuMTA1LjExNi4yMy4xNS4zNzcuMDM1LjE0Ni4wNTIuMzEuMDUyLjQ5NCAwIC4yMzQtLjAxOS40NDEtLjA1OS42MjF6bTMuNjcyLTIuMzMyYS43LjcgMCAwIDEgLjEwNi4wNjZ2LjgxNGExLjE3OCAxLjE3OCAwIDAgMC0uMjczLS4yMjMuNjQ1LjY0NSAwIDAgMC0uMzE3LS4wODFjLS4wODUgMC0uMTYxLjAzMi0uMjM4LjA2NC0uMjYzLjE4MS0uNDY5LjU4Ni0uNDY5IDEuMzAxIDAgLjY2OC4xODIgMS4wMTEuNDIzIDEuMTQ2LjA4NC4wNC4xNzEuMDc0LjI3NC4wNzQuMDQ5IDAgLjEwMS0uMDEuMTUzLS4wMjdhLjg1Ni44NTYgMCAwIDAgLjE1OC0uMDY4IDEuMTYgMS4xNiAwIDAgMCAuMjg4LS4yMjV2Ljc3Yy0uMDkuMDc2LS4xOTIuMTM5LS4zMDkuMTg0YTEuMDk4IDEuMDk4IDAgMCAxLS40MTIuMDY4Ljk3NC45NzQgMCAwIDEtLjUyMy0uMTQzIDEuMjU3IDEuMjU3IDAgMCAxLS4zOTYtLjM5NiAyLjA5OCAyLjA5OCAwIDAgMS0uMjUyLS42MDIgMy4xMTggMy4xMTggMCAwIDEtLjA4OC0uNzU0YzAtLjMxNi4wMzItLjYwNC4wOTYtLjg2MS4wNjMtLjI1OC4xNTUtLjQ3OS4yNzMtLjY2LjExOS0uMTgyLjI2NS0uMzIyLjQzMy0uNDI0YTEuMTAyIDEuMTAyIDAgMCAxIDEuMDczLS4wMjN6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.color { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLXJlZHtmaWxsOiNlNTE0MDB9Lmljb24tdnMteWVsbG93e2ZpbGw6I2ZmY2MwMH0uaWNvbi12cy1ncmVlbntmaWxsOiMzMzk5MzN9Lmljb24tdnMtYmx1ZXtmaWxsOiMxYmExZTJ9Lmljb24tdnMtYWN0aW9uLXB1cnBsZXtmaWxsOiM2NTJkOTB9Lmljb24td2hpdGV7ZmlsbDojZmZmZmZmfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDhjMCA0LjQxMS0zLjU4OSA4LTggOGEyLjgwMyAyLjgwMyAwIDAgMS0yLjgtMi44YzAtLjgzMy4yNzItMS42MjkuNzY2LTIuMjQxYS41OTYuNTk2IDAgMCAwIC4xMDEtLjM1OS42NjcuNjY3IDAgMCAwLS42NjctLjY2Ni41OC41OCAwIDAgMC0uMzU4LjEwMkEzLjU4NCAzLjU4NCAwIDAgMSAyLjggMTAuOCAyLjgwMyAyLjgwMyAwIDAgMSAwIDhjMC00LjQxMSAzLjU4OS04IDgtOHM4IDMuNTg5IDggOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24td2hpdGUiIGQ9Ik01LjQgNy45MzNhMi42NyAyLjY3IDAgMCAxIDIuNjY3IDIuNjY2YzAgLjYwNi0uMTkzIDEuMTc5LS41NDQgMS42MTRhMS41OTkgMS41OTkgMCAwIDAtLjMyMy45ODcuOC44IDAgMCAwIC44LjhjMy4zMDkgMCA2LTIuNjkxIDYtNnMtMi42OTEtNi02LTYtNiAyLjY5MS02IDZjMCAuNDQxLjM1OS44LjguOC4zNzggMCAuNzI5LS4xMTQuOTg2LS4zMjJBMi41NjggMi41NjggMCAwIDEgNS40IDcuOTMzeiIgaWQ9Imljb25GZyIvPjxnIGlkPSJpY29uQmciPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNOCAxNWMtLjk5MiAwLTEuOC0uODA4LTEuOC0xLjggMC0uNjA2LjE5My0xLjE3OS41NDQtMS42MTMuMjA4LS4yNTkuMzIzLS42MDkuMzIzLS45ODcgMC0uOTE5LS43NDgtMS42NjYtMS42NjctMS42NjYtLjM3NyAwLS43MjguMTE1LS45ODYuMzIzQTIuNTggMi41OCAwIDAgMSAyLjggOS44QzEuODA4IDkuOCAxIDguOTkyIDEgOGMwLTMuODYgMy4xNC03IDctNyAzLjg1OSAwIDcgMy4xNCA3IDcgMCAzLjg1OS0zLjE0MSA3LTcgN3pNNS40IDcuOTMzYTIuNjcgMi42NyAwIDAgMSAyLjY2NyAyLjY2NmMwIC42MDYtLjE5MyAxLjE3OS0uNTQ0IDEuNjE0YTEuNTk5IDEuNTk5IDAgMCAwLS4zMjMuOTg3LjguOCAwIDAgMCAuOC44YzMuMzA5IDAgNi0yLjY5MSA2LTZzLTIuNjkxLTYtNi02LTYgMi42OTEtNiA2YzAgLjQ0MS4zNTkuOC44LjguMzc4IDAgLjcyOS0uMTE0Ljk4Ni0uMzIyQTIuNTY4IDIuNTY4IDAgMCAxIDUuNCA3LjkzM3oiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tcHVycGxlIiBkPSJNNC41IDUuMzc1YS44NzUuODc1IDAgMSAwIDAgMS43NS44NzUuODc1IDAgMCAwIDAtMS43NXoiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1ibHVlIiBkPSJNNy4xMjUgMy42MjVhLjg3NS44NzUgMCAxIDAgMCAxLjc1Ljg3NS44NzUgMCAwIDAgMC0xLjc1eiIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWdyZWVuIiBkPSJNMTAuNjI1IDQuNWEuODc1Ljg3NSAwIDEgMCAwIDEuNzUuODc1Ljg3NSAwIDAgMCAwLTEuNzV6Ii8+PHBhdGggY2xhc3M9Imljb24tdnMteWVsbG93IiBkPSJNMTEuNSA4YS44NzUuODc1IDAgMSAwIDAgMS43NS44NzUuODc1IDAgMCAwIDAtMS43NXoiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1yZWQiIGQ9Ik05Ljc1IDEwLjYyNWEuODc1Ljg3NSAwIDEgMCAwIDEuNzUuODc1Ljg3NSAwIDAgMCAwLTEuNzV6Ii8+PC9nPjwvc3ZnPg=="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.file { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNSAxNkgyVjBoOC42MjFMMTUgNC4zNzlWMTZ6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNMTMgMTRINFYyaDV2NGg0djh6bS0zLTlWMi4yMDdMMTIuNzkzIDVIMTB6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0zIDF2MTRoMTFWNC43OTNMMTAuMjA3IDFIM3ptMTAgMTNINFYyaDV2NGg0djh6bS0zLTlWMi4yMDdMMTIuNzkzIDVIMTB6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.reference { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojZjZmNmY2fS5pY29uLXZzLW91dHtmaWxsOiNmNmY2ZjZ9Lmljb24tdnMtYmd7ZmlsbDojNDI0MjQyfS5pY29uLXZzLWZne2ZpbGw6I2YwZWZmMX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiMwMDUzOWN9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTQgNC41NTZWMTNjMCAuOTctLjcwMSAyLTIgMkg0Yy0uOTcgMC0yLS43MDEtMi0yVjYuNjQ5QTMuNDk1IDMuNDk1IDAgMCAxIDAgMy41QzAgMS41NyAxLjU3IDAgMy41IDBINXYxaDUuMDYxTDE0IDQuNTU2eiIgaWQ9Im91dGxpbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMTMgNXY4cy0uMDM1IDEtMS4wMzUgMWgtOFMzIDE0IDMgMTNWOWgxdjRoOFY2SDkuMzk3bC41MTctLjUyTDkgNC41NzJWM0g3LjQxOUw2LjQxMyAyaDMuMjI4TDEzIDV6IiBpZD0iaWNvbkJnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik03LjQxOSAzSDl2MS41NzJMNy40MTkgM3ptMS45NzggM0w2LjQxNiA5SDR2NGg4VjZIOS4zOTd6IiBpZD0iaWNvbkZnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tYmx1ZSIgZD0iTTUuOTg4IDZIMy41YTIuNSAyLjUgMCAxIDEgMC01SDR2MWgtLjVDMi42NzMgMiAyIDIuNjczIDIgMy41UzIuNjczIDUgMy41IDVoMi41MTNMNCAzaDJsMi41IDIuNDg0TDYgOEg0bDEuOTg4LTJ6IiBpZD0iY29sb3JBY3Rpb24iLz48L3N2Zz4="); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.snippet { background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNDY5NCIKICAgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE0NzA1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzNDcwMyIgLz4KICA8c3R5bGUKICAgICBpZD0ic3R5bGU0Njk2Ij4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I2Y2ZjZmNn0uaWNvbi12cy1vdXR7ZmlsbDojZjZmNmY2fS5pY29uLXZzLWFjdGlvbi1vcmFuZ2V7ZmlsbDojYzI3ZDFhfTwvc3R5bGU+CiAgPGcKICAgICBpZD0iZzQ3MDciCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMzMzMzMzLDAsMCwxLjMzMzMzMzMsLTI0NS45OTk5OSwtNS4zMzMzMzMpIj4KICAgIDxwYXRoCiAgICAgICBkPSJtIDE4NSw0IDExLDAgMCwxMiAtMTEsMCB6IgogICAgICAgaWQ9InBhdGg0NTM0IgogICAgICAgc3R5bGU9ImZpbGw6I2Y2ZjZmNiIgLz4KICAgIDxwYXRoCiAgICAgICBkPSJtIDE5NCwxMyAwLC03IC03LDAgMCw3IC0xLDAgMCwtOCA5LDAgMCw4IC0xLDAgeiBtIC03LDIgLTEsMCAwLC0xIDEsMCAwLDEgeiBtIDIsLTEgLTEsMCAwLDEgMSwwIDAsLTEgeiBtIDIsMCAtMSwwIDAsMSAxLDAgMCwtMSB6IG0gMiwxIC0xLDAgMCwtMSAxLDAgMCwxIHogbSAyLC0xIC0xLDAgMCwxIDEsMCAwLC0xIHoiCiAgICAgICBpZD0icGF0aDQ1MzYiCiAgICAgICBzdHlsZT0iZmlsbDojNDI0MjQyIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTg3LDEzIDAsLTcgNywwIDAsNyAtNywwIHoiCiAgICAgICBpZD0icGF0aDQ1MzgiCiAgICAgICBzdHlsZT0iZmlsbDojZjBlZmYxIiAvPgogIDwvZz4KICA8cGF0aAogICAgIGlkPSJjYW52YXMiCiAgICAgZD0iTTE2IDE2SDBWMGgxNnYxNnoiCiAgICAgY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiAvPgo8L3N2Zz4K"); }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor { background-image: none; }\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.folder { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I0Y2RjZGNjt9IC5pY29uLXZzLW91dHtvcGFjaXR5OjA7ZmlsbDojRjZGNkY2O30gLmljb24tdnMtZmd7ZmlsbDojRjBFRkYxO30gLmljb24tZm9sZGVye2ZpbGw6IzY1NjU2NTt9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNmgtMTZ2LTE2aDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDIuNXYxMGMwIC44MjctLjY3MyAxLjUtMS41IDEuNWgtMTEuOTk2Yy0uODI3IDAtMS41LS42NzMtMS41LTEuNXYtOGMwLS44MjcuNjczLTEuNSAxLjUtMS41aDIuODg2bDEtMmg4LjExYy44MjcgMCAxLjUuNjczIDEuNSAxLjV6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLWZvbGRlciIgZD0iTTE0LjUgMmgtNy40OTJsLTEgMmgtMy41MDRjLS4yNzcgMC0uNS4yMjQtLjUuNXY4YzAgLjI3Ni4yMjMuNS41LjVoMTEuOTk2Yy4yNzUgMCAuNS0uMjI0LjUtLjV2LTEwYzAtLjI3Ni0uMjI1LS41LS41LS41em0tLjQ5NiAyaC02LjQ5NmwuNS0xaDUuOTk2djF6IiBpZD0iaWNvbkJnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0xNCAzdjFoLTYuNWwuNS0xaDZ6IiBpZD0iaWNvbkZnIi8+PC9zdmc+"); }\n\n.monaco-editor .suggest-widget .monaco-list .monaco-list-row .icon.customcolor .colorspan {\n\tmargin: 0 0 0 0.3em;\n\tborder: 0.1em solid #000;\n\twidth: 0.7em;\n\theight: 0.7em;\n\tdisplay: inline-block;\n}\n\n/** Styles for the docs of the completion item in focus **/\n.monaco-editor .suggest-widget .details {\n\tdisplay: flex;\n\tflex-direction: column;\n\tcursor: default;\n}\n\n.monaco-editor .suggest-widget .details.no-docs {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget.docs-below .details {\n\tborder-top-width: 0px;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element {\n\tflex: 1;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body {\n\tposition: absolute;\n\tbox-sizing: border-box;\n\theight: 100%;\n\twidth: 100%;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .header > .type {\n\tflex: 2;\n\toverflow: hidden;\n\ttext-overflow: ellipsis;\n\topacity: 0.7;\n\tword-break: break-all;\n\tmargin: 0;\n\tpadding: 4px 0 4px 5px;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .docs {\n\tmargin: 0;\n\tpadding: 4px 5px;\n\twhite-space: pre-wrap;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .docs.markdown-docs {\n\twhite-space: initial;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > .docs .code {\n\twhite-space: pre-wrap;\n\tword-wrap: break-word;\n}\n\n.monaco-editor .suggest-widget .details > .monaco-scrollable-element > .body > p:empty {\n\tdisplay: none;\n}\n\n.monaco-editor .suggest-widget .details code {\n\tborder-radius: 3px;\n\tpadding: 0 0.4em;\n}\n\n/* High Contrast and Dark Theming */\n\n.monaco-editor.vs-dark .suggest-widget .details > .monaco-scrollable-element > .body > .header > .close,\n.monaco-editor.hc-black .suggest-widget .details > .monaco-scrollable-element > .body > .header > .close {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iI2U4ZThlOCIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==");\n}\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDEwYzAgMi4yMDUtMS43OTQgNC00IDQtMS44NTggMC0zLjQxMS0xLjI3OS0zLjg1OC0zaC0uOTc4bDIuMzE4IDRIMHYtMS43MDNsMi0zLjQwOFYwaDExdjYuMTQyYzEuNzIxLjQ0NyAzIDIgMyAzLjg1OHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0xMiAxdjQuNzVBNC4yNTUgNC4yNTUgMCAwIDAgNy43NSAxMGgtLjczMkw0LjI3NSA1LjI2OSAzIDcuNDQyVjFoOXpNNy43NDcgMTRMNC4yNjkgOCAuNzQ4IDE0aDYuOTk5ek0xNSAxMGEzIDMgMCAxIDEtNiAwIDMgMyAwIDAgMSA2IDB6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.method,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.method,\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.function,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.function,\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.constructor,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.constructor { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1wdXJwbGV7ZmlsbDojYjE4MGQ3fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE1IDMuMzQ5djguNDAzTDguOTc1IDE2SDguMDdMMSAxMS41ODJWMy4zMjdMNy41OTUgMGgxLjExOEwxNSAzLjM0OXoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0xMi43MTUgNC4zOThMOC40ODcgNy4wMiAzLjU2NSA0LjI3Mmw0LjU3OC0yLjMwOSA0LjU3MiAyLjQzNXpNMyA1LjEwMmw1IDIuNzkydjUuNzA1bC01LTMuMTI1VjUuMTAyem02IDguNDM0VjcuODc4bDQtMi40OHY1LjMxN2wtNCAyLjgyMXoiIGlkPSJpY29uRmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tcHVycGxlIiBkPSJNOC4xNTYuODM3TDIgMy45NDJ2Ny4wODVMOC41MTcgMTUuMSAxNCAxMS4yMzNWMy45NUw4LjE1Ni44Mzd6bTQuNTU5IDMuNTYxTDguNDg3IDcuMDIgMy41NjUgNC4yNzJsNC41NzgtMi4zMDkgNC41NzIgMi40MzV6TTMgNS4xMDJsNSAyLjc5MnY1LjcwNWwtNS0zLjEyNVY1LjEwMnptNiA4LjQzNFY3Ljg3OGw0LTIuNDh2NS4zMTdsLTQgMi44MjF6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.field,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.field { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6Izc1YmVmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0wIDEwLjczNlY0LjVMOSAwbDcgMy41djYuMjM2bC05IDQuNS03LTMuNXoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik05IDFMMSA1djVsNiAzIDgtNFY0TDkgMXpNNyA2Ljg4MkwzLjIzNiA1IDkgMi4xMTggMTIuNzY0IDQgNyA2Ljg4MnoiIGlkPSJpY29uQmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTkgMi4xMThMMTIuNzY0IDQgNyA2Ljg4MiAzLjIzNiA1IDkgMi4xMTh6IiBpZD0iaWNvbkZnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.event,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.event { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYWN0aW9uLW9yYW5nZXtmaWxsOiNlOGFiNTN9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTQgMS40MTRMOS40MTQgNkgxNHYxLjQxNEw1LjQxNCAxNkgzdi0xLjIzNEw1LjM3MSAxMEgyVjguNzY0TDYuMzgyIDBIMTR2MS40MTR6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLW9yYW5nZSIgZD0iTTcgN2g2bC04IDhINGwyLjk4NS02SDNsNC04aDZMNyA3eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.operator,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.operator { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6Izc1YmVmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xIDF2MTRoMTRWMUgxem02IDEySDN2LTFoNHYxem0wLTNIM1Y5aDR2MXptMC01SDV2Mkg0VjVIMlY0aDJWMmgxdjJoMnYxem0zLjI4MSA4SDguNzE5bDMtNGgxLjU2M2wtMy4wMDEgNHpNMTQgNUg5VjRoNXYxeiIgaWQ9Imljb25CZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNNyA1SDV2Mkg0VjVIMlY0aDJWMmgxdjJoMnYxem03LTFIOXYxaDVWNHpNNyA5SDN2MWg0Vjl6bTAgM0gzdjFoNHYtMXptMy4yODEgMWwzLTRoLTEuNTYzbC0zIDRoMS41NjN6IiBpZD0iaWNvbkZnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz48L3N2Zz4="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.variable,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.variable { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiM3NWJlZmZ9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTEgM3YxLjAxNUw4LjczMyAyLjg4MiA1IDQuNzQ5VjNIMHYxMGg1di0xLjg1OWwyLjE1NiAxLjA3N0wxMSAxMC4yOTVWMTNoNVYzaC01eiIgaWQ9Im91dGxpbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMiA1djZoMnYxSDFWNGgzdjFIMnptMTAgNnYxaDNWNGgtM3YxaDJ2NmgtMnoiIGlkPSJpY29uQmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTcuMTU2IDcuMTU2bC0xLjU3OC0uNzg5IDMuMTU2LTEuNTc4IDEuNTc4Ljc4OS0zLjE1NiAxLjU3OHoiIGlkPSJpY29uRmciIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWFjdGlvbi1ibHVlIiBkPSJNOC43MzMgNEw0IDYuMzY3djMuMTU2TDcuMTU2IDExLjFsNC43MzMtMi4zNjdWNS41NzhMOC43MzMgNHpNNy4xNTYgNy4xNTZsLTEuNTc4LS43ODkgMy4xNTYtMS41NzggMS41NzguNzg5LTMuMTU2IDEuNTc4eiIgaWQ9ImNvbG9ySW1wb3J0YW5jZSIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.class,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.class { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYWN0aW9uLW9yYW5nZXtmaWxsOiNlOGFiNTN9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTYgNi41ODZsLTMtM0wxMS41ODYgNUg5LjQxNGwxLTEtNC00aC0uODI4TDAgNS41ODZ2LjgyOGw0IDRMNi40MTQgOEg3djVoMS41ODZsMyAzaC44MjhMMTYgMTIuNDE0di0uODI4TDEzLjkxNCA5LjUgMTYgNy40MTR2LS44Mjh6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWFjdGlvbi1vcmFuZ2UiIGQ9Ik0xMyAxMGwyIDItMyAzLTItMiAxLTFIOFY3SDZMNCA5IDEgNmw1LTUgMyAzLTIgMmg1bDEtMSAyIDItMyAzLTItMiAxLTFIOXY0bDIuOTk5LjAwMkwxMyAxMHoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.interface,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.interface { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6Izc1YmVmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xMS41IDEyYy0xLjkxNSAwLTMuNjAyLTEuMjQxLTQuMjI4LTNoLTEuNDFhMy4xMSAzLjExIDAgMCAxLTIuNzM3IDEuNjI1QzEuNDAyIDEwLjYyNSAwIDkuMjIzIDAgNy41czEuNDAyLTMuMTI1IDMuMTI1LTMuMTI1YzEuMTY1IDAgMi4yMDEuNjM5IDIuNzM3IDEuNjI1aDEuNDFjLjYyNi0xLjc1OSAyLjMxMy0zIDQuMjI4LTNDMTMuOTgxIDMgMTYgNS4wMTkgMTYgNy41UzEzLjk4MSAxMiAxMS41IDEyeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTExLjUgOUExLjUwMSAxLjUwMSAwIDEgMSAxMyA3LjVjMCAuODI2LS42NzMgMS41LTEuNSAxLjV6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMS41IDRhMy40OSAzLjQ5IDAgMCAwLTMuNDUgM0g1LjE4NUEyLjEyMiAyLjEyMiAwIDAgMCAxIDcuNWEyLjEyMyAyLjEyMyAwIDEgMCA0LjE4NS41SDguMDVhMy40OSAzLjQ5IDAgMCAwIDMuNDUgMyAzLjUgMy41IDAgMSAwIDAtN3ptMCA1Yy0uODI3IDAtMS41LS42NzMtMS41LTEuNVMxMC42NzMgNiAxMS41IDZzMS41LjY3MyAxLjUgMS41UzEyLjMyNyA5IDExLjUgOXoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.struct,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.struct { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYWN0aW9uLWJsdWV7ZmlsbDojNzViZWZmfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTkgMTRWOEg3djZIMVYyaDE0djEySDl6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMCA5aDR2NGgtNFY5em0tOCA0aDRWOUgydjR6TTIgM3Y0aDEyVjNIMnoiIGlkPSJpY29uQmciLz48L3N2Zz4="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.type-parameter { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTEwLjcwMiAxMC41bDItMi0yLTIgLjUtLjVIMTB2NWgxdjNINXYtM2gxVjZINC43OThsLjUuNS0yIDIgMiAyTDMgMTIuNzk3bC0zLTNWNy4yMDFsMy0zVjJoMTB2Mi4yMDFsMyAzdjIuNTk2bC0zIDMtMi4yOTgtMi4yOTd6IiBpZD0ib3V0bGluZSIgc3R5bGU9ImRpc3BsYXk6IG5vbmU7Ii8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik00IDNoOHYyaC0xdi0uNWMwLS4yNzctLjIyNC0uNS0uNS0uNUg5djcuNWMwIC4yNzUuMjI0LjUuNS41aC41djFINnYtMWguNWEuNS41IDAgMCAwIC41LS41VjRINS41YS41LjUgMCAwIDAtLjUuNVY1SDRWM3pNMyA1LjYxNUwuMTE2IDguNSAzIDExLjM4M2wuODg0LS44ODMtMi0yIDItMkwzIDUuNjE1em0xMCAwbC0uODg0Ljg4NSAyIDItMiAyIC44ODQuODgzTDE1Ljg4NCA4LjUgMTMgNS42MTV6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.module,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.module { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTkuMjYgMTEuOTg0bC45NzgtLjAyMWEuOTYyLjk2MiAwIDAgMCAuMDktLjAwNmMuMDExLS4wNjMuMDI2LS4xNzkuMDI2LS4zNjFWOS42ODhjMC0uNjc5LjE4NS0xLjI1Ny41My0xLjcwNy0uMzQ2LS40NTItLjUzLTEuMDMtLjUzLTEuNzA1VjQuMzVjMC0uMTY3LS4wMjEtLjI1OS0uMDM0LS4zMDJMOS4yNiA0LjAyVi45NzNsMS4wMTEuMDExYzIuMTY3LjAyNCAzLjQwOSAxLjE1NiAzLjQwOSAzLjEwNXYxLjk2MmMwIC4zNTEuMDcxLjQ2MS4wNzIuNDYybC45MzYuMDYuMDUzLjkyN3YxLjkzNmwtLjkzNi4wNjFjLS4wNzYuMDE2LS4xMjUuMTQ2LS4xMjUuNDI0djIuMDE3YzAgLjkxNC0uMzMyIDMuMDQzLTMuNDA4IDMuMDc4bC0xLjAxMi4wMTF2LTMuMDQzem0tMy41MjEgMy4wMzJjLTMuMDg5LS4wMzUtMy40MjItMi4xNjQtMy40MjItMy4wNzhWOS45MjFjMC0uMzI3LS4wNjYtLjQzMi0uMDY3LS40MzNsLS45MzctLjA2LS4wNjMtLjkyOVY2LjU2M2wuOTQyLS4wNmMuMDU4IDAgLjEyNS0uMTE0LjEyNS0uNDUyVjQuMDljMC0xLjk0OSAxLjI0OC0zLjA4MSAzLjQyMi0zLjEwNUw2Ljc1Ljk3M1Y0LjAybC0uOTc1LjAyM2EuNTcyLjU3MiAwIDAgMC0uMDkzLjAxYy4wMDYuMDIxLS4wMTkuMTE1LS4wMTkuMjk3djEuOTI4YzAgLjY3NS0uMTg2IDEuMjUzLS41MzQgMS43MDUuMzQ4LjQ1LjUzNCAxLjAyOC41MzQgMS43MDd2MS45MDdjMCAuMTc1LjAxNC4yOTEuMDI3LjM2My4wMjMuMDAyIDEuMDYuMDI1IDEuMDYuMDI1djMuMDQzbC0xLjAxMS0uMDEyeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTUuNzUgMTQuMDE2Yy0xLjYyMy0uMDE5LTIuNDM0LS43MTEtMi40MzQtMi4wNzhWOS45MjFjMC0uOTAyLS4zNTUtMS4zNzYtMS4wNjYtMS40MjJ2LS45OThjLjcxMS0uMDQ1IDEuMDY2LS41MjkgMS4wNjYtMS40NDlWNC4wOWMwLTEuMzg1LjgxMS0yLjA4NyAyLjQzNC0yLjEwNXYxLjA2Yy0uNzI1LjAxNy0xLjA4Ny40NTMtMS4wODcgMS4zMDV2MS45MjhjMCAuOTItLjQ1NCAxLjQ4OC0xLjM2IDEuNzAyVjhjLjkwNy4yMDEgMS4zNi43NjMgMS4zNiAxLjY4OHYxLjkwN2MwIC40ODguMDgxLjgzNS4yNDMgMS4wNDIuMTYyLjIwOC40NDMuMzE2Ljg0NC4zMjV2MS4wNTR6bTcuOTktNS41MTdjLS43MDYuMDQ1LTEuMDYuNTItMS4wNiAxLjQyMnYyLjAxN2MwIDEuMzY3LS44MDcgMi4wNi0yLjQyIDIuMDc4di0xLjA1M2MuMzk2LS4wMDkuNjc4LS4xMTguODQ0LS4zMjguMTY3LS4yMS4yNS0uNTU2LjI1LTEuMDM5VjkuNjg4YzAtLjkyNS40NDktMS40ODggMS4zNDctMS42ODh2LS4wMjFjLS44OTgtLjIxNC0xLjM0Ny0uNzgyLTEuMzQ3LTEuNzAyVjQuMzVjMC0uODUyLS4zNjQtMS4yODgtMS4wOTQtMS4zMDZ2LTEuMDZjMS42MTMuMDE4IDIuNDIuNzIgMi40MiAyLjEwNXYxLjk2MmMwIC45Mi4zNTQgMS40MDQgMS4wNiAxLjQ0OXYuOTk5eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.property,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.property { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDUuNWE1LjUgNS41IDAgMCAxLTUuNSA1LjVjLS4yNzUgMC0uNTQzLS4wMjctLjgwNy0uMDY2bC0uMDc5LS4wMTJhNS40MjkgNS40MjkgMCAwIDEtLjgxLS4xOTJsLTQuNTM3IDQuNTM3Yy0uNDcyLjQ3My0xLjEuNzMzLTEuNzY3LjczM3MtMS4yOTUtLjI2LTEuNzY4LS43MzJhMi41MDIgMi41MDIgMCAwIDEgMC0zLjUzNWw0LjUzNy00LjUzN2E1LjQ1MiA1LjQ1MiAwIDAgMS0uMTkxLS44MTJjLS4wMDUtLjAyNS0uMDA4LS4wNTEtLjAxMi0uMDc3QTUuNTAzIDUuNTAzIDAgMCAxIDUgNS41YTUuNSA1LjUgMCAxIDEgMTEgMHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0xNSA1LjVhNC41IDQuNSAwIDAgMS00LjUgNC41Yy0uNjkzIDAtMS4zNDItLjE3LTEuOTI5LS40NWwtNS4wMSA1LjAxYy0uMjkzLjI5NC0uNjc3LjQ0LTEuMDYxLjQ0cy0uNzY4LS4xNDYtMS4wNjEtLjQzOWExLjUgMS41IDAgMCAxIDAtMi4xMjFsNS4wMS01LjAxQTQuNDgzIDQuNDgzIDAgMCAxIDYgNS41IDQuNSA0LjUgMCAwIDEgMTAuNSAxYy42OTMgMCAxLjM0Mi4xNyAxLjkyOS40NUw5LjYzNiA0LjI0M2wyLjEyMSAyLjEyMSAyLjc5My0yLjc5M2MuMjguNTg3LjQ1IDEuMjM2LjQ1IDEuOTI5eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.unit,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.unit { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxMS4wMTNIMVY0aDE1djcuMDEzeiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTggOUg3VjZoM3YzSDlWN0g4djJ6TTQgN2gxdjJoMVY2SDN2M2gxVjd6bTggMGgxdjJoMVY2aC0zdjNoMVY3eiIgaWQ9Imljb25GZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMiA1djVoMTNWNUgyem00IDRINVY3SDR2MkgzVjZoM3Yzem00IDBIOVY3SDh2Mkg3VjZoM3Yzem00IDBoLTFWN2gtMXYyaC0xVjZoM3YzeiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.constant,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.constant { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMjUyNTI2fS5pY29uLXZzLW91dHtmaWxsOiMyNTI1MjZ9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiM3NWJlZmZ9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMi44NzkgMTRMMSAxMi4xMjFWMy44NzlMMi44NzkgMmgxMC4yNDJMMTUgMy44Nzl2OC4yNDJMMTMuMTIxIDE0SDIuODc5eiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1mZyIgZD0iTTEyLjI5MyA0SDMuNzA3TDMgNC43MDd2Ni41ODZsLjcwNy43MDdoOC41ODZsLjcwNy0uNzA3VjQuNzA3TDEyLjI5MyA0ek0xMSAxMEg1VjloNnYxem0wLTNINVY2aDZ2MXoiIGlkPSJpY29uRmciLz48ZyBpZD0iaWNvbkJnIj48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTEyLjcwNyAxM0gzLjI5M0wyIDExLjcwN1Y0LjI5M0wzLjI5MyAzaDkuNDE0TDE0IDQuMjkzdjcuNDE0TDEyLjcwNyAxM3ptLTktMWg4LjU4NmwuNzA3LS43MDdWNC43MDdMMTIuMjkzIDRIMy43MDdMMyA0LjcwN3Y2LjU4NmwuNzA3LjcwN3oiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tYmx1ZSIgZD0iTTExIDdINVY2aDZ2MXptMCAySDV2MWg2Vjl6Ii8+PC9nPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.value,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.value,\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.enum,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.enum { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1vcmFuZ2V7ZmlsbDojZThhYjUzfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE0LjQxNCAxTDE2IDIuNTg2djUuODI4TDE0LjQxNCAxMEgxMHYzLjQxNkw4LjQxNCAxNUgxLjU4NkwwIDEzLjQxNnYtNS44M0wxLjU4NiA2SDZWMi41ODZMNy41ODYgMWg2LjgyOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0yIDEzaDZWOEgydjV6bTEtNGg0djFIM1Y5em0wIDJoNHYxSDN2LTF6bTExLTVWM0g4djNoLjQxNEw5IDYuNTg2VjZoNHYxSDkuNDE0bC41ODYuNTg2VjhoNFY2em0tMS0xSDlWNGg0djF6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLW9yYW5nZSIgZD0iTTMgMTFoNC4wMDF2MUgzdi0xem0wLTFoNC4wMDFWOUgzdjF6bTYtMnY1bC0xIDFIMmwtMS0xVjhsMS0xaDZsMSAxek04IDhIMnY1aDZWOHptMS0ybDEgMWgzVjZIOXptMC0xaDRWNEg5djF6bTUtM0g4TDcgM3YzaDFWM2g2djVoLTR2MWg0bDEtMVYzbC0xLTF6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.enum-member,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.enum-member { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtZmd7ZmlsbDojMmIyODJlfS5pY29uLXZzLWFjdGlvbi1ibHVle2ZpbGw6Izc1YmVmZn08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0wIDE1VjZoNlYyLjU4Nkw3LjU4NSAxaDYuODI5TDE2IDIuNTg2djUuODI5TDE0LjQxNCAxMEgxMHY1SDB6bTMtNnoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik04IDN2M2g1djFoLTN2MWg0VjNIOHptNSAySDlWNGg0djF6TTIgOHY1aDZWOEgyem01IDNIM3YtMWg0djF6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYWN0aW9uLWJsdWUiIGQ9Ik0xMCA2aDN2MWgtM1Y2ek05IDR2MWg0VjRIOXptNS0ySDhMNyAzdjNoMVYzaDZ2NWgtNHYxaDRsMS0xVjNsLTEtMXptLTcgOEgzdjFoNHYtMXptMi0zdjdIMVY3aDh6TTggOEgydjVoNlY4eiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.keyword,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.keyword { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiA1VjJIOVYxSDB2MTRoMTN2LTNoM1Y5aC0xVjZIOVY1aDd6bS04IDdWOWgxdjNIOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik0yIDNoNXYxSDJWM3oiIGlkPSJpY29uRmciLz48cGF0aCBjbGFzcz0iaWNvbi12cy1iZyIgZD0iTTE1IDRoLTVWM2g1djF6bS0xIDNoLTJ2MWgyVjd6bS00IDBIMXYxaDlWN3ptMiA2SDF2MWgxMXYtMXptLTUtM0gxdjFoNnYtMXptOCAwaC01djFoNXYtMXpNOCAydjNIMVYyaDd6TTcgM0gydjFoNVYzeiIgaWQ9Imljb25CZyIvPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.text,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.text { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAxNUgwVjFoMTZ2MTR6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNOS4yMjkgNy4zNTRjLjAzNS4xNDYuMDUyLjMxLjA1Mi40OTQgMCAuMjM0LS4wMi40NDEtLjA2LjYyMS0uMDM5LjE4LS4wOTUuMzI4LS4xNjguNDQ1YS42ODcuNjg3IDAgMCAxLS45MTQuMjgxLjc2Ljc2IDAgMCAxLS4yMzctLjIwNy45ODguOTg4IDAgMCAxLS4xNTQtLjMwNiAxLjI2MiAxLjI2MiAwIDAgMS0uMDU3LS4zODF2LS41MDZjMC0uMTcuMDItLjMyNi4wNjEtLjQ2NXMuMDk2LS4yNTguMTY4LS4zNTlhLjc1Ni43NTYgMCAwIDEgLjI1Ny0uMjMyYy4xLS4wNTUuMjEtLjA4Mi4zMzEtLjA4MmEuNjQ2LjY0NiAwIDAgMSAuNTcxLjMyYy4wNjcuMTA1LjExNi4yMy4xNS4zNzd6bS01LjEyNi44NjlhLjU1Ny41NTcgMCAwIDAtLjE5Ni4xMzJjLS4wNDcuMDUzLS4wOC4xMTItLjA5Ny4xOHMtLjAyOC4xNDctLjAyOC4yMzNhLjUxMy41MTMgMCAwIDAgLjE1Ny4zOS41MjguNTI4IDAgMCAwIC4xODYuMTEzLjY4Mi42ODIgMCAwIDAgLjI0Mi4wNDEuNzYuNzYgMCAwIDAgLjU5My0uMjcxLjg5Ny44OTcgMCAwIDAgLjE2NS0uMjk1Yy4wMzgtLjExMy4wNTktLjIzNC4wNTktLjM2NXYtLjM0NmwtLjc2MS4xMWExLjI5IDEuMjkgMCAwIDAtLjMyLjA3OHpNMTQgM3YxMEgyVjNoMTJ6TTUuOTYyIDcuNDY5YzAtLjIzOC0uMDI3LS40NTEtLjA4My0uNjM3YTEuMjg2IDEuMjg2IDAgMCAwLS4yNDktLjQ3MSAxLjA4IDEuMDggMCAwIDAtLjQyNC0uMjk1IDEuNjQ0IDEuNjQ0IDAgMCAwLS42MDgtLjEwMWMtLjExOSAwLS4yNDEuMDEyLS4zNjguMDMzYTMuMjEzIDMuMjEzIDAgMCAwLS42NzMuMTk1IDEuMzEzIDEuMzEzIDAgMCAwLS4yMTIuMTE0di43NjhjLjE1OC0uMTMyLjM0MS0uMjM1LjU0NC0uMzEzLjIwNC0uMDc4LjQxMy0uMTE3LjYyNy0uMTE3LjIxMyAwIC4zNzcuMDYzLjQ5NC4xODYuMTE2LjEyNS4xNzQuMzI0LjE3NC42bC0xLjAzLjE1NGMtLjIwNS4wMjYtLjM4LjA3Ny0uNTI2LjE1MWExLjA4MyAxLjA4MyAwIDAgMC0uNTYzLjY2QTEuNTYyIDEuNTYyIDAgMCAwIDMgOC44NTdjMCAuMTcuMDI1LjMyMy4wNzQuNDYzYS45NDUuOTQ1IDAgMCAwIC41NjguNTk2Yy4xMzkuMDU3LjI5Ny4wODQuNDc4LjA4NC4yMjkgMCAuNDMxLS4wNTMuNjA0LS4xNmExLjMgMS4zIDAgMCAwIC40MzktLjQ2M2guMDE0di41MjloLjc4NVY3LjQ2OXpNMTAgNy44NjFhMy41NCAzLjU0IDAgMCAwLS4wNzQtLjczNCAyLjA0NyAyLjA0NyAwIDAgMC0uMjI4LS42MTEgMS4yMDMgMS4yMDMgMCAwIDAtLjM5NC0uNDE2IDEuMDMgMS4wMyAwIDAgMC0uNTc0LS4xNTNjLS4xMjMgMC0uMjM0LjAxOC0uMzM2LjA1MWExIDEgMCAwIDAtLjI3OC4xNDcgMS4xNTMgMS4xNTMgMCAwIDAtLjIyNS4yMjIgMi4wMjIgMi4wMjIgMCAwIDAtLjE4MS4yODloLS4wMTNWNUg3djQuODg3aC42OTd2LS40ODVoLjAxM2MuMDQ0LjA4Mi4wOTUuMTU4LjE1MS4yMjkuMDU3LjA3LjExOS4xMzMuMTkxLjE4NmEuODM1LjgzNSAwIDAgMCAuMjM4LjEyMS45NDMuOTQzIDAgMCAwIC4yOTMuMDQyYy4yMyAwIC40MzQtLjA1My42MDktLjE2YTEuMzQgMS4zNCAwIDAgMCAuNDQzLS40NDNjLjEyLS4xODguMjExLS40MTIuMjcyLS42NzJBMy42MiAzLjYyIDAgMCAwIDEwIDcuODYxem0zLTEuNjU4YS43LjcgMCAwIDAtLjEwNi0uMDY2IDEuMTgzIDEuMTgzIDAgMCAwLS4xNDItLjA2MyAxLjIzMyAxLjIzMyAwIDAgMC0uMzYzLS4wNjVjLS4yMDkgMC0uMzk5LjA1MS0uNTY5LjE1YTEuMzU1IDEuMzU1IDAgMCAwLS40MzMuNDI0Yy0uMTE4LjE4Mi0uMjEuNDAyLS4yNzMuNjZhMy42MyAzLjYzIDAgMCAwLS4wMDggMS42MTVjLjA2LjIzLjE0My40My4yNTIuNjAyLjEwOS4xNjguMjQxLjMwMy4zOTYuMzk2YS45NzIuOTcyIDAgMCAwIC41MjQuMTQ0Yy4xNTggMCAuMjk2LS4wMjEuNDEzLS4wNjguMTE3LS4wNDUuMjE5LS4xMDguMzA5LS4xODR2LS43N2ExLjA5NCAxLjA5NCAwIDAgMS0uMjg4LjIyNS44MTkuODE5IDAgMCAxLS4xNTguMDY4LjQ4LjQ4IDAgMCAxLS4xNTMuMDI3LjYyLjYyIDAgMCAxLS4yNzQtLjA3NGMtLjI0MS0uMTM2LS40MjMtLjQ3OS0uNDIzLTEuMTQ2IDAtLjcxNS4yMDYtMS4xMi40NjktMS4zMDEuMDc3LS4wMzIuMTUzLS4wNjQuMjM4LS4wNjQuMTEzIDAgLjIyLjAyNy4zMTcuMDgyLjA5Ni4wNTcuMTg4LjEzMS4yNzIuMjIzdi0uODE1eiIgaWQ9Imljb25GZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMSAydjEyaDE0VjJIMXptMTMgMTFIMlYzaDEydjEwek01LjYzIDYuMzYxYTEuMDggMS4wOCAwIDAgMC0uNDI0LS4yOTUgMS42NDQgMS42NDQgMCAwIDAtLjYwOC0uMTAxYy0uMTE5IDAtLjI0MS4wMTItLjM2OC4wMzNhMy4yMTMgMy4yMTMgMCAwIDAtLjY3My4xOTUgMS4zMTMgMS4zMTMgMCAwIDAtLjIxMi4xMTR2Ljc2OGMuMTU4LS4xMzIuMzQxLS4yMzUuNTQ0LS4zMTMuMjA0LS4wNzguNDEzLS4xMTcuNjI3LS4xMTcuMjEzIDAgLjM3Ny4wNjMuNDk0LjE4Ni4xMTYuMTI1LjE3NC4zMjQuMTc0LjZsLTEuMDMuMTU0Yy0uMjA1LjAyNi0uMzguMDc3LS41MjYuMTUxYTEuMDgzIDEuMDgzIDAgMCAwLS41NjMuNjZBMS41NjIgMS41NjIgMCAwIDAgMyA4Ljg1N2MwIC4xNy4wMjUuMzIzLjA3NC40NjNhLjk0NS45NDUgMCAwIDAgLjU2OC41OTZjLjEzOS4wNTcuMjk3LjA4NC40NzguMDg0LjIyOSAwIC40MzEtLjA1My42MDQtLjE2YTEuMyAxLjMgMCAwIDAgLjQzOS0uNDYzaC4wMTR2LjUyOWguNzg1VjcuNDY5YzAtLjIzOC0uMDI3LS40NTEtLjA4My0uNjM3YTEuMjg2IDEuMjg2IDAgMCAwLS4yNDktLjQ3MXptLS40NDYgMi4wMmMwIC4xMzEtLjAyLjI1Mi0uMDU5LjM2NWEuODk3Ljg5NyAwIDAgMS0uMTY1LjI5NS43NTguNzU4IDAgMCAxLS41OTMuMjcyLjY4Mi42ODIgMCAwIDEtLjI0Mi0uMDQxLjUwNy41MDcgMCAwIDEtLjMwMi0uMjg2LjU4My41ODMgMCAwIDEtLjA0MS0uMjE4YzAtLjA4Ni4wMS0uMTY0LjAyNy0uMjMycy4wNTEtLjEyNy4wOTgtLjE4YS41NDYuNTQ2IDAgMCAxIC4xOTYtLjEzM2MuMDgzLS4wMzMuMTg5LS4wNjEuMzItLjA3OGwuNzYxLS4xMDl2LjM0NXptNC41MTQtMS44NjVhMS4yMDMgMS4yMDMgMCAwIDAtLjM5NC0uNDE2IDEuMDMgMS4wMyAwIDAgMC0uNTc0LS4xNTNjLS4xMjMgMC0uMjM0LjAxOC0uMzM2LjA1MWExIDEgMCAwIDAtLjI3OC4xNDcgMS4xNTMgMS4xNTMgMCAwIDAtLjIyNS4yMjIgMi4wMjIgMi4wMjIgMCAwIDAtLjE4MS4yODloLS4wMTNWNUg3djQuODg3aC42OTd2LS40ODVoLjAxM2MuMDQ0LjA4Mi4wOTUuMTU4LjE1MS4yMjkuMDU3LjA3LjExOS4xMzMuMTkxLjE4NmEuODM1LjgzNSAwIDAgMCAuMjM4LjEyMS45NDMuOTQzIDAgMCAwIC4yOTMuMDQyYy4yMyAwIC40MzQtLjA1My42MDktLjE2YTEuMzQgMS4zNCAwIDAgMCAuNDQzLS40NDNjLjEyLS4xODguMjExLS40MTIuMjcyLS42NzJBMy42MiAzLjYyIDAgMCAwIDEwIDcuODYxYTMuNTQgMy41NCAwIDAgMC0uMDc0LS43MzQgMi4wNDcgMi4wNDcgMCAwIDAtLjIyOC0uNjExem0tLjQ3NiAxLjk1M2MtLjAzOS4xOC0uMDk1LjMyOC0uMTY4LjQ0NWEuNzU1Ljc1NSAwIDAgMS0uMjY0LjI2Ni42ODcuNjg3IDAgMCAxLS42NTEuMDE1Ljc2Ljc2IDAgMCAxLS4yMzctLjIwNy45ODguOTg4IDAgMCAxLS4xNTQtLjMwNiAxLjI2MiAxLjI2MiAwIDAgMS0uMDU3LS4zODF2LS41MDZjMC0uMTcuMDItLjMyNi4wNjEtLjQ2NXMuMDk2LS4yNTguMTY4LS4zNTlhLjc1Ni43NTYgMCAwIDEgLjI1Ny0uMjMyYy4xLS4wNTUuMjEtLjA4Mi4zMzEtLjA4MmEuNjQ2LjY0NiAwIDAgMSAuNTcxLjMyYy4wNjYuMTA1LjExNi4yMy4xNS4zNzcuMDM1LjE0Ni4wNTIuMzEuMDUyLjQ5NCAwIC4yMzQtLjAxOS40NDEtLjA1OS42MjF6bTMuNjcyLTIuMzMyYS43LjcgMCAwIDEgLjEwNi4wNjZ2LjgxNGExLjE3OCAxLjE3OCAwIDAgMC0uMjczLS4yMjMuNjQ1LjY0NSAwIDAgMC0uMzE3LS4wODFjLS4wODUgMC0uMTYxLjAzMi0uMjM4LjA2NC0uMjYzLjE4MS0uNDY5LjU4Ni0uNDY5IDEuMzAxIDAgLjY2OC4xODIgMS4wMTEuNDIzIDEuMTQ2LjA4NC4wNC4xNzEuMDc0LjI3NC4wNzQuMDQ5IDAgLjEwMS0uMDEuMTUzLS4wMjdhLjg1Ni44NTYgMCAwIDAgLjE1OC0uMDY4IDEuMTYgMS4xNiAwIDAgMCAuMjg4LS4yMjV2Ljc3Yy0uMDkuMDc2LS4xOTIuMTM5LS4zMDkuMTg0YTEuMDk4IDEuMDk4IDAgMCAxLS40MTIuMDY4Ljk3NC45NzQgMCAwIDEtLjUyMy0uMTQzIDEuMjU3IDEuMjU3IDAgMCAxLS4zOTYtLjM5NiAyLjA5OCAyLjA5OCAwIDAgMS0uMjUyLS42MDIgMy4xMTggMy4xMTggMCAwIDEtLjA4OC0uNzU0YzAtLjMxNi4wMzItLjYwNC4wOTYtLjg2MS4wNjMtLjI1OC4xNTUtLjQ3OS4yNzMtLjY2LjExOS0uMTgyLjI2NS0uMzIyLjQzMy0uNDI0YTEuMTAyIDEuMTAyIDAgMCAxIDEuMDczLS4wMjN6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.color,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.color { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLXJlZHtmaWxsOiNmNDg3NzF9Lmljb24tdnMteWVsbG93e2ZpbGw6I2ZmY2MwMH0uaWNvbi12cy1ncmVlbntmaWxsOiMzMzk5MzN9Lmljb24tdnMtYmx1ZXtmaWxsOiMxYmExZTJ9Lmljb24tdnMtYWN0aW9uLXB1cnBsZXtmaWxsOiNiMTgwZDd9Lmljb24td2hpdGV7ZmlsbDojMDAwMDAwfTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZIMFYwaDE2djE2eiIgaWQ9ImNhbnZhcyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLW91dCIgZD0iTTE2IDhjMCA0LjQxMS0zLjU4OSA4LTggOGEyLjgwMyAyLjgwMyAwIDAgMS0yLjgtMi44YzAtLjgzMy4yNzItMS42MjkuNzY2LTIuMjQxYS41OTYuNTk2IDAgMCAwIC4xMDEtLjM1OS42NjcuNjY3IDAgMCAwLS42NjctLjY2Ni41OC41OCAwIDAgMC0uMzU4LjEwMkEzLjU4NCAzLjU4NCAwIDAgMSAyLjggMTAuOCAyLjgwMyAyLjgwMyAwIDAgMSAwIDhjMC00LjQxMSAzLjU4OS04IDgtOHM4IDMuNTg5IDggOHoiIGlkPSJvdXRsaW5lIi8+PHBhdGggY2xhc3M9Imljb24td2hpdGUiIGQ9Ik01LjQgNy45MzNhMi42NyAyLjY3IDAgMCAxIDIuNjY3IDIuNjY2YzAgLjYwNi0uMTkzIDEuMTc5LS41NDQgMS42MTRhMS41OTkgMS41OTkgMCAwIDAtLjMyMy45ODcuOC44IDAgMCAwIC44LjhjMy4zMDkgMCA2LTIuNjkxIDYtNnMtMi42OTEtNi02LTYtNiAyLjY5MS02IDZjMCAuNDQxLjM1OS44LjguOC4zNzggMCAuNzI5LS4xMTQuOTg2LS4zMjJBMi41NjggMi41NjggMCAwIDEgNS40IDcuOTMzeiIgaWQ9Imljb25GZyIvPjxnIGlkPSJpY29uQmciPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNOCAxNWMtLjk5MiAwLTEuOC0uODA4LTEuOC0xLjggMC0uNjA2LjE5My0xLjE3OS41NDQtMS42MTMuMjA4LS4yNTkuMzIzLS42MDkuMzIzLS45ODcgMC0uOTE5LS43NDgtMS42NjYtMS42NjctMS42NjYtLjM3NyAwLS43MjguMTE1LS45ODYuMzIzQTIuNTggMi41OCAwIDAgMSAyLjggOS44QzEuODA4IDkuOCAxIDguOTkyIDEgOGMwLTMuODYgMy4xNC03IDctNyAzLjg1OSAwIDcgMy4xNCA3IDcgMCAzLjg1OS0zLjE0MSA3LTcgN3pNNS40IDcuOTMzYTIuNjcgMi42NyAwIDAgMSAyLjY2NyAyLjY2NmMwIC42MDYtLjE5MyAxLjE3OS0uNTQ0IDEuNjE0YTEuNTk5IDEuNTk5IDAgMCAwLS4zMjMuOTg3LjguOCAwIDAgMCAuOC44YzMuMzA5IDAgNi0yLjY5MSA2LTZzLTIuNjkxLTYtNi02LTYgMi42OTEtNiA2YzAgLjQ0MS4zNTkuOC44LjguMzc4IDAgLjcyOS0uMTE0Ljk4Ni0uMzIyQTIuNTY4IDIuNTY4IDAgMCAxIDUuNCA3LjkzM3oiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tcHVycGxlIiBkPSJNNC41IDUuMzc1YS44NzUuODc1IDAgMSAwIDAgMS43NS44NzUuODc1IDAgMCAwIDAtMS43NXoiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1ibHVlIiBkPSJNNy4xMjUgMy42MjVhLjg3NS44NzUgMCAxIDAgMCAxLjc1Ljg3NS44NzUgMCAwIDAgMC0xLjc1eiIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWdyZWVuIiBkPSJNMTAuNjI1IDQuNWEuODc1Ljg3NSAwIDEgMCAwIDEuNzUuODc1Ljg3NSAwIDAgMCAwLTEuNzV6Ii8+PHBhdGggY2xhc3M9Imljb24tdnMteWVsbG93IiBkPSJNMTEuNSA4YS44NzUuODc1IDAgMSAwIDAgMS43NS44NzUuODc1IDAgMCAwIDAtMS43NXoiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1yZWQiIGQ9Ik05Ljc1IDEwLjYyNWEuODc1Ljg3NSAwIDEgMCAwIDEuNzUuODc1Ljg3NSAwIDAgMCAwLTEuNzV6Ii8+PC9nPjwvc3ZnPg=="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.file,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.file { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX08L3N0eWxlPjxwYXRoIGNsYXNzPSJpY29uLWNhbnZhcy10cmFuc3BhcmVudCIgZD0iTTE2IDE2SDBWMGgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNSAxNkgyVjBoOC42MjFMMTUgNC4zNzlWMTZ6IiBpZD0ib3V0bGluZSIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNMTMgMTRINFYyaDV2NGg0djh6bS0zLTlWMi4yMDdMMTIuNzkzIDVIMTB6IiBpZD0iaWNvbkZnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtYmciIGQ9Ik0zIDF2MTRoMTFWNC43OTNMMTAuMjA3IDFIM3ptMTAgMTNINFYyaDV2NGg0djh6bS0zLTlWMi4yMDdMMTIuNzkzIDVIMTB6IiBpZD0iaWNvbkJnIi8+PC9zdmc+"); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.reference,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.reference { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHN0eWxlPi5pY29uLWNhbnZhcy10cmFuc3BhcmVudHtvcGFjaXR5OjA7ZmlsbDojMmQyZDMwfS5pY29uLXZzLW91dHtmaWxsOiMyZDJkMzB9Lmljb24tdnMtYmd7ZmlsbDojYzVjNWM1fS5pY29uLXZzLWZne2ZpbGw6IzJiMjgyZX0uaWNvbi12cy1hY3Rpb24tYmx1ZXtmaWxsOiM3NWJlZmZ9PC9zdHlsZT48cGF0aCBjbGFzcz0iaWNvbi1jYW52YXMtdHJhbnNwYXJlbnQiIGQ9Ik0xNiAxNkgwVjBoMTZ2MTZ6IiBpZD0iY2FudmFzIi8+PHBhdGggY2xhc3M9Imljb24tdnMtb3V0IiBkPSJNMTQgNC41NTZWMTNjMCAuOTctLjcwMSAyLTIgMkg0Yy0uOTcgMC0yLS43MDEtMi0yVjYuNjQ5QTMuNDk1IDMuNDk1IDAgMCAxIDAgMy41QzAgMS41NyAxLjU3IDAgMy41IDBINXYxaDUuMDYxTDE0IDQuNTU2eiIgaWQ9Im91dGxpbmUiIHN0eWxlPSJkaXNwbGF5OiBub25lOyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWJnIiBkPSJNMTMgNXY4cy0uMDM1IDEtMS4wMzUgMWgtOFMzIDE0IDMgMTNWOWgxdjRoOFY2SDkuMzk3bC41MTctLjUyTDkgNC41NzJWM0g3LjQxOUw2LjQxMyAyaDMuMjI4TDEzIDV6IiBpZD0iaWNvbkJnIi8+PHBhdGggY2xhc3M9Imljb24tdnMtZmciIGQ9Ik03LjQxOSAzSDl2MS41NzJMNy40MTkgM3ptMS45NzggM0w2LjQxNiA5SDR2NGg4VjZIOS4zOTd6IiBpZD0iaWNvbkZnIiBzdHlsZT0iZGlzcGxheTogbm9uZTsiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1hY3Rpb24tYmx1ZSIgZD0iTTUuOTg4IDZIMy41YTIuNSAyLjUgMCAxIDEgMC01SDR2MWgtLjVDMi42NzMgMiAyIDIuNjczIDIgMy41UzIuNjczIDUgMy41IDVoMi41MTNMNCAzaDJsMi41IDIuNDg0TDYgOEg0bDEuOTg4LTJ6IiBpZD0iY29sb3JBY3Rpb24iLz48L3N2Zz4="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.snippet,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.snippet { background-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICBpZD0ic3ZnNDY5NCIKICAgdmlld0JveD0iMCAwIDE2IDE2Ij4KICA8bWV0YWRhdGEKICAgICBpZD0ibWV0YWRhdGE0NzA1Ij4KICAgIDxyZGY6UkRGPgogICAgICA8Y2M6V29yawogICAgICAgICByZGY6YWJvdXQ9IiI+CiAgICAgICAgPGRjOmZvcm1hdD5pbWFnZS9zdmcreG1sPC9kYzpmb3JtYXQ+CiAgICAgICAgPGRjOnR5cGUKICAgICAgICAgICByZGY6cmVzb3VyY2U9Imh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9TdGlsbEltYWdlIiAvPgogICAgICAgIDxkYzp0aXRsZT48L2RjOnRpdGxlPgogICAgICA8L2NjOldvcms+CiAgICA8L3JkZjpSREY+CiAgPC9tZXRhZGF0YT4KICA8ZGVmcwogICAgIGlkPSJkZWZzNDcwMyIgLz4KICA8c3R5bGUKICAgICBpZD0ic3R5bGU0Njk2Ij4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I2Y2ZjZmNn0uaWNvbi12cy1vdXR7ZmlsbDojZjZmNmY2fS5pY29uLXZzLWFjdGlvbi1vcmFuZ2V7ZmlsbDojYzI3ZDFhfTwvc3R5bGU+CiAgPGcKICAgICBpZD0iZzQ3MjQiCiAgICAgdHJhbnNmb3JtPSJtYXRyaXgoMS4zMzMzMzMzLDAsMCwxLjMzMzMzMzMsLTI0NS45OTk5OSwtMzEuOTk5OTk5KSI+CiAgICA8cGF0aAogICAgICAgZD0ibSAxODUsMjQgMTEsMCAwLDEyIC0xMSwwIHoiCiAgICAgICBpZD0icGF0aDQ1MjgiCiAgICAgICBzdHlsZT0iZmlsbDojMmQyZDMwIiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTk0LDMzIDAsLTcgLTcsMCAwLDcgLTEsMCAwLC04IDksMCAwLDggeiBtIC04LDEgMSwwIDAsMSAtMSwwIHogbSAyLDAgMSwwIDAsMSAtMSwwIHogbSAyLDAgMSwwIDAsMSAtMSwwIHogbSAyLDAgMSwwIDAsMSAtMSwwIHogbSAyLDAgMSwwIDAsMSAtMSwwIHoiCiAgICAgICBpZD0icGF0aDQ1MzAiCiAgICAgICBzdHlsZT0iZmlsbDojYzVjNWM1IiAvPgogICAgPHBhdGgKICAgICAgIGQ9Im0gMTg3LDI2IDcsMCAwLDcgLTcsMCB6IgogICAgICAgaWQ9InBhdGg0NTMyIgogICAgICAgc3R5bGU9ImZpbGw6IzJiMjgyZSIgLz4KICA8L2c+Cjwvc3ZnPgo="); }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.customcolor,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.customcolor { background-image: none; }\n\n.monaco-editor.vs-dark .suggest-widget .monaco-list .monaco-list-row .icon.folder,\n.monaco-editor.hc-black .suggest-widget .monaco-list .monaco-list-row .icon.folder { background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4uaWNvbi1jYW52YXMtdHJhbnNwYXJlbnR7b3BhY2l0eTowO2ZpbGw6I0Y2RjZGNjt9IC5pY29uLXZzLW91dHtvcGFjaXR5OjA7ZmlsbDojRjZGNkY2O30gLmljb24tdnMtZmd7b3BhY2l0eTowO2ZpbGw6I0YwRUZGMTt9IC5pY29uLWZvbGRlcntmaWxsOiNDNUM1QzU7fTwvc3R5bGU+PHBhdGggY2xhc3M9Imljb24tY2FudmFzLXRyYW5zcGFyZW50IiBkPSJNMTYgMTZoLTE2di0xNmgxNnYxNnoiIGlkPSJjYW52YXMiLz48cGF0aCBjbGFzcz0iaWNvbi12cy1vdXQiIGQ9Ik0xNiAyLjV2MTBjMCAuODI3LS42NzMgMS41LTEuNSAxLjVoLTExLjk5NmMtLjgyNyAwLTEuNS0uNjczLTEuNS0xLjV2LThjMC0uODI3LjY3My0xLjUgMS41LTEuNWgyLjg4NmwxLTJoOC4xMWMuODI3IDAgMS41LjY3MyAxLjUgMS41eiIgaWQ9Im91dGxpbmUiLz48cGF0aCBjbGFzcz0iaWNvbi1mb2xkZXIiIGQ9Ik0xNC41IDJoLTcuNDkybC0xIDJoLTMuNTA0Yy0uMjc3IDAtLjUuMjI0LS41LjV2OGMwIC4yNzYuMjIzLjUuNS41aDExLjk5NmMuMjc1IDAgLjUtLjIyNC41LS41di0xMGMwLS4yNzYtLjIyNS0uNS0uNS0uNXptLS40OTYgMmgtNi40OTZsLjUtMWg1Ljk5NnYxeiIgaWQ9Imljb25CZyIvPjxwYXRoIGNsYXNzPSJpY29uLXZzLWZnIiBkPSJNMTQgM3YxaC02LjVsLjUtMWg2eiIgaWQ9Imljb25GZyIvPjwvc3ZnPg=="); }\n',""])},function(e,t,n){var i=n(78);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-list {\n\tposition: relative;\n\theight: 100%;\n\twidth: 100%;\n\twhite-space: nowrap;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: -moz-none;\n\t-ms-user-select: none;\n\t-o-user-select: none;\n\tuser-select: none;\n}\n\n.monaco-list > .monaco-scrollable-element {\n\theight: 100%;\n}\n\n.monaco-list-rows {\n\tposition: relative;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-list-row {\n\tposition: absolute;\n\t-moz-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\tcursor: pointer;\n\toverflow: hidden;\n\twidth: 100%;\n\ttouch-action: none;\n}\n\n/* for OS X ballistic scrolling */\n.monaco-list-row.scrolling {\n\tdisplay: none !important;\n}\n\n/* Focus */\n.monaco-list.element-focused, .monaco-list.selection-single, .monaco-list.selection-multiple {\n\toutline: 0 !important;\n}",""])},function(e,t,n){var i=n(80);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-editor .iPadShowKeyboard {\n\twidth: 58px;\n\tmin-width: 0;\n\theight: 36px;\n\tmin-height: 0;\n\tmargin: 0;\n\tpadding: 0;\n\tposition: absolute;\n\tresize: none;\n\toverflow: hidden;\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1OCIgaGVpZ2h0PSIzNiI+PHBhdGggZmlsbD0iI0YwRUZGMSIgZD0iTTU0IDMydi0yOGgtNTB2MjhoNTB6bS0xNi0yaC0xOHYtNmgxOHY2em02IDBoLTR2LTZoNHY2em04IDBoLTZ2LTZoNnY2em0tNC0yNGg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bS02LTEyaDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptLTYtMTJoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0tNi0xMmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bS02LTEyaDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptLTYtMTJoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDEyaC00di02aDR2NnptLTYtMjRoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0tNi0xMmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg2djZoLTZ2LTZ6Ii8+PHBhdGggZmlsbD0iIzQyNDI0MiIgZD0iTTU1LjMzNiAwaC01My4yODVjLTEuMzQ0IDAtMi4wNTEuNjU2LTIuMDUxIDJ2MzJjMCAxLjM0NC43MDcgMS45NjUgMi4wNTEgMS45NjVsNTMuOTQ5LjAzNWMxLjM0NCAwIDItLjY1NiAyLTJ2LTMyYzAtMS4zNDQtMS4zMi0yLTIuNjY0LTJ6bS0xLjMzNiAzMmgtNTB2LTI4aDUwdjI4eiIvPjxyZWN0IHg9IjYiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTIiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTgiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMjQiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzAiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzYiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNDIiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNDgiIHk9IjEyIiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNiIgeT0iNiIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjEyIiB5PSI2IiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTgiIHk9IjYiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIyNCIgeT0iNiIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjMwIiB5PSI2IiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzYiIHk9IjYiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0MiIgeT0iNiIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjQ4IiB5PSI2IiBmaWxsPSIjNDI0MjQyIiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNiIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIxMiIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIxOCIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIyNCIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIzMCIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIzNiIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0MiIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0OCIgeT0iMTgiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI2IiB5PSIyNCIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjQ2IiB5PSIyNCIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjIwIiB5PSIyNCIgZmlsbD0iIzQyNDI0MiIgd2lkdGg9IjE4IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSIxNCIgeT0iMjQiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI0MCIgeT0iMjQiIGZpbGw9IiM0MjQyNDIiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiLz48L3N2Zz4=") center center no-repeat;\n\tborder: 4px solid #F6F6F6;\n\tborder-radius: 4px;\n}\n\n.monaco-editor.vs-dark .iPadShowKeyboard {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSI1OCIgaGVpZ2h0PSIzNiI+PHBhdGggZmlsbD0iIzJCMjgyRSIgZD0iTTU0IDMydi0yOGgtNTB2MjhoNTB6bS0xNi0yaC0xOHYtNmgxOHY2em02IDBoLTR2LTZoNHY2em04IDBoLTZ2LTZoNnY2em0tNC0yNGg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bS02LTEyaDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptLTYtMTJoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0tNi0xMmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bS02LTEyaDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptMCA2aDR2NGgtNHYtNHptLTYtMTJoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDEyaC00di02aDR2NnptLTYtMjRoNHY0aC00di00em0wIDZoNHY0aC00di00em0wIDZoNHY0aC00di00em0tNi0xMmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg0djRoLTR2LTR6bTAgNmg2djZoLTZ2LTZ6Ii8+PHBhdGggZmlsbD0iI0M1QzVDNSIgZD0iTTU1LjMzNiAwaC01My4yODVjLTEuMzQ0IDAtMi4wNTEuNjU2LTIuMDUxIDJ2MzJjMCAxLjM0NC43MDcgMS45NjUgMi4wNTEgMS45NjVsNTMuOTQ5LjAzNWMxLjM0NCAwIDItLjY1NiAyLTJ2LTMyYzAtMS4zNDQtMS4zMi0yLTIuNjY0LTJ6bS0xLjMzNiAzMmgtNTB2LTI4aDUwdjI4eiIvPjxyZWN0IHg9IjYiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTIiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTgiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMjQiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzAiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzYiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNDIiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNDgiIHk9IjEyIiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNiIgeT0iNiIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjEyIiB5PSI2IiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMTgiIHk9IjYiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIyNCIgeT0iNiIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjMwIiB5PSI2IiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iMzYiIHk9IjYiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0MiIgeT0iNiIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjQiIGhlaWdodD0iNCIvPjxyZWN0IHg9IjQ4IiB5PSI2IiBmaWxsPSIjQzVDNUM1IiB3aWR0aD0iNCIgaGVpZ2h0PSI0Ii8+PHJlY3QgeD0iNiIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIxMiIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIxOCIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIyNCIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIzMCIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSIzNiIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0MiIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI0OCIgeT0iMTgiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjQiLz48cmVjdCB4PSI2IiB5PSIyNCIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjQ2IiB5PSIyNCIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjYiIGhlaWdodD0iNiIvPjxyZWN0IHg9IjIwIiB5PSIyNCIgZmlsbD0iI0M1QzVDNSIgd2lkdGg9IjE4IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSIxNCIgeT0iMjQiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiLz48cmVjdCB4PSI0MCIgeT0iMjQiIGZpbGw9IiNDNUM1QzUiIHdpZHRoPSI0IiBoZWlnaHQ9IjYiLz48L3N2Zz4=") center center no-repeat;\n\tborder: 4px solid #252526;\n}',""])},function(e,t,n){var i=n(82);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n\n/* Default standalone editor font */\n.monaco-editor {\n\tfont-family: -apple-system, BlinkMacSystemFont, "Segoe WPC", "Segoe UI", "HelveticaNeue-Light", "Ubuntu", "Droid Sans", sans-serif;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item .action-menu-item:focus .action-label {\n\tcolor: #0059AC;\n\tstroke-width: 1.2px;\n\ttext-shadow: 0px 0px 0.15px #0059AC;\n}\n\n.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\n.monaco-editor.hc-black .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\n\tcolor: #ACDDFF;\n\tstroke-width: 1.2px;\n\ttext-shadow: 0px 0px 0.15px #ACDDFF;\n}\n\n.monaco-editor-hover p {\n\tmargin: 0;\n}\n\n/* The hc-black theme is already high contrast optimized */\n.monaco-editor.hc-black {\n\t-ms-high-contrast-adjust: none;\n}\n/* In case the browser goes into high contrast mode and the editor is not configured with the hc-black theme */\n@media screen and (-ms-high-contrast:active) {\n\n\t/* current line highlight */\n\t.monaco-editor.vs .view-overlays .current-line,\n\t.monaco-editor.vs-dark .view-overlays .current-line {\n\t\tborder-color: windowtext !important;\n\t\tborder-left: 0;\n\t\tborder-right: 0;\n\t}\n\n\t/* view cursors */\n\t.monaco-editor.vs .cursor,\n\t.monaco-editor.vs-dark .cursor {\n\t\tbackground-color: windowtext !important;\n\t}\n\t/* dnd target */\n\t.monaco-editor.vs .dnd-target,\n\t.monaco-editor.vs-dark .dnd-target {\n\t\tborder-color: windowtext !important;\n\t}\n\n\t/* selected text background */\n\t.monaco-editor.vs .selected-text,\n\t.monaco-editor.vs-dark .selected-text {\n\t\tbackground-color: highlight !important;\n\t}\n\n\t/* allow the text to have a transparent background. */\n\t.monaco-editor.vs .view-line,\n\t.monaco-editor.vs-dark .view-line {\n\t\t-ms-high-contrast-adjust: none;\n\t}\n\n\t/* text color */\n\t.monaco-editor.vs .view-line span,\n\t.monaco-editor.vs-dark .view-line span {\n\t\tcolor: windowtext !important;\n\t}\n\t/* selected text color */\n\t.monaco-editor.vs .view-line span.inline-selected-text,\n\t.monaco-editor.vs-dark .view-line span.inline-selected-text {\n\t\tcolor: highlighttext !important;\n\t}\n\n\t/* allow decorations */\n\t.monaco-editor.vs .view-overlays,\n\t.monaco-editor.vs-dark .view-overlays {\n\t\t-ms-high-contrast-adjust: none;\n\t}\n\n\t/* various decorations */\n\t.monaco-editor.vs .selectionHighlight,\n\t.monaco-editor.vs-dark .selectionHighlight,\n\t.monaco-editor.vs .wordHighlight,\n\t.monaco-editor.vs-dark .wordHighlight,\n\t.monaco-editor.vs .wordHighlightStrong,\n\t.monaco-editor.vs-dark .wordHighlightStrong,\n\t.monaco-editor.vs .reference-decoration,\n\t.monaco-editor.vs-dark .reference-decoration {\n\t\tborder: 2px dotted highlight !important;\n\t\tbackground: transparent !important;\n\t\tbox-sizing: border-box;\n\t}\n\t.monaco-editor.vs .rangeHighlight,\n\t.monaco-editor.vs-dark .rangeHighlight {\n\t\tbackground: transparent !important;\n\t\tborder: 1px dotted activeborder !important;\n\t\tbox-sizing: border-box;\n\t}\n\t.monaco-editor.vs .bracket-match,\n\t.monaco-editor.vs-dark .bracket-match {\n\t\tborder-color: windowtext !important;\n\t\tbackground: transparent !important;\n\t}\n\n\t/* find widget */\n\t.monaco-editor.vs .findMatch,\n\t.monaco-editor.vs-dark .findMatch,\n\t.monaco-editor.vs .currentFindMatch,\n\t.monaco-editor.vs-dark .currentFindMatch {\n\t\tborder: 2px dotted activeborder !important;\n\t\tbackground: transparent !important;\n\t\tbox-sizing: border-box;\n\t}\n\t.monaco-editor.vs .find-widget,\n\t.monaco-editor.vs-dark .find-widget {\n\t\tborder: 1px solid windowtext;\n\t}\n\n\t/* list - used by suggest widget */\n\t.monaco-editor.vs .monaco-list .monaco-list-row,\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row {\n\t\t-ms-high-contrast-adjust: none;\n\t\tcolor: windowtext !important;\n\t}\n\t.monaco-editor.vs .monaco-list .monaco-list-row.focused,\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row.focused {\n\t\tcolor: highlighttext !important;\n\t\tbackground-color: highlight !important;\n\t}\n\t.monaco-editor.vs .monaco-list .monaco-list-row:hover,\n\t.monaco-editor.vs-dark .monaco-list .monaco-list-row:hover {\n\t\tbackground: transparent !important;\n\t\tborder: 1px solid highlight;\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* tree */\n\t.monaco-editor.vs .monaco-tree .monaco-tree-row,\n\t.monaco-editor.vs-dark .monaco-tree .monaco-tree-row {\n\t\t-ms-high-contrast-adjust: none;\n\t\tcolor: windowtext !important;\n\t}\n\t.monaco-editor.vs .monaco-tree .monaco-tree-row.selected,\n\t.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.selected,\n\t.monaco-editor.vs .monaco-tree .monaco-tree-row.focused,\n\t.monaco-editor.vs-dark .monaco-tree .monaco-tree-row.focused {\n\t\tcolor: highlighttext !important;\n\t\tbackground-color: highlight !important;\n\t}\n\t.monaco-editor.vs .monaco-tree .monaco-tree-row:hover,\n\t.monaco-editor.vs-dark .monaco-tree .monaco-tree-row:hover {\n\t\tbackground: transparent !important;\n\t\tborder: 1px solid highlight;\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* scrollbars */\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar,\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar {\n\t\t-ms-high-contrast-adjust: none;\n\t\tbackground: background !important;\n\t\tborder: 1px solid windowtext;\n\t\tbox-sizing: border-box;\n\t}\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider,\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider {\n\t\tbackground: windowtext !important;\n\t}\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider:hover,\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider:hover {\n\t\tbackground: highlight !important;\n\t}\n\t.monaco-editor.vs .monaco-scrollable-element > .scrollbar > .slider.active,\n\t.monaco-editor.vs-dark .monaco-scrollable-element > .scrollbar > .slider.active {\n\t\tbackground: highlight !important;\n\t}\n\n\t/* overview ruler */\n\t.monaco-editor.vs .decorationsOverviewRuler,\n\t.monaco-editor.vs-dark .decorationsOverviewRuler {\n\t\topacity: 0;\n\t}\n\n\t/* minimap */\n\t.monaco-editor.vs .minimap,\n\t.monaco-editor.vs-dark .minimap {\n\t\tdisplay: none;\n\t}\n\n\t/* squiggles */\n\t.monaco-editor.vs .squiggly-d-error,\n\t.monaco-editor.vs-dark .squiggly-d-error {\n\t\tbackground: transparent !important;\n\t\tborder-bottom: 4px double #E47777;\n\t}\n\t.monaco-editor.vs .squiggly-c-warning,\n\t.monaco-editor.vs-dark .squiggly-c-warning {\n\t\tborder-bottom: 4px double #71B771;\n\t}\n\t.monaco-editor.vs .squiggly-b-info,\n\t.monaco-editor.vs-dark .squiggly-b-info {\n\t\tborder-bottom: 4px double #71B771;\n\t}\n\t.monaco-editor.vs .squiggly-a-hint,\n\t.monaco-editor.vs-dark .squiggly-a-hint {\n\t\tborder-bottom: 4px double #6c6c6c;\n\t}\n\n\t/* contextmenu */\n\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label,\n\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:focus .action-label {\n\t\t-ms-high-contrast-adjust: none;\n\t\tcolor: highlighttext !important;\n\t\tbackground-color: highlight !important;\n\t}\n\t.monaco-editor.vs .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label,\n\t.monaco-editor.vs-dark .monaco-menu .monaco-action-bar.vertical .action-menu-item:hover .action-label {\n\t\t-ms-high-contrast-adjust: none;\n\t\tbackground: transparent !important;\n\t\tborder: 1px solid highlight;\n\t\tbox-sizing: border-box;\n\t}\n\n\t/* diff editor */\n\t.monaco-diff-editor.vs .diffOverviewRuler,\n\t.monaco-diff-editor.vs-dark .diffOverviewRuler {\n\t\tdisplay: none;\n\t}\n\t.monaco-editor.vs .line-insert,\n\t.monaco-editor.vs-dark .line-insert,\n\t.monaco-editor.vs .line-delete,\n\t.monaco-editor.vs-dark .line-delete {\n\t\tbackground: transparent !important;\n\t\tborder: 1px solid highlight !important;\n\t\tbox-sizing: border-box;\n\t}\n\t.monaco-editor.vs .char-insert,\n\t.monaco-editor.vs-dark .char-insert,\n\t.monaco-editor.vs .char-delete,\n\t.monaco-editor.vs-dark .char-delete {\n\t\tbackground: transparent !important;\n\t}\n}\n\n/*.monaco-editor.vs [tabindex="0"]:focus {\n\toutline: 1px solid rgba(0, 122, 204, 0.4);\n\toutline-offset: -1px;\n\topacity: 1 !important;\n}\n\n.monaco-editor.vs-dark [tabindex="0"]:focus {\n\toutline: 1px solid rgba(14, 99, 156, 0.6);\n\toutline-offset: -1px;\n\topacity: 1 !important;\n}*/\n',""])},function(e,t,n){var i=n(84);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n/* ---------- DiffEditor ---------- */\n\n.monaco-diff-editor .diffOverview {\n\tz-index: 9;\n}\n\n/* colors not externalized: using transparancy on background */\n.monaco-diff-editor.vs\t\t\t.diffOverview { background: rgba(0, 0, 0, 0.03); }\n.monaco-diff-editor.vs-dark\t\t.diffOverview { background: rgba(255, 255, 255, 0.01); }\n\n.monaco-diff-editor .diffViewport {\n\tbox-shadow: inset 0px 0px 1px 0px #B9B9B9;\n\tbackground: rgba(0, 0, 0, 0.10);\n}\n\n.monaco-diff-editor.vs-dark .diffViewport,\n.monaco-diff-editor.hc-black .diffViewport {\n\tbackground: rgba(255, 255, 255, 0.10);\n}\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs\t\t.scrollbar { background: rgba(0,0,0,0); }\n.monaco-scrollable-element.modified-in-monaco-diff-editor.vs-dark\t.scrollbar { background: rgba(0,0,0,0); }\n.monaco-scrollable-element.modified-in-monaco-diff-editor.hc-black\t.scrollbar { background: none; }\n\n.monaco-scrollable-element.modified-in-monaco-diff-editor .slider {\n\tz-index: 10;\n}\n.modified-in-monaco-diff-editor\t\t\t\t.slider.active { background: rgba(171, 171, 171, .4); }\n.modified-in-monaco-diff-editor.hc-black\t.slider.active { background: none; }\n\n/* ---------- Diff ---------- */\n\n.monaco-editor .insert-sign,\n.monaco-diff-editor .insert-sign,\n.monaco-editor .delete-sign,\n.monaco-diff-editor .delete-sign {\n\tbackground-size: 60%;\n\topacity: 0.7;\n\tbackground-repeat: no-repeat;\n\tbackground-position: 50% 50%;\n}\n.monaco-editor.hc-black .insert-sign,\n.monaco-diff-editor.hc-black .insert-sign,\n.monaco-editor.hc-black .delete-sign,\n.monaco-diff-editor.hc-black .delete-sign {\n\topacity: 1;\n}\n.monaco-editor .insert-sign,\n.monaco-diff-editor .insert-sign {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkxheWVyIDE8L3RpdGxlPjxyZWN0IGhlaWdodD0iMTEiIHdpZHRoPSIzIiB5PSIzIiB4PSI3IiBmaWxsPSIjNDI0MjQyIi8+PHJlY3QgaGVpZ2h0PSIzIiB3aWR0aD0iMTEiIHk9IjciIHg9IjMiIGZpbGw9IiM0MjQyNDIiLz48L3N2Zz4=");\n}\n.monaco-editor .delete-sign,\n.monaco-diff-editor .delete-sign {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkxheWVyIDE8L3RpdGxlPjxyZWN0IGhlaWdodD0iMyIgd2lkdGg9IjExIiB5PSI3IiB4PSIzIiBmaWxsPSIjNDI0MjQyIi8+PC9zdmc+");\n}\n\n.monaco-editor.vs-dark .insert-sign,\n.monaco-diff-editor.vs-dark .insert-sign,\n.monaco-editor.hc-black .insert-sign,\n.monaco-diff-editor.hc-black .insert-sign {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkxheWVyIDE8L3RpdGxlPjxyZWN0IGhlaWdodD0iMTEiIHdpZHRoPSIzIiB5PSIzIiB4PSI3IiBmaWxsPSIjQzVDNUM1Ii8+PHJlY3QgaGVpZ2h0PSIzIiB3aWR0aD0iMTEiIHk9IjciIHg9IjMiIGZpbGw9IiNDNUM1QzUiLz48L3N2Zz4=");\n}\n.monaco-editor.vs-dark .delete-sign,\n.monaco-diff-editor.vs-dark .delete-sign,\n.monaco-editor.hc-black .delete-sign,\n.monaco-diff-editor.hc-black .delete-sign {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHRpdGxlPkxheWVyIDE8L3RpdGxlPjxyZWN0IGhlaWdodD0iMyIgd2lkdGg9IjExIiB5PSI3IiB4PSIzIiBmaWxsPSIjQzVDNUM1Ii8+PC9zdmc+");\n}\n\n.monaco-editor .inline-deleted-margin-view-zone {\n\ttext-align: right;\n}\n.monaco-editor .inline-added-margin-view-zone {\n\ttext-align: right;\n}\n\n.monaco-editor .diagonal-fill {\n\tbackground: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAadEVYdFNvZnR3YXJlAFBhaW50Lk5FVCB2My41LjEwMPRyoQAAAChJREFUKFNjOH/+fAMDDgCSu3Dhwn9c8gwwBTgNGR4KQP4HhQOhsAIAZCBTkhtqePcAAAAASUVORK5CYII=");\n}\n.monaco-editor.vs-dark .diagonal-fill {\n\topacity: 0.2;\n}\n.monaco-editor.hc-black .diagonal-fill {\n\tbackground: none;\n}\n\n/* ---------- Inline Diff ---------- */\n\n.monaco-editor .view-zones .view-lines .view-line span {\n\tdisplay: inline-block;\n}\n',""])},function(e,t,n){var i=n(86);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-diff-editor .diff-review-line-number {\n\ttext-align: right;\n\tdisplay: inline-block;\n}\n\n.monaco-diff-editor .diff-review {\n\tposition: absolute;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: none;\n\t-o-user-select: none;\n\tuser-select: none;\n}\n\n.monaco-diff-editor .diff-review-summary {\n\tpadding-left: 10px;\n}\n\n.monaco-diff-editor .diff-review-shadow {\n\tposition: absolute;\n}\n\n.monaco-diff-editor .diff-review-row {\n\twhite-space: pre;\n}\n\n.monaco-diff-editor .diff-review-table {\n\tdisplay: table;\n\tmin-width: 100%;\n}\n\n.monaco-diff-editor .diff-review-row {\n\tdisplay: table-row;\n\twidth: 100%;\n}\n\n.monaco-diff-editor .diff-review-cell {\n\tdisplay: table-cell;\n}\n\n.monaco-diff-editor .diff-review-spacer {\n\tdisplay: inline-block;\n\twidth: 10px;\n}\n\n.monaco-diff-editor .diff-review-actions {\n\tdisplay: inline-block;\n\tposition: absolute;\n\tright: 10px;\n\ttop: 2px;\n}\n\n.monaco-diff-editor .diff-review-actions .action-label {\n\twidth: 16px;\n\theight: 16px;\n\tmargin: 2px 0;\n}\n.monaco-diff-editor .action-label.icon.close-diff-review {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iIzQyNDI0MiIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==") center center no-repeat;\n}\n.monaco-diff-editor.hc-black .action-label.icon.close-diff-review,\n.monaco-diff-editor.vs-dark .action-label.icon.close-diff-review {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iMyAzIDE2IDE2IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDMgMyAxNiAxNiI+PHBvbHlnb24gZmlsbD0iI2U4ZThlOCIgcG9pbnRzPSIxMi41OTcsMTEuMDQyIDE1LjQsMTMuODQ1IDEzLjg0NCwxNS40IDExLjA0MiwxMi41OTggOC4yMzksMTUuNCA2LjY4MywxMy44NDUgOS40ODUsMTEuMDQyIDYuNjgzLDguMjM5IDguMjM4LDYuNjgzIDExLjA0Miw5LjQ4NiAxMy44NDUsNi42ODMgMTUuNCw4LjIzOSIvPjwvc3ZnPg==") center center no-repeat;\n}',""])},function(e,t,n){var i=n(88);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,"/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.context-view .monaco-menu {\n\tmin-width: 130px;\n}\n",""])},function(e,t,n){var i=n(90);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n\n.monaco-menu .monaco-action-bar.vertical {\n\tmargin-left: 0;\n\toverflow: visible;\n}\n\n.monaco-menu .monaco-action-bar.vertical .actions-container {\n\tdisplay: block;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tpadding: 0;\n\t-ms-transform: none;\n\t-webkit-transform: none;\n\t-moz-transform: none;\n\t-o-transform: none;\n\ttransform: none;\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.active {\n\t-ms-transform: none;\n\t-webkit-transform: none;\n\t-moz-transform: none;\n\t-o-transform: none;\n\ttransform: none;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground-color: #E4E4E4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-menu-item {\n\t-ms-flex: 1 1 auto;\n\tflex: 1 1 auto;\n\tdisplay: -ms-flexbox;\n\tdisplay: flex;\n\theight: 2em;\n\talign-items: center;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label {\n\t-ms-flex: 1 1 auto;\n\tflex: 1 1 auto;\n\ttext-decoration: none;\n\tpadding: 0 1em;\n\tbackground: none;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .keybinding,\n.monaco-menu .monaco-action-bar.vertical .submenu-indicator {\n\tdisplay: inline-block;\n\t-ms-flex: 2 1 auto;\n\tflex: 2 1 auto;\n\tpadding: 0 1em;\n\ttext-align: right;\n\tfont-size: 12px;\n\tline-height: 1;\n}\n\n\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .keybinding,\n.monaco-menu .monaco-action-bar.vertical .action-item.disabled .submenu-indicator {\n\topacity: 0.4;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:not(.separator) {\n\tdisplay: inline-block;\n\t-webkit-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-moz-box-sizing:\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\tmargin: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator {\n\tpadding: 0.5em 0 0 0;\n\tmargin-bottom: 0.5em;\n\twidth: 100%;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.separator.text {\n\tpadding: 0.7em 1em 0.1em 1em;\n\tfont-weight: bold;\n\topacity: 1;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label:hover {\n\tcolor: inherit;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-label.checked:after {\n\tcontent: \' \\2713\';\n}\n\n/* Context Menu */\n\n.context-view.monaco-menu-container {\n\tfont-family: "Segoe WPC", "Segoe UI", ".SFNSDisplay-Light", "SFUIText-Light", "HelveticaNeue-Light", sans-serif, "Droid Sans Fallback";\n\toutline: 0;\n\tbox-shadow: 0 2px 8px #A8A8A8;\n\tborder: none;\n\tcolor: #646465;\n\tbackground-color: white;\n\t-webkit-animation: fadeIn 0.083s linear;\n\t-o-animation: fadeIn 0.083s linear;\n\t-moz-animation: fadeIn 0.083s linear;\n\t-ms-animation: fadeIn 0.083s linear;\n\tanimation: fadeIn 0.083s linear;\n}\n\n.context-view.monaco-menu-container :focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical:focus,\n.context-view.monaco-menu-container .monaco-action-bar.vertical :focus {\n\toutline: 0;\n}\n\n.monaco-menu .monaco-action-bar.vertical .action-item {\n\tborder: 1px solid transparent; /* prevents jumping behaviour on hover or focus */\n}\n\n/* Dark theme */\n.vs-dark .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground-color: #4B4C4D;\n}\n\n.vs-dark .context-view.monaco-menu-container {\n\tbox-shadow: 0 2px 8px #000;\n\tcolor: #BBB;\n\tbackground-color: #2D2F31;\n}\n\n/* High Contrast Theming */\n.hc-black .context-view.monaco-menu-container {\n\tborder: 2px solid #6FC3DF;\n\tcolor: white;\n\tbackground-color: #0C141F;\n\tbox-shadow: none;\n}\n\n.hc-black .monaco-menu .monaco-action-bar.vertical .action-item.focused {\n\tbackground: none;\n\tborder: 1px dotted #f38518;\n}',""])},function(e,t,n){var i=n(92);"string"==typeof i&&(i=[[e.i,i,""]]);n(3)(i,{hmr:!0,transform:void 0,insertInto:void 0}),i.locals&&(e.exports=i.locals)},function(e,t,n){(e.exports=n(2)(!1)).push([e.i,'/*---------------------------------------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Licensed under the MIT License. See License.txt in the project root for license information.\n *--------------------------------------------------------------------------------------------*/\n.monaco-tree {\n\theight: 100%;\n\twidth: 100%;\n\twhite-space: nowrap;\n\t-webkit-user-select: none;\n\t-khtml-user-select: none;\n\t-moz-user-select: -moz-none;\n\t-ms-user-select: none;\n\t-o-user-select: none;\n\tuser-select: none;\n\tposition: relative;\n}\n\n.monaco-tree > .monaco-scrollable-element {\n\theight: 100%;\n}\n\n.monaco-tree > .monaco-scrollable-element > .monaco-tree-wrapper {\n\theight: 100%;\n\twidth: 100%;\n\tposition: relative;\n}\n\n.monaco-tree .monaco-tree-rows {\n\tposition: absolute;\n\twidth: 100%;\n\theight: 100%;\n}\n\n.monaco-tree .monaco-tree-rows > .monaco-tree-row {\n\t-moz-box-sizing:\tborder-box;\n\t-o-box-sizing:\t\tborder-box;\n\t-ms-box-sizing:\t\tborder-box;\n\tbox-sizing:\t\t\tborder-box;\n\tcursor: pointer;\n\toverflow: hidden;\n\twidth: 100%;\n\ttouch-action: none;\n}\n\n.monaco-tree .monaco-tree-rows > .monaco-tree-row > .content {\n\tposition: relative;\n\theight: 100%;\n}\n\n.monaco-tree-drag-image {\n\tdisplay: inline-block;\n\tpadding: 1px 7px;\n\tborder-radius: 10px;\n\tfont-size: 12px;\n\tposition: absolute;\n}\n\n/* for OS X ballistic scrolling */\n.monaco-tree .monaco-tree-rows > .monaco-tree-row.scrolling {\n\tdisplay: none;\n}\n\n/* Expansion */\n\n.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.has-children > .content:before {\n\tcontent: \' \';\n\tposition: absolute;\n\tdisplay: block;\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0iIzY0NjQ2NSIgZD0iTTYgNHY4bDQtNC00LTR6bTEgMi40MTRMOC41ODYgOCA3IDkuNTg2VjYuNDE0eiIvPjwvc3ZnPg==") 50% 50% no-repeat;\n\twidth: 16px;\n\theight: 100%;\n\ttop: 0;\n\tleft: -16px;\n}\n\n.monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.expanded > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0iIzY0NjQ2NSIgZD0iTTExIDEwSDUuMzQ0TDExIDQuNDE0VjEweiIvPjwvc3ZnPg==");\n}\n\n.monaco-tree .monaco-tree-rows > .monaco-tree-row.has-children.loading > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSdubycgPz4KPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzEwcHgnIGhlaWdodD0nMTBweCc+Cgk8c3R5bGU+CiAgICBjaXJjbGUgewogICAgICBhbmltYXRpb246IGJhbGwgMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgY2lyY2xlOm50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4wNzVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgfQogICAgY2lyY2xlOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yMjVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDUpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDYpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjM3NXM7IH0KICAgIGNpcmNsZTpudGgtY2hpbGQoNykgeyBhbmltYXRpb24tZGVsYXk6IDAuNDVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDgpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjUyNXM7IH0KCiAgICBAa2V5ZnJhbWVzIGJhbGwgewogICAgICBmcm9tIHsgb3BhY2l0eTogMTsgfQogICAgICB0byB7IG9wYWNpdHk6IDAuMzsgfQogICAgfQoJPC9zdHlsZT4KCTxnPgoJCTxjaXJjbGUgY3g9JzUnIGN5PScxJyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzcuODI4NCcgY3k9JzIuMTcxNicgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PSc5JyBjeT0nNScgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PSc3LjgyODQnIGN5PSc3LjgyODQnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nNScgY3k9JzknIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nMi4xNzE2JyBjeT0nNy44Mjg0JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzEnIGN5PSc1JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzIuMTcxNicgY3k9JzIuMTcxNicgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCTwvZz4KPC9zdmc+Cg==");\n}\n\n/* Highlighted */\n\n.monaco-tree.highlighted .monaco-tree-rows > .monaco-tree-row:not(.highlighted) {\n\topacity: 0.3;\n}\n\n.vs-dark .monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.has-children > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTYgNHY4bDQtNC00LTR6bTEgMi40MTRMOC41ODYgOCA3IDkuNTg2VjYuNDE0eiIvPjwvc3ZnPg==");\n}\n\n.vs-dark .monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.expanded > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxNiAxNiI+PHBhdGggZmlsbD0iI0U4RThFOCIgZD0iTTExIDEwSDUuMzQ0TDExIDQuNDE0VjEweiIvPjwvc3ZnPg==");\n}\n\n.vs-dark .monaco-tree .monaco-tree-rows > .monaco-tree-row.has-children.loading > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSdubycgPz4KPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzEwcHgnIGhlaWdodD0nMTBweCc+Cgk8c3R5bGU+CiAgICBjaXJjbGUgewogICAgICBhbmltYXRpb246IGJhbGwgMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgY2lyY2xlOm50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4wNzVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgfQogICAgY2lyY2xlOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yMjVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDUpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDYpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjM3NXM7IH0KICAgIGNpcmNsZTpudGgtY2hpbGQoNykgeyBhbmltYXRpb24tZGVsYXk6IDAuNDVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDgpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjUyNXM7IH0KCiAgICBAa2V5ZnJhbWVzIGJhbGwgewogICAgICBmcm9tIHsgb3BhY2l0eTogMTsgfQogICAgICB0byB7IG9wYWNpdHk6IDAuMzsgfQogICAgfQoJPC9zdHlsZT4KCTxnIHN0eWxlPSJmaWxsOmdyZXk7Ij4KCQk8Y2lyY2xlIGN4PSc1JyBjeT0nMScgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PSc3LjgyODQnIGN5PScyLjE3MTYnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nOScgY3k9JzUnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nNy44Mjg0JyBjeT0nNy44Mjg0JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzUnIGN5PSc5JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzIuMTcxNicgY3k9JzcuODI4NCcgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PScxJyBjeT0nNScgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PScyLjE3MTYnIGN5PScyLjE3MTYnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+Cgk8L2c+Cjwvc3ZnPgo=");\n}\n\n.hc-black .monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.has-children > .content:before\t{\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTYgNHY4bDQtNC00LTR6bTEgMi40MTRsMS41ODYgMS41ODYtMS41ODYgMS41ODZ2LTMuMTcyeiIvPjwvc3ZnPg==");\n}\n\n.hc-black .monaco-tree .monaco-tree-rows.show-twisties > .monaco-tree-row.expanded > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiI+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTExIDEwLjA3aC01LjY1Nmw1LjY1Ni01LjY1NnY1LjY1NnoiLz48L3N2Zz4=");\n}\n\n.hc-black .monaco-tree .monaco-tree-rows > .monaco-tree-row.has-children.loading > .content:before {\n\tbackground-image: url("data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0nMS4wJyBzdGFuZGFsb25lPSdubycgPz4KPHN2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHZlcnNpb249JzEuMScgd2lkdGg9JzEwcHgnIGhlaWdodD0nMTBweCc+Cgk8c3R5bGU+CiAgICBjaXJjbGUgewogICAgICBhbmltYXRpb246IGJhbGwgMC42cyBsaW5lYXIgaW5maW5pdGU7CiAgICB9CgogICAgY2lyY2xlOm50aC1jaGlsZCgyKSB7IGFuaW1hdGlvbi1kZWxheTogMC4wNzVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDMpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjE1czsgfQogICAgY2lyY2xlOm50aC1jaGlsZCg0KSB7IGFuaW1hdGlvbi1kZWxheTogMC4yMjVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDUpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjNzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDYpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjM3NXM7IH0KICAgIGNpcmNsZTpudGgtY2hpbGQoNykgeyBhbmltYXRpb24tZGVsYXk6IDAuNDVzOyB9CiAgICBjaXJjbGU6bnRoLWNoaWxkKDgpIHsgYW5pbWF0aW9uLWRlbGF5OiAwLjUyNXM7IH0KCiAgICBAa2V5ZnJhbWVzIGJhbGwgewogICAgICBmcm9tIHsgb3BhY2l0eTogMTsgfQogICAgICB0byB7IG9wYWNpdHk6IDAuMzsgfQogICAgfQoJPC9zdHlsZT4KCTxnIHN0eWxlPSJmaWxsOndoaXRlOyI+CgkJPGNpcmNsZSBjeD0nNScgY3k9JzEnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nNy44Mjg0JyBjeT0nMi4xNzE2JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzknIGN5PSc1JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJCTxjaXJjbGUgY3g9JzcuODI4NCcgY3k9JzcuODI4NCcgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PSc1JyBjeT0nOScgcj0nMScgc3R5bGU9J29wYWNpdHk6MC4zOycgLz4KCQk8Y2lyY2xlIGN4PScyLjE3MTYnIGN5PSc3LjgyODQnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nMScgY3k9JzUnIHI9JzEnIHN0eWxlPSdvcGFjaXR5OjAuMzsnIC8+CgkJPGNpcmNsZSBjeD0nMi4xNzE2JyBjeT0nMi4xNzE2JyByPScxJyBzdHlsZT0nb3BhY2l0eTowLjM7JyAvPgoJPC9nPgo8L3N2Zz4K");\n}\n\n.monaco-tree-action.collapse-all {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iLTEgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAtMSAwIDE2IDE2Ij48cGF0aCBmaWxsPSIjNDI0MjQyIiBkPSJNMTQgMXY5aC0xdi04aC04di0xaDl6bS0xMSAydjFoOHY4aDF2LTloLTl6bTcgMnY5aC05di05aDl6bS0yIDJoLTV2NWg1di01eiIvPjxyZWN0IHg9IjQiIHk9IjkiIGZpbGw9IiMwMDUzOUMiIHdpZHRoPSIzIiBoZWlnaHQ9IjEiLz48L3N2Zz4=") center center no-repeat;\n}\n\n.hc-black .monaco-tree-action.collapse-all,\n.vs-dark .monaco-tree-action.collapse-all {\n\tbackground: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNiIgaGVpZ2h0PSIxNiIgdmlld0JveD0iLTEgMCAxNiAxNiIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAtMSAwIDE2IDE2Ij48cGF0aCBmaWxsPSIjQzVDNUM1IiBkPSJNMTQgMXY5aC0xdi04aC04di0xaDl6bS0xMSAydjFoOHY4aDF2LTloLTl6bTcgMnY5aC05di05aDl6bS0yIDJoLTV2NWg1di01eiIvPjxyZWN0IHg9IjQiIHk9IjkiIGZpbGw9IiM3NUJFRkYiIHdpZHRoPSIzIiBoZWlnaHQ9IjEiLz48L3N2Zz4=") center center no-repeat;\n}\n',""])},function(e,t,n){Object.defineProperty(t,"__esModule",{value:!0});var i=monaco.Emitter,r=n(94),o=n(95),s=n(96),a=function(){function e(e){this._onDidChange=new i,this.setLanguageSettings(e)}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageSettings",{get:function(){return this._languageSettings},enumerable:!0,configurable:!0}),e.prototype.setLanguageSettings=function(e){this._languageSettings=e||Object.create(null),this._onDidChange.fire(this)},e}();t.LanguageServiceDefaultsImpl=a;var l=new a({includeControlCommands:!0,newlineAfterPipe:!0,openSuggestionDialogAfterPreviousSuggestionAccepted:!0,useIntellisenseV2:!1});function u(e){Promise.resolve().then(function(){var t=[n(99)];e.apply(null,t)}.bind(this)).catch(n.oe)}monaco.languages.kusto={kustoDefaults:l,getKustoWorker:function(){return new monaco.Promise(function(e,t){u(function(n){n.getKustoWorker().then(e,t)})})}},monaco.languages.onLanguage("kusto",function(){u(function(e){return e.setupMode(l)})}),monaco.languages.register({id:"kusto",extensions:[".csl",".kql"]}),monaco.editor.defineTheme("kusto-light",{base:"vs",inherit:!0,rules:[{token:"comment",foreground:"008000"},{token:"variable.predefined",foreground:"800080"},{token:"function",foreground:"0000FF"},{token:"operator.sql",foreground:"FF4500"},{token:"string",foreground:"B22222"},{token:"operator.scss",foreground:"0000FF"},{token:"variable",foreground:"C71585"},{token:"variable.parameter",foreground:"9932CC"},{token:"",foreground:"000000"},{token:"type",foreground:"0000FF"},{token:"tag",foreground:"0000FF"},{token:"annotation",foreground:"2B91AF"},{token:"keyword",foreground:"0000FF"},{token:"number",foreground:"191970"},{token:"annotation",foreground:"9400D3"},{token:"invalid",background:"cd3131"}],colors:{}}),monaco.editor.onDidCreateEditor(function(e){s.extend(e),new r.default(e),function(e){return void 0!==e.addAction}(e)&&new o.default(e),function(e){e.onDidChangeCursorSelection(function(t){if(l&&l.languageSettings&&l.languageSettings.openSuggestionDialogAfterPreviousSuggestionAccepted){if(!("modelChange"===t.source&&t.reason===monaco.editor.CursorChangeReason.RecoverFromMarkers))return;t.selection;var n=e.getModel().getValueInRange(t.selection);" "===n[n.length-1]&&setTimeout(function(){return e.trigger("monaco-kusto","editor.action.triggerSuggest",{})},10)}})}(e)})},function(e,t){ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Released under the MIT license + * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md + *-----------------------------------------------------------*/ +var n=function(){function e(e){var t=this;this.editor=e,this.disposables=[],this.decorations=[],this.editor.onDidChangeCursorSelection(function(e){t.highlightCommandUnderCursor(e)})}return e.prototype.getId=function(){return e.ID},e.prototype.dispose=function(){this.disposables.forEach(function(e){return e.dispose()})},e.prototype.highlightCommandUnderCursor=function(t){if(t.selection.isEmpty()){var n=[{range:this.editor.getCurrentCommandRange(t.selection.getStartPosition()),options:e.CURRENT_COMMAND_HIGHLIGHT}];this.decorations=this.editor.deltaDecorations(this.decorations,n)}else this.decorations=this.editor.deltaDecorations(this.decorations,[])},e}();n.ID="editor.contrib.kustoCommandHighliter",n.CURRENT_COMMAND_HIGHLIGHT={className:"selectionHighlight"},e.exports={default:n}},function(e,t){ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Released under the MIT license + * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md + *-----------------------------------------------------------*/ +var n=function(e){var t=this;this.editor=e,this.actionAdded=!1,e.onDidChangeCursorSelection(function(n){t.actionAdded||(t.cursorPosition=n.selection.getStartPosition(),e.addAction({id:"editor.action.kusto.formatCurrentCommand",label:"Format Command Under Cursor",keybindings:[monaco.KeyMod.chord(monaco.KeyMod.CtrlCmd|monaco.KeyCode.KEY_K,monaco.KeyMod.CtrlCmd|monaco.KeyCode.KEY_F)],run:function(n){e.getSelection(),e.setSelection(t.editor.getCurrentCommandRange(t.cursorPosition)),e.trigger("KustoCommandFormatter","editor.action.formatSelection",null)},contextMenuGroupId:"1_modification"}),t.actionAdded=!0)})};e.exports={default:n}},function(e,t){e.exports={extend: +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Released under the MIT license + * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md + *-----------------------------------------------------------*/ +function(e){Object.getPrototypeOf(e).getCurrentCommandRange=function(e){for(var t=e.lineNumber-1,n=this.getModel().getLinesContent(),i=0,r=[],o=0;ot&&i>r[t].commandOrdinal));o++);var s=r[t].commandOrdinal,a=r.filter(function(e){return e.commandOrdinal===s}),l=a[0].lineNumber+1,u=a[a.length-1].lineNumber+1,d=n[u-1].length+1;return new monaco.Range(l,1,u,d)}}}},function(e,t){e.exports=URL.createObjectURL(new Blob(['!function(e){var t={};function n(i){if(t[i])return t[i].exports;var r=t[i]={i:i,l:!1,exports:{}};return e[i].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,i){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:i})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var i=Object.create(null);if(n.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(i,r,function(t){return e[t]}.bind(null,r));return i},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=14)}([function(e,t,n){"use strict";(function(e,i){var r;n.d(t,"a",function(){return s}),function(){var t=Object.create(null);t["WinJS/Core/_WinJS"]={};var n=function(e,n,i){var r={},s=!1,a=n.map(function(e){return"exports"===e?(s=!0,r):t[e]}),l=i.apply({},a);t[e]=s?r:l};n("WinJS/Core/_Global",[],function(){return"undefined"!=typeof window?window:"undefined"!=typeof self?self:void 0!==e?e:{}}),n("WinJS/Core/_BaseCoreUtils",["WinJS/Core/_Global"],function(e){var t=null;return{hasWinRT:!!e.Windows,markSupportedForProcessing:function(e){return e.supportedForProcessing=!0,e},_setImmediate:function(n){null===t&&(t=e.setImmediate?e.setImmediate.bind(e):void 0!==i&&"function"==typeof i.nextTick?i.nextTick.bind(i):e.setTimeout.bind(e)),t(n)}}}),n("WinJS/Core/_WriteProfilerMark",["WinJS/Core/_Global"],function(e){return e.msWriteProfilerMark||function(){}}),n("WinJS/Core/_Base",["WinJS/Core/_WinJS","WinJS/Core/_Global","WinJS/Core/_BaseCoreUtils","WinJS/Core/_WriteProfilerMark"],function(e,t,n,i){function r(e,t,n){var i,r,s,a=Object.keys(t),l=Array.isArray(e);for(r=0,s=a.length;r"),i}n.Namespace||(n.Namespace=Object.create(Object.prototype));var l=1,o=2,u=3;Object.defineProperties(n.Namespace,{defineWithParent:{value:a,writable:!0,enumerable:!0,configurable:!0},define:{value:function(e,n){return a(t,e,n)},writable:!0,enumerable:!0,configurable:!0},_lazy:{value:function(e){var t,n,r=l;return{setName:function(e){t=e},get:function(){switch(r){case u:return n;case l:r=o;try{i("WinJS.Namespace._lazy:"+t+",StartTM"),n=e()}finally{i("WinJS.Namespace._lazy:"+t+",StopTM"),r=l}return e=null,r=u,n;case o:throw"Illegal: reentrancy on initialization";default:throw"Illegal"}},set:function(e){switch(r){case o:throw"Illegal: reentrancy on initialization";default:r=u,n=e}},enumerable:!0,configurable:!0}},writable:!0,enumerable:!0,configurable:!0},_moduleDefine:{value:function(e,n,i){var a=[e],l=null;return n&&(l=s(t,n),a.push(l)),r(a,i,n||""),l},writable:!0,enumerable:!0,configurable:!0}})}(),function(){function t(e,t,i){return e=e||function(){},n.markSupportedForProcessing(e),t&&r(e.prototype,t),i&&r(e,i),e}e.Namespace.define("WinJS.Class",{define:t,derive:function(e,i,s,a){if(e){i=i||function(){};var l=e.prototype;return i.prototype=Object.create(l),n.markSupportedForProcessing(i),Object.defineProperty(i.prototype,"constructor",{value:i,writable:!0,configurable:!0,enumerable:!0}),s&&r(i.prototype,s),a&&r(i,a),i}return t(i,s,a)},mix:function(e){var t,n;for(e=e||function(){},t=1,n=arguments.length;t=0,a=c.indexOf("Macintosh")>=0,l=c.indexOf("Linux")>=0,u=!0,navigator.language}!function(e){e[e.Web=0]="Web",e[e.Mac=1]="Mac",e[e.Linux=2]="Linux",e[e.Windows=3]="Windows"}(r||(r={})),r.Web,o&&(a?r.Mac:s?r.Windows:l&&r.Linux);var m=s,h=u,f="object"==typeof self?self:"object"==typeof i?i:{}}).call(this,n(2),n(3))},function(e,t){var n,i,r=e.exports={};function s(){throw new Error("setTimeout has not been defined")}function a(){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(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:s}catch(e){n=s}try{i="function"==typeof clearTimeout?clearTimeout:a}catch(e){i=a}}();var o,u=[],d=!1,g=-1;function c(){d&&o&&(d=!1,o.length?u=o.concat(u):g=-1,u.length&&m())}function m(){if(!d){var e=l(c);d=!0;for(var t=u.length;t;){for(o=u,u=[];++g1)for(var n=1;nthis.length)&&(t=this.length),this.substring(t-e.length,t)===e}),"undefined"==typeof document&&(n(8),n(10));var r=n(11),s=n(12),a=monaco.Promise,l=Kusto.Data.IntelliSense,o=Bridge.global.System.Collections.Generic.List$1,u=(Bridge.global.System.Collections.Generic.IEnumerable$1,function(){function e(e,t,n){this.version=e,this.uri=t,this.parseMode=n}return e.prototype.isParseNeeded=function(e,t){return!(e.uri===this.uri&&e.version<=this.version&&t<=this.parseMode)},e}()),d=function(){function e(t,n){var i;this._kustoKindtoKsKind=((i={})[l.OptionKind.None]=r.CompletionItemKind.Interface,i[l.OptionKind.Operator]=r.CompletionItemKind.Method,i[l.OptionKind.Command]=r.CompletionItemKind.Method,i[l.OptionKind.Service]=r.CompletionItemKind.Class,i[l.OptionKind.Policy]=r.CompletionItemKind.Reference,i[l.OptionKind.Database]=r.CompletionItemKind.Class,i[l.OptionKind.Table]=r.CompletionItemKind.Class,i[l.OptionKind.DataType]=r.CompletionItemKind.Class,i[l.OptionKind.Literal]=r.CompletionItemKind.Property,i[l.OptionKind.Parameter]=r.CompletionItemKind.Variable,i[l.OptionKind.IngestionMapping]=r.CompletionItemKind.Variable,i[l.OptionKind.ExpressionFunction]=r.CompletionItemKind.Variable,i[l.OptionKind.Option]=r.CompletionItemKind.Interface,i[l.OptionKind.OptionKind]=r.CompletionItemKind.Interface,i[l.OptionKind.OptionRender]=r.CompletionItemKind.Interface,i[l.OptionKind.Column]=r.CompletionItemKind.Function,i[l.OptionKind.ColumnString]=r.CompletionItemKind.Field,i[l.OptionKind.ColumnNumeric]=r.CompletionItemKind.Field,i[l.OptionKind.ColumnDateTime]=r.CompletionItemKind.Field,i[l.OptionKind.ColumnTimespan]=r.CompletionItemKind.Field,i[l.OptionKind.FunctionServerSide]=r.CompletionItemKind.Field,i[l.OptionKind.FunctionAggregation]=r.CompletionItemKind.Field,i[l.OptionKind.FunctionFilter]=r.CompletionItemKind.Field,i[l.OptionKind.FunctionScalar]=r.CompletionItemKind.Field,i[l.OptionKind.ClientDirective]=r.CompletionItemKind.Enum,i),this._kustoJsSchema=e.convertToKustoJsSchema(t),this.configure(n),this._newlineAppendPipePolicy=new Kusto.Data.IntelliSense.ApplyPolicy,this._newlineAppendPipePolicy.Text="\\n| "}return e.prototype.configure=function(e){this._languageSettings=e,this._languageSettings.useIntellisenseV2||this.createRulesProvider(this._kustoJsSchema)},e.prototype.doComplete=function(e,t){return this.doCompleteV1(e,t)},e.prototype.doCompleteV1=function(e,t){var n=this;this.parseDocumentV1(e,l.ParseMode.TokenizeAllText);var i=e.offsetAt(t),s=this.getCurrentCommand(e,i),o=s?s.Text.substring(s.CslExpressionStartPosition,i):"",u=this.getCommandWithoutLastWord(o),d=this._rulesProvider.AnalyzeCommand$1(o,s).Context,g={v:null};this._rulesProvider.TryMatchAnyRule(u,g);var c=g.v;if(c){var m=Bridge.toArray(c.GetCompletionOptions(d));this._languageSettings.newlineAfterPipe&&c.DefaultAfterApplyPolicy===Kusto.Data.IntelliSense.ApplyPolicy.AppendPipePolicy&&(c.DefaultAfterApplyPolicy=this._newlineAppendPipePolicy);var h=m.map(function(e,t){var i=n.getTextToInsert(c,e),s=i.insertText,a=i.insertTextFormat,o=l.CslDocumentation.Instance.GetTopic(e),u=r.CompletionItem.create(e.Value);return u.kind=n.kustoKindToLsKind(e.Kind),u.insertText=s,u.insertTextFormat=a,u.sortText=n.getSortText(t+1),u.detail=o?o.ShortDescription:void 0,u.documentation=o?{value:o.LongDescription,kind:r.MarkupKind.Markdown}:void 0,u});return a.as(r.CompletionList.create(h))}return a.as(r.CompletionList.create([]))},e.prototype.doRangeFormat=function(t,n){var i=t.getText(),s=t.offsetAt(n.start),l=t.offsetAt(n.end),o=i.substring(s,l),u=e.trimTrailingNewlineFromRange(o,s,t,n),d=Kusto.Data.Common.CslQueryParser.PrettifyQuery(o,"");return a.as([r.TextEdit.replace(u,d)])},e.prototype.doDocumentformat=function(e){return this.getCommandsInDocument(e).then(function(t){var n=t.map(function(e){return Kusto.Data.Common.CslQueryParser.PrettifyQuery(e.text,"")}).join("\\r\\n\\r\\n"),i=e.positionAt(0),s=e.positionAt(e.getText().length),a=r.Range.create(i,s);return[r.TextEdit.replace(a,n)]})},e.prototype.doCurrentCommandFormat=function(e,t){var n=this.getCurrentCommand(e,e.offsetAt(t)),i=e.positionAt(n.AbsoluteStart),s=e.positionAt(n.AbsoluteEnd),a=r.Range.create(i,s);return this.doRangeFormat(e,a)},e.prototype.doFolding=function(e){return this.getCommandsInDocument(e).then(function(t){return t.map(function(t){t.text.endsWith("\\r\\n")?t.absoluteEnd-=2:(t.text.endsWith("\\r")||t.text.endsWith("\\n"))&&--t.absoluteEnd;var n=e.positionAt(t.absoluteStart),i=e.positionAt(t.absoluteEnd);return{startLine:n.line,startColumn:n.character,endLine:i.line,endColumn:i.character}})})},e.prototype.doValidation=function(e){return a.as([])},e.prototype.doColorization=function(e){return a.as([])},e.prototype.setSchema=function(t){var n=this;if(this._schema=t,!this._languageSettings.useIntellisenseV2)return a.timeout(0).then(function(){n._schema=t;var i=e.convertToKustoJsSchema(t);n._kustoJsSchema=i,n.createRulesProvider(i)});var i=e.convertToKustoJsSchemaV2(t);this._kustoJsSchemaV2=i},e.prototype.setSchemaFromShowSchema=function(e,t,n){var i=this;return this.normalizeSchema(e,t,n).then(function(e){return i.setSchema(e)})},e.prototype.normalizeSchema=function(e,t,n){var i=Object.keys(e.Databases).map(function(t){return e.Databases[t]}).map(function(e){var t=e.Name,n=e.Tables,i=e.Functions;return{name:t,tables:Object.keys(n).map(function(e){return n[e]}).map(function(e){return{name:e.Name,columns:e.OrderedColumns.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType}})}}),functions:Object.keys(i).map(function(e){return i[e]}).map(function(e){return{name:e.Name,body:e.Body,inputParameters:e.InputParameters.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType,columns:e.Columns?e.Columns.map(function(e){return{name:e.Name,type:e.Type,cslType:e.CslType}}):[]}})}})}});return{cluster:{connectionString:t,databases:i},database:i.filter(function(e){return e.name===n})[0]}},e.prototype.getSchema=function(){return a.as(this._schema)},e.prototype.getCommandInContext=function(e,t){this.parseDocumentV1(e,l.ParseMode.CommandTokensOnly);var n=this.getCurrentCommand(e,t);return n?a.as(n.Text):null},e.prototype.getCommandsInDocument=function(e){this.parseDocumentV1(e,l.ParseMode.CommandTokensOnly);var t=Bridge.toArray(this._parser.Results);return a.as(t.map(function(e){return{absoluteStart:e.AbsoluteStart,absoluteEnd:e.AbsoluteEnd,text:e.Text}}))},e.prototype.getClientDirective=function(e){var t={v:null},n=l.CslCommandParser.IsClientDirective(e,t);return a.as({isClientDirective:n,directiveWithoutLeadingComments:t.v})},e.prototype.getAdminCommand=function(e){var t={v:null},n=l.CslCommandParser.IsAdminCommand$1(e,t);return a.as({isAdminCommand:n,adminCommandWithoutLeadingComments:t.v})},Object.defineProperty(e,"dummySchema",{get:function(){var e={name:"Kuskus",tables:[{name:"KustoLogs",columns:[{name:"Source",type:"Bridge.global.System.String"},{name:"Timestamp",type:"Bridge.global.System.DateTime"},{name:"Directory",type:"Bridge.global.System.String"}]}],functions:[{name:"HowBig",inputParameters:[{name:"T",columns:[{name:"Timestamp",type:"Bridge.global.System.Datetime",cslType:"datetime"}]}],body:"{\\r\\n union \\r\\n (T | count | project V=\'Volume\', Metric = strcat(Count/1e9, \' Billion records\')),\\r\\n (T | summarize FirstRecord=min(Timestamp)| project V=\'Volume\', Metric = strcat(toint((now()-FirstRecord)/1d), \' Days of data (from: \', format_datetime(FirstRecord, \'yyyy-MM-dd\'),\')\')),\\r\\n (T | where Timestamp > ago(1h) | count | project V=\'Velocity\', Metric = strcat(Count/1e6, \' Million records / hour\')),\\r\\n (T | summarize Latency=now()-max(Timestamp) | project V=\'Velocity\', Metric = strcat(Latency / 1sec, \' seconds latency\')),\\r\\n (T | take 1 | project V=\'Variety\', Metric=tostring(pack_all()))\\r\\n | order by V \\r\\n}"},{name:"FindCIDPast24h",inputParameters:[{name:"clientActivityId",type:"Bridge.global.System.String",cslType:"string"}],body:"{ KustoLogs | where Timestamp > now(-1d) | where ClientActivityId == clientActivityId} "}]};return{cluster:{connectionString:"https://kuskus.kusto.windows.net;fed=true",databases:[e]},database:e}},enumerable:!0,configurable:!0}),e.convertToKustoJsSchema=function(e){var t=e.database?e.database.name:void 0,n=new l.KustoIntelliSenseClusterEntity,r=void 0;n.ConnectionString=e.cluster.connectionString;var s=[];return e.cluster.databases.forEach(function(e){var n=new l.KustoIntelliSenseDatabaseEntity;n.Name=e.name;var a=[];e.tables.forEach(function(e){var t=new l.KustoIntelliSenseTableEntity;t.Name=e.name;var n=[];e.columns.forEach(function(e){var t=new l.KustoIntelliSenseColumnEntity;t.Name=e.name,t.TypeCode=l.EntityDataType[e.type.replace("Bridge.global.System.","")],n.push(t)}),t.Columns=new Bridge.ArrayEnumerable(n),a.push(t)});var o=[];e.functions.forEach(function(e){var t=new l.KustoIntelliSenseFunctionEntity;t.Name=e.name,t.CallName=i.getCallName(e),t.Expression=i.getExpression(e),o.push(t)}),n.Tables=new Bridge.ArrayEnumerable(a),n.Functions=new Bridge.ArrayEnumerable(o),s.push(n),e.name==t&&(r=n)}),n.Databases=new Bridge.ArrayEnumerable(s),new l.KustoIntelliSenseQuerySchema(n,r)},e.scalarParametersToSignature=function(e){return"("+e.map(function(e){return e.name+": "+e.cslType}).join(", ")+")"},e.inputParameterToSignature=function(e){var t=this;return"("+e.map(function(e){if(e.columns){var n=t.scalarParametersToSignature(e.columns);return e.name+": "+n}return e.name+": "+e.cslType}).join(", ")+")"},e.toLetStatement=function(e){var t=this.inputParameterToSignature(e.inputParameters);return"let "+e.name+" = "+t+" "+e.body},e.trimTrailingNewlineFromRange=function(e,t,n,i){for(var s=e.length-1;"\\r"===e[s]||"\\n"===e[s];)--s;var a=t+s+1,l=n.positionAt(a);return r.Range.create(i.start,l)},e.prototype.getSortText=function(e){if(e<=0)throw new RangeError("order should be a number >= 1. instead got "+e);for(var t="",n=Math.floor(e/26),i=0;i0&&(t+=String.fromCharCode(96+r)),t},e.prototype.parseDocumentV1=function(e,t){this._parsePropertiesV1&&!this._parsePropertiesV1.isParseNeeded(e,t)||(this._parser.Parse(this._rulesProvider,e.getText(),t),this._parsePropertiesV1=new u(e.version,e.uri,t))},e.prototype.getCurrentCommand=function(e,t){var n=Bridge.toArray(this._parser.Results),i=n.filter(function(e){return e.AbsoluteStart<=t&&e.AbsoluteEnd>=t})[0];return i||(i=n.filter(function(e){return e.AbsoluteStart<=t&&e.AbsoluteEnd+1>=t})[0])&&!i.Text.endsWith("\\r\\n\\r\\n")?i:null},e.prototype.getTextToInsert=function(e,t){var n=e.GetBeforeApplyInfo(t.Value),i=e.GetAfterApplyInfo(t.Value),s=n.Text||""+t.Value+i.Text||"",a=r.InsertTextFormat.PlainText;if(i.OffsetToken&&i.OffsetPosition){var l=s.indexOf(i.OffsetToken);l>=0&&(s=this.insertToString(s,"$0",l-s.length+i.OffsetPosition),a=r.InsertTextFormat.Snippet)}else i.OffsetPosition&&(s=this.insertToString(s,"$0",i.OffsetPosition),a=r.InsertTextFormat.Snippet);return{insertText:s,insertTextFormat:a}},e.prototype.insertToString=function(e,t,n){var i=e.length+n;return n>=0||i<0?e:e.substring(0,i)+t+e.substring(i)},e.prototype.getCommandWithoutLastWord=function(e){var t=s("[\\\\w_]*$","s");return e.replace(t,"")},e.prototype.createRulesProvider=function(e){var t=new(o(String)),n=new(o(String));this._rulesProvider=this._languageSettings&&this._languageSettings.includeControlCommands?new l.CslIntelliSenseRulesProvider.$ctor1(e.Cluster,e,t,n,null,!0,!0):new l.CslQueryIntelliSenseRulesProvider.$ctor1(e.Cluster,e,t,n,null,null,null),this._parser=new l.CslCommandParser},e.prototype.kustoKindToLsKind=function(e){return this._kustoKindtoKsKind[e]||r.CompletionItemKind.Variable},e.prototype.tokenize=function(e,t){return this._parser.Parse(this._rulesProvider,e,l.ParseMode.TokenizeAllText),Bridge.toArray(this._parser.Results).map(function(e){return Bridge.toArray(e.Tokens)}).reduce(function(e,t){return e.concat(t)},[])},e}(),g=new d(d.dummySchema,{includeControlCommands:!0,useIntellisenseV2:!1});t.getKustoLanguageService=function(){return g},t.getKustoTokenizer=function(){return g}},function(e,t){\n/*!-----------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * Released under the MIT license\n * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md\n *-----------------------------------------------------------*/\nObject.defineProperty(t,"__esModule",{value:!0});var n={"System.SByte":"bool","System.Byte":"uint8","System.Int16":"int16","System.UInt16":"uint16","System.Int32":"int","System.UInt32":"uint","System.Int64":"long","System.UInt64":"ulong","System.String":"string","System.Single":"float","System.Double":"real","System.DateTime":"datetime","System.TimeSpan":"timespan","System.Guid":"guid","System.Boolean":"bool","Newtonsoft.Json.Linq.JArray":"dynamic","Newtonsoft.Json.Linq.JObject":"dynamic","Newtonsoft.Json.Linq.JToken":"dynamic","System.Object":"dynamic"};t.getCslTypeNameFromClrType=function(e){return n[e]||e},t.getCallName=function(e){return e.name+"("+e.inputParameters.map(function(e){return"{"+e.name+"}"}).join(",")+")"},t.getExpression=function(e){return"let "+e.name+" = "+t.getInputParametersAsCslString(e.inputParameters)+" "+e.body},t.getInputParametersAsCslString=function(e){return"("+e.map(function(e){return i(e)}).join(",")+")"};var i=function(e){if(e.columns&&e.columns.length>0){var n=e.columns.map(function(e){return e.name+":"+(e.cslType||t.getCslTypeNameFromClrType(e.type))}).join(",");return e.name+":"+(""===n?"*":n)}return e.name+":"+(e.cslType||t.getCslTypeNameFromClrType(e.type))}},function(e,t,n){(function(i,r){var s;\n/**\n * @version : 17.1.0 - Bridge.NET\n * @author : Object.NET, Inc. http://bridge.net/\n * @copyright : Copyright 2008-2018 Object.NET, Inc. http://object.net/\n * @license : See license.txt and https://github.com/bridgedotnet/Bridge/blob/master/LICENSE.md\n */!function(a){"use strict";var l,o,u,d,g,c,m,h;void 0!==e&&e.exports&&(a=i),(l={global:a,isNode:"[object process]"===Object.prototype.toString.call(void 0!==r?r:0),emptyFn:function(){},identity:function(e){return e},Deconstruct:function(e){for(var t=Array.prototype.slice.call(arguments,1),n=0;n0&&t.length-l-1>0&&!isNaN(parseInt(t.substr(l+1)))&&(l=t.substring(0,l-1).lastIndexOf("$")),l>0&&l!==t.length-1&&(s=t.substring(0,l)+"add"+t.substr(l+1),a=t.substring(0,l)+"remove"+t.substr(l+1)),e[s]=function(e,t,n){return i?function(n){t[e]=Bridge.fn.combine(t[e],n)}:function(t){this[e]=Bridge.fn.combine(this[e],t)}}(t,e),e[a]=function(e,t,n){return i?function(n){t[e]=Bridge.fn.remove(t[e],n)}:function(t){this[e]=Bridge.fn.remove(this[e],t)}}(t,e)},createInstance:function(e,t){return e===Bridge.global.System.Decimal?Bridge.global.System.Decimal.Zero:e===Bridge.global.System.Int64?Bridge.global.System.Int64.Zero:e===Bridge.global.System.UInt64?Bridge.global.System.UInt64.Zero:e===Bridge.global.System.Double||e===Bridge.global.System.Single||e===Bridge.global.System.Byte||e===Bridge.global.System.SByte||e===Bridge.global.System.Int16||e===Bridge.global.System.UInt16||e===Bridge.global.System.Int32||e===Bridge.global.System.UInt32||e===Bridge.Int?0:"function"==typeof e.createInstance?e.createInstance():"function"==typeof e.getDefaultValue?e.getDefaultValue():e!==Boolean&&e!==Bridge.global.System.Boolean&&(e===Bridge.global.System.DateTime?Bridge.global.System.DateTime.getDefaultValue():e===Date?new Date:e===Number?0:e===String||e===Bridge.global.System.String?"":e&&e.$literal?e.ctor():t&&t.length>0?Bridge.Reflection.applyConstructor(e,t):new e)},clone:function(e){return null==e?e:Bridge.isArray(e)?Bridge.global.System.Array.clone(e):Bridge.isString(e)?e:Bridge.isFunction(Bridge.getProperty(e,t="System$ICloneable$clone"))?e[t]():Bridge.is(e,Bridge.global.System.ICloneable)?e.clone():Bridge.isFunction(e.$clone)?e.$clone():null;var t},copy:function(e,t,n,i){"string"==typeof n&&(n=n.split(/[,;\\s]+/));for(var r,s=0,a=n?n.length:0;s1?"$"+t.$rank:""),t.$$name?t.$$alias=n:Bridge.$$aliasCache[t]=n,n):(n=(e.$$name||Bridge.getTypeName(e)).replace(/[\\.\\(\\)\\,\\+]/g,"$"),t.$$name?t.$$alias=n:Bridge.$$aliasCache[t]=n,n))},getTypeName:function(e){return Bridge.Reflection.getTypeFullName(e)},hasValue:function(e){return null!=Bridge.unbox(e,!0)},hasValue$1:function(){if(0===arguments.length)return!1;for(var e=0;e=0;if(Bridge.isArray(e,s))return Bridge.global.System.Array.is(e,t)}return!0!==n&&t.$is?t.$is(e):!(!t.$literal||!Bridge.isPlainObject(e))&&(!e.$getType||Bridge.Reflection.isAssignableFrom(t,e.$getType()))}if("string"===r&&(t=Bridge.unroll(t)),"function"===r&&Bridge.getType(e).prototype instanceof t)return!0;if(!0!==n){if("function"==typeof t.$is)return t.$is(e);if("function"==typeof t.isAssignableFrom)return t.isAssignableFrom(Bridge.getType(e))}return Bridge.isArray(e)?Bridge.global.System.Array.is(e,t):"object"===r&&(s===t||e instanceof t)},as:function(e,t,n){return Bridge.is(e,t,!1,n)?null!=e&&e.$boxed&&t!==Object&&t!==Bridge.global.System.Object?e.v:e:null},cast:function(e,t,n){if(null==e)return e;var i=Bridge.is(e,t,!1,n)?e:null;if(null===i)throw new Bridge.global.System.InvalidCastException.$ctor1("Unable to cast type "+(e?Bridge.getTypeName(e):"\'null\'")+" to type "+Bridge.getTypeName(t));return e.$boxed&&t!==Object&&t!==Bridge.global.System.Object?e.v:i},apply:function(e,t,n){for(var i,r=Bridge.getPropertyNames(t,!0),s=0;s=0;c--)if(d[c].name===r){g=d[c];break}if(null!=g)g.set?e[r]=Bridge.merge(e[r],s):Bridge.merge(e[r],s);else if("function"==typeof e[r])r.match(/^\\s*get[A-Z]/)?Bridge.merge(e[r](),s):e[r](s);else if(h="set"+r,"function"==typeof e[m="set"+r.charAt(0).toUpperCase()+r.slice(1)]&&"function"!=typeof s)"function"==typeof e[f="g"+m.slice(1)]?e[m](Bridge.merge(e[f](),s)):e[m](s);else if("function"==typeof e[h]&&"function"!=typeof s)"function"==typeof e[f="g"+h.slice(1)]?e[h](Bridge.merge(e[f](),s)):e[h](s);else if(s&&s.constructor===Object&&e[r])a=e[r],Bridge.merge(a,s);else{if(p=Bridge.isNumber(t),e[r]instanceof Bridge.global.System.Decimal&&p)return new Bridge.global.System.Decimal(t);if(e[r]instanceof Bridge.global.System.Int64&&p)return new Bridge.global.System.Int64(t);if(e[r]instanceof Bridge.global.System.UInt64&&p)return new Bridge.global.System.UInt64(t);e[r]=s}}}return n&&n.call(e,e),e},getEnumerator:function(e,t,n){if("string"==typeof e&&(e=Bridge.global.System.String.toCharArray(e)),2===arguments.length&&Bridge.isFunction(t)&&(n=t,t=null),t&&e&&e[t])return e[t].call(e);if(!n&&e&&e.GetEnumerator)return e.GetEnumerator();var i;if(n&&Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(n)+"$GetEnumerator"))||n&&Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$Generic$IEnumerable$1$GetEnumerator"))||Bridge.isFunction(Bridge.getProperty(e,i="System$Collections$IEnumerable$GetEnumerator")))return e[i]();if(n&&e&&e.GetEnumerator)return e.GetEnumerator();if("[object Array]"===Object.prototype.toString.call(e)||e&&Bridge.isDefined(e.length))return new Bridge.ArrayEnumerator(e,n);throw new Bridge.global.System.InvalidOperationException.$ctor1("Cannot create Enumerator.")},getPropertyNames:function(e,t){var n=[];for(var i in e)(t||"function"!=typeof e[i])&&n.push(i);return n},getProperty:function(e,t){return Bridge.isHtmlAttributeCollection(e)&&!this.isValidHtmlAttributeName(t)?void 0:e[t]},isValidHtmlAttributeName:function(e){return!(!e||!e.length)&&/^[a-zA-Z_][\\w\\-]*$/.test(e)},isHtmlAttributeCollection:function(e){return void 0!==e&&"[object NamedNodeMap]"===Object.prototype.toString.call(e)},isDefined:function(e,t){return void 0!==e&&(!t||null!==e)},isEmpty:function(e,t){return void 0===e||null===e||!t&&""===e||!(t||!Bridge.isArray(e))&&0===e.length},toArray:function(e){var t,n,i,r=[];if(Bridge.isArray(e))for(t=0,i=e.length;t=0||n.$isArray||Array.isArray(e))},isFunction:function(e){return"function"==typeof e},isDate:function(e){return e instanceof Date},isNull:function(e){return null===e||void 0===e},isBoolean:function(e){return"boolean"==typeof e},isNumber:function(e){return"number"==typeof e&&isFinite(e)},isString:function(e){return"string"==typeof e},unroll:function(e,t){for(var n=e.split("."),i=(t||Bridge.global)[n[0]],r=1;r-1||Bridge.$$rightChain.indexOf(t)>-1)return!1;for(var n in t)if(t.hasOwnProperty(n)!==e.hasOwnProperty(n)||typeof t[n]!=typeof e[n])return!1;for(n in e){if(t.hasOwnProperty(n)!==e.hasOwnProperty(n)||typeof e[n]!=typeof t[n])return!1;if(e[n]!==t[n])if("object"==typeof e[n]){if(Bridge.$$leftChain.push(e),Bridge.$$rightChain.push(t),!Bridge.deepEquals(e[n],t[n]))return!1;Bridge.$$leftChain.pop(),Bridge.$$rightChain.pop()}else if(!Bridge.equals(e[n],t[n]))return!1}return!0}return Bridge.equals(e,t)},numberCompare:function(e,t){return et?1:e==t?0:isNaN(e)?isNaN(t)?0:-1:1},compare:function(e,t,n,i){if(e&&e.$boxed&&(e=Bridge.unbox(e,!0)),t&&t.$boxed&&(t=Bridge.unbox(t,!0)),"number"==typeof e&&"number"==typeof t)return Bridge.numberCompare(e,t);if(!Bridge.isDefined(e,!0)){if(n)return 0;throw new Bridge.global.System.NullReferenceException}if(Bridge.isNumber(e)||Bridge.isString(e)||Bridge.isBoolean(e))return Bridge.isString(e)&&!Bridge.hasValue(t)?1:et?1:0;if(Bridge.isDate(e))return void 0!==e.kind&&void 0!==e.ticks?Bridge.compare(e.ticks,t.ticks):Bridge.compare(e.valueOf(),t.valueOf());var r;if(i&&Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$1$"+Bridge.getTypeAlias(i)+"$compareTo"))||i&&Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$1$compareTo"))||Bridge.isFunction(Bridge.getProperty(e,r="System$IComparable$compareTo")))return e[r](t);if(Bridge.isFunction(e.compareTo))return e.compareTo(t);if(i&&Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$1$"+Bridge.getTypeAlias(i)+"$compareTo"))||i&&Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$1$compareTo"))||Bridge.isFunction(Bridge.getProperty(t,r="System$IComparable$compareTo")))return-t[r](e);if(Bridge.isFunction(t.compareTo))return-t.compareTo(e);if(n)return 0;throw new Bridge.global.System.Exception("Cannot compare items")},equalsT:function(e,t,n){if(e&&e.$boxed&&e.type.equalsT&&2===e.type.equalsT.length)return e.type.equalsT(e,t);if(t&&t.$boxed&&t.type.equalsT&&2===t.type.equalsT.length)return t.type.equalsT(t,e);if(!Bridge.isDefined(e,!0))throw new Bridge.global.System.NullReferenceException;return Bridge.isNumber(e)||Bridge.isString(e)||Bridge.isBoolean(e)?e===t:Bridge.isDate(e)?void 0!==e.kind&&void 0!==e.ticks?e.ticks.equals(t.ticks):e.valueOf()===t.valueOf():n&&null!=e&&Bridge.isFunction(Bridge.getProperty(e,i="System$IEquatable$1$"+Bridge.getTypeAlias(n)+"$equalsT"))?e[i](t):n&&null!=t&&Bridge.isFunction(Bridge.getProperty(t,i="System$IEquatable$1$"+Bridge.getTypeAlias(n)+"$equalsT"))?t[i](e):Bridge.isFunction(e)&&Bridge.isFunction(t)?Bridge.fn.equals.call(e,t):e.equalsT?e.equalsT(t):t.equalsT(e);var i},format:function(e,t,n){if(e&&e.$boxed){if("enum"===e.type.$kind)return Bridge.global.System.Enum.format(e.type,e.v,t);if(e.type===Bridge.global.System.Char)return Bridge.global.System.Char.format(Bridge.unbox(e,!0),t,n);if(e.type.format)return e.type.format(Bridge.unbox(e,!0),t,n)}return Bridge.isNumber(e)?Bridge.Int.format(e,t,n):Bridge.isDate(e)?Bridge.global.System.DateTime.format(e,t,n):Bridge.isFunction(Bridge.getProperty(e,i="System$IFormattable$format"))?e[i](t,n):e.format(t,n);var i},getType:function(e,t){var n,i;if(e&&e.$boxed)return e.type;if(null==e)throw new Bridge.global.System.NullReferenceException.$ctor1("instance is null");if(t)return n=Bridge.getType(e),Bridge.Reflection.isAssignableFrom(t,n)?n:t;if("number"==typeof e)return!isNaN(e)&&isFinite(e)&&Math.floor(e,0)===e?Bridge.global.System.Int32:Bridge.global.System.Double;if(e.$type)return e.$type;if(e.$getType)return e.$getType();i=null;try{i=e.constructor}catch(e){i=Object}if(i===Object){var r=e.toString(),s=/\\[object (.{1,})\\]/.exec(r);"Object"!=(s&&s.length>1?s[1]:"Object")&&(i=e)}return Bridge.Reflection.convertType(i)},isLower:function(e){var t=String.fromCharCode(e);return t===t.toLowerCase()&&t!==t.toUpperCase()},isUpper:function(e){var t=String.fromCharCode(e);return t!==t.toLowerCase()&&t===t.toUpperCase()},coalesce:function(e,t){return Bridge.hasValue(e)?e:t},fn:{equals:function(e){return this===e||null!=e&&this.constructor===e.constructor&&this.equals&&this.equals===e.equals&&this.$method&&this.$method===e.$method&&this.$scope&&this.$scope===e.$scope},call:function(e,t){var n=Array.prototype.slice.call(arguments,2);return(e=e||Bridge.global)[t].apply(e,n)},makeFn:function(e,t){switch(t){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:default:return function(){return e.apply(this,arguments)}}},cacheBind:function(e,t,n,i){return Bridge.fn.bind(e,t,n,i,!0)},bind:function(e,t,n,i,r){var s,a;if(t&&t.$method===t&&t.$scope===e)return t;if(e&&r&&e.$$bind)for(s=0;s=0;i--)if(r[i]===s[a]||r[i].$method&&r[i].$method===s[a].$method&&r[i].$scope&&r[i].$scope===s[a].$scope){n=i;break}n>-1&&r.splice(n,1)}return Bridge.fn.$build(r)}},sleep:function(e,t){if(Bridge.hasValue(t)&&(e=t.getTotalMilliseconds()),isNaN(e)||e<-1||e>2147483647)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("timeout","Number must be either non-negative and less than or equal to Int32.MaxValue or -1");-1==e&&(e=2147483647);for(var n=(new Date).getTime();(new Date).getTime()-n2147483647););},getMetadata:function(e){return e.$getMetadata?e.$getMetadata():e.$metadata},loadModule:function(e,t){var n,i,r,s=e.amd,a=e.cjs,l=e.fn,o=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,u=Bridge.global[l||"require"];if(!(s&&s.length>0)){if(a&&a.length>0){for((r=new Bridge.global.System.Threading.Tasks.Task).status=Bridge.global.System.Threading.Tasks.TaskStatus.ranToCompletion,n=[],i=0;i0)for(e=0;e=0;u--)if(f[u].name===t){o=f[u];break}for(i=Array.isArray(n)?n:[n],a=0;a0&&e.alias.length%2==0)return!0;for(var t=0;t0&&a.$$inherits[0].$staticInit&&a.$$inherits[0].$staticInit(),a.$base.ctor?a.$base.ctor.call(this):Bridge.isFunction(a.$base.constructor)&&a.$base.constructor.call(this))},n.ctor=a),n.$literal&&(K&&K.createInstance||(a.createInstance=function(){return{$getType:function(){return a}}}),a.$literal=!0,delete n.$literal),!p&&$&&(D=Bridge.Class.set(D,e,a)),i&&i.fn.$cache.push({type:a,args:i.args}),a.$$name=e,s&&(l=a.$$name.lastIndexOf("."),a.$$name=a.$$name.substr(0,l)+"+"+a.$$name.substr(l+1)),a.$kind=n.$kind,n.$metadata&&(a.$metadata=n.$metadata),i&&p){for(a.$genericTypeDefinition=i.fn,a.$typeArguments=i.args,a.$assembly=i.fn.$assembly||Bridge.$currentAssembly,o=Bridge.Reflection.getTypeFullName(i.fn),C=0;C0)for(i=0;i0)for(i=0;i0)for(r=0;r=0;i--)if(a[i].name===e){n=a[i];break}r=e.split("$").length,(t||null!=n)&&(1===r||2===r&&e.match("$d+$"))&&(s[e]=this[e])}return s},setInheritors:function(e,t){var n,i;for(e.$$inherits=t,n=0;n0)for(s=0;s0)for(Bridge.Reflection.deferredMeta=[],a=0;a1?r[1]:"Object")?"System.Object":s):(t=e.constructor===Function?e.toString():e.constructor.toString(),(a=/function (.{1,})\\(/.exec(t))&&a.length>1?a[1]:"System.Object")},_makeQName:function(e,t){return e+(t?", "+t.name:"")},getTypeQName:function(e){return Bridge.Reflection._makeQName(Bridge.Reflection.getTypeFullName(e),e.$assembly)},getTypeName:function(e){var t=Bridge.Reflection.getTypeFullName(e),n=t.indexOf("["),i=t.lastIndexOf("+",n>=0?n:t.length),r=i>-1?i:t.lastIndexOf(".",n>=0?n:t.length),s=r>0?n>=0?t.substring(r+1,n):t.substr(r+1):t;return e.$isArray?s+"[]":s},getTypeNamespace:function(e,t){var n,i=t||Bridge.Reflection.getTypeFullName(e),r=i.indexOf("["),s=i.lastIndexOf(".",r>=0?r:i.length),a=s>0?i.substr(0,s):"";return e.$assembly&&(n=Bridge.Reflection._getAssemblyType(e.$assembly,a))&&(a=Bridge.Reflection.getTypeNamespace(n)),a},getTypeAssembly:function(e){return Bridge.global.System.Array.contains([Date,Number,Boolean,String,Function,Array],e)||e.$isArray?Bridge.SystemAssembly:e.$assembly||Bridge.SystemAssembly},_extractArrayRank:function(e){var t=-1,n=/<(\\d+)>$/g.exec(e);return n&&(e=e.substring(0,n.index),t=parseInt(n[1])),(n=/\\[(,*)\\]$/g.exec(e))&&(e=e.substring(0,n.index),t=n[1].length+1),{rank:t,name:e}},_getAssemblyType:function(e,t){var n,i,r,s,a,l,o=!1;if(new RegExp(/[\\+\\`]/).test(t)&&(t=t.replace(/\\+|\\`/g,function(e){return"+"===e?".":"$"})),e||(e=Bridge.SystemAssembly,o=!0),n=(i=Bridge.Reflection._extractArrayRank(t)).rank,t=i.name,e.$types){if(r=e.$types[t]||null)return n>-1?Bridge.global.System.Array.type(r,n):r;if("mscorlib"!==e.name)return null;e=Bridge.global}for(s=t.split("."),a=e,l=0;l-1?Bridge.global.System.Array.type(a,n):a},getAssemblyTypes:function(e){var t,n,i=[];if(e.$types)for(t in e.$types)e.$types.hasOwnProperty(t)&&i.push(e.$types[t]);else(n=function(e,t){for(var r in e)e.hasOwnProperty(r)&&n(e[r],r);"function"==typeof e&&Bridge.isUpper(t.charCodeAt(0))&&i.push(e)})(e,"");return i},createAssemblyInstance:function(e,t){var n=Bridge.Reflection.getType(t,e);return n?Bridge.createInstance(n):null},getInterfaces:function(e){var t;return e.$allInterfaces?e.$allInterfaces:e===Date?[Bridge.global.System.IComparable$1(Date),Bridge.global.System.IEquatable$1(Date),Bridge.global.System.IComparable,Bridge.global.System.IFormattable]:e===Number?[Bridge.global.System.IComparable$1(Bridge.Int),Bridge.global.System.IEquatable$1(Bridge.Int),Bridge.global.System.IComparable,Bridge.global.System.IFormattable]:e===Boolean?[Bridge.global.System.IComparable$1(Boolean),Bridge.global.System.IEquatable$1(Boolean),Bridge.global.System.IComparable]:e===String?[Bridge.global.System.IComparable$1(String),Bridge.global.System.IEquatable$1(String),Bridge.global.System.IComparable,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.Char)]:e===Array||e.$isArray||(t=Bridge.global.System.Array._typedArrays[Bridge.getTypeName(e)])?(t=t||e.$elementType||Bridge.global.System.Object,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.ICollection,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IEnumerable$1(t),Bridge.global.System.Collections.Generic.ICollection$1(t),Bridge.global.System.Collections.Generic.IList$1(t)]):[]},isInstanceOfType:function(e,t){return Bridge.is(e,t)},isAssignableFrom:function(e,t){if(null==e)throw new Bridge.global.System.NullReferenceException;if(null==t)return!1;if(e===t||Bridge.isObject(e))return!0;if(Bridge.isFunction(e.isAssignableFrom))return e.isAssignableFrom(t);if(t===Array)return Bridge.global.System.Array.is([],e);if(Bridge.Reflection.isInterface(e)&&Bridge.global.System.Array.contains(Bridge.Reflection.getInterfaces(t),e))return!0;var n,i=t.$$inherits;if(i)for(n=0;n"})),r=function(){for(;;){var t=n.exec(e);if((!t||"["!=t[0]||"]"!==e[t.index+1]&&","!==e[t.index+1])&&(!t||"]"!=t[0]||"["!==e[t.index-1]&&","!==e[t.index-1])&&(!t||","!=t[0]||"]"!==e[t.index+1]&&","!==e[t.index+1]))return t}};var d,g,c=(n=n||/[[,\\]]/g).lastIndex,m=r(),h=[],f=!t;if(m)switch(d=e.substring(c,m.index),m[0]){case"[":if("["!==e[m.index+1])return null;for(;;){if(r(),!(g=Bridge.Reflection._getType(e,null,n)))return null;if(h.push(g),"]"===(m=r())[0])break;if(","!==m[0])return null}if((s=/^\\s*<(\\d+)>/g.exec(e.substring(m.index+1)))&&(d=d+"<"+parseInt(s[1])+">"),(m=r())&&","===m[0]&&(r(),!(t=Bridge.global.System.Reflection.Assembly.assemblies[(n.lastIndex>0?e.substring(m.index+1,n.lastIndex-1):e.substring(m.index+1)).trim()])))return null;break;case",":if(r(),!(t=Bridge.global.System.Reflection.Assembly.assemblies[(n.lastIndex>0?e.substring(m.index+1,n.lastIndex-1):e.substring(m.index+1)).trim()]))return null}else d=e.substring(c);if(u&&n.lastIndex)return null;if(d=d.trim(),l=(a=Bridge.Reflection._extractArrayRank(d)).rank,d=a.name,g=Bridge.Reflection._getAssemblyType(t,d),i)return g;if(!g&&f)for(o in Bridge.global.System.Reflection.Assembly.assemblies)if(Bridge.global.System.Reflection.Assembly.assemblies.hasOwnProperty(o)&&Bridge.global.System.Reflection.Assembly.assemblies[o]!==t&&(g=Bridge.Reflection._getType(e,Bridge.global.System.Reflection.Assembly.assemblies[o],null,!0)))break;return(g=h.length?g.apply(null,h):g)&&g.$staticInit&&g.$staticInit(),l>-1&&(g=Bridge.global.System.Array.type(g,l)),g},getType:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("typeName");return e?Bridge.Reflection._getType(e,t):null},canAcceptNull:function(e){return"struct"!==e.$kind&&"enum"!==e.$kind&&e!==Bridge.global.System.Decimal&&e!==Bridge.global.System.Int64&&e!==Bridge.global.System.UInt64&&e!==Bridge.global.System.Double&&e!==Bridge.global.System.Single&&e!==Bridge.global.System.Byte&&e!==Bridge.global.System.SByte&&e!==Bridge.global.System.Int16&&e!==Bridge.global.System.UInt16&&e!==Bridge.global.System.Int32&&e!==Bridge.global.System.UInt32&&e!==Bridge.Int&&e!==Bridge.global.System.Boolean&&e!==Bridge.global.System.DateTime&&e!==Boolean&&e!==Date&&e!==Number},applyConstructor:function(e,t){var n,i,r,s,a,l,o,u,d,g;if(!t||0===t.length)return new e;if(e.$$initCtor&&"anonymous"!==e.$kind){if(n=0,Bridge.getMetadata(e)){for(i=Bridge.Reflection.getMembers(e,1,28),s=0;s1)throw new Bridge.global.System.Exception("The ambiguous constructor call")}return(g=function(){e.apply(this,t)}).prototype=e.prototype,new g},getAttributes:function(e,t,n){var i,r,s,a,l,o,u,d=[];if(n&&(o=Bridge.Reflection.getBaseType(e)))for(s=Bridge.Reflection.getAttributes(o,t,!0),i=0;i=0;u--)Bridge.Reflection.isInstanceOfType(d[u],r)&&d.splice(u,1);d.push(s)}return d},getMembers:function(e,t,n,i,r){var s,a,l,o,u,d,g,c,m,h=[];if((72==(72&n)||4==(6&n))&&(s=Bridge.Reflection.getBaseType(e))&&(h=Bridge.Reflection.getMembers(s,-2&t,n&(64&n?255:247)&(2&n?251:255),i,r)),a=function(e){if(t&e.t&&(4&n&&!e.is||8&n&&e.is)&&(!i||(1==(1&n)?e.n.toUpperCase()===i.toUpperCase():e.n===i))&&(16==(16&n)&&2===e.a||32==(32&n)&&2!==e.a)){if(r){if((e.p||[]).length!==r.length)return;for(var s=0;s1)throw new Bridge.global.System.Reflection.AmbiguousMatchException.$ctor1("Ambiguous match");if(1===c.length)return c[0];e=Bridge.Reflection.getBaseType(e)}return null}return h},createDelegate:function(e,t){var n=e.is||e.sm,i=null!=t&&!n,r=Bridge.Reflection.midel(e,t,null,i);return i?r:n?function(){var n=null!=t?[t]:[];return r.apply(e.td,n.concat(Array.prototype.slice.call(arguments,0)))}:function(e){return r.apply(e,Array.prototype.slice.call(arguments,1))}},midel:function(e,t,n,i){var r,s,a,l,o;if(!1!==i){if(e.is&&t)throw new Bridge.global.System.ArgumentException.$ctor1("Cannot specify target for static method");if(!e.is&&!t)throw new Bridge.global.System.ArgumentException.$ctor1("Must specify target for instance method")}if(e.fg)r=function(){return(e.is?e.td:this)[e.fg]};else if(e.fs)r=function(t){(e.is?e.td:this)[e.fs]=t};else{if(r=e.def||(e.is||e.sm?e.td[e.sn]:t?t[e.sn]:e.td.prototype[e.sn]),e.tpc){if(!n||n.length!==e.tpc)throw new Bridge.global.System.ArgumentException.$ctor1("Wrong number of type arguments");s=r,r=function(){return s.apply(this,n.concat(Array.prototype.slice.call(arguments)))}}else if(n&&n.length)throw new Bridge.global.System.ArgumentException.$ctor1("Cannot specify type arguments for non-generic method");e.exp&&(a=r,r=function(){return a.apply(this,Array.prototype.slice.call(arguments,0,arguments.length-1).concat(arguments[arguments.length-1]))}),e.sm&&(l=r,r=function(){return l.apply(null,[this].concat(Array.prototype.slice.call(arguments)))})}return o=r,r=function(){for(var t,n,i=[],r=e.pi||[],s=0;s=0},hasGenericParameters:function(e){if(e.$typeArguments)for(var t=0;t=0}}}}),Bridge.define("System.IEquatable$1",function(e){return{$kind:"interface",statics:{$is:function(t){return!!(Bridge.isNumber(t)&&e.$number&&e.$is(t)||Bridge.isDate(t)&&(e===Date||e===Bridge.global.System.DateTime)||Bridge.isBoolean(t)&&(e===Boolean||e===Bridge.global.System.Boolean)||Bridge.isString(t)&&(e===String||e===Bridge.global.System.String))||Bridge.is(t,Bridge.global.System.IEquatable$1(e),!0)},isAssignableFrom:function(t){return t===Bridge.global.System.DateTime&&e===Date||Bridge.Reflection.getInterfaces(t).indexOf(Bridge.global.System.IEquatable$1(e))>=0}}}}),Bridge.define("Bridge.IPromise",{$kind:"interface"}),Bridge.define("System.IDisposable",{$kind:"interface"}),Bridge.define("System.IAsyncResult",{$kind:"interface"}),d={nameEquals:function(e,t,n){return n?e.toLowerCase()===t.toLowerCase():e.charAt(0).toLowerCase()+e.slice(1)===t.charAt(0).toLowerCase()+t.slice(1)},checkEnumType:function(e){if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor1("enumType");if(e.prototype&&"enum"!==e.$kind)throw new Bridge.global.System.ArgumentException.$ctor1("","enumType")},getUnderlyingType:function(e){return Bridge.global.System.Enum.checkEnumType(e),e.prototype.$utype||Bridge.global.System.Int32},toName:function(e){return e},parse:function(e,t,n,i){var r,s,a,l,o,u,g,c;if(Bridge.global.System.Enum.checkEnumType(e),null!=t){if(e===Number||e===Bridge.global.System.String||e.$number)return t;if(r={},Bridge.global.System.Int32.tryParse(t,r))return Bridge.box(r.v,e,function(t){return Bridge.global.System.Enum.toString(e,t)});if(s=Bridge.global.System.Enum.getNames(e),a=e,e.prototype&&e.prototype.$flags){var m=t.split(","),h=0,f=!0;for(l=m.length-1;l>=0;l--){for(o=m[l].trim(),u=!1,g=0;g=0&&(a=c[m],s=u&&Bridge.global.System.Int64.is64Bit(a.value),0!=m||(s?!a.value.isZero():0!=a.value));)(s?t.and(a.value).eq(a.value):(t&a.value)==a.value)&&(s?t=t.sub(a.value):t-=a.value,g.unshift(a.name)),m--;return(u?t.isZero():0===t)?(u?h.isZero():0===h)?(a=c[0])&&(Bridge.global.System.Int64.is64Bit(a.value)?a.value.isZero():0==a.value)?a.name:"0":g.join(", "):h.toString()}for(i=0;it},gte:function(e,t){return Bridge.hasValue$1(e,t)&&e>=t},neq:function(e,t){return Bridge.hasValue(e)?e!==t:Bridge.hasValue(t)},lt:function(e,t){return Bridge.hasValue$1(e,t)&&e>t:null},srr:function(e,t){return Bridge.hasValue$1(e,t)?e>>>t:null},sub:function(e,t){return Bridge.hasValue$1(e,t)?e-t:null},bnot:function(e){return Bridge.hasValue(e)?~e:null},neg:function(e){return Bridge.hasValue(e)?-e:null},not:function(e){return Bridge.hasValue(e)?!e:null},pos:function(e){return Bridge.hasValue(e)?+e:null},lift:function(){for(var e=1;e=Bridge.global.System.Char.min&&e<=Bridge.global.System.Char.max},getDefaultValue:function(){return 0},parse:function(e){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("s");if(1!==e.length)throw new Bridge.global.System.FormatException;return e.charCodeAt(0)},tryParse:function(e,t){var n=e&&1===e.length;return t.v=n?e.charCodeAt(0):0,n},format:function(e,t,n){return Bridge.Int.format(e,t,n)},charCodeAt:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException;if(1!=e.length)throw new Bridge.global.System.FormatException.$ctor1("String must be exactly one character long");return e.charCodeAt(t)},isWhiteSpace:function(e){return!/[^\\s\\x09-\\x0D\\x85\\xA0]/.test(e)},isDigit:function(e){return e<256?e>=48&&e<=57:new RegExp(/[0-9\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]/).test(String.fromCharCode(e))},isLetter:function(e){return e<256?e>=65&&e<=90||e>=97&&e<=122:new RegExp(/[A-Za-z\\u0061-\\u007A\\u00B5\\u00DF-\\u00F6\\u00F8-\\u00FF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0561-\\u0587\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7FA\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A\\u0041-\\u005A\\u00C0-\\u00D6\\u00D8-\\u00DE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA\\uFF21-\\uFF3A\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FBC\\u1FCC\\u1FFC\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5\\u06E6\\u07F4\\u07F5\\u07FA\\u081A\\u0824\\u0828\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1AA7\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031-\\u3035\\u303B\\u309D\\u309E\\u30FC-\\u30FE\\uA015\\uA4F8-\\uA4FD\\uA60C\\uA67F\\uA717-\\uA71F\\uA770\\uA788\\uA7F8\\uA7F9\\uA9CF\\uAA70\\uAADD\\uAAF3\\uAAF4\\uFF70\\uFF9E\\uFF9F\\u00AA\\u00BA\\u01BB\\u01C0-\\u01C3\\u0294\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u063F\\u0641-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u0800-\\u0815\\u0840-\\u0858\\u08A0\\u08A2-\\u08AC\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0972-\\u0977\\u0979-\\u097F\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E45\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10D0-\\u10FA\\u10FD-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17DC\\u1820-\\u1842\\u1844-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191C\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C77\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u2135-\\u2138\\u2D30-\\u2D67\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3006\\u303C\\u3041-\\u3096\\u309F\\u30A1-\\u30FA\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA014\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA500-\\uA60B\\uA610-\\uA61F\\uA62A\\uA62B\\uA66E\\uA6A0-\\uA6E5\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA6F\\uAA71-\\uAA76\\uAA7A\\uAA80-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB\\uAADC\\uAAE0-\\uAAEA\\uAAF2\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF6F\\uFF71-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]/).test(String.fromCharCode(e))},isHighSurrogate:function(e){return new RegExp(/[\\uD800-\\uDBFF]/).test(String.fromCharCode(e))},isLowSurrogate:function(e){return new RegExp(/[\\uDC00-\\uDFFF]/).test(String.fromCharCode(e))},isSurrogate:function(e){return new RegExp(/[\\uD800-\\uDFFF]/).test(String.fromCharCode(e))},isNull:function(e){return new RegExp("\\0").test(String.fromCharCode(e))},isSymbol:function(e){return e<256?-1!=[36,43,60,61,62,94,96,124,126,162,163,164,165,166,167,168,169,172,174,175,176,177,180,182,184,215,247].indexOf(e):new RegExp(/[\\u20A0-\\u20CF\\u20D0-\\u20FF\\u2100-\\u214F\\u2150-\\u218F\\u2190-\\u21FF\\u2200-\\u22FF\\u2300-\\u23FF\\u25A0-\\u25FF\\u2600-\\u26FF\\u2700-\\u27BF\\u27C0-\\u27EF\\u27F0-\\u27FF\\u2800-\\u28FF\\u2900-\\u297F\\u2980-\\u29FF\\u2A00-\\u2AFF\\u2B00-\\u2BFF]/).test(String.fromCharCode(e))},isSeparator:function(e){return e<256?32==e||160==e:new RegExp(/[\\u2028\\u2029\\u0020\\u00A0\\u1680\\u180E\\u2000-\\u200A\\u202F\\u205F\\u3000]/).test(String.fromCharCode(e))},isPunctuation:function(e){return e<256?-1!=[33,34,35,37,38,39,40,41,42,44,45,46,47,58,59,63,64,91,92,93,95,123,125,161,171,173,183,187,191].indexOf(e):new RegExp(/[\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65\\u002D\\u058A\\u05BE\\u1400\\u1806\\u2010-\\u2015\\u2E17\\u2E1A\\u2E3A\\u2E3B\\u301C\\u3030\\u30A0\\uFE31\\uFE32\\uFE58\\uFE63\\uFF0D\\u0028\\u005B\\u007B\\u0F3A\\u0F3C\\u169B\\u201A\\u201E\\u2045\\u207D\\u208D\\u2329\\u2768\\u276A\\u276C\\u276E\\u2770\\u2772\\u2774\\u27C5\\u27E6\\u27E8\\u27EA\\u27EC\\u27EE\\u2983\\u2985\\u2987\\u2989\\u298B\\u298D\\u298F\\u2991\\u2993\\u2995\\u2997\\u29D8\\u29DA\\u29FC\\u2E22\\u2E24\\u2E26\\u2E28\\u3008\\u300A\\u300C\\u300E\\u3010\\u3014\\u3016\\u3018\\u301A\\u301D\\uFD3E\\uFE17\\uFE35\\uFE37\\uFE39\\uFE3B\\uFE3D\\uFE3F\\uFE41\\uFE43\\uFE47\\uFE59\\uFE5B\\uFE5D\\uFF08\\uFF3B\\uFF5B\\uFF5F\\uFF62\\u0029\\u005D\\u007D\\u0F3B\\u0F3D\\u169C\\u2046\\u207E\\u208E\\u232A\\u2769\\u276B\\u276D\\u276F\\u2771\\u2773\\u2775\\u27C6\\u27E7\\u27E9\\u27EB\\u27ED\\u27EF\\u2984\\u2986\\u2988\\u298A\\u298C\\u298E\\u2990\\u2992\\u2994\\u2996\\u2998\\u29D9\\u29DB\\u29FD\\u2E23\\u2E25\\u2E27\\u2E29\\u3009\\u300B\\u300D\\u300F\\u3011\\u3015\\u3017\\u3019\\u301B\\u301E\\u301F\\uFD3F\\uFE18\\uFE36\\uFE38\\uFE3A\\uFE3C\\uFE3E\\uFE40\\uFE42\\uFE44\\uFE48\\uFE5A\\uFE5C\\uFE5E\\uFF09\\uFF3D\\uFF5D\\uFF60\\uFF63\\u00AB\\u2018\\u201B\\u201C\\u201F\\u2039\\u2E02\\u2E04\\u2E09\\u2E0C\\u2E1C\\u2E20\\u00BB\\u2019\\u201D\\u203A\\u2E03\\u2E05\\u2E0A\\u2E0D\\u2E1D\\u2E21\\u005F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F\\u0021-\\u0023\\u0025-\\u0027\\u002A\\u002C\\u002E\\u002F\\u003A\\u003B\\u003F\\u0040\\u005C\\u00A1\\u00A7\\u00B6\\u00B7\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u166D\\u166E\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u1805\\u1807-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2016\\u2017\\u2020-\\u2027\\u2030-\\u2038\\u203B-\\u203E\\u2041-\\u2043\\u2047-\\u2051\\u2053\\u2055-\\u205E\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00\\u2E01\\u2E06-\\u2E08\\u2E0B\\u2E0E-\\u2E16\\u2E18\\u2E19\\u2E1B\\u2E1E\\u2E1F\\u2E2A-\\u2E2E\\u2E30-\\u2E39\\u3001-\\u3003\\u303D\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFE10-\\uFE16\\uFE19\\uFE30\\uFE45\\uFE46\\uFE49-\\uFE4C\\uFE50-\\uFE52\\uFE54-\\uFE57\\uFE5F-\\uFE61\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF07\\uFF0A\\uFF0C\\uFF0E\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3C\\uFF61\\uFF64\\uFF65]/).test(String.fromCharCode(e))},isNumber:function(e){return e<256?-1!=[48,49,50,51,52,53,54,55,56,57,178,179,185,188,189,190].indexOf(e):new RegExp(/[\\u0030-\\u0039\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u09F4-\\u09F9\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0B72-\\u0B77\\u0BE6-\\u0BF2\\u0C66-\\u0C6F\\u0C78-\\u0C7E\\u0CE6-\\u0CEF\\u0D66-\\u0D75\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F33\\u1040-\\u1049\\u1090-\\u1099\\u1369-\\u137C\\u16EE-\\u16F0\\u17E0-\\u17E9\\u17F0-\\u17F9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19DA\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u2182\\u2185-\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3007\\u3021-\\u3029\\u3038-\\u303A\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA620-\\uA629\\uA6E6-\\uA6EF\\uA830-\\uA835\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19\\u16EE-\\u16F0\\u2160-\\u2182\\u2185-\\u2188\\u3007\\u3021-\\u3029\\u3038-\\u303A\\uA6E6-\\uA6EF\\u00B2\\u00B3\\u00B9\\u00BC-\\u00BE\\u09F4-\\u09F9\\u0B72-\\u0B77\\u0BF0-\\u0BF2\\u0C78-\\u0C7E\\u0D70-\\u0D75\\u0F2A-\\u0F33\\u1369-\\u137C\\u17F0-\\u17F9\\u19DA\\u2070\\u2074-\\u2079\\u2080-\\u2089\\u2150-\\u215F\\u2189\\u2460-\\u249B\\u24EA-\\u24FF\\u2776-\\u2793\\u2CFD\\u3192-\\u3195\\u3220-\\u3229\\u3248-\\u324F\\u3251-\\u325F\\u3280-\\u3289\\u32B1-\\u32BF\\uA830-\\uA835]/).test(String.fromCharCode(e))},isControl:function(e){return e<256?e>=0&&e<=31||e>=127&&e<=159:new RegExp(/[\\u0000-\\u001F\\u007F\\u0080-\\u009F]/).test(String.fromCharCode(e))},isLatin1:function(e){return e<=255},isAscii:function(e){return e<=127},isUpper:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");if(t>>>0>=e.length>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");var n=e.charCodeAt(t);return Bridge.global.System.Char.isLatin1(n)&&Bridge.global.System.Char.isAscii(n)?n>=65&&n<=90:Bridge.isUpper(n)},equals:function(e,t){return!(!Bridge.is(e,Bridge.global.System.Char)||!Bridge.is(t,Bridge.global.System.Char))&&Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:function(e){return e|e<<16}}}),Bridge.Class.addExtend(Bridge.global.System.Char,[Bridge.global.System.IComparable$1(Bridge.global.System.Char),Bridge.global.System.IEquatable$1(Bridge.global.System.Char)]),Bridge.define("Bridge.Ref$1",function(){return{statics:{methods:{op_Implicit:function(e){return e.Value}}},fields:{getter:null,setter:null},props:{Value:{get:function(){return this.getter()},set:function(e){this.setter(e)}},v:{get:function(){return this.Value},set:function(e){this.Value=e}}},ctors:{ctor:function(e,t){this.$initialize(),this.getter=e,this.setter=t}},methods:{toString:function(){return Bridge.toString(this.Value)},valueOf:function(){return this.Value}}}}),Bridge.define("System.IConvertible",{$kind:"interface"}),Bridge.define("System.HResults"),Bridge.define("System.Exception",{config:{properties:{Message:{get:function(){return this.message}},InnerException:{get:function(){return this.innerException}},StackTrace:{get:function(){return this.errorStack.stack}},Data:{get:function(){return this.data}},HResult:{get:function(){return this._HResult},set:function(e){this._HResult=e}}}},ctor:function(e,t){this.$initialize(),this.message=e||"Exception of type \'"+Bridge.getTypeName(this)+"\' was thrown.",this.innerException=t||null,this.errorStack=new Error(this.message),this.data=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))},getBaseException:function(){for(var e=this.innerException,t=this;null!=e;)t=e,e=e.innerException;return t},toString:function(){var e=Bridge.getTypeName(this);return e+=null!=this.Message?": "+this.Message+"\\n":"\\n",null!=this.StackTrace&&(e+=this.StackTrace+"\\n"),e},statics:{create:function(e){if(Bridge.is(e,Bridge.global.System.Exception))return e;var t;if(e instanceof TypeError)t=new Bridge.global.System.NullReferenceException.$ctor1(e.message);else if(e instanceof RangeError)t=new Bridge.global.System.ArgumentOutOfRangeException.$ctor1(e.message);else{if(e instanceof Error)return new Bridge.global.System.SystemException.$ctor1(e);t=e&&e.error&&e.error.stack?new Bridge.global.System.Exception(e.error.stack):new Bridge.global.System.Exception(e?e.message?e.message:e.toString():null)}return t.errorStack=e,t}}}),Bridge.define("System.SystemException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"System error."),this.HResult=-2146233087},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e),this.HResult=-2146233087},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t),this.HResult=-2146233087}}}),Bridge.define("System.OutOfMemoryException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Insufficient memory to continue the execution of the program."),this.HResult=-2147024362},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024362},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024362}}}),Bridge.define("System.ArrayTypeMismatchException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Attempted to access an element as a type incompatible with the array."),this.HResult=-2146233085},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233085},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233085}}}),Bridge.define("System.Resources.MissingManifestResourceException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Unable to find manifest resource."),this.HResult=-2146233038},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233038},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233038}}}),Bridge.define("System.Globalization.TextInfo",{inherits:[Bridge.global.System.ICloneable],fields:{listSeparator:null},props:{ANSICodePage:0,CultureName:null,EBCDICCodePage:0,IsReadOnly:!1,IsRightToLeft:!1,LCID:0,ListSeparator:{get:function(){return this.listSeparator},set:function(e){this.VerifyWritable(),this.listSeparator=e}},MacCodePage:0,OEMCodePage:0},alias:["clone","System$ICloneable$clone"],methods:{clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.TextInfo,this,Bridge.global.System.Array.init(["ANSICodePage","CultureName","EBCDICCodePage","IsRightToLeft","LCID","listSeparator","MacCodePage","OEMCodePage","IsReadOnly"],Bridge.global.System.String))},VerifyWritable:function(){if(this.IsReadOnly)throw new Bridge.global.System.InvalidOperationException.$ctor1("Instance is read-only.")}}}),Bridge.define("System.Globalization.BidiCategory",{$kind:"enum",statics:{fields:{LeftToRight:0,LeftToRightEmbedding:1,LeftToRightOverride:2,RightToLeft:3,RightToLeftArabic:4,RightToLeftEmbedding:5,RightToLeftOverride:6,PopDirectionalFormat:7,EuropeanNumber:8,EuropeanNumberSeparator:9,EuropeanNumberTerminator:10,ArabicNumber:11,CommonNumberSeparator:12,NonSpacingMark:13,BoundaryNeutral:14,ParagraphSeparator:15,SegmentSeparator:16,Whitespace:17,OtherNeutrals:18,LeftToRightIsolate:19,RightToLeftIsolate:20,FirstStrongIsolate:21,PopDirectionIsolate:22}}}),Bridge.define("System.Globalization.SortVersion",{inherits:function(){return[Bridge.global.System.IEquatable$1(Bridge.global.System.Globalization.SortVersion)]},statics:{methods:{op_Equality:function(e,t){return null!=e?e.equalsT(t):null==t||t.equalsT(e)},op_Inequality:function(e,t){return!Bridge.global.System.Globalization.SortVersion.op_Equality(e,t)}}},fields:{m_NlsVersion:0,m_SortId:null},props:{FullVersion:{get:function(){return this.m_NlsVersion}},SortId:{get:function(){return this.m_SortId}}},alias:["equalsT","System$IEquatable$1$System$Globalization$SortVersion$equalsT"],ctors:{init:function(){this.m_SortId=new Bridge.global.System.Guid},ctor:function(e,t){this.$initialize(),this.m_SortId=t,this.m_NlsVersion=e},$ctor1:function(e,t,n){if(this.$initialize(),this.m_NlsVersion=e,Bridge.global.System.Guid.op_Equality(n,Bridge.global.System.Guid.Empty)){var i=t>>24&255,r=(16711680&t)>>16&255,s=(65280&t)>>8&255,a=255&t;n=new Bridge.global.System.Guid.$ctor2(0,0,0,0,0,0,0,i,r,s,a)}this.m_SortId=n}},methods:{equals:function(e){var t=Bridge.as(e,Bridge.global.System.Globalization.SortVersion);return!!Bridge.global.System.Globalization.SortVersion.op_Inequality(t,null)&&this.equalsT(t)},equalsT:function(e){return!Bridge.global.System.Globalization.SortVersion.op_Equality(e,null)&&this.m_NlsVersion===e.m_NlsVersion&&Bridge.global.System.Guid.op_Equality(this.m_SortId,e.m_SortId)},getHashCode:function(){return Bridge.Int.mul(this.m_NlsVersion,7)|this.m_SortId.getHashCode()}}}),Bridge.define("System.Globalization.UnicodeCategory",{$kind:"enum",statics:{fields:{UppercaseLetter:0,LowercaseLetter:1,TitlecaseLetter:2,ModifierLetter:3,OtherLetter:4,NonSpacingMark:5,SpacingCombiningMark:6,EnclosingMark:7,DecimalDigitNumber:8,LetterNumber:9,OtherNumber:10,SpaceSeparator:11,LineSeparator:12,ParagraphSeparator:13,Control:14,Format:15,Surrogate:16,PrivateUse:17,ConnectorPunctuation:18,DashPunctuation:19,OpenPunctuation:20,ClosePunctuation:21,InitialQuotePunctuation:22,FinalQuotePunctuation:23,OtherPunctuation:24,MathSymbol:25,CurrencySymbol:26,ModifierSymbol:27,OtherSymbol:28,OtherNotAssigned:29}}}),Bridge.define("System.Globalization.DaylightTimeStruct",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Globalization.DaylightTimeStruct}}},fields:{Start:null,End:null,Delta:null},ctors:{init:function(){this.Start=Bridge.global.System.DateTime.getDefaultValue(),this.End=Bridge.global.System.DateTime.getDefaultValue(),this.Delta=new Bridge.global.System.TimeSpan},$ctor1:function(e,t,n){this.$initialize(),this.Start=e,this.End=t,this.Delta=n},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([7445027511,this.Start,this.End,this.Delta])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Globalization.DaylightTimeStruct)&&Bridge.equals(this.Start,e.Start)&&Bridge.equals(this.End,e.End)&&Bridge.equals(this.Delta,e.Delta)},$clone:function(e){var t=e||new Bridge.global.System.Globalization.DaylightTimeStruct;return t.Start=this.Start,t.End=this.End,t.Delta=this.Delta,t}}}),Bridge.define("System.Globalization.DaylightTime",{fields:{_start:null,_end:null,_delta:null},props:{Start:{get:function(){return this._start}},End:{get:function(){return this._end}},Delta:{get:function(){return this._delta}}},ctors:{init:function(){this._start=Bridge.global.System.DateTime.getDefaultValue(),this._end=Bridge.global.System.DateTime.getDefaultValue(),this._delta=new Bridge.global.System.TimeSpan},ctor:function(){this.$initialize()},$ctor1:function(e,t,n){this.$initialize(),this._start=e,this._end=t,this._delta=n}}}),Bridge.define("System.Globalization.DateTimeFormatInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},statics:{$allStandardFormats:{d:"shortDatePattern",D:"longDatePattern",f:"longDatePattern shortTimePattern",F:"longDatePattern longTimePattern",g:"shortDatePattern shortTimePattern",G:"shortDatePattern longTimePattern",m:"monthDayPattern",M:"monthDayPattern",o:"roundtripFormat",O:"roundtripFormat",r:"rfc1123",R:"rfc1123",s:"sortableDateTimePattern",S:"sortableDateTimePattern1",t:"shortTimePattern",T:"longTimePattern",u:"universalSortableDateTimePattern",U:"longDatePattern longTimePattern",y:"yearMonthPattern",Y:"yearMonthPattern"},ctor:function(){this.invariantInfo=Bridge.merge(new Bridge.global.System.Globalization.DateTimeFormatInfo,{abbreviatedDayNames:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],abbreviatedMonthGenitiveNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],abbreviatedMonthNames:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],amDesignator:"AM",dateSeparator:"/",dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],firstDayOfWeek:0,fullDateTimePattern:"dddd, dd MMMM yyyy HH:mm:ss",longDatePattern:"dddd, dd MMMM yyyy",longTimePattern:"HH:mm:ss",monthDayPattern:"MMMM dd",monthGenitiveNames:["January","February","March","April","May","June","July","August","September","October","November","December",""],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December",""],pmDesignator:"PM",rfc1123:"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'",shortDatePattern:"MM/dd/yyyy",shortestDayNames:["Su","Mo","Tu","We","Th","Fr","Sa"],shortTimePattern:"HH:mm",sortableDateTimePattern:"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss",sortableDateTimePattern1:"yyyy\'-\'MM\'-\'dd",timeSeparator:":",universalSortableDateTimePattern:"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'",yearMonthPattern:"yyyy MMMM",roundtripFormat:"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss.fffffffzzz"})}},getFormat:function(e){switch(e){case Bridge.global.System.Globalization.DateTimeFormatInfo:return this;default:return null}},getAbbreviatedDayName:function(e){if(e<0||e>6)throw new Bridge.global.System.ArgumentOutOfRangeException$ctor1("dayofweek");return this.abbreviatedDayNames[e]},getAbbreviatedMonthName:function(e){if(e<1||e>13)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("month");return this.abbreviatedMonthNames[e-1]},getAllDateTimePatterns:function(e,t){var n,i,r,s,a=Bridge.global.System.Globalization.DateTimeFormatInfo.$allStandardFormats,l=[];if(e){if(!a[e]){if(t)return null;throw new Bridge.global.System.ArgumentException.$ctor3("","format")}(n={})[e]=a[e]}else n=a;for(a in n){for(i=n[a].split(" "),r="",s=0;s6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("dayofweek");return this.dayNames[e]},getMonthName:function(e){if(e<1||e>13)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("month");return this.monthNames[e-1]},getShortestDayName:function(e){if(e<0||e>6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("dayOfWeek");return this.shortestDayNames[e]},clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.DateTimeFormatInfo,this,["abbreviatedDayNames","abbreviatedMonthGenitiveNames","abbreviatedMonthNames","amDesignator","dateSeparator","dayNames","firstDayOfWeek","fullDateTimePattern","longDatePattern","longTimePattern","monthDayPattern","monthGenitiveNames","monthNames","pmDesignator","rfc1123","shortDatePattern","shortestDayNames","shortTimePattern","sortableDateTimePattern","timeSeparator","universalSortableDateTimePattern","yearMonthPattern","roundtripFormat"])}}),Bridge.define("System.Globalization.NumberFormatInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},statics:{ctor:function(){this.numberNegativePatterns=["(n)","-n","- n","n-","n -"],this.currencyNegativePatterns=["($n)","-$n","$-n","$n-","(n$)","-n$","n-$","n$-","-n $","-$ n","n $-","$ n-","$ -n","n- $","($ n)","(n $)"],this.currencyPositivePatterns=["$n","n$","$ n","n $"],this.percentNegativePatterns=["-n %","-n%","-%n","%-n","%n-","n-%","n%-","-% n","n %-","% n-","% -n","n- %"],this.percentPositivePatterns=["n %","n%","%n","% n"],this.invariantInfo=Bridge.merge(new Bridge.global.System.Globalization.NumberFormatInfo,{nanSymbol:"NaN",negativeSign:"-",positiveSign:"+",negativeInfinitySymbol:"-Infinity",positiveInfinitySymbol:"Infinity",percentSymbol:"%",percentGroupSizes:[3],percentDecimalDigits:2,percentDecimalSeparator:".",percentGroupSeparator:",",percentPositivePattern:0,percentNegativePattern:0,currencySymbol:"¤",currencyGroupSizes:[3],currencyDecimalDigits:2,currencyDecimalSeparator:".",currencyGroupSeparator:",",currencyNegativePattern:0,currencyPositivePattern:0,numberGroupSizes:[3],numberDecimalDigits:2,numberDecimalSeparator:".",numberGroupSeparator:",",numberNegativePattern:1})}},getFormat:function(e){switch(e){case Bridge.global.System.Globalization.NumberFormatInfo:return this;default:return null}},clone:function(){return Bridge.copy(new Bridge.global.System.Globalization.NumberFormatInfo,this,["nanSymbol","negativeSign","positiveSign","negativeInfinitySymbol","positiveInfinitySymbol","percentSymbol","percentGroupSizes","percentDecimalDigits","percentDecimalSeparator","percentGroupSeparator","percentPositivePattern","percentNegativePattern","currencySymbol","currencyGroupSizes","currencyDecimalDigits","currencyDecimalSeparator","currencyGroupSeparator","currencyNegativePattern","currencyPositivePattern","numberGroupSizes","numberDecimalDigits","numberDecimalSeparator","numberGroupSeparator","numberNegativePattern"])}}),Bridge.define("System.Globalization.CultureInfo",{inherits:[Bridge.global.System.IFormatProvider,Bridge.global.System.ICloneable],config:{alias:["getFormat","System$IFormatProvider$getFormat"]},$entryPoint:!0,statics:{ctor:function(){this.cultures=this.cultures||{},this.invariantCulture=Bridge.merge(new Bridge.global.System.Globalization.CultureInfo("iv",!0),{englishName:"Invariant Language (Invariant Country)",nativeName:"Invariant Language (Invariant Country)",numberFormat:Bridge.global.System.Globalization.NumberFormatInfo.invariantInfo,dateTimeFormat:Bridge.global.System.Globalization.DateTimeFormatInfo.invariantInfo,TextInfo:Bridge.merge(new Bridge.global.System.Globalization.TextInfo,{ANSICodePage:1252,CultureName:"",EBCDICCodePage:37,listSeparator:",",IsRightToLeft:!1,LCID:127,MacCodePage:1e4,OEMCodePage:437,IsReadOnly:!0})}),this.setCurrentCulture(Bridge.global.System.Globalization.CultureInfo.invariantCulture)},getCurrentCulture:function(){return this.currentCulture},setCurrentCulture:function(e){this.currentCulture=e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo=e.dateTimeFormat,Bridge.global.System.Globalization.NumberFormatInfo.currentInfo=e.numberFormat},getCultureInfo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");if(""===e)return Bridge.global.System.Globalization.CultureInfo.invariantCulture;var t=this.cultures[e];if(null==t)throw new Bridge.global.System.Globalization.CultureNotFoundException.$ctor5("name",e);return t},getCultures:function(){for(var e=Bridge.getPropertyNames(this.cultures),t=[],n=0;n=0?e.substr(Bridge.global.System.String.indexOf(e,"at")):""}},Version:{get:function(){var e=Bridge.SystemAssembly.compiler,t={};return Bridge.global.System.Version.tryParse(e,t)?t.v:new Bridge.global.System.Version.ctor}}},ctors:{init:function(){this.ExitCode=0},ctor:function(){Bridge.global.System.Environment.Variables=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)),Bridge.global.System.Environment.PatchDictionary(Bridge.global.System.Environment.Variables)}},methods:{GetResourceString:function(e){return e},GetResourceString$1:function(e,t){void 0===t&&(t=[]);var n=Bridge.global.System.Environment.GetResourceString(e);return Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[Bridge.global.System.Globalization.CultureInfo.getCurrentCulture(),n].concat(t))},PatchDictionary:function(e){return e.noKeyCheck=!0,e},Exit:function(e){Bridge.global.System.Environment.ExitCode=e},ExpandEnvironmentVariables:function(e){var t,n;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1(e);t=Bridge.getEnumerator(Bridge.global.System.Environment.Variables);try{for(;t.moveNext();)n=t.Current,e=Bridge.global.System.String.replaceAll(e,"%"+(n.key||"")+"%",n.value)}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return e},FailFast:function(e){throw new Bridge.global.System.Exception(e)},FailFast$1:function(e,t){throw new Bridge.global.System.Exception(e,t)},GetCommandLineArgs:function(){var e,t,n,i,r,s,a,l=Bridge.global.System.Environment.Location;if(l){if(e=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),t=l.pathname,Bridge.global.System.String.isNullOrEmpty(t)||e.add(t),n=l.search,!Bridge.global.System.String.isNullOrEmpty(n)&&n.length>1)for(i=Bridge.global.System.String.split(n.substr(1),[38].map(function(e){return String.fromCharCode(e)})),r=0;r0|-(e<0))?((r=Math.floor(e))+(4===n?i>0:r%2*i))/s:Math.round(e)/s},log10:Math.log10||function(e){return Math.log(e)/Math.LN10},logWithBase:function(e,t){return isNaN(e)?e:isNaN(t)?t:1===t?NaN:1===e||0!==t&&t!==Number.POSITIVE_INFINITY?Bridge.Math.log10(e)/Bridge.Math.log10(t):NaN},log:function(e){return 0===e?Number.NEGATIVE_INFINITY:e<0||isNaN(e)?NaN:e===Number.POSITIVE_INFINITY?Number.POSITIVE_INFINITY:e===Number.NEGATIVE_INFINITY?NaN:Math.log(e)},sinh:Math.sinh||function(e){return(Math.exp(e)-Math.exp(-e))/2},cosh:Math.cosh||function(e){return(Math.exp(e)+Math.exp(-e))/2},tanh:Math.tanh||function(e){if(e===1/0)return 1;if(e===-1/0)return-1;var t=Math.exp(2*e);return(t-1)/(t+1)}},Bridge.define("System.Boolean",{inherits:[Bridge.global.System.IComparable],statics:{trueString:"True",falseString:"False",$is:function(e){return"boolean"==typeof e},getDefaultValue:function(){return!1},createInstance:function(){return!1},toString:function(e){return e?Bridge.global.System.Boolean.trueString:Bridge.global.System.Boolean.falseString},parse:function(e){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("value");var t={v:!1};if(!Bridge.global.System.Boolean.tryParse(e,t))throw new Bridge.global.System.FormatException.$ctor1("Bad format for Boolean value");return t.v},tryParse:function(e,t){if(t.v=!1,!Bridge.hasValue(e))return!1;if(Bridge.global.System.String.equals(Bridge.global.System.Boolean.trueString,e,5))return t.v=!0,!0;if(Bridge.global.System.String.equals(Bridge.global.System.Boolean.falseString,e,5))return t.v=!1,!0;for(var n=0,i=e.length-1;n=n&&(Bridge.global.System.Char.isWhiteSpace(e[i])||Bridge.global.System.Char.isNull(e.charCodeAt(i)));)i--;return e=e.substr(n,i-n+1),Bridge.global.System.String.equals(Bridge.global.System.Boolean.trueString,e,5)?(t.v=!0,!0):!!Bridge.global.System.String.equals(Bridge.global.System.Boolean.falseString,e,5)&&(t.v=!1,!0)}}}),Bridge.global.System.Boolean.$kind="",Bridge.Class.addExtend(Bridge.global.System.Boolean,[Bridge.global.System.IComparable$1(Bridge.global.System.Boolean),Bridge.global.System.IEquatable$1(Bridge.global.System.Boolean)]),function(){var e=function(e,t,n,i){var r=Bridge.define(e,{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{$number:!0,min:t,max:n,precision:i,$is:function(e){return"number"==typeof e&&Math.floor(e,0)===e&&e>=t&&e<=n},getDefaultValue:function(){return 0},parse:function(e,i){return Bridge.Int.parseInt(e,t,n,i)},tryParse:function(e,i,r){return Bridge.Int.tryParseInt(e,i,t,n,r)},format:function(e,t,n){return Bridge.Int.format(e,t,n,r)},equals:function(e,t){return!(!Bridge.is(e,r)||!Bridge.is(t,r))&&Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)}}});r.$kind="",Bridge.Class.addExtend(r,[Bridge.global.System.IComparable$1(r),Bridge.global.System.IEquatable$1(r)])};e("System.Byte",0,255,3),e("System.SByte",-128,127,3),e("System.Int16",-32768,32767,5),e("System.UInt16",0,65535,5),e("System.Int32",-2147483648,2147483647,10),e("System.UInt32",0,4294967295,10)}(),Bridge.define("Bridge.Int",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{$number:!0,MAX_SAFE_INTEGER:Number.MAX_SAFE_INTEGER||Math.pow(2,53)-1,MIN_SAFE_INTEGER:Number.MIN_SAFE_INTEGER||-(Math.pow(2,53)-1),$is:function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e,0)===e},getDefaultValue:function(){return 0},format:function(e,t,n,i){var r,s,a,l,o,u,d,g,c,m=(n||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),h=m.numberDecimalSeparator,f=(m.numberGroupSeparator,e instanceof Bridge.global.System.Decimal),p=e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64,S=f||p?!e.isZero()&&e.isNegative():e<0;if(!p&&(f?!e.isFinite():!isFinite(e)))return Number.NEGATIVE_INFINITY===e||f&&S?m.negativeInfinitySymbol:isNaN(e)?m.nanSymbol:m.positiveInfinitySymbol;if(t||(t="G"),r=t.match(/^([a-zA-Z])(\\d*)$/))switch(l=r[1].toUpperCase(),s=parseInt(r[2],10),l){case"D":return this.defaultFormat(e,isNaN(s)?1:s,0,0,m,!0);case"F":case"N":return isNaN(s)&&(s=m.numberDecimalDigits),this.defaultFormat(e,1,s,s,m,"F"===l);case"G":case"E":for(var y,b,I=0,T=f||p?p&&e.eq(Bridge.global.System.Int64.MinValue)?Bridge.global.System.Int64(e.value.toUnsigned()):e.abs():Math.abs(e),B=r[1],C=3;f||p?T.gte(10):T>=10;)f||p?T=T.div(10):T/=10,I++;for(;f||p?T.ne(0)&&T.lt(1):0!==T&&T<1;)f||p?T=T.mul(10):T*=10,I--;if("G"===l){if((o=isNaN(s))&&(s=f?29:p?e instanceof Bridge.global.System.Int64?19:20:i&&i.precision?i.precision:15),I>-5&&I0?I+1:1),this.defaultFormat(e,1,y,b,m,!0);B="G"===B?"E":"e",C=2,y=0,b=(s||15)-1}else y=b=isNaN(s)?6:s;return I>=0?B+=m.positiveSign:(B+=m.negativeSign,I=-I),S&&(f||p?T=T.mul(-1):T*=-1),this.defaultFormat(T,1,y,b,m)+B+this.defaultFormat(I,C,0,0,m,!0);case"P":return isNaN(s)&&(s=m.percentDecimalDigits),this.defaultFormat(100*e,1,s,s,m,!1,"percent");case"X":for(u=f?e.round().value.toHex().substr(2):p?e.toString(16):Math.round(e).toString(16),"X"===r[1]&&(u=u.toUpperCase()),s-=u.length;s-- >0;)u="0"+u;return u;case"C":return isNaN(s)&&(s=m.currencyDecimalDigits),this.defaultFormat(e,1,s,s,m,!1,"currency");case"R":return d=f||p?e.toString():""+e,"."!==h&&(d=d.replace(".",h)),d.replace("e","E")}if(-1!==t.indexOf(",.")||Bridge.global.System.String.endsWith(t,",")){for(g=0,-1===(c=t.indexOf(",."))&&(c=t.length-1);c>-1&&","===t.charAt(c);)g++,c--;f||p?e=e.div(Math.pow(1e3,g)):e/=Math.pow(1e3,g)}return-1!==t.indexOf("%")&&(f||p?e=e.mul(100):e*=100),-1!==t.indexOf("‰")&&(f||p?e=e.mul(1e3):e*=1e3),a=t.split(";"),(f||p?e.lt(0):e<0)&&a.length>1?(f||p?e=e.mul(-1):e*=-1,t=a[1]):t=a[(f||p?e.ne(0):!e)&&a.length>2?2:0],this.customFormat(e,t,m,!t.match(/^[^\\.]*[0#],[0#]/))},defaultFormat:function(e,t,n,i,r,s,a){a=a||"number";var l,o,u,d,g,c,m,h,f,p,S,y,b=(r||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),I=b[a+"GroupSizes"],T="",B=e instanceof Bridge.global.System.Decimal,C=e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64,x=B||C?!e.isZero()&&e.isNegative():e<0;if(Math.pow(10,i),y=(l=B?e.abs().toDecimalPlaces(i).toFixed():C?e.eq(Bridge.global.System.Int64.MinValue)?e.value.toUnsigned().toString():e.abs().toString():""+ +Math.abs(e).toFixed(i)).split("").every(function(e){return"0"===e||"."===e}),(o=l.indexOf("."))>0&&(g=b[a+"DecimalSeparator"]+l.substr(o+1),l=l.substr(0,o)),l.lengthi&&(g=g.substr(0,i+1))):n>0&&(g=b[a+"DecimalSeparator"]+Array(n+1).join("0")),d=I[u=0],l.length=0?(b&&this.addGroup(e.substr(0,a),m),this.addGroup(e.charAt(a),m)):a>=r-f&&this.addGroup("0",m),b=0):(S-- >0||a=e.length?"0":e.charAt(a),m),T=m.buffer,a++)):"."===s?(x||B||(T+=e.substr(0,r),x=!0),(e.length>++a||S>0)&&(C=!0,T+=n[c+"DecimalSeparator"])):","!==s&&(T+=s);return I&&!g&&(T="-"+T),T},addGroup:function(e,t){for(var n=t.buffer,i=t.sep,r=t.groupIndex,s=0,a=e.length;s1&&r--%3==1&&(n+=i);t.buffer=n,t.groupIndex=r},parseFloat:function(e,t){var n={};return Bridge.Int.tryParseFloat(e,t,n,!1),n.v},tryParseFloat:function(e,t,n,i){var r,s,a,l;if(n.v=0,null==i&&(i=!0),null==e){if(i)return!1;throw new Bridge.global.System.ArgumentNullException.$ctor1("s")}e=e.trim();var o=(t||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.NumberFormatInfo),u=o.numberDecimalSeparator,d=o.numberGroupSeparator,g="Input string was not in a correct format.",c=e.indexOf(u),m=d?e.indexOf(d):-1;if(c>-1&&(c-1&&c-1)){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(g)}if("."!==u&&"."!==d&&e.indexOf(".")>-1){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(g)}if(m>-1){for(r="",a=0;a1){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(g)}}if(l=parseFloat(e.replace(u,".")),isNaN(l)){if(i)return!1;throw new Bridge.global.System.FormatException.$ctor1(g)}return n.v=l,!0},parseInt:function(e,t,n,i){if(i=i||10,null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(i<=10&&!/^[+-]?[0-9]+$/.test(e)||16==i&&!/^[+-]?[0-9A-F]+$/gi.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var r=parseInt(e,i);if(isNaN(r))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");if(rn)throw new Bridge.global.System.OverflowException;return r},tryParseInt:function(e,t,n,i,r){return t.v=0,!((r=r||10)<=10&&!/^[+-]?[0-9]+$/.test(e)||16==r&&!/^[+-]?[0-9A-F]+$/gi.test(e)||(t.v=parseInt(e,r),(t.vi)&&(t.v=0,1)))},isInfinite:function(e){return e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY},trunc:function(e){return Bridge.isNumber(e)?e>0?Math.floor(e):Math.ceil(e):Bridge.Int.isInfinite(e)?e:null},div:function(e,t){if(null==e||null==t)return null;if(0===t)throw new Bridge.global.System.DivideByZeroException;return this.trunc(e/t)},mod:function(e,t){if(null==e||null==t)return null;if(0===t)throw new Bridge.global.System.DivideByZeroException;return e%t},check:function(e,t){if(Bridge.global.System.Int64.is64Bit(e))return Bridge.global.System.Int64.check(e,t);if(e instanceof Bridge.global.System.Decimal)return Bridge.global.System.Decimal.toInt(e,t);if(Bridge.isNumber(e)){if(Bridge.global.System.Int64.is64BitType(t)){if(t===Bridge.global.System.UInt64&&e<0)throw new Bridge.global.System.OverflowException;return t===Bridge.global.System.Int64?Bridge.global.System.Int64(e):Bridge.global.System.UInt64(e)}if(!t.$is(e))throw new Bridge.global.System.OverflowException}return Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.is64BitType(t)?t.MinValue:t.min:e},sxb:function(e){return Bridge.isNumber(e)?e|(128&e?4294967040:0):Bridge.Int.isInfinite(e)?Bridge.global.System.SByte.min:null},sxs:function(e){return Bridge.isNumber(e)?e|(32768&e?4294901760:0):Bridge.Int.isInfinite(e)?Bridge.global.System.Int16.min:null},clip8:function(e){return Bridge.isNumber(e)?Bridge.Int.sxb(255&e):Bridge.Int.isInfinite(e)?Bridge.global.System.SByte.min:null},clipu8:function(e){return Bridge.isNumber(e)?255&e:Bridge.Int.isInfinite(e)?Bridge.global.System.Byte.min:null},clip16:function(e){return Bridge.isNumber(e)?Bridge.Int.sxs(65535&e):Bridge.Int.isInfinite(e)?Bridge.global.System.Int16.min:null},clipu16:function(e){return Bridge.isNumber(e)?65535&e:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt16.min:null},clip32:function(e){return Bridge.isNumber(e)?0|e:Bridge.Int.isInfinite(e)?Bridge.global.System.Int32.min:null},clipu32:function(e){return Bridge.isNumber(e)?e>>>0:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt32.min:null},clip64:function(e){return Bridge.isNumber(e)?Bridge.global.System.Int64(Bridge.Int.trunc(e)):Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.MinValue:null},clipu64:function(e){return Bridge.isNumber(e)?Bridge.global.System.UInt64(Bridge.Int.trunc(e)):Bridge.Int.isInfinite(e)?Bridge.global.System.UInt64.MinValue:null},sign:function(e){return Bridge.isNumber(e)?0===e?0:e<0?-1:1:null},$mul:Math.imul||function(e,t){var n=65535&e,i=65535&t;return n*i+((e>>>16&65535)*i+n*(t>>>16&65535)<<16>>>0)|0},mul:function(e,t,n){return null==e||null==t?null:(n&&Bridge.Int.check(e*t,Bridge.global.System.Int32),Bridge.Int.$mul(e,t))},umul:function(e,t,n){return null==e||null==t?null:(n&&Bridge.Int.check(e*t,Bridge.global.System.UInt32),Bridge.Int.$mul(e,t)>>>0)}}}),Bridge.Int.$kind="",Bridge.Class.addExtend(Bridge.Int,[Bridge.global.System.IComparable$1(Bridge.Int),Bridge.global.System.IEquatable$1(Bridge.Int)]),Bridge.define("System.Double",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{min:-Number.MAX_VALUE,max:Number.MAX_VALUE,precision:15,$number:!0,$is:function(e){return"number"==typeof e},getDefaultValue:function(){return 0},parse:function(e,t){return Bridge.Int.parseFloat(e,t)},tryParse:function(e,t,n){return Bridge.Int.tryParseFloat(e,t,n)},format:function(e,t,n){return Bridge.Int.format(e,t||"G",n,Bridge.global.System.Double)},equals:function(e,t){return!!(Bridge.is(e,Bridge.global.System.Double)&&Bridge.is(t,Bridge.global.System.Double)&&(e=Bridge.unbox(e,!0),t=Bridge.unbox(t,!0),isNaN(e)&&isNaN(t)||e===t))},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:function(e){var t=Bridge.unbox(e,!0);return 0===t?0:t===Number.POSITIVE_INFINITY?2146435072:t===Number.NEGATIVE_INFINITY?4293918720:Bridge.getHashCode(t.toExponential())}}}),Bridge.global.System.Double.$kind="",Bridge.Class.addExtend(Bridge.global.System.Double,[Bridge.global.System.IComparable$1(Bridge.global.System.Double),Bridge.global.System.IEquatable$1(Bridge.global.System.Double)]),Bridge.define("System.Single",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.IFormattable],statics:{min:-3.4028234663852886e38,max:3.4028234663852886e38,precision:7,$number:!0,$is:Bridge.global.System.Double.$is,getDefaultValue:Bridge.global.System.Double.getDefaultValue,parse:Bridge.global.System.Double.parse,tryParse:Bridge.global.System.Double.tryParse,format:function(e,t,n){return Bridge.Int.format(e,t||"G",n,Bridge.global.System.Single)},equals:function(e,t){return!!(Bridge.is(e,Bridge.global.System.Single)&&Bridge.is(t,Bridge.global.System.Single)&&(e=Bridge.unbox(e,!0),t=Bridge.unbox(t,!0),isNaN(e)&&isNaN(t)||e===t))},equalsT:function(e,t){return Bridge.unbox(e,!0)===Bridge.unbox(t,!0)},getHashCode:Bridge.global.System.Double.getHashCode}}),Bridge.global.System.Single.$kind="",Bridge.Class.addExtend(Bridge.global.System.Single,[Bridge.global.System.IComparable$1(Bridge.global.System.Single),Bridge.global.System.IEquatable$1(Bridge.global.System.Single)]),function(e){function t(e,t,n){this.low=0|e,this.high=0|t,this.unsigned=!!n}function n(e){return!0===(e&&e.__isLong__)}function i(e,t){var n,i;if(t){if((i=0<=(e>>>=0)&&256>e)&&(n=u[e]))return n;n=s(e,0>(0|e)?-1:0,!0),i&&(u[e]=n)}else{if((i=-128<=(e|=0)&&128>e)&&(n=o[e]))return n;n=s(e,0>e?-1:0,!1),i&&(o[e]=n)}return n}function r(e,t){if(isNaN(e)||!isFinite(e))return t?g:T;if(t){if(0>e)return g;if(e>=y)return p}else{if(e<=-b)return S;if(e+1>=b)return f}return 0>e?r(-e,t).neg():s(e%4294967296|0,e/4294967296|0,t)}function s(e,n,i){return new t(e,n,i)}function a(e,t,n){var i,s,l,o,u;if(0===e.length)throw Error("empty string");if("NaN"===e||"Infinity"===e||"+Infinity"===e||"-Infinity"===e)return T;if("number"==typeof t?(n=t,t=!1):t=!!t,2>(n=n||10)||36o?(o=r(d(n,o)),s=s.mul(o).add(r(u))):s=(s=s.mul(i)).add(r(u));return s.unsigned=t,s}function l(e){return e instanceof t?e:"number"==typeof e?r(e):"string"==typeof e?a(e):s(e.low,e.high,e.unsigned)}var o,u,d,g,c,m,h,f,p,S;e.Bridge.$Long=t,t.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1}),t.isLong=n,o={},u={},t.fromInt=i,t.fromNumber=r,t.fromBits=s,d=Math.pow,t.fromString=a,t.fromValue=l;var y=0x10000000000000000,b=y/2,I=i(16777216),T=i(0);t.ZERO=T,g=i(0,!0),t.UZERO=g,c=i(1),t.ONE=c,m=i(1,!0),t.UONE=m,h=i(-1),t.NEG_ONE=h,f=s(-1,2147483647,!1),t.MAX_VALUE=f,p=s(-1,-1,!0),t.MAX_UNSIGNED_VALUE=p,S=s(0,-2147483648,!1),t.MIN_VALUE=S,(e=t.prototype).toInt=function(){return this.unsigned?this.low>>>0:this.low},e.toNumber=function(){return this.unsigned?4294967296*(this.high>>>0)+(this.low>>>0):4294967296*this.high+(this.low>>>0)},e.toString=function(e){if(2>(e=e||10)||36>>0).toString(e);if((t=s).isZero())return a+i;for(;6>a.length;)a="0"+a;i=""+a+i}},e.getHighBits=function(){return this.high},e.getHighBitsUnsigned=function(){return this.high>>>0},e.getLowBits=function(){return this.low},e.getLowBitsUnsigned=function(){return this.low>>>0},e.getNumBitsAbs=function(){if(this.isNegative())return this.eq(S)?64:this.neg().getNumBitsAbs();for(var e=0!=this.high?this.high:this.low,t=31;0this.high},e.isPositive=function(){return this.unsigned||0<=this.high},e.isOdd=function(){return 1==(1&this.low)},e.isEven=function(){return 0==(1&this.low)},e.equals=function(e){return n(e)||(e=l(e)),(this.unsigned===e.unsigned||1!=this.high>>>31||1!=e.high>>>31)&&this.high===e.high&&this.low===e.low},e.eq=e.equals,e.notEquals=function(e){return!this.eq(e)},e.neq=e.notEquals,e.lessThan=function(e){return 0>this.comp(e)},e.lt=e.lessThan,e.lessThanOrEqual=function(e){return 0>=this.comp(e)},e.lte=e.lessThanOrEqual,e.greaterThan=function(e){return 0>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1},e.comp=e.compare,e.negate=function(){return!this.unsigned&&this.eq(S)?S:this.not().add(c)},e.neg=e.negate,e.add=function(e){n(e)||(e=l(e));var t,i=this.high>>>16,r=65535&this.high,a=this.low>>>16,o=e.high>>>16,u=65535&e.high,d=e.low>>>16;return e=0+((t=(65535&this.low)+(65535&e.low)+0)>>>16),a=0+((e+=a+d)>>>16),s((65535&e)<<16|65535&t,(r=(r=0+((a+=r+u)>>>16))+(i+o)&65535)<<16|65535&a,this.unsigned)},e.subtract=function(e){return n(e)||(e=l(e)),this.add(e.neg())},e.sub=e.subtract,e.multiply=function(e){var t,i,a,o;if(this.isZero()||(n(e)||(e=l(e)),e.isZero()))return T;if(this.eq(S))return e.isOdd()?S:T;if(e.eq(S))return this.isOdd()?S:T;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(I)&&e.lt(I))return r(this.toNumber()*e.toNumber(),this.unsigned);var u=this.high>>>16,d=65535&this.high,g=this.low>>>16,c=65535&this.low,m=e.high>>>16,h=65535&e.high,f=e.low>>>16;return a=0+((o=0+c*(e=65535&e.low))>>>16),i=0+((a+=g*e)>>>16),i+=(a=(65535&a)+c*f)>>>16,t=0+((i+=d*e)>>>16),t+=(i=(65535&i)+g*f)>>>16,i&=65535,s((a&=65535)<<16|65535&o,(t=(t+=(i+=c*h)>>>16)+(u*e+d*f+g*h+c*m)&65535)<<16|(i&=65535),this.unsigned)},e.mul=e.multiply,e.divide=function(e){var t,i,s;if(n(e)||(e=l(e)),e.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?g:T;if(this.unsigned)e.unsigned||(e=e.toUnsigned());else{if(this.eq(S))return e.eq(c)||e.eq(h)?S:e.eq(S)?c:(t=this.shr(1).div(e).shl(1)).eq(T)?e.isNegative()?c:h:(i=this.sub(e.mul(t)),t.add(i.div(e)));if(e.eq(S))return this.unsigned?g:T;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg()}if(this.unsigned){if(e.gt(this))return g;if(e.gt(this.shru(1)))return m;s=g}else s=T;for(i=this;i.gte(e);){t=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var a=48>=(a=Math.ceil(Math.log(t)/Math.LN2))?1:d(2,a-48),o=r(t),u=o.mul(e);u.isNegative()||u.gt(i);)u=(o=r(t-=a,this.unsigned)).mul(e);o.isZero()&&(o=c),s=s.add(o),i=i.sub(u)}return s},e.div=e.divide,e.modulo=function(e){return n(e)||(e=l(e)),this.sub(this.div(e).mul(e))},e.mod=e.modulo,e.not=function(){return s(~this.low,~this.high,this.unsigned)},e.and=function(e){return n(e)||(e=l(e)),s(this.low&e.low,this.high&e.high,this.unsigned)},e.or=function(e){return n(e)||(e=l(e)),s(this.low|e.low,this.high|e.high,this.unsigned)},e.xor=function(e){return n(e)||(e=l(e)),s(this.low^e.low,this.high^e.high,this.unsigned)},e.shiftLeft=function(e){return n(e)&&(e=e.toInt()),0==(e&=63)?this:32>e?s(this.low<>>32-e,this.unsigned):s(0,this.low<e?s(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):s(this.high>>e-32,0<=this.high?0:-1,this.unsigned)},e.shr=e.shiftRight,e.shiftRightUnsigned=function(e){if(n(e)&&(e=e.toInt()),0==(e&=63))return this;var t=this.high;return 32>e?s(this.low>>>e|t<<32-e,t>>>e,this.unsigned):s(32===e?t:t>>>e-32,0,this.unsigned)},e.shru=e.shiftRightUnsigned,e.toSigned=function(){return this.unsigned?s(this.low,this.high,!1):this},e.toUnsigned=function(){return this.unsigned?this:s(this.low,this.high,!0)}}(Bridge.global),Bridge.global.System.Int64=function(e){if(this.constructor!==Bridge.global.System.Int64)return new Bridge.global.System.Int64(e);Bridge.hasValue(e)||(e=0),this.T=Bridge.global.System.Int64,this.unsigned=!1,this.value=Bridge.global.System.Int64.getValue(e)},Bridge.global.System.Int64.$number=!0,Bridge.global.System.Int64.TWO_PWR_16_DBL=65536,Bridge.global.System.Int64.TWO_PWR_32_DBL=Bridge.global.System.Int64.TWO_PWR_16_DBL*Bridge.global.System.Int64.TWO_PWR_16_DBL,Bridge.global.System.Int64.TWO_PWR_64_DBL=Bridge.global.System.Int64.TWO_PWR_32_DBL*Bridge.global.System.Int64.TWO_PWR_32_DBL,Bridge.global.System.Int64.TWO_PWR_63_DBL=Bridge.global.System.Int64.TWO_PWR_64_DBL/2,Bridge.global.System.Int64.$$name="System.Int64",Bridge.global.System.Int64.prototype.$$name="System.Int64",Bridge.global.System.Int64.$kind="struct",Bridge.global.System.Int64.prototype.$kind="struct",Bridge.global.System.Int64.$$inherits=[],Bridge.Class.addExtend(Bridge.global.System.Int64,[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.IComparable$1(Bridge.global.System.Int64),Bridge.global.System.IEquatable$1(Bridge.global.System.Int64)]),Bridge.global.System.Int64.$is=function(e){return e instanceof Bridge.global.System.Int64},Bridge.global.System.Int64.is64Bit=function(e){return e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64},Bridge.global.System.Int64.is64BitType=function(e){return e===Bridge.global.System.Int64||e===Bridge.global.System.UInt64},Bridge.global.System.Int64.getDefaultValue=function(){return Bridge.global.System.Int64.Zero},Bridge.global.System.Int64.getValue=function(e){return Bridge.hasValue(e)?e instanceof Bridge.$Long?e:e instanceof Bridge.global.System.Int64?e.value:e instanceof Bridge.global.System.UInt64?e.value.toSigned():Bridge.isArray(e)?new Bridge.$Long(e[0],e[1]):Bridge.isString(e)?Bridge.$Long.fromString(e):Bridge.isNumber(e)?e+1>=Bridge.global.System.Int64.TWO_PWR_63_DBL?new Bridge.global.System.UInt64(e).value.toSigned():Bridge.$Long.fromNumber(e):e instanceof Bridge.global.System.Decimal?Bridge.$Long.fromString(e.toString()):Bridge.$Long.fromValue(e):null},Bridge.global.System.Int64.create=function(e){return Bridge.hasValue(e)?e instanceof Bridge.global.System.Int64?e:new Bridge.global.System.Int64(e):null},Bridge.global.System.Int64.lift=function(e){return Bridge.hasValue(e)?Bridge.global.System.Int64.create(e):null},Bridge.global.System.Int64.toNumber=function(e){return e?e.toNumber():null},Bridge.global.System.Int64.prototype.toNumberDivided=function(e){var t=this.div(e),n=this.mod(e).toNumber()/e;return t.toNumber()+n},Bridge.global.System.Int64.prototype.toJSON=function(){return this.gt(Bridge.Int.MAX_SAFE_INTEGER)||this.lt(Bridge.Int.MIN_SAFE_INTEGER)?this.toString():this.toNumber()},Bridge.global.System.Int64.prototype.toString=function(e,t){return e||t?Bridge.isNumber(e)&&!t?this.value.toString(e):Bridge.Int.format(this,e,t):this.value.toString()},Bridge.global.System.Int64.prototype.format=function(e,t){return Bridge.Int.format(this,e,t)},Bridge.global.System.Int64.prototype.isNegative=function(){return this.value.isNegative()},Bridge.global.System.Int64.prototype.abs=function(){if(this.T===Bridge.global.System.Int64&&this.eq(Bridge.global.System.Int64.MinValue))throw new Bridge.global.System.OverflowException;return new this.T(this.value.isNegative()?this.value.neg():this.value)},Bridge.global.System.Int64.prototype.compareTo=function(e){return this.value.compare(this.T.getValue(e))},Bridge.global.System.Int64.prototype.add=function(e,t){var n=this.T.getValue(e),i=new this.T(this.value.add(n));if(t){var r=this.value.isNegative(),s=n.isNegative(),a=i.value.isNegative();if(r&&s&&!a||!r&&!s&&a||this.T===Bridge.global.System.UInt64&&i.lt(Bridge.global.System.UInt64.max(this,n)))throw new Bridge.global.System.OverflowException}return i},Bridge.global.System.Int64.prototype.sub=function(e,t){var n=this.T.getValue(e),i=new this.T(this.value.sub(n));if(t){var r=this.value.isNegative(),s=n.isNegative(),a=i.value.isNegative();if(r&&!s&&!a||!r&&s&&a||this.T===Bridge.global.System.UInt64&&this.value.lt(n))throw new Bridge.global.System.OverflowException}return i},Bridge.global.System.Int64.prototype.isZero=function(){return this.value.isZero()},Bridge.global.System.Int64.prototype.mul=function(e,t){var n,i=this.T.getValue(e),r=new this.T(this.value.mul(i));if(t){var s=this.sign(),a=i.isZero()?0:i.isNegative()?-1:1,l=r.sign();if(this.T===Bridge.global.System.Int64){if(this.eq(Bridge.global.System.Int64.MinValue)||this.eq(Bridge.global.System.Int64.MaxValue)){if(i.neq(1)&&i.neq(0))throw new Bridge.global.System.OverflowException;return r}if(i.eq(Bridge.$Long.MIN_VALUE)||i.eq(Bridge.$Long.MAX_VALUE)){if(this.neq(1)&&this.neq(0))throw new Bridge.global.System.OverflowException;return r}if(-1===s&&-1===a&&1!==l||1===s&&1===a&&1!==l||-1===s&&1===a&&-1!==l||1===s&&-1===a&&-1!==l)throw new Bridge.global.System.OverflowException;if((n=r.abs()).lt(this.abs())||n.lt(Bridge.global.System.Int64(i).abs()))throw new Bridge.global.System.OverflowException}else{if(this.eq(Bridge.global.System.UInt64.MaxValue)){if(i.neq(1)&&i.neq(0))throw new Bridge.global.System.OverflowException;return r}if(i.eq(Bridge.$Long.MAX_UNSIGNED_VALUE)){if(this.neq(1)&&this.neq(0))throw new Bridge.global.System.OverflowException;return r}if((n=r.abs()).lt(this.abs())||n.lt(Bridge.global.System.Int64(i).abs()))throw new Bridge.global.System.OverflowException}}return r},Bridge.global.System.Int64.prototype.div=function(e){return new this.T(this.value.div(this.T.getValue(e)))},Bridge.global.System.Int64.prototype.mod=function(e){return new this.T(this.value.mod(this.T.getValue(e)))},Bridge.global.System.Int64.prototype.neg=function(e){if(e&&this.T===Bridge.global.System.Int64&&this.eq(Bridge.global.System.Int64.MinValue))throw new Bridge.global.System.OverflowException;return new this.T(this.value.neg())},Bridge.global.System.Int64.prototype.inc=function(e){return this.add(1,e)},Bridge.global.System.Int64.prototype.dec=function(e){return this.sub(1,e)},Bridge.global.System.Int64.prototype.sign=function(){return this.value.isZero()?0:this.value.isNegative()?-1:1},Bridge.global.System.Int64.prototype.clone=function(){return new this.T(this)},Bridge.global.System.Int64.prototype.ne=function(e){return this.value.neq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.neq=function(e){return this.value.neq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.eq=function(e){return this.value.eq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.lt=function(e){return this.value.lt(this.T.getValue(e))},Bridge.global.System.Int64.prototype.lte=function(e){return this.value.lte(this.T.getValue(e))},Bridge.global.System.Int64.prototype.gt=function(e){return this.value.gt(this.T.getValue(e))},Bridge.global.System.Int64.prototype.gte=function(e){return this.value.gte(this.T.getValue(e))},Bridge.global.System.Int64.prototype.equals=function(e){return this.value.eq(this.T.getValue(e))},Bridge.global.System.Int64.prototype.equalsT=function(e){return this.equals(e)},Bridge.global.System.Int64.prototype.getHashCode=function(){return 397*(397*this.sign()+this.value.high|0)+this.value.low|0},Bridge.global.System.Int64.prototype.toNumber=function(){return this.value.toNumber()},Bridge.global.System.Int64.parse=function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(!/^[+-]?[0-9]+$/.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var t=new Bridge.global.System.Int64(e);if(Bridge.global.System.String.trimStartZeros(e)!==t.toString())throw new Bridge.global.System.OverflowException;return t},Bridge.global.System.Int64.tryParse=function(e,t){try{return null!=e&&/^[+-]?[0-9]+$/.test(e)?(t.v=new Bridge.global.System.Int64(e),Bridge.global.System.String.trimStartZeros(e)===t.v.toString()||(t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1)):(t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1)}catch(e){return t.v=Bridge.global.System.Int64(Bridge.$Long.ZERO),!1}},Bridge.global.System.Int64.divRem=function(e,t,n){e=Bridge.global.System.Int64(e),t=Bridge.global.System.Int64(t);var i=e.mod(t);return n.v=i,e.sub(i).div(t)},Bridge.global.System.Int64.min=function(){for(var e,t=[],n=0,i=arguments.length;n>>0:Bridge.Int.isInfinite(e)?Bridge.global.System.UInt32.min:null},Bridge.global.System.Int64.clip64=function(e){return e?new Bridge.global.System.Int64(e.value.toSigned()):Bridge.Int.isInfinite(e)?Bridge.global.System.Int64.MinValue:null},Bridge.global.System.Int64.clipu64=function(e){return e?new Bridge.global.System.UInt64(e.value.toUnsigned()):Bridge.Int.isInfinite(e)?Bridge.global.System.UInt64.MinValue:null},Bridge.global.System.Int64.Zero=Bridge.global.System.Int64(Bridge.$Long.ZERO),Bridge.global.System.Int64.MinValue=Bridge.global.System.Int64(Bridge.$Long.MIN_VALUE),Bridge.global.System.Int64.MaxValue=Bridge.global.System.Int64(Bridge.$Long.MAX_VALUE),Bridge.global.System.Int64.precision=19,Bridge.global.System.UInt64=function(e){if(this.constructor!==Bridge.global.System.UInt64)return new Bridge.global.System.UInt64(e);Bridge.hasValue(e)||(e=0),this.T=Bridge.global.System.UInt64,this.unsigned=!0,this.value=Bridge.global.System.UInt64.getValue(e,!0)},Bridge.global.System.UInt64.$number=!0,Bridge.global.System.UInt64.$$name="System.UInt64",Bridge.global.System.UInt64.prototype.$$name="System.UInt64",Bridge.global.System.UInt64.$kind="struct",Bridge.global.System.UInt64.prototype.$kind="struct",Bridge.global.System.UInt64.$$inherits=[],Bridge.Class.addExtend(Bridge.global.System.UInt64,[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.IComparable$1(Bridge.global.System.UInt64),Bridge.global.System.IEquatable$1(Bridge.global.System.UInt64)]),Bridge.global.System.UInt64.$is=function(e){return e instanceof Bridge.global.System.UInt64},Bridge.global.System.UInt64.getDefaultValue=function(){return Bridge.global.System.UInt64.Zero},Bridge.global.System.UInt64.getValue=function(e){return Bridge.hasValue(e)?e instanceof Bridge.$Long?e:e instanceof Bridge.global.System.UInt64?e.value:e instanceof Bridge.global.System.Int64?e.value.toUnsigned():Bridge.isArray(e)?new Bridge.$Long(e[0],e[1],!0):Bridge.isString(e)?Bridge.$Long.fromString(e,!0):Bridge.isNumber(e)?e<0?new Bridge.global.System.Int64(e).value.toUnsigned():Bridge.$Long.fromNumber(e,!0):e instanceof Bridge.global.System.Decimal?Bridge.$Long.fromString(e.toString(),!0):Bridge.$Long.fromValue(e):null},Bridge.global.System.UInt64.create=function(e){return Bridge.hasValue(e)?e instanceof Bridge.global.System.UInt64?e:new Bridge.global.System.UInt64(e):null},Bridge.global.System.UInt64.lift=function(e){return Bridge.hasValue(e)?Bridge.global.System.UInt64.create(e):null},Bridge.global.System.UInt64.prototype.toString=Bridge.global.System.Int64.prototype.toString,Bridge.global.System.UInt64.prototype.format=Bridge.global.System.Int64.prototype.format,Bridge.global.System.UInt64.prototype.isNegative=Bridge.global.System.Int64.prototype.isNegative,Bridge.global.System.UInt64.prototype.abs=Bridge.global.System.Int64.prototype.abs,Bridge.global.System.UInt64.prototype.compareTo=Bridge.global.System.Int64.prototype.compareTo,Bridge.global.System.UInt64.prototype.add=Bridge.global.System.Int64.prototype.add,Bridge.global.System.UInt64.prototype.sub=Bridge.global.System.Int64.prototype.sub,Bridge.global.System.UInt64.prototype.isZero=Bridge.global.System.Int64.prototype.isZero,Bridge.global.System.UInt64.prototype.mul=Bridge.global.System.Int64.prototype.mul,Bridge.global.System.UInt64.prototype.div=Bridge.global.System.Int64.prototype.div,Bridge.global.System.UInt64.prototype.toNumberDivided=Bridge.global.System.Int64.prototype.toNumberDivided,Bridge.global.System.UInt64.prototype.mod=Bridge.global.System.Int64.prototype.mod,Bridge.global.System.UInt64.prototype.neg=Bridge.global.System.Int64.prototype.neg,Bridge.global.System.UInt64.prototype.inc=Bridge.global.System.Int64.prototype.inc,Bridge.global.System.UInt64.prototype.dec=Bridge.global.System.Int64.prototype.dec,Bridge.global.System.UInt64.prototype.sign=Bridge.global.System.Int64.prototype.sign,Bridge.global.System.UInt64.prototype.clone=Bridge.global.System.Int64.prototype.clone,Bridge.global.System.UInt64.prototype.ne=Bridge.global.System.Int64.prototype.ne,Bridge.global.System.UInt64.prototype.neq=Bridge.global.System.Int64.prototype.neq,Bridge.global.System.UInt64.prototype.eq=Bridge.global.System.Int64.prototype.eq,Bridge.global.System.UInt64.prototype.lt=Bridge.global.System.Int64.prototype.lt,Bridge.global.System.UInt64.prototype.lte=Bridge.global.System.Int64.prototype.lte,Bridge.global.System.UInt64.prototype.gt=Bridge.global.System.Int64.prototype.gt,Bridge.global.System.UInt64.prototype.gte=Bridge.global.System.Int64.prototype.gte,Bridge.global.System.UInt64.prototype.equals=Bridge.global.System.Int64.prototype.equals,Bridge.global.System.UInt64.prototype.equalsT=Bridge.global.System.Int64.prototype.equalsT,Bridge.global.System.UInt64.prototype.getHashCode=Bridge.global.System.Int64.prototype.getHashCode,Bridge.global.System.UInt64.prototype.toNumber=Bridge.global.System.Int64.prototype.toNumber,Bridge.global.System.UInt64.parse=function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("str");if(!/^[+-]?[0-9]+$/.test(e))throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");var t=new Bridge.global.System.UInt64(e);if(t.value.isNegative())throw new Bridge.global.System.OverflowException;if(Bridge.global.System.String.trimStartZeros(e)!==t.toString())throw new Bridge.global.System.OverflowException;return t},Bridge.global.System.UInt64.tryParse=function(e,t){try{return null!=e&&/^[+-]?[0-9]+$/.test(e)?(t.v=new Bridge.global.System.UInt64(e),t.v.isNegative()?(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1):Bridge.global.System.String.trimStartZeros(e)===t.v.toString()||(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1)):(t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1)}catch(e){return t.v=Bridge.global.System.UInt64(Bridge.$Long.UZERO),!1}},Bridge.global.System.UInt64.min=function(){for(var e,t=[],n=0,i=arguments.length;n0){for(s+=a,t=1;r>t;t++)i=e[t]+"",(n=De-i.length)&&(s+=f(n)),s+=i;a=e[t],(n=De-(i=a+"").length)&&(s+=f(n))}else if(0===a)return"0";for(;a%10==0;)a/=10;return s+a}function a(e,t,n){if(e!==~~e||t>e||e>n)throw Error(Te+e)}function l(e,t,n,i){for(var r,s,a,l=e[0];l>=10;l/=10)--t;return--t<0?(t+=De,r=0):(r=Math.ceil((t+1)/De),t%=De),l=_e(10,De-t),a=e[r]%l|0,null==i?3>t?(0==t?a=a/100|0:1==t&&(a=a/10|0),s=4>n&&99999==a||n>3&&49999==a||5e4==a||0==a):s=(4>n&&a+1==l||n>3&&a+1==l/2)&&(e[r+1]/l/100|0)==_e(10,t-2)-1||(a==l/2||0==a)&&0==(e[r+1]/l/100|0):4>t?(0==t?a=a/1e3|0:1==t?a=a/100|0:2==t&&(a=a/10|0),s=(i||4>n)&&9999==a||!i&&n>3&&4999==a):s=((i||4>n)&&a+1==l||!i&&n>3&&a+1==l/2)&&(e[r+1]/l/1e3|0)==_e(10,t-3)-1,s}function o(e,t,n){for(var i,r,s=[0],a=0,l=e.length;l>a;){for(r=s.length;r--;)s[r]*=t;for(s[0]+=fe.indexOf(e.charAt(a++)),i=0;in-1&&(void 0===s[i+1]&&(s[i+1]=0),s[i+1]+=s[i]/n|0,s[i]%=n)}return s.reverse()}function u(e,t,n,i){var r,s,a,l,o,u,d,g,c,m=e.constructor;e:if(null!=t){if(!(g=e.d))return e;for(r=1,l=g[0];l>=10;l/=10)r++;if(0>(s=t-r))s+=De,a=t,o=(d=g[c=0])/_e(10,r-a-1)%10|0;else if((c=Math.ceil((s+1)/De))>=(l=g.length)){if(!i)break e;for(;l++<=c;)g.push(0);d=o=0,r=1,a=(s%=De)-De+1}else{for(d=l=g[c],r=1;l>=10;l/=10)r++;o=0>(a=(s%=De)-De+r)?0:d/_e(10,r-a-1)%10|0}if(i=i||0>t||void 0!==g[c+1]||(0>a?d:d%_e(10,r-a-1)),u=4>n?(o||i)&&(0==n||n==(e.s<0?3:2)):o>5||5==o&&(4==n||i||6==n&&(s>0?a>0?d/_e(10,r-a):0:g[c-1])%10&1||n==(e.s<0?8:7)),1>t||!g[0])return g.length=0,u?(t-=e.e+1,g[0]=_e(10,(De-t%De)%De),e.e=-t||0):g[0]=e.e=0,e;if(0==s?(g.length=c,l=1,c--):(g.length=c+1,l=_e(10,De-s),g[c]=a>0?(d/_e(10,r-a)%_e(10,a)|0)*l:0),u)for(;;){if(0==c){for(s=1,a=g[0];a>=10;a/=10)s++;for(a=g[0]+=l,l=1;a>=10;a/=10)l++;s!=l&&(e.e++,g[0]==Ae&&(g[0]=1));break}if(g[c]+=l,g[c]!=Ae)break;g[c--]=0,l=1}for(s=g.length;0===g[--s];)g.pop()}return be&&(e.e>m.maxE?(e.d=null,e.e=NaN):e.e0?a=a.charAt(0)+"."+a.slice(1)+f(i):l>1&&(a=a.charAt(0)+"."+a.slice(1)),a=a+(e.e<0?"e":"e+")+e.e):0>s?(a="0."+f(-s-1)+a,n&&(i=n-l)>0&&(a+=f(i))):s>=l?(a+=f(s+1-l),n&&(i=n-s-1)>0&&(a=a+"."+f(i))):((i=s+1)0&&(s+1===l&&(a+="."),a+=f(i))),a}function g(e,t){for(var n=1,i=e[0];i>=10;i/=10)n++;return n+t*De-1}function c(e,t,n){if(t>Ee)throw be=!0,n&&(e.precision=n),Error(Be);return u(new e(pe),t,1,!0)}function m(e,t,n){if(t>$e)throw Error(Be);return u(new e(Se),t,n,!0)}function h(e){var t=e.length-1,n=t*De+1;if(t=e[t]){for(;t%10==0;t/=10)n--;for(t=e[0];t>=10;t/=10)n++}return n}function f(e){for(var t="";e--;)t+="0";return t}function p(e,t,n,i){var r,s=new e(1),a=Math.ceil(i/De+4);for(be=!1;;){if(n%2&&w((s=s.times(t)).d,a)&&(r=!0),0===(n=xe(n/2))){n=s.d.length-1,r&&0===s.d[n]&&++s.d[n];break}w((t=t.times(t)).d,a)}return be=!0,s}function S(e){return 1&e.d[e.d.length-1]}function y(e,t,n){for(var i,r=new e(t[0]),s=0;++s17)return new f(e.d?e.d[0]?e.s<0?0:1/0:1:e.s?e.s<0?0:e:NaN);for(null==t?(be=!1,g=S):g=t,d=new f(.03125);e.e>-2;)e=e.times(d),h+=5;for(g+=i=Math.log(_e(2,h))/Math.LN10*2+5|0,n=a=o=new f(1),f.precision=g;;){if(a=u(a.times(e),g,1),n=n.times(++m),r((d=o.plus(ce(a,n,g,1))).d).slice(0,g)===r(o.d).slice(0,g)){for(s=h;s--;)o=u(o.times(o),g,1);if(null!=t)return f.precision=S,o;if(!(3>c&&l(o.d,g-i,p,c)))return u(o,f.precision=S,p,be=!0);f.precision=g+=10,n=a=d=new f(1),m=0,c++}o=d}}function I(e,t){var n,i,s,a,o,d,g,m,h,f,p,S=1,y=e,b=y.d,T=y.constructor,B=T.rounding,C=T.precision;if(y.s<0||!b||!b[0]||!y.e&&1==b[0]&&1==b.length)return new T(b&&!b[0]?-1/0:1!=y.s?NaN:b?0:y);if(null==t?(be=!1,h=C):h=t,T.precision=h+=10,i=(n=r(b)).charAt(0),!(Math.abs(a=y.e)<15e14))return m=c(T,h+2,C).times(a+""),y=I(new T(i+"."+n.slice(1)),h-10).plus(m),T.precision=C,null==t?u(y,C,B,be=!0):y;for(;7>i&&1!=i||1==i&&n.charAt(1)>3;)i=(n=r((y=y.times(e)).d)).charAt(0),S++;for(a=y.e,i>1?(y=new T("0."+n),a++):y=new T(i+"."+n.slice(1)),f=y,g=o=y=ce(y.minus(1),y.plus(1),h,1),p=u(y.times(y),h,1),s=3;;){if(o=u(o.times(p),h,1),r((m=g.plus(ce(o,new T(s),h,1))).d).slice(0,h)===r(g.d).slice(0,h)){if(g=g.times(2),0!==a&&(g=g.plus(c(T,h+2,C).times(a+""))),g=ce(g,new T(S),h,1),null!=t)return T.precision=C,g;if(!l(g.d,h-10,B,d))return u(g,T.precision=C,B,be=!0);T.precision=h+=10,m=o=y=ce(f.minus(1),f.plus(1),h,1),p=u(y.times(y),h,1),s=d=1}g=m,s+=2}}function T(e){return String(e.s*e.s/0)}function B(e,t){var n,i,r;for((n=t.indexOf("."))>-1&&(t=t.replace(".","")),(i=t.search(/e/i))>0?(0>n&&(n=i),n+=+t.slice(i+1),t=t.substring(0,i)):0>n&&(n=t.length),i=0;48===t.charCodeAt(i);i++);for(r=t.length;48===t.charCodeAt(r-1);--r);if(t=t.slice(i,r)){if(r-=i,e.e=n=n-i-1,e.d=[],i=(n+1)%De,0>n&&(i+=De),r>i){for(i&&e.d.push(+t.slice(0,i)),r-=De;r>i;)e.d.push(+t.slice(i,i+=De));t=t.slice(i),i=De-t.length}else i-=r;for(;i--;)t+="0";e.d.push(+t),be&&(e.e>e.constructor.maxE?(e.d=null,e.e=NaN):e.e=0&&(m=m.replace(".",""),(f=new p(1)).e=m.length-l,f.d=o(d(f),10,r),f.e=f.d.length),s=g=(h=o(m,10,r)).length;0==h[--g];)h.pop();if(h[0]){if(0>l?s--:((e=new p(e)).d=h,e.e=s,h=(e=ce(e,f,n,i,0,r)).d,s=e.e,c=de),l=h[n],u=r/2,c=c||void 0!==h[n+1],c=4>i?(void 0!==l||c)&&(0===i||i===(e.s<0?3:2)):l>u||l===u&&(4===i||c||6===i&&1&h[n-1]||i===(e.s<0?8:7)),h.length=n,c)for(;++h[--n]>r-1;)h[n]=0,n||(++s,h.unshift(1));for(g=h.length;!h[g-1];--g);for(l=0,m="";g>l;l++)m+=fe.charAt(h[l]);if(S){if(g>1)if(16==t||8==t){for(l=16==t?4:3,--g;g%l;g++)m+="0";for(g=(h=o(m,r,t)).length;!h[g-1];--g);for(l=1,m="1.";g>l;l++)m+=fe.charAt(h[l])}else m=m.charAt(0)+"."+m.slice(1);m=m+(0>s?"p":"p+")+s}else if(0>s){for(;++s;)m="0"+m;m="0."+m}else if(++s>g)for(s-=g;s--;)m+="0";else g>s&&(m=m.slice(0,s)+"."+m.slice(s))}else m=S?"0p+0":"0";m=(16==t?"0x":2==t?"0b":8==t?"0o":"")+m}else m=T(e);return e.s<0?"-"+m:m}function w(e,t){if(e.length>t)return e.length=t,!0}function v(e){return new this(e).abs()}function R(e){return new this(e).acos()}function K(e){return new this(e).acosh()}function A(e,t){return new this(e).plus(t)}function D(e){return new this(e).asin()}function E(e){return new this(e).asinh()}function $(e){return new this(e).atan()}function P(e){return new this(e).atanh()}function O(e,t){e=new this(e),t=new this(t);var n,i=this.precision,r=this.rounding,s=i+4;return e.s&&t.s?e.d||t.d?!t.d||e.isZero()?(n=t.s<0?m(this,i,r):new this(0)).s=e.s:!e.d||t.isZero()?(n=m(this,s,1).times(.5)).s=e.s:t.s<0?(this.precision=s,this.rounding=1,n=this.atan(ce(e,t,s,1)),t=m(this,s,1),this.precision=i,this.rounding=r,n=e.s<0?n.minus(t):n.plus(t)):n=this.atan(ce(e,t,s,1)):(n=m(this,s,1).times(t.s>0?.25:.75)).s=e.s:n=new this(NaN),n}function k(e){return new this(e).cbrt()}function N(e){return u(e=new this(e),e.e+1,2)}function F(e){if(!e||"object"!=typeof e)throw Error(Ie+"Object expected");for(var t,n,i=["precision",1,he,"rounding",0,8,"toExpNeg",-me,0,"toExpPos",0,me,"maxE",0,me,"minE",-me,0,"modulo",0,9],r=0;r=i[r+1]&&n<=i[r+2]))throw Error(Te+t+": "+n);this[t]=n}if(void 0!==(n=e[t="crypto"])){if(!0!==n&&!1!==n&&0!==n&&1!==n)throw Error(Te+t+": "+n);if(n){if("undefined"==typeof crypto||!crypto||!crypto.getRandomValues&&!crypto.randomBytes)throw Error(Ce);this[t]=!0}else this[t]=!1}return this}function L(e){return new this(e).cos()}function U(e){return new this(e).cosh()}function M(e,t){return new this(e).div(t)}function q(e){return new this(e).exp()}function z(e){return u(e=new this(e),e.e+1,3)}function G(){var e,t,n=new this(0);for(be=!1,e=0;es;)(r=t[s])>=429e7?t[s]=crypto.getRandomValues(new Uint32Array(1))[0]:o[s++]=r%1e7;else{if(!crypto.randomBytes)throw Error(Ce);for(t=crypto.randomBytes(i*=4);i>s;)(r=t[s]+(t[s+1]<<8)+(t[s+2]<<16)+((127&t[s+3])<<24))>=214e7?crypto.randomBytes(4).copy(t,s):(o.push(r%1e7),s+=4);s=i/4}else for(;i>s;)o[s++]=1e7*Math.random()|0;for(i=o[--s],e%=De,i&&e&&(r=_e(10,De-e),o[s]=(i/r|0)*r);0===o[s];s--)o.pop();if(0>s)n=0,o=[0];else{for(n=-1;0===o[0];n-=De)o.shift();for(i=1,r=o[0];r>=10;r/=10)i++;De>i&&(n-=De-i)}return l.e=n,l.d=o,l}function te(e){return u(e=new this(e),e.e+1,this.rounding)}function ne(e){return(e=new this(e)).d?e.d[0]?e.s:0*e.s:e.s||NaN}function ie(e){return new this(e).sin()}function re(e){return new this(e).sinh()}function se(e){return new this(e).sqrt()}function ae(e,t){return new this(e).sub(t)}function le(e){return new this(e).tan()}function oe(e){return new this(e).tanh()}function ue(e){return u(e=new this(e),e.e+1,1)}var de,ge,ce,me=9e15,he=1e9,fe="0123456789abcdef",pe="2.3025850929940456840179914546843642076011014886287729760333279009675726096773524802359972050895982983419677840422862486334095254650828067566662873690987816894829072083255546808437998948262331985283935053089653777326288461633662222876982198867465436674744042432743651550489343149393914796194044002221051017141748003688084012647080685567743216228355220114804663715659121373450747856947683463616792101806445070648000277502684916746550586856935673420670581136429224554405758925724208241314695689016758940256776311356919292033376587141660230105703089634572075440370847469940168269282808481184289314848524948644871927809676271275775397027668605952496716674183485704422507197965004714951050492214776567636938662976979522110718264549734772662425709429322582798502585509785265383207606726317164309505995087807523710333101197857547331541421808427543863591778117054309827482385045648019095610299291824318237525357709750539565187697510374970888692180205189339507238539205144634197265287286965110862571492198849978748873771345686209167058",Se="3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931767523846748184676694051320005681271452635608277857713427577896091736371787214684409012249534301465495853710507922796892589235420199561121290219608640344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710100031378387528865875332083814206171776691473035982534904287554687311595628638823537875937519577818577805321712268066130019278766111959092164201989380952572010654858632789",ye={precision:20,rounding:4,modulo:1,toExpNeg:-7,toExpPos:21,minE:-me,maxE:me,crypto:!1},be=!0,Ie="[DecimalError] ",Te=Ie+"Invalid argument: ",Be=Ie+"Precision limit exceeded",Ce=Ie+"crypto unavailable",xe=Math.floor,_e=Math.pow,we=/^0b([01]+(\\.[01]*)?|\\.[01]+)(p[+-]?\\d+)?$/i,ve=/^0x([0-9a-f]+(\\.[0-9a-f]*)?|\\.[0-9a-f]+)(p[+-]?\\d+)?$/i,Re=/^0o([0-7]+(\\.[0-7]*)?|\\.[0-7]+)(p[+-]?\\d+)?$/i,Ke=/^(\\d+(\\.\\d*)?|\\.\\d+)(e[+-]?\\d+)?$/i,Ae=1e7,De=7,Ee=pe.length-1,$e=Se.length-1,Pe={};Pe.absoluteValue=Pe.abs=function(){var e=new this.constructor(this);return e.s<0&&(e.s=1),u(e)},Pe.ceil=function(){return u(new this.constructor(this),this.e+1,2)},Pe.comparedTo=Pe.cmp=function(e){var t,n,i,r,s=this,a=s.d,l=(e=new s.constructor(e)).d,o=s.s,u=e.s;if(!a||!l)return o&&u?o!==u?o:a===l?0:!a^0>o?1:-1:NaN;if(!a[0]||!l[0])return a[0]?o:l[0]?-u:0;if(o!==u)return o;if(s.e!==e.e)return s.e>e.e^0>o?1:-1;for(i=a.length,t=0,n=(r=l.length)>i?i:r;n>t;++t)if(a[t]!==l[t])return a[t]>l[t]^0>o?1:-1;return i===r?0:i>r^0>o?1:-1},Pe.cosine=Pe.cos=function(){var e,t,n=this,i=n.constructor;return n.d?n.d[0]?(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+De,i.rounding=1,n=function(e,t){var n,i,r,s,a=t.d.length;for(32>a?(n=Math.ceil(a/3),i=Math.pow(4,-n).toString()):(n=16,i="2.3283064365386962890625e-10"),e.precision+=n,t=C(e,1,t.times(i),new e(1)),r=n;r--;)t=(s=t.times(t)).times(s).minus(s).times(8).plus(1);return e.precision-=n,t}(i,x(i,n)),i.precision=e,i.rounding=t,u(2==ge||3==ge?n.neg():n,e,t,!0)):new i(1):new i(NaN)},Pe.cubeRoot=Pe.cbrt=function(){var e,t,n,i,s,a,l,o,d,g,c=this,m=c.constructor;if(!c.isFinite()||c.isZero())return new m(c);for(be=!1,(a=c.s*Math.pow(c.s*c,1/3))&&Math.abs(a)!=1/0?i=new m(a.toString()):(n=r(c.d),(a=((e=c.e)-n.length+1)%3)&&(n+=1==a||-2==a?"0":"00"),a=Math.pow(n,1/3),e=xe((e+1)/3)-(e%3==(0>e?-1:2)),(i=new m(n=a==1/0?"5e"+e:(n=a.toExponential()).slice(0,n.indexOf("e")+1)+e)).s=c.s),l=(e=m.precision)+3;;)if(g=(d=(o=i).times(o).times(o)).plus(c),i=ce(g.plus(c).times(o),g.plus(d),l+2,1),r(o.d).slice(0,l)===(n=r(i.d)).slice(0,l)){if("9999"!=(n=n.slice(l-3,l+1))&&(s||"4999"!=n)){+n&&(+n.slice(1)||"5"!=n.charAt(0))||(u(i,e+1,1),t=!i.times(i).times(i).eq(c));break}if(!s&&(u(o,e+1,0),o.times(o).times(o).eq(c))){i=o;break}l+=4,s=1}return be=!0,u(i,e,m.rounding,t)},Pe.decimalPlaces=Pe.dp=function(){var e,t=this.d,n=NaN;if(t){if(n=((e=t.length-1)-xe(this.e/De))*De,e=t[e])for(;e%10==0;e/=10)n--;0>n&&(n=0)}return n},Pe.dividedBy=Pe.div=function(e){return ce(this,new this.constructor(e))},Pe.dividedToIntegerBy=Pe.divToInt=function(e){var t=this.constructor;return u(ce(this,new t(e),0,1,1),t.precision,t.rounding)},Pe.equals=Pe.eq=function(e){return 0===this.cmp(e)},Pe.floor=function(){return u(new this.constructor(this),this.e+1,3)},Pe.greaterThan=Pe.gt=function(e){return this.cmp(e)>0},Pe.greaterThanOrEqualTo=Pe.gte=function(e){var t=this.cmp(e);return 1==t||0===t},Pe.hyperbolicCosine=Pe.cosh=function(){var e,t,n,i,r,s,a,l,o=this,d=o.constructor,g=new d(1);if(!o.isFinite())return new d(o.s?1/0:NaN);if(o.isZero())return g;for(n=d.precision,i=d.rounding,d.precision=n+Math.max(o.e,o.sd())+4,d.rounding=1,32>(r=o.d.length)?(e=Math.ceil(r/3),t=Math.pow(4,-e).toString()):(e=16,t="2.3283064365386962890625e-10"),o=C(d,1,o.times(t),new d(1),!0),a=e,l=new d(8);a--;)s=o.times(o),o=g.minus(s.times(l.minus(s.times(l))));return u(o,d.precision=n,d.rounding=i,!0)},Pe.hyperbolicSine=Pe.sinh=function(){var e,t,n,i,r=this,s=r.constructor;if(!r.isFinite()||r.isZero())return new s(r);if(t=s.precision,n=s.rounding,s.precision=t+Math.max(r.e,r.sd())+4,s.rounding=1,3>(i=r.d.length))r=C(s,2,r,r,!0);else{e=(e=1.4*Math.sqrt(i))>16?16:0|e,r=C(s,2,r=r.times(Math.pow(5,-e)),r,!0);for(var a,l=new s(5),o=new s(16),d=new s(20);e--;)a=r.times(r),r=r.times(l.plus(a.times(o.times(a).plus(d))))}return s.precision=t,s.rounding=n,u(r,t,n,!0)},Pe.hyperbolicTangent=Pe.tanh=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+7,i.rounding=1,ce(n.sinh(),n.cosh(),i.precision=e,i.rounding=t)):new i(n.s)},Pe.inverseCosine=Pe.acos=function(){var e,t=this,n=t.constructor,i=t.abs().cmp(1),r=n.precision,s=n.rounding;return-1!==i?0===i?t.isNeg()?m(n,r,s):new n(0):new n(NaN):t.isZero()?m(n,r+4,s).times(.5):(n.precision=r+6,n.rounding=1,t=t.asin(),e=m(n,r+4,s).times(.5),n.precision=r,n.rounding=s,e.minus(t))},Pe.inverseHyperbolicCosine=Pe.acosh=function(){var e,t,n=this,i=n.constructor;return n.lte(1)?new i(n.eq(1)?0:NaN):n.isFinite()?(e=i.precision,t=i.rounding,i.precision=e+Math.max(Math.abs(n.e),n.sd())+4,i.rounding=1,be=!1,n=n.times(n).minus(1).sqrt().plus(n),be=!0,i.precision=e,i.rounding=t,n.ln()):new i(n)},Pe.inverseHyperbolicSine=Pe.asinh=function(){var e,t,n=this,i=n.constructor;return!n.isFinite()||n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+2*Math.max(Math.abs(n.e),n.sd())+6,i.rounding=1,be=!1,n=n.times(n).plus(1).sqrt().plus(n),be=!0,i.precision=e,i.rounding=t,n.ln())},Pe.inverseHyperbolicTangent=Pe.atanh=function(){var e,t,n,i,r=this,s=r.constructor;return r.isFinite()?r.e>=0?new s(r.abs().eq(1)?r.s/0:r.isZero()?r:NaN):(e=s.precision,t=s.rounding,i=r.sd(),Math.max(i,e)<2*-r.e-1?u(new s(r),e,t,!0):(s.precision=n=i-r.e,r=ce(r.plus(1),new s(1).minus(r),n+e,1),s.precision=e+4,s.rounding=1,r=r.ln(),s.precision=e,s.rounding=t,r.times(.5))):new s(NaN)},Pe.inverseSine=Pe.asin=function(){var e,t,n,i,r=this,s=r.constructor;return r.isZero()?new s(r):(t=r.abs().cmp(1),n=s.precision,i=s.rounding,-1!==t?0===t?((e=m(s,n+4,i).times(.5)).s=r.s,e):new s(NaN):(s.precision=n+6,s.rounding=1,r=r.div(new s(1).minus(r.times(r)).sqrt().plus(1)).atan(),s.precision=n,s.rounding=i,r.times(2)))},Pe.inverseTangent=Pe.atan=function(){var e,t,n,i,r,s,a,l,o,d=this,g=d.constructor,c=g.precision,h=g.rounding;if(d.isFinite()){if(d.isZero())return new g(d);if(d.abs().eq(1)&&$e>=c+4)return(a=m(g,c+4,h).times(.25)).s=d.s,a}else{if(!d.s)return new g(NaN);if($e>=c+4)return(a=m(g,c+4,h).times(.5)).s=d.s,a}for(g.precision=l=c+10,g.rounding=1,e=n=Math.min(28,l/De+2|0);e;--e)d=d.div(d.times(d).plus(1).sqrt().plus(1));for(be=!1,t=Math.ceil(l/De),i=1,o=d.times(d),a=new g(d),r=d;-1!==e;)if(r=r.times(o),s=a.minus(r.div(i+=2)),r=r.times(o),void 0!==(a=s.plus(r.div(i+=2))).d[t])for(e=t;a.d[e]===s.d[e]&&e--;);return n&&(a=a.times(2<this.d.length-2},Pe.isNaN=function(){return!this.s},Pe.isNegative=Pe.isNeg=function(){return this.s<0},Pe.isPositive=Pe.isPos=function(){return this.s>0},Pe.isZero=function(){return!!this.d&&0===this.d[0]},Pe.lessThan=Pe.lt=function(e){return this.cmp(e)<0},Pe.lessThanOrEqualTo=Pe.lte=function(e){return this.cmp(e)<1},Pe.logarithm=Pe.log=function(e){var t,n,i,s,a,o,d,g,m=this,h=m.constructor,f=h.precision,p=h.rounding;if(null==e)e=new h(10),t=!0;else{if(n=(e=new h(e)).d,e.s<0||!n||!n[0]||e.eq(1))return new h(NaN);t=e.eq(10)}if(n=m.d,m.s<0||!n||!n[0]||m.eq(1))return new h(n&&!n[0]?-1/0:1!=m.s?NaN:n?0:1/0);if(t)if(n.length>1)a=!0;else{for(s=n[0];s%10==0;)s/=10;a=1!==s}if(be=!1,o=I(m,d=f+5),i=t?c(h,d+10):I(e,d),l((g=ce(o,i,d,1)).d,s=f,p))do{if(o=I(m,d+=10),i=t?c(h,d+10):I(e,d),g=ce(o,i,d,1),!a){+r(g.d).slice(s+1,s+15)+1==1e14&&(g=u(g,f+1,0));break}}while(l(g.d,s+=10,p));return be=!0,u(g,f,p)},Pe.minus=Pe.sub=function(e){var t,n,i,r,s,a,l,o,d,c,m,h,f=this,p=f.constructor;if(e=new p(e),!f.d||!e.d)return f.s&&e.s?f.d?e.s=-e.s:e=new p(e.d||f.s!==e.s?f:NaN):e=new p(NaN),e;if(f.s!=e.s)return e.s=-e.s,f.plus(e);if(d=f.d,h=e.d,l=p.precision,o=p.rounding,!d[0]||!h[0]){if(h[0])e.s=-e.s;else{if(!d[0])return new p(3===o?-0:0);e=new p(f)}return be?u(e,l,o):e}if(n=xe(e.e/De),c=xe(f.e/De),d=d.slice(),s=c-n){for((m=0>s)?(t=d,s=-s,a=h.length):(t=h,n=c,a=d.length),s>(i=Math.max(Math.ceil(l/De),a)+2)&&(s=i,t.length=1),t.reverse(),i=s;i--;)t.push(0);t.reverse()}else{for(i=d.length,(m=(a=h.length)>i)&&(a=i),i=0;a>i;i++)if(d[i]!=h[i]){m=d[i]0;--i)d[a++]=0;for(i=h.length;i>s;){if(d[--i]r?(n=d,r=-r,a=c.length):(n=c,i=s,a=d.length),r>(a=(s=Math.ceil(l/De))>a?s+1:a+1)&&(r=a,n.length=1),n.reverse();r--;)n.push(0);n.reverse()}for(0>(a=d.length)-(r=c.length)&&(r=a,n=c,c=d,d=n),t=0;r;)t=(d[--r]=d[r]+c[r]+t)/Ae|0,d[r]%=Ae;for(t&&(d.unshift(t),++i),a=d.length;0==d[--a];)d.pop();return e.d=d,e.e=g(d,i),be?u(e,l,o):e},Pe.precision=Pe.sd=function(e){var t,n=this;if(void 0!==e&&e!==!!e&&1!==e&&0!==e)throw Error(Te+e);return n.d?(t=h(n.d),e&&n.e+1>t&&(t=n.e+1)):t=NaN,t},Pe.round=function(){var e=this,t=e.constructor;return u(new t(e),e.e+1,t.rounding)},Pe.sine=Pe.sin=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+Math.max(n.e,n.sd())+De,i.rounding=1,n=function(e,t){var n,i=t.d.length;if(3>i)return C(e,2,t,t);n=(n=1.4*Math.sqrt(i))>16?16:0|n,t=C(e,2,t=t.times(Math.pow(5,-n)),t);for(var r,s=new e(5),a=new e(16),l=new e(20);n--;)r=t.times(t),t=t.times(s.plus(r.times(a.times(r).minus(l))));return t}(i,x(i,n)),i.precision=e,i.rounding=t,u(ge>2?n.neg():n,e,t,!0)):new i(NaN)},Pe.squareRoot=Pe.sqrt=function(){var e,t,n,i,s,a,l=this,o=l.d,d=l.e,g=l.s,c=l.constructor;if(1!==g||!o||!o[0])return new c(!g||0>g&&(!o||o[0])?NaN:o?l:1/0);for(be=!1,0==(g=Math.sqrt(+l))||g==1/0?(((t=r(o)).length+d)%2==0&&(t+="0"),g=Math.sqrt(t),d=xe((d+1)/2)-(0>d||d%2),i=new c(t=g==1/0?"1e"+d:(t=g.toExponential()).slice(0,t.indexOf("e")+1)+d)):i=new c(g.toString()),n=(d=c.precision)+3;;)if(i=(a=i).plus(ce(l,a,n+2,1)).times(.5),r(a.d).slice(0,n)===(t=r(i.d)).slice(0,n)){if("9999"!=(t=t.slice(n-3,n+1))&&(s||"4999"!=t)){+t&&(+t.slice(1)||"5"!=t.charAt(0))||(u(i,d+1,1),e=!i.times(i).eq(l));break}if(!s&&(u(a,d+1,0),a.times(a).eq(l))){i=a;break}n+=4,s=1}return be=!0,u(i,d,c.rounding,e)},Pe.tangent=Pe.tan=function(){var e,t,n=this,i=n.constructor;return n.isFinite()?n.isZero()?new i(n):(e=i.precision,t=i.rounding,i.precision=e+10,i.rounding=1,(n=n.sin()).s=1,n=ce(n,new i(1).minus(n.times(n)).sqrt(),e+10,0),i.precision=e,i.rounding=t,u(2==ge||4==ge?n.neg():n,e,t,!0)):new i(NaN)},Pe.times=Pe.mul=function(e){var t,n,i,r,s,a,l,o,d,c=this,m=c.constructor,h=c.d,f=(e=new m(e)).d;if(e.s*=c.s,!(h&&h[0]&&f&&f[0]))return new m(!e.s||h&&!h[0]&&!f||f&&!f[0]&&!h?NaN:h&&f?0*e.s:e.s/0);for(n=xe(c.e/De)+xe(e.e/De),o=h.length,(d=f.length)>o&&(s=h,h=f,f=s,a=o,o=d,d=a),s=[],i=a=o+d;i--;)s.push(0);for(i=d;--i>=0;){for(t=0,r=o+i;r>i;)l=s[r]+f[i]*h[r-i-1]+t,s[r--]=l%Ae|0,t=l/Ae|0;s[r]=(s[r]+t)%Ae|0}for(;!s[--a];)s.pop();for(t?++n:s.shift(),i=s.length;!s[--i];)s.pop();return e.d=s,e.e=g(s,n),be?u(e,m.precision,m.rounding):e},Pe.toBinary=function(e,t){return _(this,2,e,t)},Pe.toDecimalPlaces=Pe.toDP=function(e,t){var n=this,i=n.constructor;return n=new i(n),void 0===e?n:(a(e,0,he),void 0===t?t=i.rounding:a(t,0,8),u(n,e+n.e+1,t))},Pe.toExponential=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=d(i,!0):(a(e,0,he),void 0===t?t=r.rounding:a(t,0,8),n=d(i=u(new r(i),e+1,t),!0,e+1)),i.isNeg()&&!i.isZero()?"-"+n:n},Pe.toFixed=function(e,t){var n,i,r=this,s=r.constructor;return void 0===e?n=d(r):(a(e,0,he),void 0===t?t=s.rounding:a(t,0,8),n=d(i=u(new s(r),e+r.e+1,t),!1,e+i.e+1)),r.isNeg()&&!r.isZero()?"-"+n:n},Pe.toFraction=function(e){var t,n,i,s,a,l,o,u,d,g,c,m,f=this,p=f.d,S=f.constructor;if(!p)return new S(f);if(d=n=new S(1),l=(a=(t=new S(i=u=new S(0))).e=h(p)-f.e-1)%De,t.d[0]=_e(10,0>l?De+l:l),null==e)e=a>0?t:d;else{if(!(o=new S(e)).isInt()||o.lt(d))throw Error(Te+o);e=o.gt(t)?a>0?t:d:o}for(be=!1,o=new S(r(p)),g=S.precision,S.precision=a=p.length*De*2;c=ce(o,t,0,1,1),1!=(s=n.plus(c.times(i))).cmp(e);)n=i,i=s,s=d,d=u.plus(c.times(s)),u=s,s=t,t=o.minus(c.times(s)),o=s;return s=ce(e.minus(n),i,0,1,1),u=u.plus(s.times(d)),n=n.plus(s.times(i)),u.s=d.s=f.s,m=ce(d,i,a,1).minus(f).abs().cmp(ce(u,n,a,1).minus(f).abs())<1?[d,i]:[u,n],S.precision=g,be=!0,m},Pe.toHexadecimal=Pe.toHex=function(e,t){return _(this,16,e,t)},Pe.toNearest=function(e,t){var n=this,i=n.constructor;if(n=new i(n),null==e){if(!n.d)return n;e=new i(1),t=i.rounding}else{if(e=new i(e),void 0!==t&&a(t,0,8),!n.d)return e.s?n:e;if(!e.d)return e.s&&(e.s=n.s),e}return e.d[0]?(be=!1,4>t&&(t=[4,5,7,8][t]),n=ce(n,e,0,t,1).times(e),be=!0,u(n)):(e.s=n.s,n=e),n},Pe.toNumber=function(){return+this},Pe.toOctal=function(e,t){return _(this,8,e,t)},Pe.toPower=Pe.pow=function(e){var t,n,i,s,a,o,d,g=this,c=g.constructor,m=+(e=new c(e));if(!(g.d&&e.d&&g.d[0]&&e.d[0]))return new c(_e(+g,m));if((g=new c(g)).eq(1))return g;if(i=c.precision,a=c.rounding,e.eq(1))return u(g,i,a);if(d=(t=xe(e.e/De))>=(n=e.d.length-1),o=g.s,d){if((n=0>m?-m:m)<=9007199254740991)return s=p(c,g,n,i),e.s<0?new c(1).div(s):u(s,i,a)}else if(0>o)return new c(NaN);return o=0>o&&1&e.d[Math.max(t,n)]?-1:1,(t=0!=(n=_e(+g,m))&&isFinite(n)?new c(n+"").e:xe(m*(Math.log("0."+r(g.d))/Math.LN10+g.e+1)))>c.maxE+1||t0?o/0:0):(be=!1,c.rounding=g.s=1,n=Math.min(12,(t+"").length),l((s=u(s=b(e.times(I(g,i+n)),i),i+5,1)).d,i,a)&&(t=i+10,+r((s=u(b(e.times(I(g,t+n)),t),t+5,1)).d).slice(i+1,i+15)+1==1e14&&(s=u(s,i+1,0))),s.s=o,be=!0,c.rounding=a,u(s,i,a))},Pe.toPrecision=function(e,t){var n,i=this,r=i.constructor;return void 0===e?n=d(i,i.e<=r.toExpNeg||i.e>=r.toExpPos):(a(e,1,he),void 0===t?t=r.rounding:a(t,0,8),n=d(i=u(new r(i),e,t),e<=i.e||i.e<=r.toExpNeg,e)),i.isNeg()&&!i.isZero()?"-"+n:n},Pe.toSignificantDigits=Pe.toSD=function(e,t){var n=this.constructor;return void 0===e?(e=n.precision,t=n.rounding):(a(e,1,he),void 0===t?t=n.rounding:a(t,0,8)),u(new n(this),e,t)},Pe.toString=function(){var e=this,t=e.constructor,n=d(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()&&!e.isZero()?"-"+n:n},Pe.truncated=Pe.trunc=function(){return u(new this.constructor(this),this.e+1,1)},Pe.valueOf=Pe.toJSON=function(){var e=this,t=e.constructor,n=d(e,e.e<=t.toExpNeg||e.e>=t.toExpPos);return e.isNeg()?"-"+n:n},ce=function(){function e(e,t,n){var i,r=0,s=e.length;for(e=e.slice();s--;)i=e[s]*t+r,e[s]=i%n|0,r=i/n|0;return r&&e.unshift(r),e}function t(e,t,n,i){var r,s;if(n!=i)s=n>i?1:-1;else for(r=s=0;n>r;r++)if(e[r]!=t[r]){s=e[r]>t[r]?1:-1;break}return s}function n(e,t,n,i){for(var r=0;n--;)e[n]-=r,r=e[n]1;)e.shift()}return function(i,r,s,a,l,o){var d,g,c,m,h,f,p,S,y,b,I,T,B,C,x,_,w,v,R,K,A=i.constructor,D=i.s==r.s?1:-1,E=i.d,$=r.d;if(!(E&&E[0]&&$&&$[0]))return new A(i.s&&r.s&&(E?!$||E[0]!=$[0]:$)?E&&0==E[0]||!$?0*D:D/0:NaN);for(o?(h=1,g=i.e-r.e):(o=Ae,h=De,g=xe(i.e/h)-xe(r.e/h)),R=$.length,w=E.length,b=(y=new A(D)).d=[],c=0;$[c]==(E[c]||0);c++);if($[c]>(E[c]||0)&&g--,null==s?(C=s=A.precision,a=A.rounding):C=l?s+(i.e-r.e)+1:s,0>C)b.push(1),f=!0;else{if(C=C/h+2|0,c=0,1==R){for(m=0,$=$[0],C++;(w>c||m)&&C--;c++)x=m*o+(E[c]||0),b[c]=x/$|0,m=x%$|0;f=m||w>c}else{for((m=o/($[0]+1)|0)>1&&($=e($,m,o),E=e(E,m,o),R=$.length,w=E.length),_=R,T=(I=E.slice(0,R)).length;R>T;)I[T++]=0;(K=$.slice()).unshift(0),v=$[0],$[1]>=o/2&&++v;do{m=0,0>(d=t($,I,R,T))?(B=I[0],R!=T&&(B=B*o+(I[1]||0)),(m=B/v|0)>1?(m>=o&&(m=o-1),1==(d=t(p=e($,m,o),I,S=p.length,T=I.length))&&(m--,n(p,S>R?K:$,S,o))):(0==m&&(d=m=1),p=$.slice()),T>(S=p.length)&&p.unshift(0),n(I,p,T,o),-1==d&&1>(d=t($,I,R,T=I.length))&&(m++,n(I,T>R?K:$,T,o)),T=I.length):0===d&&(m++,I=[0]),b[c++]=m,d&&I[0]?I[T++]=E[_]||0:(I=[E[_]],T=1)}while((_++=10;m/=10)c++;y.e=c+g*h-1,u(y,l?s+y.e+1:s,a,f)}return y}}(),ye=function e(t){function n(e){var t,i,r,s=this;if(!(s instanceof n))return new n(e);if(s.constructor=n,e instanceof n)return s.s=e.s,s.e=e.e,void(s.d=(e=e.d)?e.slice():e);if("number"==(r=typeof e)){if(0===e)return s.s=0>1/e?-1:1,s.e=0,void(s.d=[0]);if(0>e?(e=-e,s.s=-1):s.s=1,e===~~e&&1e7>e){for(t=0,i=e;i>=10;i/=10)t++;return s.e=t,void(s.d=[e])}return 0*e!=0?(e||(s.s=NaN),s.e=NaN,void(s.d=null)):B(s,e.toString())}if("string"!==r)throw Error(Te+e);return 45===e.charCodeAt(0)?(e=e.slice(1),s.s=-1):s.s=1,Ke.test(e)?B(s,e):function(e,t){var n,i,r,s,a,l,u,d,c;if("Infinity"===t||"NaN"===t)return+t||(e.s=NaN),e.e=NaN,e.d=null,e;if(ve.test(t))n=16,t=t.toLowerCase();else if(we.test(t))n=2;else{if(!Re.test(t))throw Error(Te+t);n=8}for((s=t.search(/p/i))>0?(u=+t.slice(s+1),t=t.substring(2,s)):t=t.slice(2),a=(s=t.indexOf("."))>=0,i=e.constructor,a&&(s=(l=(t=t.replace(".","")).length)-s,r=p(i,new i(n),s,2*s)),s=c=(d=o(t,n,Ae)).length-1;0===d[s];--s)d.pop();return 0>s?new i(0*e.s):(e.e=g(d,c),e.d=d,be=!1,a&&(e=ce(e,r,4*l)),u&&(e=e.times(Math.abs(u)<54?Math.pow(2,u):ye.pow(2,u))),be=!0,e)}(s,e)}var i,r,s;if(n.prototype=Pe,n.ROUND_UP=0,n.ROUND_DOWN=1,n.ROUND_CEIL=2,n.ROUND_FLOOR=3,n.ROUND_HALF_UP=4,n.ROUND_HALF_DOWN=5,n.ROUND_HALF_EVEN=6,n.ROUND_HALF_CEIL=7,n.ROUND_HALF_FLOOR=8,n.EUCLID=9,n.config=n.set=F,n.clone=e,n.abs=v,n.acos=R,n.acosh=K,n.add=A,n.asin=D,n.asinh=E,n.atan=$,n.atanh=P,n.atan2=O,n.cbrt=k,n.ceil=N,n.cos=L,n.cosh=U,n.div=M,n.exp=q,n.floor=z,n.hypot=G,n.ln=j,n.log=Y,n.log10=W,n.log2=V,n.max=H,n.min=Q,n.mod=X,n.mul=J,n.pow=Z,n.random=ee,n.round=te,n.sign=ne,n.sin=ie,n.sinh=re,n.sqrt=se,n.sub=ae,n.tan=le,n.tanh=oe,n.trunc=ue,void 0===t&&(t={}),t)for(s=["precision","rounding","toExpNeg","toExpPos","maxE","minE","modulo","crypto"],i=0;i0},Bridge.global.System.Decimal.prototype.gte=function(e){return this.compareTo(e)>=0},Bridge.global.System.Decimal.prototype.equals=function(e){return(e instanceof Bridge.global.System.Decimal||"number"==typeof e)&&!this.compareTo(e)},Bridge.global.System.Decimal.prototype.equalsT=function(e){return!this.compareTo(e)},Bridge.global.System.Decimal.prototype.getHashCode=function(){for(var e=397*this.sign()+this.value.e|0,t=0;t0&&m>0){for(r=m%l||l,d=c.substr(0,r);r0&&(d+=a+c.slice(r)),s&&(d="-"+d)}return g?d+n.decimalSeparator+((o=+n.fractionGroupSize)?g.replace(new RegExp("\\\\d{"+o+"}\\\\B","g"),"$&"+n.fractionGroupSeparator):g):d},Bridge.global.System.Decimal.prototype.toFormat=function(e,t,n){var i,r,s={decimalSeparator:".",groupSeparator:",",groupSize:3,secondaryGroupSize:0,fractionGroupSeparator:" ",fractionGroupSize:0};return n&&!n.getFormat?(s=Bridge.merge(s,n),i=this._toFormat(e,t,s)):((r=(n=n||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())&&n.getFormat(Bridge.global.System.Globalization.NumberFormatInfo))&&(s.decimalSeparator=r.numberDecimalSeparator,s.groupSeparator=r.numberGroupSeparator,s.groupSize=r.numberGroupSizes[0]),i=this._toFormat(e,t,s)),i},Bridge.global.System.Decimal.prototype.getBytes=function(){var e,t=this.value.s,n=this.value.e,i=this.value.d,r=Bridge.global.System.Array.init(23,0,Bridge.global.System.Byte);if(r[0]=255&t,r[1]=n,i&&i.length>0)for(r[2]=4*i.length,e=0;e>8&255,r[4*e+5]=i[e]>>16&255,r[4*e+6]=i[e]>>24&255;else r[2]=0;return r},Bridge.global.System.Decimal.fromBytes=function(e){var t,n=new Bridge.global.System.Decimal(0),i=Bridge.Int.sxb(255&e[0]),r=e[1],s=e[2],a=[];if(n.value.s=i,n.value.e=r,s>0)for(t=3;t=0&&e[s]!==i;s--);if(s>=0){for(;--s>=0&&e[s]===i;)r++;if(r<=1)return!0}for(s=t+n;s=0&&I.charAt(y)===l;y--);I=I.substring(0,y+1),r=0==I.length;break;case"f":case"ff":case"fff":case"ffff":case"fffff":case"ffffff":case"fffffff":(I=p.toString()).length<3&&(I=Array(4-I.length).join("0")+I),b="u"===e?7:e.length,I.length=0?"-":"+")+Math.floor(Math.abs(I));break;case"K":case"zz":case"zzz":0===a?I="":1===a?I="Z":(I=((I=S/60)>0?"-":"+")+Bridge.global.System.String.alignString(Math.floor(Math.abs(I)).toString(),2,"0",2),("zzz"===e||"K"===e)&&(I+=o.timeSeparator+Bridge.global.System.String.alignString(Math.floor(Math.abs(S%60)).toString(),2,"0",2)));break;case":":I=o.timeSeparator;break;case"/":I=o.dateSeparator;break;default:I=e.substr(1,e.length-1-("\\\\"!==e.charAt(0)))}return I}),r&&(Bridge.global.System.String.endsWith(t,".")?t=t.substring(0,t.length-1):Bridge.global.System.String.endsWith(t,".Z")?t=t.substring(0,t.length-2)+"Z":2===a&&null!==t.match(/\\.([+-])/g)&&(t=t.replace(/\\.([+-])/g,"$1"))),t},parse:function(e,t,n,i){var r=this.parseExact(e,null,t,n,!0);if(null!==r)return r;if(r=Date.parse(e),!isNaN(r))return new Date(r);if(!i)throw new Bridge.global.System.FormatException.$ctor1("String does not contain a valid string representation of a date and time.")},parseExact:function(e,t,n,i,r){var s,a,l,o;if(t||(t=["G","g","F","f","D","d","R","r","s","S","U","u","O","o","Y","y","M","m","T","t"]),Bridge.isArray(t)){for(s=0;s30?1900:2e3)+_)}else if("MMM"===d||"MMMM"===d){for(w=0,h="MMM"===d?this.isUseGenitiveForm(t,C,3,"d")?b.abbreviatedMonthGenitiveNames:b.abbreviatedMonthNames:this.isUseGenitiveForm(t,C,4,"d")?b.monthGenitiveNames:b.monthNames,x=0;x12){O=!0;break}}else if("MM"===d||"M"===d){if(null==(w=this.subparseInt(e,B,d.length,2))||w<1||w>12){O=!0;break}B+=w.length}else if("dddd"===d||"ddd"===d){for(h="ddd"===d?b.abbreviatedDayNames:b.dayNames,x=0;x31){O=!0;break}B+=v.length}else if("hh"===d||"h"===d){if(null==(R=this.subparseInt(e,B,d.length,2))||R<1||R>12){O=!0;break}B+=R.length}else if("HH"===d||"H"===d){if(null==(R=this.subparseInt(e,B,d.length,2))||R<0||R>23){O=!0;break}B+=R.length}else if("mm"===d||"m"===d){if(null==(K=this.subparseInt(e,B,d.length,2))||K<0||K>59)return null;B+=K.length}else if("ss"===d||"s"===d){if(null==(A=this.subparseInt(e,B,d.length,2))||A<0||A>59){O=!0;break}B+=A.length}else if("u"===d){if(null==(D=this.subparseInt(e,B,1,7))){O=!0;break}B+=D.length,D.length>3&&(D=D.substring(0,3))}else if(null!==d.match(/f{1,7}/)){if(null==(D=this.subparseInt(e,B,d.length,7))){O=!0;break}B+=D.length,D.length>3&&(D=D.substring(0,3))}else if(null!==d.match(/F{1,7}/))null!==(D=this.subparseInt(e,B,0,7))&&(B+=D.length,D.length>3&&(D=D.substring(0,3)));else if("t"===d){if(e.substring(B,B+1).toLowerCase()===I.charAt(0).toLowerCase())E=I;else{if(e.substring(B,B+1).toLowerCase()!==T.charAt(0).toLowerCase()){O=!0;break}E=T}B+=1}else if("tt"===d){if(e.substring(B,B+2).toLowerCase()===I.toLowerCase())E=I;else{if(e.substring(B,B+2).toLowerCase()!==T.toLowerCase()){O=!0;break}E=T}B+=2}else if("z"===d||"zz"===d){if("-"===(c=e.charAt(B)))m=!0;else{if("+"!==c){O=!0;break}m=!1}if(B++,null==($=this.subparseInt(e,B,1,2))||$>14){O=!0;break}B+=$.length,L=36e5*$,m&&(L=-L)}else{if("Z"===d){"Z"===(l=e.substring(B,B+1))||"z"===l?(N=1,B+=1):O=!0;break}if("zzz"===d||"K"===d){if("Z"===e.substring(B,B+1)){N=2,F=!0,B+=1;break}if(""===(f=e.substring(B,B+6))){N=0;break}if(B+=f.length,6!==f.length&&5!==f.length){O=!0;break}if("-"===(c=f.charAt(0)))m=!0;else{if("+"!==c){O=!0;break}m=!1}if(g=1,null==($=this.subparseInt(f,g,1,6===f.length?2:1))||$>14){O=!0;break}if(g+=$.length,f.charAt(g)!==b.timeSeparator){O=!0;break}if(g++,null==(P=this.subparseInt(f,g,1,2))||$>59){O=!0;break}L=36e5*$+6e4*P,m&&(L=-L),N=2}else p=!1}if(k||!p){if(f=e.substring(B,B+d.length),(k||":"!==f||d!==b.timeSeparator&&":"!==d)&&(!k&&(":"===d&&f!==b.timeSeparator||"/"===d&&f!==b.dateSeparator)||f!==d&&"\'"!==d&&\'"\'!==d&&"\\\\"!==d)){O=!0;break}if("\\\\"===k&&(k=!1),"\'"!==d&&\'"\'!==d&&"\\\\"!==d)B+=d.length;else if(!1===k)k=d;else{if(k!==d){O=!0;break}k=!1}}}if(k&&(O=!0),O||(B!==e.length?O=!0:2===w?_%4==0&&_%100!=0||_%400==0?v>29&&(O=!0):v>28&&(O=!0):(4===w||6===w||9===w||11===w)&&v>30&&(O=!0)),O){if(r)return null;throw new Bridge.global.System.FormatException.$ctor1("String does not contain a valid string representation of a date and time.")}return E&&(R<12&&E===T?R=+R+12:R>11&&E===I&&(R-=12)),o=this.create(_,w,v,R,K,A,D,N),2===N&&(!0===F?(o=new Date(o.getTime()-this.$getTzOffset(o))).kind=N:0!==L&&(o=new Date(o.getTime()-this.$getTzOffset(o)),(o=this.addMilliseconds(o,-L)).kind=N)),o},subparseInt:function(e,t,n,i){for(var r,s=i;s>=n;s--){if((r=e.substring(t,t+s)).length1&&this.getIsLeapYear(t.getFullYear())&&r++,r},getDate:function(e){e.kind=void 0!==e.kind?e.kind:0;var t=this.$clearTime(e,1===e.kind);return t.kind=e.kind,t},getDayOfWeek:function(e){return 1===this.getKind(e)?e.getUTCDay():e.getDay()},getYear:function(e){return 1===this.getKind(e)?e.getUTCFullYear():e.getFullYear()},getMonth:function(e){return(1===this.getKind(e)?e.getUTCMonth():e.getMonth())+1},getDay:function(e){return 1===this.getKind(e)?e.getUTCDate():e.getDate()},getHour:function(e){return 1===this.getKind(e)?e.getUTCHours():e.getHours()},getMinute:function(e){return 1===this.getKind(e)?e.getUTCMinutes():e.getMinutes()},getSecond:function(e){return 1===this.getKind(e)?e.getUTCSeconds():e.getSeconds()},getMillisecond:function(e){return 1===this.getKind(e)?e.getUTCMilliseconds():e.getMilliseconds()},gt:function(e,t){return null!=e&&null!=t&&this.getTicks(e).gt(this.getTicks(t))},gte:function(e,t){return null!=e&&null!=t&&this.getTicks(e).gte(this.getTicks(t))},lt:function(e,t){return null!=e&&null!=t&&this.getTicks(e).lt(this.getTicks(t))},lte:function(e,t){return null!=e&&null!=t&&this.getTicks(e).lte(this.getTicks(t))}}}),Bridge.define("System.TimeSpan",{inherits:[Bridge.global.System.IComparable],config:{alias:["compareTo",["System$IComparable$compareTo","System$IComparable$1$compareTo","System$IComparable$1System$TimeSpan$compareTo"]]},$kind:"struct",statics:{fromDays:function(e){return new Bridge.global.System.TimeSpan(864e9*e)},fromHours:function(e){return new Bridge.global.System.TimeSpan(36e9*e)},fromMilliseconds:function(e){return new Bridge.global.System.TimeSpan(1e4*e)},fromMinutes:function(e){return new Bridge.global.System.TimeSpan(6e8*e)},fromSeconds:function(e){return new Bridge.global.System.TimeSpan(1e7*e)},fromTicks:function(e){return new Bridge.global.System.TimeSpan(e)},ctor:function(){this.zero=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.Zero),this.maxValue=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.MaxValue),this.minValue=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.MinValue)},getDefaultValue:function(){return new Bridge.global.System.TimeSpan(Bridge.global.System.Int64.Zero)},neg:function(e){return Bridge.hasValue(e)?new Bridge.global.System.TimeSpan(e.ticks.neg()):null},sub:function(e,t){return Bridge.hasValue$1(e,t)?new Bridge.global.System.TimeSpan(e.ticks.sub(t.ticks)):null},eq:function(e,t){return null===e&&null===t||!!Bridge.hasValue$1(e,t)&&e.ticks.eq(t.ticks)},neq:function(e,t){return(null!==e||null!==t)&&(!Bridge.hasValue$1(e,t)||e.ticks.ne(t.ticks))},plus:function(e){return Bridge.hasValue(e)?new Bridge.global.System.TimeSpan(e.ticks):null},add:function(e,t){return Bridge.hasValue$1(e,t)?new Bridge.global.System.TimeSpan(e.ticks.add(t.ticks)):null},gt:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.gt(t.ticks)},gte:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.gte(t.ticks)},lt:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.lt(t.ticks)},lte:function(e,t){return!!Bridge.hasValue$1(e,t)&&e.ticks.lte(t.ticks)},timeSpanWithDays:/^(\\-)?(\\d+)[\\.|:](\\d+):(\\d+):(\\d+)(\\.\\d+)?/,timeSpanNoDays:/^(\\-)?(\\d+):(\\d+):(\\d+)(\\.\\d+)?/,parse:function(e){function t(e){return e?1e3*parseFloat("0"+e):0}var n,i;return(n=e.match(Bridge.global.System.TimeSpan.timeSpanWithDays))?(i=new Bridge.global.System.TimeSpan(n[2],n[3],n[4],n[5],t(n[6])),n[1]?new Bridge.global.System.TimeSpan(i.ticks.neg()):i):(n=e.match(Bridge.global.System.TimeSpan.timeSpanNoDays))?(i=new Bridge.global.System.TimeSpan(0,n[2],n[3],n[4],t(n[5])),n[1]?new Bridge.global.System.TimeSpan(i.ticks.neg()):i):null},tryParse:function(e,t,n){return n.v=this.parse(e),null!=n.v||(n.v=this.minValue,!1)}},ctor:function(){this.$initialize(),this.ticks=Bridge.global.System.Int64.Zero,1===arguments.length?this.ticks=arguments[0]instanceof Bridge.global.System.Int64?arguments[0]:new Bridge.global.System.Int64(arguments[0]):3===arguments.length?this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(60).add(arguments[1]).mul(60).add(arguments[2]).mul(1e7):4===arguments.length?this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e7):5===arguments.length&&(this.ticks=new Bridge.global.System.Int64(arguments[0]).mul(24).add(arguments[1]).mul(60).add(arguments[2]).mul(60).add(arguments[3]).mul(1e3).add(arguments[4]).mul(1e4))},TimeToTicks:function(e,t,n){return Bridge.global.System.Int64(e).mul("3600").add(Bridge.global.System.Int64(t).mul("60")).add(Bridge.global.System.Int64(n)).mul("10000000")},getTicks:function(){return this.ticks},getDays:function(){return this.ticks.div(864e9).toNumber()},getHours:function(){return this.ticks.div(36e9).mod(24).toNumber()},getMilliseconds:function(){return this.ticks.div(1e4).mod(1e3).toNumber()},getMinutes:function(){return this.ticks.div(6e8).mod(60).toNumber()},getSeconds:function(){return this.ticks.div(1e7).mod(60).toNumber()},getTotalDays:function(){return this.ticks.toNumberDivided(864e9)},getTotalHours:function(){return this.ticks.toNumberDivided(36e9)},getTotalMilliseconds:function(){return this.ticks.toNumberDivided(1e4)},getTotalMinutes:function(){return this.ticks.toNumberDivided(6e8)},getTotalSeconds:function(){return this.ticks.toNumberDivided(1e7)},get12HourHour:function(){return this.getHours()>12?this.getHours()-12:0===this.getHours()?12:this.getHours()},add:function(e){return new Bridge.global.System.TimeSpan(this.ticks.add(e.ticks))},subtract:function(e){return new Bridge.global.System.TimeSpan(this.ticks.sub(e.ticks))},duration:function(){return new Bridge.global.System.TimeSpan(this.ticks.abs())},negate:function(){return new Bridge.global.System.TimeSpan(this.ticks.neg())},compareTo:function(e){return this.ticks.compareTo(e.ticks)},equals:function(e){return!!Bridge.is(e,Bridge.global.System.TimeSpan)&&e.ticks.eq(this.ticks)},equalsT:function(e){return e.ticks.eq(this.ticks)},format:function(e,t){return this.toString(e,t)},getHashCode:function(){return this.ticks.getHashCode()},toString:function(e,t){var n=this.ticks,i="",r=this,s=(t||Bridge.global.System.Globalization.CultureInfo.getCurrentCulture()).getFormat(Bridge.global.System.Globalization.DateTimeFormatInfo),a=function(e,t,n,i){return Bridge.global.System.String.alignString(Math.abs(0|e).toString(),t||2,"0",n||2,i||!1)},l=n<0;return e?e.replace(/(\\\\.|\'[^\']*\'|"[^"]*"|dd?|HH?|hh?|mm?|ss?|tt?|f{1,7}|\\:|\\/)/g,function(e){switch(e){case"d":return r.getDays();case"dd":return a(r.getDays());case"H":return r.getHours();case"HH":return a(r.getHours());case"h":return r.get12HourHour();case"hh":return a(r.get12HourHour());case"m":return r.getMinutes();case"mm":return a(r.getMinutes());case"s":return r.getSeconds();case"ss":return a(r.getSeconds());case"t":return(r.getHours()<12?s.amDesignator:s.pmDesignator).substring(0,1);case"tt":return r.getHours()<12?s.amDesignator:s.pmDesignator;case"f":case"ff":case"fff":case"ffff":case"fffff":case"ffffff":case"fffffff":return a(r.getMilliseconds(),e.length,1,!0);default:return e.substr(1,e.length-1-("\\\\"!==e.charAt(0)))}}):(n.abs().gte(864e9)&&(i+=a(n.toNumberDivided(864e9),1)+".",n=n.mod(864e9)),i+=a(n.toNumberDivided(36e9))+":",n=n.mod(36e9),i+=a(0|n.toNumberDivided(6e8))+":",n=n.mod(6e8),i+=a(n.toNumberDivided(1e7)),(n=n.mod(1e7)).gt(0)&&(i+="."+a(n.toNumber(),7)),(l?"-":"")+i)}}),Bridge.Class.addExtend(Bridge.global.System.TimeSpan,[Bridge.global.System.IComparable$1(Bridge.global.System.TimeSpan),Bridge.global.System.IEquatable$1(Bridge.global.System.TimeSpan)]),Bridge.define("System.Text.StringBuilder",{ctor:function(){this.$initialize(),this.buffer=[],this.capacity=16,1===arguments.length?this.append(arguments[0]):2===arguments.length?(this.append(arguments[0]),this.setCapacity(arguments[1])):arguments.length>=3&&(this.append(arguments[0],arguments[1],arguments[2]),4===arguments.length&&this.setCapacity(arguments[3]))},getLength:function(){return this.buffer.length<2?this.buffer[0]?this.buffer[0].length:0:this.getString().length},setLength:function(e){var t,n;if(0===e)this.clear();else{if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Length cannot be less than zero");if(e===(t=this.getLength()))return;(n=e-t)>0?this.append("\\0",n):this.remove(t+n,-n)}},getCapacity:function(){var e=this.getLength();return this.capacity>e?this.capacity:e},setCapacity:function(e){e>this.getLength()&&(this.capacity=e)},toString:function(){var e,t,n=this.getString();return 2===arguments.length?(e=arguments[0],t=arguments[1],this.checkLimits(n,e,t),n.substr(e,t)):n},append:function(e){var t,n;if(null==e)return this;if(2===arguments.length){if(0===(n=arguments[1]))return this;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero");e=Array(n+1).join(e).toString()}else if(3===arguments.length){if(t=arguments[1],0===(n=arguments[2]))return this;this.checkLimits(e,t,n),e=e.substr(t,n)}return this.buffer[this.buffer.length]=e,this.clearString(),this},appendFormat:function(){return this.append(Bridge.global.System.String.format.apply(Bridge.global.System.String,arguments))},clear:function(){return this.buffer=[],this.clearString(),this},appendLine:function(){return 1===arguments.length&&this.append(arguments[0]),this.append("\\r\\n")},equals:function(e){return null!=e&&(e===this||this.toString()===e.toString())},remove:function(e,t){var n=this.getString();return this.checkLimits(n,e,t),n.length===t&&0===e?this.clear():(t>0&&(this.buffer=[],this.buffer[0]=n.substring(0,e),this.buffer[1]=n.substring(e+t,n.length),this.clearString()),this)},insert:function(e,t){var n,i;if(null==t)return this;if(3===arguments.length){if(0===(n=arguments[2]))return this;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero");t=Array(n+1).join(t).toString()}return i=this.getString(),this.buffer=[],e<1?(this.buffer[0]=t,this.buffer[1]=i):e>=i.length?(this.buffer[0]=i,this.buffer[1]=t):(this.buffer[0]=i.substring(0,e),this.buffer[1]=t,this.buffer[2]=i.substring(e,i.length)),this.clearString(),this},replace:function(e,t){var n=new RegExp(e,"g"),i=this.buffer.join("");if(this.buffer=[],4===arguments.length){var r=arguments[2],s=arguments[3],a=i.substr(r,s);this.checkLimits(i,r,s),this.buffer[0]=i.substring(0,r),this.buffer[1]=a.replace(n,t),this.buffer[2]=i.substring(r+s,i.length)}else this.buffer[0]=i.replace(n,t);return this.clearString(),this},checkLimits:function(e,t,n){if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero");if(n>e.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("Index and length must refer to a location within the string")},clearString:function(){this.$str=null},getString:function(){return this.$str||(this.$str=this.buffer.join(""),this.buffer=[],this.buffer[0]=this.$str),this.$str},getChar:function(e){var t=this.getString();if(e<0||e>=t.length)throw new Bridge.global.System.IndexOutOfRangeException;return t.charCodeAt(e)},setChar:function(e,t){var n=this.getString();if(e<0||e>=n.length)throw new Bridge.global.System.ArgumentOutOfRangeException;t=String.fromCharCode(t),this.buffer=[],this.buffer[0]=n.substring(0,e),this.buffer[1]=t,this.buffer[2]=n.substring(e+1,n.length),this.clearString()}}),function(){var e=RegExp("[-\\\\[\\\\]\\\\/\\\\{\\\\}\\\\(\\\\)\\\\*\\\\+\\\\?\\\\.\\\\\\\\\\\\^\\\\$\\\\|]","g");Bridge.regexpEscape=function(t){return t.replace(e,"\\\\$&")}}(),Bridge.define("System.Diagnostics.Debug.DebugAssertException",{inherits:[Bridge.global.System.Exception],$kind:"nested class",ctors:{ctor:function(e,t,n){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,(e||"")+"\\n"+(t||"")+"\\n"+(n||""))}}}),Bridge.define("System.Diagnostics.Debug",{statics:{fields:{s_lock:null,s_indentLevel:0,s_indentSize:0,s_needIndent:!1,s_indentString:null,s_ShowAssertDialog:null,s_WriteCore:null,s_shouldWriteToStdErr:!1},props:{AutoFlush:{get:function(){return!0},set:function(){}},IndentLevel:{get:function(){return Bridge.global.System.Diagnostics.Debug.s_indentLevel},set:function(e){Bridge.global.System.Diagnostics.Debug.s_indentLevel=e<0?0:e}},IndentSize:{get:function(){return Bridge.global.System.Diagnostics.Debug.s_indentSize},set:function(e){Bridge.global.System.Diagnostics.Debug.s_indentSize=e<0?0:e}}},ctors:{init:function(){this.s_lock={},this.s_indentSize=4,this.s_ShowAssertDialog=Bridge.global.System.Diagnostics.Debug.ShowAssertDialog,this.s_WriteCore=Bridge.global.System.Diagnostics.Debug.WriteCore,this.s_shouldWriteToStdErr=Bridge.referenceEquals(Bridge.global.System.Environment.GetEnvironmentVariable("COMPlus_DebugWriteToStdErr"),"1")}},methods:{Close:function(){},Flush:function(){},Indent:function(){Bridge.global.System.Diagnostics.Debug.IndentLevel=Bridge.global.System.Diagnostics.Debug.IndentLevel+1|0},Unindent:function(){Bridge.global.System.Diagnostics.Debug.IndentLevel=Bridge.global.System.Diagnostics.Debug.IndentLevel-1|0},Print:function(e){Bridge.global.System.Diagnostics.Debug.Write$2(e)},Print$1:function(e,t){void 0===t&&(t=[]),Bridge.global.System.Diagnostics.Debug.Write$2(Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[null,e].concat(t)))},Assert:function(e){Bridge.global.System.Diagnostics.Debug.Assert$2(e,"","")},Assert$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Assert$2(e,t,"")},Assert$2:function(e,t,n){if(!e){var i;try{throw Bridge.global.System.NotImplemented.ByDesign}catch(e){e=Bridge.global.System.Exception.create(e),i=""}Bridge.global.System.Diagnostics.Debug.WriteLine$2(Bridge.global.System.Diagnostics.Debug.FormatAssert(i,t,n)),Bridge.global.System.Diagnostics.Debug.s_ShowAssertDialog(i,t,n)}},Assert$3:function(e,t,n,i){void 0===i&&(i=[]),Bridge.global.System.Diagnostics.Debug.Assert$2(e,t,Bridge.global.System.String.format.apply(Bridge.global.System.String,[n].concat(i)))},Fail:function(e){Bridge.global.System.Diagnostics.Debug.Assert$2(!1,e,"")},Fail$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Assert$2(!1,e,t)},FormatAssert:function(e,t,n){var i=(Bridge.global.System.Diagnostics.Debug.GetIndentString()||"")+"\\n";return"---- DEBUG ASSERTION FAILED ----"+(i||"")+"---- Assert Short Message ----"+(i||"")+(t||"")+(i||"")+"---- Assert Long Message ----"+(i||"")+(n||"")+(i||"")+(e||"")},WriteLine$2:function(e){Bridge.global.System.Diagnostics.Debug.Write$2((e||"")+"\\n")},WriteLine:function(e){Bridge.global.System.Diagnostics.Debug.WriteLine$2(null!=e?Bridge.toString(e):null)},WriteLine$1:function(e,t){Bridge.global.System.Diagnostics.Debug.WriteLine$4(null!=e?Bridge.toString(e):null,t)},WriteLine$3:function(e,t){void 0===t&&(t=[]),Bridge.global.System.Diagnostics.Debug.WriteLine$2(Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[null,e].concat(t)))},WriteLine$4:function(e,t){null==t?Bridge.global.System.Diagnostics.Debug.WriteLine$2(e):Bridge.global.System.Diagnostics.Debug.WriteLine$2((t||"")+":"+(e||""))},Write$2:function(e){Bridge.global.System.Diagnostics.Debug.s_lock,null!=e?(Bridge.global.System.Diagnostics.Debug.s_needIndent&&(e=(Bridge.global.System.Diagnostics.Debug.GetIndentString()||"")+(e||""),Bridge.global.System.Diagnostics.Debug.s_needIndent=!1),Bridge.global.System.Diagnostics.Debug.s_WriteCore(e),Bridge.global.System.String.endsWith(e,"\\n")&&(Bridge.global.System.Diagnostics.Debug.s_needIndent=!0)):Bridge.global.System.Diagnostics.Debug.s_WriteCore("")},Write:function(e){Bridge.global.System.Diagnostics.Debug.Write$2(null!=e?Bridge.toString(e):null)},Write$3:function(e,t){null==t?Bridge.global.System.Diagnostics.Debug.Write$2(e):Bridge.global.System.Diagnostics.Debug.Write$2((t||"")+":"+(e||""))},Write$1:function(e,t){Bridge.global.System.Diagnostics.Debug.Write$3(null!=e?Bridge.toString(e):null,t)},WriteIf$2:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.Write$2(t)},WriteIf:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.Write(t)},WriteIf$3:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.Write$3(t,n)},WriteIf$1:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.Write$1(t,n)},WriteLineIf:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.WriteLine(t)},WriteLineIf$1:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$1(t,n)},WriteLineIf$2:function(e,t){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$2(t)},WriteLineIf$3:function(e,t,n){e&&Bridge.global.System.Diagnostics.Debug.WriteLine$4(t,n)},GetIndentString:function(){var e,t=Bridge.Int.mul(Bridge.global.System.Diagnostics.Debug.IndentSize,Bridge.global.System.Diagnostics.Debug.IndentLevel);return Bridge.global.System.Nullable.eq(null!=Bridge.global.System.Diagnostics.Debug.s_indentString?Bridge.global.System.Diagnostics.Debug.s_indentString.length:null,t)?Bridge.global.System.Diagnostics.Debug.s_indentString:(e=Bridge.global.System.String.fromCharCount(32,t),Bridge.global.System.Diagnostics.Debug.s_indentString=e,e)},ShowAssertDialog:function(e,t,n){if(!Bridge.global.System.Diagnostics.Debugger.IsAttached){var i=new Bridge.global.System.Diagnostics.Debug.DebugAssertException(t,n,e);Bridge.global.System.Environment.FailFast$1(i.Message,i)}},WriteCore:function(e){Bridge.global.System.Diagnostics.Debug.WriteToDebugger(e),Bridge.global.System.Diagnostics.Debug.s_shouldWriteToStdErr&&Bridge.global.System.Diagnostics.Debug.WriteToStderr(e)},WriteToDebugger:function(e){Bridge.global.System.Diagnostics.Debugger.IsLogging()?Bridge.global.System.Diagnostics.Debugger.Log(0,null,e):Bridge.global.System.Console.WriteLine(e)},WriteToStderr:function(e){Bridge.global.System.Console.WriteLine(e)}}}}),Bridge.define("System.Diagnostics.Debugger",{statics:{fields:{DefaultCategory:null},props:{IsAttached:{get:function(){return!0}}},methods:{IsLogging:function(){return!0},Launch:function(){return!0},Log:function(){},NotifyOfCrossThreadDependency:function(){}}}}),Bridge.define("System.Diagnostics.Stopwatch",{ctor:function(){this.$initialize(),this.reset()},start:function(){this.isRunning||(this._startTime=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp(),this.isRunning=!0)},stop:function(){if(this.isRunning){var e=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp().sub(this._startTime);this._elapsed=this._elapsed.add(e),this.isRunning=!1}},reset:function(){this._startTime=Bridge.global.System.Int64.Zero,this._elapsed=Bridge.global.System.Int64.Zero,this.isRunning=!1},restart:function(){this.isRunning=!1,this._elapsed=Bridge.global.System.Int64.Zero,this._startTime=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp(),this.start()},ticks:function(){var e,t=this._elapsed;return this.isRunning&&(e=Bridge.global.System.Diagnostics.Stopwatch.getTimestamp().sub(this._startTime),t=t.add(e)),t},milliseconds:function(){return this.ticks().mul(1e3).div(Bridge.global.System.Diagnostics.Stopwatch.frequency)},timeSpan:function(){return new Bridge.global.System.TimeSpan(this.milliseconds().mul(1e4))},statics:{startNew:function(){var e=new Bridge.global.System.Diagnostics.Stopwatch;return e.start(),e}}}),"undefined"!=typeof window&&window.performance&&window.performance.now?(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e6),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!0,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){return new Bridge.global.System.Int64(Math.round(1e3*window.performance.now()))}):void 0!==r&&r.hrtime?(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e9),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!0,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){var e=r.hrtime();return new Bridge.global.System.Int64(e[0]).mul(1e9).add(e[1])}):(Bridge.global.System.Diagnostics.Stopwatch.frequency=new Bridge.global.System.Int64(1e3),Bridge.global.System.Diagnostics.Stopwatch.isHighResolution=!1,Bridge.global.System.Diagnostics.Stopwatch.getTimestamp=function(){return new Bridge.global.System.Int64((new Date).valueOf())}),Bridge.global.System.Diagnostics.Contracts.Contract={reportFailure:function(e,t,n,i,r){var s,a,l=n.toString();throw s=(l=(l=l.substring(l.indexOf("return")+7)).substr(0,l.lastIndexOf(";")))?"Contract \'"+l+"\' failed":"Contract failed",a=t?s+": "+t:s,r?new r(l,t):new Bridge.global.System.Diagnostics.Contracts.ContractException(e,a,t,l,i)},assert:function(e,t,n,i){n.call(t)||Bridge.global.System.Diagnostics.Contracts.Contract.reportFailure(e,i,n,null)},requires:function(e,t,n,i){n.call(t)||Bridge.global.System.Diagnostics.Contracts.Contract.reportFailure(0,i,n,null,e)},forAll:function(e,t,n){if(!n)throw new Bridge.global.System.ArgumentNullException.$ctor1("predicate");for(;e=(e.$s?e.$s[0]:e.length))throw new Bridge.global.System.IndexOutOfRangeException.$ctor1("Index 0 out of range");var n,i=t[0];if(e.$s)for(n=1;n=e.$s[n])throw new Bridge.global.System.IndexOutOfRangeException.$ctor1("Index "+n+" out of range");i=i*e.$s[n]+t[n]}return i},index:function(e,t){if(e<0||e>=t.length)throw new Bridge.global.System.IndexOutOfRangeException;return e},$get:function(e){var t=this[Bridge.global.System.Array.toIndex(this,e)];return void 0!==t?t:this.$v},get:function(e){var t,n,i;if(arguments.length<2)throw new Bridge.global.System.ArgumentNullException.$ctor1("indices");for(t=Array.prototype.slice.call(arguments,1),n=0;n=(e.$s?e.$s.length:1))throw new Bridge.global.System.IndexOutOfRangeException;return e.$s?e.$s[t]:e.length},getRank:function(e){return e.$type?e.$type.$rank:e.$s?e.$s.length:1},getLower:function(e,t){return Bridge.global.System.Array.getLength(e,t),0},create:function(e,t,n,i){var r,s,a,l,o,u,d,g,c,m,h;if(null===i)throw new Bridge.global.System.ArgumentNullException.$ctor1("length");if(r=[],s=arguments.length>3?1:0,r.$v=e,r.$s=[],r.get=Bridge.global.System.Array.$get,r.set=Bridge.global.System.Array.$set,i&&Bridge.isArray(i))for(a=0;a=0;l--)d=c%r.$s[l],g.unshift(d),c=Bridge.Int.div(c-d,r.$s[l]);for(o=t,d=0;de.length)throw new Bridge.global.System.IndexOutOfRangeException;for(var r=Bridge.isFunction(t);--i>=0;)e[n+i]=r?t():t},copy:function(e,t,n,i,r){if(!n)throw new Bridge.global.System.ArgumentNullException.$ctor3("dest","Value cannot be null");if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor3("src","Value cannot be null");if(t<0||i<0||r<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bound","Number was less than the array\'s lower bound in the first dimension");if(r>e.length-t||r>n.length-i)throw new Bridge.global.System.ArgumentException.$ctor1("Destination array was not long enough. Check destIndex and length, and the array\'s lower bounds");if(t=0;)n[i+r]=e[t+r];else for(var s=0;s-1:n&&Bridge.isFunction(e[i="System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(n)+"$contains"])||Bridge.isFunction(e[i="System$Collections$IList$contains"])?e[i](t):!!Bridge.isFunction(e.contains)&&e.contains(t)},remove:function(e,t,n){var i,r;if(Bridge.global.System.Array.checkReadOnly(e,n),Bridge.isArray(e)){if((r=Bridge.global.System.Array.indexOf(e,t))>-1)return e.splice(r,1),!0}else{if(n&&Bridge.isFunction(e[i="System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(n)+"$remove"])||Bridge.isFunction(e[i="System$Collections$IList$remove"]))return e[i](t);if(Bridge.isFunction(e.remove))return e.remove(t)}return!1},insert:function(e,t,n,i){var r;Bridge.global.System.Array.checkReadOnly(e,i),i&&(n=Bridge.global.System.Array.checkNewElementType(n,i)),i&&Bridge.isFunction(e[r="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(i)+"$insert"])?e[r](t,n):Bridge.isFunction(e[r="System$Collections$IList$insert"])?e[r](t,n):Bridge.isFunction(e.insert)&&e.insert(t,n)},removeAt:function(e,t,n){var i;Bridge.global.System.Array.checkReadOnly(e,n),Bridge.isArray(e)?e.splice(t,1):n&&Bridge.isFunction(e[i="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(n)+"$removeAt"])?e[i](t):Bridge.isFunction(e[i="System$Collections$IList$removeAt"])?e[i](t):Bridge.isFunction(e.removeAt)&&e.removeAt(t)},getItem:function(e,t,n){var i,r;return Bridge.isArray(e)?e.$type&&null!=Bridge.getDefaultValue(e.$type.$elementType)?Bridge.box(e[t],e.$type.$elementType):e[t]:n&&Bridge.isFunction(e[i="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(n)+"$getItem"])?e[i](t):(Bridge.isFunction(e.get)?r=e.get(t):Bridge.isFunction(e.getItem)?r=e.getItem(t):Bridge.isFunction(e[i="System$Collections$IList$$getItem"])?r=e[i](t):Bridge.isFunction(e.get_Item)&&(r=e.get_Item(t)),n&&null!=Bridge.getDefaultValue(n)?Bridge.box(r,n):r)},setItem:function(e,t,n,i){var r;if(Bridge.isArray(e))e.$type&&(n=Bridge.global.System.Array.checkElementType(n,e.$type.$elementType)),e[t]=n;else if(i&&(n=Bridge.global.System.Array.checkElementType(n,i)),Bridge.isFunction(e.set))e.set(t,n);else if(Bridge.isFunction(e.setItem))e.setItem(t,n);else{if(i&&Bridge.isFunction(e[r="System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(i)+"$setItem"])||i&&Bridge.isFunction(e[r="System$Collections$IList$setItem"]))return e[r](t,n);Bridge.isFunction(e.set_Item)&&e.set_Item(t,n)}},checkElementType:function(e,t){var n=Bridge.unbox(e,!0);if(Bridge.isNumber(n)){if(t===Bridge.global.System.Decimal)return new Bridge.global.System.Decimal(n);if(t===Bridge.global.System.Int64)return new Bridge.global.System.Int64(n);if(t===Bridge.global.System.UInt64)return new Bridge.global.System.UInt64(n)}if(!Bridge.is(e,t)){if(null==e)return Bridge.getDefaultValue(t);throw new Bridge.global.System.ArgumentException.$ctor1("Cannot widen from source type to target type either because the source type is a not a primitive type or the conversion cannot be accomplished.")}return n},resize:function(e,t,n){var i;if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor3("newSize",t,"newSize cannot be less than 0.");var r=0,s=Bridge.isFunction(n),a=e.v;for(a?(r=a.length,a.length=t):a=new Array(t),i=r;i>1);try{o=Bridge.global.System.Collections.Generic.Comparer$1.get(r)(e[l],i)}catch(e){throw new Bridge.global.System.InvalidOperationException.$ctor2("Failed to compare two elements in the array.",e)}if(0===o)return l;o<0?s=l+1:a=l-1}return~s},sort:function(e,t,n,i){var r,s;if(!e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2!==arguments.length||"function"!=typeof t)if(2===arguments.length&&"object"==typeof t&&(i=t,t=null),Bridge.isNumber(t)||(t=0),Bridge.isNumber(n)||(n=e.length),i||(i=Bridge.global.System.Collections.Generic.Comparer$1.$default),0===t&&n===e.length)e.sort(Bridge.fn.bind(i,Bridge.global.System.Collections.Generic.Comparer$1.get(i)));else for((r=e.slice(t,t+n)).sort(Bridge.fn.bind(i,Bridge.global.System.Collections.Generic.Comparer$1.get(i))),s=t;sn||n>t)||e[r]>t||(n=e[r]);return n},addRange:function(e,t){if(Bridge.isArray(t))e.push.apply(e,t);else{var n=Bridge.getEnumerator(t);try{for(;n.moveNext();)e.push(n.Current)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.Dispose()}}},convertAll:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("converter");return e.map(t)},find:function(e,t,n){if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(n))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var i=0;ie.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0||t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(!Bridge.hasValue(i))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(r=t+n,s=t;s=0;i--)if(n(t[i]))return t[i];return Bridge.getDefaultValue(e)},findLastIndex:function(e,t,n,i){var r,s;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2===arguments.length?(i=t,t=e.length-1,n=e.length):3===arguments.length&&(i=n,n=t+1),!Bridge.hasValue(i))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");if(0===e.length){if(-1!==t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex")}else if(t<0||t>=e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0||t-n+1<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");for(r=t-n,s=t;s>r;s--)if(i(e[s]))return s;return-1},forEach:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("action");for(var n=0;n=e.length&&e.length>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","out of range");if(i<0||i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","out of range");return Bridge.global.System.Array.indexOf(e,t,n,i)},isFixedSize:function(){return!0},isSynchronized:function(){return!1},lastIndexOfT:function(e,t,n,i){var r,s,a;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(2===arguments.length?(n=e.length-1,i=e.length):3===arguments.length&&(i=0===e.length?0:n+1),n<0||n>=e.length&&e.length>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","out of range");if(i<0||n-i+1<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","out of range");for(r=n-i+1,s=n;s>=r;s--)if((a=e[s])===t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default.equals2(a,t))return s;return-1},syncRoot:function(e){return e},trueForAll:function(e,t){if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(!Bridge.hasValue(t))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var n=0;n=this.entries[r[s]].length-1)&&(i=-1,s++),!(s>=r.length||(i++,0))},function(){return s<0||s>=r.length?new(Bridge.global.System.Collections.Generic.KeyValuePair$2(e,t)):n(this.isSimpleKey?this.entries[r[s]]:this.entries[r[s]][i])},function(){s=-1},null,this,Bridge.global.System.Collections.Generic.KeyValuePair$2(e,t))},GetEnumerator:function(){return this.getCustomEnumerator(function(e){return e})}}}),Bridge.global.System.Collections.Generic.Dictionary$2.getTypeParameters=function(e){var t,n,i;if(Bridge.global.System.String.startsWith(e.$$name,"System.Collections.Generic.IDictionary"))t=e;else for(n=Bridge.Reflection.getInterfaces(e),i=0;i0){var n=Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e);this._size>0&&Bridge.global.System.Array.copy(this._items,0,n,0,this._size),this._items=n}else this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray}},Count:{get:function(){return this._size}},System$Collections$IList$IsFixedSize:{get:function(){return!1}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return!1}},System$Collections$IList$IsReadOnly:{get:function(){return!1}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"setItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$IReadOnlyList$1$setItem"],"getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$IList$clear","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","removeAt","System$Collections$IList$removeAt","removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt"],ctors:{ctor:function(){this.$initialize(),this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray},$ctor2:function(t){if(this.$initialize(),t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("capacity");this._items=0===t?Bridge.global.System.Collections.Generic.List$1(e)._emptyArray:Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e)},$ctor1:function(t){var n,i,r;if(this.$initialize(),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e))))0===(i=Bridge.global.System.Array.getCount(n,e))?this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray:(this._items=Bridge.global.System.Array.init(i,function(){return Bridge.getDefaultValue(e)},e),Bridge.global.System.Array.copyTo(n,this._items,0,e),this._size=i);else{this._size=0,this._items=Bridge.global.System.Collections.Generic.List$1(e)._emptyArray,r=Bridge.getEnumerator(t,e);try{for(;r.System$Collections$IEnumerator$moveNext();)this.add(r[Bridge.geti(r,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")])}finally{Bridge.hasValue(r)&&r.System$IDisposable$Dispose()}}}},methods:{getItem:function(e){if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;return this._items[Bridge.global.System.Array.index(e,this._items)]},setItem:function(e,t){if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;this._items[Bridge.global.System.Array.index(e,this._items)]=t,this._version=this._version+1|0},System$Collections$IList$getItem:function(e){return this.getItem(e)},System$Collections$IList$setItem:function(t,n){if(null==n&&null!=Bridge.getDefaultValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("value");try{this.setItem(t,Bridge.cast(Bridge.unbox(n),e))}catch(e){throw e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.InvalidCastException)?new Bridge.global.System.ArgumentException.$ctor1("value"):e}},add:function(e){this._size===this._items.length&&this.EnsureCapacity(this._size+1|0),this._items[Bridge.global.System.Array.index(Bridge.identity(this._size,this._size=this._size+1|0),this._items)]=e,this._version=this._version+1|0},System$Collections$IList$add:function(t){if(null==t&&null!=Bridge.getDefaultValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("item");try{this.add(Bridge.cast(Bridge.unbox(t),e))}catch(e){throw e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.InvalidCastException)?new Bridge.global.System.ArgumentException.$ctor1("item"):e}return this.Count-1|0},AddRange:function(e){this.InsertRange(this._size,e)},AsReadOnly:function(){return new(Bridge.global.System.Collections.ObjectModel.ReadOnlyCollection$1(e))(this)},BinarySearch$2:function(e,t,n,i){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((this._size-e|0)0&&(Bridge.global.System.Array.fill(this._items,Bridge.getDefaultValue(e),0,this._size),this._size=0),this._version=this._version+1|0},contains:function(t){var n,i,r;if(null==t){for(n=0;n>>0>2146435071&&(n=2146435071),n>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t<0||e>(this._size-t|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(Bridge.staticEquals(n,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(i=e+t|0,r=e;r=0;n=n-1|0)if(t(this._items[Bridge.global.System.Array.index(n,this._items)]))return this._items[Bridge.global.System.Array.index(n,this._items)];return Bridge.getDefaultValue(e)},FindLastIndex$2:function(e){return this.FindLastIndex(this._size-1|0,this._size,e)},FindLastIndex$1:function(e,t){return this.FindLastIndex(e,e+1|0,t)},FindLastIndex:function(e,t,n){var i,r;if(Bridge.staticEquals(n,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");if(0===this._size){if(-1!==e)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex")}else if(e>>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t<0||(1+(e-t|0)|0)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");for(i=e-t|0,r=e;r>i;r=r-1|0)if(n(this._items[Bridge.global.System.Array.index(r,this._items)]))return r;return-1},ForEach:function(e){var t,n;if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(t=this._version,n=0;nthis._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");return Bridge.global.System.Array.indexOfT(this._items,e,t,this._size-t|0)},IndexOf$1:function(e,t,n){if(t>this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0||t>(this._size-n|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");return Bridge.global.System.Array.indexOfT(this._items,e,t,n)},insert:function(e,t){if(e>>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");this._size===this._items.length&&this.EnsureCapacity(this._size+1|0),e>>0>this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(null!=(i=Bridge.as(n,Bridge.global.System.Collections.Generic.ICollection$1(e))))(r=Bridge.global.System.Array.getCount(i,e))>0&&(this.EnsureCapacity(this._size+r|0),t=this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");return this.LastIndexOf$2(e,t,t+1|0)},LastIndexOf$2:function(e,t,n){if(0!==this.Count&&t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(0!==this.Count&&n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(0===this._size)return-1;if(t>=this._size)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n>(t+1|0))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");return Bridge.global.System.Array.lastIndexOfT(this._items,e,t,n)},remove:function(e){var t=this.indexOf(e);return t>=0&&(this.removeAt(t),!0)},System$Collections$IList$remove:function(t){Bridge.global.System.Collections.Generic.List$1(e).IsCompatibleObject(t)&&this.remove(Bridge.cast(Bridge.unbox(t),e))},RemoveAll:function(t){var n,i,r;if(Bridge.staticEquals(t,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(n=0;n=this._size)return 0;for(i=n+1|0;i>>0>=this._size>>>0)throw new Bridge.global.System.ArgumentOutOfRangeException.ctor;this._size=this._size-1|0,t0&&(this._size,this._size=this._size-n|0,t0)if(this._items.length===this._size)Bridge.global.System.Array.sort(this._items,t);else{var n=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);Bridge.global.System.Array.copy(this._items,0,n,0,this._size),Bridge.global.System.Array.sort(n,t),Bridge.global.System.Array.copy(n,0,this._items,0,this._size)}},ToArray:function(){var t=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);return Bridge.global.System.Array.copy(this._items,0,t,0,this._size),t},TrimExcess:function(){var e=Bridge.Int.clip32(.9*this._items.length);this._size0&&Bridge.global.System.Array.copy(this._items,0,t,0,this._size),t}}}}),Bridge.define("System.Collections.Generic.KeyNotFoundException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"The given key was not present in the dictionary."),this.HResult=-2146232969},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146232969},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146232969}}}),Bridge.global.System.Collections.Generic.List$1.getElementType=function(e){var t,n,i;if(Bridge.global.System.String.startsWith(e.$$name,"System.Collections.Generic.IList"))t=e;else for(n=Bridge.Reflection.getInterfaces(e),i=0;i=this._str.length)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration already finished.");return this._currentElement}}},alias:["clone","System$ICloneable$clone","moveNext","System$Collections$IEnumerator$moveNext","Dispose","System$IDisposable$Dispose","Current",["System$Collections$Generic$IEnumerator$1$System$Char$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"],"reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e){this.$initialize(),this._str=e,this._index=-1}},methods:{clone:function(){return Bridge.clone(this)},moveNext:function(){return this._index<(this._str.length-1|0)?(this._index=this._index+1|0,this._currentElement=this._str.charCodeAt(this._index),!0):(this._index=this._str.length,!1)},Dispose:function(){null!=this._str&&(this._index=this._str.length),this._str=null},reset:function(){this._currentElement=0,this._index=-1}}}),Bridge.define("System.String",{inherits:[Bridge.global.System.IComparable,Bridge.global.System.ICloneable,Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.Char)],statics:{$is:function(e){return"string"==typeof e},charCodeAt:function(e,t){t=t||0;var n,i,r=e.charCodeAt(t);if(55296<=r&&r<=56319){if(n=r,i=e.charCodeAt(t+1),isNaN(i))throw new Bridge.global.System.Exception("High surrogate not followed by low surrogate");return 1024*(n-55296)+(i-56320)+65536}return!(56320<=r&&r<=57343)&&r},fromCharCode:function(e){return e>65535?(e-=65536,String.fromCharCode(55296+(e>>10),56320+(1023&e))):String.fromCharCode(e)},fromCharArray:function(e,t,n){var i,r,s;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("chars");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("length");if(e.length-te.length&&(n=e.length-t),r=0;r=r;s--)if(t.indexOf(e.charAt(s))>=0)return s;return-1},isNullOrWhiteSpace:function(e){return!e||Bridge.global.System.Char.isWhiteSpace(e)},isNullOrEmpty:function(e){return!e},fromCharCount:function(e,t){if(t>=0)return String(Array(t+1).join(String.fromCharCode(e)));throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","cannot be less than zero")},format:function(e,t){return Bridge.global.System.String._format(Bridge.global.System.Globalization.CultureInfo.getCurrentCulture(),e,Array.isArray(t)&&2==arguments.length?t:Array.prototype.slice.call(arguments,1))},formatProvider:function(e,t,n){return Bridge.global.System.String._format(e,t,Array.isArray(n)&&3==arguments.length?n:Array.prototype.slice.call(arguments,2))},_format:function(e,t,n){if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("format");var i=this,r=this.decodeBraceSequence;return t.replace(/(\\{+)((\\d+|[a-zA-Z_$]\\w+(?:\\.[a-zA-Z_$]\\w+|\\[\\d+\\])*)(?:\\,(-?\\d*))?(?:\\:([^\\}]*))?)(\\}+)|(\\{+)|(\\}+)/g,function(t,s,a,l,o,u,d,g,c){return g?r(g):c?r(c):s.length%2==0||d.length%2==0?r(s)+a+r(d):r(s,!0)+i.handleElement(e,l,o,u,n)+r(d,!0)})},handleElement:function(e,t,n,i,r){var s;if((t=parseInt(t,10))>r.length-1)throw new Bridge.global.System.FormatException.$ctor1("Input string was not in a correct format.");return null==(s=r[t])&&(s=""),i&&s.$boxed&&"enum"===s.type.$kind?s=Bridge.global.System.Enum.format(s.type,s.v,i):i&&s.$boxed&&s.type.format?s=s.type.format(Bridge.unbox(s,!0),i,e):i&&Bridge.is(s,Bridge.global.System.IFormattable)&&(s=Bridge.format(Bridge.unbox(s,!0),i,e)),s=Bridge.isNumber(s)?Bridge.Int.format(s,i,e):Bridge.isDate(s)?Bridge.global.System.DateTime.format(s,i,e):""+Bridge.toString(s),n&&(n=parseInt(n,10),Bridge.isNumber(n)||(n=null)),Bridge.global.System.String.alignString(Bridge.toString(s),n)},decodeBraceSequence:function(e,t){return e.substr(0,(e.length+(t?0:1))/2)},alignString:function(e,t,n,i,r){if(null==e||!t)return e;if(n||(n=" "),Bridge.isNumber(n)&&(n=String.fromCharCode(n)),i||(i=t<0?1:2),t=Math.abs(t),r&&e.length>t&&(e=e.substring(0,t)),t+1>=e.length)switch(i){case 2:e=Array(t+1-e.length).join(n)+e;break;case 3:var s=t-e.length,a=Math.ceil(s/2);e=Array(s-a+1).join(n)+e+Array(a+1).join(n);break;case 1:default:e+=Array(t+1-e.length).join(n)}return e},startsWith:function(e,t){return!t.length||!(t.length>e.length)&&Bridge.global.System.String.equals(e.slice(0,t.length),t,arguments[2])},endsWith:function(e,t){return!t.length||!(t.length>e.length)&&Bridge.global.System.String.equals(e.slice(e.length-t.length,e.length),t,arguments[2])},contains:function(e,t){if(null==t)throw new Bridge.global.System.ArgumentNullException;return null!=e&&e.indexOf(t)>-1},indexOfAny:function(e,t){var n,i,r,s,a,l;if(null==t)throw new Bridge.global.System.ArgumentNullException;if(null==e||""===e)return-1;if((n=arguments.length>2?arguments[2]:0)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero");if((i=arguments.length>3?arguments[3]:e.length-n)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index and length must refer to a location within the string");for(r=e.substr(n,i),s=0;s-1)return l+n;return-1},indexOf:function(e,t){var n,i,r,s;if(null==t)throw new Bridge.global.System.ArgumentNullException;if(null==e||""===e)return-1;if((n=arguments.length>2?arguments[2]:0)<0||n>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero and must refer to a location within the string");if(""===t)return arguments.length>2?n:0;if((i=arguments.length>3?arguments[3]:e.length-n)<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");if(i>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index and length must refer to a location within the string");return r=e.substr(n,i),(s=5===arguments.length&&arguments[4]%2!=0?r.toLocaleUpperCase().indexOf(t.toLocaleUpperCase()):r.indexOf(t))>-1?5===arguments.length?0===Bridge.global.System.String.compare(t,r.substr(s,t.length),arguments[4])?s+n:-1:s+n:-1},equals:function(){return 0===Bridge.global.System.String.compare.apply(this,arguments)},compare:function(e,t){if(null==e)return null==t?0:-1;if(null==t)return 1;if(arguments.length>=3)if(Bridge.isBoolean(arguments[2])){if(arguments[2]&&(e=e.toLocaleUpperCase(),t=t.toLocaleUpperCase()),4===arguments.length)return e.localeCompare(t,arguments[3].name)}else switch(arguments[2]){case 1:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture().name,{sensitivity:"accent"});case 2:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.invariantCulture.name);case 3:return e.localeCompare(t,Bridge.global.System.Globalization.CultureInfo.invariantCulture.name,{sensitivity:"accent"});case 4:return e===t?0:e>t?1:-1;case 5:return e.toUpperCase()===t.toUpperCase()?0:e.toUpperCase()>t.toUpperCase()?1:-1}return e.localeCompare(t)},toCharArray:function(e,t,n){var i,r;if(t<0||t>e.length||t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex cannot be less than zero and must refer to a location within the string");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","must be non-negative");for(Bridge.hasValue(t)||(t=0),Bridge.hasValue(n)||(n=e.length),i=[],r=t;r0?t.substring(0,e)+n+t.substring(e,t.length):n+t},remove:function(e,t,n){if(null==e)throw new Bridge.global.System.NullReferenceException;if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","StartIndex cannot be less than zero");if(null!=n){if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than zero");if(n>e.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Index and count must refer to a location within the string")}else if(t>=e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startIndex","startIndex must be less than length of string");return null==n||t+n>e.length?e.substr(0,t):e.substr(0,t)+e.substr(t+n)},split:function(e,t,n,i){for(var r,s=Bridge.hasValue(t)&&0!==t.length?new RegExp(t.map(Bridge.global.System.String.escape).join("|"),"g"):new RegExp("\\\\s","g"),a=[],l=0;;l=s.lastIndex){if(!(r=s.exec(e)))return(1!==i||l!==e.length)&&a.push(e.substr(l)),a;if(1!==i||r.index>l){if(a.length===n-1)return a.push(e.substr(l)),a;a.push(e.substring(l,r.index))}}},trimEnd:function(e,t){return e.replace(t?new RegExp("["+Bridge.global.System.String.escape(String.fromCharCode.apply(null,t))+"]+$"):/\\s*$/,"")},trimStart:function(e,t){return e.replace(t?new RegExp("^["+Bridge.global.System.String.escape(String.fromCharCode.apply(null,t))+"]+"):/^\\s*/,"")},trim:function(e,t){return Bridge.global.System.String.trimStart(Bridge.global.System.String.trimEnd(e,t),t)},trimStartZeros:function(e){return e.replace(new RegExp("^[ 0+]+(?=.)"),"")},concat:function(e){for(var t=1==arguments.length&&Array.isArray(e)?e:[].slice.call(arguments),n="",i=0;ie.length-t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("sourceIndex");if(i>n.length-r||i<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("destinationIndex");if(r>0)for(var s=0;s0?r.setException(a):s?r.setCanceled():r.setResult(t))})}(i);return r.task},whenAny:function(e){if(Bridge.is(e,Bridge.global.System.Collections.IEnumerable)?e=Bridge.toArray(e):Bridge.isArray(e)||(e=Array.prototype.slice.call(arguments,0)),!e.length)throw new Bridge.global.System.ArgumentException.$ctor1("At least one task is required");for(var t=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,n=0;n=0?e:arguments.length+e]}}(t):"function"!=typeof t&&(t=function(){return Array.prototype.slice.call(arguments,0)}),e.then(function(){r.setResult(t?t.apply(null,arguments):Array.prototype.slice.call(arguments,0))},function(){r.setException(n?n.apply(null,arguments):new Bridge.PromiseException(Array.prototype.slice.call(arguments,0)))},i),r.task}},continueWith:function(e,t){var n=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,i=this,r=t?function(){n.setResult(e(i))}:function(){try{n.setResult(e(i))}catch(e){n.setException(Bridge.global.System.Exception.create(e))}};return this.isCompleted()?(Bridge.global.System.Threading.Tasks.Task.queue.push(r),Bridge.global.System.Threading.Tasks.Task.runQueue()):this.callbacks.push(r),n.task},start:function(){if(this.status!==Bridge.global.System.Threading.Tasks.TaskStatus.created)throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already started.");var e=this;this.status=Bridge.global.System.Threading.Tasks.TaskStatus.running,Bridge.global.System.Threading.Tasks.Task.schedule(function(){try{var t=e.action(e.state);delete e.action,delete e.state,e.complete(t)}catch(t){e.fail(new Bridge.global.System.AggregateException(null,[Bridge.global.System.Exception.create(t)]))}})},runCallbacks:function(){for(var e=this,t=0;t0?this.exception.innerExceptions.getItem(0):null:this.exception;default:throw new Bridge.global.System.InvalidOperationException.$ctor1("Task is not yet completed.")}},getResult:function(){return this._getResult(!1)},dispose:function(){},getAwaiter:function(){return this},getAwaitedResult:function(){return this._getResult(!0)}}),Bridge.define("System.Threading.Tasks.Task$1",function(){return{inherits:[Bridge.global.System.Threading.Tasks.Task],ctor:function(e,t){this.$initialize(),Bridge.global.System.Threading.Tasks.Task.ctor.call(this,e,t)}}}),Bridge.define("System.Threading.Tasks.TaskStatus",{$kind:"enum",$statics:{created:0,waitingForActivation:1,waitingToRun:2,running:3,waitingForChildrenToComplete:4,ranToCompletion:5,canceled:6,faulted:7}}),Bridge.define("System.Threading.Tasks.TaskCompletionSource",{ctor:function(){this.$initialize(),this.task=new Bridge.global.System.Threading.Tasks.Task,this.task.status=Bridge.global.System.Threading.Tasks.TaskStatus.running},setCanceled:function(){if(!this.task.cancel())throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},setResult:function(e){if(!this.task.complete(e))throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},setException:function(e){if(!this.trySetException(e))throw new Bridge.global.System.InvalidOperationException.$ctor1("Task was already completed.")},trySetCanceled:function(){return this.task.cancel()},trySetResult:function(e){return this.task.complete(e)},trySetException:function(e){return Bridge.is(e,Bridge.global.System.Exception)&&(e=[e]),this.task.fail(new Bridge.global.System.AggregateException(null,e))}}),Bridge.define("System.Threading.CancellationTokenSource",{inherits:[Bridge.global.System.IDisposable],config:{alias:["dispose","System$IDisposable$Dispose"]},ctor:function(e){this.$initialize(),this.timeout="number"==typeof e&&e>=0?setTimeout(Bridge.fn.bind(this,this.cancel),e,-1):null,this.isCancellationRequested=!1,this.token=new Bridge.global.System.Threading.CancellationToken(this),this.handlers=[]},cancel:function(e){var t,n,i;if(!this.isCancellationRequested){for(this.isCancellationRequested=!0,t=[],n=this.handlers,this.clean(),i=0;i0&&-1!==e)throw new Bridge.global.System.AggregateException(null,t)}},cancelAfter:function(e){this.isCancellationRequested||(this.timeout&&clearTimeout(this.timeout),this.timeout=setTimeout(Bridge.fn.bind(this,this.cancel),e,-1))},register:function(e,t){if(this.isCancellationRequested)return e(t),new Bridge.global.System.Threading.CancellationTokenRegistration;var n={f:e,s:t};return this.handlers.push(n),new Bridge.global.System.Threading.CancellationTokenRegistration(this,n)},deregister:function(e){var t=this.handlers.indexOf(e);t>=0&&this.handlers.splice(t,1)},dispose:function(){this.clean()},clean:function(){if(this.timeout&&clearTimeout(this.timeout),this.timeout=null,this.handlers=[],this.links){for(var e=0;e19)return!1;n=/[^0-9 \\-]+/,a=!0}if(!n.test(e))return!1;for(i=0,r=2-(e=e.split(a?"-":/[- ]/).join("")).length%2;r<=e.length;r+=2)i+=parseInt(e.charAt(r-1));for(r=e.length%2+1;r0}}}),Bridge.define("System.SerializableAttribute",{inherits:[Bridge.global.System.Attribute],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.ComponentModel.INotifyPropertyChanged",{$kind:"interface"}),Bridge.define("System.ComponentModel.PropertyChangedEventArgs",{ctor:function(e,t,n){this.$initialize(),this.propertyName=e,this.newValue=t,this.oldValue=n}}),(h={}).convert={typeCodes:{Empty:0,Object:1,DBNull:2,Boolean:3,Char:4,SByte:5,Byte:6,Int16:7,UInt16:8,Int32:9,UInt32:10,Int64:11,UInt64:12,Single:13,Double:14,Decimal:15,DateTime:16,String:18},toBoolean:function(e,t){var n,i;switch(typeof(e=Bridge.unbox(e,!0))){case"boolean":return e;case"number":return 0!==e;case"string":if("true"===(n=e.toLowerCase().trim()))return!0;if("false"===n)return!1;throw new Bridge.global.System.FormatException.$ctor1("String was not recognized as a valid Boolean.");case"object":if(null==e)return!1;if(e instanceof Bridge.global.System.Decimal)return!e.isZero();if(Bridge.global.System.Int64.is64Bit(e))return e.ne(0)}return i=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(i,h.convert.typeCodes.Boolean),h.convert.convertToType(h.convert.typeCodes.Boolean,e,t||null)},toChar:function(e,t,n){var i,r=h.convert.typeCodes,s=Bridge.is(e,Bridge.global.System.Char);if((e=Bridge.unbox(e,!0))instanceof Bridge.global.System.Decimal&&(e=e.toFloat()),(e instanceof Bridge.global.System.Int64||e instanceof Bridge.global.System.UInt64)&&(e=e.toNumber()),i=typeof e,(n=n||h.internal.suggestTypeCode(e))===r.String&&null==e&&(i="string"),n!==r.Object||s)switch(i){case"boolean":h.internal.throwInvalidCastEx(r.Boolean,r.Char);case"number":return(h.internal.isFloatingType(n)||e%1!=0)&&h.internal.throwInvalidCastEx(n,r.Char),h.internal.validateNumberRange(e,r.Char,!0),e;case"string":if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");if(1!==e.length)throw new Bridge.global.System.FormatException.$ctor1("String must be exactly one character long.");return e.charCodeAt(0)}if(n===r.Object||"object"===i){if(null==e)return 0;Bridge.isDate(e)&&h.internal.throwInvalidCastEx(r.DateTime,r.Char)}return h.internal.throwInvalidCastEx(n,h.convert.typeCodes.Char),h.convert.convertToType(r.Char,e,t||null)},toSByte:function(e,t,n){return h.internal.toNumber(e,t||null,h.convert.typeCodes.SByte,n||null)},toByte:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Byte)},toInt16:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Int16)},toUInt16:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt16)},toInt32:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Int32)},toUInt32:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt32)},toInt64:function(e,t){var n=h.internal.toNumber(e,t||null,h.convert.typeCodes.Int64);return new Bridge.global.System.Int64(n)},toUInt64:function(e,t){var n=h.internal.toNumber(e,t||null,h.convert.typeCodes.UInt64);return new Bridge.global.System.UInt64(n)},toSingle:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Single)},toDouble:function(e,t){return h.internal.toNumber(e,t||null,h.convert.typeCodes.Double)},toDecimal:function(e,t){return e instanceof Bridge.global.System.Decimal?e:new Bridge.global.System.Decimal(h.internal.toNumber(e,t||null,h.convert.typeCodes.Decimal))},toDateTime:function(e,t){var n,i,r=h.convert.typeCodes;switch(typeof(e=Bridge.unbox(e,!0))){case"boolean":h.internal.throwInvalidCastEx(r.Boolean,r.DateTime);case"number":n=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(n,r.DateTime);case"string":return Bridge.global.System.DateTime.parse(e,t||null);case"object":if(null==e)return h.internal.getMinValue(r.DateTime);if(Bridge.isDate(e))return e;e instanceof Bridge.global.System.Decimal&&h.internal.throwInvalidCastEx(r.Decimal,r.DateTime),e instanceof Bridge.global.System.Int64&&h.internal.throwInvalidCastEx(r.Int64,r.DateTime),e instanceof Bridge.global.System.UInt64&&h.internal.throwInvalidCastEx(r.UInt64,r.DateTime)}return i=h.internal.suggestTypeCode(e),h.internal.throwInvalidCastEx(i,h.convert.typeCodes.DateTime),h.convert.convertToType(r.DateTime,e,t||null)},toString:function(e,t,n){var i;if(e&&e.$boxed)return e.toString();switch(i=h.convert.typeCodes,typeof e){case"boolean":return e?"True":"False";case"number":return(n||null)===i.Char?String.fromCharCode(e):isNaN(e)?"NaN":(e%1!=0&&(e=parseFloat(e.toPrecision(15))),e.toString());case"string":return e;case"object":return null==e?"":e.toString!==Object.prototype.toString?e.toString():Bridge.isDate(e)?Bridge.global.System.DateTime.format(e,null,t||null):e instanceof Bridge.global.System.Decimal?e.isInteger()?e.toFixed(0,4):e.toPrecision(e.precision()):Bridge.global.System.Int64.is64Bit(e)?e.toString():e.format?e.format(null,t||null):Bridge.getTypeName(e)}return h.convert.convertToType(h.convert.typeCodes.String,e,t||null)},toNumberInBase:function(e,t,n){var i,r,s,a,l,o,u,d,g,c;if(2!==t&&8!==t&&10!==t&&16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");if(i=h.convert.typeCodes,null==e)return n===i.Int64?Bridge.global.System.Int64.Zero:n===i.UInt64?Bridge.global.System.UInt64.Zero:0;if(0===e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");e=e.toLowerCase();var m=h.internal.getMinValue(n),f=h.internal.getMaxValue(n),p=!1,S=0;if("-"===e[S]){if(10!==t)throw new Bridge.global.System.ArgumentException.$ctor1("String cannot contain a minus sign if the base is not 10.");if(m>=0)throw new Bridge.global.System.OverflowException.$ctor1("The string was being parsed as an unsigned number and could not have a negative sign.");p=!0,++S}else"+"===e[S]&&++S;if(16===t&&e.length>=2&&"0"===e[S]&&"x"===e[S+1]&&(S+=2),2===t)r=h.internal.charsToCodes("01");else if(8===t)r=h.internal.charsToCodes("01234567");else if(10===t)r=h.internal.charsToCodes("0123456789");else{if(16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");r=h.internal.charsToCodes("0123456789abcdef")}for(s={},a=0;a=l&&g<=o))throw c===S?new Bridge.global.System.FormatException.$ctor1("Could not find any recognizable digits."):new Bridge.global.System.FormatException.$ctor1("Additional non-parsable characters are at the end of the string.");if((u=n===i.Int64?new Bridge.global.System.Int64(Bridge.$Long.fromString(e,!1,t)):new Bridge.global.System.UInt64(Bridge.$Long.fromString(e,!0,t))).toString(t)!==Bridge.global.System.String.trimStartZeros(e))throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.");return u}for(u=0,d=f-m+1,c=S;c=l&&g<=o))throw c===S?new Bridge.global.System.FormatException.$ctor1("Could not find any recognizable digits."):new Bridge.global.System.FormatException.$ctor1("Additional non-parsable characters are at the end of the string.");if(u*=t,(u+=s[g])>h.internal.typeRanges.Int64_MaxValue)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.")}if(p&&(u*=-1),u>f&&10!==t&&m<0&&(u-=d),uf)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small.");return u},toStringInBase:function(e,t,n){var i,r,s,a,l,o,u,d;if(h.convert.typeCodes,e=Bridge.unbox(e,!0),2!==t&&8!==t&&10!==t&&16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");var g=h.internal.getMinValue(n),c=h.internal.getMaxValue(n),m=Bridge.global.System.Int64.is64Bit(e);if(m){if(e.lt(g)||e.gt(c))throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an unsigned byte.")}else if(ec)throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an unsigned byte.");if(i=!1,m)return 10===t?e.toString():e.value.toUnsigned().toString(t);if(e<0&&(10===t?(i=!0,e*=-1):e=c+1-g+e),2===t)r="01";else if(8===t)r="01234567";else if(10===t)r="0123456789";else{if(16!==t)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid Base.");r="0123456789abcdef"}for(s={},a=r.split(""),o=0;o0;)e=(e-(d=e%t))/t,u+=s[d];return i&&(u+="-"),u.split("").reverse().join("")},toBase64String:function(e,t,n,i){var r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(t=t||0,n=null!=n?n:e.length,i=i||0,n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");if(i<0||i>1)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal enum value.");if(t>(r=e.length)-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Offset and length must refer to a position in the string.");if(0===r)return"";var s=1===i,a=h.internal.toBase64_CalculateAndValidateOutputLength(n,s),l=[];return l.length=a,h.internal.convertToBase64Array(l,e,t,n,s),l.join("")},toBase64CharArray:function(e,t,n,i,r,s){var a,l,o;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(null==i)throw new Bridge.global.System.ArgumentNullException.$ctor1("outArray");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetIn","Value must be positive.");if(r<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetOut","Value must be positive.");if((s=s||0)<0||s>1)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal enum value.");if(t>(a=e.length)-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetIn","Offset and length must refer to a position in the string.");if(0===a)return 0;var u=1===s;if(r>i.length-h.internal.toBase64_CalculateAndValidateOutputLength(n,u))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offsetOut","Either offset did not refer to a position in the string, or there is an insufficient length of destination character array.");return l=[],o=h.internal.convertToBase64Array(l,e,t,n,u),h.internal.charsToCodes(l,i,r),o},fromBase64String:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");var t=e.split("");return h.internal.fromBase64CharPtr(t,0,t.length)},fromBase64CharArray:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("inArray");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");if(t>e.length-n)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Offset and length must refer to a position in the string.");var i=h.internal.codesToChars(e);return h.internal.fromBase64CharPtr(i,t,n)},convertToType:function(){throw new Bridge.global.System.NotSupportedException.$ctor1("IConvertible interface is not supported.")}},h.internal={base64Table:["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","+","/","="],typeRanges:{Char_MinValue:0,Char_MaxValue:65535,Byte_MinValue:0,Byte_MaxValue:255,SByte_MinValue:-128,SByte_MaxValue:127,Int16_MinValue:-32768,Int16_MaxValue:32767,UInt16_MinValue:0,UInt16_MaxValue:65535,Int32_MinValue:-2147483648,Int32_MaxValue:2147483647,UInt32_MinValue:0,UInt32_MaxValue:4294967295,Int64_MinValue:Bridge.global.System.Int64.MinValue,Int64_MaxValue:Bridge.global.System.Int64.MaxValue,UInt64_MinValue:Bridge.global.System.UInt64.MinValue,UInt64_MaxValue:Bridge.global.System.UInt64.MaxValue,Single_MinValue:-3.40282347e38,Single_MaxValue:3.40282347e38,Double_MinValue:-1.7976931348623157e308,Double_MaxValue:1.7976931348623157e308,Decimal_MinValue:Bridge.global.System.Decimal.MinValue,Decimal_MaxValue:Bridge.global.System.Decimal.MaxValue},base64LineBreakPosition:76,getTypeCodeName:function(e){var t,n,i,r=h.convert.typeCodes;if(null==h.internal.typeCodeNames){for(n in t={},r)r.hasOwnProperty(n)&&(t[r[n]]=n);h.internal.typeCodeNames=t}if(null==(i=h.internal.typeCodeNames[e]))throw Bridge.global.System.ArgumentOutOfRangeException("typeCode","The specified typeCode is undefined.");return i},suggestTypeCode:function(e){var t=h.convert.typeCodes;switch(typeof e){case"boolean":return t.Boolean;case"number":return e%1!=0?t.Double:t.Int32;case"string":return t.String;case"object":if(Bridge.isDate(e))return t.DateTime;if(null!=e)return t.Object}return null},getMinValue:function(e){var t=h.convert.typeCodes;switch(e){case t.Char:return h.internal.typeRanges.Char_MinValue;case t.SByte:return h.internal.typeRanges.SByte_MinValue;case t.Byte:return h.internal.typeRanges.Byte_MinValue;case t.Int16:return h.internal.typeRanges.Int16_MinValue;case t.UInt16:return h.internal.typeRanges.UInt16_MinValue;case t.Int32:return h.internal.typeRanges.Int32_MinValue;case t.UInt32:return h.internal.typeRanges.UInt32_MinValue;case t.Int64:return h.internal.typeRanges.Int64_MinValue;case t.UInt64:return h.internal.typeRanges.UInt64_MinValue;case t.Single:return h.internal.typeRanges.Single_MinValue;case t.Double:return h.internal.typeRanges.Double_MinValue;case t.Decimal:return h.internal.typeRanges.Decimal_MinValue;case t.DateTime:return Bridge.global.System.DateTime.getMinValue();default:return null}},getMaxValue:function(e){var t=h.convert.typeCodes;switch(e){case t.Char:return h.internal.typeRanges.Char_MaxValue;case t.SByte:return h.internal.typeRanges.SByte_MaxValue;case t.Byte:return h.internal.typeRanges.Byte_MaxValue;case t.Int16:return h.internal.typeRanges.Int16_MaxValue;case t.UInt16:return h.internal.typeRanges.UInt16_MaxValue;case t.Int32:return h.internal.typeRanges.Int32_MaxValue;case t.UInt32:return h.internal.typeRanges.UInt32_MaxValue;case t.Int64:return h.internal.typeRanges.Int64_MaxValue;case t.UInt64:return h.internal.typeRanges.UInt64_MaxValue;case t.Single:return h.internal.typeRanges.Single_MaxValue;case t.Double:return h.internal.typeRanges.Double_MaxValue;case t.Decimal:return h.internal.typeRanges.Decimal_MaxValue;case t.DateTime:return Bridge.global.System.DateTime.getMaxValue();default:throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("typeCode","The specified typeCode is undefined.")}},isFloatingType:function(e){var t=h.convert.typeCodes;return e===t.Single||e===t.Double||e===t.Decimal},toNumber:function(e,t,n,i){var r,s;e=Bridge.unbox(e,!0);var a=h.convert.typeCodes,l=typeof e,o=h.internal.isFloatingType(n);switch(i===a.String&&(l="string"),(Bridge.global.System.Int64.is64Bit(e)||e instanceof Bridge.global.System.Decimal)&&(l="number"),l){case"boolean":return e?1:0;case"number":return n===a.Decimal?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.Decimal(e,t)):n===a.Int64?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.Int64(e)):n===a.UInt64?(h.internal.validateNumberRange(e,n,!0),new Bridge.global.System.UInt64(e)):(Bridge.global.System.Int64.is64Bit(e)?e=e.toNumber():e instanceof Bridge.global.System.Decimal&&(e=e.toFloat()),o||e%1==0||(e=h.internal.roundToInt(e,n)),o&&(r=h.internal.getMinValue(n),e>h.internal.getMaxValue(n)?e=1/0:ee||s.toNumber()e||s.toNumber()s)&&this.throwOverflow(a))},throwOverflow:function(e){throw new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for \'"+e+"\'.")},roundToInt:function(e,t){var n,i;if(e%1==0)return e;var r=e-(n=e>=0?Math.floor(e):-1*Math.floor(-e)),s=h.internal.getMinValue(t),a=h.internal.getMaxValue(t);if(e>=0){if(e.5||.5===r&&0!=(1&n))&&++n,n}else if(e>=s-.5)return(r<-.5||-.5===r&&0!=(1&n))&&--n,n;throw i=h.internal.getTypeCodeName(t),new Bridge.global.System.OverflowException.$ctor1("Value was either too large or too small for an \'"+i+"\'.")},toBase64_CalculateAndValidateOutputLength:function(e,t){var n,i=h.internal.base64LineBreakPosition,r=4*~~(e/3);if(0===(r+=e%3!=0?4:0))return 0;if(t&&(n=~~(r/i),r%i==0&&--n,r+=2*n),r>2147483647)throw new Bridge.global.System.OutOfMemoryException;return r},convertToBase64Array:function(e,t,n,i,r){for(var s=h.internal.base64Table,a=h.internal.base64LineBreakPosition,l=i%3,o=n+(i-l),u=0,d=0,g=n;g>2],e[d+1]=s[(3&t[g])<<4|(240&t[g+1])>>4],e[d+2]=s[(15&t[g+1])<<2|(192&t[g+2])>>6],e[d+3]=s[63&t[g+2]],d+=4;switch(g=o,r&&0!==l&&u===h.internal.base64LineBreakPosition&&(e[d++]="\\r",e[d++]="\\n"),l){case 2:e[d]=s[(252&t[g])>>2],e[d+1]=s[(3&t[g])<<4|(240&t[g+1])>>4],e[d+2]=s[(15&t[g+1])<<2],e[d+3]=s[64],d+=4;break;case 1:e[d]=s[(252&t[g])>>2],e[d+1]=s[(3&t[g])<<4],e[d+2]=s[64],e[d+3]=s[64],d+=4}return d},fromBase64CharPtr:function(e,t,n){var i,r,s;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("inputLength","Index was out of range. Must be non-negative and less than the size of the collection.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","Value must be positive.");for(;n>0&&(" "===(i=e[t+n-1])||"\\n"===i||"\\r"===i||"\\t"===i);)n--;if(0>(r=h.internal.fromBase64_ComputeResultLength(e,t,n)))throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract voilation: 0 <= resultLength.");return(s=[]).length=r,h.internal.fromBase64_Decode(e,t,n,s,0,r),s},fromBase64_Decode:function(e,t,n,i,r,s){for(var a,l,o=r,u="A".charCodeAt(0),d="a".charCodeAt(0),g="0".charCodeAt(0),c="=".charCodeAt(0),m="+".charCodeAt(0),h="/".charCodeAt(0),f=" ".charCodeAt(0),p="\\t".charCodeAt(0),S="\\n".charCodeAt(0),y="\\r".charCodeAt(0),b="Z".charCodeAt(0)-"A".charCodeAt(0),I="9".charCodeAt(0)-"0".charCodeAt(0),T=t+n,B=r+s,C=255,x=!1,_=!1;;){if(t>=T){x=!0;break}if(a=e[t].charCodeAt(0),t++,a-u>>>0<=b)a-=u;else if(a-d>>>0<=b)a-=d-26;else if(a-g>>>0<=I)a-=g-52;else switch(a){case m:a=62;break;case h:a=63;break;case y:case S:case f:case p:continue;case c:_=!0;break;default:throw new Bridge.global.System.FormatException.$ctor1("The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.")}if(_)break;if(0!=(2147483648&(C=C<<6|a))){if(B-r<3)return-1;i[r]=255&C>>16,i[r+1]=255&C>>8,i[r+2]=255&C,r+=3,C=255}}if(!x&&!_)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: should never get here.");if(_){if(a!==c)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: currCode == intEq.");if(t===T){if(0==(2147483648&(C<<=6)))throw new Bridge.global.System.FormatException.$ctor1("Invalid length for a Base-64 char array or string.");if(B-r<2)return-1;i[r]=255&C>>16,i[r+1]=255&C>>8,r+=2,C=255}else{for(;t>16,r++,C=255}}if(255!==C)throw new Bridge.global.System.FormatException.$ctor1("Invalid length for a Base-64 char array or string.");return r-o},fromBase64_ComputeResultLength:function(e,t,n){var i;if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("inputLength","Index was out of range. Must be non-negative and less than the size of the collection.");for(var r=t+n,s=n,a=0;ta)throw new Bridge.global.System.InvalidOperationException.$ctor1("Contract violation: 0 <= padding.");if(0!==a)if(1===a)a=2;else{if(2!==a)throw new Bridge.global.System.FormatException.$ctor1("The input is not a valid Base-64 string as it contains a non-base 64 character, more than two padding characters, or an illegal character among the padding characters.");a=1}return 3*~~(s/4)+a},charsToCodes:function(e,t,n){if(null==e)return null;n=n||0,null==t&&((t=[]).length=e.length);for(var i=0;i-1)throw new Bridge.global.System.ArgumentException.$ctor1("Socket cannot have duplicate sub-protocols.","subProtocol");this.requestedSubProtocols.push(e)}}),Bridge.define("System.Net.WebSockets.WebSocketReceiveResult",{ctor:function(e,t,n,i,r){this.$initialize(),this.count=e,this.messageType=t,this.endOfMessage=n,this.closeStatus=i,this.closeStatusDescription=r},getCount:function(){return this.count},getMessageType:function(){return this.messageType},getEndOfMessage:function(){return this.endOfMessage},getCloseStatus:function(){return this.closeStatus},getCloseStatusDescription:function(){return this.closeStatusDescription}}),Bridge.assembly("System",{},function(){Bridge.define("System.Uri",{statics:{methods:{equals:function(e,t){return e==t||null!=e&&null!=t&&t.equals(e)},notEquals:function(e,t){return!Bridge.global.System.Uri.equals(e,t)}}},ctor:function(e){this.$initialize(),this.absoluteUri=e},getAbsoluteUri:function(){return this.absoluteUri},toJSON:function(){return this.absoluteUri},toString:function(){return this.absoluteUri},equals:function(e){return!(null==e||!Bridge.is(e,Bridge.global.System.Uri))&&this.absoluteUri===e.absoluteUri}})},!0),Bridge.define("Bridge.GeneratorEnumerable",{inherits:[Bridge.global.System.Collections.IEnumerable],config:{alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator"]},ctor:function(e){this.$initialize(),this.GetEnumerator=e,this.System$Collections$IEnumerable$GetEnumerator=e}}),Bridge.define("Bridge.GeneratorEnumerable$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerable$1(e)],config:{alias:["GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"]]},ctor:function(t){this.$initialize(),this.GetEnumerator=t,this["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator"]=t,this.System$Collections$Generic$IEnumerable$1$GetEnumerator=t}}}),Bridge.define("Bridge.GeneratorEnumerator",{inherits:[Bridge.global.System.Collections.IEnumerator],current:null,config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},ctor:function(e){this.$initialize(),this.moveNext=e,this.System$Collections$IEnumerator$moveNext=e},getCurrent:function(){return this.current},getCurrent$1:function(){return this.current},reset:function(){throw new Bridge.global.System.NotSupportedException}}),Bridge.define("Bridge.GeneratorEnumerator$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e),Bridge.global.System.IDisposable],current:null,config:{properties:{Current:{get:function(){return this.getCurrent()}},Current$1:{get:function(){return this.getCurrent()}}},alias:["getCurrent",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$getCurrent$1","System$Collections$Generic$IEnumerator$1$getCurrent$1"],"Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"],"Current","System$Collections$IEnumerator$Current","Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset"]},ctor:function(e,t){this.$initialize(),this.moveNext=e,this.System$Collections$IEnumerator$moveNext=e,this.final=t},getCurrent:function(){return this.current},getCurrent$1:function(){return this.current},System$Collections$IEnumerator$getCurrent:function(){return this.current},Dispose:function(){this.final&&this.final()},reset:function(){throw new Bridge.global.System.NotSupportedException}}}),function(e,t){var n,i,r,s,a,l,o,u,d,g,c,m={Identity:function(e){return e},True:function(){return!0},Blank:function(){}},h="number",f="string",p=typeof t,S="function",y={"":m.Identity},b={createLambda:function(e){var t,n,i,r,s,a,l,o,u,d,g;if(null==e)return m.Identity;if(typeof e===f){if(null!=(t=y[e]))return t;if(-1===e.indexOf("=>")){for(n=new RegExp("[$]+","g"),i=0;null!=(r=n.exec(e));)(s=r[0].length)>i&&(i=s);for(a=[],l=1;l<=i;l++){for(o="",u=0;u(.*)/),t=new Function(g[1],"return "+g[2]),y[e]=t,t}return e},isIEnumerable:function(e){if(typeof Enumerator!==p)try{return new Enumerator(e),!0}catch(e){}return!1},defineProperty:null!=Object.defineProperties?function(e,t,n){Object.defineProperty(e,t,{enumerable:!1,configurable:!0,writable:!0,value:n})}:function(e,t,n){e[t]=n},compare:function(e,t){return e===t?0:e>t?1:-1},Dispose:function(e){null!=e&&e.Dispose()}},I=function(e,t,i){var r=new n,s=0;this.getCurrent=r.getCurrent,this.reset=function(){throw new Error("Reset is not supported")},this.moveNext=function(){try{switch(s){case 0:s=1,e();case 1:return!!t.apply(r)||(this.Dispose(),!1);case 2:return!1}}catch(e){throw this.Dispose(),e}},this.Dispose=function(){if(1==s)try{i()}finally{s=2}},this.System$IDisposable$Dispose=this.Dispose,this.getCurrent$1=this.getCurrent,this.System$Collections$IEnumerator$getCurrent=this.getCurrent,this.System$Collections$IEnumerator$moveNext=this.moveNext,this.System$Collections$IEnumerator$reset=this.reset,Object.defineProperties(this,{Current$1:{get:this.getCurrent,enumerable:!0},Current:{get:this.getCurrent,enumerable:!0},System$Collections$IEnumerator$Current:{get:this.getCurrent,enumerable:!0}})};I.$$inherits=[],Bridge.Class.addExtend(I,[Bridge.global.System.IDisposable,Bridge.global.System.Collections.IEnumerator]),n=function(){var e=null;this.getCurrent=function(){return e},this.yieldReturn=function(t){return e=t,!0},this.yieldBreak=function(){return!1}},(i=function(e){this.GetEnumerator=e}).$$inherits=[],Bridge.Class.addExtend(i,[Bridge.global.System.Collections.IEnumerable]),(i.Utils={}).createLambda=function(e){return b.createLambda(e)},i.Utils.createEnumerable=function(e){return new i(e)},i.Utils.createEnumerator=function(e,t,n){return new I(e,t,n)},i.Utils.extendTo=function(e){var t,n,r,s=e.prototype;for(n in e===Array?(t=o.prototype,b.defineProperty(s,"getSource",function(){return this})):(t=i.prototype,b.defineProperty(s,"GetEnumerator",function(){return i.from(this).GetEnumerator()})),t)r=t[n],s[n]!=r&&(null==s[n]||s[n+="ByLinq"]!=r)&&r instanceof Function&&b.defineProperty(s,n,r)},i.choice=function(){var e=arguments;return new i(function(){return new I(function(){e=e[0]instanceof Array?e[0]:null!=e[0].GetEnumerator?e[0].ToArray():e},function(){return this.yieldReturn(e[Math.floor(Math.random()*e.length)])},m.Blank)})},i.cycle=function(){var e=arguments;return new i(function(){var t=0;return new I(function(){e=e[0]instanceof Array?e[0]:null!=e[0].GetEnumerator?e[0].ToArray():e},function(){return t>=e.length&&(t=0),this.yieldReturn(e[t++])},m.Blank)})},r=new i(function(){return new I(m.Blank,function(){return!1},m.Blank)}),i.empty=function(){return r},i.from=function(e){if(null==e)return i.empty();if(e instanceof i)return e;if(typeof e==h||"boolean"==typeof e)return i.repeat(e,1);if(typeof e==f)return new i(function(){var t=0;return new I(m.Blank,function(){return t=t?this.yieldReturn(e):this.yieldBreak()},m.Blank)})},i.repeat=function(e,t){return null!=t?i.repeat(e).take(t):new i(function(){return new I(m.Blank,function(){return this.yieldReturn(e)},m.Blank)})},i.repeatWithFinalize=function(e,t){return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var n;return new I(function(){n=e()},function(){return this.yieldReturn(n)},function(){null!=n&&(t(n),n=null)})})},i.generate=function(e,t){return null!=t?i.generate(e).take(t):(e=b.createLambda(e),new i(function(){return new I(m.Blank,function(){return this.yieldReturn(e())},m.Blank)}))},i.toInfinity=function(e,t){return null==e&&(e=0),null==t&&(t=1),new i(function(){var n;return new I(function(){n=e-t},function(){return this.yieldReturn(n+=t)},m.Blank)})},i.toNegativeInfinity=function(e,t){return null==e&&(e=0),null==t&&(t=1),new i(function(){var n;return new I(function(){n=e+t},function(){return this.yieldReturn(n-=t)},m.Blank)})},i.unfold=function(e,t){return t=b.createLambda(t),new i(function(){var n,i=!0;return new I(m.Blank,function(){return i?(i=!1,n=e,this.yieldReturn(n)):(n=t(n),this.yieldReturn(n))},m.Blank)})},i.defer=function(e){return new i(function(){var t;return new I(function(){t=i.from(e()).GetEnumerator()},function(){return t.moveNext()?this.yieldReturn(t.Current):this.yieldBreak()},function(){b.Dispose(t)})})},i.prototype.traverseBreadthFirst=function(e,t){var n=this;return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var r,s=0,a=[];return new I(function(){r=n.GetEnumerator()},function(){for(;;){if(r.moveNext())return a.push(r.Current),this.yieldReturn(t(r.Current,s));var n=i.from(a).selectMany(function(t){return e(t)});if(!n.any())return!1;s++,a=[],b.Dispose(r),r=n.GetEnumerator()}},function(){b.Dispose(r)})})},i.prototype.traverseDepthFirst=function(e,t){var n=this;return e=b.createLambda(e),t=b.createLambda(t),new i(function(){var r,s=[];return new I(function(){r=n.GetEnumerator()},function(){for(;;){if(r.moveNext()){var n=t(r.Current,s.length);return s.push(r),r=i.from(e(r.Current)).GetEnumerator(),this.yieldReturn(n)}if(s.length<=0)return!1;b.Dispose(r),r=s.pop()}},function(){try{b.Dispose(r)}finally{i.from(s).forEach(function(e){e.Dispose()})}})})},i.prototype.flatten=function(){var e=this;return new i(function(){var t,n=null;return new I(function(){t=e.GetEnumerator()},function(){for(;;){if(null!=n){if(n.moveNext())return this.yieldReturn(n.Current);n=null}if(t.moveNext()){if(t.Current instanceof Array){b.Dispose(n),n=i.from(t.Current).selectMany(m.Identity).flatten().GetEnumerator();continue}return this.yieldReturn(t.Current)}return!1}},function(){try{b.Dispose(t)}finally{b.Dispose(n)}})})},i.prototype.pairwise=function(e){var t=this;return e=b.createLambda(e),new i(function(){var n;return new I(function(){(n=t.GetEnumerator()).moveNext()},function(){var t=n.Current;return!!n.moveNext()&&this.yieldReturn(e(t,n.Current))},function(){b.Dispose(n)})})},i.prototype.scan=function(e,t){var n,r;return null==t?(t=b.createLambda(e),n=!1):(t=b.createLambda(t),n=!0),r=this,new i(function(){var i,s,a=!0;return new I(function(){i=r.GetEnumerator()},function(){if(a){if(a=!1,n)return this.yieldReturn(s=e);if(i.moveNext())return this.yieldReturn(s=i.Current)}return!!i.moveNext()&&this.yieldReturn(s=t(s,i.Current))},function(){b.Dispose(i)})})},i.prototype.select=function(e){if((e=b.createLambda(e)).length<=1)return new d(this,null,e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(e(n.Current,i++))},function(){b.Dispose(n)})})},i.prototype.selectMany=function(e,n){var r=this;return e=b.createLambda(e),null==n&&(n=function(e,t){return t}),n=b.createLambda(n),new i(function(){var s,a=t,l=0;return new I(function(){s=r.GetEnumerator()},function(){if(a===t&&!s.moveNext())return!1;do{if(null==a){var r=e(s.Current,l++);a=i.from(r).GetEnumerator()}if(a.moveNext())return this.yieldReturn(n(s.Current,a.Current));b.Dispose(a),a=null}while(s.moveNext());return!1},function(){try{b.Dispose(s)}finally{b.Dispose(a)}})})},i.prototype.where=function(e){if((e=b.createLambda(e)).length<=1)return new u(this,e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();)if(e(n.Current,i++))return this.yieldReturn(n.Current);return!1},function(){b.Dispose(n)})})},i.prototype.choose=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();){var t=e(n.Current,i++);if(null!=t)return this.yieldReturn(t)}return this.yieldBreak()},function(){b.Dispose(n)})})},i.prototype.ofType=function(e){var t=this;return new i(function(){var n;return new I(function(){n=Bridge.getEnumerator(t)},function(){for(;n.moveNext();){var t=Bridge.as(n.Current,e);if(Bridge.hasValue(t))return this.yieldReturn(t)}return!1},function(){b.Dispose(n)})})},i.prototype.zip=function(){var e,t=arguments,n=b.createLambda(arguments[arguments.length-1]),r=this;return 2==arguments.length?(e=arguments[0],new i(function(){var t,s,a=0;return new I(function(){t=r.GetEnumerator(),s=i.from(e).GetEnumerator()},function(){return!(!t.moveNext()||!s.moveNext())&&this.yieldReturn(n(t.Current,s.Current,a++))},function(){try{b.Dispose(t)}finally{b.Dispose(s)}})})):new i(function(){var e,s=0;return new I(function(){var n=i.make(r).concat(i.from(t).takeExceptLast().select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray();e=i.from(n)},function(){if(e.all(function(e){return e.moveNext()})){var t=e.select(function(e){return e.Current}).ToArray();return t.push(s++),this.yieldReturn(n.apply(null,t))}return this.yieldBreak()},function(){i.from(e).forEach(b.Dispose)})})},i.prototype.merge=function(){var e=arguments,t=this;return new i(function(){var n,r=-1;return new I(function(){n=i.make(t).concat(i.from(e).select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray()},function(){for(;n.length>0;){r=r>=n.length-1?0:r+1;var e=n[r];if(e.moveNext())return this.yieldReturn(e.Current);e.Dispose(),n.splice(r--,1)}return this.yieldBreak()},function(){i.from(n).forEach(b.Dispose)})})},i.prototype.join=function(e,n,r,s,a){n=b.createLambda(n),r=b.createLambda(r),s=b.createLambda(s);var l=this;return new i(function(){var o,u,d=null,g=0;return new I(function(){o=l.GetEnumerator(),u=i.from(e).toLookup(r,m.Identity,a)},function(){for(var e,i;;){if(null!=d){if((e=d[g++])!==t)return this.yieldReturn(s(o.Current,e));e=null,g=0}if(!o.moveNext())return!1;i=n(o.Current),d=u.get(i).ToArray()}},function(){b.Dispose(o)})})},i.prototype.groupJoin=function(e,t,n,r,s){t=b.createLambda(t),n=b.createLambda(n),r=b.createLambda(r);var a=this;return new i(function(){var l=a.GetEnumerator(),o=null;return new I(function(){l=a.GetEnumerator(),o=i.from(e).toLookup(n,m.Identity,s)},function(){if(l.moveNext()){var e=o.get(t(l.Current));return this.yieldReturn(r(l.Current,e))}return!1},function(){b.Dispose(l)})})},i.prototype.all=function(e){e=b.createLambda(e);var t=!0;return this.forEach(function(n){if(!e(n))return t=!1,!1}),t},i.prototype.any=function(e){e=b.createLambda(e);var t=this.GetEnumerator();try{if(0==arguments.length)return t.moveNext();for(;t.moveNext();)if(e(t.Current))return!0;return!1}finally{b.Dispose(t)}},i.prototype.isEmpty=function(){return!this.any()},i.prototype.concat=function(){var e,t,n=this;return 1==arguments.length?(e=arguments[0],new i(function(){var t,r;return new I(function(){t=n.GetEnumerator()},function(){if(null==r){if(t.moveNext())return this.yieldReturn(t.Current);r=i.from(e).GetEnumerator()}return!!r.moveNext()&&this.yieldReturn(r.Current)},function(){try{b.Dispose(t)}finally{b.Dispose(r)}})})):(t=arguments,new i(function(){var e;return new I(function(){e=i.make(n).concat(i.from(t).select(i.from)).select(function(e){return e.GetEnumerator()}).ToArray()},function(){for(;e.length>0;){var t=e[0];if(t.moveNext())return this.yieldReturn(t.Current);t.Dispose(),e.splice(0,1)}return this.yieldBreak()},function(){i.from(e).forEach(b.Dispose)})}))},i.prototype.insert=function(e,t){var n=this;return new i(function(){var r,s,a=0,l=!1;return new I(function(){r=n.GetEnumerator(),s=i.from(t).GetEnumerator()},function(){return a==e&&s.moveNext()?(l=!0,this.yieldReturn(s.Current)):r.moveNext()?(a++,this.yieldReturn(r.Current)):!(l||!s.moveNext())&&this.yieldReturn(s.Current)},function(){try{b.Dispose(r)}finally{b.Dispose(s)}})})},i.prototype.alternate=function(e){var t=this;return new i(function(){var n,r,s,a;return new I(function(){s=e instanceof Array||null!=e.GetEnumerator?i.from(i.from(e).ToArray()):i.make(e),(r=t.GetEnumerator()).moveNext()&&(n=r.Current)},function(){for(;;){if(null!=a){if(a.moveNext())return this.yieldReturn(a.Current);a=null}if(null!=n||!r.moveNext()){if(null!=n){var e=n;return n=null,this.yieldReturn(e)}return this.yieldBreak()}n=r.Current,a=s.GetEnumerator()}},function(){try{b.Dispose(r)}finally{b.Dispose(a)}})})},i.prototype.contains=function(e,t){t=t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default;var n=this.GetEnumerator();try{for(;n.moveNext();)if(t.equals2(n.Current,e))return!0;return!1}finally{b.Dispose(n)}},i.prototype.defaultIfEmpty=function(e){var n=this;return e===t&&(e=null),new i(function(){var t,i=!0;return new I(function(){t=n.GetEnumerator()},function(){return t.moveNext()?(i=!1,this.yieldReturn(t.Current)):!!i&&(i=!1,this.yieldReturn(e))},function(){b.Dispose(t)})})},i.prototype.distinct=function(e){return this.except(i.empty(),e)},i.prototype.distinctUntilChanged=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i,r;return new I(function(){n=t.GetEnumerator()},function(){for(;n.moveNext();){var t=e(n.Current);if(r)return r=!1,i=t,this.yieldReturn(n.Current);if(i!==t)return i=t,this.yieldReturn(n.Current)}return this.yieldBreak()},function(){b.Dispose(n)})})},i.prototype.except=function(e,t){var n=this;return new i(function(){var r,s;return new I(function(){r=n.GetEnumerator(),s=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t),i.from(e).forEach(function(e){s.containsKey(e)||s.add(e)})},function(){for(;r.moveNext();){var e=r.Current;if(!s.containsKey(e))return s.add(e),this.yieldReturn(e)}return!1},function(){b.Dispose(r)})})},i.prototype.intersect=function(e,t){var n=this;return new i(function(){var r,s,a;return new I(function(){r=n.GetEnumerator(),s=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t),i.from(e).forEach(function(e){s.containsKey(e)||s.add(e)}),a=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,t)},function(){for(;r.moveNext();){var e=r.Current;if(!a.containsKey(e)&&s.containsKey(e))return a.add(e),this.yieldReturn(e)}return!1},function(){b.Dispose(r)})})},i.prototype.sequenceEqual=function(e,t){var n,r;t=t||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default,n=this.GetEnumerator();try{r=i.from(e).GetEnumerator();try{for(;n.moveNext();)if(!r.moveNext()||!t.equals2(n.Current,r.Current))return!1;return!r.moveNext()}finally{b.Dispose(r)}}finally{b.Dispose(n)}},i.prototype.union=function(e,n){var r=this;return new i(function(){var s,a,l;return new I(function(){s=r.GetEnumerator(),l=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Object,Bridge.global.System.Object))(null,n)},function(){var n;if(a===t){for(;s.moveNext();)if(n=s.Current,!l.containsKey(n))return l.add(n),this.yieldReturn(n);a=i.from(e).GetEnumerator()}for(;a.moveNext();)if(n=a.Current,!l.containsKey(n))return l.add(n),this.yieldReturn(n);return!1},function(){try{b.Dispose(s)}finally{b.Dispose(a)}})})},i.prototype.orderBy=function(e,t){return new s(this,e,t,!1)},i.prototype.orderByDescending=function(e,t){return new s(this,e,t,!0)},i.prototype.reverse=function(){var e=this;return new i(function(){var t,n;return new I(function(){t=e.ToArray(),n=t.length},function(){return n>0&&this.yieldReturn(t[--n])},m.Blank)})},i.prototype.shuffle=function(){var e=this;return new i(function(){var t;return new I(function(){t=e.ToArray()},function(){if(t.length>0){var e=Math.floor(Math.random()*t.length);return this.yieldReturn(t.splice(e,1)[0])}return!1},m.Blank)})},i.prototype.weightedSample=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n,i=0;return new I(function(){n=t.choose(function(t){var n=e(t);return n<=0?null:{value:t,bound:i+=n}}).ToArray()},function(){var e;if(n.length>0){for(var t=Math.floor(Math.random()*i)+1,r=-1,s=n.length;s-r>1;)e=Math.floor((r+s)/2),n[e].bound>=t?s=e:r=e;return this.yieldReturn(n[s].value)}return this.yieldBreak()},m.Blank)})},i.prototype.groupBy=function(e,t,n,r){var s=this;return e=b.createLambda(e),t=b.createLambda(t),null!=n&&(n=b.createLambda(n)),new i(function(){var i;return new I(function(){i=s.toLookup(e,t,r).toEnumerable().GetEnumerator()},function(){for(;i.moveNext();)return null==n?this.yieldReturn(i.Current):this.yieldReturn(n(i.Current.key(),i.Current));return!1},function(){b.Dispose(i)})})},i.prototype.partitionBy=function(e,t,n,r){var s,a=this;return e=b.createLambda(e),t=b.createLambda(t),r=r||Bridge.global.System.Collections.Generic.EqualityComparer$1.$default,null==n?(s=!1,n=function(e,t){return new c(e,t)}):(s=!0,n=b.createLambda(n)),new i(function(){var l,o,u=[];return new I(function(){(l=a.GetEnumerator()).moveNext()&&(o=e(l.Current),u.push(t(l.Current)))},function(){for(var a,d;1==(a=l.moveNext())&&r.equals2(o,e(l.Current));)u.push(t(l.Current));return u.length>0&&(d=n(o,s?i.from(u):u),a?(o=e(l.Current),u=[t(l.Current)]):u=[],this.yieldReturn(d))},function(){b.Dispose(l)})})},i.prototype.buffer=function(e){var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){for(var t=[],i=0;n.moveNext();)if(t.push(n.Current),++i>=e)return this.yieldReturn(t);return t.length>0&&this.yieldReturn(t)},function(){b.Dispose(n)})})},i.prototype.aggregate=function(e,t,n){return(n=b.createLambda(n))(this.scan(e,t,n).last())},i.prototype.average=function(e,t){!e||t||Bridge.isFunction(e)||(t=e,e=null),e=b.createLambda(e);var n=t||0,i=0;if(this.forEach(function(t){(t=e(t))instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(t)?n=t.add(n):n instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(n)?n=n.add(t):n+=t,++i}),0===i)throw new Bridge.global.System.InvalidOperationException.$ctor1("Sequence contains no elements");return n instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(n)?n.div(i):n/i},i.prototype.nullableAverage=function(e,t){return this.any(Bridge.isNull)?null:this.average(e,t)},i.prototype.count=function(e){e=null==e?m.True:b.createLambda(e);var t=0;return this.forEach(function(n,i){e(n,i)&&++t}),t},i.prototype.max=function(e){return null==e&&(e=m.Identity),this.select(e).aggregate(function(e,t){return 1===Bridge.compare(e,t,!0)?e:t})},i.prototype.nullableMax=function(e){return this.any(Bridge.isNull)?null:this.max(e)},i.prototype.min=function(e){return null==e&&(e=m.Identity),this.select(e).aggregate(function(e,t){return-1===Bridge.compare(e,t,!0)?e:t})},i.prototype.nullableMin=function(e){return this.any(Bridge.isNull)?null:this.min(e)},i.prototype.maxBy=function(e){return e=b.createLambda(e),this.aggregate(function(t,n){return 1===Bridge.compare(e(t),e(n),!0)?t:n})},i.prototype.minBy=function(e){return e=b.createLambda(e),this.aggregate(function(t,n){return-1===Bridge.compare(e(t),e(n),!0)?t:n})},i.prototype.sum=function(e,t){!e||t||Bridge.isFunction(e)||(t=e,e=null),null==e&&(e=m.Identity);var n=this.select(e).aggregate(0,function(e,t){return e instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(e)?e.add(t):t instanceof Bridge.global.System.Decimal||Bridge.global.System.Int64.is64Bit(t)?t.add(e):e+t});return 0===n&&t?t:n},i.prototype.nullableSum=function(e,t){return this.any(Bridge.isNull)?null:this.sum(e,t)},i.prototype.elementAt=function(e){var t,n=!1;if(this.forEach(function(i,r){if(r==e)return t=i,n=!0,!1}),!n)throw new Error("index is less than 0 or greater than or equal to the number of elements in source.");return t},i.prototype.elementAtOrDefault=function(e,n){n===t&&(n=null);var i,r=!1;return this.forEach(function(t,n){if(n==e)return i=t,r=!0,!1}),r?i:n},i.prototype.first=function(e){if(null!=e)return this.where(e).first();var t,n=!1;if(this.forEach(function(e){return t=e,n=!0,!1}),!n)throw new Error("first:No element satisfies the condition.");return t},i.prototype.firstOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).firstOrDefault(null,n);var i,r=!1;return this.forEach(function(e){return i=e,r=!0,!1}),r?i:n},i.prototype.last=function(e){if(null!=e)return this.where(e).last();var t,n=!1;if(this.forEach(function(e){n=!0,t=e}),!n)throw new Error("last:No element satisfies the condition.");return t},i.prototype.lastOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).lastOrDefault(null,n);var i,r=!1;return this.forEach(function(e){r=!0,i=e}),r?i:n},i.prototype.single=function(e){if(null!=e)return this.where(e).single();var t,n=!1;if(this.forEach(function(e){if(n)throw new Error("single:sequence contains more than one element.");n=!0,t=e}),!n)throw new Error("single:No element satisfies the condition.");return t},i.prototype.singleOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return this.where(e).singleOrDefault(null,n);var i,r=!1;return this.forEach(function(e){if(r)throw new Error("single:sequence contains more than one element.");r=!0,i=e}),r?i:n},i.prototype.skip=function(e){var t=this;return new i(function(){var n,i=0;return new I(function(){for(n=t.GetEnumerator();i++")})},i.prototype.force=function(){var e=this.GetEnumerator();try{for(;e.moveNext(););}finally{b.Dispose(e)}},i.prototype.letBind=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=i.from(e(t)).GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(n.Current)},function(){b.Dispose(n)})})},i.prototype.share=function(){var e,t=this,n=!1;return new l(function(){return new I(function(){null==e&&(e=t.GetEnumerator())},function(){if(n)throw new Error("enumerator is disposed");return!!e.moveNext()&&this.yieldReturn(e.Current)},m.Blank)},function(){n=!0,b.Dispose(e)})},i.prototype.memoize=function(){var e,t,n=this,i=!1;return new l(function(){var r=-1;return new I(function(){null==t&&(t=n.GetEnumerator(),e=[])},function(){if(i)throw new Error("enumerator is disposed");return r++,e.length<=r?!!t.moveNext()&&this.yieldReturn(e[r]=t.Current):this.yieldReturn(e[r])},m.Blank)},function(){i=!0,b.Dispose(t),e=null})},i.prototype.catchError=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){try{return!!n.moveNext()&&this.yieldReturn(n.Current)}catch(t){return e(t),!1}},function(){b.Dispose(n)})})},i.prototype.finallyAction=function(e){e=b.createLambda(e);var t=this;return new i(function(){var n;return new I(function(){n=t.GetEnumerator()},function(){return!!n.moveNext()&&this.yieldReturn(n.Current)},function(){try{b.Dispose(n)}finally{e()}})})},i.prototype.log=function(e){return e=b.createLambda(e),this.doAction(function(t){typeof console!==p&&console.log(e(t))})},i.prototype.trace=function(e,t){return null==e&&(e="Trace"),t=b.createLambda(t),this.doAction(function(n){typeof console!==p&&console.log(e,t(n))})},(s=function(e,t,n,i,r){this.source=e,this.keySelector=b.createLambda(t),this.comparer=n||Bridge.global.System.Collections.Generic.Comparer$1.$default,this.descending=i,this.parent=r}).prototype=new i,s.prototype.constructor=s,Bridge.definei("System.Linq.IOrderedEnumerable$1"),s.$$inherits=[],Bridge.Class.addExtend(s,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.IOrderedEnumerable$1]),s.prototype.createOrderedEnumerable=function(e,t,n){return new s(this.source,e,t,n,this)},s.prototype.thenBy=function(e,t){return this.createOrderedEnumerable(e,t,!1)},s.prototype.thenByDescending=function(e,t){return this.createOrderedEnumerable(e,t,!0)},s.prototype.GetEnumerator=function(){var e,t,n=this,i=0;return new I(function(){e=[],t=[],n.source.forEach(function(n,i){e.push(n),t.push(i)});var i=a.create(n,null);i.GenerateKeys(e),t.sort(function(e,t){return i.compare(e,t)})},function(){return i0:i.prototype.any.apply(this,arguments)},o.prototype.count=function(e){return null==e?this.getSource().length:i.prototype.count.apply(this,arguments)},o.prototype.elementAt=function(e){var t=this.getSource();return 0<=e&&e0?t[0]:i.prototype.first.apply(this,arguments)},o.prototype.firstOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return i.prototype.firstOrDefault.apply(this,arguments);var r=this.getSource();return r.length>0?r[0]:n},o.prototype.last=function(e){var t=this.getSource();return null==e&&t.length>0?t[t.length-1]:i.prototype.last.apply(this,arguments)},o.prototype.lastOrDefault=function(e,n){if(n===t&&(n=null),null!=e)return i.prototype.lastOrDefault.apply(this,arguments);var r=this.getSource();return r.length>0?r[r.length-1]:n},o.prototype.skip=function(e){var t=this.getSource();return new i(function(){var n;return new I(function(){n=e<0?0:e},function(){return n0&&this.yieldReturn(e[--t])},m.Blank)})},o.prototype.sequenceEqual=function(e,t){return(!(e instanceof o||e instanceof Array)||null!=t||i.from(e).count()==this.count())&&i.prototype.sequenceEqual.apply(this,arguments)},o.prototype.toJoinedString=function(e,t){var n=this.getSource();return null==t&&n instanceof Array?(null==e&&(e=""),n.join(e)):i.prototype.toJoinedString.apply(this,arguments)},o.prototype.GetEnumerator=function(){return new Bridge.ArrayEnumerator(this.getSource())},(u=function(e,t){this.prevSource=e,this.prevPredicate=t}).prototype=new i,u.prototype.where=function(e){if((e=b.createLambda(e)).length<=1){var t=this.prevPredicate;return new u(this.prevSource,function(n){return t(n)&&e(n)})}return i.prototype.where.call(this,e)},u.prototype.select=function(e){return(e=b.createLambda(e)).length<=1?new d(this.prevSource,this.prevPredicate,e):i.prototype.select.call(this,e)},u.prototype.GetEnumerator=function(){var e,t=this.prevPredicate,n=this.prevSource;return new I(function(){e=n.GetEnumerator()},function(){for(;e.moveNext();)if(t(e.Current))return this.yieldReturn(e.Current);return!1},function(){b.Dispose(e)})},(d=function(e,t,n){this.prevSource=e,this.prevPredicate=t,this.prevSelector=n}).prototype=new i,d.prototype.where=function(e){return(e=b.createLambda(e)).length<=1?new u(this,e):i.prototype.where.call(this,e)},d.prototype.select=function(e){if((e=b.createLambda(e)).length<=1){var t=this.prevSelector;return new d(this.prevSource,this.prevPredicate,function(n){return e(t(n))})}return i.prototype.select.call(this,e)},d.prototype.GetEnumerator=function(){var e,t=this.prevPredicate,n=this.prevSelector,i=this.prevSource;return new I(function(){e=i.GetEnumerator()},function(){for(;e.moveNext();)if(null==t||t(e.Current))return this.yieldReturn(n(e.Current));return!1},function(){b.Dispose(e)})},g=function(e,t){this.count=function(){return e.getCount()},this.get=function(t){var n={v:null},r=e.tryGetValue(t,n);return i.from(r?n.v:[])},this.contains=function(t){return e.containsKey(t)},this.toEnumerable=function(){return i.from(t).select(function(t){return new c(t,e.get(t))})},this.GetEnumerator=function(){return this.toEnumerable().GetEnumerator()}},Bridge.definei("System.Linq.ILookup$2"),g.$$inherits=[],Bridge.Class.addExtend(g,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.ILookup$2]),(c=function(e,t){this.key=function(){return e},o.call(this,t)}).prototype=new o,Bridge.definei("System.Linq.IGrouping$2"),c.prototype.constructor=c,c.$$inherits=[],Bridge.Class.addExtend(c,[Bridge.global.System.Collections.IEnumerable,Bridge.global.System.Linq.IGrouping$2]),Bridge.Linq={},Bridge.Linq.Enumerable=i,Bridge.global.System.Linq=Bridge.global.System.Linq||{},Bridge.global.System.Linq.Enumerable=i,Bridge.global.System.Linq.Grouping$2=c,Bridge.global.System.Linq.Lookup$2=g,Bridge.global.System.Linq.OrderedEnumerable$1=s}(Bridge.global),Bridge.define("System.Runtime.Serialization.CollectionDataContractAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_ns:null,_itemName:null,_keyName:null,_valueName:null,_isReference:!1,_isNameSetExplicitly:!1,_isNamespaceSetExplicitly:!1,_isReferenceSetExplicitly:!1,_isItemNameSetExplicitly:!1,_isKeyNameSetExplicitly:!1,_isValueNameSetExplicitly:!1},props:{Namespace:{get:function(){return this._ns},set:function(e){this._ns=e,this._isNamespaceSetExplicitly=!0}},IsNamespaceSetExplicitly:{get:function(){return this._isNamespaceSetExplicitly}},Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}},ItemName:{get:function(){return this._itemName},set:function(e){this._itemName=e,this._isItemNameSetExplicitly=!0}},IsItemNameSetExplicitly:{get:function(){return this._isItemNameSetExplicitly}},KeyName:{get:function(){return this._keyName},set:function(e){this._keyName=e,this._isKeyNameSetExplicitly=!0}},IsReference:{get:function(){return this._isReference},set:function(e){this._isReference=e,this._isReferenceSetExplicitly=!0}},IsReferenceSetExplicitly:{get:function(){return this._isReferenceSetExplicitly}},IsKeyNameSetExplicitly:{get:function(){return this._isKeyNameSetExplicitly}},ValueName:{get:function(){return this._valueName},set:function(e){this._valueName=e,this._isValueNameSetExplicitly=!0}},IsValueNameSetExplicitly:{get:function(){return this._isValueNameSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.ContractNamespaceAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_clrNamespace:null,_contractNamespace:null},props:{ClrNamespace:{get:function(){return this._clrNamespace},set:function(e){this._clrNamespace=e}},ContractNamespace:{get:function(){return this._contractNamespace}}},ctors:{ctor:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._contractNamespace=e}}}),Bridge.define("System.Runtime.Serialization.DataContractAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_ns:null,_isNameSetExplicitly:!1,_isNamespaceSetExplicitly:!1,_isReference:!1,_isReferenceSetExplicitly:!1},props:{IsReference:{get:function(){return this._isReference},set:function(e){this._isReference=e,this._isReferenceSetExplicitly=!0}},IsReferenceSetExplicitly:{get:function(){return this._isReferenceSetExplicitly}},Namespace:{get:function(){return this._ns},set:function(e){this._ns=e,this._isNamespaceSetExplicitly=!0}},IsNamespaceSetExplicitly:{get:function(){return this._isNamespaceSetExplicitly}},Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.DataMemberAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_name:null,_isNameSetExplicitly:!1,_order:0,_isRequired:!1,_emitDefaultValue:!1},props:{Name:{get:function(){return this._name},set:function(e){this._name=e,this._isNameSetExplicitly=!0}},IsNameSetExplicitly:{get:function(){return this._isNameSetExplicitly}},Order:{get:function(){return this._order},set:function(e){if(e<0)throw new Bridge.global.System.Runtime.Serialization.InvalidDataContractException.$ctor1("Property \'Order\' in DataMemberAttribute attribute cannot be a negative number.");this._order=e}},IsRequired:{get:function(){return this._isRequired},set:function(e){this._isRequired=e}},EmitDefaultValue:{get:function(){return this._emitDefaultValue},set:function(e){this._emitDefaultValue=e}}},ctors:{init:function(){this._order=-1,this._emitDefaultValue=!0},ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.EnumMemberAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_value:null,_isValueSetExplicitly:!1},props:{Value:{get:function(){return this._value},set:function(e){this._value=e,this._isValueSetExplicitly=!0}},IsValueSetExplicitly:{get:function(){return this._isValueSetExplicitly}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.IDeserializationCallback",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.IFormatterConverter",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.IgnoreDataMemberAttribute",{inherits:[Bridge.global.System.Attribute],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)}}}),Bridge.define("System.Runtime.Serialization.InvalidDataContractException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t)}}}),Bridge.define("System.Runtime.Serialization.IObjectReference",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISafeSerializationData",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISerializable",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.ISerializationSurrogateProvider",{$kind:"interface"}),Bridge.define("System.Runtime.Serialization.KnownTypeAttribute",{inherits:[Bridge.global.System.Attribute],fields:{_methodName:null,_type:null},props:{MethodName:{get:function(){return this._methodName}},Type:{get:function(){return this._type}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this)},$ctor2:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._type=e},$ctor1:function(e){this.$initialize(),Bridge.global.System.Attribute.ctor.call(this),this._methodName=e}}}),Bridge.define("System.Runtime.Serialization.SerializationEntry",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Runtime.Serialization.SerializationEntry}}},fields:{_name:null,_value:null,_type:null},props:{Value:{get:function(){return this._value}},Name:{get:function(){return this._name}},ObjectType:{get:function(){return this._type}}},ctors:{$ctor1:function(e,t,n){this.$initialize(),this._name=e,this._value=t,this._type=n},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([7645431029,this._name,this._value,this._type])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Runtime.Serialization.SerializationEntry)&&Bridge.equals(this._name,e._name)&&Bridge.equals(this._value,e._value)&&Bridge.equals(this._type,e._type)},$clone:function(e){var t=e||new Bridge.global.System.Runtime.Serialization.SerializationEntry;return t._name=this._name,t._value=this._value,t._type=this._type,t}}}),Bridge.define("System.Runtime.Serialization.SerializationException",{inherits:[Bridge.global.System.SystemException],statics:{fields:{s_nullMessage:null},ctors:{init:function(){this.s_nullMessage="Serialization error."}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,Bridge.global.System.Runtime.Serialization.SerializationException.s_nullMessage),this.HResult=-2146233076},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233076},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233076}}}),Bridge.define("System.Runtime.Serialization.SerializationInfoEnumerator",{inherits:[Bridge.global.System.Collections.IEnumerator],fields:{_members:null,_data:null,_types:null,_numItems:0,_currItem:0,_current:!1},props:{System$Collections$IEnumerator$Current:{get:function(){return this.Current.$clone()}},Current:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return new Bridge.global.System.Runtime.Serialization.SerializationEntry.$ctor1(this._members[Bridge.global.System.Array.index(this._currItem,this._members)],this._data[Bridge.global.System.Array.index(this._currItem,this._data)],this._types[Bridge.global.System.Array.index(this._currItem,this._types)])}},Name:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._members[Bridge.global.System.Array.index(this._currItem,this._members)]}},Value:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._data[Bridge.global.System.Array.index(this._currItem,this._data)]}},ObjectType:{get:function(){if(!1===this._current)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._types[Bridge.global.System.Array.index(this._currItem,this._types)]}}},alias:["moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e,t,n,i){this.$initialize(),this._members=e,this._data=t,this._types=n,this._numItems=i-1|0,this._currItem=-1,this._current=!1}},methods:{moveNext:function(){return this._currItem>10!=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("options");if(0!=(t&r.RegexOptions.ECMAScript)&&0!=(t&~(r.RegexOptions.ECMAScript|r.RegexOptions.IgnoreCase|r.RegexOptions.Multiline|r.RegexOptions.CultureInvariant)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("options");if((t|(s=Bridge.global.System.Text.RegularExpressions.RegexOptions.IgnoreCase|Bridge.global.System.Text.RegularExpressions.RegexOptions.Multiline|Bridge.global.System.Text.RegularExpressions.RegexOptions.Singleline|Bridge.global.System.Text.RegularExpressions.RegexOptions.IgnorePatternWhitespace|Bridge.global.System.Text.RegularExpressions.RegexOptions.ExplicitCapture))!==s)throw new Bridge.global.System.NotSupportedException.$ctor1("Specified Regex options are not supported.");this._validateMatchTimeout(n),this._pattern=e,this._options=t,this._matchTimeout=n,this._runner=new r.RegexRunner(this),a=this._runner.parsePattern(),this._capnames=a.sparseSettings.sparseSlotNameMap,this._capslist=a.sparseSettings.sparseSlotNameMap.keys,this._capsize=this._capslist.length},getMatchTimeout:function(){return this._matchTimeout},getOptions:function(){return this._options},getRightToLeft:function(){return 0!=(this._options&Bridge.global.System.Text.RegularExpressions.RegexOptions.RightToLeft)},isMatch:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return Bridge.isDefined(t)||(t=this.getRightToLeft()?e.length:0),null==this._runner.run(!0,-1,e,0,e.length,t)},match:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");var i=e.length,r=0;return 3===arguments.length?(r=t,i=n,t=this.getRightToLeft()?r+i:r):Bridge.isDefined(t)||(t=this.getRightToLeft()?i:0),this._runner.run(!1,-1,e,r,i,t)},matches:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return Bridge.isDefined(t)||(t=this.getRightToLeft()?e.length:0),new Bridge.global.System.Text.RegularExpressions.MatchCollection(this,e,0,e.length,t)},getGroupNames:function(){if(null==this._capslist){for(var e=Bridge.global.System.Globalization.CultureInfo.invariantCulture,t=[],n=this._capsize,i=0;i=0&&e=0&&e"9"||i<"0")return-1;n*=10,n+=i-"0"}return n>=0&&n0&&t<=2147483646))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("matchTimeout")}}),Bridge.define("System.Text.RegularExpressions.Capture",{_text:"",_index:0,_length:0,ctor:function(e,t,n){this.$initialize(),this._text=e,this._index=t,this._length=n},getIndex:function(){return this._index},getLength:function(){return this._length},getValue:function(){return this._text.substr(this._index,this._length)},toString:function(){return this.getValue()},_getOriginalString:function(){return this._text},_getLeftSubstring:function(){return this._text.slice(0,_index)},_getRightSubstring:function(){return this._text.slice(this._index+this._length,this._text.length)}}),Bridge.define("System.Text.RegularExpressions.CaptureCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this._capcount}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_group:null,_capcount:0,_captures:null,ctor:function(e){this.$initialize(),this._group=e,this._capcount=e._capcount},getSyncRoot:function(){return this._group},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},getCount:function(){return this._capcount},get:function(e){if(e===this._capcount-1&&e>=0)return this._group;if(e>=this._capcount||e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("i");return this._ensureCapturesInited(),this._captures[e]},copyTo:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(e.length0&&(e[this._capcount-1]=this._group),this._captures=e}}}),Bridge.define("System.Text.RegularExpressions.CaptureEnumerator",{inherits:function(){return[Bridge.global.System.Collections.IEnumerator]},config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},_captureColl:null,_curindex:0,ctor:function(e){this.$initialize(),this._curindex=-1,this._captureColl=e},moveNext:function(){var e=this._captureColl.getCount();return!(this._curindex>=e)&&(this._curindex++,this._curindex=this._captureColl.getCount())throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._captureColl.get(this._curindex)},reset:function(){this._curindex=-1}}),Bridge.define("System.Text.RegularExpressions.Group",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Capture]},statics:{config:{init:function(){var e=new Bridge.global.System.Text.RegularExpressions.Group("",[],0);this.getEmpty=function(){return e}}},synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("group");var t=e.getCaptures();return t.getCount()>0&&t.get(0),e}},_caps:null,_capcount:0,_capColl:null,ctor:function(e,t,n){this.$initialize();var i=Bridge.global.System.Text.RegularExpressions,r=0===n?0:t[2*(n-1)],s=0===n?0:t[2*n-1];i.Capture.ctor.call(this,e,r,s),this._caps=t,this._capcount=n},getSuccess:function(){return 0!==this._capcount},getCaptures:function(){return null==this._capColl&&(this._capColl=new Bridge.global.System.Text.RegularExpressions.CaptureCollection(this)),this._capColl}}),Bridge.define("System.Text.RegularExpressions.GroupCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this._match._matchcount.length}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_match:null,_captureMap:null,_groups:null,ctor:function(e,t){this.$initialize(),this._match=e,this._captureMap=t},getSyncRoot:function(){return this._match},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},getCount:function(){return this._match._matchcount.length},get:function(e){return this._getGroup(e)},getByName:function(e){if(null==this._match._regex)return Bridge.global.System.Text.RegularExpressions.Group.getEmpty();var t=this._match._regex.groupNumberFromName(e);return this._getGroup(t)},copyTo:function(e,t){var n,i,r,s;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(n=this.getCount(),e.length=this._match._matchcount.length||e<0?Bridge.global.System.Text.RegularExpressions.Group.getEmpty():this._getGroupImpl(e)},_getGroupImpl:function(e){return 0===e?this._match:(this._ensureGroupsInited(),this._groups[e])},_ensureGroupsInited:function(){var e,t,n,i,r;if(null==this._groups){for((e=[]).length=this._match._matchcount.length,e.length>0&&(e[0]=this._match),r=0;r=e)&&(this._curindex++,this._curindex=this._groupColl.getCount())throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._groupColl.get(this._curindex)},reset:function(){this._curindex=-1}}),Bridge.define("System.Text.RegularExpressions.Match",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Group]},statics:{config:{init:function(){var e=new Bridge.global.System.Text.RegularExpressions.Match(null,1,"",0,0,0);this.getEmpty=function(){return e}}},synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(var t,n=e.getGroups(),i=n.getCount(),r=0;r0&&-2!==this._matches[e][2*this._matchcount[e]-1]},_addMatch:function(e,t,n){var i,r,s,a;if(null==this._matches[e]&&(this._matches[e]=new Array(2)),2*(i=this._matchcount[e])+2>this._matches[e].length){for(r=this._matches[e],s=new Array(8*i),a=0;a<2*i;a++)s[a]=r[a];this._matches[e]=s}this._matches[e][2*i]=t,this._matches[e][2*i+1]=n,this._matchcount[e]=i+1},_tidy:function(e){var t=this._matches[0];this._index=t[0],this._length=t[1],this._textpos=e,this._capcount=this._matchcount[0]},_groupToStringImpl:function(e){var t=this._matchcount[e];if(0===t)return"";var n=this._matches[e],i=n[2*(t-1)],r=n[2*t-1];return this._text.slice(i,i+r)},_lastGroupToStringImpl:function(){return this._groupToStringImpl(this._matchcount.length-1)}}),Bridge.define("System.Text.RegularExpressions.MatchSparse",{inherits:function(){return[Bridge.global.System.Text.RegularExpressions.Match]},_caps:null,ctor:function(e,t,n,i,r,s,a){this.$initialize(),Bridge.global.System.Text.RegularExpressions.Match.ctor.call(this,e,n,i,r,s,a),this._caps=t},getGroups:function(){return null==this._groupColl&&(this._groupColl=new Bridge.global.System.Text.RegularExpressions.GroupCollection(this,this._caps)),this._groupColl}}),Bridge.define("System.Text.RegularExpressions.MatchCollection",{inherits:function(){return[Bridge.global.System.Collections.ICollection]},config:{properties:{Count:{get:function(){return this.getCount()}}},alias:["GetEnumerator","System$Collections$IEnumerable$GetEnumerator","getCount","System$Collections$ICollection$getCount","Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo"]},_regex:null,_input:null,_beginning:0,_length:0,_startat:0,_prevlen:0,_matches:null,_done:!1,ctor:function(e,t,n,i,r){if(this.$initialize(),r<0||r>t.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startat");this._regex=e,this._input=t,this._beginning=n,this._length=i,this._startat=r,this._prevlen=-1,this._matches=[]},getCount:function(){return this._done||this._getMatch(2147483647),this._matches.length},getSyncRoot:function(){return this},getIsSynchronized:function(){return!1},getIsReadOnly:function(){return!0},get:function(e){var t=this._getMatch(e);if(null==t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("i");return t},copyTo:function(e,t){var n,i,r,s;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(n=this.getCount(),e.lengthe)return this._matches[e];if(this._done)return null;var t;do{if(!(t=this._regex._runner.run(!1,this._prevLen,this._input,this._beginning,this._length,this._startat)).getSuccess())return this._done=!0,null;this._matches.push(t),this._prevLen=t._length,this._startat=t._textpos}while(this._matches.length<=e);return t}}),Bridge.define("System.Text.RegularExpressions.MatchEnumerator",{inherits:function(){return[Bridge.global.System.Collections.IEnumerator]},config:{properties:{Current:{get:function(){return this.getCurrent()}}},alias:["getCurrent","System$Collections$IEnumerator$getCurrent","moveNext","System$Collections$IEnumerator$moveNext","reset","System$Collections$IEnumerator$reset","Current","System$Collections$IEnumerator$Current"]},_matchcoll:null,_match:null,_curindex:0,_done:!1,ctor:function(e){this.$initialize(),this._matchcoll=e},moveNext:function(){return!this._done&&(this._match=this._matchcoll._getMatch(this._curindex),this._curindex++,null!=this._match||(this._done=!0,!1))},getCurrent:function(){if(null==this._match)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this._match},reset:function(){this._curindex=0,this._done=!1,this._match=null}}),Bridge.define("System.Text.RegularExpressions.RegexOptions",{statics:{None:0,IgnoreCase:1,Multiline:2,ExplicitCapture:4,Compiled:8,Singleline:16,IgnorePatternWhitespace:32,RightToLeft:64,ECMAScript:256,CultureInvariant:512},$kind:"enum",$flags:!0}),Bridge.define("System.Text.RegularExpressions.RegexRunner",{statics:{},_runregex:null,_netEngine:null,_runtext:"",_runtextpos:0,_runtextbeg:0,_runtextend:0,_runtextstart:0,_quick:!1,_prevlen:0,ctor:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("regex");this._runregex=e;var t=e.getOptions(),n=Bridge.global.System.Text.RegularExpressions.RegexOptions,i=(t&n.IgnoreCase)===n.IgnoreCase,r=(t&n.Multiline)===n.Multiline,s=(t&n.Singleline)===n.Singleline,a=(t&n.IgnorePatternWhitespace)===n.IgnorePatternWhitespace,l=(t&n.ExplicitCapture)===n.ExplicitCapture,o=e._matchTimeout.getTotalMilliseconds();this._netEngine=new Bridge.global.System.Text.RegularExpressions.RegexEngine(e._pattern,i,r,s,a,l,o)},run:function(e,t,n,i,r,s){var a,l,o;if(s<0||s>n.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("start","Start index cannot be less than 0 or greater than input length.");if(r<0||r>n.Length)throw new ArgumentOutOfRangeException("length","Length cannot be less than 0 or exceed input length.");if(this._runtext=n,this._runtextbeg=i,this._runtextend=i+r,this._runtextstart=s,this._quick=e,this._prevlen=t,this._runregex.getRightToLeft()?(a=this._runtextbeg,l=-1):(a=this._runtextend,l=1),0===this._prevlen){if(this._runtextstart===a)return Bridge.global.System.Text.RegularExpressions.Match.getEmpty();this._runtextstart+=l}return o=this._netEngine.match(this._runtext,this._runtextstart),this._convertNetEngineResults(o)},parsePattern:function(){return this._netEngine.parsePattern()},_convertNetEngineResults:function(e){var t,n,i,r,s,a,l,o;if(e.success&&this._quick)return null;if(!e.success)return Bridge.global.System.Text.RegularExpressions.Match.getEmpty();for(n=(t=this.parsePattern()).sparseSettings.isSparse?new Bridge.global.System.Text.RegularExpressions.MatchSparse(this._runregex,t.sparseSettings.sparseSlotMap,e.groups.length,this._runtext,0,this._runtext.length,this._runtextstart):new Bridge.global.System.Text.RegularExpressions.Match(this._runregex,e.groups.length,this._runtext,0,this._runtext.length,this._runtextstart),a=0;a=Bridge.global.System.Text.RegularExpressions.RegexParser._E}},_caps:null,_capsize:0,_capnames:null,_pattern:"",_currentPos:0,_concatenation:null,_culture:null,config:{init:function(){this._options=Bridge.global.System.Text.RegularExpressions.RegexOptions.None}},ctor:function(e){this.$initialize(),this._culture=e,this._caps={}},_noteCaptures:function(e,t,n){this._caps=e,this._capsize=t,this._capnames=n},_setPattern:function(e){null==e&&(e=""),this._pattern=e||"",this._currentPos=0},_scanReplacement:function(){this._concatenation=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Concatenate,this._options);for(var e,t,n;0!==(e=this._charsRight());){for(t=this._textpos();e>0&&"$"!==this._rightChar();)this._moveRight(),e--;this._addConcatenate(t,this._textpos()-t),e>0&&"$"===this._moveRightGetChar()&&(n=this._scanDollar(),this._concatenation.addChild(n))}return this._concatenation},_addConcatenate:function(e,t){var n,i,r;0!==t&&(t>1?(i=this._pattern.slice(e,e+t),n=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Multi,this._options,i)):(r=this._pattern[e],n=new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,r)),this._concatenation.addChild(n))},_useOptionE:function(){return 0!=(this._options&Bridge.global.System.Text.RegularExpressions.RegexOptions.ECMAScript)},_makeException:function(e){return new Bridge.global.System.ArgumentException("Incorrect pattern. "+e)},_scanDollar:function(){var e,t,n,i,r,s=214748364;if(0===this._charsRight())return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$");var a,l=this._rightChar(),o=this._textpos(),u=o;if("{"===l&&this._charsRight()>1?(a=!0,this._moveRight(),l=this._rightChar()):a=!1,l>="0"&&l<="9"){if(!a&&this._useOptionE()){for(e=-1,n=l-"0",this._moveRight(),this._isCaptureSlot(n)&&(e=n,u=this._textpos());this._charsRight()>0&&(l=this._rightChar())>="0"&&l<="9";){if(t=l-"0",n>s||n===s&&t>7)throw this._makeException("Capture group is out of range.");n=10*n+t,this._moveRight(),this._isCaptureSlot(n)&&(e=n,u=this._textpos())}if(this._textto(u),e>=0)return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}else if(e=this._scanDecimal(),(!a||this._charsRight()>0&&"}"===this._moveRightGetChar())&&this._isCaptureSlot(e))return new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}else if(a&&this._isWordChar(l)){if(i=this._scanCapname(),this._charsRight()>0&&"}"===this._moveRightGetChar()&&this._isCaptureName(i))return r=this._captureSlotFromName(i),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,r)}else if(!a){switch(e=1,l){case"$":return this._moveRight(),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$");case"&":e=0;break;case"`":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion;break;case"\'":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion;break;case"+":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup;break;case"_":e=Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString}if(1!==e)return this._moveRight(),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.Ref,this._options,e)}return this._textto(o),new Bridge.global.System.Text.RegularExpressions.RegexNode(Bridge.global.System.Text.RegularExpressions.RegexNode.One,this._options,"$")},_scanDecimal:function(){for(var e,t,n=214748364,i=0;this._charsRight()>0&&!((e=this._rightChar())<"0"||e>"9");){if(t=e-"0",this._moveRight(),i>n||i===n&&t>7)throw this._makeException("Capture group is out of range.");i*=10,i+=t}return i},_scanOctal:function(){var e,t,n;for((n=3)>this._charsRight()&&(n=this._charsRight()),t=0;n>0&&(e=this._rightChar()-"0")<=7&&(this._moveRight(),t*=8,t+=e,!(this._useOptionE()&&t>=32));n-=1);return t&=255,String.fromCharCode(t)},_scanHex:function(e){var t,n;if(t=0,this._charsRight()>=e)for(;e>0&&(n=this._hexDigit(this._moveRightGetChar()))>=0;e-=1)t*=16,t+=n;if(e>0)throw this._makeException("Insufficient hexadecimal digits.");return t},_hexDigit:function(e){var t,n=e.charCodeAt(0);return(t=n-"0".charCodeAt(0))<=9?t:(t=n-"a".charCodeAt(0))<=5?t+10:(t=n-"A".charCodeAt(0))<=5?t+10:-1},_scanControl:function(){if(this._charsRight()<=0)throw this._makeException("Missing control character.");var e=this._moveRightGetChar().charCodeAt(0);if(e>="a".charCodeAt(0)&&e<="z".charCodeAt(0)&&(e-="a".charCodeAt(0)-"A".charCodeAt(0)),(e-="@".charCodeAt(0))<" ".charCodeAt(0))return String.fromCharCode(e);throw this._makeException("Unrecognized control character.")},_scanCapname:function(){for(var e=this._textpos();this._charsRight()>0;)if(!this._isWordChar(this._moveRightGetChar())){this._moveLeft();break}return _pattern.slice(e,this._textpos())},_scanCharEscape:function(){var e=this._moveRightGetChar();if(e>="0"&&e<="7")return this._moveLeft(),this._scanOctal();switch(e){case"x":return this._scanHex(2);case"u":return this._scanHex(4);case"a":return"";case"b":return"\\b";case"e":return"";case"f":return"\\f";case"n":return"\\n";case"r":return"\\r";case"t":return"\\t";case"v":return"\\v";case"c":return this._scanControl();default:if("8"===e||"9"===e||"_"===e||!this._useOptionE()&&this._isWordChar(e))throw this._makeException("Unrecognized escape sequence \\\\"+e+".");return e}},_captureSlotFromName:function(e){return this._capnames[e]},_isCaptureSlot:function(e){return null!=this._caps?null!=this._caps[e]:e>=0&&e0}}),Bridge.define("System.Text.RegularExpressions.RegexReplacement",{statics:{replace:function(e,t,n,i,r){var s,a,l,o,u,d,g;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("evaluator");if(i<-1)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than -1.");if(r<0||r>n.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(0===i)return n;if((s=t.match(n,r)).getSuccess()){if(a="",t.getRightToLeft()){d=[],l=n.length;do{if((o=s.getIndex())+(u=s.getLength())!==l&&d.push(n.slice(o+u,l)),l=o,d.push(e(s)),0==--i)break;s=s.nextMatch()}while(s.getSuccess());for(a=new StringBuilder,l>0&&(a+=a.slice(0,l)),g=d.length-1;g>=0;g--)a+=d[g]}else{l=0;do{if(o=s.getIndex(),u=s.getLength(),o!==l&&(a+=n.slice(l,o)),l=o+u,a+=e(s),0==--i)break;s=s.nextMatch()}while(s.getSuccess());lt.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(r=[],1===n)return r.push(t),r;if(--n,(s=e.match(t,i)).getSuccess())if(e.getRightToLeft()){for(l=t.length;;){for(o=s.getIndex(),u=s.getLength(),g=(d=s.getGroups()).getCount(),r.push(t.slice(o+u,l)),l=o,a=1;a0&&(l.push(a.length),a.push(s),s=""),i=r._m,null!=n&&i>=0&&(i=n[i]),l.push(-Bridge.global.System.Text.RegularExpressions.RegexReplacement.Specials-1-i);break;default:throw new Bridge.global.System.ArgumentException.$ctor1("Replacement error.")}s.length>0&&(l.push(a.length),a.push(s)),this._strings=a,this._rules=l},getPattern:function(){return _rep},replacement:function(e){return this._replacementImpl("",e)},replace:function(e,t,n,i){var r,s,a,l,o,u,d;if(n<-1)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","Count cannot be less than -1.");if(i<0||i>t.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("startat","Start index cannot be less than 0 or greater than input length.");if(0===n)return t;if((r=e.match(t,i)).getSuccess()){if(s="",e.getRightToLeft()){u=[],a=t.length;do{if((l=r.getIndex())+(o=r.getLength())!==a&&u.push(t.slice(l+o,a)),a=l,this._replacementImplRTL(u,r),0==--n)break;r=r.nextMatch()}while(r.getSuccess());for(a>0&&(s+=s.slice(0,a)),d=u.length-1;d>=0;d--)s+=u[d]}else{a=0;do{if(l=r.getIndex(),o=r.getLength(),l!==a&&(s+=t.slice(a,l)),a=l+o,s=this._replacementImpl(s,r),0==--n)break;r=r.nextMatch()}while(r.getSuccess());a=0)e+=this._strings[n];else if(n<-i)e+=t._groupToStringImpl(-i-1-n);else switch(-i-1-n){case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion:e+=t._getLeftSubstring();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion:e+=t._getRightSubstring();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup:e+=t._lastGroupToStringImpl();break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString:e+=t._getOriginalString()}return e},_replacementImplRTL:function(e,t){for(var n,i=Bridge.global.System.Text.RegularExpressions.RegexReplacement.Specials,r=_rules.length-1;r>=0;r--)if((n=this._rules[r])>=0)e.push(this._strings[n]);else if(n<-i)e.push(t._groupToStringImpl(-i-1-n));else switch(-i-1-n){case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LeftPortion:e.push(t._getLeftSubstring());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.RightPortion:e.push(t._getRightSubstring());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.LastGroup:e.push(t._lastGroupToStringImpl());break;case Bridge.global.System.Text.RegularExpressions.RegexReplacement.WholeString:e.push(t._getOriginalString())}}}),Bridge.define("System.Text.RegularExpressions.RegexEngine",{_pattern:"",_patternInfo:null,_text:"",_textStart:0,_timeoutMs:-1,_timeoutTime:-1,_settings:null,_branchType:{base:0,offset:1,lazy:2,greedy:3,or:4},_branchResultKind:{ok:1,endPass:2,nextPass:3,nextBranch:4},ctor:function(e,t,n,i,r,s,a){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("pattern");this._pattern=e,this._timeoutMs=a,this._settings={ignoreCase:t,multiline:n,singleline:i,ignoreWhitespace:r,explicitCapture:s}},match:function(e,t){var n;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("text");if(null!=t&&(t<0||t>e.length))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("textStart","Start index cannot be less than 0 or greater than input length.");return this._text=e,this._textStart=t,this._timeoutTime=this._timeoutMs>0?(new Date).getTime()+Bridge.global.System.Convert.toInt32(this._timeoutMs+.5):-1,(n=this.parsePattern()).shouldFail?this._getEmptyMatch():(this._checkTimeout(),this._scanAndTransformResult(t,n.tokens,!1,null))},parsePattern:function(){if(null==this._patternInfo){var e=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.parsePattern(this._pattern,this._cloneSettings(this._settings));this._patternInfo=e}return this._patternInfo},_scanAndTransformResult:function(e,t,n,i){var r=this._scan(e,this._text.length,t,n,i);return this._collectScanResults(r,e)},_scan:function(e,t,n,i,r){var s,a,l=this._branchResultKind,o=[];if(o.grCaptureCache={},s=null,0===n.length)return(a=new Bridge.global.System.Text.RegularExpressions.RegexEngineState).capIndex=e,a.txtIndex=e,a.capLength=0,a;var u=i?this._branchType.base:this._branchType.offset,d=this._patternInfo.isContiguous?e:t,g=new Bridge.global.System.Text.RegularExpressions.RegexEngineBranch(u,e,e,d);for(g.pushPass(0,n,this._cloneSettings(this._settings)),g.started=!0,g.state.txtIndex=e,o.push(g);o.length;){if(s=o[o.length-1],this._scanBranch(t,o,s)===l.ok&&(null==r||s.state.capLength===r))return s.state;this._advanceToNextBranch(o,s),this._checkTimeout()}return null},_scanBranch:function(e,t,n){var i,r,s=this._branchResultKind;if(n.mustFail)return n.mustFail=!1,s.nextBranch;for(;n.hasPass();){if(null==(i=n.peekPass()).tokens||0===i.tokens.length)r=s.endPass;else{if(this._addAlternationBranches(t,n,i)===s.nextBranch)return s.nextBranch;r=this._scanPass(e,t,n,i)}switch(r){case s.nextBranch:return r;case s.nextPass:continue;case s.endPass:case s.ok:n.popPass();break;default:throw new Bridge.global.System.InvalidOperationException.$ctor1("Unexpected branch result.")}}return s.ok},_scanPass:function(e,t,n,i){for(var r,s,a,l=this._branchResultKind,o=i.tokens.length;i.index1){for(a=0;at.max&&e.pop();else if(e.pop(),!t.isNotFailing)return n=e[e.length-1],void this._advanceToNextBranch(e,n)}},_collectScanResults:function(e,t){var n,i,r,s,a,l,o=this._patternInfo.groups,u=this._text,d={},g={},c=this._getEmptyMatch();if(null!=e){for(n=e.groups,this._fillMatch(c,e.capIndex,e.capLength,t),l=0;l0&&(s=a.captures[a.captures.length-1],a.capIndex=s.capIndex,a.capLength=s.capLength,a.value=s.value,a.success=!0),d[r.name]=!0,a.descriptor=r,c.groups.push(a))}return c},_scanToken:function(e,t,n,i,r){var s=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,a=this._branchResultKind;switch(r.type){case s.group:case s.groupImnsx:case s.alternationGroup:return this._scanGroupToken(e,t,n,i,r);case s.groupImnsxMisc:return this._scanGroupImnsxToken(r.group.constructs,i.settings);case s.charGroup:return this._scanCharGroupToken(t,n,i,r,!1);case s.charNegativeGroup:return this._scanCharNegativeGroupToken(t,n,i,r,!1);case s.escChar:case s.escCharOctal:case s.escCharHex:case s.escCharUnicode:case s.escCharCtrl:return this._scanLiteral(e,t,n,i,r.data.ch);case s.escCharOther:case s.escCharClass:return this._scanEscapeToken(t,n,i,r);case s.escCharClassCategory:throw new Bridge.global.System.NotSupportedException.$ctor1("Unicode Category constructions are not supported.");case s.escCharClassBlock:throw new Bridge.global.System.NotSupportedException.$ctor1("Unicode Named block constructions are not supported.");case s.escCharClassDot:return this._scanDotToken(e,t,n,i);case s.escBackrefNumber:return this._scanBackrefNumberToken(e,t,n,i,r);case s.escBackrefName:return this._scanBackrefNameToken(e,t,n,i,r);case s.anchor:case s.escAnchor:return this._scanAnchorToken(e,t,n,i,r);case s.groupConstruct:case s.groupConstructName:case s.groupConstructImnsx:case s.groupConstructImnsxMisc:return a.ok;case s.alternationGroupCondition:case s.alternationGroupRefNameCondition:case s.alternationGroupRefNumberCondition:return this._scanAlternationConditionToken(e,t,n,i,r);case s.alternation:return a.endPass;case s.commentInline:case s.commentXMode:return a.ok;default:return this._scanLiteral(e,t,n,i,r.value)}},_scanGroupToken:function(e,t,n,i,r){var s,a,l=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,o=this._branchResultKind,u=n.state.txtIndex;if(i.onHold){if(r.type===l.group){var d=r.group.rawIndex,g=i.onHoldTextIndex,c=u-g,m=t.grCaptureCache[d];if(null==m&&(m={},t.grCaptureCache[d]=m),null!=m[s=g.toString()+"_"+c.toString()])return o.nextBranch;m[s]=!0,r.group.constructs.emptyCapture||(r.group.isBalancing?n.state.logCaptureGroupBalancing(r.group,g):n.state.logCaptureGroup(r.group,g,c))}return i.onHold=!1,i.onHoldTextIndex=-1,o.ok}if(r.type===l.group||r.type===l.groupImnsx){if(a=r.group.constructs,this._scanGroupImnsxToken(a,i.settings),a.isPositiveLookahead||a.isNegativeLookahead||a.isPositiveLookbehind||a.isNegativeLookbehind)return this._scanLook(n,u,e,r);if(a.isNonbacktracking)return this._scanNonBacktracking(n,u,e,r)}return i.onHoldTextIndex=u,i.onHold=!0,n.pushPass(0,r.children,this._cloneSettings(i.settings)),o.nextPass},_scanGroupImnsxToken:function(e,t){var n=this._branchResultKind;return null!=e.isIgnoreCase&&(t.ignoreCase=e.isIgnoreCase),null!=e.isMultiline&&(t.multiline=e.isMultiline),null!=e.isSingleLine&&(t.singleline=e.isSingleLine),null!=e.isIgnoreWhitespace&&(t.ignoreWhitespace=e.isIgnoreWhitespace),null!=e.isExplicitCapture&&(t.explicitCapture=e.isExplicitCapture),n.ok},_scanAlternationConditionToken:function(e,t,n,i,r){var s,a=Bridge.global.System.Text.RegularExpressions.RegexEngineParser.tokenTypes,l=this._branchResultKind,o=r.children,u=n.state.txtIndex,d=l.nextBranch;return r.type===a.alternationGroupRefNameCondition||r.type===a.alternationGroupRefNumberCondition?d=null!=n.state.resolveBackref(r.data.packedSlotId)?l.ok:l.nextBranch:(s=this._scan(u,e,o,!0,null),this._combineScanResults(n,s)&&(d=l.ok)),d===l.nextBranch&&i.tokens.noAlternation&&(d=l.endPass),d},_scanLook:function(e,t,n,i){var r=i.group.constructs,s=this._branchResultKind,a=i.children,l=r.isPositiveLookahead||r.isNegativeLookahead,o=r.isPositiveLookbehind||r.isNegativeLookbehind;return l||o?(a=a.slice(1,a.length),(r.isPositiveLookahead||r.isPositiveLookbehind)===(l?this._scanLookAhead(e,t,n,a):this._scanLookBehind(e,t,n,a))?s.ok:s.nextBranch):null},_scanLookAhead:function(e,t,n,i){var r=this._scan(t,n,i,!0,null);return this._combineScanResults(e,r)},_scanLookBehind:function(e,t,n,i){for(var r,s,a=t;a>=0;){if(r=t-a,s=this._scan(a,n,i,!0,r),this._combineScanResults(e,s))return!0;--a}return!1},_scanNonBacktracking:function(e,t,n,i){var r,s=this._branchResultKind,a=i.children;return a=a.slice(1,a.length),(r=this._scan(t,n,a,!0,null))?(e.state.logCapture(r.capLength),s.ok):s.nextBranch},_scanLiteral:function(e,t,n,i,r){var s,a=this._branchResultKind,l=n.state.txtIndex;if(l+r.length>e)return a.nextBranch;if(i.settings.ignoreCase){for(s=0;sl);s++)if(l<=u.m)return r||t.state.logCapture(1),m.ok;null==d&&n.settings.ignoreCase&&(l=(f=f===(d=f.toUpperCase())?f.toLowerCase():d).charCodeAt(0))}return m.nextBranch},_scanCharNegativeGroupToken:function(e,t,n,i,r){var s=this._branchResultKind,a=t.state.txtIndex;return null==this._text[a]?s.nextBranch:this._scanCharGroupToken(e,t,n,i,!0)===s.ok?s.nextBranch:(r||t.state.logCapture(1),s.ok)},_scanEscapeToken:function(e,t,n,i){return this._scanWithJsRegex(e,t,n,i)},_scanDotToken:function(e,t,n,i){var r=this._branchResultKind,s=n.state.txtIndex;if(i.settings.singleline){if(s0&&this._scanWithJsRegex2(a-1,"\\\\w")===s.ok)==(this._scanWithJsRegex2(a,"\\\\w")===s.ok)==("\\\\B"===r.value))return s.ok}else if("^"===r.value){if(0===a||i.settings.multiline&&"\\n"===this._text[a-1])return s.ok}else if("$"===r.value){if(a===e||i.settings.multiline&&"\\n"===this._text[a])return s.ok}else if("\\\\A"===r.value){if(0===a)return s.ok}else if("\\\\z"===r.value){if(a===e)return s.ok}else if("\\\\Z"===r.value){if(a===e||a===e-1&&"\\n"===this._text[a])return s.ok}else if("\\\\G"===r.value)return s.ok;return s.nextBranch},_cloneSettings:function(e){return{ignoreCase:e.ignoreCase,multiline:e.multiline,singleline:e.singleline,ignoreWhitespace:e.ignoreWhitespace,explicitCapture:e.explicitCapture}},_combineScanResults:function(e,t){if(null!=t){for(var n=e.state.groups,i=t.groups,r=i.length,s=0;s=this._timeoutTime)throw new Bridge.global.System.RegexMatchTimeoutException(this._text,this._pattern,Bridge.global.System.TimeSpan.fromMilliseconds(this._timeoutMs))}}),Bridge.define("System.Text.RegularExpressions.RegexEngineBranch",{type:0,value:0,min:0,max:0,isStarted:!1,isNotFailing:!1,state:null,ctor:function(e,t,n,i,r){this.$initialize(),this.type=e,this.value=t,this.min=n,this.max=i,this.state=null!=r?r.clone():new Bridge.global.System.Text.RegularExpressions.RegexEngineState},pushPass:function(e,t,n){var i=new Bridge.global.System.Text.RegularExpressions.RegexEnginePass(e,t,n);this.state.passes.push(i)},peekPass:function(){return this.state.passes[this.state.passes.length-1]},popPass:function(){return this.state.passes.pop()},hasPass:function(){return this.state.passes.length>0},clone:function(){var e=new Bridge.global.System.Text.RegularExpressions.RegexEngineBranch(this.type,this.value,this.min,this.max,this.state);return e.isNotFailing=this.isNotFailing,e}}),Bridge.define("System.Text.RegularExpressions.RegexEngineState",{txtIndex:0,capIndex:null,capLength:0,passes:null,groups:null,ctor:function(){this.$initialize(),this.passes=[],this.groups=[]},logCapture:function(e){null==this.capIndex&&(this.capIndex=this.txtIndex),this.txtIndex+=e,this.capLength+=e},logCaptureGroup:function(e,t,n){this.groups.push({rawIndex:e.rawIndex,slotId:e.packedSlotId,capIndex:t,capLength:n})},logCaptureGroupBalancing:function(e,t){for(var n,i,r,s,a=e.balancingSlotId,l=this.groups,o=l.length-1;o>=0;){if(l[o].slotId===a){n=l[o],i=o;break}--o}return null!=n&&null!=i&&(l.splice(i,1),null!=e.constructs.name1&&(s=t-(r=n.capIndex+n.capLength),this.logCaptureGroup(e,r,s)),!0)},resolveBackref:function(e){for(var t=this.groups,n=t.length-1;n>=0;){if(t[n].slotId===e)return t[n];--n}return null},clone:function(){var e,t,n=new Bridge.global.System.Text.RegularExpressions.RegexEngineState;n.txtIndex=this.txtIndex,n.capIndex=this.capIndex,n.capLength=this.capLength;for(var i,r=n.passes,s=this.passes,a=s.length,l=0;l0&&!l.qtoken&&(a=t[p-1]).type===f.literal&&!a.qtoken){a.value+=l.value,a.length+=l.length,t.splice(p,1),--p;continue}}else if(l.type===f.alternationGroupCondition&&null!=l.data)if(null!=l.data.number){if(null==(u=n.getPackedSlotIdBySlotNumber(l.data.number)))throw new Bridge.global.System.ArgumentException.$ctor1("Reference to undefined group number "+o+".");l.data.packedSlotId=u,h._updatePatternToken(l,f.alternationGroupRefNumberCondition,l.index,l.length,l.value)}else null!=(u=n.getPackedSlotIdBySlotName(l.data.name))?(l.data.packedSlotId=u,h._updatePatternToken(l,f.alternationGroupRefNameCondition,l.index,l.length,l.value)):delete l.data}l.children&&l.children.length&&(g=(g=l.type===f.group?[l.group.rawIndex]:[]).concat(r),c=l.localSettings||e,h._transformRawTokens(c,l.children,n,i,g,s+1),e.shouldFail=e.shouldFail||c.shouldFail,e.isContiguous=e.isContiguous||c.isContiguous),l.type===f.group&&i.push(l.group.packedSlotId)}},_fillGroupDescriptors:function(e,t){var n,i,r;for(Bridge.global.System.Text.RegularExpressions.RegexEngineParser._fillGroupStructure(t,e,null),r=1,i=0;i1&&(n.isSparse=!0),n.lastSlot=t},_addSparseSlotForSameNamedGroups:function(e,t,n,i){var r,s,a;if(Bridge.global.System.Text.RegularExpressions.RegexEngineParser._addSparseSlot(e[0],t,n,i),s=e[0].sparseSlotId,a=e[0].packedSlotId,e.length>1)for(r=1;r":a.isNonbacktracking=!0;break;case"?<=":a.isPositiveLookbehind=!0;break;case"?2)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name.");t[0].length&&(a.name1=t[0],n=r._validateGroupName(t[0]),a.isNumberName1=n.isNumberName),2===t.length&&(a.name2=t[1],i=r._validateGroupName(t[1]),a.isNumberName2=i.isNumberName)}else if(e.type===s.groupConstructImnsx||e.type===s.groupConstructImnsxMisc)for(var l,o=e.type===s.groupConstructImnsx?1:0,u=e.length-1-o,d=!0,g=1;g<=u;g++)"-"===(l=e.value[g])?d=!1:"i"===l?a.isIgnoreCase=d:"m"===l?a.isMultiline=d:"n"===l?a.isExplicitCapture=d:"s"===l?a.isSingleLine=d:"x"===l&&(a.isIgnoreWhitespace=d);return a},_validateGroupName:function(e){var t,n;if(!e||!e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");if((t=e[0]>="0"&&e[0]<="9")&&(n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser)._matchChars(e,0,e.length,n._decSymbols).matchLength!==e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");return{isNumberName:t}},_fillBalancingGroupInfo:function(e,t){for(var n,i=0;i=1&&null!=n.getPackedSlotIdBySlotNumber(i))continue;if(i<=9)throw new Bridge.global.System.ArgumentException.$ctor1("Reference to undefined group number "+i.toString()+".");if(null==(r=o._parseOctalCharToken(l.value,0,l.length)))throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized escape sequence "+l.value.slice(0,2)+".");s=l.length-r.length,o._modifyPatternToken(l,e,u.escCharOctal,null,r.length),l.data=r.data,s>0&&(a=o._createPatternToken(e,u.literal,l.index+l.length,s),t.splice(d+1,0,a))}l.children&&l.children.length&&o._preTransformBackrefTokens(e,l.children,n)}},_updateGroupDescriptors:function(e,t){for(var n,i,r,s,a,l=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,o=l.tokenTypes,u=t||0,d=0;de.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(ie.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("endIndex");for(var r,s,a=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,l=a.tokenTypes,o=[],u=n;u=0?++u:(null==(r="."===s?a._parseDotToken(e,u,i):"\\\\"===s?a._parseEscapeToken(e,u,i):"["===s?a._parseCharRangeToken(e,u,i):"^"===s||"$"===s?a._parseAnchorToken(e,u):"("===s?a._parseGroupToken(e,t,u,i):"|"===s?a._parseAlternationToken(e,u):"#"===s&&t.ignoreWhitespace?a._parseXModeCommentToken(e,u,i):a._parseQuantifierToken(e,u,i))&&(r=a._createPatternToken(e,l.literal,u,1)),null!=r&&(o.push(r),u+=r.length));return o},_parseEscapeToken:function(e,t,n){var i,r,s,a,l,o,u,d,g,c=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=c.tokenTypes,h=e[t];if("\\\\"!==h)return null;if(t+1>=n)throw new Bridge.global.System.ArgumentException.$ctor1("Illegal \\\\ at end of pattern.");if((h=e[t+1])>="1"&&h<="9")return i=c._matchChars(e,t+1,n,c._decSymbols,3),(r=c._createPatternToken(e,m.escBackrefNumber,t,1+i.matchLength)).data={number:parseInt(i.match,10)},r;if(c._escapedAnchors.indexOf(h)>=0)return c._createPatternToken(e,m.escAnchor,t,2);if(null!=(s=c._parseEscapedChar(e,t,n)))return s;if("k"===h){if(t+2":"\'",1===(o=c._matchUntil(e,t+3,n,l)).unmatchLength&&o.matchLength>0))return(u=c._createPatternToken(e,m.escBackrefName,t,3+o.matchLength+1)).data={name:o.match},u;throw new Bridge.global.System.ArgumentException.$ctor1("Malformed \\\\k<...> named back reference.")}if((d=h.charCodeAt(0))>=0&&d<48||d>57&&d<65||d>90&&d<95||96===d||d>122&&d<128)return(g=c._createPatternToken(e,m.escChar,t,2)).data={n:d,ch:h},g;throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized escape sequence \\\\"+h+".")},_parseOctalCharToken:function(e,t,n){var i=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,r=i.tokenTypes,s=e[t];if("\\\\"===s&&t+1="0"&&s<="7"){var a=i._matchChars(e,t+1,n,i._octSymbols,3),l=parseInt(a.match,8),o=i._createPatternToken(e,r.escCharOctal,t,1+a.matchLength);return o.data={n:l,ch:String.fromCharCode(l)},o}return null},_parseEscapedChar:function(e,t,n){var i,r,s,a,l,o,u,d,g,c,m=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,h=m.tokenTypes,f=e[t];if("\\\\"!==f||t+1>=n)return null;if(f=e[t+1],m._escapedChars.indexOf(f)>=0){if("x"===f){if(2!==(r=m._matchChars(e,t+2,n,m._hexSymbols,2)).matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Insufficient hexadecimal digits.");return s=parseInt(r.match,16),(i=m._createPatternToken(e,h.escCharHex,t,4)).data={n:s,ch:String.fromCharCode(s)},i}if("c"===f){if(t+2>=n)throw new Bridge.global.System.ArgumentException.$ctor1("Missing control character.");if(a=(a=e[t+2]).toUpperCase(),(l=this._controlChars.indexOf(a))>=0)return(i=m._createPatternToken(e,h.escCharCtrl,t,3)).data={n:l,ch:String.fromCharCode(l)},i;throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized control character.")}if("u"===f){if(4!==(o=m._matchChars(e,t+2,n,m._hexSymbols,4)).matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Insufficient hexadecimal digits.");return u=parseInt(o.match,16),(i=m._createPatternToken(e,h.escCharUnicode,t,6)).data={n:u,ch:String.fromCharCode(u)},i}switch(i=m._createPatternToken(e,h.escChar,t,2),f){case"a":d=7;break;case"b":d=8;break;case"t":d=9;break;case"r":d=13;break;case"v":d=11;break;case"f":d=12;break;case"n":d=10;break;case"e":d=27;break;default:throw new Bridge.global.System.ArgumentException.$ctor1("Unexpected escaped char: \'"+f+"\'.")}return i.data={n:d,ch:String.fromCharCode(d)},i}if(f>="0"&&f<="7")return m._parseOctalCharToken(e,t,n);if(m._escapedCharClasses.indexOf(f)>=0){if("p"===f||"P"===f){if((g=m._matchUntil(e,t+2,n,"}")).matchLength<2||"{"!==g.match[0]||1!==g.unmatchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Incomplete p{X} character escape.");if(c=g.match.slice(1),m._unicodeCategories.indexOf(c)>=0)return m._createPatternToken(e,h.escCharClassCategory,t,2+g.matchLength+1);if(m._namedCharBlocks.indexOf(c)>=0)return m._createPatternToken(e,h.escCharClassBlock,t,2+g.matchLength+1);throw new Bridge.global.System.ArgumentException.$ctor1("Unknown property \'"+c+"\'.")}return m._createPatternToken(e,h.escCharClass,t,2)}return m._escapedSpecialSymbols.indexOf(f)>=0?((i=m._createPatternToken(e,h.escCharOther,t,2)).data={n:f.charCodeAt(0),ch:f},i):null},_parseCharRangeToken:function(e,t,n){var i,r,s,a,l,o,u,d,g,c=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=c.tokenTypes,h=[],f=!1,p=!1,S=!1,y=e[t];if("["!==y)return null;for(l=-1,(a=t+1)u){l=a;break}s=c._createPatternToken(e,m.literal,a,1),o=1}if(p)throw new Bridge.global.System.ArgumentException.$ctor1("A subtraction must be the last element in a character class.");h.length>1&&null!=(i=c._parseCharIntervalToken(e,h[h.length-2],h[h.length-1],s))&&(h.pop(),h.pop(),s=i),null!=s&&(h.push(s),a+=o)}if(l<0||h.length<1)throw new Bridge.global.System.ArgumentException.$ctor1("Unterminated [] set.");return d=f?c._createPatternToken(e,m.charNegativeGroup,t,1+l-t,h,"[^","]"):c._createPatternToken(e,m.charGroup,t,1+l-t,h,"[","]"),g=c._tidyCharRange(h),d.data={ranges:g},null!=r&&(d.data.substractToken=r),d},_parseCharIntervalToken:function(e,t,n,i){var r,s,a,l,o=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,u=o.tokenTypes;if(n.type!==u.literal||"-"!==n.value||t.type!==u.literal&&t.type!==u.escChar&&t.type!==u.escCharOctal&&t.type!==u.escCharHex&&t.type!==u.escCharCtrl&&t.type!==u.escCharUnicode&&t.type!==u.escCharOther||i.type!==u.literal&&i.type!==u.escChar&&i.type!==u.escCharOctal&&i.type!==u.escCharHex&&i.type!==u.escCharCtrl&&i.type!==u.escCharUnicode&&i.type!==u.escCharOther)return null;if(t.type===u.literal?(r=t.value.charCodeAt(0),s=t.value):(r=t.data.n,s=t.data.ch),i.type===u.literal?(a=i.value.charCodeAt(0),l=i.value):(a=i.data.n,l=i.data.ch),r>a)throw new Bridge.global.System.NotSupportedException.$ctor1("[x-y] range in reverse order.");var d=t.index,g=t.length+n.length+i.length,c=o._createPatternToken(e,u.charInterval,d,g,[t,n,i],"","");return c.data={startN:r,startCh:s,endN:a,endCh:l},c},_tidyCharRange:function(e){for(var t,n,i,r,s,a,l,o,u=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,d=u.tokenTypes,g=[],c=[],m=0;mn);t++);g.splice(t,0,{n:n,m:i})}else g.push({n:n,m:i})}for(m=0;m1+s.m);t++)l++,a.m>s.m&&(s.m=a.m);l>0&&g.splice(m+1,l)}return c.length>0&&(o="["+u._constructPattern(c)+"]",g.charClassToken=u._createPatternToken(o,d.charGroup,0,o.length,e,"[","]")),g},_parseDotToken:function(e,t){var n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes;return"."!==e[t]?null:n._createPatternToken(e,i.escCharClassDot,t,1)},_parseAnchorToken:function(e,t){var n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes,r=e[t];return"^"!==r&&"$"!==r?null:n._createPatternToken(e,i.anchor,t,1)},_updateSettingsFromConstructs:function(e,t){null!=t.isIgnoreWhitespace&&(e.ignoreWhitespace=t.isIgnoreWhitespace),null!=t.isExplicitCapture&&(e.explicitCapture=t.isExplicitCapture)},_parseGroupToken:function(e,t,n,i){var r,s,a,l,o,u,d,g,c=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,m=c.tokenTypes,h={ignoreWhitespace:t.ignoreWhitespace,explicitCapture:t.explicitCapture},f=e[n];if("("!==f)return null;var p=1,S=!1,y=n+1,b=-1,I=!1,T=!1,B=!1,C=!1,x=!1,_=null,w=c._parseGroupConstructToken(e,h,n+1,i);for(null!=w&&(_=this._fillGroupConstructs(w),y+=w.length,w.type===m.commentInline?I=!0:w.type===m.alternationGroupCondition?T=!0:w.type===m.groupConstructImnsx?(this._updateSettingsFromConstructs(h,_),C=!0):w.type===m.groupConstructImnsxMisc&&(this._updateSettingsFromConstructs(t,_),B=!0)),h.explicitCapture&&(null==_||null==_.name1)&&(x=!0),r=y;r1)throw new Bridge.global.System.ArgumentException.$ctor1("Too many | in (?()|).");if(0===u)throw new Bridge.global.System.NotSupportedException.$ctor1("Alternation group without | is not supported.");s=c._createPatternToken(e,m.alternationGroup,n,1+b-n,a,"(",")")}else d=m.group,B?d=m.groupImnsxMisc:C&&(d=m.groupImnsx),(g=c._createPatternToken(e,d,n,1+b-n,a,"(",")")).localSettings=h,s=g}return x&&(s.isNonCapturingExplicit=!0),s},_parseGroupConstructToken:function(e,t,n,i){var r,s,a,l,o,u,d,g=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,c=g.tokenTypes,m=e[n];if("?"!==m||n+1>=i)return null;if(":"===(m=e[n+1])||"="===m||"!"===m||">"===m)return g._createPatternToken(e,c.groupConstruct,n,2);if("#"===m)return g._createPatternToken(e,c.commentInline,n,2);if("("===m)return g._parseAlternationGroupConditionToken(e,t,n,i);if("<"===m&&n+2":m,1!==(a=g._matchUntil(e,n+2,i,s)).unmatchLength||0===a.matchLength)throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized grouping construct.");if(l=a.match.slice(0,1),"`~@#$%^&*()+{}[]|\\\\/|\'\\";:,.?".indexOf(l)>=0)throw new Bridge.global.System.ArgumentException.$ctor1("Invalid group name: Group names must begin with a word character.");return g._createPatternToken(e,c.groupConstructName,n,2+a.matchLength+1)}if((o=g._matchChars(e,n+1,i,"imnsx-")).matchLength>0&&(":"===o.unmatchCh||")"===o.unmatchCh))return u=":"===o.unmatchCh?c.groupConstructImnsx:c.groupConstructImnsxMisc,d=":"===o.unmatchCh?1:0,g._createPatternToken(e,u,n,1+o.matchLength+d);throw new Bridge.global.System.ArgumentException.$ctor1("Unrecognized grouping construct.")},_parseQuantifierToken:function(e,t,n){var i,r,s,a=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,l=a.tokenTypes,o=null,u=e[t];if("*"===u||"+"===u||"?"===u)(o=a._createPatternToken(e,l.quantifier,t,1)).data={val:u};else if("{"===u&&0!==(i=a._matchChars(e,t+1,n,a._decSymbols)).matchLength)if("}"===i.unmatchCh)(o=a._createPatternToken(e,l.quantifierN,t,1+i.matchLength+1)).data={n:parseInt(i.match,10)};else if(","===i.unmatchCh&&"}"===(r=a._matchChars(e,i.unmatchIndex+1,n,a._decSymbols)).unmatchCh&&((o=a._createPatternToken(e,l.quantifierNM,t,1+i.matchLength+1+r.matchLength+1)).data={n:parseInt(i.match,10),m:null},0!==r.matchLength&&(o.data.m=parseInt(r.match,10),o.data.n>o.data.m)))throw new Bridge.global.System.ArgumentException.$ctor1("Illegal {x,y} with x > y.");return null!=o&&(s=t+o.length)=i||"("!==e[n+1]||null==(a=d._parseGroupToken(e,t,n+1,i)))return null;if(a.type===g.commentInline)throw new Bridge.global.System.ArgumentException.$ctor1("Alternation conditions cannot be comments.");if((l=a.children)&&l.length){if((r=l[0]).type===g.groupConstructName)throw new Bridge.global.System.ArgumentException.$ctor1("Alternation conditions do not capture and cannot be named.");if((r.type===g.groupConstruct||r.type===g.groupConstructImnsx)&&null!=(s=d._findFirstGroupWithoutConstructs(l))&&(s.isEmptyCapturing=!0),r.type===g.literal)if((o=a.value.slice(1,a.value.length-1))[0]>="0"&&o[0]<="9"){if(d._matchChars(o,0,o.length,d._decSymbols).matchLength!==o.length)throw new Bridge.global.System.ArgumentException.$ctor1("Malformed Alternation group number: "+o+".");c={number:parseInt(o,10)}}else c={name:o}}return l.length&&(l[0].type===g.groupConstruct||l[0].type===g.groupConstructImnsx)||(r=d._createPatternToken("?:",g.groupConstruct,0,2),l.splice(0,0,r)),u=d._createPatternToken(e,g.alternationGroupCondition,a.index-1,1+a.length,[a],"?",""),null!=c&&(u.data=c),u},_findFirstGroupWithoutConstructs:function(e){for(var t,n=Bridge.global.System.Text.RegularExpressions.RegexEngineParser,i=n.tokenTypes,r=null,s=0;s0&&(l.children=r,l.childrenPrefix=s,l.childrenPostfix=a),l},_modifyPatternToken:function(e,t,n,i,r){null!=n&&(e.type=n),(null!=i||null!=r)&&(null!=i&&(e.index=i),null!=r&&(e.length=r),e.value=t.slice(e.index,e.index+e.length))},_updatePatternToken:function(e,t,n,i,r){e.type=t,e.index=n,e.length=i,e.value=r},_matchChars:function(e,t,n,i,r){var s,a={match:"",matchIndex:-1,matchLength:0,unmatchCh:"",unmatchIndex:-1,unmatchLength:0},l=t;for(null!=r&&r>=0&&(n=t+r);lt&&(a.match=e.slice(t,l),a.matchIndex=t,a.matchLength=l-t),a},_matchUntil:function(e,t,n,i,r){var s,a={match:"",matchIndex:-1,matchLength:0,unmatchCh:"",unmatchIndex:-1,unmatchLength:0},l=t;for(null!=r&&r>=0&&(n=t+r);l=0){a.unmatchCh=s,a.unmatchIndex=l,a.unmatchLength=1;break}l++}return l>t&&(a.match=e.slice(t,l),a.matchIndex=t,a.matchLength=l-t),a}}}),Bridge.define("System.BitConverter",{statics:{fields:{isLittleEndian:!1,arg_ArrayPlusOffTooSmall:null},ctors:{init:function(){this.isLittleEndian=Bridge.global.System.BitConverter.getIsLittleEndian(),this.arg_ArrayPlusOffTooSmall="Destination array is not long enough to copy all the items in the collection. Check array index and length."}},methods:{getBytes:function(e){return e?Bridge.global.System.Array.init([1],Bridge.global.System.Byte):Bridge.global.System.Array.init([0],Bridge.global.System.Byte)},getBytes$1:function(e){return Bridge.global.System.BitConverter.getBytes$3(Bridge.Int.sxs(65535&e))},getBytes$3:function(e){var t=Bridge.global.System.BitConverter.view(2);return t.setInt16(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$4:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setInt32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$5:function(e){var t=Bridge.global.System.BitConverter.getView(e);return Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$7:function(e){var t=Bridge.global.System.BitConverter.view(2);return t.setUint16(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$8:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setUint32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$9:function(e){var t=Bridge.global.System.BitConverter.getView(Bridge.global.System.Int64.clip64(e));return Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$6:function(e){var t=Bridge.global.System.BitConverter.view(4);return t.setFloat32(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},getBytes$2:function(e){if(isNaN(e))return Bridge.global.System.BitConverter.isLittleEndian?Bridge.global.System.Array.init([0,0,0,0,0,0,248,255],Bridge.global.System.Byte):Bridge.global.System.Array.init([255,248,0,0,0,0,0,0],Bridge.global.System.Byte);var t=Bridge.global.System.BitConverter.view(8);return t.setFloat64(0,e),Bridge.global.System.BitConverter.getViewBytes(t)},toChar:function(e,t){return 65535&Bridge.global.System.BitConverter.toInt16(e,t)},toInt16:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,2);var n=Bridge.global.System.BitConverter.view(2);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getInt16(0)},toInt32:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,4);var n=Bridge.global.System.BitConverter.view(4);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getInt32(0)},toInt64:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,8);var n=Bridge.global.System.BitConverter.toInt32(e,t),i=Bridge.global.System.BitConverter.toInt32(e,t+4|0);return Bridge.global.System.BitConverter.isLittleEndian?Bridge.global.System.Int64([n,i]):Bridge.global.System.Int64([i,n])},toUInt16:function(e,t){return 65535&Bridge.global.System.BitConverter.toInt16(e,t)},toUInt32:function(e,t){return Bridge.global.System.BitConverter.toInt32(e,t)>>>0},toUInt64:function(e,t){var n=Bridge.global.System.BitConverter.toInt64(e,t);return Bridge.global.System.UInt64([n.value.low,n.value.high])},toSingle:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,4);var n=Bridge.global.System.BitConverter.view(4);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getFloat32(0)},toDouble:function(e,t){Bridge.global.System.BitConverter.checkArguments(e,t,8);var n=Bridge.global.System.BitConverter.view(8);return Bridge.global.System.BitConverter.setViewBytes(n,e,-1,t),n.getFloat64(0)},toString$2:function(e,t,n){var i;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");if(t<0||t>=e.length&&t>0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("length");if(t>(e.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.BitConverter.arg_ArrayPlusOffTooSmall);if(0===n)return"";if(n>715827882)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("length",Bridge.toString(715827882));var r=Bridge.Int.mul(n,3),s=Bridge.global.System.Array.init(r,0,Bridge.global.System.Char),a=0,l=t;for(a=0;a=0;r=r-1|0)i[Bridge.global.System.Array.index(r,i)]=e.getUint8(Bridge.identity(n,n=n+1|0));else for(s=0;s=0;r=r-1|0)e.setUint8(r,t[Bridge.global.System.Array.index(Bridge.identity(i,i=i+1|0),t)]);else for(s=0;s>>0).gte(Bridge.global.System.Int64(e.length)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("startIndex");if(t>(e.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.BitConverter.arg_ArrayPlusOffTooSmall)}}}}),Bridge.define("System.Collections.BitArray",{inherits:[Bridge.global.System.Collections.ICollection,Bridge.global.System.ICloneable],statics:{fields:{BitsPerInt32:0,BytesPerInt32:0,BitsPerByte:0,_ShrinkThreshold:0},ctors:{init:function(){this.BitsPerInt32=32,this.BytesPerInt32=4,this.BitsPerByte=8,this._ShrinkThreshold=256}},methods:{GetArrayLength:function(e,t){return e>0?1+(0|Bridge.Int.div(e-1|0,t))|0:0}}},fields:{m_array:null,m_length:0,_version:0},props:{Length:{get:function(){return this.m_length},set:function(e){var t,n,i,r;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Non-negative number required.");((t=Bridge.global.System.Collections.BitArray.GetArrayLength(e,Bridge.global.System.Collections.BitArray.BitsPerInt32))>this.m_array.length||(t+Bridge.global.System.Collections.BitArray._ShrinkThreshold|0)this.m_array.length?this.m_array.length:t),this.m_array=n),e>this.m_length&&(i=Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32)-1|0,(r=this.m_length%32)>0&&(this.m_array[Bridge.global.System.Array.index(i,this.m_array)]=this.m_array[Bridge.global.System.Array.index(i,this.m_array)]&((1<268435455)throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.String.format("The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.",[Bridge.box(Bridge.global.System.Collections.BitArray.BitsPerByte,Bridge.global.System.Int32)]),"bytes");for(this.m_array=Bridge.global.System.Array.init(Bridge.global.System.Collections.BitArray.GetArrayLength(e.length,Bridge.global.System.Collections.BitArray.BytesPerInt32),0,Bridge.global.System.Int32),this.m_length=Bridge.Int.mul(e.length,Bridge.global.System.Collections.BitArray.BitsPerByte),t=0,n=0;(e.length-n|0)>=4;)this.m_array[Bridge.global.System.Array.index(Bridge.identity(t,t=t+1|0),this.m_array)]=255&e[Bridge.global.System.Array.index(n,e)]|(255&e[Bridge.global.System.Array.index(n+1|0,e)])<<8|(255&e[Bridge.global.System.Array.index(n+2|0,e)])<<16|(255&e[Bridge.global.System.Array.index(n+3|0,e)])<<24,n=n+4|0;3==(i=e.length-n|0)&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=(255&e[Bridge.global.System.Array.index(n+2|0,e)])<<16,i=2),2===i&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=this.m_array[Bridge.global.System.Array.index(t,this.m_array)]|(255&e[Bridge.global.System.Array.index(n+1|0,e)])<<8,i=1),1===i&&(this.m_array[Bridge.global.System.Array.index(t,this.m_array)]=this.m_array[Bridge.global.System.Array.index(t,this.m_array)]|255&e[Bridge.global.System.Array.index(n,e)]),this._version=0},ctor:function(e){var t,n;if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("values");for(this.m_array=Bridge.global.System.Array.init(Bridge.global.System.Collections.BitArray.GetArrayLength(e.length,Bridge.global.System.Collections.BitArray.BitsPerInt32),0,Bridge.global.System.Int32),this.m_length=e.length,n=0;n67108863)throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.String.format("The input array length must not exceed Int32.MaxValue / {0}. Otherwise BitArray.Length would exceed Int32.MaxValue.",[Bridge.box(Bridge.global.System.Collections.BitArray.BitsPerInt32,Bridge.global.System.Int32)]),"values");this.m_array=Bridge.global.System.Array.init(e.length,0,Bridge.global.System.Int32),this.m_length=Bridge.Int.mul(e.length,Bridge.global.System.Collections.BitArray.BitsPerInt32),Bridge.global.System.Array.copy(e,0,this.m_array,0,e.length),this._version=0},$ctor2:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("bits");var t=Bridge.global.System.Collections.BitArray.GetArrayLength(e.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32);this.m_array=Bridge.global.System.Array.init(t,0,Bridge.global.System.Int32),this.m_length=e.m_length,Bridge.global.System.Array.copy(e.m_array,0,this.m_array,0,t),this._version=e._version}},methods:{getItem:function(e){return this.Get(e)},setItem:function(e,t){this.Set(e,t)},copyTo:function(e,t){var n,i,r,s,a;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(1!==Bridge.global.System.Array.getRank(e))throw new Bridge.global.System.ArgumentException.$ctor1("Only single dimensional arrays are supported for the requested action.");if(Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Int32)))Bridge.global.System.Array.copy(this.m_array,0,e,t,Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerInt32));else if(Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Byte))){if(n=Bridge.global.System.Collections.BitArray.GetArrayLength(this.m_length,Bridge.global.System.Collections.BitArray.BitsPerByte),(e.length-t|0)>Bridge.Int.mul(r%4,8)&255}else{if(!Bridge.is(e,Bridge.global.System.Array.type(Bridge.global.System.Boolean)))throw new Bridge.global.System.ArgumentException.$ctor1("Only supported array types for CopyTo on BitArrays are Boolean[], Int32[] and Byte[].");if((e.length-t|0)>a%32&1)}},Get:function(e){if(e<0||e>=this.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","Index was out of range. Must be non-negative and less than the size of the collection.");return 0!=(this.m_array[Bridge.global.System.Array.index(0|Bridge.Int.div(e,32),this.m_array)]&1<=this.Length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","Index was out of range. Must be non-negative and less than the size of the collection.");t?this.m_array[Bridge.global.System.Array.index(n=0|Bridge.Int.div(e,32),this.m_array)]=this.m_array[Bridge.global.System.Array.index(n,this.m_array)]|1<=this.bitarray.Count)throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration already finished.");return Bridge.box(this.currentElement,Bridge.global.System.Boolean,Bridge.global.System.Boolean.toString)}}},alias:["moveNext","System$Collections$IEnumerator$moveNext","Current","System$Collections$IEnumerator$Current","reset","System$Collections$IEnumerator$reset"],ctors:{ctor:function(e){this.$initialize(),this.bitarray=e,this.index=-1,this.version=e._version}},methods:{moveNext:function(){if(this.version!==this.bitarray._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");return this.index<(this.bitarray.Count-1|0)?(this.index=this.index+1|0,this.currentElement=this.bitarray.Get(this.index),!0):(this.index=this.bitarray.Count,!1)},reset:function(){if(this.version!==this.bitarray._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this.index=-1}}}),Bridge.define("System.Collections.Generic.BitHelper",{statics:{fields:{MarkedBitFlag:0,IntSize:0},ctors:{init:function(){this.MarkedBitFlag=1,this.IntSize=32}},methods:{ToIntArrayLength:function(e){return e>0?1+(0|Bridge.Int.div(e-1|0,Bridge.global.System.Collections.Generic.BitHelper.IntSize))|0:0}}},fields:{_length:0,_array:null},ctors:{ctor:function(e,t){this.$initialize(),this._array=e,this._length=t}},methods:{MarkBit:function(e){var t,n=0|Bridge.Int.div(e,Bridge.global.System.Collections.Generic.BitHelper.IntSize);n=0&&(t=Bridge.global.System.Collections.Generic.BitHelper.MarkedBitFlag<=0&&(t=Bridge.global.System.Collections.Generic.BitHelper.MarkedBitFlag<>>0>(a=2146435071)&&(l=a<=s?s+1|0:a),Bridge.global.System.Array.resize(r,l,Bridge.getDefaultValue(e))),r.v[Bridge.global.System.Array.index(Bridge.identity(s,s=s+1|0),r.v)]=o[Bridge.geti(o,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")];return n.v=s,r.v}}finally{Bridge.hasValue(o)&&o.System$IDisposable$Dispose()}return n.v=0,Bridge.global.System.Array.init(0,function(){return Bridge.getDefaultValue(e)},e)}}}}),Bridge.define("System.Collections.Generic.HashSet$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.ICollection$1(e),Bridge.global.System.Collections.Generic.ISet$1(e),Bridge.global.System.Collections.Generic.IReadOnlyCollection$1(e)],statics:{fields:{Lower31BitMask:0,ShrinkThreshold:0},ctors:{init:function(){this.Lower31BitMask=2147483647,this.ShrinkThreshold=3}},methods:{HashSetEquals:function(t,n,i){var r,s,a,l,o,u,d;if(null==t)return null==n;if(null==n)return!1;if(Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(t,n)){if(t.Count!==n.Count)return!1;r=Bridge.getEnumerator(n);try{for(;r.moveNext();)if(l=r.Current,!t.contains(l))return!1}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return!0}s=Bridge.getEnumerator(n);try{for(;s.moveNext();){o=s.Current,u=!1,a=Bridge.getEnumerator(t);try{for(;a.moveNext();)if(d=a.Current,i[Bridge.geti(i,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](o,d)){u=!0;break}}finally{Bridge.is(a,Bridge.global.System.IDisposable)&&a.System$IDisposable$Dispose()}if(!u)return!1}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}return!0},AreEqualityComparersEqual:function(e,t){return Bridge.equals(e.Comparer,t.Comparer)}}},fields:{_buckets:null,_slots:null,_count:0,_lastIndex:0,_freeList:0,_comparer:null,_version:0},props:{Count:{get:function(){return this._count}},IsReadOnly:{get:function(){return!1}},Comparer:{get:function(){return this._comparer}}},alias:["System$Collections$Generic$ICollection$1$add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","add","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$add","unionWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$unionWith","intersectWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$intersectWith","exceptWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$exceptWith","symmetricExceptWith","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$symmetricExceptWith","isSubsetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isSubsetOf","isProperSubsetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isProperSubsetOf","isSupersetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isSupersetOf","isProperSupersetOf","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$isProperSupersetOf","overlaps","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$overlaps","setEquals","System$Collections$Generic$ISet$1$"+Bridge.getTypeAlias(e)+"$setEquals"],ctors:{ctor:function(){Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor3.call(this,Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def)},$ctor3:function(t){this.$initialize(),null==t&&(t=Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def),this._comparer=t,this._lastIndex=0,this._count=0,this._freeList=-1,this._version=0},$ctor1:function(t){Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor2.call(this,t,Bridge.global.System.Collections.Generic.EqualityComparer$1(e).def)},$ctor2:function(t,n){if(Bridge.global.System.Collections.Generic.HashSet$1(e).$ctor3.call(this,n),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");var i=0,r=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e));null!=r&&(i=Bridge.global.System.Array.getCount(r,e)),this.Initialize(i),this.unionWith(t),(0===this._count&&this._slots.length>Bridge.global.System.Collections.HashHelpers.GetMinPrime()||this._count>0&&(0|Bridge.Int.div(this._slots.length,this._count))>Bridge.global.System.Collections.Generic.HashSet$1(e).ShrinkThreshold)&&this.TrimExcess()}},methods:{System$Collections$Generic$ICollection$1$add:function(e){this.AddIfNotPresent(e)},add:function(e){return this.AddIfNotPresent(e)},clear:function(){var t,n;if(this._lastIndex>0){for(t=0;t=0;i=this._slots[Bridge.global.System.Array.index(i,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(i,this._slots)].value,t))return!0;return!1},copyTo:function(e,t){this.CopyTo$1(e,t,this._count)},CopyTo:function(e){this.CopyTo$1(e,0,this._count)},CopyTo$1:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("arrayIndex");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if(t>e.length||n>(e.length-t|0))throw new Bridge.global.System.ArgumentException.$ctor1("Destination array is not long enough to copy all the items in the collection. Check array index and length.");for(i=0,r=0;r=0&&(e[Bridge.global.System.Array.index(t+i|0,e)]=this._slots[Bridge.global.System.Array.index(r,this._slots)].value,i=i+1|0)},remove:function(t){var n;if(null!=this._buckets){var i=this.InternalGetHashCode(t),r=i%this._buckets.length,s=-1;for(n=this._buckets[Bridge.global.System.Array.index(r,this._buckets)]-1|0;n>=0;s=n,n=this._slots[Bridge.global.System.Array.index(n,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(n,this._slots)].hashCode===i&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(n,this._slots)].value,t))return s<0?this._buckets[Bridge.global.System.Array.index(r,this._buckets)]=this._slots[Bridge.global.System.Array.index(n,this._slots)].next+1|0:this._slots[Bridge.global.System.Array.index(s,this._slots)].next=this._slots[Bridge.global.System.Array.index(n,this._slots)].next,this._slots[Bridge.global.System.Array.index(n,this._slots)].hashCode=-1,this._slots[Bridge.global.System.Array.index(n,this._slots)].value=Bridge.getDefaultValue(e),this._slots[Bridge.global.System.Array.index(n,this._slots)].next=this._freeList,this._count=this._count-1|0,this._version=this._version+1|0,0===this._count?(this._lastIndex=0,this._freeList=-1):this._freeList=n,!0}return!1},GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this)},System$Collections$Generic$IEnumerable$1$GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this).$clone()},System$Collections$IEnumerable$GetEnumerator:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e).$ctor1)(this).$clone()},unionWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)i=n.Current,this.AddIfNotPresent(i)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}},intersectWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count){if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return void this.clear();if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return void this.IntersectWithHashSetWithSameEC(i)}this.IntersectWithEnumerable(t)}},exceptWith:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count){if(Bridge.referenceEquals(t,this))return void this.clear();n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)i=n.Current,this.remove(i)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}},symmetricExceptWith:function(t){if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0!==this._count)if(Bridge.referenceEquals(t,this))this.clear();else{var n=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e));null!=n&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,n)?this.SymmetricExceptWithUniqueHashSet(n):this.SymmetricExceptWithEnumerable(t)}else this.unionWith(t)},isSubsetOf:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");return 0===this._count||(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,n)?!(this._count>n.Count)&&this.IsSubsetOfHashSetWithSameEC(n):(i=this.CheckUniqueAndUnfoundElements(t,!1)).uniqueCount===this._count&&i.unfoundCount>=0)},isProperSubsetOf:function(t){var n,i,r;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===this._count)return Bridge.global.System.Array.getCount(n,e)>0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return!(this._count>=i.Count)&&this.IsSubsetOfHashSetWithSameEC(i)}return(r=this.CheckUniqueAndUnfoundElements(t,!1)).uniqueCount===this._count&&r.unfoundCount>0},isSupersetOf:function(t){var n,i;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return!0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i)&&i.Count>this._count)return!1}return this.ContainsAllElements(t)},isProperSupersetOf:function(t){var n,i,r;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("other");if(0===this._count)return!1;if(null!=(n=Bridge.as(t,Bridge.global.System.Collections.Generic.ICollection$1(e)))){if(0===Bridge.global.System.Array.getCount(n,e))return!0;if(null!=(i=Bridge.as(t,Bridge.global.System.Collections.Generic.HashSet$1(e)))&&Bridge.global.System.Collections.Generic.HashSet$1(e).AreEqualityComparersEqual(this,i))return!(i.Count>=this._count)&&this.ContainsAllElements(i)}return(r=this.CheckUniqueAndUnfoundElements(t,!0)).uniqueCount0)&&(r=this.CheckUniqueAndUnfoundElements(t,!0)).uniqueCount===this._count&&0===r.unfoundCount},RemoveWhere:function(e){var t,n,i;if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("match");for(t=0,n=0;n=0&&e(i=this._slots[Bridge.global.System.Array.index(n,this._slots)].value)&&this.remove(i)&&(t=t+1|0);return t},TrimExcess:function(){var t,n;if(0===this._count)this._buckets=null,this._slots=null,this._version=this._version+1|0;else{var i=Bridge.global.System.Collections.HashHelpers.GetPrime(this._count),r=Bridge.global.System.Array.init(i,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e)),s=Bridge.global.System.Array.init(i,0,Bridge.global.System.Int32),a=0;for(t=0;t=0&&(r[Bridge.global.System.Array.index(a,r)]=this._slots[Bridge.global.System.Array.index(t,this._slots)].$clone(),n=r[Bridge.global.System.Array.index(a,r)].hashCode%i,r[Bridge.global.System.Array.index(a,r)].next=s[Bridge.global.System.Array.index(n,s)]-1|0,s[Bridge.global.System.Array.index(n,s)]=a+1|0,a=a+1|0);this._lastIndex=a,this._slots=r,this._buckets=s,this._freeList=-1}},Initialize:function(t){var n=Bridge.global.System.Collections.HashHelpers.GetPrime(t);this._buckets=Bridge.global.System.Array.init(n,0,Bridge.global.System.Int32),this._slots=Bridge.global.System.Array.init(n,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},IncreaseCapacity:function(){var e=Bridge.global.System.Collections.HashHelpers.ExpandPrime(this._count);if(e<=this._count)throw new Bridge.global.System.ArgumentException.$ctor1("HashSet capacity is too big.");this.SetCapacity(e,!1)},SetCapacity:function(t,n){var i,r,s,a,l,o=Bridge.global.System.Array.init(t,function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))},Bridge.global.System.Collections.Generic.HashSet$1.Slot(e));if(null!=this._slots)for(i=0;i=0;r=this._slots[Bridge.global.System.Array.index(r,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(r,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(r,this._slots)].value,t))return!1;return this._freeList>=0?(s=this._freeList,this._freeList=this._slots[Bridge.global.System.Array.index(s,this._slots)].next):(this._lastIndex===this._slots.length&&(this.IncreaseCapacity(),i=n%this._buckets.length),s=this._lastIndex,this._lastIndex=this._lastIndex+1|0),this._slots[Bridge.global.System.Array.index(s,this._slots)].hashCode=n,this._slots[Bridge.global.System.Array.index(s,this._slots)].value=t,this._slots[Bridge.global.System.Array.index(s,this._slots)].next=this._buckets[Bridge.global.System.Array.index(i,this._buckets)]-1|0,this._buckets[Bridge.global.System.Array.index(i,this._buckets)]=s+1|0,this._count=this._count+1|0,this._version=this._version+1|0,!0},ContainsAllElements:function(t){var n,i;n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)if(i=n.Current,!this.contains(i))return!1}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}return!0},IsSubsetOfHashSetWithSameEC:function(e){var t,n;t=Bridge.getEnumerator(this);try{for(;t.moveNext();)if(n=t.Current,!e.contains(n))return!1}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return!0},IntersectWithHashSetWithSameEC:function(e){for(var t,n=0;n=0&&(t=this._slots[Bridge.global.System.Array.index(n,this._slots)].value,e.contains(t)||this.remove(t))},IntersectWithEnumerable:function(t){var n,i,r,s,a,l=this._lastIndex,o=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(l),u=Bridge.global.System.Array.init(o,0,Bridge.global.System.Int32);i=new Bridge.global.System.Collections.Generic.BitHelper(u,o),n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();)r=n.Current,(s=this.InternalIndexOf(r))>=0&&i.MarkBit(s)}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}for(a=0;a=0&&!i.IsMarked(a)&&this.remove(this._slots[Bridge.global.System.Array.index(a,this._slots)].value)},InternalIndexOf:function(t){for(var n=this.InternalGetHashCode(t),i=this._buckets[Bridge.global.System.Array.index(n%this._buckets.length,this._buckets)]-1|0;i>=0;i=this._slots[Bridge.global.System.Array.index(i,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode===n&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(i,this._slots)].value,t))return i;return-1},SymmetricExceptWithUniqueHashSet:function(e){var t,n;t=Bridge.getEnumerator(e);try{for(;t.moveNext();)n=t.Current,this.remove(n)||this.AddIfNotPresent(n)}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}},SymmetricExceptWithEnumerable:function(t){var n,i,r,s,a,l=this._lastIndex,o=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(l),u=Bridge.global.System.Array.init(o,0,Bridge.global.System.Int32);i=new Bridge.global.System.Collections.Generic.BitHelper(u,o),s=Bridge.global.System.Array.init(o,0,Bridge.global.System.Int32),r=new Bridge.global.System.Collections.Generic.BitHelper(s,o),n=Bridge.getEnumerator(t,e);try{for(;n.moveNext();){var d=n.Current,g={v:0};this.AddOrGetLocation(d,g)?r.MarkBit(g.v):g.v=0;a=this._slots[Bridge.global.System.Array.index(a,this._slots)].next)if(this._slots[Bridge.global.System.Array.index(a,this._slots)].hashCode===r&&this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$equals2","System$Collections$Generic$IEqualityComparer$1$equals2")](this._slots[Bridge.global.System.Array.index(a,this._slots)].value,t))return n.v=a,!1;return this._freeList>=0?(i=this._freeList,this._freeList=this._slots[Bridge.global.System.Array.index(i,this._slots)].next):(this._lastIndex===this._slots.length&&(this.IncreaseCapacity(),s=r%this._buckets.length),i=this._lastIndex,this._lastIndex=this._lastIndex+1|0),this._slots[Bridge.global.System.Array.index(i,this._slots)].hashCode=r,this._slots[Bridge.global.System.Array.index(i,this._slots)].value=t,this._slots[Bridge.global.System.Array.index(i,this._slots)].next=this._buckets[Bridge.global.System.Array.index(s,this._buckets)]-1|0,this._buckets[Bridge.global.System.Array.index(s,this._buckets)]=i+1|0,this._count=this._count+1|0,this._version=this._version+1|0,n.v=i,!0},CheckUniqueAndUnfoundElements:function(t,n){var i,r,s,a,l,o,u,d=new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e));if(0===this._count){s=0,i=Bridge.getEnumerator(t,e);try{for(;i.moveNext();){i.Current,s=s+1|0;break}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return d.uniqueCount=0,d.unfoundCount=s,d.$clone()}var g,c=this._lastIndex,m=Bridge.global.System.Collections.Generic.BitHelper.ToIntArrayLength(c),h=Bridge.global.System.Array.init(m,0,Bridge.global.System.Int32);g=new Bridge.global.System.Collections.Generic.BitHelper(h,m),a=0,l=0,r=Bridge.getEnumerator(t,e);try{for(;r.moveNext();)if(o=r.Current,(u=this.InternalIndexOf(o))>=0)g.IsMarked(u)||(g.MarkBit(u),l=l+1|0);else if(a=a+1|0,n)break}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return d.uniqueCount=l,d.unfoundCount=a,d.$clone()},ToArray:function(){var t=Bridge.global.System.Array.init(this.Count,function(){return Bridge.getDefaultValue(e)},e);return this.CopyTo(t),t},InternalGetHashCode:function(t){return null==t?0:this._comparer[Bridge.geti(this._comparer,"System$Collections$Generic$IEqualityComparer$1$"+Bridge.getTypeAlias(e)+"$getHashCode2","System$Collections$Generic$IEqualityComparer$1$getHashCode2")](t)&Bridge.global.System.Collections.Generic.HashSet$1(e).Lower31BitMask}}}}),Bridge.define("System.Collections.Generic.HashSet$1.ElementCount",function(e){return{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e))}}},fields:{uniqueCount:0,unfoundCount:0},ctors:{ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([4920463385,this.uniqueCount,this.unfoundCount])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e))&&Bridge.equals(this.uniqueCount,t.uniqueCount)&&Bridge.equals(this.unfoundCount,t.unfoundCount)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.ElementCount(e));return n.uniqueCount=this.uniqueCount,n.unfoundCount=this.unfoundCount,n}}}}),Bridge.define("System.Collections.Generic.HashSet$1.Enumerator",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e)],$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e))}}},fields:{_set:null,_index:0,_version:0,_current:Bridge.getDefaultValue(e)},props:{Current:{get:function(){return this._current}},System$Collections$IEnumerator$Current:{get:function(){if(0===this._index||this._index===(this._set._lastIndex+1|0))throw new Bridge.global.System.InvalidOperationException.$ctor1("Enumeration has either not started or has already finished.");return this.Current}}},alias:["Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"]],ctors:{$ctor1:function(t){this.$initialize(),this._set=t,this._index=0,this._version=t._version,this._current=Bridge.getDefaultValue(e)},ctor:function(){this.$initialize()}},methods:{Dispose:function(){},moveNext:function(){var t,n;if(this._version!==this._set._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");for(;this._index=0)return this._current=(n=this._set._slots)[Bridge.global.System.Array.index(this._index,n)].value,this._index=this._index+1|0,!0;this._index=this._index+1|0}return this._index=this._set._lastIndex+1|0,this._current=Bridge.getDefaultValue(e),!1},System$Collections$IEnumerator$reset:function(){if(this._version!==this._set._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this._index=0,this._current=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this._set,this._index,this._version,this._current])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e))&&Bridge.equals(this._set,t._set)&&Bridge.equals(this._index,t._index)&&Bridge.equals(this._version,t._version)&&Bridge.equals(this._current,t._current)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.Enumerator(e));return n._set=this._set,n._index=this._index,n._version=this._version,n._current=this._current,n}}}}),Bridge.define("System.Collections.Generic.HashSet$1.Slot",function(e){return{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))}}},fields:{hashCode:0,value:Bridge.getDefaultValue(e),next:0},ctors:{ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return Bridge.addHash([1953459283,this.hashCode,this.value,this.next])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.HashSet$1.Slot(e))&&Bridge.equals(this.hashCode,t.hashCode)&&Bridge.equals(this.value,t.value)&&Bridge.equals(this.next,t.next)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.HashSet$1.Slot(e));return n.hashCode=this.hashCode,n.value=this.value,n.next=this.next,n}}}}),Bridge.define("System.Collections.Generic.List$1.Enumerator",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerator$1(e),Bridge.global.System.Collections.IEnumerator],$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new(Bridge.global.System.Collections.Generic.List$1.Enumerator(e))}}},fields:{list:null,index:0,version:0,current:Bridge.getDefaultValue(e)},props:{Current:{get:function(){return this.current}},System$Collections$IEnumerator$Current:{get:function(){if(0===this.index||this.index===(this.list._size+1|0))throw new Bridge.global.System.InvalidOperationException.ctor;return this.Current}}},alias:["Dispose","System$IDisposable$Dispose","moveNext","System$Collections$IEnumerator$moveNext","Current",["System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1"]],ctors:{$ctor1:function(t){this.$initialize(),this.list=t,this.index=0,this.version=t._version,this.current=Bridge.getDefaultValue(e)},ctor:function(){this.$initialize()}},methods:{Dispose:function(){},moveNext:function(){var e=this.list;return this.version===e._version&&this.index>>>0>>0?(this.current=e._items[Bridge.global.System.Array.index(this.index,e._items)],this.index=this.index+1|0,!0):this.MoveNextRare()},MoveNextRare:function(){if(this.version!==this.list._version)throw new Bridge.global.System.InvalidOperationException.ctor;return this.index=this.list._size+1|0,this.current=Bridge.getDefaultValue(e),!1},System$Collections$IEnumerator$reset:function(){if(this.version!==this.list._version)throw new Bridge.global.System.InvalidOperationException.ctor;this.index=0,this.current=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this.list,this.index,this.version,this.current])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.List$1.Enumerator(e))&&Bridge.equals(this.list,t.list)&&Bridge.equals(this.index,t.index)&&Bridge.equals(this.version,t.version)&&Bridge.equals(this.current,t.current)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.List$1.Enumerator(e));return n.list=this.list,n.index=this.index,n.version=this.version,n.current=this.current,n}}}}),Bridge.define("System.Collections.Generic.Queue$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IEnumerable$1(e),Bridge.global.System.Collections.ICollection,Bridge.global.System.Collections.Generic.IReadOnlyCollection$1(e)],statics:{fields:{MinimumGrow:0,GrowFactor:0,DefaultCapacity:0},ctors:{init:function(){this.MinimumGrow=4,this.GrowFactor=200,this.DefaultCapacity=4}}},fields:{_array:null,_head:0,_tail:0,_size:0,_version:0},props:{Count:{get:function(){return this._size}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}},IsReadOnly:{get:function(){return!1}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","copyTo","System$Collections$ICollection$copyTo","System$Collections$Generic$IEnumerable$1$GetEnumerator","System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator"],ctors:{ctor:function(){this.$initialize(),this._array=Bridge.global.System.Array.init(0,function(){return Bridge.getDefaultValue(e)},e)},$ctor2:function(t){if(this.$initialize(),t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("capacity","Non-negative number required.");this._array=Bridge.global.System.Array.init(t,function(){return Bridge.getDefaultValue(e)},e)},$ctor1:function(t){if(this.$initialize(),null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("collection");this._array=Bridge.global.System.Array.init(Bridge.global.System.Collections.Generic.Queue$1(e).DefaultCapacity,function(){return Bridge.getDefaultValue(e)},e);var n=Bridge.getEnumerator(t,e);try{for(;n.System$Collections$IEnumerator$moveNext();)this.Enqueue(n[Bridge.geti(n,"System$Collections$Generic$IEnumerator$1$"+Bridge.getTypeAlias(e)+"$Current$1","System$Collections$Generic$IEnumerator$1$Current$1")])}finally{Bridge.hasValue(n)&&n.System$IDisposable$Dispose()}}},methods:{copyTo:function(e,t){var n,i;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(1!==Bridge.global.System.Array.getRank(e))throw new Bridge.global.System.ArgumentException.$ctor1("Only single dimensional arrays are supported for the requested action.");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if((e.length-t|0)0&&Bridge.global.System.Array.copy(this._array,0,e,(t+this._array.length|0)-this._head|0,n))},CopyTo:function(e,t){var n,i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0||t>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Index was out of range. Must be non-negative and less than the size of the collection.");if(((n=e.length)-t|0)0&&Bridge.global.System.Array.copy(this._array,0,e,(t+this._array.length|0)-this._head|0,i))},Clear:function(){this._head0;){if(null==t){if(null==this._array[Bridge.global.System.Array.index(n,this._array)])return!0}else if(null!=this._array[Bridge.global.System.Array.index(n,this._array)]&&r.equals2(this._array[Bridge.global.System.Array.index(n,this._array)],t))return!0;n=this.MoveNext(n)}return!1},GetElement:function(e){return this._array[Bridge.global.System.Array.index((this._head+e|0)%this._array.length,this._array)]},ToArray:function(){var t=Bridge.global.System.Array.init(this._size,function(){return Bridge.getDefaultValue(e)},e);return 0===this._size?t:(this._head0&&(this._head0;)if(null==t){if(null==this._array[Bridge.global.System.Array.index(n,this._array)])return!0}else if(null!=this._array[Bridge.global.System.Array.index(n,this._array)]&&i.equals2(this._array[Bridge.global.System.Array.index(n,this._array)],t))return!0;return!1},CopyTo:function(e,t){var n,i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0||t>e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Non-negative number required.");if((e.length-t|0)e.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("arrayIndex","Non-negative number required.");if((e.length-t|0)=0)&&(this._currentElement=(t=this._stack._array)[Bridge.global.System.Array.index(this._index,t)]),i):-1!==this._index&&(i=(this._index=this._index-1|0)>=0,this._currentElement=i?(n=this._stack._array)[Bridge.global.System.Array.index(this._index,n)]:Bridge.getDefaultValue(e),i)},System$Collections$IEnumerator$reset:function(){if(this._version!==this._stack._version)throw new Bridge.global.System.InvalidOperationException.$ctor1("Collection was modified; enumeration operation may not execute.");this._index=-2,this._currentElement=Bridge.getDefaultValue(e)},getHashCode:function(){return Bridge.addHash([3788985113,this._stack,this._index,this._version,this._currentElement])},equals:function(t){return!!Bridge.is(t,Bridge.global.System.Collections.Generic.Stack$1.Enumerator(e))&&Bridge.equals(this._stack,t._stack)&&Bridge.equals(this._index,t._index)&&Bridge.equals(this._version,t._version)&&Bridge.equals(this._currentElement,t._currentElement)},$clone:function(t){var n=t||new(Bridge.global.System.Collections.Generic.Stack$1.Enumerator(e));return n._stack=this._stack,n._index=this._index,n._version=this._version,n._currentElement=this._currentElement,n}}}}),Bridge.define("System.Collections.HashHelpers",{statics:{fields:{HashPrime:0,primes:null,MaxPrimeArrayLength:0},ctors:{init:function(){this.HashPrime=101,this.primes=Bridge.global.System.Array.init([3,7,11,17,23,29,37,47,59,71,89,107,131,163,197,239,293,353,431,521,631,761,919,1103,1327,1597,1931,2333,2801,3371,4049,4861,5839,7013,8419,10103,12143,14591,17519,21023,25229,30293,36353,43627,52361,62851,75431,90523,108631,130363,156437,187751,225307,270371,324449,389357,467237,560689,672827,807403,968897,1162687,1395263,1674319,2009191,2411033,2893249,3471899,4166287,4999559,5999471,7199369],Bridge.global.System.Int32),this.MaxPrimeArrayLength=2146435069}},methods:{IsPrime:function(e){var t,n;if(0!=(1&e)){for(t=Bridge.Int.clip32(Math.sqrt(e)),n=3;n<=t;n=n+2|0)if(e%n==0)return!1;return!0}return 2===e},GetPrime:function(e){var t,n,i;if(e<0)throw new Bridge.global.System.ArgumentException.$ctor1("Hashtable\'s capacity overflowed and went negative. Check load factor, capacity and the current size of the table.");for(t=0;t=e)return n;for(i=1|e;i<2147483647;i=i+2|0)if(Bridge.global.System.Collections.HashHelpers.IsPrime(i)&&(i-1|0)%Bridge.global.System.Collections.HashHelpers.HashPrime!=0)return i;return e},GetMinPrime:function(){return Bridge.global.System.Collections.HashHelpers.primes[Bridge.global.System.Array.index(0,Bridge.global.System.Collections.HashHelpers.primes)]},ExpandPrime:function(e){var t=Bridge.Int.mul(2,e);return t>>>0>Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength&&Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength>e?Bridge.global.System.Collections.HashHelpers.MaxPrimeArrayLength:Bridge.global.System.Collections.HashHelpers.GetPrime(t)}}}}),Bridge.define("System.Collections.ObjectModel.Collection$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IList$1(e),Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IReadOnlyList$1(e)],statics:{methods:{IsCompatibleObject:function(t){return Bridge.is(t,e)||null==t&&null==Bridge.getDefaultValue(e)}}},fields:{items:null,_syncRoot:null},props:{Count:{get:function(){return Bridge.global.System.Array.getCount(this.items,e)}},Items:{get:function(){return this.items}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return Bridge.global.System.Array.getIsReadOnly(this.items,e)}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){if(null==this._syncRoot){var e=Bridge.as(this.items,Bridge.global.System.Collections.ICollection);if(null==e)throw Bridge.global.System.NotImplemented.ByDesign;this._syncRoot=e.System$Collections$ICollection$SyncRoot}return this._syncRoot}},System$Collections$IList$IsReadOnly:{get:function(){return Bridge.global.System.Array.getIsReadOnly(this.items,e)}},System$Collections$IList$IsFixedSize:{get:function(){var t=Bridge.as(this.items,Bridge.global.System.Collections.IList);return null!=t?Bridge.global.System.Array.isFixedSize(t):Bridge.global.System.Array.getIsReadOnly(this.items,e)}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"setItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$IReadOnlyList$1$setItem"],"getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","clear","System$Collections$IList$clear","clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"],"indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","removeAt","System$Collections$IList$removeAt","removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly"],ctors:{ctor:function(){this.$initialize(),this.items=new(Bridge.global.System.Collections.Generic.List$1(e).ctor)},$ctor1:function(e){this.$initialize(),null==e&&Bridge.global.System.ThrowHelper.ThrowArgumentNullException(Bridge.global.System.ExceptionArgument.list),this.items=e}},methods:{getItem:function(t){return Bridge.global.System.Array.getItem(this.items,t,e)},setItem:function(t,n){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),(t<0||t>=Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRange_IndexException(),this.SetItem(t,n)},System$Collections$IList$getItem:function(t){return Bridge.global.System.Array.getItem(this.items,t,e)},System$Collections$IList$setItem:function(t,n){Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,n,Bridge.global.System.ExceptionArgument.value);try{this.setItem(t,Bridge.cast(Bridge.unbox(n),e))}catch(t){if(t=Bridge.global.System.Exception.create(t),!Bridge.is(t,Bridge.global.System.InvalidCastException))throw t;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,n,e)}},add:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection);var n=Bridge.global.System.Array.getCount(this.items,e);this.InsertItem(n,t)},System$Collections$IList$add:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,t,Bridge.global.System.ExceptionArgument.value);try{this.add(Bridge.cast(Bridge.unbox(t),e))}catch(n){if(n=Bridge.global.System.Exception.create(n),!Bridge.is(n,Bridge.global.System.InvalidCastException))throw n;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,t,e)}return this.Count-1|0},clear:function(){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),this.ClearItems()},copyTo:function(t,n){Bridge.global.System.Array.copyTo(this.items,t,n,e)},System$Collections$ICollection$copyTo:function(t,n){var i,r,s,a,l,o;if(null==t&&Bridge.global.System.ThrowHelper.ThrowArgumentNullException(Bridge.global.System.ExceptionArgument.array),1!==Bridge.global.System.Array.getRank(t)&&Bridge.global.System.ThrowHelper.ThrowArgumentException(Bridge.global.System.ExceptionResource.Arg_RankMultiDimNotSupported),0!==Bridge.global.System.Array.getLower(t,0)&&Bridge.global.System.ThrowHelper.ThrowArgumentException(Bridge.global.System.ExceptionResource.Arg_NonZeroLowerBound),n<0&&Bridge.global.System.ThrowHelper.ThrowIndexArgumentOutOfRange_NeedNonNegNumException(),(t.length-n|0)Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRangeException$2(Bridge.global.System.ExceptionArgument.index,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_ListInsert),this.InsertItem(t,n)},System$Collections$IList$insert:function(t,n){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.ThrowHelper.IfNullAndNullsAreIllegalThenThrow(e,n,Bridge.global.System.ExceptionArgument.value);try{this.insert(t,Bridge.cast(Bridge.unbox(n),e))}catch(t){if(t=Bridge.global.System.Exception.create(t),!Bridge.is(t,Bridge.global.System.InvalidCastException))throw t;Bridge.global.System.ThrowHelper.ThrowWrongValueTypeArgumentException(Bridge.global.System.Object,n,e)}},remove:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection);var n=Bridge.global.System.Array.indexOf(this.items,t,0,null,e);return!(n<0||(this.RemoveItem(n),0))},System$Collections$IList$remove:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),Bridge.global.System.Collections.ObjectModel.Collection$1(e).IsCompatibleObject(t)&&this.remove(Bridge.cast(Bridge.unbox(t),e))},removeAt:function(t){Bridge.global.System.Array.getIsReadOnly(this.items,e)&&Bridge.global.System.ThrowHelper.ThrowNotSupportedException$1(Bridge.global.System.ExceptionResource.NotSupported_ReadOnlyCollection),(t<0||t>=Bridge.global.System.Array.getCount(this.items,e))&&Bridge.global.System.ThrowHelper.ThrowArgumentOutOfRange_IndexException(),this.RemoveItem(t)},ClearItems:function(){Bridge.global.System.Array.clear(this.items,e)},InsertItem:function(t,n){Bridge.global.System.Array.insert(this.items,t,n,e)},RemoveItem:function(t){Bridge.global.System.Array.removeAt(this.items,t,e)},SetItem:function(t,n){Bridge.global.System.Array.setItem(this.items,t,n,e)}}}}),Bridge.define("System.Collections.ObjectModel.ReadOnlyCollection$1",function(e){return{inherits:[Bridge.global.System.Collections.Generic.IList$1(e),Bridge.global.System.Collections.IList,Bridge.global.System.Collections.Generic.IReadOnlyList$1(e)],statics:{methods:{IsCompatibleObject:function(t){return Bridge.is(t,e)||null==t&&null==Bridge.getDefaultValue(e)}}},fields:{list:null},props:{Count:{get:function(){return Bridge.global.System.Array.getCount(this.list,e)}},System$Collections$ICollection$IsSynchronized:{get:function(){return!1}},System$Collections$ICollection$SyncRoot:{get:function(){return this}},Items:{get:function(){return this.list}},System$Collections$IList$IsFixedSize:{get:function(){return!0}},System$Collections$Generic$ICollection$1$IsReadOnly:{get:function(){return!0}},System$Collections$IList$IsReadOnly:{get:function(){return!0}}},alias:["Count",["System$Collections$Generic$IReadOnlyCollection$1$"+Bridge.getTypeAlias(e)+"$Count","System$Collections$Generic$IReadOnlyCollection$1$Count"],"Count","System$Collections$ICollection$Count","Count","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$Count","getItem",["System$Collections$Generic$IReadOnlyList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IReadOnlyList$1$getItem"],"contains","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$contains","copyTo","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$copyTo","GetEnumerator",["System$Collections$Generic$IEnumerable$1$"+Bridge.getTypeAlias(e)+"$GetEnumerator","System$Collections$Generic$IEnumerable$1$GetEnumerator"],"indexOf","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$indexOf","System$Collections$Generic$ICollection$1$IsReadOnly","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$IsReadOnly","System$Collections$Generic$IList$1$getItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$getItem","System$Collections$Generic$IList$1$setItem","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$setItem","System$Collections$Generic$ICollection$1$add","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$add","System$Collections$Generic$ICollection$1$clear","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$clear","System$Collections$Generic$IList$1$insert","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$insert","System$Collections$Generic$ICollection$1$remove","System$Collections$Generic$ICollection$1$"+Bridge.getTypeAlias(e)+"$remove","System$Collections$Generic$IList$1$removeAt","System$Collections$Generic$IList$1$"+Bridge.getTypeAlias(e)+"$removeAt"],ctors:{ctor:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("list");this.list=e}},methods:{getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$Generic$IList$1$getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$Generic$IList$1$setItem:function(){throw new Bridge.global.System.NotSupportedException.ctor},System$Collections$IList$getItem:function(t){return Bridge.global.System.Array.getItem(this.list,t,e)},System$Collections$IList$setItem:function(){throw new Bridge.global.System.NotSupportedException.ctor},contains:function(t){return Bridge.global.System.Array.contains(this.list,t,e)},System$Collections$IList$contains:function(t){return!!Bridge.global.System.Collections.ObjectModel.ReadOnlyCollection$1(e).IsCompatibleObject(t)&&this.contains(Bridge.cast(Bridge.unbox(t),e))},copyTo:function(t,n){Bridge.global.System.Array.copyTo(this.list,t,n,e)},System$Collections$ICollection$copyTo:function(t,n){var i,r,s,a,l,o;if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(1!==Bridge.global.System.Array.getRank(t))throw new Bridge.global.System.ArgumentException.$ctor1("array");if(0!==Bridge.global.System.Array.getLower(t,0))throw new Bridge.global.System.ArgumentException.$ctor1("array");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if((t.length-n|0)e.length)throw new Bridge.global.System.ArgumentException.$ctor1("index plus count specify a position that is not within buffer.")}if(r="",null!=e)for(1===t&&(n=0,i=e.length),s=n;s<(n+i|0);s=s+1|0)r=(r||"")+String.fromCharCode(e[Bridge.global.System.Array.index(s,e)]);return r},Clear:function(){var e=Bridge.global.console;e&&e.clear&&e.clear()}}}}),Bridge.define("System.TokenType",{$kind:"enum",statics:{fields:{NumberToken:1,YearNumberToken:2,Am:3,Pm:4,MonthToken:5,EndOfString:6,DayOfWeekToken:7,TimeZoneToken:8,EraToken:9,DateWordToken:10,UnknownToken:11,HebrewNumber:12,JapaneseEraToken:13,TEraToken:14,IgnorableSymbol:15,SEP_Unk:256,SEP_End:512,SEP_Space:768,SEP_Am:1024,SEP_Pm:1280,SEP_Date:1536,SEP_Time:1792,SEP_YearSuff:2048,SEP_MonthSuff:2304,SEP_DaySuff:2560,SEP_HourSuff:2816,SEP_MinuteSuff:3072,SEP_SecondSuff:3328,SEP_LocalTimeMark:3584,SEP_DateOrOffset:3840,RegularTokenMask:255,SeparatorTokenMask:65280}}}),Bridge.define("System.UnitySerializationHolder",{inherits:[Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.Runtime.Serialization.IObjectReference],statics:{fields:{NullUnity:0},ctors:{init:function(){this.NullUnity=2}}},alias:["GetRealObject","System$Runtime$Serialization$IObjectReference$GetRealObject"],methods:{GetRealObject:function(){throw Bridge.global.System.NotImplemented.ByDesign}}}),Bridge.define("System.DateTimeKind",{$kind:"enum",statics:{fields:{Unspecified:0,Utc:1,Local:2}}}),Bridge.define("System.DateTimeOffset",{inherits:function(){return[Bridge.global.System.IComparable,Bridge.global.System.IFormattable,Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.Runtime.Serialization.IDeserializationCallback,Bridge.global.System.IComparable$1(Bridge.global.System.DateTimeOffset),Bridge.global.System.IEquatable$1(Bridge.global.System.DateTimeOffset)]},$kind:"struct",statics:{fields:{MaxOffset:Bridge.global.System.Int64(0),MinOffset:Bridge.global.System.Int64(0),UnixEpochTicks:Bridge.global.System.Int64(0),UnixEpochSeconds:Bridge.global.System.Int64(0),UnixEpochMilliseconds:Bridge.global.System.Int64(0),MinValue:null,MaxValue:null},props:{Now:{get:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.getNow())}},UtcNow:{get:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.getUtcNow())}}},ctors:{init:function(){this.MinValue=new Bridge.global.System.DateTimeOffset,this.MaxValue=new Bridge.global.System.DateTimeOffset,this.MaxOffset=Bridge.global.System.Int64([1488826368,117]),this.MinOffset=Bridge.global.System.Int64([-1488826368,-118]),this.UnixEpochTicks=Bridge.global.System.Int64([-139100160,144670709]),this.UnixEpochSeconds=Bridge.global.System.Int64([2006054656,14]),this.UnixEpochMilliseconds=Bridge.global.System.Int64([304928768,14467]),this.MinValue=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.MinTicks,Bridge.global.System.TimeSpan.zero),this.MaxValue=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.MaxTicks,Bridge.global.System.TimeSpan.zero)}},methods:{Compare:function(e,t){return Bridge.compare(e.UtcDateTime,t.UtcDateTime)},Equals:function(e,t){return Bridge.equalsT(e.UtcDateTime,t.UtcDateTime)},FromFileTime:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.FromFileTime(e))},FromUnixTimeSeconds:function(e){var t,n=Bridge.global.System.Int64([-2006054656,-15]),i=Bridge.global.System.Int64([-769665,58]);if(e.lt(n)||e.gt(i))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("seconds",Bridge.global.System.String.format(Bridge.global.System.Environment.GetResourceString("ArgumentOutOfRange_Range"),n,i));return t=e.mul(Bridge.global.System.Int64(1e7)).add(Bridge.global.System.DateTimeOffset.UnixEpochTicks),new Bridge.global.System.DateTimeOffset.$ctor5(t,Bridge.global.System.TimeSpan.zero)},FromUnixTimeMilliseconds:function(e){var t,n=Bridge.global.System.Int64([-304928768,-14468]),i=Bridge.global.System.Int64([-769664001,58999]);if(e.lt(n)||e.gt(i))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("milliseconds",Bridge.global.System.String.format(Bridge.global.System.Environment.GetResourceString("ArgumentOutOfRange_Range"),n,i));return t=e.mul(Bridge.global.System.Int64(1e4)).add(Bridge.global.System.DateTimeOffset.UnixEpochTicks),new Bridge.global.System.DateTimeOffset.$ctor5(t,Bridge.global.System.TimeSpan.zero)},Parse:function(e){var t={},n=Bridge.global.System.DateTimeParse.Parse$1(e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo,0,t);return new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(n),t.v)},Parse$1:function(e,t){return Bridge.global.System.DateTimeOffset.Parse$2(e,t,0)},Parse$2:function(){throw Bridge.global.System.NotImplemented.ByDesign},ParseExact:function(e,t,n){return Bridge.global.System.DateTimeOffset.ParseExact$1(e,t,n,0)},ParseExact$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},TryParse:function(e,t){var n={},i={},r=Bridge.global.System.DateTimeParse.TryParse$1(e,Bridge.global.System.Globalization.DateTimeFormatInfo.currentInfo,0,i,n);return t.v=new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(i.v),n.v),r},ValidateOffset:function(e){var t=e.getTicks();if(t.mod(Bridge.global.System.Int64(6e8)).ne(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.Environment.GetResourceString("Argument_OffsetPrecision"),"offset");if(t.lt(Bridge.global.System.DateTimeOffset.MinOffset)||t.gt(Bridge.global.System.DateTimeOffset.MaxOffset))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset",Bridge.global.System.Environment.GetResourceString("Argument_OffsetOutOfRange"));return Bridge.global.System.Int64.clip16(e.getTicks().div(Bridge.global.System.Int64(6e8)))},ValidateDate:function(e,t){var n=Bridge.global.System.DateTime.getTicks(e).sub(t.getTicks());if(n.lt(Bridge.global.System.DateTime.MinTicks)||n.gt(Bridge.global.System.DateTime.MaxTicks))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset",Bridge.global.System.Environment.GetResourceString("Argument_UTCOutOfRange"));return Bridge.global.System.DateTime.create$2(n,0)},op_Implicit:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(e)},op_Addition:function(e,t){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.adddt(e.ClockDateTime,t),e.Offset)},op_Subtraction:function(e,t){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.subdt(e.ClockDateTime,t),e.Offset)},op_Subtraction$1:function(e,t){return Bridge.global.System.DateTime.subdd(e.UtcDateTime,t.UtcDateTime)},op_Equality:function(e,t){return Bridge.equals(e.UtcDateTime,t.UtcDateTime)},op_Inequality:function(e,t){return!Bridge.equals(e.UtcDateTime,t.UtcDateTime)},op_LessThan:function(e,t){return Bridge.global.System.DateTime.lt(e.UtcDateTime,t.UtcDateTime)},op_LessThanOrEqual:function(e,t){return Bridge.global.System.DateTime.lte(e.UtcDateTime,t.UtcDateTime)},op_GreaterThan:function(e,t){return Bridge.global.System.DateTime.gt(e.UtcDateTime,t.UtcDateTime)},op_GreaterThanOrEqual:function(e,t){return Bridge.global.System.DateTime.gte(e.UtcDateTime,t.UtcDateTime)},getDefaultValue:function(){return new Bridge.global.System.DateTimeOffset}}},fields:{m_dateTime:null,m_offsetMinutes:0},props:{DateTime:{get:function(){return this.ClockDateTime}},UtcDateTime:{get:function(){return Bridge.global.System.DateTime.specifyKind(this.m_dateTime,1)}},LocalDateTime:{get:function(){return Bridge.global.System.DateTime.toLocalTime(this.UtcDateTime)}},ClockDateTime:{get:function(){return Bridge.global.System.DateTime.create$2(Bridge.global.System.DateTime.getTicks(Bridge.global.System.DateTime.adddt(this.m_dateTime,this.Offset)),0)}},Date:{get:function(){return Bridge.global.System.DateTime.getDate(this.ClockDateTime)}},Day:{get:function(){return Bridge.global.System.DateTime.getDay(this.ClockDateTime)}},DayOfWeek:{get:function(){return Bridge.global.System.DateTime.getDayOfWeek(this.ClockDateTime)}},DayOfYear:{get:function(){return Bridge.global.System.DateTime.getDayOfYear(this.ClockDateTime)}},Hour:{get:function(){return Bridge.global.System.DateTime.getHour(this.ClockDateTime)}},Millisecond:{get:function(){return Bridge.global.System.DateTime.getMillisecond(this.ClockDateTime)}},Minute:{get:function(){return Bridge.global.System.DateTime.getMinute(this.ClockDateTime)}},Month:{get:function(){return Bridge.global.System.DateTime.getMonth(this.ClockDateTime)}},Offset:{get:function(){return new Bridge.global.System.TimeSpan(0,this.m_offsetMinutes,0)}},Second:{get:function(){return Bridge.global.System.DateTime.getSecond(this.ClockDateTime)}},Ticks:{get:function(){return Bridge.global.System.DateTime.getTicks(this.ClockDateTime)}},UtcTicks:{get:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime)}},TimeOfDay:{get:function(){return Bridge.global.System.DateTime.getTimeOfDay(this.ClockDateTime)}},Year:{get:function(){return Bridge.global.System.DateTime.getYear(this.ClockDateTime)}}},alias:["compareTo",["System$IComparable$1$System$DateTimeOffset$compareTo","System$IComparable$1$compareTo"],"equalsT","System$IEquatable$1$System$DateTimeOffset$equalsT","format","System$IFormattable$format"],ctors:{init:function(){this.m_dateTime=Bridge.global.System.DateTime.getDefaultValue()},$ctor5:function(e,t){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t);var n=Bridge.global.System.DateTime.create$2(e);this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(n,t)},$ctor1:function(e){var t;this.$initialize(),t=new Bridge.global.System.TimeSpan(Bridge.global.System.Int64(0)),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(e,t)},$ctor2:function(e,t){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(t),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(e,t)},$ctor4:function(e,t,n,i,r,s,a){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(a),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(Bridge.global.System.DateTime.create(e,t,n,i,r,s),a)},$ctor3:function(e,t,n,i,r,s,a,l){this.$initialize(),this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(l),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(Bridge.global.System.DateTime.create(e,t,n,i,r,s,a),l)},ctor:function(){this.$initialize()}},methods:{ToOffset:function(e){return new Bridge.global.System.DateTimeOffset.$ctor5(Bridge.global.System.DateTime.getTicks(Bridge.global.System.DateTime.adddt(this.m_dateTime,e)),e)},Add:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.add(this.ClockDateTime,e),this.Offset)},AddDays:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addDays(this.ClockDateTime,e),this.Offset)},AddHours:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addHours(this.ClockDateTime,e),this.Offset)},AddMilliseconds:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMilliseconds(this.ClockDateTime,e),this.Offset)},AddMinutes:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMinutes(this.ClockDateTime,e),this.Offset)},AddMonths:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addMonths(this.ClockDateTime,e),this.Offset)},AddSeconds:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addSeconds(this.ClockDateTime,e),this.Offset)},AddTicks:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addTicks(this.ClockDateTime,e),this.Offset)},AddYears:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.addYears(this.ClockDateTime,e),this.Offset)},System$IComparable$compareTo:function(e){if(null==e)return 1;if(!Bridge.is(e,Bridge.global.System.DateTimeOffset))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.Environment.GetResourceString("Arg_MustBeDateTimeOffset"));var t=Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTimeOffset)).UtcDateTime,n=this.UtcDateTime;return Bridge.global.System.DateTime.gt(n,t)?1:Bridge.global.System.DateTime.lt(n,t)?-1:0},compareTo:function(e){var t=e.UtcDateTime,n=this.UtcDateTime;return Bridge.global.System.DateTime.gt(n,t)?1:Bridge.global.System.DateTime.lt(n,t)?-1:0},equals:function(e){return!!Bridge.is(e,Bridge.global.System.DateTimeOffset)&&Bridge.equalsT(this.UtcDateTime,Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTimeOffset)).UtcDateTime)},equalsT:function(e){return Bridge.equalsT(this.UtcDateTime,e.UtcDateTime)},EqualsExact:function(e){return Bridge.equals(this.ClockDateTime,e.ClockDateTime)&&Bridge.global.System.TimeSpan.eq(this.Offset,e.Offset)&&Bridge.global.System.DateTime.getKind(this.ClockDateTime)===Bridge.global.System.DateTime.getKind(e.ClockDateTime)},System$Runtime$Serialization$IDeserializationCallback$OnDeserialization:function(){try{this.m_offsetMinutes=Bridge.global.System.DateTimeOffset.ValidateOffset(this.Offset),this.m_dateTime=Bridge.global.System.DateTimeOffset.ValidateDate(this.ClockDateTime,this.Offset)}catch(t){var e;throw t=Bridge.global.System.Exception.create(t),Bridge.is(t,Bridge.global.System.ArgumentException)?(e=t,new Bridge.global.System.Runtime.Serialization.SerializationException.$ctor2(Bridge.global.System.Environment.GetResourceString("Serialization_InvalidData"),e)):t}},getHashCode:function(){return Bridge.getHashCode(this.UtcDateTime)},Subtract$1:function(e){return Bridge.global.System.DateTime.subdd(this.UtcDateTime,e.UtcDateTime)},Subtract:function(e){return new Bridge.global.System.DateTimeOffset.$ctor2(Bridge.global.System.DateTime.subtract(this.ClockDateTime,e),this.Offset)},ToFileTime:function(){return Bridge.global.System.DateTime.ToFileTime(this.UtcDateTime)},ToUnixTimeSeconds:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime).div(Bridge.global.System.Int64(1e7)).sub(Bridge.global.System.DateTimeOffset.UnixEpochSeconds)},ToUnixTimeMilliseconds:function(){return Bridge.global.System.DateTime.getTicks(this.UtcDateTime).div(Bridge.global.System.Int64(1e4)).sub(Bridge.global.System.DateTimeOffset.UnixEpochMilliseconds)},ToLocalTime:function(){return this.ToLocalTime$1(!1)},ToLocalTime$1:function(e){return new Bridge.global.System.DateTimeOffset.$ctor1(Bridge.global.System.DateTime.toLocalTime(this.UtcDateTime,e))},toString:function(){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2))},ToString$1:function(e){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),e)},ToString:function(e){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),null,e)},format:function(e,t){return Bridge.global.System.DateTime.format(Bridge.global.System.DateTime.specifyKind(this.ClockDateTime,2),e,t)},ToUniversalTime:function(){return new Bridge.global.System.DateTimeOffset.$ctor1(this.UtcDateTime)},$clone:function(e){var t=e||new Bridge.global.System.DateTimeOffset;return t.m_dateTime=this.m_dateTime,t.m_offsetMinutes=this.m_offsetMinutes,t}}}),Bridge.define("System.DateTimeParse",{statics:{methods:{TryParseExact:function(e,t,n,i,r){return Bridge.global.System.DateTime.tryParseExact(e,t,null,r)},Parse:function(e,t){return Bridge.global.System.DateTime.parse(e,t)},Parse$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},TryParse:function(e,t,n,i){return Bridge.global.System.DateTime.tryParse(e,null,i)},TryParse$1:function(){throw Bridge.global.System.NotImplemented.ByDesign}}}}),Bridge.define("System.DateTimeResult",{$kind:"struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.DateTimeResult}}},fields:{Year:0,Month:0,Day:0,Hour:0,Minute:0,Second:0,fraction:0,era:0,flags:0,timeZoneOffset:null,calendar:null,parsedDate:null,failure:0,failureMessageID:null,failureMessageFormatArgument:null,failureArgumentName:null},ctors:{init:function(){this.timeZoneOffset=new Bridge.global.System.TimeSpan,this.parsedDate=Bridge.global.System.DateTime.getDefaultValue()},ctor:function(){this.$initialize()}},methods:{Init:function(){this.Year=-1,this.Month=-1,this.Day=-1,this.fraction=-1,this.era=-1},SetDate:function(e,t,n){this.Year=e,this.Month=t,this.Day=n},SetFailure:function(e,t,n){this.failure=e,this.failureMessageID=t,this.failureMessageFormatArgument=n},SetFailure$1:function(e,t,n,i){this.failure=e,this.failureMessageID=t,this.failureMessageFormatArgument=n,this.failureArgumentName=i},getHashCode:function(){return Bridge.addHash([5374321750,this.Year,this.Month,this.Day,this.Hour,this.Minute,this.Second,this.fraction,this.era,this.flags,this.timeZoneOffset,this.calendar,this.parsedDate,this.failure,this.failureMessageID,this.failureMessageFormatArgument,this.failureArgumentName])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.DateTimeResult)&&Bridge.equals(this.Year,e.Year)&&Bridge.equals(this.Month,e.Month)&&Bridge.equals(this.Day,e.Day)&&Bridge.equals(this.Hour,e.Hour)&&Bridge.equals(this.Minute,e.Minute)&&Bridge.equals(this.Second,e.Second)&&Bridge.equals(this.fraction,e.fraction)&&Bridge.equals(this.era,e.era)&&Bridge.equals(this.flags,e.flags)&&Bridge.equals(this.timeZoneOffset,e.timeZoneOffset)&&Bridge.equals(this.calendar,e.calendar)&&Bridge.equals(this.parsedDate,e.parsedDate)&&Bridge.equals(this.failure,e.failure)&&Bridge.equals(this.failureMessageID,e.failureMessageID)&&Bridge.equals(this.failureMessageFormatArgument,e.failureMessageFormatArgument)&&Bridge.equals(this.failureArgumentName,e.failureArgumentName)},$clone:function(e){var t=e||new Bridge.global.System.DateTimeResult;return t.Year=this.Year,t.Month=this.Month,t.Day=this.Day,t.Hour=this.Hour,t.Minute=this.Minute,t.Second=this.Second,t.fraction=this.fraction,t.era=this.era,t.flags=this.flags,t.timeZoneOffset=this.timeZoneOffset,t.calendar=this.calendar,t.parsedDate=this.parsedDate,t.failure=this.failure,t.failureMessageID=this.failureMessageID,t.failureMessageFormatArgument=this.failureMessageFormatArgument,t.failureArgumentName=this.failureArgumentName,t}}}),Bridge.define("System.DayOfWeek",{$kind:"enum",statics:{fields:{Sunday:0,Monday:1,Tuesday:2,Wednesday:3,Thursday:4,Friday:5,Saturday:6}}}),Bridge.define("System.DBNull",{inherits:[Bridge.global.System.Runtime.Serialization.ISerializable,Bridge.global.System.IConvertible],statics:{fields:{Value:null},ctors:{init:function(){this.Value=new Bridge.global.System.DBNull}}},alias:["ToString","System$IConvertible$ToString","GetTypeCode","System$IConvertible$GetTypeCode"],ctors:{ctor:function(){this.$initialize()}},methods:{toString:function(){return""},ToString:function(){return""},GetTypeCode:function(){return Bridge.global.System.TypeCode.DBNull},System$IConvertible$ToBoolean:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToChar:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToSByte:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToByte:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt16:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt16:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt32:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt32:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToInt64:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToUInt64:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToSingle:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDouble:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDecimal:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToDateTime:function(){throw new Bridge.global.System.InvalidCastException.$ctor1("Object cannot be cast from DBNull to other types.")},System$IConvertible$ToType:function(e,t){return Bridge.global.System.Convert.defaultToType(Bridge.cast(this,Bridge.global.System.IConvertible),e,t)}}}),Bridge.define("System.Empty",{statics:{fields:{Value:null},ctors:{init:function(){this.Value=new Bridge.global.System.Empty}}},ctors:{ctor:function(){this.$initialize()}},methods:{toString:function(){return""}}}),Bridge.define("System.ApplicationException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"Error in the application."),this.HResult=-2146232832},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e),this.HResult=-2146232832},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t),this.HResult=-2146232832}}}),Bridge.define("System.ArgumentException",{inherits:[Bridge.global.System.SystemException],fields:{_paramName:null},props:{Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message;return Bridge.global.System.String.isNullOrEmpty(this._paramName)?t:(e=Bridge.global.System.SR.Format("Parameter name: {0}",this._paramName),(t||"")+"\\n"+(e||""))}},ParamName:{get:function(){return this._paramName}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Value does not fall within the expected range."),this.HResult=-2147024809},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024809},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024809},$ctor4:function(e,t,n){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,n),this._paramName=t,this.HResult=-2147024809},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this._paramName=t,this.HResult=-2147024809}}}),Bridge.define("System.ArgumentNullException",{inherits:[Bridge.global.System.ArgumentException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,"Value cannot be null."),this.HResult=-2147467261},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,"Value cannot be null.",e),this.HResult=-2147467261},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t),this.HResult=-2147467261},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e),this.HResult=-2147467261}}}),Bridge.define("System.ArgumentOutOfRangeException",{inherits:[Bridge.global.System.ArgumentException],fields:{_actualValue:null},props:{Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$ArgumentException$Message;return null!=this._actualValue?(e=Bridge.global.System.SR.Format("Actual value was {0}.",Bridge.toString(this._actualValue)),null==t?e:(t||"")+"\\n"+(e||"")):t}},ActualValue:{get:function(){return this._actualValue}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,"Specified argument was out of the range of valid values."),this.HResult=-2146233086},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,"Specified argument was out of the range of valid values.",e),this.HResult=-2146233086},$ctor4:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e),this.HResult=-2146233086},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t),this.HResult=-2146233086},$ctor3:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._actualValue=t,this.HResult=-2146233086}}}),Bridge.define("System.ArithmeticException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Overflow or underflow in the arithmetic operation."),this.HResult=-2147024362},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147024362},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147024362}}}),Bridge.define("System.Base64FormattingOptions",{$kind:"enum",statics:{fields:{None:0,InsertLineBreaks:1}},$flags:!0}),Bridge.define("System.DivideByZeroException",{inherits:[Bridge.global.System.ArithmeticException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor1.call(this,"Attempted to divide by zero."),this.HResult=-2147352558},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor1.call(this,e),this.HResult=-2147352558},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArithmeticException.$ctor2.call(this,e,t),this.HResult=-2147352558}}}),Bridge.define("System.ExceptionArgument",{$kind:"enum",statics:{fields:{obj:0,dictionary:1,array:2,info:3,key:4,collection:5,list:6,match:7,converter:8,capacity:9,index:10,startIndex:11,value:12,count:13,arrayIndex:14,$name:15,item:16,options:17,view:18,sourceBytesToCopy:19,action:20,comparison:21,offset:22,newSize:23,elementType:24,$length:25,length1:26,length2:27,length3:28,lengths:29,len:30,lowerBounds:31,sourceArray:32,destinationArray:33,sourceIndex:34,destinationIndex:35,indices:36,index1:37,index2:38,index3:39,other:40,comparer:41,endIndex:42,keys:43,creationOptions:44,timeout:45,tasks:46,scheduler:47,continuationFunction:48,millisecondsTimeout:49,millisecondsDelay:50,function:51,exceptions:52,exception:53,cancellationToken:54,delay:55,asyncResult:56,endMethod:57,endFunction:58,beginMethod:59,continuationOptions:60,continuationAction:61,concurrencyLevel:62,text:63,callBack:64,type:65,stateMachine:66,pHandle:67,values:68,task:69,s:70,keyValuePair:71,input:72,ownedMemory:73,pointer:74,start:75,format:76,culture:77,comparable:78,source:79,state:80}}}),Bridge.define("System.ExceptionResource",{$kind:"enum",statics:{fields:{Argument_ImplementIComparable:0,Argument_InvalidType:1,Argument_InvalidArgumentForComparison:2,Argument_InvalidRegistryKeyPermissionCheck:3,ArgumentOutOfRange_NeedNonNegNum:4,Arg_ArrayPlusOffTooSmall:5,Arg_NonZeroLowerBound:6,Arg_RankMultiDimNotSupported:7,Arg_RegKeyDelHive:8,Arg_RegKeyStrLenBug:9,Arg_RegSetStrArrNull:10,Arg_RegSetMismatchedKind:11,Arg_RegSubKeyAbsent:12,Arg_RegSubKeyValueAbsent:13,Argument_AddingDuplicate:14,Serialization_InvalidOnDeser:15,Serialization_MissingKeys:16,Serialization_NullKey:17,Argument_InvalidArrayType:18,NotSupported_KeyCollectionSet:19,NotSupported_ValueCollectionSet:20,ArgumentOutOfRange_SmallCapacity:21,ArgumentOutOfRange_Index:22,Argument_InvalidOffLen:23,Argument_ItemNotExist:24,ArgumentOutOfRange_Count:25,ArgumentOutOfRange_InvalidThreshold:26,ArgumentOutOfRange_ListInsert:27,NotSupported_ReadOnlyCollection:28,InvalidOperation_CannotRemoveFromStackOrQueue:29,InvalidOperation_EmptyQueue:30,InvalidOperation_EnumOpCantHappen:31,InvalidOperation_EnumFailedVersion:32,InvalidOperation_EmptyStack:33,ArgumentOutOfRange_BiggerThanCollection:34,InvalidOperation_EnumNotStarted:35,InvalidOperation_EnumEnded:36,NotSupported_SortedListNestedWrite:37,InvalidOperation_NoValue:38,InvalidOperation_RegRemoveSubKey:39,Security_RegistryPermission:40,UnauthorizedAccess_RegistryNoWrite:41,ObjectDisposed_RegKeyClosed:42,NotSupported_InComparableType:43,Argument_InvalidRegistryOptionsCheck:44,Argument_InvalidRegistryViewCheck:45,InvalidOperation_NullArray:46,Arg_MustBeType:47,Arg_NeedAtLeast1Rank:48,ArgumentOutOfRange_HugeArrayNotSupported:49,Arg_RanksAndBounds:50,Arg_RankIndices:51,Arg_Need1DArray:52,Arg_Need2DArray:53,Arg_Need3DArray:54,NotSupported_FixedSizeCollection:55,ArgumentException_OtherNotArrayOfCorrectLength:56,Rank_MultiDimNotSupported:57,InvalidOperation_IComparerFailed:58,ArgumentOutOfRange_EndIndexStartIndex:59,Arg_LowerBoundsMustMatch:60,Arg_BogusIComparer:61,Task_WaitMulti_NullTask:62,Task_ThrowIfDisposed:63,Task_Start_TaskCompleted:64,Task_Start_Promise:65,Task_Start_ContinuationTask:66,Task_Start_AlreadyStarted:67,Task_RunSynchronously_TaskCompleted:68,Task_RunSynchronously_Continuation:69,Task_RunSynchronously_Promise:70,Task_RunSynchronously_AlreadyStarted:71,Task_MultiTaskContinuation_NullTask:72,Task_MultiTaskContinuation_EmptyTaskList:73,Task_Dispose_NotCompleted:74,Task_Delay_InvalidMillisecondsDelay:75,Task_Delay_InvalidDelay:76,Task_ctor_LRandSR:77,Task_ContinueWith_NotOnAnything:78,Task_ContinueWith_ESandLR:79,TaskT_TransitionToFinal_AlreadyCompleted:80,TaskCompletionSourceT_TrySetException_NullException:81,TaskCompletionSourceT_TrySetException_NoExceptions:82,MemoryDisposed:83,Memory_OutstandingReferences:84,InvalidOperation_WrongAsyncResultOrEndCalledMultiple:85,ConcurrentDictionary_ConcurrencyLevelMustBePositive:86,ConcurrentDictionary_CapacityMustNotBeNegative:87,ConcurrentDictionary_TypeOfValueIncorrect:88,ConcurrentDictionary_TypeOfKeyIncorrect:89,ConcurrentDictionary_KeyAlreadyExisted:90,ConcurrentDictionary_ItemKeyIsNull:91,ConcurrentDictionary_IndexIsNegative:92,ConcurrentDictionary_ArrayNotLargeEnough:93,ConcurrentDictionary_ArrayIncorrectType:94,ConcurrentCollection_SyncRoot_NotSupported:95,ArgumentOutOfRange_Enum:96,InvalidOperation_HandleIsNotInitialized:97,AsyncMethodBuilder_InstanceNotInitialized:98,ArgumentNull_SafeHandle:99}}}),Bridge.define("System.FormatException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"One of the identified items was in an invalid format."),this.HResult=-2146233033},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233033},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233033}}}),Bridge.define("System.FormattableString",{inherits:[Bridge.global.System.IFormattable],statics:{methods:{Invariant:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("formattable");return e.ToString(Bridge.global.System.Globalization.CultureInfo.invariantCulture)}}},methods:{System$IFormattable$format:function(e,t){return this.ToString(t)},toString:function(){return this.ToString(Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())}}}),Bridge.define("System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString",{inherits:[Bridge.global.System.FormattableString],$kind:"nested class",fields:{_format:null,_arguments:null},props:{Format:{get:function(){return this._format}},ArgumentCount:{get:function(){return this._arguments.length}}},ctors:{ctor:function(e,t){this.$initialize(),Bridge.global.System.FormattableString.ctor.call(this),this._format=e,this._arguments=t}},methods:{GetArguments:function(){return this._arguments},GetArgument:function(e){return this._arguments[Bridge.global.System.Array.index(e,this._arguments)]},ToString:function(e){return Bridge.global.System.String.formatProvider.apply(Bridge.global.System.String,[e,this._format].concat(this._arguments))}}}),Bridge.define("System.Runtime.CompilerServices.FormattableStringFactory",{statics:{methods:{Create:function(e,t){if(void 0===t&&(t=[]),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("format");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("arguments");return new Bridge.global.System.Runtime.CompilerServices.FormattableStringFactory.ConcreteFormattableString(e,t)}}}}),Bridge.define("System.Guid",{inherits:function(){return[Bridge.global.System.IEquatable$1(Bridge.global.System.Guid),Bridge.global.System.IComparable$1(Bridge.global.System.Guid),Bridge.global.System.IFormattable]},$kind:"struct",statics:{fields:{error1:null,Valid:null,Split:null,NonFormat:null,Replace:null,Rnd:null,Empty:null},ctors:{init:function(){this.Empty=new Bridge.global.System.Guid,this.error1="Byte array for GUID must be exactly {0} bytes long",this.Valid=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$",1),this.Split=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(.{8})(.{4})(.{4})(.{4})(.{12})$"),this.NonFormat=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^[{(]?([0-9a-f]{8})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{4})-?([0-9a-f]{12})[)}]?$",1),this.Replace=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("-"),this.Rnd=new Bridge.global.System.Random.ctor}},methods:{Parse:function(e){return Bridge.global.System.Guid.ParseExact(e,null)},ParseExact:function(e,t){var n=new Bridge.global.System.Guid.ctor;return n.ParseInternal(e,t,!0),n},TryParse:function(e,t){return Bridge.global.System.Guid.TryParseExact(e,null,t)},TryParseExact:function(e,t,n){return n.v=new Bridge.global.System.Guid.ctor,n.v.ParseInternal(e,t,!1)},NewGuid:function(){var e=Bridge.global.System.Array.init(16,0,Bridge.global.System.Byte);return Bridge.global.System.Guid.Rnd.NextBytes(e),e[Bridge.global.System.Array.index(7,e)]=255&(15&e[Bridge.global.System.Array.index(7,e)]|64),e[Bridge.global.System.Array.index(8,e)]=255&(191&e[Bridge.global.System.Array.index(8,e)]|128),new Bridge.global.System.Guid.$ctor1(e)},MakeBinary:function(e){return Bridge.global.System.Int32.format(255&e,"x2")},op_Equality:function(e,t){return Bridge.referenceEquals(e,null)?Bridge.referenceEquals(t,null):e.equalsT(t)},op_Inequality:function(e,t){return!Bridge.global.System.Guid.op_Equality(e,t)},getDefaultValue:function(){return new Bridge.global.System.Guid}}},fields:{_a:0,_b:0,_c:0,_d:0,_e:0,_f:0,_g:0,_h:0,_i:0,_j:0,_k:0},alias:["equalsT","System$IEquatable$1$System$Guid$equalsT","compareTo",["System$IComparable$1$System$Guid$compareTo","System$IComparable$1$compareTo"],"format","System$IFormattable$format"],ctors:{$ctor4:function(e){this.$initialize(),(new Bridge.global.System.Guid.ctor).$clone(this),this.ParseInternal(e,null,!0)},$ctor1:function(e){if(this.$initialize(),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("b");if(16!==e.length)throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.format(Bridge.global.System.Guid.error1,[Bridge.box(16,Bridge.global.System.Int32)]));this._a=e[Bridge.global.System.Array.index(3,e)]<<24|e[Bridge.global.System.Array.index(2,e)]<<16|e[Bridge.global.System.Array.index(1,e)]<<8|e[Bridge.global.System.Array.index(0,e)],this._b=Bridge.Int.sxs(65535&(e[Bridge.global.System.Array.index(5,e)]<<8|e[Bridge.global.System.Array.index(4,e)])),this._c=Bridge.Int.sxs(65535&(e[Bridge.global.System.Array.index(7,e)]<<8|e[Bridge.global.System.Array.index(6,e)])),this._d=e[Bridge.global.System.Array.index(8,e)],this._e=e[Bridge.global.System.Array.index(9,e)],this._f=e[Bridge.global.System.Array.index(10,e)],this._g=e[Bridge.global.System.Array.index(11,e)],this._h=e[Bridge.global.System.Array.index(12,e)],this._i=e[Bridge.global.System.Array.index(13,e)],this._j=e[Bridge.global.System.Array.index(14,e)],this._k=e[Bridge.global.System.Array.index(15,e)]},$ctor5:function(e,t,n,i,r,s,a,l,o,u,d){this.$initialize(),this._a=0|e,this._b=Bridge.Int.sxs(65535&t),this._c=Bridge.Int.sxs(65535&n),this._d=i,this._e=r,this._f=s,this._g=a,this._h=l,this._i=o,this._j=u,this._k=d},$ctor3:function(e,t,n,i){if(this.$initialize(),null==i)throw new Bridge.global.System.ArgumentNullException.$ctor1("d");if(8!==i.length)throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.format(Bridge.global.System.Guid.error1,[Bridge.box(8,Bridge.global.System.Int32)]));this._a=e,this._b=t,this._c=n,this._d=i[Bridge.global.System.Array.index(0,i)],this._e=i[Bridge.global.System.Array.index(1,i)],this._f=i[Bridge.global.System.Array.index(2,i)],this._g=i[Bridge.global.System.Array.index(3,i)],this._h=i[Bridge.global.System.Array.index(4,i)],this._i=i[Bridge.global.System.Array.index(5,i)],this._j=i[Bridge.global.System.Array.index(6,i)],this._k=i[Bridge.global.System.Array.index(7,i)]},$ctor2:function(e,t,n,i,r,s,a,l,o,u,d){this.$initialize(),this._a=e,this._b=t,this._c=n,this._d=i,this._e=r,this._f=s,this._g=a,this._h=l,this._i=o,this._j=u,this._k=d},ctor:function(){this.$initialize()}},methods:{getHashCode:function(){return this._a^(this._b<<16|65535&this._c)^(this._f<<24|this._k)},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Guid)&&this.equalsT(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.Guid)))},equalsT:function(e){return this._a===e._a&&this._b===e._b&&this._c===e._c&&this._d===e._d&&this._e===e._e&&this._f===e._f&&this._g===e._g&&this._h===e._h&&this._i===e._i&&this._j===e._j&&this._k===e._k},compareTo:function(e){return Bridge.global.System.String.compare(this.toString(),e.toString())},toString:function(){return this.Format(null)},ToString:function(e){return this.Format(e)},format:function(e){return this.Format(e)},ToByteArray:function(){var e=Bridge.global.System.Array.init(16,0,Bridge.global.System.Byte);return e[Bridge.global.System.Array.index(0,e)]=255&this._a,e[Bridge.global.System.Array.index(1,e)]=this._a>>8&255,e[Bridge.global.System.Array.index(2,e)]=this._a>>16&255,e[Bridge.global.System.Array.index(3,e)]=this._a>>24&255,e[Bridge.global.System.Array.index(4,e)]=255&this._b,e[Bridge.global.System.Array.index(5,e)]=this._b>>8&255,e[Bridge.global.System.Array.index(6,e)]=255&this._c,e[Bridge.global.System.Array.index(7,e)]=this._c>>8&255,e[Bridge.global.System.Array.index(8,e)]=this._d,e[Bridge.global.System.Array.index(9,e)]=this._e,e[Bridge.global.System.Array.index(10,e)]=this._f,e[Bridge.global.System.Array.index(11,e)]=this._g,e[Bridge.global.System.Array.index(12,e)]=this._h,e[Bridge.global.System.Array.index(13,e)]=this._i,e[Bridge.global.System.Array.index(14,e)]=this._j,e[Bridge.global.System.Array.index(15,e)]=this._k,e},ParseInternal:function(e,t,n){var i,r,s,a,l,o,u,d,g=null;if(Bridge.global.System.String.isNullOrEmpty(e)){if(n)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");return!1}if(Bridge.global.System.String.isNullOrEmpty(t)){if((i=Bridge.global.System.Guid.NonFormat.match(e)).getSuccess()){for(r=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),s=1;s<=i.getGroups().getCount();s=s+1|0)i.getGroups().get(s).getSuccess()&&r.add(i.getGroups().get(s).getValue());g=r.ToArray().join("-").toLowerCase()}}else{if(t=t.toUpperCase(),a=!1,Bridge.referenceEquals(t,"N")){if((l=Bridge.global.System.Guid.Split.match(e)).getSuccess()){for(o=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),u=1;u<=l.getGroups().getCount();u=u+1|0)l.getGroups().get(u).getSuccess()&&o.add(l.getGroups().get(u).getValue());a=!0,e=o.ToArray().join("-")}}else Bridge.referenceEquals(t,"B")||Bridge.referenceEquals(t,"P")?(d=Bridge.referenceEquals(t,"B")?Bridge.global.System.Array.init([123,125],Bridge.global.System.Char):Bridge.global.System.Array.init([40,41],Bridge.global.System.Char),e.charCodeAt(0)===d[Bridge.global.System.Array.index(0,d)]&&e.charCodeAt(e.length-1|0)===d[Bridge.global.System.Array.index(1,d)]&&(a=!0,e=e.substr(1,e.length-2|0))):a=!0;a&&Bridge.global.System.Guid.Valid.isMatch(e)&&(g=e.toLowerCase())}if(null!=g)return this.FromString(g),!0;if(n)throw new Bridge.global.System.FormatException.$ctor1("input is not in a recognized format");return!1},Format:function(e){var t,n,i,r=(Bridge.global.System.UInt32.format(this._a>>>0,"x8")||"")+(Bridge.global.System.UInt16.format(65535&this._b,"x4")||"")+(Bridge.global.System.UInt16.format(65535&this._c,"x4")||"");for(r=(r||"")+(Bridge.global.System.Array.init([this._d,this._e,this._f,this._g,this._h,this._i,this._j,this._k],Bridge.global.System.Byte).map(Bridge.global.System.Guid.MakeBinary).join("")||""),t=Bridge.global.System.Guid.Split.match(r),n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),i=1;i<=t.getGroups().getCount();i=i+1|0)t.getGroups().get(i).getSuccess()&&n.add(t.getGroups().get(i).getValue());switch(r=n.ToArray().join("-"),e){case"n":case"N":return Bridge.global.System.Guid.Replace.replace(r,"");case"b":case"B":return String.fromCharCode(123)+(r||"")+String.fromCharCode(125);case"p":case"P":return String.fromCharCode(40)+(r||"")+String.fromCharCode(41);default:return r}},FromString:function(e){var t,n;if(!Bridge.global.System.String.isNullOrEmpty(e)){for(e=Bridge.global.System.Guid.Replace.replace(e,""),t=Bridge.global.System.Array.init(8,0,Bridge.global.System.Byte),this._a=0|Bridge.global.System.UInt32.parse(e.substr(0,8),16),this._b=Bridge.Int.sxs(65535&Bridge.global.System.UInt16.parse(e.substr(8,4),16)),this._c=Bridge.Int.sxs(65535&Bridge.global.System.UInt16.parse(e.substr(12,4),16)),n=8;n<16;n=n+1|0)t[Bridge.global.System.Array.index(n-8|0,t)]=Bridge.global.System.Byte.parse(e.substr(Bridge.Int.mul(n,2),2),16);this._d=t[Bridge.global.System.Array.index(0,t)],this._e=t[Bridge.global.System.Array.index(1,t)],this._f=t[Bridge.global.System.Array.index(2,t)],this._g=t[Bridge.global.System.Array.index(3,t)],this._h=t[Bridge.global.System.Array.index(4,t)],this._i=t[Bridge.global.System.Array.index(5,t)],this._j=t[Bridge.global.System.Array.index(6,t)],this._k=t[Bridge.global.System.Array.index(7,t)]}},toJSON:function(){return this.toString()},$clone:function(){return this}}}),Bridge.define("System.IndexOutOfRangeException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Index was outside the bounds of the array."),this.HResult=-2146233080},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233080},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233080}}}),Bridge.define("System.InvalidCastException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Specified cast is not valid."),this.HResult=-2147467262},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2147467262},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2147467262},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=t}}}),Bridge.define("System.InvalidOperationException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Operation is not valid due to the current state of the object."),this.HResult=-2146233079},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233079},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233079}}}),Bridge.define("System.ObjectDisposedException",{inherits:[Bridge.global.System.InvalidOperationException],fields:{_objectName:null},props:{Message:{get:function(){var e,t=this.ObjectName;return null==t||0===t.length?Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message:(e=Bridge.global.System.SR.Format("Object name: \'{0}\'.",t),(Bridge.ensureBaseProperty(this,"Message").$System$Exception$Message||"")+"\\n"+(e||""))}},ObjectName:{get:function(){return null==this._objectName?"":this._objectName}}},ctors:{ctor:function(){Bridge.global.System.ObjectDisposedException.$ctor3.call(this,null,"Cannot access a disposed object.")},$ctor1:function(e){Bridge.global.System.ObjectDisposedException.$ctor3.call(this,e,"Cannot access a disposed object.")},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.InvalidOperationException.$ctor1.call(this,t),this.HResult=-2146232798,this._objectName=e},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.InvalidOperationException.$ctor2.call(this,e,t),this.HResult=-2146232798}}}),Bridge.define("System.InvalidProgramException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"Common Language Runtime detected an invalid program."),this.HResult=-2146233030},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233030},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233030}}}),Bridge.define("System.Globalization.Calendar",{inherits:[Bridge.global.System.ICloneable],statics:{fields:{TicksPerMillisecond:Bridge.global.System.Int64(0),TicksPerSecond:Bridge.global.System.Int64(0),TicksPerMinute:Bridge.global.System.Int64(0),TicksPerHour:Bridge.global.System.Int64(0),TicksPerDay:Bridge.global.System.Int64(0),MillisPerSecond:0,MillisPerMinute:0,MillisPerHour:0,MillisPerDay:0,DaysPerYear:0,DaysPer4Years:0,DaysPer100Years:0,DaysPer400Years:0,DaysTo10000:0,MaxMillis:Bridge.global.System.Int64(0),CurrentEra:0},ctors:{init:function(){this.TicksPerMillisecond=Bridge.global.System.Int64(1e4),this.TicksPerSecond=Bridge.global.System.Int64(1e7),this.TicksPerMinute=Bridge.global.System.Int64(6e8),this.TicksPerHour=Bridge.global.System.Int64([1640261632,8]),this.TicksPerDay=Bridge.global.System.Int64([711573504,201]),this.MillisPerSecond=1e3,this.MillisPerMinute=6e4,this.MillisPerHour=36e5,this.MillisPerDay=864e5,this.DaysPerYear=365,this.DaysPer4Years=1461,this.DaysPer100Years=36524,this.DaysPer400Years=146097,this.DaysTo10000=3652059,this.MaxMillis=Bridge.global.System.Int64([-464735232,73466]),this.CurrentEra=0}},methods:{ReadOnly:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("calendar");if(e.IsReadOnly)return e;var t=Bridge.cast(Bridge.clone(e),Bridge.global.System.Globalization.Calendar);return t.SetReadOnlyState(!0),t},CheckAddResult:function(e,t,n){if(e.lt(Bridge.global.System.DateTime.getTicks(t))||e.gt(Bridge.global.System.DateTime.getTicks(n)))throw new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.String.formatProvider(Bridge.global.System.Globalization.CultureInfo.invariantCulture,Bridge.global.System.SR.Format$1("The result is out of the supported range for this calendar. The result should be between {0} (Gregorian date) and {1} (Gregorian date), inclusive.",Bridge.box(t,Bridge.global.System.DateTime,Bridge.global.System.DateTime.format),Bridge.box(n,Bridge.global.System.DateTime,Bridge.global.System.DateTime.format)),null))},GetSystemTwoDigitYearSetting:function(e,t){var n=2029;return n<0&&(n=t),n}}},fields:{_isReadOnly:!1,twoDigitYearMax:0},props:{MinSupportedDateTime:{get:function(){return Bridge.global.System.DateTime.getMinValue()}},MaxSupportedDateTime:{get:function(){return Bridge.global.System.DateTime.getMaxValue()}},AlgorithmType:{get:function(){return 0}},ID:{get:function(){return 0}},BaseCalendarID:{get:function(){return this.ID}},IsReadOnly:{get:function(){return this._isReadOnly}},CurrentEraValue:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},DaysInYearBeforeMinSupportedYear:{get:function(){return 365}},TwoDigitYearMax:{get:function(){return this.twoDigitYearMax},set:function(e){this.VerifyWritable(),this.twoDigitYearMax=e}}},alias:["clone","System$ICloneable$clone"],ctors:{init:function(){this._isReadOnly=!1,this.twoDigitYearMax=-1},ctor:function(){this.$initialize()}},methods:{clone:function(){var e=Bridge.clone(this);return Bridge.cast(e,Bridge.global.System.Globalization.Calendar).SetReadOnlyState(!1),e},VerifyWritable:function(){if(this._isReadOnly)throw new Bridge.global.System.InvalidOperationException.$ctor1("Instance is read-only.")},SetReadOnlyState:function(e){this._isReadOnly=e},Add:function(e,t,n){var i,r,s=t*n+(t>=0?.5:-.5);if(!(s>-3155378976e5&&s<3155378976e5))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","Value to add was out of range.");return i=Bridge.Int.clip64(s),r=Bridge.global.System.DateTime.getTicks(e).add(i.mul(Bridge.global.System.Globalization.Calendar.TicksPerMillisecond)),Bridge.global.System.Globalization.Calendar.CheckAddResult(r,this.MinSupportedDateTime,this.MaxSupportedDateTime),Bridge.global.System.DateTime.create$2(r)},AddMilliseconds:function(e,t){return this.Add(e,t,1)},AddDays:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerDay)},AddHours:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerHour)},AddMinutes:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerMinute)},AddSeconds:function(e,t){return this.Add(e,t,Bridge.global.System.Globalization.Calendar.MillisPerSecond)},AddWeeks:function(e,t){return this.AddDays(e,Bridge.Int.mul(t,7))},GetDaysInMonth:function(e,t){return this.GetDaysInMonth$1(e,t,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetDaysInYear:function(e){return this.GetDaysInYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetHour:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerHour).mod(Bridge.global.System.Int64(24)))},GetMilliseconds:function(e){return Bridge.global.System.Int64.toNumber(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerMillisecond).mod(Bridge.global.System.Int64(1e3)))},GetMinute:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerMinute).mod(Bridge.global.System.Int64(60)))},GetMonthsInYear:function(e){return this.GetMonthsInYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetSecond:function(e){return Bridge.global.System.Int64.clip32(Bridge.global.System.DateTime.getTicks(e).div(Bridge.global.System.Globalization.Calendar.TicksPerSecond).mod(Bridge.global.System.Int64(60)))},GetFirstDayWeekOfYear:function(e,t){var n=this.GetDayOfYear(e)-1|0,i=(14+((this.GetDayOfWeek(e)-n%7|0)-t|0)|0)%7;return 1+(0|Bridge.Int.div(n+i|0,7))|0},GetWeekOfYearFullDays:function(e,t,n){var i,r,s=this.GetDayOfYear(e)-1|0;return 0!=(i=(14+(t-(this.GetDayOfWeek(e)-s%7|0)|0)|0)%7)&&i>=n&&(i=i-7|0),(r=s-i|0)>=0?1+(0|Bridge.Int.div(r,7))|0:Bridge.global.System.DateTime.lte(e,Bridge.global.System.DateTime.addDays(this.MinSupportedDateTime,s))?this.GetWeekOfYearOfMinSupportedDateTime(t,n):this.GetWeekOfYearFullDays(Bridge.global.System.DateTime.addDays(e,0|-(s+1|0)),t,n)},GetWeekOfYearOfMinSupportedDateTime:function(e,t){var n=this.GetDayOfYear(this.MinSupportedDateTime)-1|0,i=this.GetDayOfWeek(this.MinSupportedDateTime)-n%7|0,r=((e+7|0)-i|0)%7;if(0===r||r>=t)return 1;var s=this.DaysInYearBeforeMinSupportedYear-1|0,a=(14+(e-((i-1|0)-s%7|0)|0)|0)%7,l=s-a|0;return a>=t&&(l=l+7|0),1+(0|Bridge.Int.div(l,7))|0},GetWeekOfYear:function(e,t,n){if(n<0||n>6)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("firstDayOfWeek",Bridge.global.System.SR.Format$1("Valid values are between {0} and {1}, inclusive.",Bridge.box(Bridge.global.System.DayOfWeek.Sunday,Bridge.global.System.DayOfWeek,Bridge.global.System.Enum.toStringFn(Bridge.global.System.DayOfWeek)),Bridge.box(Bridge.global.System.DayOfWeek.Saturday,Bridge.global.System.DayOfWeek,Bridge.global.System.Enum.toStringFn(Bridge.global.System.DayOfWeek))));switch(t){case 0:return this.GetFirstDayWeekOfYear(e,n);case 1:return this.GetWeekOfYearFullDays(e,n,7);case 2:return this.GetWeekOfYearFullDays(e,n,4)}throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("rule",Bridge.global.System.SR.Format$1("Valid values are between {0} and {1}, inclusive.",Bridge.box(0,Bridge.global.System.Globalization.CalendarWeekRule,Bridge.global.System.Enum.toStringFn(Bridge.global.System.Globalization.CalendarWeekRule)),Bridge.box(2,Bridge.global.System.Globalization.CalendarWeekRule,Bridge.global.System.Enum.toStringFn(Bridge.global.System.Globalization.CalendarWeekRule))))},IsLeapDay:function(e,t,n){return this.IsLeapDay$1(e,t,n,Bridge.global.System.Globalization.Calendar.CurrentEra)},IsLeapMonth:function(e,t){return this.IsLeapMonth$1(e,t,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetLeapMonth:function(e){return this.GetLeapMonth$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},GetLeapMonth$1:function(e,t){var n,i;if(!this.IsLeapYear$1(e,t))return 0;for(n=this.GetMonthsInYear$1(e,t),i=1;i<=n;i=i+1|0)if(this.IsLeapMonth$1(e,i,t))return i;return 0},IsLeapYear:function(e){return this.IsLeapYear$1(e,Bridge.global.System.Globalization.Calendar.CurrentEra)},ToDateTime:function(e,t,n,i,r,s,a){return this.ToDateTime$1(e,t,n,i,r,s,a,Bridge.global.System.Globalization.Calendar.CurrentEra)},TryToDateTime:function(e,t,n,i,r,s,a,l,o){o.v=Bridge.global.System.DateTime.getMinValue();try{return o.v=this.ToDateTime$1(e,t,n,i,r,s,a,l),!0}catch(e){if(e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.ArgumentException))return!1;throw e}},IsValidYear:function(e){return e>=this.GetYear(this.MinSupportedDateTime)&&e<=this.GetYear(this.MaxSupportedDateTime)},IsValidMonth:function(e,t,n){return this.IsValidYear(e,n)&&t>=1&&t<=this.GetMonthsInYear$1(e,n)},IsValidDay:function(e,t,n,i){return this.IsValidMonth(e,t,i)&&n>=1&&n<=this.GetDaysInMonth$1(e,t,i)},ToFourDigitYear:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("year","Non-negative number required.");return e<100?Bridge.Int.mul((0|Bridge.Int.div(this.TwoDigitYearMax,100))-(e>this.TwoDigitYearMax%100?1:0)|0,100)+e|0:e}}}),Bridge.define("System.Globalization.CalendarAlgorithmType",{$kind:"enum",statics:{fields:{Unknown:0,SolarCalendar:1,LunarCalendar:2,LunisolarCalendar:3}}}),Bridge.define("System.Globalization.CalendarId",{$kind:"enum",statics:{fields:{UNINITIALIZED_VALUE:0,GREGORIAN:1,GREGORIAN_US:2,JAPAN:3,TAIWAN:4,KOREA:5,HIJRI:6,THAI:7,HEBREW:8,GREGORIAN_ME_FRENCH:9,GREGORIAN_ARABIC:10,GREGORIAN_XLIT_ENGLISH:11,GREGORIAN_XLIT_FRENCH:12,JULIAN:13,JAPANESELUNISOLAR:14,CHINESELUNISOLAR:15,SAKA:16,LUNAR_ETO_CHN:17,LUNAR_ETO_KOR:18,LUNAR_ETO_ROKUYOU:19,KOREANLUNISOLAR:20,TAIWANLUNISOLAR:21,PERSIAN:22,UMALQURA:23,LAST_CALENDAR:23}},$utype:Bridge.global.System.UInt16}),Bridge.define("System.Globalization.CalendarWeekRule",{$kind:"enum",statics:{fields:{FirstDay:0,FirstFullWeek:1,FirstFourDayWeek:2}}}),Bridge.define("System.Globalization.CultureNotFoundException",{inherits:[Bridge.global.System.ArgumentException],statics:{props:{DefaultMessage:{get:function(){return"Culture is not supported."}}}},fields:{_invalidCultureName:null,_invalidCultureId:null},props:{InvalidCultureId:{get:function(){return this._invalidCultureId}},InvalidCultureName:{get:function(){return this._invalidCultureName}},FormatedInvalidCultureId:{get:function(){return null!=this.InvalidCultureId?Bridge.global.System.String.formatProvider(Bridge.global.System.Globalization.CultureInfo.invariantCulture,"{0} (0x{0:x4})",[Bridge.box(Bridge.global.System.Nullable.getValue(this.InvalidCultureId),Bridge.global.System.Int32)]):this.InvalidCultureName}},Message:{get:function(){var e,t=Bridge.ensureBaseProperty(this,"Message").$System$ArgumentException$Message;return null!=this._invalidCultureId||null!=this._invalidCultureName?(e=Bridge.global.System.SR.Format("{0} is an invalid culture identifier.",this.FormatedInvalidCultureId),null==t?e:(t||"")+"\\n"+(e||"")):t}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,Bridge.global.System.Globalization.CultureNotFoundException.DefaultMessage)},$ctor1:function(e){this.$initialize(),Bridge.global.System.ArgumentException.$ctor1.call(this,e)},$ctor5:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,t,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,t)},$ctor7:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._invalidCultureName=t},$ctor6:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,n),this._invalidCultureName=t},$ctor3:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor2.call(this,e,n),this._invalidCultureId=t},$ctor4:function(e,t,n){this.$initialize(),Bridge.global.System.ArgumentException.$ctor3.call(this,n,e),this._invalidCultureId=t}}}),Bridge.define("System.Globalization.DateTimeFormatInfoScanner",{statics:{fields:{MonthPostfixChar:0,IgnorableSymbolChar:0,CJKYearSuff:null,CJKMonthSuff:null,CJKDaySuff:null,KoreanYearSuff:null,KoreanMonthSuff:null,KoreanDaySuff:null,KoreanHourSuff:null,KoreanMinuteSuff:null,KoreanSecondSuff:null,CJKHourSuff:null,ChineseHourSuff:null,CJKMinuteSuff:null,CJKSecondSuff:null,s_knownWords:null},props:{KnownWords:{get:function(){if(null==Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords){var e=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String));e.add("/",""),e.add("-",""),e.add(".",""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKYearSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKMonthSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKDaySuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanYearSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanMonthSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanDaySuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanMinuteSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KoreanSecondSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.ChineseHourSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKMinuteSuff,""),e.add(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.CJKSecondSuff,""),Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords=e}return Bridge.global.System.Globalization.DateTimeFormatInfoScanner.s_knownWords}}},ctors:{init:function(){this.MonthPostfixChar=57344,this.IgnorableSymbolChar=57345,this.CJKYearSuff="年",this.CJKMonthSuff="月",this.CJKDaySuff="日",this.KoreanYearSuff="년",this.KoreanMonthSuff="월",this.KoreanDaySuff="일",this.KoreanHourSuff="시",this.KoreanMinuteSuff="분",this.KoreanSecondSuff="초",this.CJKHourSuff="時",this.ChineseHourSuff="时",this.CJKMinuteSuff="分",this.CJKSecondSuff="秒"}},methods:{SkipWhiteSpacesAndNonLetter:function(e,t){for(;t0&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(0)>=48&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(0)<=57){for(t=1;t=48&&e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)<=57;)t=t+1|0;if(t===e[Bridge.global.System.Array.index(n,e)].length)return!1;if(t===(e[Bridge.global.System.Array.index(n,e)].length-1|0))switch(e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)){case 26376:case 50900:return!1}return t!==(e[Bridge.global.System.Array.index(n,e)].length-4|0)||39!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t)||32!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+1|0)||26376!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+2|0)||39!==e[Bridge.global.System.Array.index(n,e)].charCodeAt(t+3|0)}return!1}}},fields:{m_dateWords:null,_ymdFlags:0},ctors:{init:function(){this.m_dateWords=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),this._ymdFlags=Bridge.global.System.Globalization.DateTimeFormatInfoScanner.FoundDatePattern.None}},methods:{AddDateWordOrPostfix:function(e,t){var n,i,r;if(t.length>0){if(Bridge.global.System.String.equals(t,"."))return void this.AddIgnorableSymbols(".");n={},!1===Bridge.global.System.Globalization.DateTimeFormatInfoScanner.KnownWords.tryGetValue(t,n)&&(null==this.m_dateWords&&(this.m_dateWords=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),Bridge.referenceEquals(e,"MMMM")?(i=String.fromCharCode(Bridge.global.System.Globalization.DateTimeFormatInfoScanner.MonthPostfixChar)+(t||""),this.m_dateWords.contains(i)||this.m_dateWords.add(i)):(this.m_dateWords.contains(t)||this.m_dateWords.add(t),46===t.charCodeAt(t.length-1|0)&&(r=t.substr(0,t.length-1|0),this.m_dateWords.contains(r)||this.m_dateWords.add(r))))}},AddDateWords:function(e,t,n){var i,r,s=Bridge.global.System.Globalization.DateTimeFormatInfoScanner.SkipWhiteSpacesAndNonLetter(e,t);for(s!==t&&null!=n&&(n=null),t=s,i=new Bridge.global.System.Text.StringBuilder;t=4&&t0)for(t=Bridge.global.System.Array.init(this.m_dateWords.Count,null,Bridge.global.System.String),i=0;i>>0},ReadInt64:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0;return Bridge.global.System.Int64.clip64(Bridge.global.System.UInt64(t)).shl(32).or(Bridge.global.System.Int64(e))},ReadUInt64:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0;return Bridge.global.System.UInt64(t).shl(32).or(Bridge.global.System.UInt64(e))},ReadSingle:function(){this.FillBuffer(4);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0;return Bridge.global.System.BitConverter.toSingle(Bridge.global.System.BitConverter.getBytes$8(e),0)},ReadDouble:function(){this.FillBuffer(8);var e=(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(1,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(2,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(3,this.m_buffer)]<<24)>>>0,t=(this.m_buffer[Bridge.global.System.Array.index(4,this.m_buffer)]|this.m_buffer[Bridge.global.System.Array.index(5,this.m_buffer)]<<8|this.m_buffer[Bridge.global.System.Array.index(6,this.m_buffer)]<<16|this.m_buffer[Bridge.global.System.Array.index(7,this.m_buffer)]<<24)>>>0,n=Bridge.global.System.UInt64(t).shl(32).or(Bridge.global.System.UInt64(e));return Bridge.global.System.BitConverter.toDouble(Bridge.global.System.BitConverter.getBytes$9(n),0)},ReadDecimal:function(){this.FillBuffer(23);try{return Bridge.global.System.Decimal.fromBytes(this.m_buffer)}catch(t){var e;throw t=Bridge.global.System.Exception.create(t),Bridge.is(t,Bridge.global.System.ArgumentException)?(e=t,new Bridge.global.System.IO.IOException.$ctor2("Arg_DecBitCtor",e)):t}},ReadString:function(){var e,t,n,i,r,s,a;if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),e=0,(n=this.Read7BitEncodedInt())<0)throw new Bridge.global.System.IO.IOException.$ctor1("IO.IO_InvalidStringLen_Len");if(0===n)return"";null==this.m_charBytes&&(this.m_charBytes=Bridge.global.System.Array.init(Bridge.global.System.IO.BinaryReader.MaxCharBytesSize,0,Bridge.global.System.Byte)),null==this.m_charBuffer&&(this.m_charBuffer=Bridge.global.System.Array.init(this.m_maxCharsSize,0,Bridge.global.System.Char)),s=null;do{if(i=(n-e|0)>Bridge.global.System.IO.BinaryReader.MaxCharBytesSize?Bridge.global.System.IO.BinaryReader.MaxCharBytesSize:n-e|0,0===(t=this.m_stream.Read(this.m_charBytes,0,i))&&Bridge.global.System.IO.__Error.EndOfFile(),r=this.m_encoding.GetChars$2(this.m_charBytes,0,t,this.m_charBuffer,0),0===e&&t===n)return Bridge.global.System.String.fromCharArray(this.m_charBuffer,0,r);for(null==s&&(s=new Bridge.global.System.Text.StringBuilder("",n)),a=0;ae.length)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charsRemaining");for(;r>0&&-1!==(i=this.InternalReadOneChar(!0));)e[Bridge.global.System.Array.index(t,e)]=65535&i,2===this.lastCharsRead&&(e[Bridge.global.System.Array.index(t=t+1|0,e)]=this.m_singleChar[Bridge.global.System.Array.index(1,this.m_singleChar)],r=r-1|0),r=r-1|0,t=t+1|0;return n-r|0},InternalReadOneChar:function(e){var t,n,i,r;void 0===e&&(e=!1);var s=0,a=0,l=Bridge.global.System.Int64(0);for(this.m_stream.CanSeek&&(l=this.m_stream.Position),null==this.m_charBytes&&(this.m_charBytes=Bridge.global.System.Array.init(Bridge.global.System.IO.BinaryReader.MaxCharBytesSize,0,Bridge.global.System.Byte)),null==this.m_singleChar&&(this.m_singleChar=Bridge.global.System.Array.init(2,0,Bridge.global.System.Char)),t=!1,n=0;0===s;){if(a=this.m_2BytesPerChar?2:1,Bridge.is(this.m_encoding,Bridge.global.System.Text.UTF32Encoding)&&(a=4),t)i=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(n=n+1|0,this.m_charBytes)]=255&i,-1===i&&(a=0),2===a&&(i=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(n=n+1|0,this.m_charBytes)]=255&i,-1===i&&(a=1));else if(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(0,this.m_charBytes)]=255&r,n=0,-1===r&&(a=0),2===a)r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(1,this.m_charBytes)]=255&r,-1===r&&(a=1),n=1;else if(4===a){if(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(1,this.m_charBytes)]=255&r,-1===r||(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(2,this.m_charBytes)]=255&r,-1===r)||(r=this.m_stream.ReadByte(),this.m_charBytes[Bridge.global.System.Array.index(3,this.m_charBytes)]=255&r,-1===r))return-1;n=3}if(0===a)return-1;t=!1;try{if(s=this.m_encoding.GetChars$2(this.m_charBytes,0,n+1|0,this.m_singleChar,0),!e&&2===s)throw new Bridge.global.System.ArgumentException.ctor}catch(e){throw e=Bridge.global.System.Exception.create(e),this.m_stream.CanSeek&&this.m_stream.Seek(l.sub(this.m_stream.Position),1),e}this.m_encoding._hasError&&(s=0,t=!0)}return this.lastCharsRead=s,0===s?-1:this.m_singleChar[Bridge.global.System.Array.index(0,this.m_singleChar)]},ReadChars:function(e){var t,n,i;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");return null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),0===e?Bridge.global.System.Array.init(0,0,Bridge.global.System.Char):(t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Char),(n=this.InternalReadChars(t,0,e))!==e&&(i=Bridge.global.System.Array.init(n,0,Bridge.global.System.Char),Bridge.global.System.Array.copy(t,0,i,0,Bridge.Int.mul(2,n)),t=i),t)},ReadBytes:function(e){var t,n,i,r;if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),0===e)return Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte);t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte),n=0;do{if(0===(i=this.m_stream.Read(t,n,e)))break;n=n+i|0,e=e-i|0}while(e>0);return n!==t.length&&(r=Bridge.global.System.Array.init(n,0,Bridge.global.System.Byte),Bridge.global.System.Array.copy(t,0,r,0,n),t=r),t},FillBuffer:function(e){if(null!=this.m_buffer&&(e<0||e>this.m_buffer.length))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("numBytes","ArgumentOutOfRange_BinaryReaderFillBuffer");var t=0,n=0;if(null==this.m_stream&&Bridge.global.System.IO.__Error.FileNotOpen(),1===e)return-1===(n=this.m_stream.ReadByte())&&Bridge.global.System.IO.__Error.EndOfFile(),void(this.m_buffer[Bridge.global.System.Array.index(0,this.m_buffer)]=255&n);do{0===(n=this.m_stream.Read(this.m_buffer,t,e-t|0))&&Bridge.global.System.IO.__Error.EndOfFile(),t=t+n|0}while(t>8&255,this.OutStream.Write(this._buffer,0,2)},Write$15:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>8&255,this.OutStream.Write(this._buffer,0,2)},Write$10:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=e>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=e>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$16:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&e,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=e>>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=e>>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=e>>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$11:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=Bridge.global.System.Int64.clipu8(e),this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(8)),this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(16)),this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(24)),this._buffer[Bridge.global.System.Array.index(4,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(32)),this._buffer[Bridge.global.System.Array.index(5,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(40)),this._buffer[Bridge.global.System.Array.index(6,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(48)),this._buffer[Bridge.global.System.Array.index(7,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shr(56)),this.OutStream.Write(this._buffer,0,8)},Write$17:function(e){this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=Bridge.global.System.Int64.clipu8(e),this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(8)),this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(16)),this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(24)),this._buffer[Bridge.global.System.Array.index(4,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(32)),this._buffer[Bridge.global.System.Array.index(5,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(40)),this._buffer[Bridge.global.System.Array.index(6,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(48)),this._buffer[Bridge.global.System.Array.index(7,this._buffer)]=Bridge.global.System.Int64.clipu8(e.shru(56)),this.OutStream.Write(this._buffer,0,8)},Write$13:function(e){var t=Bridge.global.System.BitConverter.toUInt32(Bridge.global.System.BitConverter.getBytes$6(e),0);this._buffer[Bridge.global.System.Array.index(0,this._buffer)]=255&t,this._buffer[Bridge.global.System.Array.index(1,this._buffer)]=t>>>8&255,this._buffer[Bridge.global.System.Array.index(2,this._buffer)]=t>>>16&255,this._buffer[Bridge.global.System.Array.index(3,this._buffer)]=t>>>24&255,this.OutStream.Write(this._buffer,0,4)},Write$14:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("value");var t=this._encoding.GetBytes$2(e),n=t.length;this.Write7BitEncodedInt(n),this.OutStream.Write(t,0,n)},Write7BitEncodedInt:function(e){for(var t=e>>>0;t>=128;)this.Write$1((128|t)>>>0&255),t>>>=7;this.Write$1(255&t)}}}),Bridge.define("System.IO.Stream",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null,_DefaultCopyBufferSize:0},ctors:{init:function(){this.Null=new Bridge.global.System.IO.Stream.NullStream,this._DefaultCopyBufferSize=81920}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("stream");return e},BlockingEndRead:function(e){return Bridge.global.System.IO.Stream.SynchronousAsyncResult.EndRead(e)},BlockingEndWrite:function(e){Bridge.global.System.IO.Stream.SynchronousAsyncResult.EndWrite(e)}}},props:{CanTimeout:{get:function(){return!1}},ReadTimeout:{get:function(){throw new Bridge.global.System.InvalidOperationException.ctor},set:function(){throw new Bridge.global.System.InvalidOperationException.ctor}},WriteTimeout:{get:function(){throw new Bridge.global.System.InvalidOperationException.ctor},set:function(){throw new Bridge.global.System.InvalidOperationException.ctor}}},alias:["Dispose","System$IDisposable$Dispose"],methods:{CopyTo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("destination");if(!this.CanRead&&!this.CanWrite)throw new Bridge.global.System.Exception;if(!e.CanRead&&!e.CanWrite)throw new Bridge.global.System.Exception("destination");if(!this.CanRead)throw new Bridge.global.System.NotSupportedException.ctor;if(!e.CanWrite)throw new Bridge.global.System.NotSupportedException.ctor;this.InternalCopyTo(e,Bridge.global.System.IO.Stream._DefaultCopyBufferSize)},CopyTo$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("destination");if(t<=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bufferSize");if(!this.CanRead&&!this.CanWrite)throw new Bridge.global.System.Exception;if(!e.CanRead&&!e.CanWrite)throw new Bridge.global.System.Exception("destination");if(!this.CanRead)throw new Bridge.global.System.NotSupportedException.ctor;if(!e.CanWrite)throw new Bridge.global.System.NotSupportedException.ctor;this.InternalCopyTo(e,t)},InternalCopyTo:function(e,t){for(var n,i=Bridge.global.System.Array.init(t,0,Bridge.global.System.Byte);0!==(n=this.Read(i,0,i.length));)e.Write(i,0,n)},Close:function(){this.Dispose$1(!0)},Dispose:function(){this.Close()},Dispose$1:function(){},BeginRead:function(e,t,n,i,r){return this.BeginReadInternal(e,t,n,i,r,!1)},BeginReadInternal:function(e,t,n,i,r){return this.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported(),this.BlockingBeginRead(e,t,n,i,r)},EndRead:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");return Bridge.global.System.IO.Stream.BlockingEndRead(e)},BeginWrite:function(e,t,n,i,r){return this.BeginWriteInternal(e,t,n,i,r,!1)},BeginWriteInternal:function(e,t,n,i,r){return this.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported(),this.BlockingBeginWrite(e,t,n,i,r)},EndWrite:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");Bridge.global.System.IO.Stream.BlockingEndWrite(e)},ReadByte:function(){var e=Bridge.global.System.Array.init(1,0,Bridge.global.System.Byte);return 0===this.Read(e,0,1)?-1:e[Bridge.global.System.Array.index(0,e)]},WriteByte:function(e){var t=Bridge.global.System.Array.init(1,0,Bridge.global.System.Byte);t[Bridge.global.System.Array.index(0,t)]=e,this.Write(t,0,1)},BlockingBeginRead:function(e,t,n,i,r){var s,a,l;try{a=this.Read(e,t,n),s=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.$ctor1(a,r)}catch(e){if(e=Bridge.global.System.Exception.create(e),!Bridge.is(e,Bridge.global.System.IO.IOException))throw e;l=e,s=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.ctor(l,r,!1)}return Bridge.staticEquals(i,null)||i(s),s},BlockingBeginWrite:function(e,t,n,i,r){var s,a;try{this.Write(e,t,n),s=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.$ctor2(r)}catch(e){if(e=Bridge.global.System.Exception.create(e),!Bridge.is(e,Bridge.global.System.IO.IOException))throw e;a=e,s=new Bridge.global.System.IO.Stream.SynchronousAsyncResult.ctor(a,r,!0)}return Bridge.staticEquals(i,null)||i(s),s}}}),Bridge.define("System.IO.BufferedStream",{inherits:[Bridge.global.System.IO.Stream],statics:{fields:{_DefaultBufferSize:0,MaxShadowBufferSize:0},ctors:{init:function(){this._DefaultBufferSize=4096,this.MaxShadowBufferSize=81920}}},fields:{_stream:null,_buffer:null,_bufferSize:0,_readPos:0,_readLen:0,_writePos:0},props:{UnderlyingStream:{get:function(){return this._stream}},BufferSize:{get:function(){return this._bufferSize}},CanRead:{get:function(){return null!=this._stream&&this._stream.CanRead}},CanWrite:{get:function(){return null!=this._stream&&this._stream.CanWrite}},CanSeek:{get:function(){return null!=this._stream&&this._stream.CanSeek}},Length:{get:function(){return this.EnsureNotClosed(),this._writePos>0&&this.FlushWrite(),this._stream.Length}},Position:{get:function(){return this.EnsureNotClosed(),this.EnsureCanSeek(),this._stream.Position.add(Bridge.global.System.Int64((this._readPos-this._readLen|0)+this._writePos|0))},set:function(e){if(e.lt(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("value");this.EnsureNotClosed(),this.EnsureCanSeek(),this._writePos>0&&this.FlushWrite(),this._readPos=0,this._readLen=0,this._stream.Seek(e,0)}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this)},$ctor1:function(e){Bridge.global.System.IO.BufferedStream.$ctor2.call(this,e,Bridge.global.System.IO.BufferedStream._DefaultBufferSize)},$ctor2:function(e,t){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("stream");if(t<=0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("bufferSize");this._stream=e,this._bufferSize=t,this._stream.CanRead||this._stream.CanWrite||Bridge.global.System.IO.__Error.StreamIsClosed()}},methods:{EnsureNotClosed:function(){null==this._stream&&Bridge.global.System.IO.__Error.StreamIsClosed()},EnsureCanSeek:function(){this._stream.CanSeek||Bridge.global.System.IO.__Error.SeekNotSupported()},EnsureCanRead:function(){this._stream.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported()},EnsureCanWrite:function(){this._stream.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported()},EnsureShadowBufferAllocated:function(){if(this._buffer.length===this._bufferSize&&!(this._bufferSize>=Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize)){var e=Bridge.global.System.Array.init(Math.min(this._bufferSize+this._bufferSize|0,Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize),0,Bridge.global.System.Byte);Bridge.global.System.Array.copy(this._buffer,0,e,0,this._writePos),this._buffer=e}},EnsureBufferAllocated:function(){null==this._buffer&&(this._buffer=Bridge.global.System.Array.init(this._bufferSize,0,Bridge.global.System.Byte))},Dispose$1:function(e){try{if(e&&null!=this._stream)try{this.Flush()}finally{this._stream.Close()}}finally{this._stream=null,this._buffer=null,Bridge.global.System.IO.Stream.prototype.Dispose$1.call(this,e)}},Flush:function(){if(this.EnsureNotClosed(),this._writePos>0)this.FlushWrite();else{if(this._readPosn&&(i=n),Bridge.global.System.Array.copy(this._buffer,this._readPos,e,t,i),this._readPos=this._readPos+i|0,i)},ReadFromBuffer$1:function(e,t,n,i){try{return i.v=null,this.ReadFromBuffer(e,t,n)}catch(e){return e=Bridge.global.System.Exception.create(e),i.v=e,0}},Read:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&(n=n-i|0,t=t+i|0),this._readPos=this._readLen=0,this._writePos>0&&this.FlushWrite(),n>=this._bufferSize?this._stream.Read(e,t,n)+r|0:(this.EnsureBufferAllocated(),this._readLen=this._stream.Read(this._buffer,0,this._bufferSize),(i=this.ReadFromBuffer(e,t,n))+r|0))},ReadByte:function(){return this.EnsureNotClosed(),this.EnsureCanRead(),this._readPos===this._readLen&&(this._writePos>0&&this.FlushWrite(),this.EnsureBufferAllocated(),this._readLen=this._stream.Read(this._buffer,0,this._bufferSize),this._readPos=0),this._readPos===this._readLen?-1:this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._readPos,this._readPos=this._readPos+1|0),this._buffer)]},WriteToBuffer:function(e,t,n){var i=Math.min(this._bufferSize-this._writePos|0,n.v);i<=0||(this.EnsureBufferAllocated(),Bridge.global.System.Array.copy(e,t.v,this._buffer,this._writePos,i),this._writePos=this._writePos+i|0,n.v=n.v-i|0,t.v=t.v+i|0)},WriteToBuffer$1:function(e,t,n,i){try{i.v=null,this.WriteToBuffer(e,t,n)}catch(e){e=Bridge.global.System.Exception.create(e),i.v=e}},Write:function(e,t,n){if(t={v:t},n={v:n},null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("array");if(t.v<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n.v<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t.v|0)0){if(i<=(this._bufferSize+this._bufferSize|0)&&i<=Bridge.global.System.IO.BufferedStream.MaxShadowBufferSize)return this.EnsureShadowBufferAllocated(),Bridge.global.System.Array.copy(e,t.v,this._buffer,this._writePos,n.v),this._stream.Write(this._buffer,0,i),void(this._writePos=0);this._stream.Write(this._buffer,0,this._writePos),this._writePos=0}this._stream.Write(e,t.v,n.v)}},WriteByte:function(e){this.EnsureNotClosed(),0===this._writePos&&(this.EnsureCanWrite(),this.ClearReadBufferBeforeWrite(),this.EnsureBufferAllocated()),this._writePos>=(this._bufferSize-1|0)&&this.FlushWrite(),this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._writePos,this._writePos=this._writePos+1|0),this._buffer)]=e},Seek:function(e,t){if(this.EnsureNotClosed(),this.EnsureCanSeek(),this._writePos>0)return this.FlushWrite(),this._stream.Seek(e,t);(this._readLen-this._readPos|0)>0&&1===t&&(e=e.sub(Bridge.global.System.Int64(this._readLen-this._readPos|0)));var n=this.Position,i=this._stream.Seek(e,t);return this._readPos=Bridge.global.System.Int64.clip32(i.sub(n.sub(Bridge.global.System.Int64(this._readPos)))),0<=this._readPos&&this._readPos0;)0===(s=a.Read(t,n,r))&&Bridge.global.System.IO.__Error.EndOfFile(),n=n+s|0,r=r-s|0}finally{Bridge.hasValue(a)&&a.System$IDisposable$Dispose()}return t},ReadAllLines:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Argument_EmptyPath");return Bridge.global.System.IO.File.InternalReadAllLines(e,Bridge.global.System.Text.Encoding.UTF8)},ReadAllLines$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("encoding");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor1("Argument_EmptyPath");return Bridge.global.System.IO.File.InternalReadAllLines(e,t)},InternalReadAllLines:function(e,t){var n,i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),r=new Bridge.global.System.IO.StreamReader.$ctor9(e,t);try{for(;null!=(n=r.ReadLine());)i.add(n)}finally{Bridge.hasValue(r)&&r.System$IDisposable$Dispose()}return i.ToArray()},ReadLines:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor3("Argument_EmptyPath","path");return Bridge.global.System.IO.ReadLinesIterator.CreateIterator(e,Bridge.global.System.Text.Encoding.UTF8)},ReadLines$1:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("path");if(null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1("encoding");if(0===e.length)throw new Bridge.global.System.ArgumentException.$ctor3("Argument_EmptyPath","path");return Bridge.global.System.IO.ReadLinesIterator.CreateIterator(e,t)}}}}),Bridge.define("System.IO.FileMode",{$kind:"enum",statics:{fields:{CreateNew:1,Create:2,Open:3,OpenOrCreate:4,Truncate:5,Append:6}}}),Bridge.define("System.IO.FileOptions",{$kind:"enum",statics:{fields:{None:0,WriteThrough:-2147483648,Asynchronous:1073741824,RandomAccess:268435456,DeleteOnClose:67108864,SequentialScan:134217728,Encrypted:16384}},$flags:!0}),Bridge.define("System.IO.FileShare",{$kind:"enum",statics:{fields:{None:0,Read:1,Write:2,ReadWrite:3,Delete:4,Inheritable:16}},$flags:!0}),Bridge.define("System.IO.FileStream",{inherits:[Bridge.global.System.IO.Stream],statics:{methods:{FromFile:function(e){var t=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,n=new FileReader;return n.onload=function(){t.setResult(new Bridge.global.System.IO.FileStream.ctor(n.result,e.name))},n.onerror=function(e){t.setException(new Bridge.global.System.SystemException.$ctor1(Bridge.unbox(e).target.error.As()))},n.readAsArrayBuffer(e),t.task},ReadBytes:function(e){var t,i,r,s;if(Bridge.isNode)return t=n(4),Bridge.cast(t.readFileSync(e),ArrayBuffer);if((i=new XMLHttpRequest).open("GET",e,!1),i.overrideMimeType("text/plain; charset=x-user-defined"),i.send(null),200!==i.status)throw new Bridge.global.System.IO.IOException.$ctor1(Bridge.global.System.String.concat("Status of request to "+(e||"")+" returned status: ",i.status));return r=i.responseText,s=new Uint8Array(r.length),Bridge.global.System.String.toCharArray(r,0,r.length).forEach(function(e,t){var n;return n=255&e,s[t]=n,n}),s.buffer},ReadBytesAsync:function(e){var t,i=new Bridge.global.System.Threading.Tasks.TaskCompletionSource;return Bridge.isNode?n(4).readFile(e,function(e,t){if(null!=e)throw new Bridge.global.System.IO.IOException.ctor;i.setResult(t)}):((t=new XMLHttpRequest).open("GET",e,!0),t.overrideMimeType("text/plain; charset=binary-data"),t.send(null),t.onreadystatechange=function(){if(4===t.readyState){if(200!==t.status)throw new Bridge.global.System.IO.IOException.$ctor1(Bridge.global.System.String.concat("Status of request to "+(e||"")+" returned status: ",t.status));var n=t.responseText,r=new Uint8Array(n.length);Bridge.global.System.String.toCharArray(n,0,n.length).forEach(function(e,t){var n;return n=255&e,r[t]=n,n}),i.setResult(r.buffer)}}),i.task}}},fields:{name:null,_buffer:null},props:{CanRead:{get:function(){return!0}},CanWrite:{get:function(){return!1}},CanSeek:{get:function(){return!1}},IsAsync:{get:function(){return!1}},Name:{get:function(){return this.name}},Length:{get:function(){return Bridge.global.System.Int64(this.GetInternalBuffer().byteLength)}},Position:Bridge.global.System.Int64(0)},ctors:{$ctor1:function(e){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),this.name=e},ctor:function(e,t){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),this._buffer=e,this.name=t}},methods:{Flush:function(){},Seek:function(){throw new Bridge.global.System.NotImplementedException.ctor},SetLength:function(){throw new Bridge.global.System.NotImplementedException.ctor},Write:function(){throw new Bridge.global.System.NotImplementedException.ctor},GetInternalBuffer:function(){return null==this._buffer&&(this._buffer=Bridge.global.System.IO.FileStream.ReadBytes(this.name)),this._buffer},EnsureBufferAsync:function(){var e,t,n,i=0,r=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,s=Bridge.fn.bind(this,function(){try{for(;;)switch(i=Bridge.global.System.Array.min([0,1,2,3],i)){case 0:if(null==this._buffer){i=1;continue}i=3;continue;case 1:return e=Bridge.global.System.IO.FileStream.ReadBytesAsync(this.name),i=2,void e.continueWith(s);case 2:t=e.getAwaitedResult(),this._buffer=t,i=3;continue;case 3:default:return void r.setResult(null)}}catch(e){n=Bridge.global.System.Exception.create(e),r.setException(n)}},arguments);return s(),r.task},Read:function(e,t,n){var i,r,s,a,l;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("offset");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0){var t=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte);this._length>0&&Bridge.global.System.Array.copy(this._buffer,0,t,0,this._length),this._buffer=t}else this._buffer=null;this._capacity=e}}},Length:{get:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),Bridge.global.System.Int64(this._length-this._origin)}},Position:{get:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),Bridge.global.System.Int64(this._position-this._origin)},set:function(e){if(e.lt(Bridge.global.System.Int64(0)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","ArgumentOutOfRange_NeedNonNegNum");if(this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.gt(Bridge.global.System.Int64(Bridge.global.System.IO.MemoryStream.MemStreamMaxLength)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("value","ArgumentOutOfRange_StreamLength");this._position=this._origin+Bridge.global.System.Int64.clip32(e)|0}}},ctors:{ctor:function(){Bridge.global.System.IO.MemoryStream.$ctor6.call(this,0)},$ctor6:function(e){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("capacity","ArgumentOutOfRange_NegativeCapacity");this._buffer=Bridge.global.System.Array.init(e,0,Bridge.global.System.Byte),this._capacity=e,this._expandable=!0,this._writable=!0,this._exposable=!0,this._origin=0,this._isOpen=!0},$ctor1:function(e){Bridge.global.System.IO.MemoryStream.$ctor2.call(this,e,!0)},$ctor2:function(e,t){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");this._buffer=e,this._length=this._capacity=e.length,this._writable=t,this._exposable=!1,this._origin=0,this._isOpen=!0},$ctor3:function(e,t,n){Bridge.global.System.IO.MemoryStream.$ctor5.call(this,e,t,n,!0,!1)},$ctor4:function(e,t,n,i){Bridge.global.System.IO.MemoryStream.$ctor5.call(this,e,t,n,i,!1)},$ctor5:function(e,t,n,i,r){if(this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)this._capacity){var t=e;return t<256&&(t=256),t>>0>2147483591&&(t=e>2147483591?e:2147483591),this.Capacity=t,!0}return!1},Flush:function(){},GetBuffer:function(){if(!this._exposable)throw new Bridge.global.System.Exception("UnauthorizedAccess_MemStreamBuffer");return this._buffer},TryGetBuffer:function(e){return this._exposable?(e.v=new Bridge.global.System.ArraySegment(this._buffer,this._origin,this._length-this._origin|0),!0):(e.v=Bridge.getDefaultValue(Bridge.global.System.ArraySegment),!1)},InternalGetBuffer:function(){return this._buffer},InternalGetPosition:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this._position},InternalReadInt32:function(){this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed();var e=this._position=this._position+4|0;return e>this._length&&(this._position=this._length,Bridge.global.System.IO.__Error.EndOfFile()),this._buffer[Bridge.global.System.Array.index(e-4|0,this._buffer)]|this._buffer[Bridge.global.System.Array.index(e-3|0,this._buffer)]<<8|this._buffer[Bridge.global.System.Array.index(e-2|0,this._buffer)]<<16|this._buffer[Bridge.global.System.Array.index(e-1|0,this._buffer)]<<24},InternalEmulateRead:function(e){this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed();var t=this._length-this._position|0;return t>e&&(t=e),t<0&&(t=0),this._position=this._position+t|0,t},Read:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)n&&(i=n),i<=0)return 0;if(i<=8)for(r=i;(r=r-1|0)>=0;)e[Bridge.global.System.Array.index(t+r|0,e)]=this._buffer[Bridge.global.System.Array.index(this._position+r|0,this._buffer)];else Bridge.global.System.Array.copy(this._buffer,this._position,e,t,i);return this._position=this._position+i|0,i},ReadByte:function(){return this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this._position>=this._length?-1:this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._position,this._position=this._position+1|0),this._buffer)]},Seek:function(e,t){var n,i,r;if(this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.gt(Bridge.global.System.Int64(Bridge.global.System.IO.MemoryStream.MemStreamMaxLength)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_StreamLength");switch(t){case 0:if(n=this._origin+Bridge.global.System.Int64.clip32(e)|0,e.lt(Bridge.global.System.Int64(0))||nthis._length&&Bridge.global.System.Array.fill(this._buffer,0,this._length,t-this._length|0),this._length=t,this._position>t&&(this._position=t)},ToArray:function(){var e=Bridge.global.System.Array.init(this._length-this._origin|0,0,Bridge.global.System.Byte);return Bridge.global.System.Array.copy(this._buffer,this._origin,e,0,this._length-this._origin|0),e},Write:function(e,t,n){var i,r,s;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("offset","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)this._length&&(r=this._position>this._length,i>this._capacity&&this.EnsureCapacity(i)&&(r=!1),r&&Bridge.global.System.Array.fill(this._buffer,0,this._length,i-this._length|0),this._length=i),n<=8&&!Bridge.referenceEquals(e,this._buffer))for(s=n;(s=s-1|0)>=0;)this._buffer[Bridge.global.System.Array.index(this._position+s|0,this._buffer)]=e[Bridge.global.System.Array.index(t+s|0,e)];else Bridge.global.System.Array.copy(e,t,this._buffer,this._position,n);this._position=i},WriteByte:function(e){var t,n;this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),this.EnsureWriteable(),this._position>=this._length&&(t=this._position+1|0,n=this._position>this._length,t>=this._capacity&&this.EnsureCapacity(t)&&(n=!1),n&&Bridge.global.System.Array.fill(this._buffer,0,this._length,this._position-this._length|0),this._length=t),this._buffer[Bridge.global.System.Array.index(Bridge.identity(this._position,this._position=this._position+1|0),this._buffer)]=e},WriteTo:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("stream","ArgumentNull_Stream");this._isOpen||Bridge.global.System.IO.__Error.StreamIsClosed(),e.Write(this._buffer,this._origin,this._length-this._origin|0)}}}),Bridge.define("System.IO.ReadLinesIterator",{inherits:[Bridge.global.System.IO.Iterator$1(Bridge.global.System.String)],statics:{methods:{CreateIterator:function(e,t){return Bridge.global.System.IO.ReadLinesIterator.CreateIterator$1(e,t,null)},CreateIterator$1:function(e,t,n){return new Bridge.global.System.IO.ReadLinesIterator(e,t,n||new Bridge.global.System.IO.StreamReader.$ctor9(e,t))}}},fields:{_path:null,_encoding:null,_reader:null},alias:["moveNext","System$Collections$IEnumerator$moveNext"],ctors:{ctor:function(e,t,n){this.$initialize(),Bridge.global.System.IO.Iterator$1(Bridge.global.System.String).ctor.call(this),this._path=e,this._encoding=t,this._reader=n}},methods:{moveNext:function(){if(null!=this._reader){if(this.current=this._reader.ReadLine(),null!=this.current)return!0;this.Dispose()}return!1},Clone:function(){return Bridge.global.System.IO.ReadLinesIterator.CreateIterator$1(this._path,this._encoding,this._reader)},Dispose$1:function(e){try{e&&null!=this._reader&&this._reader.Dispose()}finally{this._reader=null,Bridge.global.System.IO.Iterator$1(Bridge.global.System.String).prototype.Dispose$1.call(this,e)}}}}),Bridge.define("System.IO.SeekOrigin",{$kind:"enum",statics:{fields:{Begin:0,Current:1,End:2}}}),Bridge.define("System.IO.Stream.NullStream",{inherits:[Bridge.global.System.IO.Stream],$kind:"nested class",props:{CanRead:{get:function(){return!0}},CanWrite:{get:function(){return!0}},CanSeek:{get:function(){return!0}},Length:{get:function(){return Bridge.global.System.Int64(0)}},Position:{get:function(){return Bridge.global.System.Int64(0)},set:function(){}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.Stream.ctor.call(this)}},methods:{Dispose$1:function(){},Flush:function(){},BeginRead:function(e,t,n,i,r){return this.CanRead||Bridge.global.System.IO.__Error.ReadNotSupported(),this.BlockingBeginRead(e,t,n,i,r)},EndRead:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");return Bridge.global.System.IO.Stream.BlockingEndRead(e)},BeginWrite:function(e,t,n,i,r){return this.CanWrite||Bridge.global.System.IO.__Error.WriteNotSupported(),this.BlockingBeginWrite(e,t,n,i,r)},EndWrite:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("asyncResult");Bridge.global.System.IO.Stream.BlockingEndWrite(e)},Read:function(){return 0},ReadByte:function(){return-1},Write:function(){},WriteByte:function(){},Seek:function(){return Bridge.global.System.Int64(0)},SetLength:function(){}}}),Bridge.define("System.IO.Stream.SynchronousAsyncResult",{inherits:[Bridge.global.System.IAsyncResult],$kind:"nested class",statics:{methods:{EndRead:function(e){var t=Bridge.as(e,Bridge.global.System.IO.Stream.SynchronousAsyncResult);return(null==t||t._isWrite)&&Bridge.global.System.IO.__Error.WrongAsyncResult(),t._endXxxCalled&&Bridge.global.System.IO.__Error.EndReadCalledTwice(),t._endXxxCalled=!0,t.ThrowIfError(),t._bytesRead},EndWrite:function(e){var t=Bridge.as(e,Bridge.global.System.IO.Stream.SynchronousAsyncResult);null!=t&&t._isWrite||Bridge.global.System.IO.__Error.WrongAsyncResult(),t._endXxxCalled&&Bridge.global.System.IO.__Error.EndWriteCalledTwice(),t._endXxxCalled=!0,t.ThrowIfError()}}},fields:{_stateObject:null,_isWrite:!1,_exceptionInfo:null,_endXxxCalled:!1,_bytesRead:0},props:{IsCompleted:{get:function(){return!0}},AsyncState:{get:function(){return this._stateObject}},CompletedSynchronously:{get:function(){return!0}}},alias:["IsCompleted","System$IAsyncResult$IsCompleted","AsyncState","System$IAsyncResult$AsyncState","CompletedSynchronously","System$IAsyncResult$CompletedSynchronously"],ctors:{$ctor1:function(e,t){this.$initialize(),this._bytesRead=e,this._stateObject=t},$ctor2:function(e){this.$initialize(),this._stateObject=e,this._isWrite=!0},ctor:function(e,t,n){this.$initialize(),this._exceptionInfo=e,this._stateObject=t,this._isWrite=n}},methods:{ThrowIfError:function(){if(null!=this._exceptionInfo)throw this._exceptionInfo}}}),Bridge.define("System.IO.TextReader",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null},ctors:{init:function(){this.Null=new Bridge.global.System.IO.TextReader.NullTextReader}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("reader");return e}}},alias:["Dispose","System$IDisposable$Dispose"],ctors:{ctor:function(){this.$initialize()}},methods:{Close:function(){this.Dispose$1(!0)},Dispose:function(){this.Dispose$1(!0)},Dispose$1:function(){},Peek:function(){return-1},Read:function(){return-1},Read$1:function(e,t,n){var i,r;if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&r0?t.toString():null}}}),Bridge.define("System.IO.StreamReader",{inherits:[Bridge.global.System.IO.TextReader],statics:{fields:{Null:null,DefaultFileStreamBufferSize:0,MinBufferSize:0},props:{DefaultBufferSize:{get:function(){return 1024}}},ctors:{init:function(){this.Null=new Bridge.global.System.IO.StreamReader.NullStreamReader,this.DefaultFileStreamBufferSize=4096,this.MinBufferSize=128}}},fields:{stream:null,encoding:null,byteBuffer:null,charBuffer:null,charPos:0,charLen:0,byteLen:0,bytePos:0,_maxCharsPerBuffer:0,_detectEncoding:!1,_isBlocked:!1,_closable:!1},props:{CurrentEncoding:{get:function(){return this.encoding}},BaseStream:{get:function(){return this.stream}},LeaveOpen:{get:function(){return!this._closable}},EndOfStream:{get:function(){return null==this.stream&&Bridge.global.System.IO.__Error.ReaderClosed(),!(this.charPos0&&(0==(s=this.charLen-this.charPos|0)&&(s=this.ReadBuffer$1(e,t+i|0,n,r)),0!==s)&&(s>n&&(s=n),r.v||(Bridge.global.System.Array.copy(this.charBuffer,this.charPos,e,t+i|0,s),this.charPos=this.charPos+s|0),i=i+s|0,n=n-s|0,!this._isBlocked););return i},ReadToEndAsync:function(){var e,t,n,i,r=0,s=new Bridge.global.System.Threading.Tasks.TaskCompletionSource,a=Bridge.fn.bind(this,function(){try{for(;;)switch(r=Bridge.global.System.Array.min([0,1,2,3,4],r)){case 0:if(Bridge.is(this.stream,Bridge.global.System.IO.FileStream)){r=1;continue}r=3;continue;case 1:return e=this.stream.EnsureBufferAsync(),r=2,void e.continueWith(a);case 2:e.getAwaitedResult(),r=3;continue;case 3:return t=Bridge.global.System.IO.TextReader.prototype.ReadToEndAsync.call(this),r=4,void t.continueWith(a);case 4:return n=t.getAwaitedResult(),void s.setResult(n);default:return void s.setResult(null)}}catch(e){i=Bridge.global.System.Exception.create(e),s.setException(i)}},arguments);return a(),s.task},ReadToEnd:function(){null==this.stream&&Bridge.global.System.IO.__Error.ReaderClosed();var e=new Bridge.global.System.Text.StringBuilder("",this.charLen-this.charPos|0);do{e.append(Bridge.global.System.String.fromCharArray(this.charBuffer,this.charPos,this.charLen-this.charPos|0)),this.charPos=this.charLen,this.ReadBuffer()}while(this.charLen>0);return e.toString()},ReadBlock:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0||n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1(t<0?"index":"count");if((e.length-t|0)=3&&239===this.byteBuffer[Bridge.global.System.Array.index(0,this.byteBuffer)]&&187===this.byteBuffer[Bridge.global.System.Array.index(1,this.byteBuffer)]&&191===this.byteBuffer[Bridge.global.System.Array.index(2,this.byteBuffer)]?(this.encoding=Bridge.global.System.Text.Encoding.UTF8,this.CompressBuffer(3),e=!0):this.byteLen>=4&&0===this.byteBuffer[Bridge.global.System.Array.index(0,this.byteBuffer)]&&0===this.byteBuffer[Bridge.global.System.Array.index(1,this.byteBuffer)]&&254===this.byteBuffer[Bridge.global.System.Array.index(2,this.byteBuffer)]&&255===this.byteBuffer[Bridge.global.System.Array.index(3,this.byteBuffer)]?(this.encoding=new Bridge.global.System.Text.UTF32Encoding.$ctor1(!0,!0),this.CompressBuffer(4),e=!0):2===this.byteLen&&(this._detectEncoding=!0),e&&(this._maxCharsPerBuffer=this.encoding.GetMaxCharCount(this.byteBuffer.length),this.charBuffer=Bridge.global.System.Array.init(this._maxCharsPerBuffer,0,Bridge.global.System.Char))}},IsPreamble:function(){return!1},ReadBuffer:function(){this.charLen=0,this.charPos=0,this.byteLen=0;do{if(this.byteLen=this.stream.Read(this.byteBuffer,0,this.byteBuffer.length),0===this.byteLen)return this.charLen;this._isBlocked=this.byteLen=2&&this.DetectEncoding(),this.charLen=this.charLen+this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,this.charBuffer,this.charLen)|0)}while(0===this.charLen);return this.charLen},ReadBuffer$1:function(e,t,n,i){this.charLen=0,this.charPos=0,this.byteLen=0;var r=0;i.v=n>=this._maxCharsPerBuffer;do{if(this.byteLen=this.stream.Read(this.byteBuffer,0,this.byteBuffer.length),0===this.byteLen)break;this._isBlocked=this.byteLen=2&&(this.DetectEncoding(),i.v=n>=this._maxCharsPerBuffer),this.charPos=0,i.v?(r=r+this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,e,t+r|0)|0,this.charLen=0):(r=this.encoding.GetChars$2(this.byteBuffer,0,this.byteLen,this.charBuffer,r),this.charLen=this.charLen+r|0))}while(0===r);return this._isBlocked=!!(this._isBlocked&r0)&&10===this.charBuffer[Bridge.global.System.Array.index(this.charPos,this.charBuffer)]&&(this.charPos=this.charPos+1|0),i;t=t+1|0}while(t0);return e.toString()}}}),Bridge.define("System.IO.StreamReader.NullStreamReader",{inherits:[Bridge.global.System.IO.StreamReader],$kind:"nested class",props:{BaseStream:{get:function(){return Bridge.global.System.IO.Stream.Null}},CurrentEncoding:{get:function(){return Bridge.global.System.Text.Encoding.Unicode}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.IO.StreamReader.ctor.call(this),this.Init(Bridge.global.System.IO.Stream.Null)}},methods:{Dispose$1:function(){},Peek:function(){return-1},Read:function(){return-1},Read$1:function(){return 0},ReadLine:function(){return null},ReadToEnd:function(){return""},ReadBuffer:function(){return 0}}}),Bridge.define("System.IO.TextWriter",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{Null:null,InitialNewLine:null},ctors:{init:function(){this.Null=new Bridge.global.System.IO.TextWriter.NullTextWriter,this.InitialNewLine="\\r\\n"}},methods:{Synchronized:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("writer");return e}}},fields:{CoreNewLine:null,InternalFormatProvider:null},props:{FormatProvider:{get:function(){return null==this.InternalFormatProvider?Bridge.global.System.Globalization.CultureInfo.getCurrentCulture():this.InternalFormatProvider}},NewLine:{get:function(){return Bridge.global.System.String.fromCharArray(this.CoreNewLine)},set:function(e){null==e&&(e=Bridge.global.System.IO.TextWriter.InitialNewLine),this.CoreNewLine=Bridge.global.System.String.toCharArray(e,0,e.length)}}},alias:["Dispose","System$IDisposable$Dispose"],ctors:{init:function(){this.CoreNewLine=Bridge.global.System.Array.init([13,10],Bridge.global.System.Char)},ctor:function(){this.$initialize(),this.InternalFormatProvider=null},$ctor1:function(e){this.$initialize(),this.InternalFormatProvider=e}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(){},Dispose:function(){this.Dispose$1(!0)},Flush:function(){},Write$1:function(){},Write$2:function(e){null!=e&&this.Write$3(e,0,e.length)},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&this.stream.Write(this.byteBuffer,0,n),e&&this.stream.Flush()}},Write$1:function(e){this.charPos===this.charLen&&this.Flush$1(!1,!1),this.charBuffer[Bridge.global.System.Array.index(this.charPos,this.charBuffer)]=e,this.charPos=this.charPos+1|0,this.autoFlush&&this.Flush$1(!0,!1)},Write$2:function(e){var t,n,i;if(null!=e){for(t=0,n=e.length;n>0;)this.charPos===this.charLen&&this.Flush$1(!1,!1),(i=this.charLen-this.charPos|0)>n&&(i=n),Bridge.global.System.Array.copy(e,t,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,t=t+i|0,n=n-i|0;this.autoFlush&&this.Flush$1(!0,!1)}},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor3("buffer","ArgumentNull_Buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("index","ArgumentOutOfRange_NeedNonNegNum");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("count","ArgumentOutOfRange_NeedNonNegNum");if((e.length-t|0)0;){this.charPos===this.charLen&&this.Flush$1(!1,!1);var i=this.charLen-this.charPos|0;i>n&&(i=n),Bridge.global.System.Array.copy(e,t,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,t=t+i|0,n=n-i|0}this.autoFlush&&this.Flush$1(!0,!1)},Write$10:function(e){var t,n,i;if(null!=e){for(t=e.length,n=0;t>0;)this.charPos===this.charLen&&this.Flush$1(!1,!1),(i=this.charLen-this.charPos|0)>t&&(i=t),Bridge.global.System.String.copyTo(e,n,this.charBuffer,this.charPos,i),this.charPos=this.charPos+i|0,n=n+i|0,t=t-i|0;this.autoFlush&&this.Flush$1(!0,!1)}}}}),Bridge.define("System.IO.StringReader",{inherits:[Bridge.global.System.IO.TextReader],fields:{_s:null,_pos:0,_length:0},ctors:{ctor:function(e){if(this.$initialize(),Bridge.global.System.IO.TextReader.ctor.call(this),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("s");this._s=e,this._length=null==e?0:e.length}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(e){this._s=null,this._pos=0,this._length=0,Bridge.global.System.IO.TextReader.prototype.Dispose$1.call(this,e)},Peek:function(){return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),this._pos===this._length?-1:this._s.charCodeAt(this._pos)},Read:function(){return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),this._pos===this._length?-1:this._s.charCodeAt(Bridge.identity(this._pos,this._pos=this._pos+1|0))},Read$1:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&(i>n&&(i=n),Bridge.global.System.String.copyTo(this._s,this._pos,e,t,i),this._pos=this._pos+i|0),i},ReadToEnd:function(){var e;return null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),e=0===this._pos?this._s:this._s.substr(this._pos,this._length-this._pos|0),this._pos=this._length,e},ReadLine:function(){var e,t,n,i;for(null==this._s&&Bridge.global.System.IO.__Error.ReaderClosed(),e=this._pos;ethis._pos?(i=this._s.substr(this._pos,e-this._pos|0),this._pos=e,i):null}}}),Bridge.define("System.IO.StringWriter",{inherits:[Bridge.global.System.IO.TextWriter],statics:{fields:{m_encoding:null}},fields:{_sb:null,_isOpen:!1},props:{Encoding:{get:function(){return null==Bridge.global.System.IO.StringWriter.m_encoding&&(Bridge.global.System.IO.StringWriter.m_encoding=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!1)),Bridge.global.System.IO.StringWriter.m_encoding}}},ctors:{ctor:function(){Bridge.global.System.IO.StringWriter.$ctor3.call(this,new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())},$ctor1:function(e){Bridge.global.System.IO.StringWriter.$ctor3.call(this,new Bridge.global.System.Text.StringBuilder,e)},$ctor2:function(e){Bridge.global.System.IO.StringWriter.$ctor3.call(this,e,Bridge.global.System.Globalization.CultureInfo.getCurrentCulture())},$ctor3:function(e,t){if(this.$initialize(),Bridge.global.System.IO.TextWriter.$ctor1.call(this,t),null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("sb");this._sb=e,this._isOpen=!0}},methods:{Close:function(){this.Dispose$1(!0)},Dispose$1:function(e){this._isOpen=!1,Bridge.global.System.IO.TextWriter.prototype.Dispose$1.call(this,e)},GetStringBuilder:function(){return this._sb},Write$1:function(e){this._isOpen||Bridge.global.System.IO.__Error.WriterClosed(),this._sb.append(String.fromCharCode(e))},Write$3:function(e,t,n){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("index");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("count");if((e.length-t|0)0&&42===n.charCodeAt(n.length-1|0)?(n=n.substr(0,n.length-1|0),Bridge.global.System.String.startsWith(Bridge.Reflection.getTypeName(e),n,4)):Bridge.global.System.String.equals(Bridge.Reflection.getTypeName(e),n)},FilterTypeNameIgnoreCaseImpl:function(e,t){var n,i,r;if(null==t||!Bridge.is(t,Bridge.global.System.String))throw new Bridge.global.System.Reflection.InvalidFilterCriteriaException.$ctor1("A String must be provided for the filter criteria.");return(i=Bridge.cast(t,Bridge.global.System.String)).length>0&&42===i.charCodeAt(i.length-1|0)?(i=i.substr(0,i.length-1|0),(r=Bridge.Reflection.getTypeName(e)).length>=i.length&&0===(n=i.length,Bridge.global.System.String.compare(r.substr(0,n),i.substr(0,n),5))):0===Bridge.global.System.String.compare(i,Bridge.Reflection.getTypeName(e),5)},op_Equality:function(e,t){return!!Bridge.referenceEquals(e,t)||null!=e&&null!=t&&e.equals(t)},op_Inequality:function(e,t){return!Bridge.global.System.Reflection.Module.op_Equality(e,t)}}},props:{Assembly:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},FullyQualifiedName:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},Name:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},MDStreamVersion:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},ModuleVersionId:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},ScopeName:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}},MetadataToken:{get:function(){throw Bridge.global.System.NotImplemented.ByDesign}}},alias:["IsDefined","System$Reflection$ICustomAttributeProvider$IsDefined","GetCustomAttributes","System$Reflection$ICustomAttributeProvider$GetCustomAttributes","GetCustomAttributes$1","System$Reflection$ICustomAttributeProvider$GetCustomAttributes$1"],ctors:{ctor:function(){this.$initialize()}},methods:{IsResource:function(){throw Bridge.global.System.NotImplemented.ByDesign},IsDefined:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetCustomAttributes:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetCustomAttributes$1:function(){throw Bridge.global.System.NotImplemented.ByDesign},GetMethod:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");return this.GetMethodImpl(e,Bridge.global.System.Reflection.Module.DefaultLookup,null,3,null,null)},GetMethod$2:function(e,t){return this.GetMethod$1(e,Bridge.global.System.Reflection.Module.DefaultLookup,null,3,t,null)},GetMethod$1:function(e,t,n,i,r,s){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("name");if(null==r)throw new Bridge.global.System.ArgumentNullException.$ctor1("types");for(var a=0;a=56&&(t=1),(n=n+1|0)>=56&&(n=1),(e=this.SeedArray[Bridge.global.System.Array.index(t,this.SeedArray)]-this.SeedArray[Bridge.global.System.Array.index(n,this.SeedArray)]|0)===Bridge.global.System.Random.MBIG&&(e=e-1|0),e<0&&(e=e+Bridge.global.System.Random.MBIG|0),this.SeedArray[Bridge.global.System.Array.index(t,this.SeedArray)]=e,this.inext=t,this.inextp=n,e},Next:function(){return this.InternalSample()},Next$2:function(e,t){if(e>t)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minValue","\'minValue\' cannot be greater than maxValue.");var n=Bridge.global.System.Int64(t).sub(Bridge.global.System.Int64(e));return n.lte(Bridge.global.System.Int64(2147483647))?Bridge.Int.clip32(this.Sample()*Bridge.global.System.Int64.toNumber(n))+e|0:Bridge.global.System.Int64.clip32(Bridge.Int.clip64(this.GetSampleForLargeRange()*Bridge.global.System.Int64.toNumber(n)).add(Bridge.global.System.Int64(e)))},Next$1:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("maxValue","\'maxValue\' must be greater than zero.");return Bridge.Int.clip32(this.Sample()*e)},GetSampleForLargeRange:function(){var e,t=this.InternalSample();return this.InternalSample()%2==0&&(t=0|-t),e=t,(e+=2147483646)/4294967293},NextDouble:function(){return this.Sample()},NextBytes:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("buffer");for(var t=0;t0?this.innerExceptions.getItem(0):null)},handle:function(e){var t,n,i;if(!Bridge.hasValue(e))throw new Bridge.global.System.ArgumentNullException.$ctor1("predicate");for(t=this.innerExceptions.Count,n=[],i=0;i0)throw new Bridge.global.System.AggregateException(this.Message,n)},getBaseException:function(){for(var e=this,t=this;null!=t&&1===t.innerExceptions.Count;)e=e.InnerException,t=Bridge.as(e,Bridge.global.System.AggregateException);return e},flatten:function(){var e,t,n,i,r,s,a=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Exception)),l=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.AggregateException));for(l.add(this),e=0;l.Count>e;)for(n=(t=l.getItem(e++).innerExceptions).Count,i=0;i",Bridge.global.System.ThrowHelper.GetResourceString(Bridge.global.System.ExceptionResource.MemoryDisposed))},ThrowAggregateException:function(e){throw new Bridge.global.System.AggregateException(null,e)},ThrowOutOfMemoryException:function(){throw new Bridge.global.System.OutOfMemoryException.ctor},ThrowArgumentException_Argument_InvalidArrayType:function(){throw Bridge.global.System.ThrowHelper.GetArgumentException(Bridge.global.System.ExceptionResource.Argument_InvalidArrayType)},ThrowInvalidOperationException_InvalidOperation_EnumNotStarted:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumNotStarted)},ThrowInvalidOperationException_InvalidOperation_EnumEnded:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumEnded)},ThrowInvalidOperationException_EnumCurrent:function(e){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException_EnumCurrent(e)},ThrowInvalidOperationException_InvalidOperation_EnumFailedVersion:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumFailedVersion)},ThrowInvalidOperationException_InvalidOperation_EnumOpCantHappen:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_EnumOpCantHappen)},ThrowInvalidOperationException_InvalidOperation_NoValue:function(){throw Bridge.global.System.ThrowHelper.GetInvalidOperationException(Bridge.global.System.ExceptionResource.InvalidOperation_NoValue)},ThrowArraySegmentCtorValidationFailedExceptions:function(e,t,n){throw Bridge.global.System.ThrowHelper.GetArraySegmentCtorValidationFailedException(e,t,n)},GetArraySegmentCtorValidationFailedException:function(e,t,n){return null==e?Bridge.global.System.ThrowHelper.GetArgumentNullException(Bridge.global.System.ExceptionArgument.array):t<0?Bridge.global.System.ThrowHelper.GetArgumentOutOfRangeException(Bridge.global.System.ExceptionArgument.offset,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum):n<0?Bridge.global.System.ThrowHelper.GetArgumentOutOfRangeException(Bridge.global.System.ExceptionArgument.count,Bridge.global.System.ExceptionResource.ArgumentOutOfRange_NeedNonNegNum):Bridge.global.System.ThrowHelper.GetArgumentException(Bridge.global.System.ExceptionResource.Argument_InvalidOffLen)},GetArgumentException:function(e){return new Bridge.global.System.ArgumentException.$ctor1(Bridge.global.System.ThrowHelper.GetResourceString(e))},GetArgumentException$1:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.ThrowHelper.GetResourceString(e),Bridge.global.System.ThrowHelper.GetArgumentName(t))},GetInvalidOperationException:function(e){return new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.ThrowHelper.GetResourceString(e))},GetWrongKeyTypeArgumentException:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.SR.Format$1(\'The value "{0}" is not of type "{1}" and cannot be used in this generic collection.\',e,t),"key")},GetWrongValueTypeArgumentException:function(e,t){return new Bridge.global.System.ArgumentException.$ctor3(Bridge.global.System.SR.Format$1(\'The value "{0}" is not of type "{1}" and cannot be used in this generic collection.\',e,t),"value")},GetKeyNotFoundException:function(e){return new Bridge.global.System.Collections.Generic.KeyNotFoundException.$ctor1(Bridge.global.System.SR.Format("The given key \'{0}\' was not present in the dictionary.",Bridge.toString(e)))},GetArgumentOutOfRangeException:function(e,t){return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4(Bridge.global.System.ThrowHelper.GetArgumentName(e),Bridge.global.System.ThrowHelper.GetResourceString(t))},GetArgumentOutOfRangeException$1:function(e,t,n){return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4((Bridge.global.System.ThrowHelper.GetArgumentName(e)||"")+"["+(Bridge.toString(t)||"")+"]",Bridge.global.System.ThrowHelper.GetResourceString(n))},GetInvalidOperationException_EnumCurrent:function(e){return Bridge.global.System.ThrowHelper.GetInvalidOperationException(e<0?Bridge.global.System.ExceptionResource.InvalidOperation_EnumNotStarted:Bridge.global.System.ExceptionResource.InvalidOperation_EnumEnded)},IfNullAndNullsAreIllegalThenThrow:function(e,t,n){null==Bridge.getDefaultValue(e)||null!=t||Bridge.global.System.ThrowHelper.ThrowArgumentNullException(n)},GetArgumentName:function(e){return Bridge.global.System.Enum.toString(Bridge.global.System.ExceptionArgument,e)},GetResourceString:function(e){return Bridge.global.System.SR.GetResourceString(Bridge.global.System.Enum.toString(Bridge.global.System.ExceptionResource,e))},ThrowNotSupportedExceptionIfNonNumericType:function(e){if(!(Bridge.referenceEquals(e,Bridge.global.System.Byte)||Bridge.referenceEquals(e,Bridge.global.System.SByte)||Bridge.referenceEquals(e,Bridge.global.System.Int16)||Bridge.referenceEquals(e,Bridge.global.System.UInt16)||Bridge.referenceEquals(e,Bridge.global.System.Int32)||Bridge.referenceEquals(e,Bridge.global.System.UInt32)||Bridge.referenceEquals(e,Bridge.global.System.Int64)||Bridge.referenceEquals(e,Bridge.global.System.UInt64)||Bridge.referenceEquals(e,Bridge.global.System.Single)||Bridge.referenceEquals(e,Bridge.global.System.Double)))throw new Bridge.global.System.NotSupportedException.$ctor1("Specified type is not supported")}}}}),Bridge.define("System.TimeoutException",{inherits:[Bridge.global.System.SystemException],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,"The operation has timed out."),this.HResult=-2146233083},$ctor1:function(e){this.$initialize(),Bridge.global.System.SystemException.$ctor1.call(this,e),this.HResult=-2146233083},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.SystemException.$ctor2.call(this,e,t),this.HResult=-2146233083}}}),Bridge.define("System.RegexMatchTimeoutException",{inherits:[Bridge.global.System.TimeoutException],_regexInput:"",_regexPattern:"",_matchTimeout:null,config:{init:function(){this._matchTimeout=Bridge.global.System.TimeSpan.fromTicks(-1)}},ctor:function(e,t,n){this.$initialize(),3==arguments.length&&(this._regexInput=e,this._regexPattern=t,this._matchTimeout=n,e="The RegEx engine has timed out while trying to match a pattern to an input string. This can occur for many reasons, including very large inputs or excessive backtracking caused by nested quantifiers, back-references and other factors.",t=null),Bridge.global.System.TimeoutException.ctor.call(this,e,t)},getPattern:function(){return this._regexPattern},getInput:function(){return this._regexInput},getMatchTimeout:function(){return this._matchTimeout}}),Bridge.define("System.Text.Encoding",{statics:{fields:{_encodings:null},props:{Default:null,Unicode:null,ASCII:null,BigEndianUnicode:null,UTF7:null,UTF8:null,UTF32:null},ctors:{init:function(){this.Default=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!0),this.Unicode=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!1,!0),this.ASCII=new Bridge.global.System.Text.ASCIIEncoding,this.BigEndianUnicode=new Bridge.global.System.Text.UnicodeEncoding.$ctor1(!0,!0),this.UTF7=new Bridge.global.System.Text.UTF7Encoding.ctor,this.UTF8=new Bridge.global.System.Text.UTF8Encoding.ctor,this.UTF32=new Bridge.global.System.Text.UTF32Encoding.$ctor1(!1,!0)}},methods:{Convert:function(e,t,n){return Bridge.global.System.Text.Encoding.Convert$1(e,t,n,0,n.length)},Convert$1:function(e,t,n,i,r){if(null==e||null==t)throw new Bridge.global.System.ArgumentNullException.$ctor1(null==e?"srcEncoding":"dstEncoding");if(null==n)throw new Bridge.global.System.ArgumentNullException.$ctor1("bytes");return t.GetBytes(e.GetChars$1(n,i,r))},GetEncoding:function(e){switch(e){case 1200:return Bridge.global.System.Text.Encoding.Unicode;case 20127:return Bridge.global.System.Text.Encoding.ASCII;case 1201:return Bridge.global.System.Text.Encoding.BigEndianUnicode;case 65e3:return Bridge.global.System.Text.Encoding.UTF7;case 65001:return Bridge.global.System.Text.Encoding.UTF8;case 12e3:return Bridge.global.System.Text.Encoding.UTF32}throw new Bridge.global.System.NotSupportedException.ctor},GetEncoding$1:function(e){switch(e){case"utf-16":return Bridge.global.System.Text.Encoding.Unicode;case"us-ascii":return Bridge.global.System.Text.Encoding.ASCII;case"utf-16BE":return Bridge.global.System.Text.Encoding.BigEndianUnicode;case"utf-7":return Bridge.global.System.Text.Encoding.UTF7;case"utf-8":return Bridge.global.System.Text.Encoding.UTF8;case"utf-32":return Bridge.global.System.Text.Encoding.UTF32}throw new Bridge.global.System.NotSupportedException.ctor},GetEncodings:function(){if(null!=Bridge.global.System.Text.Encoding._encodings)return Bridge.global.System.Text.Encoding._encodings;Bridge.global.System.Text.Encoding._encodings=Bridge.global.System.Array.init(6,null,Bridge.global.System.Text.EncodingInfo);var e=Bridge.global.System.Text.Encoding._encodings;return e[Bridge.global.System.Array.index(0,e)]=new Bridge.global.System.Text.EncodingInfo(20127,"us-ascii","US-ASCII"),e[Bridge.global.System.Array.index(1,e)]=new Bridge.global.System.Text.EncodingInfo(1200,"utf-16","Unicode"),e[Bridge.global.System.Array.index(2,e)]=new Bridge.global.System.Text.EncodingInfo(1201,"utf-16BE","Unicode (Big-Endian)"),e[Bridge.global.System.Array.index(3,e)]=new Bridge.global.System.Text.EncodingInfo(65e3,"utf-7","Unicode (UTF-7)"),e[Bridge.global.System.Array.index(4,e)]=new Bridge.global.System.Text.EncodingInfo(65001,"utf-8","Unicode (UTF-8)"),e[Bridge.global.System.Array.index(5,e)]=new Bridge.global.System.Text.EncodingInfo(1200,"utf-32","Unicode (UTF-32)"),e}}},fields:{_hasError:!1,fallbackCharacter:0},props:{CodePage:{get:function(){return 0}},EncodingName:{get:function(){return null}}},ctors:{init:function(){this.fallbackCharacter=63}},methods:{Encode$1:function(e,t,n){return this.Encode$3(Bridge.global.System.String.fromCharArray(e,t,n),null,0,{})},Encode$5:function(e,t,n,i,r){var s={};return this.Encode$3(e.substr(t,n),i,r,s),s.v},Encode$4:function(e,t,n,i,r){var s={};return this.Encode$3(Bridge.global.System.String.fromCharArray(e,t,n),i,r,s),s.v},Encode:function(e){return this.Encode$3(Bridge.global.System.String.fromCharArray(e),null,0,{})},Encode$2:function(e){return this.Encode$3(e,null,0,{})},Decode$1:function(e,t,n){return this.Decode$2(e,t,n,null,0)},Decode:function(e){return this.Decode$2(e,0,e.length,null,0)},GetByteCount:function(e){return this.GetByteCount$1(e,0,e.length)},GetByteCount$2:function(e){return this.Encode$2(e).length},GetByteCount$1:function(e,t,n){return this.Encode$1(e,t,n).length},GetBytes:function(e){return this.GetBytes$1(e,0,e.length)},GetBytes$1:function(e,t,n){return this.Encode$2(Bridge.global.System.String.fromCharArray(e,t,n))},GetBytes$3:function(e,t,n,i,r){return this.Encode$4(e,t,n,i,r)},GetBytes$2:function(e){return this.Encode$2(e)},GetBytes$4:function(e,t,n,i,r){return this.Encode$5(e,t,n,i,r)},GetCharCount:function(e){return this.Decode(e).length},GetCharCount$1:function(e,t,n){return this.Decode$1(e,t,n).length},GetChars:function(e){var t;return t=this.Decode(e),Bridge.global.System.String.toCharArray(t,0,t.length)},GetChars$1:function(e,t,n){var i;return i=this.Decode$1(e,t,n),Bridge.global.System.String.toCharArray(i,0,i.length)},GetChars$2:function(e,t,n,i,r){var s,a=this.Decode$1(e,t,n),l=Bridge.global.System.String.toCharArray(a,0,a.length);if(i.length<(l.length+r|0))throw new Bridge.global.System.ArgumentException.$ctor3(null,"chars");for(s=0;s=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(s+n|0,t)]=l}else t.push(l);r=r+1|0}return i.v=r,o?null:t},Decode$2:function(e,t,n){for(var i,r=t,s="",a=r+n|0;r127?(s||"")+String.fromCharCode(this.fallbackCharacter):(s||"")+(String.fromCharCode(i)||"");return s},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e);if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.define("System.Text.EncodingInfo",{props:{CodePage:0,Name:null,DisplayName:null},ctors:{ctor:function(e,t,n){var i;this.$initialize(),this.CodePage=e,this.Name=t,this.DisplayName=null!=(i=n)?i:t}},methods:{GetEncoding:function(){return Bridge.global.System.Text.Encoding.GetEncoding(this.CodePage)},getHashCode:function(){return this.CodePage},equals:function(e){var t=Bridge.as(e,Bridge.global.System.Text.EncodingInfo);return Bridge.global.System.Nullable.eq(this.CodePage,null!=t?t.CodePage:null)}}}),Bridge.define("System.Text.UnicodeEncoding",{inherits:[Bridge.global.System.Text.Encoding],fields:{bigEndian:!1,byteOrderMark:!1,throwOnInvalid:!1},props:{CodePage:{get:function(){return this.bigEndian?1201:1200}},EncodingName:{get:function(){return this.bigEndian?"Unicode (Big-Endian)":"Unicode"}}},ctors:{ctor:function(){Bridge.global.System.Text.UnicodeEncoding.$ctor1.call(this,!1,!0)},$ctor1:function(e,t){Bridge.global.System.Text.UnicodeEncoding.$ctor2.call(this,e,t,!1)},$ctor2:function(e,t,n){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.bigEndian=e,this.byteOrderMark=t,this.throwOnInvalid=n,this.fallbackCharacter=65533}},methods:{Encode$3:function(e,t,n,i){var r,s,a,l,o=null!=t,d=0,g=0,c=this.fallbackCharacter,m=function(e){if(o){if(n>=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=e}else t.push(e);d=d+1|0},h=function(e,t){m(e),m(t)},f=u.$.System.Text.UnicodeEncoding.f1,p=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF16 text");h(255&c,c>>8&255)});for(o||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),this.bigEndian&&(c=f(c)),r=0;r=56320&&s<=57343){this.bigEndian&&(g=f(g),s=f(s)),h(255&g,g>>8&255),h(255&s,s>>8&255),g=0;continue}p(),g=0}55296<=s&&s<=56319?g=s:56320<=s&&s<=57343?(p(),g=0):s<65536?(this.bigEndian&&(s=f(s)),h(255&s,s>>8&255)):s<=1114111?(a=65535&(1023&(s-=65536)|56320),l=65535&(s>>10&1023|55296),this.bigEndian&&(l=f(l),a=f(a)),h(255&l,l>>8&255),h(255&a,a>>8&255)):p()}return 0!==g&&p(),i.v=d,o?null:t},Decode$2:function(e,t,n){var i,r,s,a=t,l="",o=a+n|0;this._hasError=!1;for(var d=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF16 text");l=(l||"")+String.fromCharCode(this.fallbackCharacter)}),g=u.$.System.Text.UnicodeEncoding.f2,c=Bridge.fn.bind(this,function(){if((a+2|0)>o)return a=a+2|0,null;var t=65535&(e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)]<<8|e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)]);return this.bigEndian||(t=g(t)),t});a=o,s=c(),r)d(),this._hasError=!0;else if(Bridge.global.System.Nullable.hasValue(s))if(Bridge.global.System.Nullable.gte(s,56320)&&Bridge.global.System.Nullable.lte(s,57343)){var m=Bridge.global.System.Nullable.band(i,1023),h=Bridge.global.System.Nullable.band(s,1023),f=Bridge.Int.clip32(Bridge.global.System.Nullable.add(Bridge.global.System.Nullable.bor(Bridge.global.System.Nullable.sl(m,10),h),65536));l=(l||"")+(Bridge.global.System.String.fromCharCode(Bridge.global.System.Nullable.getValue(f))||"")}else d(),a=a-2|0;else d(),d();else d();else d(),this._hasError=!0;return l},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if((t=t.shl(1)).gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e>>1).add(Bridge.global.System.Int64(1&e)).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.ns("System.Text.UnicodeEncoding",u.$),Bridge.apply(u.$.System.Text.UnicodeEncoding,{f1:function(e){return 65535&((255&e)<<8|e>>8&255)},f2:function(e){return 65535&((255&e)<<8|e>>8&255)}}),Bridge.define("System.Text.UTF32Encoding",{inherits:[Bridge.global.System.Text.Encoding],fields:{bigEndian:!1,byteOrderMark:!1,throwOnInvalid:!1},props:{CodePage:{get:function(){return this.bigEndian?1201:1200}},EncodingName:{get:function(){return this.bigEndian?"Unicode (UTF-32 Big-Endian)":"Unicode (UTF-32)"}}},ctors:{ctor:function(){Bridge.global.System.Text.UTF32Encoding.$ctor2.call(this,!1,!0,!1)},$ctor1:function(e,t){Bridge.global.System.Text.UTF32Encoding.$ctor2.call(this,e,t,!1)},$ctor2:function(e,t,n){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.bigEndian=e,this.byteOrderMark=t,this.throwOnInvalid=n,this.fallbackCharacter=65533}},methods:{ToCodePoints:function(e){for(var t,n,i,r=0,s=Bridge.global.System.Array.init(0,0,Bridge.global.System.Char),a=Bridge.fn.bind(this,function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF32 text");s.push(this.fallbackCharacter)}),l=0;l=56320&&t<=57343?(n=t,i=(Bridge.Int.mul(r-55296|0,1024)+65536|0)+(n-56320|0)|0,s.push(i)):(a(),l=l-1|0),r=0):t>=55296&&t<=56319?r=t:t>=56320&&t<=57343?a():s.push(t);return 0!==r&&a(),s},Encode$3:function(e,t,n,i){var r,s,a=null!=t,l=0,o=function(e){if(a){if(n>=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=e}else t.push(e);l=l+1|0},u=Bridge.fn.bind(this,function(e){var t=Bridge.global.System.Array.init(4,0,Bridge.global.System.Byte);t[Bridge.global.System.Array.index(0,t)]=(255&e)>>>0,t[Bridge.global.System.Array.index(1,t)]=(65280&e)>>>0>>>8,t[Bridge.global.System.Array.index(2,t)]=(16711680&e)>>>0>>>16,t[Bridge.global.System.Array.index(3,t)]=(4278190080&e)>>>0>>>24,this.bigEndian&&t.reverse(),o(t[Bridge.global.System.Array.index(0,t)]),o(t[Bridge.global.System.Array.index(1,t)]),o(t[Bridge.global.System.Array.index(2,t)]),o(t[Bridge.global.System.Array.index(3,t)])});for(a||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),r=this.ToCodePoints(e),s=0;so)return a=a+4|0,null;var n=e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)],i=e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)],r=e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)],s=e[Bridge.global.System.Array.index(Bridge.identity(a,a=a+1|0),e)];return this.bigEndian&&(t=i,i=r,r=t,t=n,n=s,s=t),s<<24|r<<16|i<<8|n});a2147483647)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return t}}}),Bridge.define("System.Text.UTF7Encoding",{inherits:[Bridge.global.System.Text.Encoding],statics:{methods:{Escape:function(e){return e.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g,"\\\\$&")}}},fields:{allowOptionals:!1},props:{CodePage:{get:function(){return 65e3}},EncodingName:{get:function(){return"Unicode (UTF-7)"}}},ctors:{ctor:function(){Bridge.global.System.Text.UTF7Encoding.$ctor1.call(this,!1)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Text.Encoding.ctor.call(this),this.allowOptionals=e,this.fallbackCharacter=65533}},methods:{Encode$3:function(e,t,n,i){var r,s,a,l="A-Za-z0-9"+(Bridge.global.System.Text.UTF7Encoding.Escape("\'(),-./:?")||""),o=u.$.System.Text.UTF7Encoding.f1,d=Bridge.global.System.Text.UTF7Encoding.Escape(\'!"#$%&*;<=>@[]^_`{|}\'),g=Bridge.global.System.Text.UTF7Encoding.Escape(" \\r\\n\\t");if(e=e.replace(new RegExp("[^"+g+l+(this.allowOptionals?d:"")+"]+","g"),function(e){return"+"+("+"===e?"":o(e))+"-"}),r=Bridge.global.System.String.toCharArray(e,0,e.length),null!=t){if(s=0,r.length>(t.length-n|0))throw new Bridge.global.System.ArgumentException.$ctor1("bytes");for(a=0;a>8,n[Bridge.global.System.Array.index(Bridge.identity(i,i=i+1|0),n)]=255&t;return Bridge.global.System.Convert.toBase64String(n,null,null,null).replace(/=+$/,"")},f2:function(e){var t;try{if("undefined"==typeof window)throw new Bridge.global.System.Exception;var n=window.atob(e),i=n.length,r=Bridge.global.System.Array.init(i,0,Bridge.global.System.Char);if(1===i&&0===n.charCodeAt(0))return Bridge.global.System.Array.init(0,0,Bridge.global.System.Char);for(t=0;t=t.length)throw new Bridge.global.System.ArgumentException.$ctor1("bytes");t[Bridge.global.System.Array.index(Bridge.identity(n,n=n+1|0),t)]=i}else t.push(i);d=d+1|0}},c=Bridge.fn.bind(this,u.$.System.Text.UTF8Encoding.f1);for(o||(t=Bridge.global.System.Array.init(0,0,Bridge.global.System.Byte)),r=0;r=55296&&s<=56319?(a=e.charCodeAt(r+1|0))>=56320&&a<=57343||(s=c()):s>=56320&&s<=57343&&(s=c()),s<128?g(Bridge.global.System.Array.init([s],Bridge.global.System.Byte)):s<2048?g(Bridge.global.System.Array.init([192|s>>6,128|63&s],Bridge.global.System.Byte)):s<55296||s>=57344?g(Bridge.global.System.Array.init([224|s>>12,128|s>>6&63,128|63&s],Bridge.global.System.Byte)):(r=r+1|0,l=65536+((1023&s)<<10|1023&e.charCodeAt(r))|0,g(Bridge.global.System.Array.init([240|l>>18,128|l>>12&63,128|l>>6&63,128|63&l],Bridge.global.System.Byte)));return i.v=d,o?null:t},Decode$2:function(e,t,n){var i,r;this._hasError=!1;for(var s=t,a="",l=0,o=!1,u=s+n|0;s0;){if((s=s+1|0)>=u){c=!0;break}if(g=g-1|0,128!=(192&(i=e[Bridge.global.System.Array.index(s,e)]))){s=s-1|0,c=!0;break}d=d<<6|63&i}if(r=null,o=!1,c||(l>0&&!(d>=56320&&d<=57343)?(c=!0,l=0):d>=55296&&d<=56319?l=65535&d:d>=56320&&d<=57343?(c=!0,o=!0,l=0):(r=Bridge.global.System.String.fromCharCode(d),l=0)),c){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");a=(a||"")+String.fromCharCode(this.fallbackCharacter),this._hasError=!0}else 0===l&&(a=(a||"")+(r||""))}if(l>0||o){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");a=a.length>0&&a.charCodeAt(a.length-1|0)===this.fallbackCharacter?(a||"")+String.fromCharCode(this.fallbackCharacter):(a||"")+(this.fallbackCharacter+this.fallbackCharacter|0),this._hasError=!0}return a},GetMaxByteCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if((t=t.mul(Bridge.global.System.Int64(3))).gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("charCount");return Bridge.global.System.Int64.clip32(t)},GetMaxCharCount:function(e){if(e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");var t=Bridge.global.System.Int64(e).add(Bridge.global.System.Int64(1));if(t.gt(Bridge.global.System.Int64(2147483647)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor1("byteCount");return Bridge.global.System.Int64.clip32(t)}}}),Bridge.ns("System.Text.UTF8Encoding",u.$),Bridge.apply(u.$.System.Text.UTF8Encoding,{f1:function(){if(this.throwOnInvalid)throw new Bridge.global.System.Exception("Invalid character in UTF8 text");return this.fallbackCharacter}}),Bridge.define("System.Threading.Timer",{inherits:[Bridge.global.System.IDisposable],statics:{fields:{MAX_SUPPORTED_TIMEOUT:0,EXC_LESS:null,EXC_MORE:null,EXC_DISPOSED:null},ctors:{init:function(){this.MAX_SUPPORTED_TIMEOUT=4294967294,this.EXC_LESS="Number must be either non-negative and less than or equal to Int32.MaxValue or -1.",this.EXC_MORE="Time-out interval must be less than 2^32-2.",this.EXC_DISPOSED="The timer has been already disposed."}}},fields:{dueTime:Bridge.global.System.Int64(0),period:Bridge.global.System.Int64(0),timerCallback:null,state:null,id:null,disposed:!1},alias:["Dispose","System$IDisposable$Dispose"],ctors:{$ctor1:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,Bridge.global.System.Int64(n),Bridge.global.System.Int64(i))},$ctor3:function(e,t,n,i){this.$initialize();var r=Bridge.Int.clip64(n.getTotalMilliseconds()),s=Bridge.Int.clip64(i.getTotalMilliseconds());this.TimerSetup(e,t,r,s)},$ctor4:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,Bridge.global.System.Int64(n),Bridge.global.System.Int64(i))},$ctor2:function(e,t,n,i){this.$initialize(),this.TimerSetup(e,t,n,i)},ctor:function(e){this.$initialize(),this.TimerSetup(e,this,Bridge.global.System.Int64(-1),Bridge.global.System.Int64(-1))}},methods:{TimerSetup:function(e,t,n,i){if(this.disposed)throw new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.Threading.Timer.EXC_DISPOSED);if(Bridge.staticEquals(e,null))throw new Bridge.global.System.ArgumentNullException.$ctor1("TimerCallback");if(n.lt(Bridge.global.System.Int64(-1)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("dueTime",Bridge.global.System.Threading.Timer.EXC_LESS);if(i.lt(Bridge.global.System.Int64(-1)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("period",Bridge.global.System.Threading.Timer.EXC_LESS);if(n.gt(Bridge.global.System.Int64(Bridge.global.System.Threading.Timer.MAX_SUPPORTED_TIMEOUT)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("dueTime",Bridge.global.System.Threading.Timer.EXC_MORE);if(i.gt(Bridge.global.System.Int64(Bridge.global.System.Threading.Timer.MAX_SUPPORTED_TIMEOUT)))throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("period",Bridge.global.System.Threading.Timer.EXC_MORE);return this.dueTime=n,this.period=i,this.state=t,this.timerCallback=e,this.RunTimer(this.dueTime)},HandleCallback:function(){if(!this.disposed&&!Bridge.staticEquals(this.timerCallback,null)){var e=this.id;this.timerCallback(this.state),Bridge.global.System.Nullable.eq(this.id,e)&&this.RunTimer(this.period,!1)}},RunTimer:function(e,t){if(void 0===t&&(t=!0),t&&this.disposed)throw new Bridge.global.System.InvalidOperationException.$ctor1(Bridge.global.System.Threading.Timer.EXC_DISPOSED);if(e.ne(Bridge.global.System.Int64(-1))&&!this.disposed){var n=e.toNumber();return this.id=Bridge.global.setTimeout(Bridge.fn.cacheBind(this,this.HandleCallback),n),!0}return!1},Change:function(e,t){return this.ChangeTimer(Bridge.global.System.Int64(e),Bridge.global.System.Int64(t))},Change$2:function(e,t){return this.ChangeTimer(Bridge.Int.clip64(e.getTotalMilliseconds()),Bridge.Int.clip64(t.getTotalMilliseconds()))},Change$3:function(e,t){return this.ChangeTimer(Bridge.global.System.Int64(e),Bridge.global.System.Int64(t))},Change$1:function(e,t){return this.ChangeTimer(e,t)},ChangeTimer:function(e,t){return this.ClearTimeout(),this.TimerSetup(this.timerCallback,this.state,e,t)},ClearTimeout:function(){Bridge.global.System.Nullable.hasValue(this.id)&&(Bridge.global.clearTimeout(Bridge.global.System.Nullable.getValue(this.id)),this.id=null)},Dispose:function(){this.ClearTimeout(),this.disposed=!0}}}),Bridge.define("System.Threading.Tasks.TaskCanceledException",{inherits:[Bridge.global.System.OperationCanceledException],fields:{_canceledTask:null},props:{Task:{get:function(){return this._canceledTask}}},ctors:{ctor:function(){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor1.call(this,"A task was canceled.")},$ctor1:function(e){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor1.call(this,e)},$ctor2:function(e,t){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor2.call(this,e,t)},$ctor3:function(e){this.$initialize(),Bridge.global.System.OperationCanceledException.$ctor4.call(this,"A task was canceled.",new Bridge.global.System.Threading.CancellationToken),this._canceledTask=e}}}),Bridge.define("System.Threading.Tasks.TaskSchedulerException",{inherits:[Bridge.global.System.Exception],ctors:{ctor:function(){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"An exception was thrown by a TaskScheduler.")},$ctor2:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e)},$ctor1:function(e){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,"An exception was thrown by a TaskScheduler.",e)},$ctor3:function(e,t){this.$initialize(),Bridge.global.System.Exception.ctor.call(this,e,t)}}}),Bridge.define("System.Version",{inherits:function(){return[Bridge.global.System.ICloneable,Bridge.global.System.IComparable$1(Bridge.global.System.Version),Bridge.global.System.IEquatable$1(Bridge.global.System.Version)]},statics:{fields:{separatorsArray:0,ZERO_CHAR_VALUE:0},ctors:{init:function(){this.separatorsArray=46,this.ZERO_CHAR_VALUE=48}},methods:{appendPositiveNumber:function(e,t){var n,i=t.getLength();do{n=e%10,e=0|Bridge.Int.div(e,10),t.insert(i,String.fromCharCode(65535&(Bridge.global.System.Version.ZERO_CHAR_VALUE+n|0)))}while(e>0)},parse:function(e){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("input");var t={v:new Bridge.global.System.Version.VersionResult};if(t.v.init("input",!0),!Bridge.global.System.Version.tryParseVersion(e,t))throw t.v.getVersionParseException();return t.v.m_parsedVersion},tryParse:function(e,t){var n,i={v:new Bridge.global.System.Version.VersionResult};return i.v.init("input",!1),n=Bridge.global.System.Version.tryParseVersion(e,i),t.v=i.v.m_parsedVersion,n},tryParseVersion:function(e,t){var n,i,r={},s={},a={},l={};if(null==e)return t.v.setFailure(Bridge.global.System.Version.ParseFailureKind.ArgumentNullException),!1;if((i=(n=Bridge.global.System.String.split(e,[Bridge.global.System.Version.separatorsArray].map(function(e){return String.fromCharCode(e)}))).length)<2||i>4)return t.v.setFailure(Bridge.global.System.Version.ParseFailureKind.ArgumentException),!1;if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(0,n)],"version",t,r)||!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(1,n)],"version",t,s))return!1;if((i=i-2|0)>0){if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(2,n)],"build",t,a))return!1;if((i=i-1|0)>0){if(!Bridge.global.System.Version.tryParseComponent(n[Bridge.global.System.Array.index(3,n)],"revision",t,l))return!1;t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor3(r.v,s.v,a.v,l.v)}else t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor2(r.v,s.v,a.v)}else t.v.m_parsedVersion=new Bridge.global.System.Version.$ctor1(r.v,s.v);return!0},tryParseComponent:function(e,t,n,i){return Bridge.global.System.Int32.tryParse(e,i)?!(i.v<0&&(n.v.setFailure$1(Bridge.global.System.Version.ParseFailureKind.ArgumentOutOfRangeException,t),1)):(n.v.setFailure$1(Bridge.global.System.Version.ParseFailureKind.FormatException,e),!1)},op_Equality:function(e,t){return Bridge.referenceEquals(e,null)?Bridge.referenceEquals(t,null):e.equalsT(t)},op_Inequality:function(e,t){return!Bridge.global.System.Version.op_Equality(e,t)},op_LessThan:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("v1");return e.compareTo(t)<0},op_LessThanOrEqual:function(e,t){if(null==e)throw new Bridge.global.System.ArgumentNullException.$ctor1("v1");return e.compareTo(t)<=0},op_GreaterThan:function(e,t){return Bridge.global.System.Version.op_LessThan(t,e)},op_GreaterThanOrEqual:function(e,t){return Bridge.global.System.Version.op_LessThanOrEqual(t,e)}}},fields:{_Major:0,_Minor:0,_Build:0,_Revision:0},props:{Major:{get:function(){return this._Major}},Minor:{get:function(){return this._Minor}},Build:{get:function(){return this._Build}},Revision:{get:function(){return this._Revision}},MajorRevision:{get:function(){return Bridge.Int.sxs(this._Revision>>16&65535)}},MinorRevision:{get:function(){return Bridge.Int.sxs(65535&this._Revision)}}},alias:["clone","System$ICloneable$clone","compareTo",["System$IComparable$1$System$Version$compareTo","System$IComparable$1$compareTo"],"equalsT","System$IEquatable$1$System$Version$equalsT"],ctors:{init:function(){this._Build=-1,this._Revision=-1},$ctor3:function(e,t,n,i){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("build","Cannot be < 0");if(i<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("revision","Cannot be < 0");this._Major=e,this._Minor=t,this._Build=n,this._Revision=i},$ctor2:function(e,t,n){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");if(n<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("build","Cannot be < 0");this._Major=e,this._Minor=t,this._Build=n},$ctor1:function(e,t){if(this.$initialize(),e<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("major","Cannot be < 0");if(t<0)throw new Bridge.global.System.ArgumentOutOfRangeException.$ctor4("minor","Cannot be < 0");this._Major=e,this._Minor=t},$ctor4:function(e){this.$initialize();var t=Bridge.global.System.Version.parse(e);this._Major=t.Major,this._Minor=t.Minor,this._Build=t.Build,this._Revision=t.Revision},ctor:function(){this.$initialize(),this._Major=0,this._Minor=0}},methods:{clone:function(){var e=new Bridge.global.System.Version.ctor;return e._Major=this._Major,e._Minor=this._Minor,e._Build=this._Build,e._Revision=this._Revision,e},compareTo$1:function(e){if(null==e)return 1;var t=Bridge.as(e,Bridge.global.System.Version);if(Bridge.global.System.Version.op_Equality(t,null))throw new Bridge.global.System.ArgumentException.$ctor1("version should be of Bridge.global.System.Version type");return this._Major!==t._Major?this._Major>t._Major?1:-1:this._Minor!==t._Minor?this._Minor>t._Minor?1:-1:this._Build!==t._Build?this._Build>t._Build?1:-1:this._Revision!==t._Revision?this._Revision>t._Revision?1:-1:0},compareTo:function(e){return Bridge.global.System.Version.op_Equality(e,null)?1:this._Major!==e._Major?this._Major>e._Major?1:-1:this._Minor!==e._Minor?this._Minor>e._Minor?1:-1:this._Build!==e._Build?this._Build>e._Build?1:-1:this._Revision!==e._Revision?this._Revision>e._Revision?1:-1:0},equals:function(e){return this.equalsT(Bridge.as(e,Bridge.global.System.Version))},equalsT:function(e){return!Bridge.global.System.Version.op_Equality(e,null)&&this._Major===e._Major&&this._Minor===e._Minor&&this._Build===e._Build&&this._Revision===e._Revision},getHashCode:function(){var e=0;return e|=(15&this._Major)<<28,e|=(255&this._Minor)<<20,(e|=(255&this._Build)<<12)|4095&this._Revision},toString:function(){return-1===this._Build?this.toString$1(2):-1===this._Revision?this.toString$1(3):this.toString$1(4)},toString$1:function(e){var t;switch(e){case 0:return"";case 1:return Bridge.toString(this._Major);case 2:return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.toString();default:if(-1===this._Build)throw new Bridge.global.System.ArgumentException.$ctor3("Build should be > 0 if fieldCount > 2","fieldCount");if(3===e)return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Build,t),t.toString();if(-1===this._Revision)throw new Bridge.global.System.ArgumentException.$ctor3("Revision should be > 0 if fieldCount > 3","fieldCount");if(4===e)return t=new Bridge.global.System.Text.StringBuilder,Bridge.global.System.Version.appendPositiveNumber(this._Major,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Minor,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Build,t),t.append(String.fromCharCode(46)),Bridge.global.System.Version.appendPositiveNumber(this._Revision,t),t.toString();throw new Bridge.global.System.ArgumentException.$ctor3("Should be < 5","fieldCount")}}}}),Bridge.define("System.Version.ParseFailureKind",{$kind:"nested enum",statics:{fields:{ArgumentNullException:0,ArgumentException:1,ArgumentOutOfRangeException:2,FormatException:3}}}),Bridge.define("System.Version.VersionResult",{$kind:"nested struct",statics:{methods:{getDefaultValue:function(){return new Bridge.global.System.Version.VersionResult}}},fields:{m_parsedVersion:null,m_failure:0,m_exceptionArgument:null,m_argumentName:null,m_canThrow:!1},ctors:{ctor:function(){this.$initialize()}},methods:{init:function(e,t){this.m_canThrow=t,this.m_argumentName=e},setFailure:function(e){this.setFailure$1(e,"")},setFailure$1:function(e,t){if(this.m_failure=e,this.m_exceptionArgument=t,this.m_canThrow)throw this.getVersionParseException()},getVersionParseException:function(){switch(this.m_failure){case Bridge.global.System.Version.ParseFailureKind.ArgumentNullException:return new Bridge.global.System.ArgumentNullException.$ctor1(this.m_argumentName);case Bridge.global.System.Version.ParseFailureKind.ArgumentException:return new Bridge.global.System.ArgumentException.$ctor1("VersionString");case Bridge.global.System.Version.ParseFailureKind.ArgumentOutOfRangeException:return new Bridge.global.System.ArgumentOutOfRangeException.$ctor4(this.m_exceptionArgument,"Cannot be < 0");case Bridge.global.System.Version.ParseFailureKind.FormatException:try{Bridge.global.System.Int32.parse(this.m_exceptionArgument)}catch(e){if(e=Bridge.global.System.Exception.create(e),Bridge.is(e,Bridge.global.System.FormatException)||Bridge.is(e,Bridge.global.System.OverflowException))return e;throw e}return new Bridge.global.System.FormatException.$ctor1("InvalidString");default:return new Bridge.global.System.ArgumentException.$ctor1("VersionString")}},getHashCode:function(){return Bridge.addHash([5139482776,this.m_parsedVersion,this.m_failure,this.m_exceptionArgument,this.m_argumentName,this.m_canThrow])},equals:function(e){return!!Bridge.is(e,Bridge.global.System.Version.VersionResult)&&Bridge.equals(this.m_parsedVersion,e.m_parsedVersion)&&Bridge.equals(this.m_failure,e.m_failure)&&Bridge.equals(this.m_exceptionArgument,e.m_exceptionArgument)&&Bridge.equals(this.m_argumentName,e.m_argumentName)&&Bridge.equals(this.m_canThrow,e.m_canThrow)},$clone:function(e){var t=e||new Bridge.global.System.Version.VersionResult;return t.m_parsedVersion=this.m_parsedVersion,t.m_failure=this.m_failure,t.m_exceptionArgument=this.m_exceptionArgument,t.m_argumentName=this.m_argumentName,t.m_canThrow=this.m_canThrow,t}}}),void 0===(s=function(){return Bridge}.apply(t,[]))||(e.exports=s)}(this)}).call(this,n(3),n(2))},function(e,t){function n(e){var t=new Error("Cannot find module \'"+e+"\'");throw t.code="MODULE_NOT_FOUND",t}n.keys=function(){return[]},n.resolve=n,e.exports=n,n.id=9},function(e,t){Bridge.assembly("Kusto.JavaScript.Client",function(e,t){"use strict";Bridge.define("Kusto.Language.Syntax.ClassificationKind",{$kind:"enum",statics:{fields:{Unknown:0,PlainText:1,Comment:2,Punctuation:3,Literal:4,StringLiteral:5,Type:6,Identifier:7,Column:8,Table:9,Function:10,Parameter:11,Variable:12,Plugin:13,QueryParameter:14,Operator:15,Keyword:16,QueryCommand:17}}}),Bridge.define("Kusto.Charting.ArgumentColumnType",{$kind:"enum",statics:{fields:{None:0,Numeric:2,DateTime:4,TimeSpan:8,String:16,Object:32,DateTimeOrTimeSpan:12,StringOrDateTimeOrTimeSpan:28,NumericOrDateTimeOrTimeSpan:14,StringOrObject:48,All:62}},$flags:!0}),Bridge.define("Kusto.Charting.ArgumentRestrictions",{$kind:"enum",statics:{fields:{None:0,MustHave:1,NotIncludedInSeries:2}},$flags:!0}),Bridge.define("Kusto.Charting.ChartKind",{$kind:"enum",statics:{fields:{Unspecified:0,Line:1,Point:2,Bar:3}}}),Bridge.define("Kusto.Charting.DataChartsHelper",{statics:{methods:{GetData:function(e,t,n,i,r,s,a){void 0===t&&(t=16),void 0===n&&(n=0),void 0===i&&(i=null),void 0===r&&(r=!1),void 0===s&&(s=null),void 0===a&&(a=null);var l=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Charting.DataItem).ctor),o=e.Kusto$Charting$IChartingDataSource$GetSchema();if(null==o||0===Bridge.global.System.Linq.Enumerable.from(o).count())return l;null==i&&(i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),null==a&&(a=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor));var u=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Double)),d=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Double)),g={v:-1},c=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Int32).ctor),m=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Int32).ctor),h={v:!1};Kusto.Charting.DataChartsHelper.ResolvePredefinedColumnsIndexes(e,i,c,a,m,s,g,t,h);var f=!1;if(h.v||(f=Kusto.Charting.DataChartsHelper.DetectChartDimensionsUsingColumnTypes(o,t,n,g,c,m),h.v=!f),h.v&&(f=Kusto.Charting.DataChartsHelper.DetectChartDimensionsUsingData(o,e,i,t,n,g,c,m)),!f)return l;for(var p=0;p1)for(var a=0;a0&&p.append(", "),p.appendFormat("{0}:{1}",y.Item1,Bridge.toString(t.Kusto$Charting$IChartingDataSource$GetValue(r,S)))}}finally{Bridge.is(g,Bridge.global.System.IDisposable)&&g.System$IDisposable$Dispose()}f=p.toString()}for(var b=t.Kusto$Charting$IChartingDataSource$GetValue(r,o),I=Kusto.Charting.DataChartsHelper.ResolveJsonArrayType(Bridge.toString(b)),T=0;T"),e.add(P),R=P.ValueData}}}}},GetArgumentStringArray:function(e,t,n,i){if(!Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.String,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||n<0)return Bridge.global.System.Array.init(i,null,Bridge.global.System.String);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsString(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,null,Bridge.global.System.String):r},GetArgumentNumericArray:function(e,t,n,i){if(t!==Kusto.Charting.ArgumentColumnType.Numeric||n<0)return Bridge.global.System.Array.init(i,0,Bridge.global.System.Double);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsDouble(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,0,Bridge.global.System.Double):r},GetArgumentDateTimeArray:function(e,t,n,i){if(!Bridge.global.System.Enum.hasFlag(Kusto.Charting.ArgumentColumnType.DateTimeOrTimeSpan,Bridge.box(t,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||n<0)return Bridge.global.System.Array.init(i,function(){return Bridge.global.System.DateTime.getDefaultValue()},Bridge.global.System.DateTime);var r=Kusto.Charting.DataChartsHelper.ParseJsonArrayAsDateTime(Bridge.toString(e));return null==r?Bridge.global.System.Array.init(i,function(){return Bridge.global.System.DateTime.getDefaultValue()},Bridge.global.System.DateTime):r},ResolveDataItemsFromDataRow:function(e,t,n,i,r,s,a,l,o,u,d){var g,c,m=t.Kusto$Charting$IChartingDataSource$GetSchema(),h="";if(Bridge.global.System.Linq.Enumerable.from(u).any()){var f=new Bridge.global.System.Text.StringBuilder;g=Bridge.getEnumerator(u);try{for(;g.moveNext();){var p=g.Current,S=Bridge.global.System.Linq.Enumerable.from(m).elementAt(p);f.getLength()>0&&f.append(", "),f.appendFormat("{0}:{1}",S.Item1,Bridge.toString(t.Kusto$Charting$IChartingDataSource$GetValue(r,p)))}}finally{Bridge.is(g,Bridge.global.System.IDisposable)&&g.System$IDisposable$Dispose()}h=f.toString()}for(var y=t.Kusto$Charting$IChartingDataSource$GetValue(r,o),b=null==y?s:Bridge.global.System.Linq.Enumerable.from(m).elementAt(o).Item2,I=0;I=0?Bridge.toString(y):"",c.ArgumentDateTime=v,c.ArgumentNumeric=R,c.ValueData=l&&n.tryGetValue(_,w)?x+w.v:x,c.ValueName=T.Item1,c.SeriesName=_,c);Bridge.global.System.String.isNullOrEmpty(K.ArgumentData)&&(K.ArgumentData=""),e.add(K),n.set(K.SeriesName,K.ValueData)}}},GetArgumentDateTime:function(e,t){return Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.DateTime,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.TimeSpan,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))?Bridge.is(e,Bridge.global.System.DateTime)?Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTime)):Bridge.is(e,Bridge.global.System.TimeSpan)?Bridge.global.System.DateTime.create$2(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.TimeSpan)).getTicks()):Bridge.global.System.DateTime.getMinValue():Bridge.global.System.DateTime.getMinValue()},GetArgumentNumeric:function(e,t,n,i,r){return!Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))||Kusto.Charting.DataChartsHelper.CheckIfDBNull(e)?Number.NaN:n<0?(r.containsKey(i)||r.set(i,0),r.set(i,r.get(i)+1),r.get(i)):Kusto.Charting.DataChartsHelper.ConvertToDouble(e,t)},ConvertToDouble:function(e,t){var n=0;if(t===Kusto.Charting.ArgumentColumnType.DateTime)n=Kusto.Charting.DataChartsHelper.DateTimeToTotalSeconds(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.DateTime)));else if(t===Kusto.Charting.ArgumentColumnType.TimeSpan)n=Kusto.Charting.DataChartsHelper.TimeSpanToTotalSeconds(Bridge.global.System.Nullable.getValue(Bridge.cast(Bridge.unbox(e),Bridge.global.System.TimeSpan)));else try{n=Bridge.global.System.Convert.toDouble(e)}catch(e){e=Bridge.global.System.Exception.create(e),n=Number.NaN}return n},TryConvertToDouble:function(e,t){return null==e||Kusto.Charting.DataChartsHelper.CheckIfDBNull(e)?null:Kusto.Charting.DataChartsHelper.ConvertToDouble(e,t)},DetectChartDimensionsUsingData:function(e,t,n,i,r,s,a,l){var o,u=Bridge.global.System.Array.init(Bridge.global.System.Linq.Enumerable.from(e).count(),0,Kusto.Charting.ArgumentColumnType);if(0===t.Kusto$Charting$IChartingDataSource$RowsCount)return!1;for(var d=-1,g=0;g=0&&Bridge.global.System.Linq.Enumerable.from(r).any())return!0;if(i.v<0&&s<0&&Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType))))return!1;if(i.v<0){if(t===Kusto.Charting.ArgumentColumnType.DateTimeOrTimeSpan)return!1;Bridge.global.System.Enum.hasFlag(t,Bridge.box(Kusto.Charting.ArgumentColumnType.Numeric,Kusto.Charting.ArgumentColumnType,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentColumnType)))?Bridge.global.System.Linq.Enumerable.from(e).count()>1&&(i.v=s):Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.NotIncludedInSeries,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))?i.v=Kusto.Charting.DataChartsHelper.GoBackwardsAndFindColumnNotInList(s,r,l):i.v=s-1|0}if(i.v<0&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.MustHave,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))&&(i.v=0),!Bridge.global.System.Linq.Enumerable.from(r).any()&&i.v>=0){var o=i.v;a[Bridge.global.System.Array.index(i.v,a)]!==Kusto.Charting.ArgumentColumnType.String?o=Kusto.Charting.DataChartsHelper.GetFirstStringColumnIndex(a):Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Charting.ArgumentRestrictions.NotIncludedInSeries,Kusto.Charting.ArgumentRestrictions,Bridge.global.System.Enum.toStringFn(Kusto.Charting.ArgumentRestrictions)))&&(o=i.v-1|0),o>=0&&!l.contains(o)&&r.add(o)}return!0},GoBackwardsAndFindColumnNotInList:function(e,t,n){for(var i=e-1|0;i>=0;i=i-1|0){var r=null==t||!t.contains(i),s=null==n||!n.contains(i);if(r&&s)return i}return-1},GetFirstStringColumnIndex:function(e){for(var t=0;t=2&&Bridge.global.System.String.endsWith(t.v,\'"\'))return t.v=t.v.substr(1,t.v.length-2|0),!!Kusto.Cloud.Platform.Utils.ExtendedRegex.TryUnescape(t.v,t)}else if(Bridge.global.System.String.startsWith(t.v,"\'")){if(t.v.length>=2&&Bridge.global.System.String.endsWith(t.v,"\'"))return t.v=t.v.substr(1,t.v.length-2|0),!!Kusto.Cloud.Platform.Utils.ExtendedRegex.TryUnescape(t.v,t)}else if(Bridge.global.System.String.startsWith(t.v,\'@"\')){if(t.v.length>=3&&Bridge.global.System.String.endsWith(t.v,\'"\')){var n=t.v.substr(2,t.v.length-3|0);return t.v=Bridge.global.System.String.replaceAll(n,\'""\',\'"\'),!0}}else if(Bridge.global.System.String.startsWith(t.v,"@\'")&&t.v.length>=3&&Bridge.global.System.String.endsWith(t.v,"\'")){var i=t.v.substr(2,t.v.length-3|0);return t.v=Bridge.global.System.String.replaceAll(i,"\'\'","\'"),!0}return!1},IsStringLiteral:function(e){if(Bridge.global.System.String.isNullOrWhiteSpace(e))return!1;var t=e.charCodeAt(0);return 34===t||39===t||64===t},Equals:function(e,t){return null==e&&null==t||null!=e&&null!=t&&Bridge.global.System.String.equals(e,t,4)},TrimSingleQuotes:function(e){return Bridge.global.System.String.isNullOrWhiteSpace(e)?e:(Bridge.global.System.String.startsWith(e,"\'")&&Bridge.global.System.String.endsWith(e,"\'")&&e.length>=2&&(e=e.substr(1,e.length-2|0)),e)},TrimBrackets:function(e){return Bridge.global.System.String.startsWith(e,"[")&&Bridge.global.System.String.endsWith(e,"]")&&e.length>=2&&(e=e.substr(1,e.length-2|0)),e},InitArray:function(e,t,n){if(null!=t)for(var i=0;i=0}}}}),Bridge.define("Kusto.Cloud.Platform.Utils.ExtendedString",{statics:{fields:{c_newlineAsStringArray:null,c_postfix:null,c_wrap:null,c_nullGuids:null,SafeToString:null,EmptyArray:null},ctors:{init:function(){this.c_newlineAsStringArray=Bridge.global.System.Array.init(["\\n"],Bridge.global.System.String),this.c_postfix="...",this.c_wrap=" ",this.c_nullGuids=Bridge.global.System.Array.init([Bridge.global.System.Guid.Empty.toString(),"{"+(Bridge.global.System.Guid.Empty.toString()||"")+"}"],Bridge.global.System.String),this.SafeToString=e.$.Kusto.Cloud.Platform.Utils.ExtendedString.f1,this.EmptyArray=Bridge.global.System.Array.init(0,null,Bridge.global.System.String)}},methods:{SafeGetHashCode:function(e){return null==e?20080512:Bridge.getHashCode(e)},GuidSafeFastGetHashCode:function(e){return null==e||e.length<26?Kusto.Cloud.Platform.Utils.ExtendedString.SafeGetHashCode(e):(e.charCodeAt(1)^e.charCodeAt(9)<<8|e.charCodeAt(10))^(e.charCodeAt(16)<<16|e.charCodeAt(17))^(e.charCodeAt(24)<<24|e.charCodeAt(25))},SafeFormat:function(e,t){if(void 0===t&&(t=[]),null==e)return"[format:null]";if(null==t||0===t.length)return Bridge.global.System.String.format.apply(Bridge.global.System.String,[e].concat(t));for(var n=Bridge.global.System.Array.init(t.length,null,Bridge.global.System.String),i=0;in?"":e.substr(t,1+(n-t|0)|0)},FindFirstNonWhitespaceCharacter:function(e,t){if(void 0===t&&(t=0),null==e)return-1;for(;;){if(t>=e.length)return-1;if(!Bridge.global.System.Char.isWhiteSpace(String.fromCharCode(e.charCodeAt(t))))return t;t=t+1|0}},FirstFirstUnequalCharacter:function(e,t){if(Bridge.referenceEquals(e,t))return-1;if(null==e||null==t||0===e.length||0===t.length)return 0;for(var n=0;n^\\\\s*\\\\|\\\\s*join\\\\s+(kind\\\\s*=\\\\s*\\\\w+\\\\s*)?)(?\\\\()?(?.+$)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinEndRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?!^.*\\\\bmake-series\\\\b.*$)((?^.+?)(?\\\\)?)\\\\s*\\\\b(?on\\\\s+.+))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesOperatorRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\bmake-series\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_operatorRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\|\\\\s*(?[\\\\w-]+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_operatorsNotRequiringFullEntitiesResolve=e.$.Kusto.Data.IntelliSense.CslCommand.f1(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_nameOrListRegex="(?:\\\\w+)|(?:\\\\((\\\\w+)(,\\\\s*\\\\w+)*\\\\))",this.s_hasAssignmentOperationRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*\\\\|\\\\s*(extend|parse|summarize|project|mvexpand|make-series|project-rename)\\\\s+"+(Kusto.Data.IntelliSense.CslCommand.s_nameOrListRegex||"")+")|(^\\\\s*range)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_startsWithAlpha=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*[a-z]",1)}},methods:{UnionCommands:function(t){var n;if(Bridge.global.System.Linq.Enumerable.from(t).count()<2)return Bridge.global.System.Linq.Enumerable.from(t).firstOrDefault(null,null);var i=Bridge.global.System.Linq.Enumerable.from(t).first(),r=((n=new Kusto.Data.IntelliSense.CslCommand).m_tokens=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f2).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_commandParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f3).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_commentsParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f4).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_clientDirectivesParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f5).toList(Kusto.Data.IntelliSense.CslCommandToken),n.m_bracketParts=Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f6).toList(Kusto.Data.IntelliSense.CslCommandToken),n.Text=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(t).selectMany(e.$.Kusto.Data.IntelliSense.CslCommand.f7)).join(""),n.IsRunnable=Bridge.global.System.Linq.Enumerable.from(t).any(e.$.Kusto.Data.IntelliSense.CslCommand.f8),n.RelativeStart=i.RelativeStart,n.AbsolutePositionBias=i.AbsolutePositionBias,n.ParseMode=i.ParseMode,n);return r.Length=r.Text.length,r},NormalizeCommandPart:function(e){return e=e.trim(),Kusto.Data.IntelliSense.CslCommand.s_removeWhiteSpacesAfterPipeRegex.replace(e,"| ")},AppendTabulatedText:function(e,t,n){Kusto.Data.IntelliSense.CslCommand.AppendTabulations(e,t),e.append(n)},AppendTabulations:function(e,t){if(!(t<=0))for(var n=0;n0&&!Kusto.Data.IntelliSense.CslCommand.s_makeSeriesOperatorRegex.isMatch(e.Text)?"":Kusto.Data.IntelliSense.CslCommand.s_operatorRegex.match(e.Text).getGroups().getByName("Operator").toString()},GetKnownEntities:function(e,t,n,i,r,s,a,l,o){if(l.v=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),n.containsKey(s)?o.v=n.get(s):o.v=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),null==i)return t.containsKey(s)&&(l.v=t.get(s)),!1;if(Kusto.Data.IntelliSense.CslCommand.s_operatorsNotRequiringFullEntitiesResolve.contains(a))return t.containsKey(s)&&(l.v=t.get(s)),!1;var u=r.toString();return e.GetKnownEntities(u,s,n,l,o)},IsMatchingRegex:function(e,t){return!Bridge.global.System.String.isNullOrWhiteSpace(e)&&t.isMatch(e)},StartsWithAlpha:function(e){return!Bridge.global.System.String.isNullOrWhiteSpace(e)&&Kusto.Data.IntelliSense.CslCommand.s_startsWithAlpha.isMatch(e)}}},fields:{m_tokens:null,m_commandParts:null,m_commentsParts:null,m_clientDirectivesParts:null,m_bracketParts:null,m_commandPartsParseStates:null},props:{CslExpressionStartPosition:{get:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)?0:this.m_commandParts.getItem(0).RelativeStart}},CslExpressionLength:{get:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)?0:Bridge.global.System.Linq.Enumerable.from(this.m_commandParts).last().RelativeEnd-this.m_commandParts.getItem(0).RelativeStart|0}},Tokens:{get:function(){return this.m_tokens}},CommandParts:{get:function(){return this.m_commandParts}},CommentParts:{get:function(){return this.m_commentsParts}},BracketParts:{get:function(){return this.m_bracketParts}},AllParts:{get:function(){var t=0,n=null;return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts)&&(t=t+1|0,n=this.m_commandParts),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commentsParts)&&(t=t+1|0,n=null!=n?Bridge.global.System.Linq.Enumerable.from(n).union(this.m_commentsParts):Bridge.cast(this.m_commentsParts,Bridge.global.System.Collections.Generic.IEnumerable$1(Kusto.Data.IntelliSense.CslCommandToken))),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_clientDirectivesParts)&&(t=t+1|0,n=null!=n?Bridge.global.System.Linq.Enumerable.from(n).union(this.m_clientDirectivesParts):Bridge.cast(this.m_clientDirectivesParts,Bridge.global.System.Collections.Generic.IEnumerable$1(Kusto.Data.IntelliSense.CslCommandToken))),t>1?Bridge.global.System.Linq.Enumerable.from(n).orderBy(e.$.Kusto.Data.IntelliSense.CslCommand.f9):n}},Text:null,RelativeStart:0,Length:0,RelativeEnd:{get:function(){return(this.RelativeStart+this.Length|0)-1|0}},AbsoluteStart:{get:function(){return this.AbsolutePositionBias+this.RelativeStart|0}},AbsoluteEnd:{get:function(){return this.AbsolutePositionBias+this.RelativeEnd|0}},AbsolutePositionBias:0,IsRunnable:!1,ParseMode:0,ContextCache:null},ctors:{ctor:function(){this.$initialize()}},methods:{FormatAsString:function(t,n){var i;if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commandParts))return"";var r=this.m_commandParts;Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.IncludeComments,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_commentsParts)&&(r=Bridge.global.System.Linq.Enumerable.from(r).union(this.m_commentsParts).union(this.m_clientDirectivesParts).orderBy(e.$.Kusto.Data.IntelliSense.CslCommand.f10).toList(Kusto.Data.IntelliSense.CslCommandToken));var s=new Bridge.global.System.Text.StringBuilder,a={v:0},l=!0;i=Bridge.getEnumerator(r);try{for(;i.moveNext();){var o=i.Current,u=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(o.Value," ");l||s.append(t),l=!1,Kusto.Data.IntelliSense.CslCommand.AppendTabulations(s,a.v);var d=!1;!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.IncludeComments,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleCommentsAndClientDirectives(t,s,a,o,u)),!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.TabulateOnFunctionBoundaries,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleFunctions(t,s,a,o)),!d&&Bridge.global.System.Enum.hasFlag(n,Bridge.box(Kusto.Data.IntelliSense.CslCommand.FormatTraits.TabulateOnJoins,Kusto.Data.IntelliSense.CslCommand.FormatTraits,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.CslCommand.FormatTraits)))&&(d=this.HandleJoins(t,s,a,o,u)),d||s.append(Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(u))}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return s.toString()},HandleCommentsAndClientDirectives:function(e,t,n,i,r){return!Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,Bridge.global.System.Linq.Enumerable.from(this.m_commentsParts).union(this.m_clientDirectivesParts),function(e){return e.AbsoluteStart===i.AbsoluteStart&&e.AbsoluteEnd===i.AbsoluteEnd})&&(t.append(r.trim()),!0)},HandleFunctions:function(e,t,n,i){var r=!1,s=0,a=Bridge.global.System.String.indexOf(i.Value,String.fromCharCode(123)),l=i.AbsoluteStart+a|0;if(a>=0&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_tokens,function(e){return l>=e.AbsoluteStart&&l<=e.AbsoluteEnd})){var o=i.Value.substr(0,a).trim();o=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(o," "),t.append(o),t.append(e),t.append("{"),t.append(e),n.v=n.v+1|0,r=!0,s=a+1|0}var u=Bridge.global.System.String.indexOf(i.Value,String.fromCharCode(125)),d=i.AbsoluteStart+u|0;if(u>=0&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandToken,this.m_tokens,function(e){return d>=e.AbsoluteStart&&d<=e.AbsoluteEnd})){var g=i.Value.substr(s,u-s|0).trim(),c=i.Value.substr(u+1|0).trim();c=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(c," "),r&&Kusto.Data.IntelliSense.CslCommand.AppendTabulations(t,n.v),t.append(g),t.append(e),t.append("}"),n.v=n.v-1|0,n.v<0&&(n.v=0),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,c),r=!0}else if(r){var m=i.Value.substr(s).trim();m=Kusto.Data.IntelliSense.CslCommand.s_newLineRegex.replace(m," "),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,m)}return r},HandleJoins:function(e,t,n,i,r){var s=!0,a=!1,l=r,o=Kusto.Data.IntelliSense.CslCommand.s_joinStartRegex.match(l),u=0;if(o.getSuccess()){var d=o.getGroups().getByName("JoinOpPart").toString();t.append(Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(d)),t.append(e),s=!Bridge.global.System.String.isNullOrEmpty(o.getGroups().getByName("Bracket").toString()),n.v=n.v+1|0,l=o.getGroups().getByName("PostJoinPart").toString(),u=o.getGroups().getByName("PostJoinPart").getIndex(),a=!0}var g=Kusto.Data.IntelliSense.CslCommand.s_joinEndRegex.match(l);if(g.getSuccess()&&Bridge.global.System.Linq.Enumerable.from(this.m_tokens).any(function(e){return e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken&&Bridge.referenceEquals(e.Value,"on")&&e.AbsoluteStart===((g.getGroups().getByName("JoinOnPart").getIndex()+i.AbsoluteStart|0)+u|0)})){var c=Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(g.getGroups().getByName("InnerJoinPart").toString()),m=Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(g.getGroups().getByName("JoinOnPart").toString()),h=s,f=Kusto.Cloud.Platform.Utils.ExtendedString.CountNonOverlappingSubstrings(c,"("),p=Kusto.Cloud.Platform.Utils.ExtendedString.CountNonOverlappingSubstrings(c,")");!Bridge.global.System.String.isNullOrEmpty(g.getGroups().getByName("Bracket").toString())&&f>p&&(h=!1,c=(c||"")+")"),o.getSuccess()&&(s&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v-1|0,"("),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulations(t,n.v)),t.append(c),t.append(e),n.v=n.v-1|0,n.v<0&&(n.v=0),h&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,")"),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(m)),a=!0}else o.getSuccess()&&(s&&(Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v-1|0,"("),t.append(e)),Kusto.Data.IntelliSense.CslCommand.AppendTabulatedText(t,n.v,Kusto.Data.IntelliSense.CslCommand.NormalizeCommandPart(l)));return a},AcquireTokens:function(t){this.m_tokens=Bridge.global.System.Linq.Enumerable.from(t.m_tokens).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_commandParts=Bridge.global.System.Linq.Enumerable.from(t.m_commandParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_commentsParts=Bridge.global.System.Linq.Enumerable.from(t.m_commentsParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_clientDirectivesParts=Bridge.global.System.Linq.Enumerable.from(t.m_clientDirectivesParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken),this.m_bracketParts=Bridge.global.System.Linq.Enumerable.from(t.m_bracketParts).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.CslCommand.f11)).toList(Kusto.Data.IntelliSense.CslCommandToken)},ParseTokens:function(t,n,i){var r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);if(Bridge.global.System.String.isNullOrEmpty(this.Text))this.m_tokens=r;else{null!=t&&(t.ResetState(),null!=i&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext),i.ContextCache)&&(t.ContextCache=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext))(i.ContextCache)));var s=null!=t&&t.AllowQueryParameters,a=new Kusto.Data.IntelliSense.CslCommandIndexer(s);a.AntiTokenizers=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).$ctor1)(Bridge.global.System.Array.init([45,95,40],Bridge.global.System.Char)),a.TokenStarters=Bridge.global.System.Array.init([46],Bridge.global.System.Char),a.TokenTerminators=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).$ctor1)(Bridge.global.System.Array.init([40,46],Bridge.global.System.Char)),a.IndexText(this.Text);var l=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);this.m_commandParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var o=a.GetCommandPartsPositions();this.AddCategorizedTokens(this.m_commandParts,null,o,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommandPartToken),this.m_commentsParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var u=a.GetCommentsPositions();this.AddCategorizedTokens(this.m_commentsParts,null,u,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommentToken),this.m_clientDirectivesParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor);var d=a.GetClientDirectivesPositions();this.AddCategorizedTokens(this.m_clientDirectivesParts,null,d,Kusto.Data.IntelliSense.CslCommandToken.Kind.ClientDirectiveToken),this.m_bracketParts=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor),this.AddCategorizedTokens(this.m_bracketParts,null,a.GetBracketsPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.BracketRangeToken),this.AddCategorizedTokens(r,l,u,Kusto.Data.IntelliSense.CslCommandToken.Kind.CommentToken),this.AddCategorizedTokens(r,l,d,Kusto.Data.IntelliSense.CslCommandToken.Kind.ClientDirectiveToken),s&&this.AddCategorizedTokens(r,l,a.GetQueryParametersPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.QueryParametersToken),this.AddCategorizedTokens(r,l,a.GetStringLiteralsPositions(),Kusto.Data.IntelliSense.CslCommandToken.Kind.StringLiteralToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.ControlCommandsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.ControlCommandToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.CslCommandsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.CslCommandToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.OperatorCommandTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.SubOperatorsTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.JoinKindTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.ReduceByKindTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.SubOperatorToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.DataTypesTokens),Kusto.Data.IntelliSense.CslCommandToken.Kind.DataTypeToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.FunctionsTokens,40),Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken),this.AddCategorizedTokens(r,l,a.GetAllTokenPositions(Kusto.Data.IntelliSense.CslCommandParser.PluginTokens,40),Kusto.Data.IntelliSense.CslCommandToken.Kind.PluginToken),null!=t&&this.AddEntitiesTokens(t,r,l,a,o,i),r.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12),this.ValidateTokensOutput(r,this.Text),n===Kusto.Data.IntelliSense.ParseMode.TokenizeAllText&&(this.EnsureAllTextIsAnnotated(a,r,l),r.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12)),this.m_tokens=r,null!=t&&(this.ContextCache=t.ContextCache)}},ValidateTokensOutput:function(e,t){for(var n,i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandToken).ctor),r=0,s=t.length,a=0;as?i.add(l):r=l.RelativeEnd}n=Bridge.getEnumerator(i);try{for(;n.moveNext();){var o=n.Current;e.remove(o)}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}},AddEntitiesTokens:function(t,n,i,r,s,a){this.AddCategorizedTokens(n,i,r.GetAllTokenPositions(t.TableNames),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken),this.m_commandPartsParseStates=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand.AddEntitiesTokensState).ctor);for(var l=new Bridge.global.System.Text.StringBuilder,o=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).$ctor1)(t.FunctionNames),u=null!=a,d=null,g=null,c=0;c<(Bridge.global.System.Array.getCount(s,Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition)+1|0);c=c+1|0){var m=c>0?Bridge.global.System.Array.getItem(s,c-1|0,Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition):null,h={v:cc&&Bridge.global.System.Linq.Enumerable.from(a.CommandParts).count()>c&&Bridge.global.System.String.equals(h.v.Text,Bridge.global.System.Linq.Enumerable.from(a.CommandParts).elementAt(c).Value)))){var f=Bridge.global.System.Linq.Enumerable.from(a.CommandParts).elementAt(c),p={v:h.v.Start-f.RelativeStart|0},S=Bridge.global.System.Linq.Enumerable.from(a.Tokens).where(function(e,t){return function(e){return(e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken||e.TokenKind===Kusto.Data.IntelliSense.CslCommandToken.Kind.LetVariablesToken)&&e.RelativeStart>=t.v.Start&&e.RelativeEnd<=t.v.End}}(0,h)).select(function(e,t){return function(e){var n=Bridge.as(e.clone(),Kusto.Data.IntelliSense.CslCommandToken);return n.RelativeStart=n.RelativeStart+t.v|0,n}}(0,p)).ToArray(Kusto.Data.IntelliSense.CslCommandToken);n.AddRange(S),i.AddRange(r.GetTokenPositionsInRange(Bridge.global.System.Linq.Enumerable.from(S).select(e.$.Kusto.Data.IntelliSense.CslCommand.f13),h.v.Start,h.v.End)),this.AddLetStatementTokens(n,i,r,o,h.v),d=a.m_commandPartsParseStates.getItem(c).Clone(),this.m_commandPartsParseStates.add(d)}else{if(null!=h.v&&this.AddLetStatementTokens(n,i,r,o,h.v),null==g){var y=l.toString();g=t.AnalyzeCommand$1(y,a)}else null!=h.v&&(g=t.AnalyzeCommand(g,h.v.Text));var b=g.Context;if(!b.IsEmpty()){var I=Kusto.Data.IntelliSense.CslCommand.ResolveOperatorContext(h.v),T={},B={},C=Kusto.Data.IntelliSense.CslCommand.GetKnownEntities(t,d.MapOfKnownEntities,d.MapOfOriginallyKnownEntities,h.v,l,b,I,T,B);if(null!=h.v){t.ResolveKnownEntitiesFromContext(b);var x=Bridge.global.System.Linq.Enumerable.from(T.v).except(B.v),_=Bridge.global.System.Linq.Enumerable.from(B.v).intersect(T.v);this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(_,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken),this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(x,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken),this.AddCategorizedTokens(n,i,r.GetTokenPositionsInRange(t.RemoteTableNames,h.v.Start,h.v.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.TableToken)}if(!C&&null!=h.v){var w=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);switch(t.ResolveEntitiesFromCommand((h.v.Text||"")+" | ",w,T.v)){case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities:T.v=w;break;case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None:break;case Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities:T.v=Bridge.global.System.Linq.Enumerable.from(T.v).union(w).toList(Bridge.global.System.String)}}if(d.MapOfKnownEntities.set(b,T.v),null!=m&&Kusto.Data.IntelliSense.CslCommand.IsMatchingRegex(m.Text,Kusto.Data.IntelliSense.CslCommand.s_hasAssignmentOperationRegex)&&d.MapOfPreviousCalculatedEntities.containsKey(b)){var v=d.MapOfPreviousCalculatedEntities.get(b);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,v)){var R=r.GetTokenPositionsInRange(v,m.Start,m.End);Bridge.global.System.Linq.Enumerable.from(R).any()&&this.AddCategorizedTokens(n,i,R,Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken)}}d.MapOfPreviousCalculatedEntities.set(b,Bridge.global.System.Linq.Enumerable.from(T.v).except(B.v).toList(Bridge.global.System.String)),this.m_commandPartsParseStates.add(d)}}}},AddLetStatementTokens:function(e,t,n,i,r){var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveLetVariable(r.Text);Bridge.global.System.String.isNullOrEmpty(s)||i.add(s),i.Count>0&&this.AddCategorizedTokens(e,t,n.GetTokenPositionsInRange(i,r.Start,r.End),Kusto.Data.IntelliSense.CslCommandToken.Kind.LetVariablesToken)},AddCategorizedTokens:function(e,t,n,i){null!=t&&t.AddRange(n),e.AddRange(Bridge.global.System.Linq.Enumerable.from(n).select(Bridge.fn.bind(this,function(e){var t;return(t=new Kusto.Data.IntelliSense.CslCommandToken(e.Text,this.RelativeStart,i)).Length=e.Length,t.RelativeStart=e.Start,t})))},EnsureAllTextIsAnnotated:function(t,n,i){if(null!=n){this.AddUnrecognizedTokens(t,n,i),n.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommand.f12);for(var r=0,s=n.Count,a=0;a0){var u=this.Text.substr(r,o);this.AddPlainOrUnrecognizedTokens(n,r,u)}}r=l.RelativeEnd}if(r=0?s:l);if(s>0){var o=n.substr(0,s),u=((i=new Kusto.Data.IntelliSense.CslCommandToken(o,this.RelativeStart,Kusto.Data.IntelliSense.CslCommandToken.Kind.PlainTextToken)).Length=s,i.RelativeStart=t,i);e.add(u)}else s=0;var d=n.substr(s,a-s|0),g=Kusto.Data.IntelliSense.CslCommand.StartsWithAlpha(d)?Kusto.Data.IntelliSense.CslCommandToken.Kind.UnknownToken:Kusto.Data.IntelliSense.CslCommandToken.Kind.PlainTextToken,c=((i=new Kusto.Data.IntelliSense.CslCommandToken(d,this.RelativeStart,g)).Length=d.length,i.RelativeStart=t+s|0,i);if(e.add(c),ao.Start){a.v&&(o.End=o.End-1|0);var u=1+(o.End-o.Start|0)|0;o.Text=e.substr(o.Start,u),r.add(o)}return o.End},ReadTill:function(e,t,n,i,r){r.v=!0;for(var s=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.Char).ctor);te.length?e.length:t},ReadVerbatimTill:function(e,t,n,i){i.v=!0;for(var r=0;t=e.Start&&u<=e.End}).any(),c=n[Bridge.global.System.Array.index(u,n)],m=0===u||Bridge.global.System.Char.isWhiteSpace(String.fromCharCode(n[Bridge.global.System.Array.index(u-1|0,n)])),h=!0;if(null!=l&&((124===c||59===c)&&!d||g||u===(n.length-1|0))){u===(n.length-1|0)||59===c?(l.End=u,h=!1):l.End=u-1|0;var f=1+(l.End-l.Start|0)|0;f>1&&(l.Text=e.substr(l.Start,f),this.m_commandPartsPositions.add(l)),l=null}if(null==l&&!g&&h&&((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=u,t.End=u,l=t),!d&&Bridge.global.System.Array.contains(Kusto.Data.IntelliSense.CslCommandIndexer.s_matchingBrackets.getKeys(),c,Bridge.global.System.Char))if(Bridge.global.System.Linq.Enumerable.from(o).any()&&o.Peek().Item1===c){var p=o.Pop(),S=((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=p.Item2,t.End=u,t);S.Text=e.substr(S.Start,1+(S.End-S.Start|0)|0),this.m_bracketPartsPositions.add(S)}else o.Push({Item1:Kusto.Data.IntelliSense.CslCommandIndexer.s_matchingBrackets.get(c),Item2:u});switch(r){case Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenStart:!d&&(this.IsPartOfTheToken(c)&&!this.IsTokenTerminator(c)||m&&this.IsTokenStarter(c))&&(s=new Bridge.global.System.Text.StringBuilder,(t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=u,t.End=u,a=t,s.append(String.fromCharCode(c)),r=Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenEnd);break;case Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenEnd:var y=!1;!d&&this.IsPartOfTheToken(c)?this.IsTokenTerminator(c)?(a.TokenTerminator=c,y=!0):(s.append(String.fromCharCode(c)),a.End=u):y=!0,(y||u===(n.length-1|0))&&(a.Text=s.toString(),this.AddTokenPosition(a),r=Kusto.Data.IntelliSense.CslCommandIndexer.State.LookingForTokenStart)}}},GetTokenLookupSkipRanges:function(t){var n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Object).ctor);n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_stringLiteralsPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_clientDirectivesTokenPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_queryParametersPositions).select(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f2)),n.Sort$2(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f3);for(var i=0,r=Bridge.global.System.Linq.Enumerable.from(n).firstOrDefault(null,null),s=Bridge.global.System.Array.init(t,!1,Bridge.global.System.Boolean),a=0;a=r.Item1&&(s[Bridge.global.System.Array.index(a,s)]=!0),r.Item2===a&&(r=Bridge.global.System.Linq.Enumerable.from(n).elementAtOrDefault(i=i+1|0,null));return s},GetCommandPartsPositions:function(){return this.m_commandPartsPositions},GetCommentsPositions:function(){return this.m_commentTokenPositions},GetClientDirectivesPositions:function(){return this.m_clientDirectivesTokenPositions},GetStringLiteralsPositions:function(){return this.m_stringLiteralsPositions},GetQueryParametersPositions:function(){return this.m_queryParametersPositions},GetBracketsPositions:function(){return this.m_bracketPartsPositions},GetUnrecognizedTokenPositions:function(t){return Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.getValues()).selectMany(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f4).except(t)},GetTokenPositionsInRange:function(e,t,n){var i,r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e))return r;i=Bridge.getEnumerator(e,Bridge.global.System.String);try{for(;i.moveNext();){var s=i.Current;if(!Bridge.global.System.String.isNullOrEmpty(s)&&this.m_tokensAndPositions.containsKey(s)){var a=Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.get(s)).where(function(e){return e.Start>=t&&e.End<=n});Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition,a)&&r.AddRange(a)}}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return r},GetAllTokensSortedByPosition:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition)),this.m_tokensAndPositions)?null:Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions).selectMany(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f5).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandIndexer.f6)},GetAllTokenPositions:function(e,t){var n;void 0===t&&(t=0);var i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e))return i;n=Bridge.getEnumerator(e,Bridge.global.System.String);try{for(;n.moveNext();){var r=n.Current;this.m_tokensAndPositions.containsKey(r)&&i.AddRange(Bridge.global.System.Linq.Enumerable.from(this.m_tokensAndPositions.get(r)).where(function(e){return e.TokenTerminator===t}))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}return i},IsPartOfTheToken:function(e){return Bridge.global.System.Char.isDigit(e)||Bridge.global.System.Char.isLetter(e)||null!=this.AntiTokenizers&&this.AntiTokenizers.contains(e)},IsTokenTerminator:function(e){return null!=this.TokenTerminators&&this.TokenTerminators.contains(e)},IsTokenStarter:function(e){return null!=this.TokenStarters&&Bridge.global.System.Array.contains(this.TokenStarters,e,Bridge.global.System.Char)},DetectCommentsAndStringLiterals:function(e){Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_queryParametersRegexCollection,this.m_queryParametersPositions),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.None(Bridge.global.Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition,this.m_queryParametersPositions)?this.DetectCommentsAndStringLiterals_Simple(e):this.DetectCommentsAndStringLiterals_Complex(e)},DetectCommentsAndStringLiterals_Simple:function(e){for(var t=Bridge.global.System.String.toCharArray(e,0,e.length),n=0,i=0;io.Start){l.v&&(o.End=o.End-1|0);var u=1+(o.End-o.Start|0)|0;o.Text=e.substr(o.Start,u),this.m_stringLiteralsPositions.add(o)}return o.End},DetectCommentsAndStringLiterals_Complex:function(e){var t;Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_commentRegexCollection,this.m_commentTokenPositions),Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_clientDirectivesRegexCollection,this.m_clientDirectivesTokenPositions);for(var n=this.m_queryParametersPositions.Count-1|0;n>=0;n=n-1|0){var i={v:this.m_queryParametersPositions.getItem(n)};Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,i)).any()&&this.m_queryParametersPositions.removeAt(n)}Kusto.Data.IntelliSense.CslCommandIndexer.CaptureTokensUsingRegex(e,this.m_stringLiteralsRegexCollection,this.m_stringLiteralsPositions);for(var r=this.m_stringLiteralsPositions.Count-1|0;r>=0;r=r-1|0){var s={v:this.m_stringLiteralsPositions.getItem(r)};Bridge.global.System.Linq.Enumerable.from(this.m_commentTokenPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,s)).any()&&this.m_stringLiteralsPositions.removeAt(r)}for(var a=this.m_queryParametersPositions.Count-1|0;a>=0;a=a-1|0){var l={v:this.m_queryParametersPositions.getItem(a)},o=Bridge.global.System.Linq.Enumerable.from(this.m_stringLiteralsPositions).where(function(e,t){return function(e){return e.Start<=t.v.Start&&e.End>=t.v.End}}(0,l)).firstOrDefault(null,null);if(null!=o){var u=((t=new Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).Start=l.v.End+1|0,t.End=o.End,t.Text=o.Text.substr(1+(l.v.End-o.Start|0)|0),t);o.End=l.v.Start-1|0,o.Text=o.Text.substr(0,o.Length),this.m_stringLiteralsPositions.add(u)}}},AddTokenPosition:function(e){this.m_tokensAndPositions.containsKey(e.Text)||this.m_tokensAndPositions.add(e.Text,new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition).ctor)),this.m_tokensAndPositions.get(e.Text).add(e)}}}),Bridge.ns("Kusto.Data.IntelliSense.CslCommandIndexer",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslCommandIndexer,{f1:function(e){return e.add(40,41),e.add(41,40),e.add(91,93),e.add(93,91),e.add(123,125),e.add(125,123),e},f2:function(e){return{Item1:e.Start,Item2:e.End}},f3:function(e,t){return Bridge.compare(e.Item1,t.Item1)},f4:function(e){return e},f5:function(e){return e.value},f6:function(e){return e.Start}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandIndexer.State",{$kind:"nested enum",statics:{fields:{LookingForTokenStart:0,LookingForTokenEnd:1,InsideComment:2,InsideStringLiteral:3}}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandIndexer.TokenPosition",{$kind:"nested class",props:{Text:null,Start:0,End:0,TokenTerminator:0,Length:{get:function(){return 1+(this.End-this.Start|0)|0}}},ctors:{ctor:function(){this.$initialize(),this.TokenTerminator=0}}}),Bridge.define("Kusto.Data.IntelliSense.CslCommandParser",{statics:{fields:{ControlCommandsTokens:null,CslCommandsTokens:null,ChartRenderTypesTokens:null,ChartRenderKindTokens:null,SubOperatorsTokens:null,JoinKindTokens:null,ReduceByKindTokens:null,DataTypesTokens:null,ScalarFunctionsDateTimeTokens:null,ScalarFunctionsNoDateTimeTokens:null,SingleParameterFunctionsDateTimeTokens:null,ZeroParameterFunctionsNoDateTimeTokens:null,SingleParameterFunctionsNoDateTimeTokens:null,IntrinsicFunctionTokens:null,TwoParameterFunctionsTokens:null,ThreeParameterFunctionsTokens:null,ManyParametersFunctionsTokens:null,PromotedOperatorCommandTokens:null,ClientDirectiveTokens:null,OperatorCommandTokens:null,SummarizeAggregationSingleParameterTokens:null,SummarizeAggregationTwoParametersTokens:null,SummarizeAggregationThreeParametersTokens:null,SummarizeAggregationManyParametersTokens:null,MakeSeriesAggregationTokens:null,PluginTokens:null,DatetimeFunctionsTokens:null,ScalarFunctionsTokens:null,SingleParameterFunctionsTokens:null,SummarizeAggregationTokens:null,SummarizeAggregationAliasesTokens:null,SortedSummarizeAggregators:null,SortedMakeSeriesAggregationTokens:null,SortedDatetimeFunctions:null,SortedExtendFunctions:null,FunctionsTokens:null,SortedEvaluateFunctions:null,s_isCommentLineRegex:null},ctors:{init:function(){this.ControlCommandsTokens=Bridge.global.System.Array.init([".add",".alter",".alter-merge",".attach",".append",".create",".create-merge",".create-set",".create-or-alter",".define",".detach",".delete",".drop",".drop-pretend",".dup-next-ingest",".dup-next-failed-ingest",".ingest",".export",".load",".move",".purge",".purge-cleanup",".remove",".replace",".save",".set",".set-or-append",".set-or-replace",".show",".rename","async","data","into","ifnotexists","whatif","compressed","monitoring","metadata","folder","docstring","details","hot","records","until","as","csv","tsv","json","sql","policy","encoding","retention","merge","policies","update","ingestiontime","caching","querythrottling","sharding","callout","querylimit","restricted_view_access","softdelete","harddelete","rowstore","rowstores","seal","writeaheadlog","streamingingestion","follower"],Bridge.global.System.String),this.CslCommandsTokens=Bridge.global.System.Array.init(["set","let","restrict","access","alias","pattern","declare","query_parameters"],Bridge.global.System.String),this.ChartRenderTypesTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["columnchart","barchart","piechart","timechart","anomalychart","linechart","ladderchart","pivotchart","areachart","stackedareachart","scatterchart","timepivot","timeline"],Bridge.global.System.String)).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f1).ToArray(Bridge.global.System.String),this.ChartRenderKindTokens=Bridge.global.System.Array.init(["default","stacked","stacked100","unstacked"],Bridge.global.System.String),this.SubOperatorsTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["like","notlike","contains","notcontains","!contains","containscs","!containscs","startswith","!startswith","has","!has","hasprefix","!hasprefix","hassuffix","!hassuffix","matches","regex","in","!in","endswith","!endswith","between","!between","extent","database","diagnostics","admins","basicauth","cache","capacity","cluster","databases","extents","journal","memory","extentcontainers","viewers","unrestrictedviewers","tags","prettyname","blockedprincipals","operations","password","principal","principals","settings","schema","table","tables","user","users","ingestors","version","roles","fabric","locks","services","nodes","commands","queries","query","function","functions","by","on","of","true","false","and","or","asc","desc","nulls","last","first","with","withsource","kind","flags","from","to","step","ingestion","failures","mapping","mappings","geneva","eventhub","source","sources","types","application","period","reason","title"],Bridge.global.System.String)).union(Kusto.Data.IntelliSense.CslCommandParser.ChartRenderTypesTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ChartRenderKindTokens).distinct().ToArray(Bridge.global.System.String),this.JoinKindTokens=Bridge.global.System.Array.init(["anti","inner","innerunique","fullouter","leftanti","leftantisemi","leftouter","leftsemi","rightanti","rightantisemi","rightsemi","rightouter"],Bridge.global.System.String),this.ReduceByKindTokens=Bridge.global.System.Array.init(["mining"],Bridge.global.System.String),this.DataTypesTokens=Bridge.global.System.Array.init(["date","time","timespan","datetime","int","long","real","float","string","bool","boolean","double","dynamic","decimal"],Bridge.global.System.String),this.ScalarFunctionsDateTimeTokens=Bridge.global.System.Array.init(["now","ago","datetime","ingestion_time"],Bridge.global.System.String),this.ScalarFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["time","timespan","dynamic","decimal"],Bridge.global.System.String),this.SingleParameterFunctionsDateTimeTokens=Bridge.global.System.Array.init(["todatetime","between","!between"],Bridge.global.System.String),this.ZeroParameterFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["row_number","extent_id","extent_tags","pi","pack_all"],Bridge.global.System.String),this.SingleParameterFunctionsNoDateTimeTokens=Bridge.global.System.Array.init(["strlen","tostring","toupper","tolower","typeof","reverse","parsejson","parse_json","parse_xml","tobool","toboolean","todynamic","toobject","toint","tolong","toguid","todouble","toreal","totimespan","tohex","todecimal","isempty","isnotempty","isnull","isnotnull","isnan","isinf","isfinite","dayofweek","dayofmonth","dayofyear","weekofyear","monthofyear","sqrt","rand","log","log10","log2","exp","exp2","exp10","abs","degrees","radians","sign","sin","cos","tan","asin","acos","atan","cot","getmonth","getyear","arraylength","gettype","cursor_after","gamma","loggamma","dcount_hll","parse_ipv4","parse_url","parse_version","parse_urlquery","url_encode","url_decode","binary_not","not","toscalar","materialize","series_stats","series_fit_line","series_fit_2lines","series_stats_dynamic","series_fit_line_dynamic","series_fit_2lines_dynamic","base64_encodestring","base64_decodestring","hash_sha256","ceiling"],Bridge.global.System.String),this.IntrinsicFunctionTokens=Bridge.global.System.Array.init(["cluster","database","table"],Bridge.global.System.String),this.TwoParameterFunctionsTokens=Bridge.global.System.Array.init(["bin","columnifexists","floor","countof","hash","round","pow","binary_and","binary_or","binary_xor","binary_shift_left","binary_shift_right","datepart","datetime_part","repeat","series_outliers","rank_tdigest","percentrank_tdigest","trim","trim_start","trim_end","startofday","startofweek","startofmonth","startofyear","endofday","endofweek","endofmonth","endofyear","series_fill_backward","series_fill_forward","atan2","format_datetime","format_timespan","strrep","strcat_array","parse_user_agent","strcmp"],Bridge.global.System.String),this.ThreeParameterFunctionsTokens=Bridge.global.System.Array.init(["iff","iif","range","replace","translate","series_iir","bin_at","series_fill_const","datetime_diff","datetime_add"],Bridge.global.System.String),this.ManyParametersFunctionsTokens=Bridge.global.System.Array.init(["extract","extractjson","extractall","strcat","strcat_delim","substring","indexof","split","case","coalesce","max_of","min_of","percentile_tdigest","zip","pack","pack_array","array_concat","welch_test","series_fir","series_periods_detect","prev","next","tdigest_merge","hll_merge","series_fill_linear","series_periods_validate","datatable","make_datetime","make_timespan"],Bridge.global.System.String),this.PromotedOperatorCommandTokens=Bridge.global.System.Array.init(["where","count","extend","join","limit","order","project","project-away","project-rename","render","sort","summarize","distinct","take","top","top-nested","top-hitters","union","mvexpand","reduce","evaluate","parse","sample","sample-distinct","make-series","getschema","serialize","invoke"],Bridge.global.System.String),this.ClientDirectiveTokens=Bridge.global.System.Array.init(["connect"],Bridge.global.System.String),this.OperatorCommandTokens=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["filter","fork","facet","range","consume","find","search","print"],Bridge.global.System.String)).union(Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationSingleParameterTokens=Bridge.global.System.Array.init(["count","countif","dcount","dcountif","sum","min","max","avg","any","makelist","makeset","stdev","stdevif","varianceif","variance","buildschema","hll","hll_merge","tdigest","tdigest_merge"],Bridge.global.System.String),this.SummarizeAggregationTwoParametersTokens=Bridge.global.System.Array.init(["percentile","sumif"],Bridge.global.System.String),this.SummarizeAggregationThreeParametersTokens=Bridge.global.System.Array.init(["percentilew"],Bridge.global.System.String),this.SummarizeAggregationManyParametersTokens=Bridge.global.System.Array.init(["arg_min","arg_max","percentilesw_array","percentilesw","percentiles_array","percentiles"],Bridge.global.System.String),this.MakeSeriesAggregationTokens=Bridge.global.System.Array.init(["count","countif","dcount","dcountif","sum","min","max","avg","any","stdev","stdevp","variance","variancep","sumif"],Bridge.global.System.String),this.PluginTokens=Bridge.global.System.Array.init(["autocluster","diffpatterns","basket","extractcolumns"],Bridge.global.System.String),this.DatetimeFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsDateTimeTokens).ToArray(Bridge.global.System.String),this.ScalarFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsNoDateTimeTokens).ToArray(Bridge.global.System.String),this.SingleParameterFunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsNoDateTimeTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationSingleParameterTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationManyParametersTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationThreeParametersTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTwoParametersTokens).ToArray(Bridge.global.System.String),this.SummarizeAggregationAliasesTokens=Bridge.global.System.Array.init(["argmax","argmin"],Bridge.global.System.String),this.SortedSummarizeAggregators=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedMakeSeriesAggregationTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.MakeSeriesAggregationTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedDatetimeFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.DatetimeFunctionsTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.SortedExtendFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ZeroParameterFunctionsNoDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).select(e.$.Kusto.Data.IntelliSense.CslCommandParser.f3).ToArray(Bridge.global.System.String),this.FunctionsTokens=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ScalarFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ZeroParameterFunctionsNoDateTimeTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).union(Kusto.Data.IntelliSense.CslCommandParser.IntrinsicFunctionTokens).ToArray(Bridge.global.System.String),this.SortedEvaluateFunctions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.PluginTokens).orderBy(e.$.Kusto.Data.IntelliSense.CslCommandParser.f2).ToArray(Bridge.global.System.String),this.s_isCommentLineRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*//",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions)}},methods:{IsAdminCommand$1:function(e,t){return Kusto.Data.IntelliSense.CslCommandParser.IsStartingWithPrefix(e,".",t)},IsAdminCommand:function(e){return Kusto.Data.IntelliSense.CslCommandParser.IsAdminCommand$1(e,{})},IsStartingWithPrefix:function(e,t,n){n.v=e.trim();for(var i=Bridge.global.System.String.split(e,Bridge.global.System.Array.init(["\\n"],Bridge.global.System.String),null,1),r=0;r0&&(n.v=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(i).skip(r)).join("\\n").trim()),!0;if(!Kusto.Data.IntelliSense.CslCommandParser.s_isCommentLineRegex.isMatch(s))return r>0&&(n.v=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(i).skip(r)).join("\\n").trim()),!1}return!1},IsClientDirective:function(e,t){return Kusto.Data.IntelliSense.CslCommandParser.IsStartingWithPrefix(e,"#",t)}}},fields:{m_hashedCommands:null,m_rulesProvider:null},props:{Results:null},ctors:{ctor:function(){this.$initialize(),this.Reset()}},methods:{Reset:function(){this.m_hashedCommands=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.CslCommand)),this.Results=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand).ctor)},Parse:function(t,n,i){var r=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CslCommand).ctor);Bridge.referenceEquals(this.m_rulesProvider,t)||(this.Reset(),this.m_rulesProvider=t);var s=Kusto.Data.IntelliSense.CslCommandParser.CslCommandTokenizer.GetCommands(n);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.CslCommand,s))for(var a=0;a *rightRange*) evaluates to `true`.","**Filtering numeric values using \'!between\' operator** \\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 10 step 1\\r\\n| where x !between (5 .. 9)\\r\\n```\\r\\n\\r\\n|x|\\r\\n|---|\\r\\n|1|\\r\\n|2|\\r\\n|3|\\r\\n|4|\\r\\n|10|\\r\\n\\r\\n**Filtering datetime using \'between\' operator** \\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| where StartTime !between (datetime(2007-07-27) .. datetime(2007-07-30))\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|58590|\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| where StartTime !between (datetime(2007-07-27) .. 3d)\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|58590|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_notbetweenoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"abs","Calculates the absolute value of the input.","**Syntax**\\r\\n\\r\\n`abs(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: An integer or real number, or a timespan value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Absolute value of x.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_abs_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"acos","Returns the angle whose cosine is the specified number (the inverse operation of [`cos()`](query_language_cosfunction.md)) .","**Syntax**\\r\\n\\r\\n`acos(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number in range [-1, 1].\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The value of the arc cosine of `x`\\r\\n* `null` if `x` < -1 or `x` > 1","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_acosfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ago","Subtracts the given timespan from the current UTC clock time.","ago(1h)\\r\\n ago(1d)\\r\\n\\r\\nLike `now()`, this function can be used multiple times\\r\\nin a statement and the UTC clock time being referenced will be the same\\r\\nfor all instantiations.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`ago(`*a_timespan*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *a_timespan*: Interval to subtract from the current UTC clock time\\r\\n(`now()`).\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`now() - a_timespan`","All rows with a timestamp in the past hour:\\r\\n\\r\\n\\r\\n```\\r\\nT | where Timestamp > ago(1h)\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_agofunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"any","Returns random non-empty value from the specified expression values.",\'This is useful, for example, when some column has a large number of values\\r\\n(e.g., an "error text" column) and you want to sample that column once per a unique value of the compound group key.\\r\\n\\r\\nNote that there are *no guarantees* about which record will be returned; the algorithm for selecting\\r\\nthat record is undocumented and one should not assume it is stable.\\r\\n\\r\\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `any(` (*Expr* [`,` *Expr2* ...] | `*`) `)` ...\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *Expr2* .. *ExprN*: Additional expressions that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nRandomly selects one row of the group and returns the value of the specified expression.\\r\\n\\r\\nWhen used used with a single parameter (single column) - `any()` will return a non-null value if such present.\',"Show Random Continent:\\r\\n\\r\\n Continents | summarize any(Continent)\\r\\n\\r\\n![](./images/aggregations/any1.png)\\r\\n\\r\\n\\r\\nShow all the details for a random row:\\r\\n\\r\\n Continents | summarize any(*) \\r\\n\\r\\n![](./images/aggregations/any2.png)\\r\\n\\r\\n\\r\\nShow all the details for each random continent:\\r\\n\\r\\n Continents | summarize any(*) by Continent\\r\\n\\r\\n![](./images/aggregations/any3.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_any_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"arg_max","Finds a row in the group that maximises *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` [`(`*NameExprToMaximize* `,` *NameExprToReturn* [`,` ...] `)=`] `arg_max` `(`*ExprToMaximize*, `*` | *ExprToReturn* [`,` ...]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ExprToMaximize*: Expression that will be used for aggregation calculation. \\r\\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMaximize* is\\r\\n maximum. Expression to return may be a wildcard (*) to return all columns of the input table.\\r\\n* *NameExprToMaximize*: An optional name for the result column representing *ExprToMaximize*.\\r\\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nFinds a row in the group that maximises *ExprToMaximize*, and \\r\\nreturns the value of *ExprToReturn* (or `*` to return the entire row).","See examples for [arg_min()](query_language_arg_min_aggfunction.md) aggregation function\\r\\n\\r\\n**Notes**\\r\\n\\r\\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\\r\\nthe input to the `summarize` operator will be restricted to include only the columns\\r\\nthat are used following that operator, as the optimization rule to automatically \\r\\nproject-away such columns is currently not implemented. In other words, make sure\\r\\nto introduce a projection similar to the marked line below:\\r\\n\\r\\n\\x3c!--- csl ---\\x3e\\r\\n```\\r\\ndatatable(a:string, b:string, c:string, d:string) [...]\\r\\n| project a, b, c // <-- Add this projection to remove d\\r\\n| summarize arg_max(a, *)\\r\\n| project B=b, C=c\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arg_max_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"arg_min","Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` [`(`*NameExprToMinimize* `,` *NameExprToReturn* [`,` ...] `)=`] `arg_min` `(`*ExprToMinimize*, `*` | *ExprToReturn* [`,` ...]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ExprToMinimize*: Expression that will be used for aggregation calculation. \\r\\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMinimize* is\\r\\n minimum. Expression to return may be a wildcard (*) to return all columns of the input table.\\r\\n* *NameExprToMinimize*: An optional name for the result column representing *ExprToMinimize*.\\r\\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nFinds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","Show cheapest supplier of each product:\\r\\n\\r\\n Supplies | summarize arg_min(Price, Supplier) by Product\\r\\n\\r\\nShow all the details, not just the supplier name:\\r\\n\\r\\n Supplies | summarize arg_min(Price, *) by Product\\r\\n\\r\\nFind the southernmost city in each continent, with its country:\\r\\n\\r\\n PageViewLog \\r\\n | summarize (latitude, min_lat_City, min_lat_country)=arg_min(latitude, City, country) \\r\\n by continent\\r\\n\\r\\n![](./images/aggregations/argmin.png)\\r\\n \\r\\n **Notes**\\r\\n\\r\\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\\r\\nthe input to the `summarize` operator will be restricted to include only the columns\\r\\nthat are used following that operator, as the optimization rule to automatically \\r\\nproject-away such columns is currently not implemented. In other words, make sure\\r\\nto introduce a projection similar to the marked line below:\\r\\n\\r\\n\\x3c!--- csl ---\\x3e\\r\\n```\\r\\ndatatable(a:string, b:string, c:string, d:string) [...]\\r\\n| project a, b, c // <-- Add this projection to remove d\\r\\n| summarize arg_min(a, *)\\r\\n| project B=b, C=c\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arg_min_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"argmax","Finds a row in the group that maximises *ExprToMaximize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` [`(`*NameExprToMaximize* `,` *NameExprToReturn* [`,` ...] `)=`] `argmax` `(`*ExprToMaximize*, `*` | *ExprToReturn* [`,` ...]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ExprToMaximize*: Expression that will be used for aggregation calculation. \\r\\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMaximize* is\\r\\n maximum. Expression to return may be a wildcard (*) to return all columns of the input table.\\r\\n* *NameExprToMaximize*: An optional name for the result column representing *ExprToMaximize*.\\r\\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nFinds a row in the group that maximises *ExprToMaximize*, and \\r\\nreturns the value of *ExprToReturn* (or `*` to return the entire row).","See examples for [argmin()](query_language_argmin_aggfunction.md) aggregation function\\r\\n\\r\\n**Notes**\\r\\n\\r\\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\\r\\nthe input to the `summarize` operator will be restricted to include only the columns\\r\\nthat are used following that operator, as the optimization rule to automatically \\r\\nproject-away such columns is currently not implemented. In other words, make sure\\r\\nto introduce a projection similar to the marked line below:\\r\\n\\r\\n\\x3c!--- csl ---\\x3e\\r\\n```\\r\\ndatatable(a:string, b:string, c:string, d:string) [...]\\r\\n| project a, b, c // <-- Add this projection to remove d\\r\\n| summarize argmax(a, *)\\r\\n| project B=max_a_b, C=max_a_c\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_argmax_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"argmin","Finds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` [`(`*NameExprToMinimize* `,` *NameExprToReturn* [`,` ...] `)=`] `argmin` `(`*ExprToMinimize*, `*` | *ExprToReturn* [`,` ...]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ExprToMinimize*: Expression that will be used for aggregation calculation. \\r\\n* *ExprToReturn*: Expression that will be used for returning the value when *ExprToMinimize* is\\r\\n minimum. Expression to return may be a wildcard (*) to return all columns of the input table.\\r\\n* *NameExprToMinimize*: An optional name for the result column representing *ExprToMinimize*.\\r\\n* *NameExprToReturn*: Additional optional names for the result columns representing *ExprToReturn*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nFinds a row in the group that minimizes *ExprToMinimize*, and returns the value of *ExprToReturn* (or `*` to return the entire row).","Show cheapest supplier of each product:\\r\\n\\r\\n Supplies | summarize argmin(Price, Supplier) by Product\\r\\n\\r\\nShow all the details, not just the supplier name:\\r\\n\\r\\n Supplies | summarize argmin(Price, *) by Product\\r\\n\\r\\nFind the southernmost city in each continent, with its country:\\r\\n\\r\\n PageViewLog \\r\\n | summarize (latitude, City, country)=argmin(latitude, City, country) \\r\\n by continent\\r\\n\\r\\n![](./images/aggregations/argmin.png)\\r\\n \\r\\n **Notes**\\r\\n\\r\\nWhen using a wildcard (`*`) as *ExprToReturn*, it is **strongly recommended** that\\r\\nthe input to the `summarize` operator will be restricted to include only the columns\\r\\nthat are used following that operator, as the optimization rule to automatically \\r\\nproject-away such columns is currently not implemented. In other words, make sure\\r\\nto introduce a projection similar to the marked line below:\\r\\n\\r\\n\\x3c!--- csl ---\\x3e\\r\\n```\\r\\ndatatable(a:string, b:string, c:string, d:string) [...]\\r\\n| project a, b, c // <-- Add this projection to remove d\\r\\n| summarize argmin(a, *)\\r\\n| project B=max_a_b, C=max_a_c\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_argmin_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"array_concat","Concatenates a number of dynamic arrays to a single array.","**Syntax**\\r\\n\\r\\n`array_concat(`*arr1*`[`,` *arr2*, ...]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *arr1...arrN*: Input arrays to be concatenated into a dynamic array. All arguments must be dynamic arrays (see [pack_array](query_language_packarrayfunction.md)). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nDynamic array of arrays with arr1, arr2, ... , arrN.","```\\r\\nrange x from 1 to 3 step 1\\r\\n| extend y = x * 2\\r\\n| extend z = y * 2\\r\\n| extend a1 = pack_array(x,y,z), a2 = pack_array(x, y)\\r\\n| project array_concat(a1, a2)\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|[1,2,4,1,2]|\\r\\n|[2,4,8,2,4]|\\r\\n|[3,6,12,3,6]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arrayconcatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"array_length","Calculates the number of elements in a dynamic array.","**Syntax**\\r\\n\\r\\n`array_length(`*array*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *array*: A `dynamic` value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe number of elements in *array*, or `null` if *array* is not an array.","```\\r\\nprint array_length(parsejson(\'[1, 2, 3, \\"four\\"]\')) == 4\\r\\n\\r\\nprint array_length(parsejson(\'[8]\')) == 1\\r\\n\\r\\nprint array_length(parsejson(\'[{}]\')) == 1\\r\\n\\r\\nprint array_length(parsejson(\'[]\')) == 0\\r\\n\\r\\nprint array_length(parsejson(\'{}\')) == null\\r\\n\\r\\nprint array_length(parsejson(\'21\')) == null\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_arraylengthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"As","`As` operator temporarily binds a name to the operator\'s input tabular expression.","**Syntax**\\r\\n\\r\\n`T | as *name*`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: A tabular expression.\\r\\n* *name*: A temporary name for the tabular expression. \\r\\n\\r\\n**Notes**\\r\\n* The name given by `as` will be used in the `withsource=` column of [union](./query_language_unionoperator.md), the `source_` column of [find](./query_language_findoperator.md) and the `$table` column of [search](./query_language_searchoperator.md)\\r\\n* The tabular expression named using \'as\' in a [join](./query_language_joinoperator.md)\'s \'left side\' can be used when the [join](./query_language_joinoperator.md)\'s \'right side\'",\'```\\r\\n// 1. In the following 2 example the union\\\'s generated TableName column will consist of \\\'T1\\\' and \\\'T2\\\'\\r\\nrange x from 1 to 10 step 1 \\r\\n| as T1 \\r\\n| union withsource=TableName T2\\r\\n\\r\\nunion withsource=TableName (range x from 1 to 10 step 1 | as T1), T2\\r\\n\\r\\n// 2. In the following example, the \\\'left side\\\' of the join will be: \\r\\n// MyLogTable filtered by type == "Event" and Name == "Start"\\r\\n// and the \\\'right side\\\' of the join will be: \\r\\n// MyLogTable filtered by type == "Event" and Name == "Stop"\\r\\nMyLogTable \\r\\n| where type == "Event"\\r\\n| as T\\r\\n| where Name == "Start"\\r\\n| join (\\r\\n T\\r\\n | where Name == "Stop"\\r\\n) on ActivityId\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_asoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"asin","Returns the angle whose sine is the specified number (the inverse operation of [`sin()`](query_language_sinfunction.md)) .","**Syntax**\\r\\n\\r\\n`asin(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number in range [-1, 1].\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The value of the arc sine of `x`\\r\\n* `null` if `x` < -1 or `x` > 1","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_asinfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"atan","Returns the angle whose tangent is the specified number (the inverse operation of [`tan()`](query_language_tanfunction.md)) .","**Syntax**\\r\\n\\r\\n`atan(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The value of the arc tangent of `x`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_atanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"atan2","Calculates the angle, in radians, between the positive x-axis and the ray from the origin to the point (y, x).","**Syntax**\\r\\n\\r\\n`atan2(`*y*`,`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: X coordinate (a real number).\\r\\n* *y*: Y coordinate (a real number).\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The angle, in radians, between the positive x-axis and the ray from the origin to the point (y, x).","```\\r\\nprint atan2_0 = atan2(1,1) // Pi / 4 radians (45 degrees)\\r\\n| extend atan2_1 = atan2(0,-1) // Pi radians (180 degrees)\\r\\n| extend atan2_2 = atan2(-1,0) // - Pi / 2 radians (-90 degrees)\\r\\n\\r\\n```\\r\\n\\r\\n|atan2_0|atan2_1|atan2_2|\\r\\n|---|---|---|\\r\\n|0.785398163397448|3.14159265358979|-1.5707963267949|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_atan2function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"avg","Calculates the average of *Expr* across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `avg(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe average value of *Expr* across the group.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_avg_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"base64_decodestring","Decodes a base64 string to a UTF-8 string","**Syntax**\\r\\n\\r\\n`base64_decodestring(`*String*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *String*: Input string to be decoded from base64 to UTF8-8 string.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns UTF-8 string decoded from base64 string.",\'```\\r\\nrange x from 1 to 1 step 1\\r\\n| project base64_decodestring("S3VzdG8=")\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|Kusto|\\r\\n\\r\\nTrying to decode a base64 string which was generated from invalid UTF-8 encoding will return null:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| project base64_decodestring("U3RyaW5n0KHR0tGA0L7Rh9C60LA=")\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n||\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_base64decodestringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"base64_encodestring","Encodes a string as base64 string","**Syntax**\\r\\n\\r\\n`base64_encodestring(`*String*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *String*: Input string to be encoded as base64 string.\\r\\n\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns the string encoded as base64 string.",\'```\\r\\nrange x from 1 to 1 step 1\\r\\n| project base64_encodestring("Kusto")\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|S3VzdG8=|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_base64encodestringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"between","Matches the input that is inside the inclusive range.","Table1 | where Num1 between (1 .. 10)\\r\\n Table1 | where Time between (datetime(2017-01-01) .. datetime(2017-01-01))\\r\\n\\r\\n`between` can operate on any numeric, datetime, or timespan expression.\\r\\n \\r\\n**Syntax**\\r\\n\\r\\n*T* `|` `where` *expr* `between` `(`*leftRange*` .. `*rightRange*`)` \\r\\n \\r\\nIf *expr* expression is datetime - another syntactic sugar syntax is provided:\\r\\n\\r\\n*T* `|` `where` *expr* `between` `(`*leftRangeDateTime*` .. `*rightRangeTimespan*`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T* - The tabular input whose records are to be matched.\\r\\n* *expr* - the expression to filter.\\r\\n* *leftRange* - expression of the left range (inclusive).\\r\\n* *rightRange* - expression of the rihgt range (inclusive).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nRows in *T* for which the predicate of (*expr* >= *leftRange* and *expr* <= *rightRange*) evaluates to `true`.","**Filtering numeric values using \'between\' operator** \\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 100 step 1\\r\\n| where x between (50 .. 55)\\r\\n```\\r\\n\\r\\n|x|\\r\\n|---|\\r\\n|50|\\r\\n|51|\\r\\n|52|\\r\\n|53|\\r\\n|54|\\r\\n|55|\\r\\n\\r\\n**Filtering datetime using \'between\' operator** \\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| where StartTime between (datetime(2007-07-27) .. datetime(2007-07-30))\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|476|\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| where StartTime between (datetime(2007-07-27) .. 3d)\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|476|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_betweenoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin","Rounds values down to an integer multiple of a given bin size.",\'Used a lot in the [`summarize by ...`](./query_language_summarizeoperator.md) query. \\r\\nIf you have a scattered set of values, they will be grouped into a smaller set of specific values.\\r\\n\\r\\nAlias to `floor()` function.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`bin(`*value*`,`*roundTo*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *value*: A number, date, or timespan. \\r\\n* *roundTo*: The "bin size". A number, date or timespan that divides *value*. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe nearest multiple of *roundTo* below *value*. \\r\\n \\r\\n `(toint((value/roundTo))) * roundTo`\',"Expression | Result\\r\\n---|---\\r\\n`bin(4.5, 1)` | `4.0`\\r\\n`bin(time(16d), 7d)` | `14d`\\r\\n`bin(datetime(1970-05-11 13:45:07), 1d)`| `datetime(1970-05-11)`\\r\\n\\r\\n\\r\\nThe following expression calculates a histogram of durations,\\r\\nwith a bucket size of 1 second:\\r\\n\\r\\n\\r\\n```\\r\\nT | summarize Hits=count() by bin(Duration, 1s)\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin_at",\'Rounds values down to a fixed-size "bin", with control over the bin\\\'s starting point.\\r\\n(See also [`bin function`](./query_language_binfunction.md).)\',\'**Syntax**\\r\\n\\r\\n`bin_at` `(`*Expression*`,` *BinSize*`, ` *FixedPoint*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expression*: A scalar expression of a numeric type (including `datetime` and `timespan`)\\r\\n indicating the value to round.\\r\\n* *BinSize*: A scalar constant of the same type as *Expression* indicating\\r\\n the size of each bin. \\r\\n* *FixedPoint*: A scalar constant of the same type as *Expression* indicating\\r\\n one value of *Expression* which is a "fixed point" (that is, a value `fixed_point`\\r\\n for which `bin_at(fixed_point, bin_size, fixed_point) == fixed_point`.)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe nearest multiple of *BinSize* below *Expression*, shifted so that *FixedPoint*\\r\\nwill be translated into itself.\',\'|Expression |Result |Comments |\\r\\n|------------------------------------------------------------------------------|---------------------------------|---------------------------|\\r\\n|`bin_at(6.5, 2.5, 7)` |`4.5` ||\\r\\n|`bin_at(time(1h), 1d, 12h)` |`-12h` ||\\r\\n|`bin_at(datetime(2017-05-15 10:20:00.0), 1d, datetime(1970-01-01 12:00:00.0))`|`datetime(2017-05-14 12:00:00.0)`|All bins will be at noon |\\r\\n|`bin_at(datetime(2017-05-17 10:20:00.0), 7d, datetime(2017-06-04 00:00:00.0))`|`datetime(2017-05-14 00:00:00.0)`|All bins will be on Sundays|\\r\\n\\r\\n\\r\\nIn the following example, notice that the `"fixed point"` arg is returned as one of the bins and the other bins are aligned to it based on the `bin_size`. Also note that each datetime bin represents the starting time of that bin:\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\ndatatable(Date:datetime, Num:int)[\\r\\ndatetime(2018-02-24T15:14),3,\\r\\ndatetime(2018-02-23T16:14),4,\\r\\ndatetime(2018-02-26T15:14),5]\\r\\n| summarize sum(Num) by bin_at(Date, 1d, datetime(2018-02-24 15:14:00.0000000)) \\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|Date|sum_Num|\\r\\n|---|---|\\r\\n|2018-02-23 15:14:00.0000000|4|\\r\\n|2018-02-24 15:14:00.0000000|3|\\r\\n|2018-02-26 15:14:00.0000000|5|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"bin_auto",\'Rounds values down to a fixed-size "bin", with control over the bin size and starting point provided by a query property.\',\'**Syntax**\\r\\n\\r\\n`bin_auto` `(` *Expression* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expression*: A scalar expression of a numeric type indicating the value to round.\\r\\n\\r\\n**Client Request Properties**\\r\\n\\r\\n* `query_bin_auto_size`: A numeric literal indicating the size of each bin.\\r\\n* `query_bin_auto_at`: A numeric literal indicating one value of *Expression* which is a "fixed point" (that is, a value `fixed_point`\\r\\n for which `bin_auto(fixed_point)` == `fixed_point`.)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe nearest multiple of `query_bin_auto_at` below *Expression*, shifted so that `query_bin_auto_at`\\r\\nwill be translated into itself.\',"```\\r\\nset query_bin_auto_size=1h;\\r\\nset query_bin_auto_at=datetime(2017-01-01 00:05);\\r\\nrange Timestamp from datetime(2017-01-01 00:05) to datetime(2017-01-01 02:00) step 1m\\r\\n| summarize count() by bin_auto(Timestamp)\\r\\n```\\r\\n\\r\\n|Timestamp | count_|\\r\\n|-----------------------------|-------|\\r\\n|2017-01-01 00:05:00.0000000 | 60 |\\r\\n|2017-01-01 01:05:00.0000000 | 56 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_bin_autofunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_and","Returns a result of the bitwise `and` operation between two values","binary_and(x,y)\\t\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`binary_and(`*num1*`,` *num2* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*, *num2*: long numbers.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns logical AND operation on a pair of numbers: num1 & num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_andfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_not","Returns a bitwise negation of the input value.","binary_not(x)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`binary_not(`*num1*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*: numeric \\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns logical NOT operation on a number: num1.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_notfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_or","Returns a result of the bitwise `or` operation of the two values","binary_or(x,y)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`binary_or(`*num1*`,` *num2* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*, *num2*: long numbers.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns logical OR operation on a pair of numbers: num1 | num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_orfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_shift_left","Returns binary shift left operation on a pair of numbers","binary_shift_left(x,y)\\t\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`binary_shift_left(`*num1*`,` *num2* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*, *num2*: int numbers.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns binary shift left operation on a pair of numbers: num1 << (num2%64).\\r\\nIf n is negative a NULL value is returned.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_shift_leftfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_shift_right","eturns binary shift right operation on a pair of numbers","binary_shift_right(x,y)\\t\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`binary_shift_right(`*num1*`,` *num2* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*, *num2*: long numbers.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns binary shift right operation on a pair of numbers: num1 >> (num2%64).\\r\\nIf n is negative a NULL value is returned.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_shift_rightfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"binary_xor","Returns a result of the bitwise `xor` operation of the two values","binary_xor(x,y)\\r\\n\\t\\r\\n**Syntax**\\r\\n\\r\\n`binary_xor(`*num1*`,` *num2* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *num1*, *num2*: long numbers.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns logical XOR operation on a pair of numbers: num1 ^ num2.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_binary_xorfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"buildschema","Returns the minimal schema that admits all values of *DynamicExpr*.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `buildschema(`*DynamicExpr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *DynamicExpr*: Expression that will be used for aggregation calculation. The parameter column type should be `dynamic`. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe maximum value of *Expr* across the group.\\r\\n\\r\\n**Tip** \\r\\nIf `buildschema(json_column)` gives a syntax error:\\r\\n*Is your `json_column` a string rather than a dynamic object?* \\r\\nIf so, you need to use `buildschema(parsejson(json_column))`.",\'Assume the input column has three dynamic values:\\r\\n\\r\\n||\\r\\n|---|\\r\\n|`{"x":1, "y":3.5}`|\\r\\n|`{"x":"somevalue", "z":[1, 2, 3]}`|\\r\\n|`{"y":{"w":"zzz"}, "t":["aa", "bb"], "z":["foo"]}`|\\r\\n||\\r\\n\\r\\nThe resulting schema would be:\\r\\n\\r\\n { \\r\\n "x":["int", "string"], \\r\\n "y":["double", {"w": "string"}], \\r\\n "z":{"`indexer`": ["int", "string"]}, \\r\\n "t":{"`indexer`": "string"} \\r\\n }\\r\\n\\r\\nThe schema tells us that:\\r\\n\\r\\n* The root object is a container with four properties named x, y, z and t.\\r\\n* The property called "x" that could be either of type "int" or of type "string".\\r\\n* The property called "y" that could of either of type "double", or another container with a property called "w" of type "string".\\r\\n* The ``indexer`` keyword indicates that "z" and "t" are arrays.\\r\\n* Each item in the array "z" is either an int or a string.\\r\\n* "t" is an array of strings.\\r\\n* Every property is implicitly optional, and any array may be empty.\\r\\n\\r\\n### Schema model\\r\\n\\r\\nThe syntax of the returned schema is:\\r\\n\\r\\n Container ::= \\\'{\\\' Named-type* \\\'}\\\';\\r\\n Named-type ::= (name | \\\'"`indexer`"\\\') \\\':\\\' Type;\\r\\n\\tType ::= Primitive-type | Union-type | Container;\\r\\n Union-type ::= \\\'[\\\' Type* \\\']\\\';\\r\\n Primitive-type ::= "int" | "string" | ...;\\r\\n\\r\\nThey are equivalent to a subset of the TypeScript type annotations, encoded as a Kusto dynamic value. In Typescript, the example schema would be:\\r\\n\\r\\n var someobject: \\r\\n { \\r\\n x?: (number | string), \\r\\n y?: (number | { w?: string}), \\r\\n z?: { [n:number] : (int | string)},\\r\\n t?: { [n:number]: string } \\r\\n }\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_buildschema_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"case","Evaluates a list of predicates and returns the first result expression whose predicate is satisfied.","If neither of the predicates return `true`, the result of the last expression (the `else`) is returned.\\r\\nAll odd arguments (count starts at 1) must be expressions that evaluate to a `boolean` value.\\r\\nAll even arguments (the `then`s) and the last argument (the `else`) must be of the same type.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`case(`*predicate_1*`,` *then_1*,\\r\\n *predicate_2*`,` *then_2*,\\r\\n *predicate_3*`,` *then_3*,\\r\\n *else*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *predicate_i*: An expression that evaluates to a `boolean` value.\\r\\n* *then_i*: An expression that gets evaluated and its value is returned from the function if *predicate_i* is the first predicate that evaluates to `true`.\\r\\n* *else*: An expression that gets evaluated and its value is returned from the function if neither of the *predicate_i* evaluate to `true`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe value of the first *then_i* whose *predicate_i* evaluates to `true`, or the value of *else* if neither of the predicates are satisfied.",\'```\\r\\nrange Size from 1 to 15 step 2\\r\\n| extend bucket = case(Size <= 3, "Small", \\r\\n Size <= 10, "Medium", \\r\\n "Large")\\r\\n```\\r\\n\\r\\n|Size|bucket|\\r\\n|---|---|\\r\\n|1|Small|\\r\\n|3|Small|\\r\\n|5|Medium|\\r\\n|7|Medium|\\r\\n|9|Medium|\\r\\n|11|Large|\\r\\n|13|Large|\\r\\n|15|Large|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_casefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ceiling","Calculates the smallest integer greater than, or equal to, the specified numeric expression.","**Syntax**\\r\\n\\r\\n`ceiling(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The smallest integer greater than, or equal to, the specified numeric expression.","```\\r\\nprint c1 = ceiling(-1.1), c2 = ceiling(0), c3 = ceiling(0.9)\\r\\n\\r\\n```\\r\\n\\r\\n|c1|c2|c3|\\r\\n|---|---|---|\\r\\n|-1|0|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ceilingfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cluster","Changes the reference of the query to a remote cluster.","cluster(\'help\').database(\'Sample\').SomeTable\\r\\n \\r\\n**Syntax**\\r\\n\\r\\n`cluster(`*stringExpression*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *stringExpression*: Name of the cluster that is referenced. Cluster name can be either \\r\\nas fully qualified DNS name or as a stirng that will be suffixied with `.kusto.windows.net`. \\r\\n\\r\\n**Notes**\\r\\n\\r\\n* For accessing database within the same cluster - use [database()](query_language_databasefunction.md) function.\\r\\n* More information about cross-cluster and cross-database queries available [here](query_language_syntax.md)","### Use cluster() to access remote cluster \\r\\n\\r\\nThe next query can be run on any of the Kusto clusters.\\r\\n\\r\\n\\r\\n```\\r\\ncluster(\'help\').database(\'Samples\').StormEvents | count\\r\\n\\r\\ncluster(\'help.kusto.windows.net\').database(\'Samples\').StormEvents | count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use cluster() inside let statements \\r\\n\\r\\nThe same query as above can be rewritten to use inline function (let statement) that \\r\\nreceives a parameter `clusterName` - which is passed into the cluster() function.\\r\\n\\r\\n\\r\\n```\\r\\nlet foo = (clusterName:string)\\r\\n{\\r\\n cluster(clusterName).database(\'Samples\').StormEvents | count\\r\\n};\\r\\nfoo(\'help\')\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use cluster() inside Functions \\r\\n\\r\\nThe same query as above can be rewritten to be used in a function that \\r\\nreceives a parameter `clusterName` - which is passed into the cluster() function.\\r\\n\\r\\n\\r\\n```\\r\\n.create function foo(clusterName:string)\\r\\n{\\r\\n cluster(clusterName).database(\'Samples\').StormEvents | count\\r\\n};\\r\\n```\\r\\n\\r\\n**Note:** such functions can be used only locally and not in the cross-cluster query.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_clusterfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"coalesce","Evaluates a list of expressions and returns the first non-null (or non-empty for string) expression.",\'coalesce(tolong("not a number"), tolong("42"), 33) == 42\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`coalesce(`*expr_1*`, `*expr_2`, ...)\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *expr_i*: A scalar expression, to be evaluated.\\r\\n\\r\\n- All arguments must be of the same type.\\r\\n- Maximum of 64 arguments is supported.\\r\\n\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe value of the first *expr_i* whose value is not null (or not-empty for string expressions).\',\'```\\r\\nprint result=coalesce(tolong("not a number"), tolong("42"), 33)\\r\\n```\\r\\n\\r\\n|result|\\r\\n|---|\\r\\n|42|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_coalescefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"consume","Pulls all the data from its source tabular expression without actually doing anything with it.","T | consume\\r\\n\\r\\nThe `consume` operator pulls all the data from its source tabular expression\\r\\nwithout actually doing anything with it. It can be used for estimating the\\r\\ncost of a query without actually delivering the results back to the client.\\r\\n(The estimation is not exact for a variety of reasons; for example, `consume`\\r\\nis calculated distributively, so `T | consume` will not even deliver the table\'s\\r\\ndata between the nodes of the cluster.)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_consumeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cos","Returns the cosine function.","**Syntax**\\r\\n\\r\\n`cos(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The result of `cos(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cosfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cot","Calculates the trigonometric cotangent of the specified angle, in radians.","**Syntax**\\r\\n\\r\\n`cot(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The cotangent function value for `x`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cotfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"count","Returns a count of the records per summarization group (or in total if summarization is done without grouping).","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n* Use the [countif](query_language_countif_aggfunction.md) aggregation function\\r\\n to count only records for which some predicate returns `true`.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `count()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns a count of the records per summarization group (or in total if summarization is done without grouping).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_count_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"count","Returns the number of records in the input record set.","**Syntax**\\r\\n\\r\\n`T | count`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The tabular data whose records are to be counted.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis function returns a table with a single record and column of type\\r\\n`long`. The value of the only cell is the number of records in *T*.","```\\r\\nStormEvents | count\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"countif","Returns a count of rows for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\nSee also - [count()](query_language_count_aggfunction.md) function, which counts rows without predicate expression.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `countif(`*Predicate*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Predicate*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns a count of rows for which *Predicate* evaluates to `true`.\\r\\n\\r\\n**Tip**\\r\\n\\r\\nUse `summarize countif(filter)` instead of `where filter | summarize count()`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"countof","Counts occurrences of a substring in a string. Plain string matches may overlap; regex matches do not.",\'countof("The cat sat on the mat", "at") == 3\\r\\n countof("The cat sat on the mat", @"\\\\b.at\\\\b", "regex") == 3\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`countof(`*text*`,` *search* [`,` *kind*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *text*: A string.\\r\\n* *search*: The plain string or [regular expression](./query_language_re2.md) to match inside *text*.\\r\\n* *kind*: `"normal"|"regex"` Default `normal`. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe number of times that the search string can be matched in the container. Plain string matches may overlap; regex matches do not.\',\'|||\\r\\n|---|---\\r\\n|`countof("aaa", "a")`| 3 \\r\\n|`countof("aaaa", "aa")`| 3 (not 2!)\\r\\n|`countof("ababa", "ab", "normal")`| 2\\r\\n|`countof("ababa", "aba")`| 2\\r\\n|`countof("ababa", "aba", "regex")`| 1\\r\\n|`countof("abcabc", "a.c", "regex")`| 2\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_countoffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"current_principal","Returns the current principal running this query.","**Syntax**\\r\\n\\r\\n`current_principal()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe current principal FQN as a `string`.","```\\r\\n.show queries | where Principal == current_principal()\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_current_principalfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cursor_after","A predicate over the records of a table to compare their ingestion time\\r\\nagainst a database cursor.","**Syntax**\\r\\n\\r\\n`cursor_after` `(` *RHS* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *RHS*: Either an empty string literal, or a valid database cursor value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA scalar value of type `bool` that indicates whether the record was ingested\\r\\nafter the database cursor *RHS* (`true`) or not (`false`).\\r\\n\\r\\n**Comments**\\r\\n\\r\\nSee [Database Cursor](../concepts/concepts_databasecursor.md) for a detailed\\r\\nexplanation of this function, the scenario in which it should be used, its\\r\\nrestrictions, and side-effects.\\r\\n\\r\\nThis function can only be invoked on records of a table which has the\\r\\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) enabled.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cursorafterfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"cursor_before_or_at","A predicate over the records of a table to compare their ingestion time\\r\\nagainst a database cursor.","**Syntax**\\r\\n\\r\\n`cursor_before_or_at` `(` *RHS* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *RHS*: Either an empty string literal, or a valid database cursor value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA scalar value of type `bool` that indicates whether the record was ingested\\r\\nbefore or at the database cursor *RHS* (`true`) or not (`false`).\\r\\n\\r\\n**Comments**\\r\\n\\r\\nSee [Database Cursor](../concepts/concepts_databasecursor.md) for a detailed\\r\\nexplanation of this function, the scenario in which it should be used, its\\r\\nrestrictions, and side-effects.\\r\\n\\r\\nThis function can only be invoked on records of a table which has the\\r\\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) enabled.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_cursorbeforeoratfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"database","Changes the reference of the query to a specific database within the cluster scope.","database(\'Sample\').StormEvents\\r\\n cluster(\'help\').database(\'Sample\').StormEvents\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`database(`*stringExpression*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *stringExpression*: Name of the database that is referenced. Database identified can be either `DatabaseName` or `PrettyName`. \\r\\n\\r\\n**Notes**\\r\\n\\r\\n* For accessing remote cluster and remote database, see [cluster()](query_language_clusterfunction.md) scope function.\\r\\n* More information about cross-cluster and cross-database queries available [here](query_language_syntax.md)","### Use database() to access table of other database. \\r\\n\\r\\n\\r\\n```\\r\\ndatabase(\'Samples\').StormEvents | count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use database() inside let statements \\r\\n\\r\\nThe same query as above can be rewritten to use inline function (let statement) that \\r\\nreceives a parameter `dbName` - which is passed into the database() function.\\r\\n\\r\\n\\r\\n```\\r\\nlet foo = (dbName:string)\\r\\n{\\r\\n database(dbName).StormEvents | count\\r\\n};\\r\\nfoo(\'help\')\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use database() inside Functions \\r\\n\\r\\nThe same query as above can be rewritten to be used in a function that \\r\\nreceives a parameter `dbName` - which is passed into the database() function.\\r\\n\\r\\n\\r\\n```\\r\\n.create function foo(dbName:string)\\r\\n{\\r\\n database(dbName).StormEvents | count\\r\\n};\\r\\n```\\r\\n\\r\\n**Note:** such functions can be used only locally and not in the cross-cluster query.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_databasefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"datatable","Returns a table whose schema and values are defined in the query itself.","Note that this operator does not have a pipeline input.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`datatable` `(` *ColumnName* `:` *ColumnType* [`,` ...] `)` `[` *ScalarValue* [`,` *ScalarValue* ...] `]`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ColumnName*, *ColumnType*: These define the schema of the table. The Syntax\\r\\n used is precisely the same as the syntax used when defining a table\\r\\n (see [.create table](../controlCommands/controlcommands_tables.md#create-table)).\\r\\n* *ScalarValue*: A constant scalar value to insert into the table. The number of values\\r\\n must be an integer multiple of the columns in the table, and the *n*\'th value\\r\\n must have a type that corresponds to column *n* % *NumColumns*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis operator returns a data table of the given schema and data.",\'```\\r\\ndatatable (Date:datetime, Event:string)\\r\\n [datetime(1910-06-11), "Born",\\r\\n datetime(1930-01-01), "Enters Ecole Navale",\\r\\n datetime(1953-01-01), "Published first book",\\r\\n datetime(1997-06-25), "Died"]\\r\\n| where strlen(Event) > 4\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datatableoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_add","Calculates a new [datetime](./scalar-data-types/datetime.md) from a specified datepart multiplied by a specified amount, added to a specified [datetime](./scalar-data-types/datetime.md).","**Syntax**\\r\\n\\r\\n`datetime_add(`*period*`,`*amount*`,`*datetime*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `period`: [string](./scalar-data-types/string.md). \\r\\n* `amount`: [integer](./scalar-data-types/int.md).\\r\\n* `datetime`: [datetime](./scalar-data-types/datetime.md) value.\\r\\n\\r\\nPossible values of *period*: \\r\\n- Year\\r\\n- Quarter\\r\\n- Month\\r\\n- Week\\r\\n- Day\\r\\n- Hour\\r\\n- Minute\\r\\n- Second\\r\\n- Millisecond\\r\\n- Microsecond\\r\\n- Nanosecond\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA date after a certain time/date interval has been added.","```\\r\\nprint year = datetime_add(\'year\',1,make_datetime(2017,1,1)),\\r\\nquarter = datetime_add(\'quarter\',1,make_datetime(2017,1,1)),\\r\\nmonth = datetime_add(\'month\',1,make_datetime(2017,1,1)),\\r\\nweek = datetime_add(\'week\',1,make_datetime(2017,1,1)),\\r\\nday = datetime_add(\'day\',1,make_datetime(2017,1,1)),\\r\\nhour = datetime_add(\'hour\',1,make_datetime(2017,1,1)),\\r\\nminute = datetime_add(\'minute\',1,make_datetime(2017,1,1)),\\r\\nsecond = datetime_add(\'second\',1,make_datetime(2017,1,1))\\r\\n\\r\\n```\\r\\n\\r\\n|year|quarter|month|week|day|hour|minute|second|\\r\\n|---|---|---|---|---|---|---|---|\\r\\n|2018-01-01 00:00:00.0000000|2017-04-01 00:00:00.0000000|2017-02-01 00:00:00.0000000|2017-01-08 00:00:00.0000000|2017-01-02 00:00:00.0000000|2017-01-01 01:00:00.0000000|2017-01-01 00:01:00.0000000|2017-01-01 00:00:01.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_addfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_diff","Calculates calendarian difference between two [datetime](./scalar-data-types/datetime.md) values.","**Syntax**\\r\\n\\r\\n`datetime_diff(`*period*`,`*datetime_1*`,`*datetime_2*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `period`: `string`. \\r\\n* `datetime_1`: [datetime](./scalar-data-types/datetime.md) value.\\r\\n* `datetime_2`: [datetime](./scalar-data-types/datetime.md) value.\\r\\n\\r\\nPossible values of *period*: \\r\\n- Year\\r\\n- Quarter\\r\\n- Month\\r\\n- Week\\r\\n- Day\\r\\n- Hour\\r\\n- Minute\\r\\n- Second\\r\\n- Millisecond\\r\\n- Microsecond\\r\\n- Nanosecond\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn integer, which represents amount of `periods` in the result of subtraction (`datetime_1` - `datetime_2`).","```\\r\\nprint\\r\\nyear = datetime_diff(\'year\',datetime(2017-01-01),datetime(2000-12-31)),\\r\\nquarter = datetime_diff(\'quarter\',datetime(2017-07-01),datetime(2017-03-30)),\\r\\nmonth = datetime_diff(\'month\',datetime(2017-01-01),datetime(2015-12-30)),\\r\\nweek = datetime_diff(\'week\',datetime(2017-10-29 00:00),datetime(2017-09-30 23:59)),\\r\\nday = datetime_diff(\'day\',datetime(2017-10-29 00:00),datetime(2017-09-30 23:59)),\\r\\nhour = datetime_diff(\'hour\',datetime(2017-10-31 01:00),datetime(2017-10-30 23:59)),\\r\\nminute = datetime_diff(\'minute\',datetime(2017-10-30 23:05:01),datetime(2017-10-30 23:00:59)),\\r\\nsecond = datetime_diff(\'second\',datetime(2017-10-30 23:00:10.100),datetime(2017-10-30 23:00:00.900)),\\r\\nmillisecond = datetime_diff(\'millisecond\',datetime(2017-10-30 23:00:00.200100),datetime(2017-10-30 23:00:00.100900)),\\r\\nmicrosecond = datetime_diff(\'microsecond\',datetime(2017-10-30 23:00:00.1009001),datetime(2017-10-30 23:00:00.1008009)),\\r\\nnanosecond = datetime_diff(\'nanosecond\',datetime(2017-10-30 23:00:00.0000000),datetime(2017-10-30 23:00:00.0000007))\\r\\n```\\r\\n\\r\\n|year|quarter|month|week|day|hour|minute|second|millisecond|microsecond|nanosecond|\\r\\n|---|---|---|---|---|---|---|---|---|---|---|\\r\\n|17|2|13|5|29|2|5|10|100|100|-700|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_difffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"datetime_part","Extracts the requested date part as an integer value.",\'datetime_part("Day",datetime(2015-12-14))\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`datetime_part(`*part*`,`*datetime*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: `datetime`.\\r\\n* `part`: `string`. \\r\\n\\r\\nPossible values of *part*: \\r\\n- Year\\r\\n- Quarter\\r\\n- Month\\r\\n- WeekOfYear\\r\\n- Day\\r\\n- DayOfYear\\r\\n- Hour\\r\\n- Minute\\r\\n- Second\\r\\n- Millisecond\\r\\n- Microsecond\\r\\n- Nanosecond\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn integer representing the extracted part.\',\'```\\r\\nlet dt = datetime(2017-10-30 01:02:03.7654321); \\r\\nprint \\r\\nyear = datetime_part("year", dt),\\r\\nquarter = datetime_part("quarter", dt),\\r\\nmonth = datetime_part("month", dt),\\r\\nweekOfYear = datetime_part("weekOfYear", dt),\\r\\nday = datetime_part("day", dt),\\r\\ndayOfYear = datetime_part("dayOfYear", dt),\\r\\nhour = datetime_part("hour", dt),\\r\\nminute = datetime_part("minute", dt),\\r\\nsecond = datetime_part("second", dt),\\r\\nmillisecond = datetime_part("millisecond", dt),\\r\\nmicrosecond = datetime_part("microsecond", dt),\\r\\nnanosecond = datetime_part("nanosecond", dt)\\r\\n\\r\\n```\\r\\n\\r\\n|year|quarter|month|weekOfYear|day|dayOfYear|hour|minute|second|millisecond|microsecond|nanosecond|\\r\\n|---|---|---|---|---|---|---|---|---|---|---|---|\\r\\n|2017|4|10|44|30|303|1|2|3|765|765432|765432100|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_datetime_partfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofmonth","Returns the integer number representing the day number of the given month","dayofmonth(datetime(2015-12-14)) == 14\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`dayofmonth(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`day number` of the given month.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofweek","Returns the integer number of days since the preceding Sunday, as a `timespan`.","dayofweek(datetime(2015-12-14)) == 1d // Monday\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`dayofweek(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe `timespan` since midnight at the beginning of the preceding Sunday, rounded down to an integer number of days.","```\\r\\ndayofweek(1947-11-29 10:00:05) // time(6.00:00:00), indicating Saturday\\r\\ndayofweek(1970-05-11) // time(1.00:00:00), indicating Monday\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dayofyear","Returns the integer number represents the day number of the given year.","dayofyear(datetime(2015-12-14))\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`dayofweek(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`day number` of the given year.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dayofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcount","Returns an estimate of the number of distinct values of *Expr* in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `dcount(`*Expr* [`,` *Accuracy*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation.\\r\\n* *Accuracy*, if specified, controls the balance between speed and accuracy (see Note).\\r\\n * `0` = the least accurate and fastest calculation. 1.6% error\\r\\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\\r\\n * `2` = accurate and slow calculation; about 0.4% error.\\r\\n * `3` = extra accurate and slow calculation; about 0.28% error.\\r\\n * `4` = super accurate and slowest calculation; about 0.2% error.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns an estimate of the number of distinct values of *Expr* in the group.","```\\r\\nPageViewLog | summarize countries=dcount(country) by continent\\r\\n```\\r\\n\\r\\n![](./images/aggregations/dcount.png)\\r\\n\\r\\n**Tip: Listing distinct values**\\r\\n\\r\\nTo list the distinct values, you can use:\\r\\n- `summarize by *Expr*`\\r\\n- [`makeset`](query_language_makeset_aggfunction.md) : `summarize makeset(`*Expr*`)` \\r\\n\\r\\n**Tip: Accurate distinct count**\\r\\n\\r\\nWhile `dcount()` provides a fast and reliable way to count distinct values,\\r\\nit relies on a statistical algorithm to do so. Therefore, invoking this\\r\\naggregation multiple times might result in different values being returned.\\r\\n\\r\\n* If the accuracy level is `1` and the number of distinct values is smaller than 1000 or so, `dcount()` returns a perfectly-accurate count.\\r\\n* If the accuracy level is `2` and the number of distinct values is smaller than 8000 or so, `dcount()` returns a perfectly-accurate count.\\r\\n* If the number of distinct values is larger than that, but not very\\r\\n large, one may try to use double-`count()` to calculate a single `dcount()`.\\r\\n This is shown in the following example; the two expressions are equivalent\\r\\n (except that the second one might run out of memory): \\r\\n\\r\\n\\r\\n```\\r\\nT | summarize dcount(Key)\\r\\n\\r\\nT | summarize count() by Key | summarize count()\\r\\n``` \\r\\n\\r\\n## Estimation error of dcount\\r\\n\\r\\ndcount uses a variant of [HyperLogLog (HLL) algorithm](https://en.wikipedia.org/wiki/HyperLogLog) which does stochastic estimation of set cardinality. In practice it means that the estimation error is described in terms of probability distribution, not theoretical bounds.\\r\\nSo the stated error actually specifies the standard deviation of error distribution (sigma), 99.7% of estimation will have a relative error of under 3*sigma\\r\\nThe following depicts probability distribution function of relative estimation error (in percents) for all dcount\'s accuracy settings:\\r\\n\\r\\n![](./images/aggregations/hll-error-distribution.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcount_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcount_hll","Calculates the dcount from hll results (which was generated by [hll](query_language_hll_aggfunction.md) or [hll_merge](query_language_hll_merge_aggfunction.md)).","Read more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`dcount_hll(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression which was generated by [hll](query_language_hll_aggfunction.md) or [hll_merge](query_language_hll_merge_aggfunction.md)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe distinct count of each value in *Expr*","```\\r\\nStormEvents\\r\\n| summarize hllRes = hll(DamageProperty) by bin(StartTime,10m)\\r\\n| summarize hllMerged = hll_merge(hllRes)\\r\\n| project dcount_hll(hllMerged)\\r\\n```\\r\\n\\r\\n|dcount_hll_hllMerged|\\r\\n|---|\\r\\n|315|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcount_hllfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"dcountif","Returns an estimate of the number of distinct values of *Expr* of rows for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\\r\\n\\r\\nRead more about the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `dcountif(`*Expr*, *Predicate*, [`,` *Accuracy*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation.\\r\\n* *Predicate*: Expression that will be used to filter rows.\\r\\n* *Accuracy*, if specified, controls the balance between speed and accuracy.\\r\\n * `0` = the least accurate and fastest calculation. 1.6% error\\r\\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\\r\\n * `2` = accurate and slow calculation; about 0.4% error.\\r\\n * `3` = extra accurate and slow calculation; about 0.28% error.\\r\\n * `4` = super accurate and slowest calculation; about 0.2% error.\\r\\n\\t\\r\\n**Returns**\\r\\n\\r\\nReturns an estimate of the number of distinct values of *Expr* of rows for which *Predicate* evaluates to `true` in the group.",\'```\\r\\nPageViewLog | summarize countries=dcountif(country, country startswith "United") by continent\\r\\n```\\r\\n\\r\\n**Tip: Offset error**\\r\\n\\r\\n`dcountif()` might result in a one-off error in the edge cases where all rows\\r\\npass, or none of the rows pass, the `Predicate` expression\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_dcountif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"degrees","Converts angle value in radians into value in degrees, using formula `degrees = (180 / PI ) * angle_in_radians`","**Syntax**\\r\\n\\r\\n`degrees(`*a*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *a*: Angle in radians (a real number).\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The corresponding angle in degrees for an angle specified in radians.","```\\r\\nprint degrees0 = degrees(pi()/4), degrees1 = degrees(pi()*1.5), degrees2 = degrees(0)\\r\\n\\r\\n```\\r\\n\\r\\n|degrees0|degrees1|degrees2|\\r\\n|---|---|---|\\r\\n|45|270|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_degreesfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"distinct","Produces a table with the distinct combination of the provided columns of the input table.","T | distinct Column1, Column2\\r\\n\\r\\nProduces a table with the distinct combination of all columns in the input table.\\r\\n\\r\\n T | distinct *",\'Shows the distinct combination of fruit and price.\\r\\n\\r\\n```\\r\\nTable | distinct fruit, price\\r\\n```\\r\\n\\r\\n![](./Images/aggregations/distinct.PNG)\\r\\n\\r\\n**Remarks**\\r\\n\\r\\nThere are two main semantic differences between the `distinct` operator and\\r\\nusing `summarize by ...`:\\r\\n* Distinct supports providing an asterisk (`*`) as the group key, making it easier to use for wide tables.\\r\\n* Distinct doesn’t have auto-binning of time columns (to `1h`).\\r\\n\\r\\n\\r\\n```\\r\\nlet T=(print t=datetime(2008-05-12 06:45));\\r\\nunion\\r\\n (T | distinct * | extend Title="Distinct"),\\r\\n (T | summarize by t | extend Title="Summarize"),\\r\\n (T | summarize by bin(t, 1tick) | extend Title="Summarize-distinct")\\r\\n\\t\\t\\r\\n\\tt\\tTitle\\r\\n\\t2008-05-12 06:00:00.0000000\\tSummarize\\r\\n\\t2008-05-12 06:45:00.0000000\\tDistinct\\r\\n\\t2008-05-12 06:45:00.0000000\\tSummarize-distinct\\r\\n```\\r\\n\\r\\nThis query produces the following table:\\r\\n\\r\\nt | Title\\r\\n-----------------------------|--------------------\\r\\n2008-05-12 06:45:00.0000000 | Distinct\\r\\n2008-05-12 06:00:00.0000000 | Summarize\\r\\n2008-05-12 06:45:00.0000000 | Summarize-distinct\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_distinctoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofday","Returns the end of the day containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`endofday(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset days from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the end of the day for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project dayEnd = endofday(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|dayEnd|\\r\\n|---|\\r\\n|2016-12-31 23:59:59.9999999|\\r\\n|2017-01-01 23:59:59.9999999|\\r\\n|2017-01-02 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofmonth","Returns the end of the month containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`endofmonth(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset months from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the end of the month for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project monthEnd = endofmonth(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|monthEnd|\\r\\n|---|\\r\\n|2016-12-31 23:59:59.9999999|\\r\\n|2017-01-31 23:59:59.9999999|\\r\\n|2017-02-28 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofweek","Returns the end of the week containing the date, shifted by an offset, if provided.","Last day of the week is considered to be a Saturday.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`endofweek(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset weeks from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the end of the week for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project weekEnd = endofweek(datetime(2017-01-01 10:10:17), offset) \\r\\n\\r\\n```\\r\\n\\r\\n|weekEnd|\\r\\n|---|\\r\\n|2016-12-31 23:59:59.9999999|\\r\\n|2017-01-07 23:59:59.9999999|\\r\\n|2017-01-14 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"endofyear","Returns the end of the year containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`endofyear(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset years from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the end of the year for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project yearEnd = endofyear(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|yearEnd|\\r\\n|---|\\r\\n|2016-12-31 23:59:59.9999999|\\r\\n|2017-12-31 23:59:59.9999999|\\r\\n|2018-12-31 23:59:59.9999999|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_endofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"evaluate","The evaluate operator is an extension mechanism to the Kusto query path that\\r\\nallows first-party extensions to be appended to queries.","Extensions provided by the evaluate operator are not bound by the necessary\\r\\nrules of query execution, and may have limitation based on the concrete extension implementation. \\r\\nFor example extensions which output schema changes depending on the data (e.g. bag_unpack, pivot)\\r\\ncannot be used in remote functions (cross-cluster query).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_evaluateoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp","The base-e exponential function of x, which is e raised to the power x: e^x.","**Syntax**\\r\\n\\r\\n`exp(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number, value of the exponent.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Exponential value of x.\\r\\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\\r\\n* For exponential functions of base-2 and base-10 logarithms, see [exp2()](query_language_exp2_function.md), [exp10()](query_language_exp10_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp10","The base-10 exponential function of x, which is 10 raised to the power x: 10^x.","**Syntax**\\r\\n\\r\\n`exp10(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number, value of the exponent.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Exponential value of x.\\r\\n* For natural (base-10) logarithms, see [log10()](query_language_log10_function.md).\\r\\n* For exponential functions of base-e and base-2 logarithms, see [exp()](query_language_exp_function.md), [exp2()](query_language_exp2_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp10_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"exp2","The base-2 exponential function of x, which is 2 raised to the power x: 2^x.","**Syntax**\\r\\n\\r\\n`exp2(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number, value of the exponent.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Exponential value of x.\\r\\n* For natural (base-2) logarithms, see [log2()](query_language_log2_function.md).\\r\\n* For exponential functions of base-e and base-10 logarithms, see [exp()](query_language_exp_function.md), [exp10()](query_language_exp10_function.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_exp2_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"extend","Create calculated columns and append them to the result set."," T | extend duration = endTime - startTime\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| extend` [*ColumnName* | `(`*ColumnName*[`,` ...]`)` `=`] *Expression* [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The input tabular result set.\\r\\n* *ColumnName:* Optional. The name of the column to add or update. If omitted then the name will be generated. If *Expression* returns more than one column, then a list of column names can be specified in parenthesis. In this case *Expression*\'s output columns will be given the specified names, dropping all rest of the output columns if any. If list of the column names is not specified then all *Expression*\'s output columns with generated names will be added to output.\\r\\n* *Expression:* A calculation over the columns of the input.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA copy of the input tabular result set, such that:\\r\\n1. Column names noted by `extend` that already exist in the input are removed\\r\\n and appended as their new calculated values.\\r\\n2. Column names noted by `extend` that do not exist in the input are appended\\r\\n as their new calculated values.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* The `extend` operator adds a new column to the input result set, which does\\r\\n **not** have an index. In most cases, if the new column is set to be exactly\\r\\n the same as an existing table column that has an index, Kusto can automatically\\r\\n use the existing index. However, in some complex scenarios this propagation is\\r\\n not currently done. In such cases, if the goal is to rename a column,\\r\\n use the [`project` operator](query_language_projectoperator.md) instead. (Note that this transformation\\r\\n will require you to list all other columns as well, so don\'t use it if there\'s\\r\\n not perceived performance impact.)",\'```\\r\\nLogs\\r\\n| extend\\r\\n Duration = CreatedOn - CompletedOn\\r\\n , Age = now() - CreatedOn\\r\\n , IsSevere = Level == "Critical" or Level == "Error"\\r\\n```\\r\\n\\r\\nSee [series_stats](query_language_series_statsfunction.md) as an example of a function that returns multiple columns\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extendoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extent_id",\'Returns a unique identifier that identifies the data shard ("extent") that the current record resides in.\',"Applying this function to calculated data which is not attached to a data shard returns an empty guid (all zeros).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`extent_id()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA value of type `guid` that identifies the current record\'s data shard,\\r\\nor an empty guid (all zeros).","The following example shows how to get a list of all the data shards\\r\\nthat have records from an hour ago with a specific value for the\\r\\ncolumn `ActivityId`. It demonstrates that some query operators (here,\\r\\nthe `where` operator, but this is also true for `extend` and `project`)\\r\\npreserve the information about the data shard hosting the record.\\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| where Timestamp > ago(1h)\\r\\n| where ActivityId == \'dd0595d4-183e-494e-b88e-54c52fe90e5a\'\\r\\n| extend eid=extent_id()\\r\\n| summarize by eid\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extentidfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extent_tags",\'Returns a dynamic array with the [tags](../concepts/concepts_extents.md#extent-tagging) of the data shard ("extent") that the current record resides in.\',"Applying this function to calculated data which is not attached to a data shard returns an empty value.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`extent_tags()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA value of type `dynamic` that is an array holding the current record\'s extent tags,\\r\\nor an empty value.","The following example shows how to get a list the tags of all the data shards\\r\\nthat have records from an hour ago with a specific value for the\\r\\ncolumn `ActivityId`. It demonstrates that some query operators (here,\\r\\nthe `where` operator, but this is also true for `extend` and `project`)\\r\\npreserve the information about the data shard hosting the record.\\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| where Timestamp > ago(1h)\\r\\n| where ActivityId == \'dd0595d4-183e-494e-b88e-54c52fe90e5a\'\\r\\n| extend tags = extent_tags()\\r\\n| summarize by tostring(tags)\\r\\n```\\r\\n\\r\\nThe following example shows how to obtain a count of all records from the \\r\\nlast hour, which are stored in extents which are tagged with the tag `MyTag`\\r\\n(and potentially other tags), but not tagged with the tag `drop-by:MyOtherTag`.\\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| where Timestamp > ago(1h)\\r\\n| extend Tags = extent_tags()\\r\\n| where Tags has_cs \'MyTag\' and Tags !has_cs \'drop-by:MyOtherTag\'\\r\\n| count\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extenttagsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"externaldata","Returns a table whose schema is defined in the query itself, and whose data is read from an external raw file.","Note that this operator does not have a pipeline input.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`externaldata` `(` *ColumnName* `:` *ColumnType* [`,` ...] `)` `[` *DataFileUri* `]` [`with` `(` *Prop1* `=` *Value1* [`,` ...] `)`]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ColumnName*, *ColumnType*: These define the schema of the table. The Syntax\\r\\n used is precisely the same as the syntax used when defining a table\\r\\n (see [.create table](../controlCommands/controlcommands_tables.md#create-table)).\\r\\n* *DataFileUri*: The URI (including authentication option, if any) for the file\\r\\n holding the data.\\r\\n* *Prop1*, *Value1*, ...: Additional properties to describe how the data in the raw file\\r\\n is to be interpreted. Similar to ingestion properties.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis operator returns a data table of the given schema, whose data was parsed\\r\\nfrom the specified URI.",\'The following example shows how to parse at query time a raw CSV data file \\r\\nin Azure Storage Blob. (Please note that in reality the `data.csv` file will\\r\\nbe appended by a SAS token to authorize the request.)\\r\\n\\r\\n\\r\\n```\\r\\nexternaldata (Date:datetime, Event:string)\\r\\n[h@"https://storageaccount.blob.core.windows.net/storagecontainer/data.csv"]\\r\\n| where strlen(Event) > 4\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_externaldata_operator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extract","Get a match for a [regular expression](./query_language_re2.md) from a text string.",\'Optionally, it then converts the extracted substring to the indicated type.\\r\\n\\r\\n extract("x=([0-9.]+)", 1, "hello x=45.6|wo") == "45.6"\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`extract(`*regex*`,` *captureGroup*`,` *text* [`,` *typeLiteral*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: A [regular expression](./query_language_re2.md).\\r\\n* *captureGroup*: A positive `int` constant indicating the\\r\\ncapture group to extract. 0 stands for the entire match, 1 for the value matched by the first \\\'(\\\'parenthesis\\\')\\\' in the regular expression, 2 or more for subsequent parentheses.\\r\\n* *text*: A `string` to search.\\r\\n* *typeLiteral*: An optional type literal (e.g., `typeof(long)`). If provided, the extracted substring is converted to this type. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf *regex* finds a match in *text*: the substring matched against the indicated capture group *captureGroup*, optionally converted to *typeLiteral*.\\r\\n\\r\\nIf there\\\'s no match, or the type conversion fails: `null`.\',\'The example string `Trace` is searched for a definition for `Duration`. \\r\\nThe match is converted to `real`, then multiplied it by a time constant (`1s`) so that `Duration` is of type `timespan`. In this example, it is equal to 123.45 seconds:\\r\\n\\r\\n\\r\\n```\\r\\n...\\r\\n| extend Trace="A=1, B=2, Duration=123.45, ..."\\r\\n| extend Duration = extract("Duration=([0-9.]+)", 1, Trace, typeof(real)) * time(1s) \\r\\n```\\r\\n\\r\\nThis example is equivalent to `substring(Text, 2, 4)`:\\r\\n\\r\\n\\r\\n```\\r\\nextract("^.{2,2}(.{4,4})", 1, Text)\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extractall","Get all matches for a [regular expression](./query_language_re2.md) from a text string.",\'Optionally, a subset of matching groups can be retrieved.\\r\\n\\r\\n extractall(@"(\\\\d+)", "a set of numbers: 123, 567 and 789") == dynamic(["123", "567", "789"])\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`extractall(`*regex*`,` [*captureGroups*`,`] *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: A [regular expression](./query_language_re2.md). Regular \\r\\nexpression must have at least one capturing group, and less-or-equal than 16 capturing groups.\\r\\n* *captureGroups*: (optional). A dynamic array constant indicating the capture group to extract. Valid \\r\\nvalues are from 1 to number of capturing groups in the regular expression. Named capture groups are allowed as\\r\\nwell (see examples section).\\r\\n* *text*: A `string` to search.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf *regex* finds a match in *text*: \\r\\nreturns dynamic array including all matches against the indicated capture groups *captureGroups* (or all of capturing groups in the *regex*).\\r\\nIf number of *captureGroups* is 1: the returned array has a single dimension of matched values.\\r\\nIf number of *captureGroups* is more than 1: the returned array is two-dimensionaly - collection of multi-value matches per *captureGroups* selection (or all capture groups present in the *regex* if *captureGroups* is omitted) \\r\\n\\r\\nIf there\\\'s no match: `null`.\',\'### Extracting single capture group\\r\\nThe example below returns hex-byte representation (two hex-digits) of the GUID.\\r\\n\\r\\n\\r\\n```\\r\\nrange r from 1 to 1 step 1\\r\\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\\r\\n| extend guid_bytes = extractall(@"([\\\\da-f]{2})", Id) \\r\\n```\\r\\n\\r\\n|Id|guid_bytes|\\r\\n|---|---|\\r\\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|["82","b8","be","2d","df","a7","4b","d1","8f","63","24","ad","26","d3","14","49"]|\\r\\n\\r\\n### Extracting several capture groups \\r\\nNext example uses a regular expression with 3 capturing groups to split each GUID part into first letter, last letter and whatever in the middle.\\r\\n\\r\\n\\r\\n```\\r\\nrange r from 1 to 1 step 1\\r\\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\\r\\n| extend guid_bytes = extractall(@"(\\\\w)(\\\\w+)(\\\\w)", Id) \\r\\n```\\r\\n\\r\\n|Id|guid_bytes|\\r\\n|---|---|\\r\\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]|\\r\\n\\r\\n### Extracting subset of capture groups\\r\\n\\r\\nNext example shows how to select a subset of capturing groups: in this case the regular expression \\r\\nmatches into first letter, last letter and all the rest - while the *captureGroups* parameter is used to select only first and the last part. \\r\\n\\r\\n\\r\\n```\\r\\nrange r from 1 to 1 step 1\\r\\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\\r\\n| extend guid_bytes = extractall(@"(\\\\w)(\\\\w+)(\\\\w)", dynamic([1,3]), Id) \\r\\n```\\r\\n\\r\\n|Id|guid_bytes|\\r\\n|---|---|\\r\\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","d"],["d","7"],["4","1"],["8","3"],["2","9"]]|\\r\\n\\r\\n\\r\\n### Using named capture groups\\r\\n\\r\\nYou can utilize named capture groups of RE2 in extractall(). \\r\\nIn the example below - the *captureGroups* uses both capture group indexes and named capture group reference to fetch matching values.\\r\\n\\r\\n\\r\\n```\\r\\nrange r from 1 to 1 step 1\\r\\n| project Id="82b8be2d-dfa7-4bd1-8f63-24ad26d31449"\\r\\n| extend guid_bytes = extractall(@"(?P\\\\w)(?P\\\\w+)(?P\\\\w)", dynamic([\\\'first\\\',2,\\\'last\\\']), Id) \\r\\n```\\r\\n\\r\\n|Id|guid_bytes|\\r\\n|---|---|\\r\\n|82b8be2d-dfa7-4bd1-8f63-24ad26d31449|[["8","2b8be2","d"],["d","fa","7"],["4","bd","1"],["8","f6","3"],["2","4ad26d3144","9"]]|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractallfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"extractjson","Get a specified element out of a JSON text using a path expression.",\'Optionally convert the extracted string to a specific type.\\r\\n\\r\\n extractjson("$.hosts[1].AvailableMB", EventText, typeof(int))\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`extractjson(`*jsonPath*`,` *dataSource*`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *jsonPath*: JsonPath string that defines an accessor into the JSON document.\\r\\n* *dataSource*: A JSON document.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis function performs a JsonPath query into dataSource which contains a valid JSON string, optionally converting that value to another type depending on the third argument.\',"The `[`bracket`]` notatation and dot (`.`) notation are equivalent:\\r\\n\\r\\n\\r\\n```\\r\\nT \\r\\n| extend AvailableMB = extractjson(\\"$.hosts[1].AvailableMB\\", EventText, typeof(int)) \\r\\n\\r\\nT\\r\\n| extend AvailableMD = extractjson(\\"$[\'hosts\'][1][\'AvailableMB\']\\", EventText, typeof(int)) \\r\\n```\\r\\n\\r\\n### JSON Path expressions\\r\\n\\r\\n|||\\r\\n|---|---|\\r\\n|`$`|Root object|\\r\\n|`@`|Current object|\\r\\n|`.` or `[ ]` | Child|\\r\\n|`[ ]`|Array subscript|\\r\\n\\r\\n*(We don\'t currently implement wildcards, recursion, union, or slices.)*\\r\\n\\r\\n\\r\\n**Performance tips**\\r\\n\\r\\n* Apply where-clauses before using `extractjson()`\\r\\n* Consider using a regular expression match with [extract](query_language_extractfunction.md) instead. This can run very much faster, and is effective if the JSON is produced from a template.\\r\\n* Use `parsejson()` if you need to extract more than one value from the JSON.\\r\\n* Consider having the JSON parsed at ingestion by declaring the type of the column to be dynamic.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_extractjsonfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"facet","Returns a set of tables, one for each specified column.\\r\\nEach table specifies the list of values taken by its column.\\r\\nAn additional table can be created by using the `with` clause.","**Syntax**\\r\\n\\r\\n*T* `| facet by` *ColumnName* [`, ` ...] [`with (` *filterPipe* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ColumnName:* The name of column in the input, to be summarized as an output table.\\r\\n* *filterPipe:* A query expression applied to the input table to produce one of the outputs.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nMultiple tables: one for the `with` clause, and one for each column.","```\\r\\nMyTable \\r\\n| facet by city, eventType \\r\\n with (where timestamp > ago(7d) | take 1000)\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_facetoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"find","Finds rows that match a predicate across a set of tables.","The scope of the `find` can also be cross-database or cross-cluster.\\r\\n\\r\\n\\r\\n```\\r\\nfind in (Table1, Table2, Table3) where Fruit==\\"apple\\"\\r\\n\\r\\nfind in (database(\'*\').*) where Fruit == \\"apple\\"\\r\\n\\r\\nfind in (cluster(\'cluster_name\').database(\'MyDB*\'.*)) where Fruit == \\"apple\\"\\r\\n\\r\\n```\\r\\n\\r\\n## Syntax\\r\\n\\r\\n* `find` [`withsource`=*ColumnName*] [`in` `(`*Table* [`,` *Table*, ...]`)`] `where` *Predicate* [`project-smart` | `project` *ColumnName* [`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...][`,` `pack(*)`]] \\r\\n\\r\\n* `find` *Predicate* [`project-smart` | `project` *ColumnName*[`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...] [`, pack(*)`]] \\r\\n\\r\\n## Arguments\\r\\n* `withsource=`*ColumnName*: Optional. By default the output will include a column called *source_* whose values indicates which source table has contributed each row. If specified, *ColumnName* will be used instead of *source_* .\\r\\nIf the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database. Similarly __cluster and database__ qualifications will be present in the value if more than one cluster is referenced.\\r\\n* *Predicate*: [see details](./query_language_findoperator.md#predicate-syntax). A `boolean` [expression](./scalar-data-types/bool.md) over the columns of the input tables *Table* [`,` *Table*, ...]. It is evaluated for each row in each input table. \\r\\n* `Table`: Optional. By default *find* will search in all tables in the current database\\r\\n * The name of a table, such as `Events` or\\r\\n * A query expression, such as `(Events | where id==42)`\\r\\n * A set of tables specified with a wildcard. For example, `E*` would form the union of all the tables in the database whose names begin `E`.\\r\\n* `project-smart` | `project`: [see details](./query_language_findoperator.md#output-schema) if not specified `project-smart` will be used by default\\r\\n\\r\\n## Returns\\r\\n\\r\\nTransformation of rows in *Table* [`,` *Table*, ...] for which *Predicate* is `true`. The rows are transformed\\r\\naccording to the output schema as described below.\\r\\n\\r\\n## Output Schema\\r\\n\\r\\n**source_ column**\\r\\n\\r\\nThe find operator output will always include a *source_* column with the source table name. The column can be renamed using the `withsource` parameter.\\r\\n\\r\\n**results columns**\\r\\n\\r\\nSource tables that do not contain any column used by the predicate evaluation will be be filtered out.\\r\\n\\r\\nWhen using `project-smart`, the columns that will appear in the output will be:\\r\\n1. Columns that appear explicitly in the predicate\\r\\n2. Columns that are common to all the filtered tables\\r\\nThe rest of the columns will be packed into a property bag and will appear in an additional `pack_` column.\\r\\nA column that is referenced explicitly by the predicate and appears in multiple tables with multiple types, will have a different column in the result schema for each such type. Each of the column names will be constructed from the original column name and the type, separated by an underscore.\\r\\n\\r\\nWhen using `project` *ColumnName*[`:`*ColumnType*] [`,` *ColumnName*[`:`*ColumnType*], ...][`,` `pack(*)`]:\\r\\n1. The result table will include the columns specified in the list. If a source table doesn\'t contain a certain column, the values in the corresponding rows will be null.\\r\\n2. When specifying a *ColumnType* along with a *ColumnName*, this column in the **result** will have the given type, and the values will be casted to that type if needed. Note that this will not have an effect on the column type when evaluating the *Predicate*.\\r\\n3. When `pack(*)` is used, the rest of the columns will be packed into a property bag and will appear in an additional `pack_` column\\r\\n\\r\\n**pack_ column**\\r\\n\\r\\nThis column will contain a property bag with the data from all the columns that doesn\'t appear in the output schema. The source column name will serve as the property name and the column value will serve as the property value.\\r\\n\\r\\n## Predicate Syntax\\r\\n\\r\\nPlease refer to the [where operator](./query_language_whereoperator.md) for some filtering functions summary.\\r\\n\\r\\nfind operator supports an alternative syntax for `* has` *term* , and using just *term* will search a term across all input columns\\r\\n\\r\\n## Notes\\r\\n\\r\\n* If the project clause references a column that appears in multiple tables and has multiple types, a type must follow this column reference in the project clause\\r\\n* When using *project-smart*, changes in the predicate, in the source tables set or in the tables schema may result in a changes to the output schema. If a constant result schema is needed, use *project* instead\\r\\n* `find` scope can not include [functions](../controlCommands/controlcommands_functions.md). To include a function in the find scope - define a [let statement](./query_language_letstatement.md) with [view keyword](./query_language_letstatement.md)\\r\\n\\r\\n## Performance Tips\\r\\n\\r\\n* Use [tables](../controlCommands/controlcommands_tables.md) as opposed to [tabular expressions](./query_language_tabularexpressionstatements.md)- in case of tabular expression the find operator falls back to a `union` query which can result in degraded performance\\r\\n* If a column that appears in multiple tables and has multiple types is part of the project clause, prefer adding a *ColumnType* to the project clause over modifying the table before passing it to `find` (see previous tip)\\r\\n* Add time based filters to the predicate (using a datetime column value or [ingestion_time()](./query_language_ingestiontimefunction.md))\\r\\n* Prefer to search in specific columns over full text search \\r\\n* Prefer not to reference explicitly columns that appears in multiple tables and has multiple types. If the predicate is valid when resolving such columns type for more than one type, the query will fallback to union\\r\\n\\r\\n[see examples](./query_language_findoperator.md#examples-of-cases-where-find-will-perform-as-union)",\'### Term lookup across all tables (in current database)\\r\\n\\r\\nThe next query finds all rows from all tables in the current database in which any column includes the word `Kusto`. \\r\\nThe resulting records are transformed according to the [output schema](#output-schema). \\r\\n\\r\\n\\r\\n```\\r\\nfind "Kusto"\\r\\n```\\r\\n\\r\\n## Term lookup across all tables matching a name pattern (in the current database)\\r\\n\\r\\nThe next query finds all rows from all tables in the current database whose name starts with `K`, and in which any column includes the word `Kusto`.\\r\\nThe resulting records are transformed according to the [output schema](#output-schema). \\r\\n\\r\\n\\r\\n```\\r\\nfind in (K*) where * has "Kusto"\\r\\n```\\r\\n\\r\\n### Term lookup across all tables in all databases (in the cluster)\\r\\n\\r\\nThe next query finds all rows from all tables in all databases in which any column includes the word `Kusto`. \\r\\nThis is a [cross database](./query_language_syntax.md#cross-database-and-cross-cluster-queries) query. \\r\\nThe resulting records are transformed according to the [output schema](#output-schema). \\r\\n\\r\\n\\r\\n```\\r\\nfind in (database(\\\'*\\\').*) "Kusto"\\r\\n```\\r\\n\\r\\n### Term lookup across all tables and databases matching a name pattern (in the cluster)\\r\\n\\r\\nThe next query finds all rows from all tables whose name starts with `K` in all databases whose name start with `B` and \\r\\nin which any column includes the word `Kusto`. \\r\\nThe resulting records are transformed according to the [output schema](#output-schema). \\r\\n\\r\\n\\r\\n```\\r\\nfind in (database("B*").K*) where * has "Kusto"\\r\\n```\\r\\n\\r\\n\\r\\n### Term lookup in several clusters\\r\\n\\r\\nThe next query finds all rows from all tables whose name starts with `K` in all databases whose name start with `B` and \\r\\nin which any column includes the word `Kusto`. \\r\\nThe resulting records are transformed according to the [output schema](#output-schema). \\r\\n\\r\\n\\r\\n```\\r\\nfind in (cluster("cluster1").database("B*").K*, cluster("cluster2").database("C*".*))\\r\\nwhere * has "Kusto"\\r\\n```\\r\\n\\r\\n## Examples of `find` output results \\r\\n\\r\\nThe following examples show how `find` can be used over two tables: EventsTable1 and EventsTable2. \\r\\nAssume we have next content of these two tables: \\r\\n\\r\\n### EventsTable1\\r\\n\\r\\n|Session_Id|Level|EventText|Version\\r\\n|---|---|---|---|\\r\\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Text1|v1.0.0\\r\\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Text2|v1.0.0\\r\\n|28b8e46e-3c31-43cf-83cb-48921c3986fc|Error|Some Text3|v1.0.1\\r\\n|8f057b11-3281-45c3-a856-05ebb18a3c59|Information|Some Text4|v1.1.0\\r\\n\\r\\n### EventsTable2\\r\\n\\r\\n|Session_Id|Level|EventText|EventName\\r\\n|---|---|---|---|\\r\\n|f7d5f95f-f580-4ea6-830b-5776c8d64fdd|Information|Some Other Text1|Event1\\r\\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Other Text2|Event2\\r\\n|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Other Text3|Event3\\r\\n|15eaeab5-8576-4b58-8fc6-478f75d8fee4|Error|Some Other Text4|Event4\\r\\n\\r\\n\\r\\n### Search in common columns, project common and uncommon columns and pack the rest \\r\\n\\r\\n\\r\\n```\\r\\nfind in (EventsTable1, EventsTable2) \\r\\n where Session_Id == \\\'acbd207d-51aa-4df7-bfa7-be70eb68f04e\\\' and Level == \\\'Error\\\' \\r\\n project EventText, Version, EventName, pack(*)\\r\\n```\\r\\n\\r\\n|source_|EventText|Version|EventName|pack_\\r\\n|---|---|---|---|---|\\r\\n|EventsTable1|Some Text2|v1.0.0||{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"}\\r\\n|EventsTable2|Some Other Text3||Event3|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error"}\\r\\n\\r\\n\\r\\n### Search in common and uncommon columns\\r\\n\\r\\n\\r\\n```\\r\\nfind Version == \\\'v1.0.0\\\' or EventName == \\\'Event1\\\' project Session_Id, EventText, Version, EventName\\r\\n```\\r\\n\\r\\n|source_|Session_Id|EventText|Version|EventName|\\r\\n|---|---|---|---|---|\\r\\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Some Text1|v1.0.0\\r\\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Some Text2|v1.0.0\\r\\n|EventsTable2|f7d5f95f-f580-4ea6-830b-5776c8d64fdd|Some Other Text1||Event1\\r\\n\\r\\nNote: in practice, *EventsTable1* rows will be filtered with ```Version == \\\'v1.0.0\\\'``` predicate and *EventsTable2* rows will be filtered with ```EventName == \\\'Event1\\\'``` predicate.\\r\\n\\r\\n### Use abbreviated notation to search across all tables in the current database\\r\\n\\r\\n\\r\\n```\\r\\nfind Session_Id == \\\'acbd207d-51aa-4df7-bfa7-be70eb68f04e\\\'\\r\\n```\\r\\n\\r\\n|source_|Session_Id|Level|EventText|pack_|\\r\\n|---|---|---|---|---|\\r\\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Text1|{"Version":"v1.0.0"}\\r\\n|EventsTable1|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Text2|{"Version":"v1.0.0"}\\r\\n|EventsTable2|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Information|Some Other Text2|{"EventName":"Event2"}\\r\\n|EventsTable2|acbd207d-51aa-4df7-bfa7-be70eb68f04e|Error|Some Other Text3|{"EventName":"Event3"}\\r\\n\\r\\n\\r\\n### Return the results from each row as a property bag\\r\\n\\r\\n\\r\\n```\\r\\nfind Session_Id == \\\'acbd207d-51aa-4df7-bfa7-be70eb68f04e\\\' project pack(*)\\r\\n```\\r\\n\\r\\n|source_|pack_|\\r\\n|---|---|\\r\\n|EventsTable1|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Text1", "Version":"v1.0.0"}\\r\\n|EventsTable1|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Text2", "Version":"v1.0.0"}\\r\\n|EventsTable2|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Information", "EventText":"Some Other Text2", "EventName":"Event2"}\\r\\n|EventsTable2|{"Session_Id":"acbd207d-51aa-4df7-bfa7-be70eb68f04e", "Level":"Error", "EventText":"Some Other Text3", "EventName":"Event3"}\\r\\n\\r\\n\\r\\n## Examples of cases where `find` will perform as `union`\\r\\n\\r\\n### Using a non tabular expression as find operand\\r\\n\\r\\n\\r\\n```\\r\\nlet PartialEventsTable1 = view() { EventsTable1 | where Level == \\\'Error\\\' };\\r\\nfind in (PartialEventsTable1, EventsTable2) \\r\\n where Session_Id == \\\'acbd207d-51aa-4df7-bfa7-be70eb68f04e\\\'\\r\\n```\\r\\n\\r\\n### Referencing a column that appears in multiple tables and has multiple types\\r\\n\\r\\nAssume we have created two tables by running: \\r\\n\\r\\n\\r\\n```\\r\\n.create tables \\r\\n Table1 (Level:string, Timestamp:datetime, ProcessId:string),\\r\\n Table2 (Level:string, Timestamp:datetime, ProcessId:int64)\\r\\n```\\r\\n\\r\\n* The following query will be executed as `union`:\\r\\n\\r\\n```\\r\\nfind in (Table1, Table2) where ProcessId == 1001\\r\\n```\\r\\n\\r\\nAnd the output result schema will be __(Level:string, Timestamp, ProcessId_string, ProcessId_int)__\\r\\n\\r\\n* The following query will, as well, be executed as `union` but will produce a different result schema:\\r\\n\\r\\n```\\r\\nfind in (Table1, Table2) where ProcessId == 1001 project Level, Timestamp, ProcessId:string \\r\\n```\\r\\n\\r\\nAnd the output result schema will be __(Level:string, Timestamp, ProcessId_string)__\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_findoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"floor","An alias for [`bin()`](query_language_binfunction.md).","","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_floorfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"fork","Runs multiple consumer operators in parallel.","**Syntax**\\r\\n\\r\\n*T* `|` `fork` [*name*`=`]`(`*subquery*`)` [*name*`=`]`(`*subquery*`)` ...\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *subquery* is a downstream pipeline of query operators\\r\\n* *name* is a temporary name for the subquery result table\\r\\n\\r\\n**Returns**\\r\\n\\r\\nMultiple result tables, one for each of the subqueries.\\r\\n\\r\\n**Supported Operators**\\r\\n\\r\\n[`as`](query_language_asoperator.md), [`count`](query_language_countoperator.md), [`extend`](query_language_extendoperator.md), [`parse`](query_language_parseoperator.md), [`where`](query_language_whereoperator.md), [`take`](query_language_takeoperator.md), [`project`](query_language_projectoperator.md), [`project-away`](query_language_projectawayoperator.md), [`summarize`](query_language_summarizeoperator.md), [`top`](query_language_topoperator.md), [`top-nested`](query_language_topnestedoperator.md), [`sort`](query_language_sortoperator.md), [`mvexpand`](query_language_mvexpandoperator.md), [`reduce`](query_language_reduceoperator.md)\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* [`materialize`](query_language_materializefunction.md) function can be used as a replacement for using [`join`](query_language_joinoperator.md) or [`union`](query_language_unionoperator.md) on fork legs.\\r\\nThe input stream will be cached by materialize and then the cached expression can be used in join/union legs.\\r\\n\\r\\n* A name, given by the `name` argument or by using [`as`](query_language_asoperator.md) operator will be used as the to name the result tab in [`Kusto.Explorer`](../tools/tools_kusto_explorer.md) tool.\\r\\n\\r\\n* Avoid using `fork` with a single subquery.\\r\\n\\r\\n* Prefer using [batch](query_language_batches.md) of tabular expression statements over `fork` operator.",\'```\\r\\nKustoLogs\\r\\n| where Timestamp > ago(1h)\\r\\n| fork\\r\\n ( where Level == "Error" | project EventText | limit 100 )\\r\\n ( project Timestamp, EventText | top 1000 by Timestamp desc)\\r\\n ( summarize min(Timestamp), max(Timestamp) by ActivityID )\\r\\n \\r\\n// In the following examples the result tables will be named: Errors, EventsTexts and TimeRangePerActivityID\\r\\nKustoLogs\\r\\n| where Timestamp > ago(1h)\\r\\n| fork\\r\\n ( where Level == "Error" | project EventText | limit 100 | as Errors )\\r\\n ( project Timestamp, EventText | top 1000 by Timestamp desc | as EventsTexts )\\r\\n ( summarize min(Timestamp), max(Timestamp) by ActivityID | as TimeRangePerActivityID )\\r\\n \\r\\n KustoLogs\\r\\n| where Timestamp > ago(1h)\\r\\n| fork\\r\\n Errors = ( where Level == "Error" | project EventText | limit 100 )\\r\\n EventsTexts = ( project Timestamp, EventText | top 1000 by Timestamp desc )\\r\\n TimeRangePerActivityID = ( summarize min(Timestamp), max(Timestamp) by ActivityID )\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_forkoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"format_datetime","Formats a datetime parameter based on the format pattern parameter.",\'format_datetime(datetime(2015-12-14 02:03:04.12345), \\\'y-M-d h:m:s.fffffff\\\') \\r\\n \\r\\n => "15-12-14 2:3:4.1234500"\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`format_datetime(`*a_date*,*a_format*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: a `datetime` to format.\\r\\n* `a_date`: a `format` to use.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe string with the format result.\\r\\n\\r\\n**Supported formats**\\r\\n\\r\\n|Format specifier\\t|Description\\t|Examples\\r\\n|---|---|---\\r\\n|"d"\\t|The day of the month, from 1 through 31. |\\t2009-06-01T13:45:30 -> 1, 2009-06-15T13:45:30 -> 15\\r\\n|"dd"\\t|The day of the month, from 01 through 31.|\\t2009-06-01T13:45:30 -> 01, 2009-06-15T13:45:30 -> 15\\r\\n|"f"\\t|The tenths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 6, 2009-06-15T13:45:30.05 -> 0\\r\\n|"ff"\\t|The hundredths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 61, 2009-06-15T13:45:30.0050000 -> 00\\r\\n|"fff"\\t|The milliseconds in a date and time value. |6/15/2009 13:45:30.617 -> 617, 6/15/2009 13:45:30.0005 -> 000\\r\\n|"ffff"\\t|The ten thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175000 -> 6175, 2009-06-15T13:45:30.0000500 -> 0000\\r\\n|"fffff"\\t|The hundred thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175400 -> 61754, 2009-06-15T13:45:30.000005 -> 00000\\r\\n|"ffffff"\\t|The millionths of a second in a date and time value. |2009-06-15T13:45:30.6175420 -> 617542, 2009-06-15T13:45:30.0000005 -> 000000\\r\\n|"fffffff"\\t|The ten millionths of a second in a date and time value. |2009-06-15T13:45:30.6175425 -> 6175425, 2009-06-15T13:45:30.0001150 -> 0001150\\r\\n|"F"\\t|If non-zero, the tenths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 6, 2009-06-15T13:45:30.0500000 -> (no output)\\r\\n|"FF"\\t|If non-zero, the hundredths of a second in a date and time value. |2009-06-15T13:45:30.6170000 -> 61, 2009-06-15T13:45:30.0050000 -> (no output)\\r\\n|"FFF"\\t|If non-zero, the milliseconds in a date and time value. |2009-06-15T13:45:30.6170000 -> 617, 2009-06-15T13:45:30.0005000 -> (no output)\\r\\n|"FFFF"\\t|If non-zero, the ten thousandths of a second in a date and time value. |2009-06-15T13:45:30.5275000 -> 5275, 2009-06-15T13:45:30.0000500 -> (no output)\\r\\n|"FFFFF"\\t|If non-zero, the hundred thousandths of a second in a date and time value. |2009-06-15T13:45:30.6175400 -> 61754, 2009-06-15T13:45:30.0000050 -> (no output)\\r\\n|"FFFFFF"\\t|If non-zero, the millionths of a second in a date and time value. |2009-06-15T13:45:30.6175420 -> 617542, 2009-06-15T13:45:30.0000005 -> (no output)\\r\\n|"FFFFFFF"\\t|If non-zero, the ten millionths of a second in a date and time value. |2009-06-15T13:45:30.6175425 -> 6175425, 2009-06-15T13:45:30.0001150 -> 000115\\r\\n|"h"\\t|The hour, using a 12-hour clock from 1 to 12. |2009-06-15T01:45:30 -> 1, 2009-06-15T13:45:30 -> 1\\r\\n|"hh"\\t|The hour, using a 12-hour clock from 01 to 12. |2009-06-15T01:45:30 -> 01, 2009-06-15T13:45:30 -> 01\\r\\n|"H"\\t|The hour, using a 24-hour clock from 0 to 23. |2009-06-15T01:45:30 -> 1, 2009-06-15T13:45:30 -> 13\\r\\n|"HH"\\t|The hour, using a 24-hour clock from 00 to 23. |2009-06-15T01:45:30 -> 01, 2009-06-15T13:45:30 -> 13\\r\\n|"m"\\t|The minute, from 0 through 59. |2009-06-15T01:09:30 -> 9, 2009-06-15T13:29:30 -> 29\\r\\n|"mm"\\t|The minute, from 00 through 59. |2009-06-15T01:09:30 -> 09, 2009-06-15T01:45:30 -> 45\\r\\n|"M"\\t|The month, from 1 through 12. |2009-06-15T13:45:30 -> 6\\r\\n|"MM"\\t|The month, from 01 through 12.|2009-06-15T13:45:30 -> 06\\r\\n|"s"\\t|The second, from 0 through 59. |2009-06-15T13:45:09 -> 9\\r\\n|"ss"\\t|The second, from 00 through 59. |2009-06-15T13:45:09 -> 09\\r\\n|"y"\\t|The year, from 0 to 99. |0001-01-01T00:00:00 -> 1, 0900-01-01T00:00:00 -> 0, 1900-01-01T00:00:00 -> 0, 2009-06-15T13:45:30 -> 9, 2019-06-15T13:45:30 -> 19\\r\\n|"yy"\\t|The year, from 00 to 99. |\\t0001-01-01T00:00:00 -> 01, 0900-01-01T00:00:00 -> 00, 1900-01-01T00:00:00 -> 00, 2019-06-15T13:45:30 -> 19\\r\\n|"yyyy"\\t|The year as a four-digit number. |\\t0001-01-01T00:00:00 -> 0001, 0900-01-01T00:00:00 -> 0900, 1900-01-01T00:00:00 -> 1900, 2009-06-15T13:45:30 -> 2009\\r\\n|"tt"\\t|AM / PM hours |2009-06-15T13:45:09 -> PM\\r\\n\\r\\n**Supported delimeters**\\r\\n\\r\\n\\\' \\\', \\\'/\\\', \\\'-\\\', \\\':\\\', \\\',\\\', \\\'.\\\', \\\'_\\\', \\\'[\\\', \\\']\\\'\',"```\\r\\nformat_datetime(datetime(2017-01-29 09:00:05), \'yy-MM-dd [HH:mm:ss]\') //\'17-01-29 [09:00:05]\'\\r\\nformat_datetime(datetime(2017-01-29 09:00:05), \'yyyy-M-dd [H:mm:ss]\') //\'2017-1-29 [9:00:05]\'\\r\\nformat_datetime(datetime(2017-01-29 09:00:05), \'yy-MM-dd [hh:mm:ss tt]\') //\'17-01-29 [09:00:05 AM]\'\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_format_datetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"format_timespan","Formats a timespan parameter based on the format pattern parameter.",\'format_timespan(time(14.02:03:04.12345), \\\'h:m:s.fffffff\\\') \\r\\n \\r\\n => "2:3:4.1234500"\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`format_timespan(`*a_timespan*,*a_format*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_timespan`: a `timespan` to format.\\r\\n* `a_format`: a `format` to use.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe string with the format result.\\r\\n\\r\\n**Supported formats**\\r\\n\\r\\n|Format specifier\\t|Description\\t|Examples\\r\\n|---|---|---\\r\\n|"d"-"dddddddd"\\t|The number of whole days in the time interval. Padded with zeros if needed.|\\t15.13:45:30: d -> 15, dd -> 15, ddd -> 015\\r\\n|"f"\\t|The tenths of a second in the time interval. |15.13:45:30.6170000 -> 6, 15.13:45:30.05 -> 0\\r\\n|"ff"\\t|The hundredths of a second in the time interval. |15.13:45:30.6170000 -> 61, 15.13:45:30.0050000 -> 00\\r\\n|"fff"\\t|The milliseconds in the time interval. |6/15/2009 13:45:30.617 -> 617, 6/15/2009 13:45:30.0005 -> 000\\r\\n|"ffff"\\t|The ten thousandths of a second in the time interval. |15.13:45:30.6175000 -> 6175, 15.13:45:30.0000500 -> 0000\\r\\n|"fffff"\\t|The hundred thousandths of a second in the time interval. |15.13:45:30.6175400 -> 61754, 15.13:45:30.000005 -> 00000\\r\\n|"ffffff"\\t|The millionths of a second in the time interval. |15.13:45:30.6175420 -> 617542, 15.13:45:30.0000005 -> 000000\\r\\n|"fffffff"\\t|The ten millionths of a second in the time interval. |15.13:45:30.6175425 -> 6175425, 15.13:45:30.0001150 -> 0001150\\r\\n|"F"\\t|If non-zero, the tenths of a second in the time interval. |15.13:45:30.6170000 -> 6, 15.13:45:30.0500000 -> (no output)\\r\\n|"FF"\\t|If non-zero, the hundredths of a second in the time interval. |15.13:45:30.6170000 -> 61, 15.13:45:30.0050000 -> (no output)\\r\\n|"FFF"\\t|If non-zero, the milliseconds in the time interval. |15.13:45:30.6170000 -> 617, 15.13:45:30.0005000 -> (no output)\\r\\n|"FFFF"\\t|If non-zero, the ten thousandths of a second in the time interval. |15.13:45:30.5275000 -> 5275, 15.13:45:30.0000500 -> (no output)\\r\\n|"FFFFF"\\t|If non-zero, the hundred thousandths of a second in the time interval. |15.13:45:30.6175400 -> 61754, 15.13:45:30.0000050 -> (no output)\\r\\n|"FFFFFF"\\t|If non-zero, the millionths of a second in the time interval. |15.13:45:30.6175420 -> 617542, 15.13:45:30.0000005 -> (no output)\\r\\n|"FFFFFFF"\\t|If non-zero, the ten millionths of a second in the time interval. |15.13:45:30.6175425 -> 6175425, 15.13:45:30.0001150 -> 000115\\r\\n|"h"\\t|The number of whole hours in the time interval that are not counted as part of days. Single-digit hours do not have a leading zero. |15.01:45:30 -> 1, 15.13:45:30 -> 1\\r\\n|"hh"\\t|The number of whole hours in the time interval that are not counted as part of days. Single-digit hours have a leading zero. |15.01:45:30 -> 01, 15.13:45:30 -> 01\\r\\n|"H"\\t|The hour, using a 24-hour clock from 0 to 23. |15.01:45:30 -> 1, 15.13:45:30 -> 13\\r\\n|"HH"\\t|The hour, using a 24-hour clock from 00 to 23. |15.01:45:30 -> 01, 15.13:45:30 -> 13\\r\\n|"m"\\t|The number of whole minutes in the time interval that are not included as part of hours or days. Single-digit minutes do not have a leading zero. |15.01:09:30 -> 9, 15.13:29:30 -> 29\\r\\n|"mm"\\t|The number of whole minutes in the time interval that are not included as part of hours or days. Single-digit minutes have a leading zero. |15.01:09:30 -> 09, 15.01:45:30 -> 45\\r\\n|"s"\\t|The number of whole seconds in the time interval that are not included as part of hours, days, or minutes. Single-digit seconds do not have a leading zero. |15.13:45:09 -> 9\\r\\n|"ss"\\t|The number of whole seconds in the time interval that are not included as part of hours, days, or minutes. Single-digit seconds have a leading zero. |15.13:45:09 -> 09\\r\\n\\r\\n\\r\\n**Supported delimeters**\\r\\n\\r\\n\\\' \\\', \\\'/\\\', \\\'-\\\', \\\':\\\', \\\',\\\', \\\'.\\\', \\\'_\\\', \\\'[\\\', \\\']\\\'\\\'\',"```\\r\\nformat_timespan(time(29.09:00:05.12345), \'dd.hh:mm:ss [FF]\') //\'29.09:00:05 [12]\'\\r\\nformat_timespan(time(29.09:00:05.12345), \'ddd.h:mm:ss [fff]\') //\'029.9:00:05 [123]\'\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_format_timespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"gamma","Computes [gamma function](https://en.wikipedia.org/wiki/Gamma_function)","**Syntax**\\r\\n\\r\\n`gamma(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Parameter for the gamma function\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Gamma function of x.\\r\\n* For computing log-gamma function, see [loggamma()](query_language_loggammafunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_gammafunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"getmonth","Get the month number (1-12) from a datetime.","","```\\r\\nT \\r\\n| extend month = getmonth(datetime(2015-10-12))\\r\\n// month == 10\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"getschema","Produce a table that represents a tabular schema of the input.","T | summarize MyCount=count() by Country | getschema \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| ` `getschema`","```\\r\\nStormEvents\\r\\n| top 10 by Timestamp\\r\\n| getschema\\r\\n```\\r\\n\\r\\n|ColumnName|ColumnOrdinal|DataType|ColumnType|\\r\\n|---|---|---|---|\\r\\n|Timestamp|0|Bridge.global.System.DateTime|datetime|\\r\\n|Language|1|Bridge.global.System.String|string|\\r\\n|Page|2|Bridge.global.System.String|string|\\r\\n|Views|3|Bridge.global.System.Int64|long\\r\\n|BytesDelivered|4|Bridge.global.System.Int64|long","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getschemaoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"gettype","Returns the runtime type of its single argument.","The runtime type may be different than the nominal (static) type for expressions\\r\\nwhose nominal type is `dynamic`; in such cases `gettype()` can be useful to reveal\\r\\nthet type of the actual value (how the value is encoded in memory).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n* `gettype(`*Expr*`)`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA string representing the runtime type of its single argument.","|Expression |Returns |\\r\\n|------------------------------------|-------------|\\r\\n|`gettype(\\"a\\")` |`string` |\\r\\n|`gettype(111)` |`long` |\\r\\n|`gettype(1==1)` |`bool` |\\r\\n|`gettype(now())` |`datetime` |\\r\\n|`gettype(1s)` |`timespan` |\\r\\n|`gettype(parsejson(\'1\'))` |`int` |\\r\\n|`gettype(parsejson(\' \\"abc\\" \'))` |`string` |\\r\\n|`gettype(parsejson(\' {\\"abc\\":1} \'))` |`dictionary` | \\r\\n|`gettype(parsejson(\' [1, 2, 3] \'))` |`array` |\\r\\n|`gettype(123.45)` |`real` |\\r\\n|`gettype(guid(12e8b78d-55b4-46ae-b068-26d7a0080254))`|`guid`| \\r\\n|`gettype(parsejson(\'\'))` |`null`|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_gettypefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"getyear","Returns the year part of the `datetime` argument.","","```\\r\\nT\\r\\n| extend year = getyear(datetime(2015-10-12))\\r\\n// year == 2015\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_getyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hash","Returns a hash value for the input value.","**Syntax**\\r\\n\\r\\n`hash(`*source* [`,` *mod*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The value to be hashed.\\r\\n* *mod*: An optional module value to be applied to the hash result, so that\\r\\n the output value is between `0` and *mod* - 1\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe hash value of the given scalar, modulo the given mod value (if specified).\\r\\n\\r\\n
The algorithm used to calculate the hash is xxhash.\\r\\nThis algorithm might change in the future; callers are only guaranteed that\\r\\nwithin a single query all invocations of this method will use the same\\r\\nalgorithm.
",\'```\\r\\nhash("World") // 1846988464401551951\\r\\nhash("World", 100) // 51 (1846988464401551951 % 100)\\r\\nhash(datetime("2015-01-01")) // 1380966698541616202\\r\\n```\\r\\n\\r\\nThe following example uses the hash function to run a query on 10% of the data,\\r\\nIt is helpful to use the hash function for sampling the data when assuming the value is uniformly distributed (In this example StartTime value)\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents \\r\\n| where hash(StartTime, 10) == 0\\r\\n| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State \\r\\n| top 5 by StormCount desc\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hashfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hash_sha256","Returns a sha256 hash value for the input value.","**Syntax**\\r\\n\\r\\n`hash_sha256(`*source*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The value to be hashed.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe sha256 hash value of the given scalar.",\'```\\r\\nhash_sha256("World") // 78ae647dc5544d227130a0682a51e30bc7777fbb6d8a8f17007463a3ecd1d524\\r\\nhash_sha256(datetime("2015-01-01")) // e7ef5635e188f5a36fafd3557d382bbd00f699bd22c671c3dea6d071eb59fbf8\\r\\n\\r\\n```\\r\\n\\r\\nThe following example uses the hash_sha256 function to run a query on SatrtTime column of the data\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents \\r\\n| where hash_sha256(StartTime) == 0\\r\\n| summarize StormCount = count(), TypeOfStorms = dcount(EventType) by State \\r\\n| top 5 by StormCount desc\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sha256hashfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hll","Calculates the Intermediate results of [dcount](query_language_dcount_aggfunction.md) across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\\r\\n\\r\\nRead more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `hll(`*Expr* [`,` *Accuracy*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *Accuracy*, if specified, controls the balance between speed and accuracy.\\r\\n * `0` = the least accurate and fastest calculation. 1.6% error\\r\\n * `1` = the default, which balances accuracy and calculation time; about 0.8% error.\\r\\n * `2` = accurate and slow calculation; about 0.4% error.\\r\\n * `3` = extra accurate and slow calculation; about 0.28% error.\\r\\n * `4` = super accurate and slowest calculation; about 0.2% error.\\r\\n\\t\\r\\n**Returns**\\r\\n\\r\\nThe Intermediate results of distinct count of *Expr* across the group.\\r\\n \\r\\n**Tips**\\r\\n\\r\\n1) You may use the aggregation function [hll_merge](query_language_hll_merge_aggfunction.md) to merge more than one hll intermediate results (it works on hll output only).\\r\\n\\r\\n2) You may use the function [dcount_hll] (query_language_dcount_hllfunction.md) which will calculate the dcount from hll / hll_merge aggregation functions.","```\\r\\nStormEvents\\r\\n| summarize hll(DamageProperty) by bin(StartTime,10m)\\r\\n\\r\\n```\\r\\n\\r\\n|StartTime|hll_DamageProperty|\\r\\n|---|---|\\r\\n|2007-09-18 20:00:00.0000000|[[1024,14],[-5473486921211236216,-6230876016761372746,3953448761157777955,4246796580750024372],[]]|\\r\\n|2007-09-20 21:50:00.0000000|[[1024,14],[4835649640695509390],[]]|\\r\\n|2007-09-29 08:10:00.0000000|[[1024,14],[4246796580750024372],[]]|\\r\\n|2007-12-30 16:00:00.0000000|[[1024,14],[4246796580750024372,-8936707700542868125],[]]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hll_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hll_merge","Merges HLL results across the group into single HLL value.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\\r\\n\\r\\nRead more about the underlying algorithm (*H*yper*L*og*L*og) and the estimated error [here](query_language_dcount_aggfunction.md#estimation-error-of-dcount).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `hll_merge(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe merged hll values of *Expr* across the group.\\r\\n \\r\\n**Tips**\\r\\n\\r\\n1) You may use the function [dcount_hll] (query_language_dcount_hllfunction.md) which will calculate the dcount from hll / hll_merge aggregation functions.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hll_merge_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"hourofday","Returns the integer number representing the hour number of the given date","hourofday(datetime(2015-12-14 18:54)) == 18\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`hourofday(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`hour number` of the day (0-23).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_hourofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iff","Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).","The second and third arguments must be of the same type.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`iff(`*predicate*`,` *ifTrue*`,` *ifFalse*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *predicate*: An expression that evaluates to a `boolean` value.\\r\\n* *ifTrue*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `true`.\\r\\n* *ifFalse*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `false`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis function returns the value of *ifTrue* if *predicate* evaluates to `true`,\\r\\nor the value of *ifFalse* otherwise.",\'```\\r\\nT \\r\\n| extend day = iff(floor(Timestamp, 1d)==floor(now(), 1d), "today", "anotherday")\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ifffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iif","Evaluates the first argument (the predicate), and returns the value of either the second or third arguments, depending on whether the predicate evaluated to `true` (second) or `false` (third).","The second and third arguments must be of the same type.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`iif(`*predicate*`,` *ifTrue*`,` *ifFalse*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *predicate*: An expression that evaluates to a `boolean` value.\\r\\n* *ifTrue*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `true`.\\r\\n* *ifFalse*: An expression that gets evaluated and its value returned from the function if *predicate* evaluates to `false`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis function returns the value of *ifTrue* if *predicate* evaluates to `true`,\\r\\nor the value of *ifFalse* otherwise.",\'```\\r\\nT \\r\\n| extend day = iif(floor(Timestamp, 1d)==floor(now(), 1d), "today", "anotherday")\\r\\n```\\r\\n\\r\\nAn alias for [`iff()`](query_language_ifffunction.md).\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_iiffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"in","Filters a recordset based on the provided set of values.",\'Table1 | where col in (\\\'value1\\\', \\\'value2\\\')\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*Case sensitive syntax:*\\r\\n\\r\\n*T* `|` `where` *col* `in` `(`*list of scalar expressions*`)` \\r\\n*T* `|` `where` *col* `in` `(`*tabular expression*`)` \\r\\n \\r\\n*T* `|` `where` *col* `!in` `(`*list of scalar expressions*`)` \\r\\n*T* `|` `where` *col* `!in` `(`*tabular expression*`)` \\r\\n\\r\\n*Case insensitive syntax:*\\r\\n\\r\\n*T* `|` `where` *col* `in~` `(`*list of scalar expressions*`)` \\r\\n*T* `|` `where` *col* `in~` `(`*tabular expression*`)` \\r\\n \\r\\n*T* `|` `where` *col* `!in~` `(`*list of scalar expressions*`)` \\r\\n*T* `|` `where` *col* `!in~` `(`*tabular expression*`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T* - The tabular input whose records are to be filtered.\\r\\n* *col* - the column to filter.\\r\\n* *list of expressions* - a comma separated list of tabular, scalar or literal expressions \\r\\n* *tabular expression* - a tabular expression that has a set of values (in a case expression has multiple columns, the first column is used)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nRows in *T* for which the predicate is `true`\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* The expression list can produce up to `1,000,000` values \\r\\n* Nested arrays are flattened into a single list of values, for example `x in (dynamic([1,[2,3]]))` turns into `x in (1,2,3)` \\r\\n* In case of tabular expressions, the first column of the result set is selected \\r\\n* Adding \\\'~\\\' to operator makes values\\\' search case insensitive: `x in~ (expresion)` or `x !in~ (expression)`.\\r\\n\\r\\n**Examples:** \\r\\n\\r\\n**A simple usage of \\\'in\\\' operator:** \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents \\r\\n| where State in ("FLORIDA", "GEORGIA", "NEW YORK") \\r\\n| count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|4775| \\r\\n\\r\\n\\r\\n**A simple usage of \\\'in~\\\' operator:** \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents \\r\\n| where State in~ ("Florida", "Georgia", "New York") \\r\\n| count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|4775| \\r\\n\\r\\n**A simple usage of \\\'!in\\\' operator:** \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents \\r\\n| where State !in ("FLORIDA", "GEORGIA", "NEW YORK") \\r\\n| count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|54291| \\r\\n\\r\\n\\r\\n**Using dynamic array:**\\r\\n\\r\\n```\\r\\nlet states = dynamic([\\\'FLORIDA\\\', \\\'ATLANTIC SOUTH\\\', \\\'GEORGIA\\\']);\\r\\nStormEvents \\r\\n| where State in (states)\\r\\n| count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|3218|\\r\\n\\r\\n\\r\\n**A subquery example:** \\r\\n\\r\\n\\r\\n```\\r\\n// Using subquery\\r\\nlet Top_5_States = \\r\\nStormEvents\\r\\n| summarize count() by State\\r\\n| top 5 by count_; \\r\\nStormEvents \\r\\n| where State in (Top_5_States) \\r\\n| count\\r\\n```\\r\\n\\r\\nThe same query can be written as:\\r\\n\\r\\n\\r\\n```\\r\\n// Inline subquery \\r\\nStormEvents \\r\\n| where State in (\\r\\n ( StormEvents\\r\\n | summarize count() by State\\r\\n | top 5 by count_ )\\r\\n) \\r\\n| count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|14242| \\r\\n\\r\\n**Top with other example:** \\r\\n\\r\\n\\r\\n```\\r\\nlet Death_By_State = materialize(StormEvents | summarize deaths = sum(DeathsDirect) by State);\\r\\nlet Top_5_States = Death_By_State | top 5 by deaths | project State; \\r\\nDeath_By_State\\r\\n| extend State = iif(State in (Top_5_States), State, "Other")\\r\\n| summarize sum(deaths) by State \\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|State|sum_deaths|\\r\\n|---|---|\\r\\n|ALABAMA|29|\\r\\n|ILLINOIS|29|\\r\\n|CALIFORNIA|48|\\r\\n|FLORIDA|57|\\r\\n|TEXAS|71|\\r\\n|Other|286|\\r\\n\\r\\n\\r\\n**Using a static list returned by a function:** \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents | where State in (InterestingStates()) | count\\r\\n\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|4775| \\r\\n\\r\\n\\r\\nHere is the function definition: \\r\\n\\r\\n\\r\\n```\\r\\n.show function InterestingStates\\r\\n\\r\\n```\\r\\n\\r\\n|Name|Parameters|Body|Folder|DocString|\\r\\n|---|---|---|---|---|\\r\\n|InterestingStates|()|{ dynamic(["WASHINGTON", "FLORIDA", "GEORGIA", "NEW YORK"]) }\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_inoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"indexof","Function reports the zero-based index of the first occurrence of a specified string within input string.","If lookup or input string is not of string type - forcibly casts the value to string.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`indexof(`*source*`,`*lookup*`[,`*start_index*`[,`*length*`]])`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: input string. \\r\\n* *lookup*: string to seek.\\r\\n* *start_index*: search start position (optional).\\r\\n* *length*: number of character positions to examine (optional).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nZero-based index position of *lookup*.\\r\\n\\r\\nReturns -1 if the string is not found in the input.\\r\\n\\r\\nIn case of irrelevant (less than 0) *start_index* or *length* parameter - returns *null*.",\'```\\r\\nrange x from 1 to 1 step 1\\r\\n| project idx1 = indexof("abcdefg","cde") // lookup found in input string\\r\\n| extend idx2 = indexof("abcdefg","cde",1,4) // lookup found in researched range \\r\\n| extend idx3 = indexof("abcdefg","cde",1,2) // search starts from index 1, but stops after 2 chars, so full lookup can\\\'t be found\\r\\n| extend idx4 = indexof("abcdefg","cde",3,4) // search starts after occurrence of lookup\\r\\n| extend idx5 = indexof("abcdefg","cde",-1) // invalid input\\r\\n| extend idx6 = indexof(1234567,5,1,4) // two first parameters were forcibly casted to strings "12345" and "5"\\r\\n```\\r\\n\\r\\n|idx1|idx2|idx3|idx4|idx5|idx6|\\r\\n|---|---|---|---|---|---|\\r\\n|2|2|-1|-1||4|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_indexoffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"ingestion_time","Retrieves the record\'s `$IngestionTime` hidden `datetime` column, or null.","The `$IngestionTime` column is automatically defined when the table\'s\\r\\n[IngestionTime policy](../concepts/concepts_ingestiontimepolicy.md) is set (enabled).\\r\\nIf the table does not have this policy defined, a null value is returned.\\r\\n\\r\\nThis function must be used in the context of an actual table in order\\r\\nto return the relevant data. (For example, it will return null for all records\\r\\nif it is invoked following a `summarize` operator).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n `ingestion_time()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA `datetime` value specifying the approximate time of ingestion into a table.","```\\r\\nT \\r\\n| extend ingestionTime = ingestion_time() | top 10 by ingestionTime\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_ingestiontimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"invoke","Invokes lambda that receives the source of `invoke` as tablular parameter argument.","T | invoke foo(param1, param2)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`T | invoke` *function*`(`[*param1*`,` *param2*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The tabular source.\\r\\n* *function*: The name of the lambda expression or function name to be evaluated.\\r\\n* *param1*, *param2* ... : additional lambda arguments.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns the result of the evaluated expression.\\r\\n\\r\\n**Notes**\\r\\n\\r\\nSee [let statements](./query_language_letstatement.md) for more details how to declare lambda expressions that can accept tabular arguments.","The following example shows how to use `invoke` operator to call lambda expression:\\r\\n\\r\\n\\r\\n```\\r\\n// clipped_average(): calculates percentiles limits, and then makes another \\r\\n// pass over the data to calcualte average with values inisde the percentiles\\r\\nlet clipped_average = (T:(x: long), lowPercentile:double, upPercentile:double)\\r\\n{\\r\\n let high = toscalar(T | summarize percentiles(x, upPercentile));\\r\\n let low = toscalar(T | summarize percentiles(x, lowPercentile));\\r\\n T \\r\\n | where x > low and x < high\\r\\n | summarize avg(x) \\r\\n};\\r\\nrange x from 1 to 100 step 1\\r\\n| invoke clipped_average(5, 99)\\r\\n```\\r\\n\\r\\n|avg_x|\\r\\n|---|\\r\\n|52|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_invokeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"iscolumnexists","Returns a boolean value indicating if the given string argument exists in the schema produced by the preceding tabular operator.",\'**Syntax**\\r\\n\\r\\n`iscolumnexists(`*value*`)\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *value*: A string\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA boolean indicating if the given string argument exists in the schema produced by the preceding tabular operator.\\r\\n**Examples**\\r\\n\\r\\n\\r\\n```\\r\\n.create function with (docstring = "Returns a boolean indicating whether a column exists in a table", folder="My Functions")\\r\\nDoesColumnExistInTable(tableName:string, columnName:string)\\r\\n{\\r\\n\\ttable(tableName) | limit 1 | project ColumnExists = iscolumnexists(columnName) \\r\\n}\\r\\n\\r\\nDoesColumnExistInTable("StormEvents", "StartTime")\\r\\n```\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_iscolumnexistsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isempty","Returns `true` if the argument is an empty string or is null.",\'isempty("") == true\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`isempty(`[*value*]`)`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIndicates whether the argument is an empty string or isnull.\\r\\n\\r\\n|x|isempty(x)\\r\\n|---|---\\r\\n| "" | true\\r\\n|"x" | false\\r\\n|parsejson("")|true\\r\\n|parsejson("[]")|false\\r\\n|parsejson("{}")|false\',"```\\r\\nT\\r\\n| where isempty(fieldName)\\r\\n| count\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isemptyfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isfinite","Returns whether input is a finite value (is neither infinite nor NaN).","**Syntax**\\r\\n\\r\\n`isfinite(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA non-zero value (true) if x is finite; and zero (false) otherwise.\\r\\n\\r\\n**See also**\\r\\n\\r\\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\\r\\n* For checking if value is infinite, see [isinf()](query_language_isinffunction.md).\\r\\n* For checking if value is NaN (Not-a-Number), see [isnan()](query_language_isnanfunction.md).","```\\r\\nrange x from -1 to 1 step 1\\r\\n| extend y = 0.0\\r\\n| extend div = 1.0*x/y\\r\\n| extend isfinite=isfinite(div)\\r\\n```\\r\\n\\r\\n|x|y|div|isfinite|\\r\\n|---|---|---|---|\\r\\n|-1|0|-∞|0|\\r\\n|0|0|NaN|0|\\r\\n|1|0|∞|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isfinitefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isinf","Returns whether input is an infinite (positive or negative) value.","**Syntax**\\r\\n\\r\\n`isinf(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA non-zero value (true) if x is a positive or negative infinite; and zero (false) otherwise.\\r\\n\\r\\n**See also**\\r\\n\\r\\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\\r\\n* For checking if value is finite, see [isfinite()](query_language_isfinitefunction.md).\\r\\n* For checking if value is NaN (Not-a-Number), see [isnan()](query_language_isnanfunction.md).","```\\r\\nrange x from -1 to 1 step 1\\r\\n| extend y = 0.0\\r\\n| extend div = 1.0*x/y\\r\\n| extend isinf=isinf(div)\\r\\n```\\r\\n\\r\\n|x|y|div|isinf|\\r\\n|---|---|---|---|\\r\\n|-1|0|-∞|1|\\r\\n|0|0|NaN|0|\\r\\n|1|0|∞|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isinffunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnan","Returns whether input is Not-a-Number (NaN) value.","**Syntax**\\r\\n\\r\\n`isnan(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA non-zero value (true) if x is NaN; and zero (false) otherwise.\\r\\n\\r\\n**See also**\\r\\n\\r\\n* For checking if value is null, see [isnull()](query_language_isnullfunction.md).\\r\\n* For checking if value is finite, see [isfinite()](query_language_isfinitefunction.md).\\r\\n* For checking if value is infinite, see [isinf()](query_language_isinffunction.md).","```\\r\\nrange x from -1 to 1 step 1\\r\\n| extend y = (-1*x) \\r\\n| extend div = 1.0*x/y\\r\\n| extend isnan=isnan(div)\\r\\n```\\r\\n\\r\\n|x|y|div|isnan|\\r\\n|---|---|---|---|\\r\\n|-1|1|-1|0|\\r\\n|0|0|NaN|1|\\r\\n|1|-1|-1|0|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnotempty","Returns `true` if the argument is not an empty string nor it is a null.",\'isnotempty("") == false\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`isnotempty(`[*value*]`)`\\r\\n\\r\\n`notempty(`[*value*]`)` -- alias of `isnotempty`\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnotemptyfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnotnull","Returns `true` if the argument is not null.","**Syntax**\\r\\n\\r\\n`isnotnull(`[*value*]`)`\\r\\n\\r\\n`notnull(`[*value*]`)` - alias for `isnotnull`","```\\r\\nT | where isnotnull(PossiblyNull) | count\\r\\n```\\r\\n\\r\\nNotice that there are other ways of achieving this effect:\\r\\n\\r\\n\\r\\n```\\r\\nT | summarize count(PossiblyNull)\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnotnullfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"isnull","Evaluates its sole argument and returns a `bool` value indicating if the argument evaluates to a null value.",\'isnull(parsejson("")) == true\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`isnull(`*Expr*`)`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nTrue or false depending on the whether the value is null or not null.\\r\\n\\r\\n**Comments**\\r\\n\\r\\n* `string` values cannot be null. Use [isempty](./query_language_isemptyfunction.md)\\r\\n to determine if a value of type `string` is empty or not.\\r\\n\\r\\n|x |`isnull(x)`|\\r\\n|-----------------|-----------|\\r\\n|`""` |`false` |\\r\\n|`"x"` |`false` |\\r\\n|`parsejson("")` |`true` |\\r\\n|`parsejson("[]")`|`false` |\\r\\n|`parsejson("{}")`|`false` |\',"```\\r\\nT | where isnull(PossiblyNull) | count\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_isnullfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"join","Merge the rows of two tables to form a new table by matching values of the specified column(s) from each table.","Table1 | join (Table2) on CommonColumn, $left.Col1 == $right.Col2\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*LeftTable* `|` `join` [*JoinParameters*] `(` *RightTable* `)` `on` *Attributes*\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *LeftTable*: The **left** table or tabular expression (sometimes called **outer** table) whose rows are to be merged. Denoted as `$left`.\\r\\n\\r\\n* *RightTable*: The **right** table or tabular expression (sometimes called **inner* table) whose rows are to be merged. Denoted as `$right`.\\r\\n\\r\\n* *Attributes*: One or more (comma-separated) rules that describe how rows from\\r\\n *LeftTable* are matched to rows from *RightTable*. A rule can be one of:\\r\\n |Rule kind |Syntax |Predicate |\\r\\n |-----------------|------------------------------------------------|---------------------------------------------------------------|\\r\\n |Equality by name |*ColumnName* |`where` *LeftTable*.*ColumnName* `==` *RightTable*.*ColumnName*|\\r\\n |Equality by value|`$left.`*LeftColumn* `==` `$right.`*RightColumn*|`where` `$left.`*LeftColumn* `==` `$right.`*RightColumn |\\r\\n\\r\\n* *JoinParameters*: Zero or more (space-separated) parameters in the form of\\r\\n *Name* `=` *Value* that control the behavior\\r\\n of the row-match operation and execution plan. The following parameters are supported:\\r\\n |Name |Values |Description|\\r\\n |------|---------------------------------------------------------------------------|-----------|\\r\\n |`kind`|`fullouter`, `inner`, `innerunique`, `leftanti`, `leftantisemi`,
`leftouter`, `leftsemi`, `rightanti`, `rightantisemi`, `rightouter`, `rightsemi`|See below|\\r\\n |`hint.remote`|`auto`, `left`, `local`, `right`|See [Cross-Cluster Join](query_language_joincrosscluster.md)|\\r\\n |`hint.strategy`|`broadcast`, `centralized`||\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table with:\\r\\n\\r\\n* A column for every column in each of the two tables, including the matching keys. The columns of the right side will be automatically renamed if there are name clashes.\\r\\n* A row for every match between the input tables. A match is a row selected from one table that has the same value for all the `on` fields as a row in the other table. \\r\\n\\r\\n * `kind` unspecified, `kind=innerunique`\\r\\n\\r\\n Only one row from the left side is matched for each value of the `on` key. The output contains a row for each match of this row with rows from the right.\\r\\n\\r\\n * `Kind=inner`\\r\\n \\r\\n There\'s a row in the output for every combination of matching rows from left and right.\\r\\n\\r\\n * `kind=leftouter` (or `kind=rightouter` or `kind=fullouter`)\\r\\n\\r\\n In addition to the inner matches, there\'s a row for every row on the left (and/or right), even if it has no match. In that case, the unmatched output cells contain nulls.\\r\\n\\r\\n * `kind=leftanti` (or `kind=rightanti`)\\r\\n\\r\\n Returns all the records from the left side that do not have matches from the right. The result table just has the columns from the left side. \\r\\n Equivalent to `kind=leftantisemi`.\\r\\n\\r\\n * `kind=leftsemi` (or `kind=rightsemi`)\\r\\n\\r\\n Returns all the records from the left side that have matches from the right. The result table contains columns from the left side only. \\r\\n \\r\\nIf there are several rows with the same values for those fields, you\'ll get rows for all the combinations.\\r\\n\\r\\n**Tips**\\r\\n\\r\\nFor best performance:\\r\\n\\r\\n* Use `where` and `project` to reduce the numbers of rows and columns in the input tables, before the `join`. \\r\\n* If one table is always smaller than the other, use it as the left (piped) side of the join.\\r\\n* The columns for the join match must have the same name. Use the project operator if necessary to rename a column in one of the tables.","Get extended activities from a log in which some entries mark the start and end of an activity. \\r\\n\\r\\n\\r\\n```\\r\\nlet Events = MyLogTable | where type==\\"Event\\" ;\\r\\nEvents\\r\\n| where Name == \\"Start\\"\\r\\n| project Name, City, ActivityId, StartTime=timestamp\\r\\n| join (Events\\r\\n | where Name == \\"Stop\\"\\r\\n | project StopTime=timestamp, ActivityId)\\r\\n on ActivityId\\r\\n| project City, ActivityId, StartTime, StopTime, Duration, StopTime, StartTime\\r\\n```\\r\\n\\r\\n```\\r\\nlet Events = MyLogTable | where type==\\"Event\\" ;\\r\\nEvents\\r\\n| where Name == \\"Start\\"\\r\\n| project Name, City, ActivityIdLeft = ActivityId, StartTime=timestamp\\r\\n| join (Events\\r\\n | where Name == \\"Stop\\"\\r\\n | project StopTime=timestamp, ActivityIdRight = ActivityId)\\r\\n on $left.ActivityIdLeft == $right.ActivityIdRight\\r\\n| project City, ActivityId, StartTime, StopTime, Duration, StopTime, StartTime\\r\\n```\\r\\n\\r\\n[More about this example](./query_language_samples.md#activities).\\r\\n\\r\\n# Join flavors\\r\\n\\r\\nThe exact flavor of the join operator is specified with the kind keyword. As of today, Kusto\\r\\nsupports the following flavors of the join operator: \\r\\n- [inner join with left side deduplication (the default)](#default-join-flavor) \\r\\n- [standard inner join](#inner-join)\\r\\n- [left outer join](#left-outer-join)\\r\\n- [right outer join](#right-outer-join)\\r\\n- [full outer join](#full-outer-join)\\r\\n- [left anti join](#left-anti-join)\\r\\n- [right anti join](#right-anti-join)\\r\\n- [left semi join](#left-semi-join)\\r\\n- [right semi join](#right-semi-join)\\r\\n \\r\\n## Default join flavor\\r\\n \\r\\n X | join Y on Key\\r\\n X | join kind=innerunique Y on Key\\r\\n \\r\\nLet\'s use two sample tables to explain the operation of the join: \\r\\n \\r\\nTable X \\r\\n\\r\\n|Key |Value1 \\r\\n|---|---\\r\\n|a |1 \\r\\n|b |2 \\r\\n|b |3 \\r\\n|c |4 \\r\\n\\r\\nTable Y \\r\\n\\r\\n|Key |Value2 \\r\\n|---|---\\r\\n|b |10 \\r\\n|c |20 \\r\\n|c |30 \\r\\n|d |40 \\r\\n \\r\\nThe default join performs an inner join after de-duplicating the left side on the join key (deduplication retains the first record). \\r\\nGiven this statement: \\r\\n\\r\\n X | join Y on Key \\r\\n\\r\\nthe effective left side of the join (table X after de-duplication) would be: \\r\\n\\r\\n|Key |Value1 \\r\\n|---|---\\r\\n|a |1 \\r\\n|b |2 \\r\\n|c |4 \\r\\n\\r\\nand the result of the join would be: \\r\\n\\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|Key1|Value2|\\r\\n|---|---|---|---|\\r\\n|b|2|b|10|\\r\\n|c|4|c|20|\\r\\n|c|4|c|30|\\r\\n\\r\\n\\r\\n(Note that the keys \'a\' and \'d\' do not appear in the output, since there were no matching keys on both left and right sides). \\r\\n \\r\\n(Historically, this was the first implementation of the join supported by the initial version of Kusto; it is useful in the typical log/trace analysis scenarios where we want to correlate two events (each matching some filtering criterion) under the same correlation ID, and get back all appearances of the phenomenon we\'re looking for, ignoring multiple appearances of the contributing trace records.)\\r\\n \\r\\n## Inner join\\r\\n\\r\\nThis is the standard inner join as known from the SQL world. Output record is produced whenever a record on the left side has the same join key as the record on the right side. \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=inner Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|Key1|Value2|\\r\\n|---|---|---|---|\\r\\n|b|3|b|10|\\r\\n|b|2|b|10|\\r\\n|c|4|c|20|\\r\\n|c|4|c|30|\\r\\n\\r\\nNote that (b,10) coming from the right side was joined twice: with both (b,2) and (b,3) on the left; also (c,4) on the left was joined twice: with both (c,20) and (c,30) on the right. \\r\\n\\r\\n## Left outer join \\r\\n\\r\\nThe result of a left outer join for tables X and Y always contains all records of the left table (X), even if the join condition does not find any matching record in the right table (Y). \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=leftouter Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|Key1|Value2|\\r\\n|---|---|---|---|\\r\\n|b|3|b|10|\\r\\n|b|2|b|10|\\r\\n|c|4|c|20|\\r\\n|c|4|c|30|\\r\\n|a|1|||\\r\\n\\r\\n \\r\\n## Right outer join \\r\\n\\r\\nResembles the left outer join, but the treatment of the tables is reversed. \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=rightouter Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|Key1|Value2|\\r\\n|---|---|---|---|\\r\\n|b|3|b|10|\\r\\n|b|2|b|10|\\r\\n|c|4|c|20|\\r\\n|c|4|c|30|\\r\\n|||d|40|\\r\\n\\r\\n \\r\\n## Full outer join \\r\\n\\r\\nConceptually, a full outer join combines the effect of applying both left and right outer joins. Where records in the joined tables do not match, the result set will have NULL values for every column of the table that lacks a matching row. For those records that do match, a single row will be produced in the result set (containing fields populated from both tables). \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=fullouter Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|Key1|Value2|\\r\\n|---|---|---|---|\\r\\n|b|3|b|10|\\r\\n|b|2|b|10|\\r\\n|c|4|c|20|\\r\\n|c|4|c|30|\\r\\n|||d|40|\\r\\n|a|1|||\\r\\n\\r\\n \\r\\n## Left anti join\\r\\n\\r\\nLeft anti join returns all records from the left side that do not match any record from the right side. \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=leftanti Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|\\r\\n|---|---|\\r\\n|a|1|\\r\\n\\r\\nAnti-join models the \\"NOT IN\\" query. \\r\\n\\r\\n## Right anti join\\r\\n\\r\\nRight anti join returns all records from the right side that do not match any record from the left side. \\r\\n \\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=rightanti Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value2|\\r\\n|---|---|\\r\\n|d|40|\\r\\n\\r\\nAnti-join models the \\"NOT IN\\" query. \\r\\n\\r\\n## Left semi join\\r\\n\\r\\nLeft semi join returns all records from the left side that match a record from the right side. Only columns from the left side are returned. \\r\\n\\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=leftsemi Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value1|\\r\\n|---|---|\\r\\n|b|3|\\r\\n|b|2|\\r\\n|c|4|\\r\\n\\r\\n## Right semi join\\r\\n\\r\\nRight semi join returns all records from the right side that match a record from the left side. Only columns from the right side are returned. \\r\\n\\r\\n\\r\\n```\\r\\nlet X = datatable(Key:string, Value1:long)\\r\\n[\\r\\n \'a\',1,\\r\\n \'b\',2,\\r\\n \'b\',3,\\r\\n \'c\',4\\r\\n];\\r\\nlet Y = datatable(Key:string, Value2:long)\\r\\n[\\r\\n \'b\',10,\\r\\n \'c\',20,\\r\\n \'c\',30,\\r\\n \'d\',40\\r\\n];\\r\\nX | join kind=rightsemi Y on Key\\r\\n```\\r\\n\\r\\n|Key|Value2|\\r\\n|---|---|\\r\\n|b|10|\\r\\n|c|20|\\r\\n|c|30|\\r\\n\\r\\n\\r\\n## Cross join\\r\\n\\r\\nKusto doesn\'t natively provide a cross-join flavor (i.e., you can\'t mark the operator with `kind=cross`).\\r\\nIt isn\'t difficult to simulate this, however, by coming up with a dummy key:\\r\\n\\r\\n X | extend dummy=1 | join kind=inner (Y | extend dummy=1) on dummy\\r\\n\\r\\n# Join hints\\r\\n\\r\\nThe `join` operator supports a number of hints that control the way a query executes.\\r\\nThese do not change the semantic of `join`, but may affect its performance.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_joinoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"limit","Return up to the specified number of rows."," T | limit 5\\r\\n\\r\\n**Alias**\\r\\n\\r\\n[take operator](query_language_takeoperator.md)","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_limitoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log","Returns the natural logarithm function.","**Syntax**\\r\\n\\r\\n`log(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number > 0.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The natural logarithm is the base-e logarithm: the inverse of the natural exponential function (exp).\\r\\n* For common (base-10) logarithms, see [log10()](query_language_log10_function.md).\\r\\n* For base-2 logarithms, see [log2()](query_language_log2_function.md)\\r\\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log10","Retuns the comon (base-10) logarithm function.","**Syntax**\\r\\n\\r\\n`log10(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number > 0.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The common logarithm is the base-10 logarithm: the inverse of the exponential function (exp) with base 10.\\r\\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\\r\\n* For base-2 logarithms, see [log2()](query_language_log2_function.md)\\r\\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log10_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"log2","Returns the base-2 logarithm function.","**Syntax**\\r\\n\\r\\n`log2(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number > 0.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The logarithm is the base-2 logarithm: the inverse of the exponential function (exp) with base 2.\\r\\n* For natural (base-e) logarithms, see [log()](query_language_log_function.md).\\r\\n* For common (base-10) logarithms, see [log10()](query_language_log10_function.md)\\r\\n* `null` if the argument is negative or null or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_log2_function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"loggamma","Computes log of absolute value of the [gamma function](https://en.wikipedia.org/wiki/Gamma_function)","**Syntax**\\r\\n\\r\\n`loggamma(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Parameter for the gamma function\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* Returns the natural logarithm of the absolute value of the gamma function of x.\\r\\n* For computing gamma function, see [gamma()](query_language_gammafunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_loggammafunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"make_datetime","Creates a [datetime](./scalar-data-types/datetime.md) scalar value from the specified date and time.","make_datetime(2017,10,01,12,10) == datetime(2017-10-01 12:10)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`make_datetime(`*year*,*month*,*day*`)`\\r\\n\\r\\n`make_datetime(`*year*,*month*,*day*,*hour*,*minute*`)`\\r\\n\\r\\n`make_datetime(`*year*,*month*,*day*,*hour*,*minute*,*second*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *year*: year (an integer value, from 0 to 9999)\\r\\n* *month*: month (an integer value, from 1 to 12)\\r\\n* *day*: day (an integer value, from 1 to 28-31)\\r\\n* *hour*: hour (an integer value, from 0 to 23)\\r\\n* *minute*: minute (an integer value, from 0 to 59)\\r\\n* *second*: second (a real value, from 0 to 59.9999999)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf creation is successful, result will be a [datetime](./scalar-data-types/datetime.md) value, otherwise, result will be null.","```\\r\\nprint year_month_day = make_datetime(2017,10,01)\\r\\n```\\r\\n\\r\\n|year_month_day|\\r\\n|---|\\r\\n|2017-10-01 00:00:00.0000000|\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nprint year_month_day_hour_minute = make_datetime(2017,10,01,12,10)\\r\\n```\\r\\n\\r\\n|year_month_day_hour_minute|\\r\\n|---|\\r\\n|2017-10-01 12:10:00.0000000|\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nprint year_month_day_hour_minute_second = make_datetime(2017,10,01,12,11,0.1234567)\\r\\n```\\r\\n\\r\\n|year_month_day_hour_minute_second|\\r\\n|---|\\r\\n|2017-10-01 12:11:00.1234567|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_datetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"make_timespan","Creates a [timespan](./scalar-data-types/timespan.md) scalar value from the specified time period.","make_timespan(1,12,30,55.123) == time(1.12:30:55.123)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`make_timespan(`*hour*,*minute*`)`\\r\\n\\r\\n`make_timespan(`*hour*,*minute*,*second*`)`\\r\\n\\r\\n`make_timespan(`*day*,*hour*,*minute*,*second*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *day*: day (a positive integer value)\\r\\n* *hour*: hour (an integer value, from 0 to 23)\\r\\n* *minute*: minute (an integer value, from 0 to 59)\\r\\n* *second*: second (a real value, from 0 to 59.9999999)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf creation is successful, result will be a [timespan](./scalar-data-types/timespan.md) value, otherwise, result will be null.","```\\r\\nprint [\'timespan\'] = make_timespan(1,12,30,55.123)\\r\\n\\r\\n```\\r\\n\\r\\n|timespan|\\r\\n|---|\\r\\n|1.12:30:55.1230000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_timespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"makelist","Returns a `dynamic` (JSON) array of all the values of *Expr* in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `makelist(`*Expr*` [`,` *MaxListSize*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation.\\r\\n* *MaxListSize* is an optional integer limit on the maximum number of elements returned (default is *128*).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns a `dynamic` (JSON) array of all the values of *Expr* in the group.\\r\\nIf the input to the `summarize` operator is not sorted, the order of elements in the resulting array is undefined.\\r\\nIf the input to the `summarize` operator is sorted, the order of elements in the resulting array tracks that of the input.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_makelist_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"make-series","Create series of specified aggregated values along specified axis.","T | make-series sum(amount) default=0, avg(price) default=0 on timestamp in range(datetime(2016-01-01), datetime(2016-01-10), 1d) by fruit, supplier\\r\\n\\r\\nA table that shows arrays of the numbers and average prices of each fruit from each supplier ordered by the timestamp with specified range. There\'s a row in the output for each distinct combination of fruit and supplier. The output columns show the fruit, supplier and arrays of: count, average and the whole time line (from 2016-01-01 until 2016-01-10). All arrays are sorted by the respective timestamp and all gaps are filled with default values (0 in this example). All other input columns are ignored.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| make-series`\\r\\n [*Column* `=`] *Aggregation* [`default` `=` *DefaultValue*] [`,` ...]\\r\\n `on` *AxisColumn* `in` `range(`*start*`,` *stop*`,` *step*`)`\\r\\n [`by`\\r\\n [*Column* `=`] *GroupExpression* [`,` ...]]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Column:* Optional name for a result column. Defaults to a name derived from the expression.\\r\\n* *DefaultValue:* Default value which will be used instead of absent values. If there is no row with specific values of *AxisColumn* and *GroupExpression* then in the results the corresponding element of the array will be assigned with a *DefaultValue*. If `default =` *DefaultValue* is omitted then 0 is assumed. \\r\\n* *Aggregation:* A call to an [aggregation function](query_language_make_seriesoperator.md#list-of-aggregation-functions) such as `count()` or `avg()`, with column names as arguments. See the [list of aggregation functions](query_language_make_seriesoperator.md#list-of-aggregation-functions). Note that only aggregation functions that return numeric result can be used with `make-series` operator.\\r\\n* *AxisColumn:* A column on which the series will be ordered. It could be considered as timeline, but besides `datetime` any numeric types are accepted.\\r\\n* *start*: The low bound value of the *AxisColumn* for each the series will be built. Similar to the `range` function *start*, *stop* and *step* are used to build array of *AxisColumn* values within a given range and using specified *step*. All *Aggregation* values are ordered respectively to this array. This *AxisColumn* array is also the last output column in the output with the same name as *AxisColumn*.\\r\\n* *stop*: The high bound value of the *AxisColumn* for each the series will be built or the least value that is greater than the last element in the resulting array and within an integer multiple of *step* from *start*.\\r\\n* *step*: The difference between two consecutive elements of the *AxisColumn* array (i.e. the bin size).\\r\\n* *GroupExpression:* An expression over the columns, that provides a set of distinct values. Typically it\'s a column name that already provides a restricted set of values. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe input rows are arranged into groups having the same values of the `by` expressions and `bin(`*AxisColumn*`, `*step*`)` expression. Then the specified aggregation functions are computed over each group, producing a row for each group. The result contains the `by` columns, *AxisColumn* column and also at least one column for each computed aggregate. (Aggregation that multiple columns or non-numeric results are not supported.)\\r\\n\\r\\nThis intermediate result has as many rows as there are distinct combinations of `by` and `bin(`*AxisColumn*`,` *step*`)` values.\\r\\n\\r\\nFinally the rows from the intermediate result arranged into groups having the same values of the `by` expressions and all aggregated values are arranged into arrays (values of `dynamic` type). For each aggregation there is one column containing its array with the same name. The last column in the output of the range function with all *AxisColumn* values. Its value is repeated for all rows. \\r\\n\\r\\nNote that due to the fill missing bins by default value, the resulting pivot table has the same number of bins (i.e. aggregated values) for all series \\r\\n\\r\\n**Note**\\r\\n\\r\\nAlthough you can provide arbitrary expressions for both the aggregation and grouping expressions, it\'s more efficient to use simple column names.\\r\\n \\r\\n\\r\\n## List of aggregation functions\\r\\n\\r\\n|Function|Description|\\r\\n|--------|-----------|\\r\\n|[any()](query_language_any_aggfunction.md)|Returns random non-empty value for the group|\\r\\n|[avg()](query_language_avg_aggfunction.md)|Retuns average value across the group|\\r\\n|[count()](query_language_count_aggfunction.md)|Returns count of the group|\\r\\n|[countif()](query_language_countif_aggfunction.md)|Returns count with the predicate of the group|\\r\\n|[dcount()](query_language_dcount_aggfunction.md)|Returns approximate distinct count of the group elements|\\r\\n|[max()](query_language_max_aggfunction.md)|Returns the maximum value across the group|\\r\\n|[min()](query_language_min_aggfunction.md)|Returns the minimum value across the group|\\r\\n|[stdev()](query_language_stdev_aggfunction.md)|Returns the standard deviation across the group|\\r\\n|[sum()](query_language_sum_aggfunction.md)|Returns the sum of the elements withing the group|\\r\\n|[variance()](query_language_variance_aggfunction.md)|Returns the variance across the group|\\r\\n\\r\\n## List of series analysis functions\\r\\n\\r\\n|Function|Description|\\r\\n|--------|-----------|\\r\\n|[series_fir()](query_language_series_firfunction.md)|Applies [Finite Impulse Response](https://en.wikipedia.org/wiki/Finite_impulse_response) filter|\\r\\n|[series_iir()](query_language_series_iirfunction.md)|Applies [Infinite Impulse Response](https://en.wikipedia.org/wiki/Infinite_impulse_response) filter||[series_fit_line()](query_language_series_fit_linefunction.md)|Finds a straight line that is the best approximation of the input|\\r\\n|[series_fit_line()](query_language_series_fit_linefunction.md)|Finds a line that is the best approximation of the input|\\r\\n|[series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)|Finds a line that is the best approximation of the input, returning dynamic object|\\r\\n[series_fit_2lines()](query_language_series_fit_2linesfunction.md)|Finds two lines that is the best approximation of the input|\\r\\n|[series_fit_2lines_dynamic()](query_language_series_fit_2lines_dynamicfunction.md)|Finds two lines that is the best approximation of the input, returning dynamic object|\\r\\n|[series_outliers()](query_language_series_outliersfunction.md)|Scores anomaly points in a series|\\r\\n|[series_periods_detect()](query_language_series_periods_detectfunction.md)|Finds the most significant periods that exist in a time series|\\r\\n|[series_periods_validate()](query_language_series_periods_validatefunction.md)|Checks whether a time series contains periodic patterns of given lengths|\\r\\n|[series_stats_dynamic()](query_language_series_stats_dynamicfunction.md)|Return multiple columns with the common statistics (min/max/variance/stdev/average)|\\r\\n|[series_stats()](query_language_series_statsfunction.md)|Generates a dynamic value with the common statistics (min/max/variance/stdev/average)|\\r\\n \\r\\n## List of series interpolation functions\\r\\n|Function|Description|\\r\\n|--------|-----------|\\r\\n|[series_fill_backward()](query_language_series_fill_backwardfunction.md)|Performs backward fill interpolation of missing values in a series|\\r\\n|[series_fill_const()](query_language_series_fill_constfunction.md)|Replaces missing values in a series with a specified constant value|\\r\\n|[series_fill_forward()](query_language_series_fill_forwardfunction.md)|Performs forward fill interpolation of missing values in a series|\\r\\n|[series_fill_linear()](query_language_series_fill_linearfunction.md)|Performs linear interpolation of missing values in a series|\\r\\n\\r\\n* Note: Interpolation functions by default assume `null` as a missing value. Therefore it is recommended to specify `default=`*double*(`null`) in `make-series` if you intend to use interpolation functions for the series.",\'```\\r\\nT | make-series PriceAvg=avg(Price) default=0\\r\\non Purchase in range(datetime(2016-09-10), datetime(2016-09-12), 1d) by Supplier, Fruit\\r\\n```\\r\\n \\r\\n![](./Images/aggregations/makeseries.png)\\r\\n \\r\\n\\r\\n```\\r\\nlet data=datatable(timestamp:datetime, metric: real)\\r\\n[\\r\\n datetime(2016-12-31T06:00), 50,\\r\\n datetime(2017-01-01), 4,\\r\\n datetime(2017-01-02), 3,\\r\\n datetime(2017-01-03), 4,\\r\\n datetime(2017-01-03T03:00), 6,\\r\\n datetime(2017-01-05), 8,\\r\\n datetime(2017-01-05T13:40), 13,\\r\\n datetime(2017-01-06), 4,\\r\\n datetime(2017-01-07), 3,\\r\\n datetime(2017-01-08), 8,\\r\\n datetime(2017-01-08T21:00), 8,\\r\\n datetime(2017-01-09), 2,\\r\\n datetime(2017-01-09T12:00), 11,\\r\\n datetime(2017-01-10T05:00), 5,\\r\\n];\\r\\nlet interval = 1d;\\r\\nlet stime = datetime(2017-01-01);\\r\\nlet etime = datetime(2017-01-09);\\r\\ndata\\r\\n| make-series avg(metric) on timestamp in range(stime, etime, interval) \\r\\n```\\r\\n \\r\\n|avg_metric|timestamp|\\r\\n|---|---|\\r\\n|[ 4.0, 3.0, 5.0, 0.0, 10.5, 4.0, 3.0, 8.0, 6.5 ]|[ "2017-01-01T00:00:00.0000000Z", "2017-01-02T00:00:00.0000000Z", "2017-01-03T00:00:00.0000000Z", "2017-01-04T00:00:00.0000000Z", "2017-01-05T00:00:00.0000000Z", "2017-01-06T00:00:00.0000000Z", "2017-01-07T00:00:00.0000000Z", "2017-01-08T00:00:00.0000000Z", "2017-01-09T00:00:00.0000000Z" ]|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_make_seriesoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"makeset","Returns a `dynamic` (JSON) array of the set of distinct values that *Expr* takes in the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `makeset(`*Expr*` [`,` *MaxListSize*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation.\\r\\n* *MaxListSize* is an optional integer limit on the maximum number of elements returned (default is *128*).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns a `dynamic` (JSON) array of the set of distinct values that *Expr* takes in the group.\\r\\nThe array\'s sort order is undefined.\\r\\n\\r\\n**Tip**\\r\\n\\r\\nTo just count the distinct values, use [dcount()](query_language_dcount_aggfunction.md)","```\\r\\nPageViewLog \\r\\n| summarize countries=makeset(country) by continent\\r\\n```\\r\\n\\r\\n![](./images/aggregations/makeset.png)\\r\\n\\r\\nSee also the [`mvexpand` operator](./query_language_mvexpandoperator.md) for the opposite function.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_makeset_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"materialize","Allows caching a sub-query result during the time of query execution in a way that other subqueries can reference the partial result.","**Syntax**\\r\\n\\r\\n`materialize(`*expression*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *expression*: Tabular expression to be evaluated and cached during query execution.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* Use materialize when you have join/union where their operands has mutual sub-queries that can be executed once (see the examples below).\\r\\n\\r\\n* Useful also in scenarios when we need to join/union fork legs.\\r\\n\\r\\n* Materialize is allowed to be used only in let statements by giving the cached result a name.\\r\\n\\r\\n* Materialize has a cache size limit which is **5 GB**. \\r\\n This limit is per cluster node and is mutual for all queries running concurrently.\\r\\n If a query uses `materialize()` and the cache cannot hold any additional data,\\r\\n the query aborts with an error.",\'Assuming that we are interested in finding the Retention of Pages views.\\r\\n\\r\\nUsing `materialize()` operator to improve runtime performance:\\r\\n\\r\\n\\r\\n```\\r\\nlet totalPagesPerDay = PageViews\\r\\n| summarize by Page, Day = startofday(Timestamp)\\r\\n| summarize count() by Day;\\r\\nlet materializedScope = PageViews\\r\\n| summarize by Page, Day = startofday(Timestamp);\\r\\nlet cachedResult = materialize(materializedScope);\\r\\ncachedResult\\r\\n| project Page, Day1 = Day\\r\\n| join kind = inner\\r\\n(\\r\\n cachedResult\\r\\n | project Page, Day2 = Day\\r\\n)\\r\\non Page\\r\\n| where Day2 > Day1\\r\\n| summarize count() by Day1, Day2\\r\\n| join kind = inner\\r\\n totalPagesPerDay\\r\\non $left.Day1 == $right.Day\\r\\n| project Day1, Day2, Percentage = count_*100.0/count_1\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|Day1|Day2|Percentage|\\r\\n|---|---|---|\\r\\n|2016-05-01 00:00:00.0000000|2016-05-02 00:00:00.0000000|34.0645725975255|\\r\\n|2016-05-01 00:00:00.0000000|2016-05-03 00:00:00.0000000|16.618368960101|\\r\\n|2016-05-02 00:00:00.0000000|2016-05-03 00:00:00.0000000|14.6291376489636|\\r\\n\\r\\nUsing self-join without caching the mutual sub-query :\\r\\n\\r\\n\\r\\n```\\r\\nlet totalPagesPerDay = PageViews\\t\\r\\n| summarize by Page, Day = startofday(Timestamp)\\r\\n| summarize count() by Day;\\r\\nlet subQuery = (PageViews\\t\\r\\n| summarize by Page, Day = startofday(Timestamp));\\r\\nsubQuery\\r\\n| project Page, Day1 = Day\\r\\n| join kind = inner\\r\\n(\\r\\n subQuery\\r\\n | project Page, Day2 = Day\\r\\n)\\r\\non Page\\r\\n| where Day2 > Day1\\r\\n| summarize count() by Day1, Day2\\r\\n| join kind = inner\\r\\n totalPagesPerDay\\r\\non $left.Day1 == $right.Day\\r\\n| project Day1, Day2, Percentage = count_*100.0/count_1\\r\\n```\\r\\n\\r\\n|Day1|Day2|Percentage|\\r\\n|---|---|---|\\r\\n|2016-05-01 00:00:00.0000000|2016-05-02 00:00:00.0000000|34.0645725975255|\\r\\n|2016-05-01 00:00:00.0000000|2016-05-03 00:00:00.0000000|16.618368960101|\\r\\n|2016-05-02 00:00:00.0000000|2016-05-03 00:00:00.0000000|14.6291376489636|\\r\\n\\r\\n\\r\\nThe same works for union, for example, getting the Pages which are one of the top 2 viewed, or top 2 with bytes delivered (not in both groups): \\r\\n\\r\\nUsing `materialize()` :\\r\\n\\r\\n\\r\\n```\\r\\nlet JunkPagesSuffix = ".jpg";\\r\\nlet materializedScope = PageViews\\r\\n| where Timestamp > datetime(2016-05-01 00:00:00.0000000)\\r\\n| summarize sum(BytesDelivered), count() by Page\\r\\n| where Page !endswith JunkPagesSuffix\\r\\n| where isempty(Page) == false;\\r\\nlet cachedResult = materialize(materializedScope);\\r\\nunion (cachedResult | top 2 by count_ | project Page ), (cachedResult | top 2 by sum_BytesDelivered | project Page)\\r\\n| summarize count() by Page | where count_ < 2 | project Page\\r\\n```\\r\\n\\r\\n|Page|\\r\\n|---|\\r\\n|de|\\r\\n|ar|\\r\\n|Special:Log/block|\\r\\n|Special:Search|\\r\\n\\r\\n\\r\\nUsing regular union without caching the result:\\r\\n\\r\\n\\r\\n```\\r\\nlet JunkPagesSuffix = ".jpg";\\r\\nlet subQuery = PageViews\\r\\n| where Timestamp > datetime(2016-05-01 00:00:00.0000000)\\r\\n| summarize sum(BytesDelivered), count() by Page\\r\\n| where Page !endswith JunkPagesSuffix\\r\\n| where isempty(Page) == false;\\r\\nunion (subQuery | top 2 by count_| project Page ), (subQuery | top 2 by sum_BytesDelivered| project Page)\\r\\n| summarize count() by Page\\r\\n| where count_ < 2\\r\\n| project Page\\r\\n```\\r\\n\\r\\n|Page|\\r\\n|---|\\r\\n|Special:Log/block|\\r\\n|Special:Search|\\r\\n|de|\\r\\n|ar|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_materializefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"max","Returns the maximum value across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `max(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe maximum value of *Expr* across the group.\\r\\n \\r\\n**Tip**\\r\\n\\r\\nThis gives you the min or max on its own - for example, the highest or lowest price. \\r\\nBut if you want other columns in the row - for example, the name of the supplier with the lowest \\r\\nprice - use [arg_max](query_language_arg_max_aggfunction.md) or [arg_min](query_language_arg_min_aggfunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_max_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"max_of","Returns the maximum value of several evaluated numeric expressions.","max_of(10, 1, -3, 17) == 17\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`max_of` `(`*expr_1*`,` *expr_2* ...`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *expr_i*: A scalar expression, to be evaluated.\\r\\n\\r\\n- All arguments must be of the same type.\\r\\n- Maximum of 64 arguments is supported.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe maximum value of all argument expressions.","```\\r\\nprint result = max_of(10, 1, -3, 17) \\r\\n```\\r\\n\\r\\n|result|\\r\\n|---|\\r\\n|17|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_max_offunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"merge_tdigests","Merges tdigest results (scalar version of the aggregate version [`merge_tdigests()`](query_language_merge_tdigests_aggfunction.md)).","Read more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`merge_tdigests(` *Expr1*`,` *Expr2*`, ...)`\\r\\n\\r\\n`tdigest_merge(` *Expr1*`,` *Expr2*`, ...)` - An alias.\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* Columns which has the tdigests to be merged.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe result for merging the columns `*Exrp1*`, `*Expr2*`, ... `*ExprN*` to one tdigest.","```\\r\\nrange x from 1 to 10 step 1 \\r\\n| extend y = x + 10\\r\\n| summarize tdigestX = tdigest(x), tdigestY = tdigest(y)\\r\\n| project merged = merge_tdigests(tdigestX, tdigestY)\\r\\n| project percentile_tdigest(merged, 100, typeof(long))\\r\\n```\\r\\n\\r\\n|percentile_tdigest_merged|\\r\\n|---|\\r\\n|20|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigestmergefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"min","Returns the minimum value agross the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `min(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe minimum value of *Expr* across the group.\\r\\n \\r\\n**Tip**\\r\\n\\r\\nThis gives you the min or max on its own - for example, the highest or lowest price. \\r\\nBut if you want other columns in the row - for example, the name of the supplier with the lowest \\r\\nprice - use [argmax](query_language_argmax_aggfunction.md) or [argmin](query_language_argmin_aggfunction.md).","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_min_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"min_of","Returns the minimum value of several evaluated numeric expressions.","min_of(10, 1, -3, 17) == -3\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`min_of` `(`*expr_1*`,` *expr_2* ...`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *expr_i*: A scalar expression, to be evaluated.\\r\\n\\r\\n- All arguments must be of the same type.\\r\\n- Maximum of 64 arguments is supported.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe minimum value of all argument expressions.","```\\r\\nprint result=min_of(10, 1, -3, 17) \\r\\n```\\r\\n\\r\\n|result|\\r\\n|---|\\r\\n|-3|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_min_offunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"monthofyear","Returns the integer number represents the month number of the given year.",\'monthofyear(datetime("2015-12-14"))\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`monthofyear(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`month number` of the given year.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_monthofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"mvexpand","Expands multi-value collection(s) from a [dynamic](./scalar-data-types/dynamic.md)-typed column so that each value in the collection gets a separate row.\\r\\nAll the other column in an expanded row are duplicated.","T | mvexpand listColumn [, listColumn2 ...] \\r\\n\\r\\n(See also [`summarize makelist`](query_language_makelist_aggfunction.md) which performs the opposite function.)",\'Assume the input table is:\\r\\n\\r\\n|A:int|B:string|D:dynamic|D2:dynamic|\\r\\n|---|---|---|---|\\r\\n|1|"hello"|{"key":"value"}|{"key1":"value1", "key2":"value2"}|\\r\\n|2|"world"|[0,1,"k","v"]|[2,3,"q"]|\\r\\n\\r\\n\\r\\n```\\r\\nmvexpand D, D2\\r\\n```\\r\\n\\r\\nResult is:\\r\\n\\r\\n|A:int|B:string|D:dynamic|D2:dynamic|\\r\\n|---|---|---|---|\\r\\n|1|"hello"|{"key":"value"}|{"key1":"value1"}|\\r\\n|1|"hello"||{"key2":"value2"}|\\r\\n|2|"world"|0|2|\\r\\n|2|"world"|1|3|\\r\\n|2|"world"|"k"|"q"|\\r\\n|2|"world"|"v"||\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| mvexpand ` [`bagexpansion=`(`bag` | `array`)] *ColumnName* [`,` *ColumnName* ...] [`limit` *Rowlimit*]\\r\\n\\r\\n*T* `| mvexpand ` [`bagexpansion=`(`bag` | `array`)] [*Name* `=`] *ArrayExpression* [`to typeof(`*Typename*`)`] [, [*Name* `=`] *ArrayExpression* [`to typeof(`*Typename*`)`] ...] [`limit` *Rowlimit*]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ColumnName:* In the result, arrays in the named column are expanded to multiple rows. \\r\\n* *ArrayExpression:* An expression yielding an array. If this form is used, a new column is added and the existing one is preserved.\\r\\n* *Name:* A name for the new column.\\r\\n* *Typename:* Indicates the underlying type of the array\\\'s elements,\\r\\n which becomes the type of the column produced by the operator.\\r\\n Note that values in the array that do not conform to this type will\\r\\n not be converted; rather, they will take on a `null` value.\\r\\n* *RowLimit:* The maximum number of rows generated from each original row. The default is 128.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nMultiple rows for each of the values in any array in the named column or in the array expression.\\r\\nIf several columns or expressions are specified they are expanded in parallel so for each input row there will be as many output rows as there are elements in the longest expanded expression (shorter lists are padded with null\\\'s). If the value in a row is an empty array, the row expands to nothing (will not show in the result set). If the value in a row is not an array, the row is kept as is in the result set. \\r\\n\\r\\nThe expanded column always has dynamic type. Use a cast such as `todatetime()` or `toint()` if you want to compute or aggregate values.\\r\\n\\r\\nTwo modes of property-bag expansions are supported:\\r\\n* `bagexpansion=bag`: Property bags are expanded into single-entry property bags. This is the default expansion.\\r\\n* `bagexpansion=array`: Property bags are expanded into two-element `[`*key*`,`*value*`]` array structures,\\r\\n allowing uniform access to keys and values (as well as, for example, running a distinct-count aggregation\\r\\n over property names). \\r\\n\\r\\n**Examples**\\r\\n\\r\\nSee [Chart count of live activites over time](./query_language_samples.md#concurrent-activities).\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_mvexpandoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"next","Returns the value of a column in a row that it at some offset following the\\r\\ncurrent row in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\\r\\n\\r\\n`next(column)`\\r\\n\\r\\n`next(column, offset)`\\r\\n\\r\\n`next(column, offset, default_value)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `column`: the column to get the values from.\\r\\n\\r\\n* `offset`: the offset to go ahead in rows. When no offset is specified a default offset 1 is used.\\r\\n\\r\\n* `default_value`: the default value to be used when there is no next rows to take the value from. When no default value is specified, null is used.","```\\r\\nTable | serialize | extend nextA = next(A,1)\\r\\n| extend diff = A - nextA\\r\\n| where diff > 1\\r\\n\\r\\nTable | serialize nextA = next(A,1,10)\\r\\n| extend diff = A - nextA\\r\\n| where diff <= 10\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_nextfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"not","Reverses the value of its `bool` argument.","not(false) == true\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`not(`*expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *expr*: A `bool` expression to be reversed.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns the reversed logical value of its `bool` argument.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_notfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"now","Returns the current UTC clock time, optionally offset by a given timespan.\\r\\nThis function can be used multiple times in a statement and the clock time being referenced will be the same for all instances.","now()\\r\\n now(-2d)\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`now(`[*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *offset*: A `timespan`, added to the current UTC clock time. Default: 0.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe current UTC clock time as a `datetime`.\\r\\n\\r\\n`now()` + *offset*","Determines the interval since the event identified by the predicate:\\r\\n\\r\\n\\r\\n```\\r\\nT | where ... | extend Elapsed=now() - Timestamp\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_nowfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"order","Sort the rows of the input table into order by one or more columns.","T | order by country asc, price desc\\r\\n\\r\\n**Alias**\\r\\n\\r\\n[sort operator](query_language_sortoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| sort by` *column* [`asc` | `desc`] [`nulls first` | `nulls last`] [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The table input to sort.\\r\\n* *column*: Column of *T* by which to sort. The type of the values must be numeric, date, time or string.\\r\\n* `asc` Sort by into ascending order, low to high. The default is `desc`, descending high to low.\\r\\n* `nulls first` (the default for `asc` order) will place the null values at the beginning and `nulls last` (the default for `desc` order) will place the null values at the end.",\'```\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b"\\r\\n| sort by Timestamp asc nulls first\\r\\n```\\r\\n\\r\\nAll rows in table Traces that have a specific `ActivityId`, sorted by their timestamp. If `Timestamp` column contains null values, those will appear at the first lines of the result.\\r\\n\\r\\nIn order to exclude null values from the result add a filter before the call to sort:\\r\\n\\r\\n\\r\\n```\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b" and isnotnull(Timestamp)\\r\\n| sort by Timestamp asc\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_orderoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack","Creates a `dynamic` object (property bag) from a list of names and values.","**Syntax**\\r\\n\\r\\n`pack(`*key1*`,` *value1*`,` *key2*`,` *value2*`,... )`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* An alternating list of keys and values (the total length of the list must be even)\\r\\n* All keys must be non-empty constant strings",\'The following example returns `{"Level":"Information","ProcessID":1234,"Data":{"url":"www.bing.com"}}`:\\r\\n\\r\\n\\r\\n```\\r\\npack("Level", "Information", "ProcessID", 1234, "Data", pack("url", "www.bing.com"))\\r\\n```\\r\\n\\r\\nLets take 2 tables, SmsMessages and MmsMessages:\\r\\n\\r\\nTable SmsMessages \\r\\n\\r\\n|SourceNumber |TargetNumber| CharsCount\\r\\n|---|---|---\\r\\n|555-555-1234 |555-555-1212 | 46 \\r\\n|555-555-1234 |555-555-1213 | 50 \\r\\n|555-555-1212 |555-555-1234 | 32 \\r\\n\\r\\nTable MmsMessages \\r\\n\\r\\n|SourceNumber |TargetNumber| AttachmnetSize | AttachmnetType | AttachmnetName\\r\\n|---|---|---|---|---\\r\\n|555-555-1212 |555-555-1213 | 200 | jpeg | Pic1\\r\\n|555-555-1234 |555-555-1212 | 250 | jpeg | Pic2\\r\\n|555-555-1234 |555-555-1213 | 300 | png | Pic3\\r\\n\\r\\nThe following query:\\r\\n\\r\\n```\\r\\nSmsMessages \\r\\n| extend Packed=pack("CharsCount", CharsCount) \\r\\n| union withsource=TableName kind=inner \\r\\n( MmsMessages \\r\\n | extend Packed=pack("AttachmnetSize", AttachmnetSize, "AttachmnetType", AttachmnetType, "AttachmnetName", AttachmnetName))\\r\\n| where SourceNumber == "555-555-1234"\\r\\n``` \\r\\n\\r\\nReturns:\\r\\n\\r\\n|TableName |SourceNumber |TargetNumber | Packed\\r\\n|---|---|---|---\\r\\n|SmsMessages|555-555-1234 |555-555-1212 | {"CharsCount": 46}\\r\\n|SmsMessages|555-555-1234 |555-555-1213 | {"CharsCount": 50}\\r\\n|MmsMessages|555-555-1234 |555-555-1212 | {"AttachmnetSize": 250, "AttachmnetType": "jpeg", "AttachmnetName": "Pic2"}\\r\\n|MmsMessages|555-555-1234 |555-555-1213 | {"AttachmnetSize": 300, "AttachmnetType": "png", "AttachmnetName": "Pic3"}\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack_all","Creates a `dynamic` object (property bag) from all the columns of the tabular expression.","**Syntax**\\r\\n\\r\\n`pack_all()`",\'Given a table SmsMessages \\r\\n\\r\\n|SourceNumber |TargetNumber| CharsCount\\r\\n|---|---|---\\r\\n|555-555-1234 |555-555-1212 | 46 \\r\\n|555-555-1234 |555-555-1213 | 50 \\r\\n|555-555-1212 |555-555-1234 | 32 \\r\\n\\r\\nThe following query:\\r\\n\\r\\n```\\r\\nSmsMessages | extend Packed=pack_all()\\r\\n``` \\r\\n\\r\\nReturns:\\r\\n\\r\\n|TableName |SourceNumber |TargetNumber | Packed\\r\\n|---|---|---|---\\r\\n|SmsMessages|555-555-1234 |555-555-1212 | {"SourceNumber":"555-555-1234", "TargetNumber":"555-555-1212", "CharsCount": 46}\\r\\n|SmsMessages|555-555-1234 |555-555-1213 | {"SourceNumber":"555-555-1234", "TargetNumber":"555-555-1213", "CharsCount": 50}\\r\\n|SmsMessages|555-555-1212 |555-555-1234 | {"SourceNumber":"555-555-1212", "TargetNumber":"555-555-1234", "CharsCount": 32}\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packallfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pack_array","Packs all input values into a dynamic array.","**Syntax**\\r\\n\\r\\n`pack_array(`*Expr1*`[`,` *Expr2*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr1...N*: Input expressions to be packed into a dynamic array.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nDynamic array which includes the values of Expr1, Expr2, ... , ExprN.",\'```\\r\\nrange x from 1 to 3 step 1\\r\\n| extend y = x * 2\\r\\n| extend z = y * 2\\r\\n| project pack_array(x,y,z)\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|[1,2,4]|\\r\\n|[2,4,8]|\\r\\n|[3,6,12]|\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 3 step 1\\r\\n| extend y = tostring(x * 2)\\r\\n| extend z = (x * 2) * 1s\\r\\n| project pack_array(x,y,z)\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|[1,"2","00:00:02"]|\\r\\n|[2,"4","00:00:04"]|\\r\\n|[3,"6","00:00:06"]|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_packarrayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"parse","Evaluates a string expression and parses its value into one or more calculated columns.",\'T | parse Text with "ActivityName=" name ", ActivityType=" type\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| parse` [`kind=regex`|`simple`|`relaxed`] *Expression* `with` `*` (*StringConstant* *ColumnName* [`:` *ColumnType*]) `*`...\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The input table.\\r\\n* kind: \\r\\n\\r\\n\\t* simple (the default) : StringConstant is a regular string value and the match is strict, extended columns must match the required types.\\r\\n\\t\\t\\r\\n\\t* regex : StringConstant may be a regular expression.\\r\\n\\t\\t\\r\\n\\t* relaxed : StringConstant is a regular string value and the match is relaxed, extended columns may match the required types partially.\\r\\n* *Expression*: An expression that evaluates to a string.\\r\\n* *ColumnName:* The name of a column to assign a value (taken out\\r\\n of the string expression) to. \\r\\n* *ColumnType:* should be Optional scalar type that indicates the type to convert the value to (by default it is string type).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe input table, extended according to the list of columns that are\\r\\nprovided to the operator.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* Use [`project`](query_language_projectoperator.md) instead, if you also want to drop or rename some columns.\\r\\n\\r\\n* Use * in the pattern in order to skip junk values (can\\\'t be used after string column)\\r\\n\\r\\n* The parse pattern may start with *ColumnName* and not only with *StringConstant*. \\r\\n\\r\\n* If the parsed *Expression* is not of type string , it will be converted to type string.\\r\\n\\r\\n* If regex mode is used, there is an option to add regex flags in order to control the whole regex used in parse.\\r\\n\\r\\n* In regex mode, parse will translate the pattern to a regex and use [RE2 syntax](query_language_re2.md) in order to do the matching using numbered captured groups which \\r\\n are handeled internally.\\r\\n So for example, this parse statement :\\r\\n \\r\\n\\t\\r\\n\\t```\\r\\n\\tparse kind=regex Col with * var1:string var2:long\\r\\n\\t```\\r\\n\\r\\n\\tThe regex that will be generated by the parse internally is `.*?(.*?)(\\\\-\\\\d+)`.\\r\\n\\t\\t\\r\\n\\t- `*` was translated to `.*?`.\\r\\n\\t\\t\\r\\n\\t- `string` was translated to `.*?`.\\r\\n\\t\\t\\r\\n\\t- `long` was translated to `\\\\-\\\\d+`.\',\'The `parse` operator provides a streamlined way to `extend` a table\\r\\nby using multiple `extract` applications on the same `string` expression.\\r\\nThis is most useful when the table has a `string` column that contains\\r\\nseveral values that you want to break into individual columns, such as a\\r\\ncolumn that was produced by a developer trace ("`printf`"/"`Console.WriteLine`")\\r\\nstatement.\\r\\n\\r\\nIn the example below, assume that the column `EventText` of table `Traces` contains\\r\\nstrings of the form `Event: NotifySliceRelease (resourceName={0}, totalSlices= {1}, sliceNumber={2}, lockTime={3}, releaseTime={4}, previousLockTime={5})`.\\r\\nThe operation below will extend the table with 6 columns: `resourceName` , `totalSlices`, `sliceNumber`, `lockTime `, `releaseTime`, `previouLockTime`, \\r\\n `Month` and `Day`. \\r\\n\\r\\n\\r\\n|eventText|\\r\\n|---|\\r\\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01, previousLockTime=02/17/2016 08:39:01)|\\r\\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=15, lockTime=02/17/2016 08:40:00, releaseTime=02/17/2016 08:40:00, previousLockTime=02/17/2016 08:39:00)|\\r\\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=20, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01, previousLockTime=02/17/2016 08:39:01)|\\r\\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=22, lockTime=02/17/2016 08:41:01, releaseTime=02/17/2016 08:41:00, previousLockTime=02/17/2016 08:40:01)|\\r\\n|Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=27, sliceNumber=16, lockTime=02/17/2016 08:41:00, releaseTime=02/17/2016 08:41:00, previousLockTime=02/17/2016 08:40:00)|\\r\\n\\r\\n\\r\\n```\\r\\nTraces \\r\\n| parse eventText with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \\r\\n| project resourceName ,totalSlices , sliceNumber , lockTime , releaseTime , previouLockTime\\r\\n```\\r\\n\\r\\n|resourceName|totalSlices|sliceNumber|lockTime|releaseTime|previouLockTime|\\r\\n|---|---|---|---|---|---|\\r\\n|PipelineScheduler|27|15|02/17/2016 08:40:00|2016-02-17 08:40:00.0000000|2016-02-17 08:39:00.0000000|\\r\\n|PipelineScheduler|27|23|02/17/2016 08:40:01|2016-02-17 08:40:01.0000000|2016-02-17 08:39:01.0000000|\\r\\n|PipelineScheduler|27|20|02/17/2016 08:40:01|2016-02-17 08:40:01.0000000|2016-02-17 08:39:01.0000000|\\r\\n|PipelineScheduler|27|16|02/17/2016 08:41:00|2016-02-17 08:41:00.0000000|2016-02-17 08:40:00.0000000|\\r\\n|PipelineScheduler|27|22|02/17/2016 08:41:01|2016-02-17 08:41:00.0000000|2016-02-17 08:40:01.0000000|\\r\\n\\r\\nfor regex mode :\\r\\n\\r\\n\\r\\n```\\r\\nTraces \\r\\n| parse kind = regex eventText with "(.*?)[a-zA-Z]*=" resourceName @", totalSlices=\\\\s*\\\\d+\\\\s*.*?sliceNumber=" sliceNumber:long ".*?(previous)?lockTime=" lockTime ".*?releaseTime=" releaseTime ".*?previousLockTime=" previouLockTime:date "\\\\\\\\)" \\r\\n| project resourceName , sliceNumber , lockTime , releaseTime , previouLockTime\\r\\n```\\r\\n\\r\\n|resourceName|sliceNumber|lockTime|releaseTime|previouLockTime|\\r\\n|---|---|---|---|---|\\r\\n|PipelineScheduler|15|02/17/2016 08:40:00, |02/17/2016 08:40:00, |2016-02-17 08:39:00.0000000|\\r\\n|PipelineScheduler|23|02/17/2016 08:40:01, |02/17/2016 08:40:01, |2016-02-17 08:39:01.0000000|\\r\\n|PipelineScheduler|20|02/17/2016 08:40:01, |02/17/2016 08:40:01, |2016-02-17 08:39:01.0000000|\\r\\n|PipelineScheduler|16|02/17/2016 08:41:00, |02/17/2016 08:41:00, |2016-02-17 08:40:00.0000000|\\r\\n|PipelineScheduler|22|02/17/2016 08:41:01, |02/17/2016 08:41:00, |2016-02-17 08:40:01.0000000|\\r\\n\\r\\nfor regex mode using regex flags:\\r\\n\\r\\nif we are interested in getting the resourceName only and we use this query:\\r\\n\\r\\n\\r\\n```\\r\\nTraces\\r\\n| parse kind = regex EventText with * "resourceName=" resourceName \\\',\\\' *\\r\\n| project resourceName\\r\\n```\\r\\n\\r\\n|resourceName|\\r\\n|---|\\r\\n|PipelineScheduler, totalSlices=27, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01|\\r\\n|PipelineScheduler, totalSlices=27, sliceNumber=15, lockTime=02/17/2016 08:40:00, releaseTime=02/17/2016 08:40:00|\\r\\n|PipelineScheduler, totalSlices=27, sliceNumber=22, lockTime=02/17/2016 08:41:01, releaseTime=02/17/2016 08:41:00|\\r\\n|PipelineScheduler, totalSlices=27, sliceNumber=20, lockTime=02/17/2016 08:40:01, releaseTime=02/17/2016 08:40:01|\\r\\n|PipelineScheduler, totalSlices=27, sliceNumber=16, lockTime=02/17/2016 08:41:00, releaseTime=02/17/2016 08:41:00|\\r\\n\\r\\n\\r\\nwe don\\\'t get the expected results since the default mode is greedy.\\r\\nor even if we had few records where the resourceName appears sometimes lower-case sometimes upper-case so we may\\r\\nget nulls for some values.\\r\\nin order to get the wanted result, we may run this one with regex flags ungreedy and disable case-sensitive mode :\\r\\n\\r\\n\\r\\n```\\r\\nTraces\\r\\n| parse kind = regex flags = Ui EventText with * "RESOURCENAME=" resourceName \\\',\\\' *\\r\\n| project resourceName\\r\\n```\\r\\n\\r\\n|resourceName|\\r\\n|---|\\r\\n|PipelineScheduler|\\r\\n|PipelineScheduler|\\r\\n|PipelineScheduler|\\r\\n|PipelineScheduler|\\r\\n|PipelineScheduler|\\r\\n\\r\\n\\r\\n\\r\\n\\r\\nfor relaxed mode :\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1 | parse kind=relaxed "Event: NotifySliceRelease (resourceName=PipelineScheduler, totalSlices=NULL, sliceNumber=23, lockTime=02/17/2016 08:40:01, releaseTime=NULL, previousLockTime=02/17/2016 08:39:01)" with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \\r\\n| project resourceName ,totalSlices , sliceNumber , lockTime , releaseTime , previouLockTime\\r\\n```\\r\\n\\r\\n|resourceName|totalSlices|sliceNumber|lockTime|releaseTime|previouLockTime|\\r\\n|---|---|---|---|---|---|\\r\\n|PipelineScheduler||23|02/17/2016 08:40:01||2016-02-17 08:39:01.0000000|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_ipv4","Converts input to integener (signed 64-bit) number representation.","parse_ipv4(\\"127.0.0.1\\") == 2130706433\\r\\n parse_ipv4(\'192.1.168.1\') < parse_ipv4(\'192.1.168.2\') == true\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`parse_ipv4(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to long. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a long number.\\r\\nIf conversion is not successful, result will be `null`.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_ipv4function.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_json","Interprets a `string` as a [JSON value](http://json.org/)) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md). \\r\\nIt is superior to using [extractjson() function](./query_language_extractjsonfunction.md)\\r\\nwhen you need to extract more than one element of a JSON compound object.","**Syntax**\\r\\n\\r\\n`parse_json(`*json*`)`\\r\\n\\r\\nAliases:\\r\\n- [todynamic()](./query_language_todynamicfunction.md)\\r\\n- [toobject()](./query_language_todynamicfunction.md)\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *json*: An expression of type `string`, representing a JSON-formatted value,\\r\\n or an expression of type `dynamic`, representing the actual `dynamic` value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` that is determined by the value of *json*:\\r\\n* If *json* is of type `dynamic`, its value is used as-is.\\r\\n* If *json* is of type `string`, and is a [properly-formatted JSON string](http://json.org/),\\r\\n the string is parsed and the value produced is returned.\\r\\n* If *json* is of type `string`, but it is **not** a [properly-formatted JSON string](http://json.org/),\\r\\n then the returned value is an object of type `dynamic` that holds the original\\r\\n `string` value.",\'In the following example, when `context_custom_metrics` is a `string`\\r\\nthat looks like this: \\r\\n\\r\\n```\\r\\n{"duration":{"value":118.0,"count":5.0,"min":100.0,"max":150.0,"stdDev":0.0,"sampledValue":118.0,"sum":118.0}}\\r\\n```\\r\\n\\r\\nthen the following CSL Fragment retrieves the value of the `duration` slot\\r\\nin the object, and from that it retrieves two slots, `duration.value` and\\r\\n `duration.min` (`118.0` and `110.0`, respectively).\\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| extend d=parse_json(context_custom_metrics) \\r\\n| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]\\r\\n```\\r\\n\\r\\n**Notes**\\r\\n\\r\\nIt is somewhat common to have a JSON string describing a property bag in which\\r\\none of the "slots" is another JSON string. For example:\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nlet d=\\\'{"a":123, "b":"{\\\\\\\\"c\\\\\\\\":456}"}\\\';\\r\\nprint d\\r\\n```\\r\\n\\r\\nIn such cases, it is not only necessary to invoke `parse_json` twice, but also\\r\\nto make sure that in the second call, `tostring` will be used. Otherwise, the\\r\\nsecond call to `parse_json` will simply pass-on the input to the output as-is,\\r\\nbecause its declared type is `dynamic`:\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nlet d=\\\'{"a":123, "b":"{\\\\\\\\"c\\\\\\\\":456}"}\\\';\\r\\nprint d_b_c=parse_json(tostring(parse_json(d).b)).c\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parsejsonfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_url","Parses an absolute URL `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains all parts of the URL (Scheme, Host, Port, Path, Username, Password, Query Parameters, Fragment).","**Syntax**\\r\\n\\r\\n`parse_url(`*url*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *url*: A string represents a URL or the query part of the URL.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` that inculded the URL components as listed above.",\'```\\r\\nT | extend Result = parse_url("scheme://username:password@host:1234/this/is/a/path?k1=v1&k2=v2#fragment")\\r\\n```\\r\\n\\r\\nwill result\\r\\n\\r\\n```\\r\\n {\\r\\n \\t"Scheme":"scheme",\\r\\n \\t"Host":"host",\\r\\n \\t"Port":"1234",\\r\\n \\t"Path":"this/is/a/path",\\r\\n \\t"Username":"username",\\r\\n \\t"Password":"password",\\r\\n \\t"Query Parameters":"{"k1":"v1", "k2":"v2"}",\\r\\n \\t"Fragment":"fragment"\\r\\n }\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseurlfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_urlquery","Parses a url query `string` and returns a [`dynamic`](./scalar-data-types/dynamic.md) object contains the Query parameters.","**Syntax**\\r\\n\\r\\n`parse_urlquery(`*query*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *query*: A string represents a url query.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` that includes the query parameters.",\'```\\r\\nparse_urlquery("k1=v1&k2=v2&k3=v3")\\r\\n```\\r\\n\\r\\nwill result:\\r\\n\\r\\n```\\r\\n {\\r\\n \\t"Query Parameters":"{"k1":"v1", "k2":"v2", "k3":"v3"}",\\r\\n }\\r\\n```\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* Input format should follow URL query standards (key=value& ...)\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parseurlqueryfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_user_agent","Interprets a user-agent string, which identifies the user\'s browser and provides certain system details to servers hosting the websites the user visits. The result is returned as [`dynamic`](./scalar-data-types/dynamic.md).",\'**Syntax**\\r\\n\\r\\n`parse_user_agent(`*user-agent-string*, *look-for*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *user-agent-string*: An expression of type `string`, representing a user-agent string.\\r\\n\\r\\n* *look-for*: An expression of type `string` or `dynamic`, representing what the function should be looking for in the user-agent string (parsing target). \\r\\nThe possible options: "browser", "os", "device". If only a single parsing target is required it can be passed a `string` parameter.\\r\\nIf two or three are required they can be passed as a `dynamic array`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` that contains the information about the requested parsing targets.\\r\\n\\r\\nBrowser: Family, MajorVersion, MinorVersion, Patch \\r\\n\\r\\nOperatingBridge.global.System: Family, MajorVersion, MinorVersion, Patch, PatchMinor \\r\\n\\r\\nDevice: Family, Brand, Model\',\'```\\r\\nprint useragent = "Mozilla/5.0 (Windows; U; en-US) AppleWebKit/531.9 (KHTML, like Gecko) AdobeAIR/2.5.1"\\r\\n| extend x = parse_user_agent(useragent, "browser") \\r\\n```\\r\\n\\r\\nExpected result is a dynamic object:\\r\\n\\r\\n{\\r\\n "Browser": {\\r\\n "Family": "AdobeAIR",\\r\\n "MajorVersion": "2",\\r\\n "MinorVersion": "5",\\r\\n "Patch": "1"\\r\\n }\\r\\n}\\r\\n\\r\\n\\r\\n```\\r\\nprint useragent = "Mozilla/5.0 (SymbianOS/9.2; U; Series60/3.1 NokiaN81-3/10.0.032 Profile/MIDP-2.0 Configuration/CLDC-1.1 ) AppleWebKit/413 (KHTML, like Gecko) Safari/4"\\r\\n| extend x = parse_user_agent(useragent, dynamic(["browser","os","device"])) \\r\\n```\\r\\n\\r\\nExpected result is a dynamic object:\\r\\n\\r\\n{\\r\\n "Browser": {\\r\\n "Family": "Nokia OSS Browser",\\r\\n "MajorVersion": "3",\\r\\n "MinorVersion": "1",\\r\\n "Patch": ""\\r\\n },\\r\\n "OperatingBridge.global.System": {\\r\\n "Family": "Symbian OS",\\r\\n "MajorVersion": "9",\\r\\n "MinorVersion": "2",\\r\\n "Patch": "",\\r\\n "PatchMinor": ""\\r\\n },\\r\\n "Device": {\\r\\n "Family": "Nokia N81",\\r\\n "Brand": "Nokia",\\r\\n "Model": "N81-3"\\r\\n }\\r\\n}\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_useragentfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_version","Converts input string representation of version to a comparable decimal number.","parse_version(\\"0.0.0.1\\")\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`parse_version` `(` *Expr* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: A scalar expression of type `string` that specifies the version to be parsed.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a decimal.\\r\\nIf conversion is not successful, result will be `null`.\\r\\n\\r\\n**Notes**\\r\\n\\r\\nInput string must contain from 1 to 4 version parts, represented as numbers and separated with dots (\'.\').\\r\\n\\r\\nEach part of version may contain up to 8 digits (max value - 99999999).\\r\\n\\r\\nIn case, if amount of parts is less than 4, all the missing parts are considered as trailing (`1.0` == `1.0.0.0`).",\'```\\r\\nlet dt = datatable(v:string)\\r\\n["0.0.0.5","0.0.7.0","0.0.3","0.2","0.1.2.0","1.2.3.4","1","99999999.0.0.0"];\\r\\ndt | project v1=v, _key=1 \\r\\n| join kind=inner (dt | project v2=v, _key = 1) on _key | where v1 != v2\\r\\n| summarize v1 = max(v1),v2 = min(v2) by (hash(v1) + hash(v2)) // removing duplications\\r\\n| project v1, v2, higher_version = iif(parse_version(v1) > parse_version(v2), v1, v2)\\r\\n\\r\\n```\\r\\n\\r\\n|v1|v2|higher_version|\\r\\n|---|---|---|\\r\\n|99999999.0.0.0|0.0.0.5|99999999.0.0.0|\\r\\n|1|0.0.0.5|1|\\r\\n|1.2.3.4|0.0.0.5|1.2.3.4|\\r\\n|0.1.2.0|0.0.0.5|0.1.2.0|\\r\\n|0.2|0.0.0.5|0.2|\\r\\n|0.0.3|0.0.0.5|0.0.3|\\r\\n|0.0.7.0|0.0.0.5|0.0.7.0|\\r\\n|99999999.0.0.0|0.0.7.0|99999999.0.0.0|\\r\\n|1|0.0.7.0|1|\\r\\n|1.2.3.4|0.0.7.0|1.2.3.4|\\r\\n|0.1.2.0|0.0.7.0|0.1.2.0|\\r\\n|0.2|0.0.7.0|0.2|\\r\\n|0.0.7.0|0.0.3|0.0.7.0|\\r\\n|99999999.0.0.0|0.0.3|99999999.0.0.0|\\r\\n|1|0.0.3|1|\\r\\n|1.2.3.4|0.0.3|1.2.3.4|\\r\\n|0.1.2.0|0.0.3|0.1.2.0|\\r\\n|0.2|0.0.3|0.2|\\r\\n|99999999.0.0.0|0.2|99999999.0.0.0|\\r\\n|1|0.2|1|\\r\\n|1.2.3.4|0.2|1.2.3.4|\\r\\n|0.2|0.1.2.0|0.2|\\r\\n|99999999.0.0.0|0.1.2.0|99999999.0.0.0|\\r\\n|1|0.1.2.0|1|\\r\\n|1.2.3.4|0.1.2.0|1.2.3.4|\\r\\n|99999999.0.0.0|1.2.3.4|99999999.0.0.0|\\r\\n|1.2.3.4|1|1.2.3.4|\\r\\n|99999999.0.0.0|1|99999999.0.0.0|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_versionfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"parse_xml","Interprets a `string` as a XML value, converts the value to a [JSON value](http://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).",\'**Syntax**\\r\\n\\r\\n`parse_xml(`*xml*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *xml*: An expression of type `string`, representing a XML-formatted value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` that is determined by the value of *xml*, or null, if the XML format is invalid.\\r\\n\\r\\nConverting the XML to JSON is done using [xml2json](https://github.com/Cheedoong/xml2json) library.\\r\\n\\r\\nThe conversion is done as following:\\r\\n\\r\\nXML |JSON |Access\\r\\n-----------------------------------|------------------------------------------------|-------------- \\r\\n`` | { "e": null } | o.e\\r\\n`text`\\t | { "e": "text" }\\t | o.e\\r\\n`` | { "e":{"@name": "value"} }\\t | o.e["@name"]\\r\\n`text` | { "e": { "@name": "value", "#text": "text" } } | o.e["@name"] o.e["#text"]\\r\\n` text text ` | { "e": { "a": "text", "b": "text" } }\\t | o.e.a o.e.b\\r\\n` text text ` | { "e": { "a": ["text", "text"] } }\\t | o.e.a[0] o.e.a[1]\\r\\n` text text ` | { "e": { "#text": "text", "a": "text" } }\\t | 1`o.e["#text"] o.e.a\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* Maximal input `string` length for `parse_xml` is 128 KB. Longer strings interpretation will result in a null object \\r\\n* Only element nodes, attributes and text nodes will be translated. Everything else will be skipped\\r\\n* Translation of XMLs with namespaces is currently not supported\',\'In the following example, when `context_custom_metrics` is a `string`\\r\\nthat looks like this: \\r\\n\\r\\n```\\r\\n\\r\\n\\r\\n 118.0\\r\\n 5.0\\r\\n 100.0\\r\\n 150.0\\r\\n 0.0\\r\\n 118.0\\r\\n 118.0\\r\\n\\r\\n```\\r\\n\\r\\nthen the following CSL Fragment translates the XML to the following JSON:\\r\\n```\\r\\n{\\r\\n "duration": {\\r\\n "value": 118.0,\\r\\n "count": 5.0,\\r\\n "min": 100.0,\\r\\n "max": 150.0,\\r\\n "stdDev": 0.0,\\r\\n "sampledValue": 118.0,\\r\\n "sum": 118.0\\r\\n }\\r\\n}\\r\\n```\\r\\n\\r\\nand retrieves the value of the `duration` slot\\r\\nin the object, and from that it retrieves two slots, `duration.value` and\\r\\n `duration.min` (`118.0` and `110.0`, respectively).\\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| extend d=parse_xml(context_custom_metrics) \\r\\n| extend duration_value=d.duration.value, duration_min=d["duration"]["min"]\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_parse_xmlfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentile","Returns an estimate for the specified [nearest-rank percentile](#nearest-rank-percentile) of the population defined by *Expr*. \\r\\nThe accuracy depends on the density of population in the region of the percentile.",\'* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n`percentiles()` is like `percentile()`, but calculates a number of \\r\\npercentile values (which is faster than calculating each percentile individually).\\r\\n\\r\\n`percentilesw()` is like `percentilew()`, but calculates a number of \\r\\npercentile values (which is faster than calculating each percentile individually).\\r\\n\\r\\n`percentilew()` and `percentilesw()` allows calculating weighted percentiles. Weighted\\r\\npercentiles calculate the given percentiles in a "weighted" way - threating each value\\r\\nas if it was repeated `Weight` times in the input.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `percentile(`*Expr*`,` *Percentile*`)`\\r\\n\\r\\nsummarize `percentiles(`*Expr*`,` *Percentile1* [`,` *Percentile2*]`)`\\r\\n\\r\\nsummarize `percentiles_array(`*Expr*`,` *Percentile1* [`,` *Percentile2*]`)`\\r\\n\\r\\nsummarize `percentiles_array(`*Expr*`,` *Dynamic array*`)`\\r\\n\\r\\nsummarize `percentilew(`*Expr*`,` *WeightExpr*`,` *Percentile*`)`\\r\\n\\r\\nsummarize `percentilesw(`*Expr*`,` *WeightExpr*`,` *Percentile1* [`,` *Percentile2*]`)`\\r\\n\\r\\nsummarize `percentilesw_array(`*Expr*`,` *WeightExpr*`,` *Percentile1* [`,` *Percentile2*]`)`\\r\\n\\r\\nsummarize `percentilesw_array(`*Expr*`,` *WeightExpr*`,` *Dynamic array*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation.\\r\\n* *WeightExpr*: Expression that will be used as the weight of values for aggregation calculation.\\r\\n* *Percentile* is a double constant that specifies the percentile.\\r\\n* *Dynamic array*: list of percentiles in a dynamic array of integer or floating point numbers\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns an estimate for *Expr* of the specified percentiles in the group.\',\'The value of `Duration` that is larger than 95% of the sample set and smaller than 5% of the sample set:\\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords | summarize percentile(Duration, 95) by continent\\r\\n```\\r\\n\\r\\nSimultaneously calculate 5, 50 (median) and 95:\\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords \\r\\n| summarize percentiles(Duration, 5, 50, 95) by continent\\r\\n```\\r\\n\\r\\n![](./images/aggregations/percentiles.png)\\r\\n\\r\\nThe results show that in Europe, 5% of calls are shorter than 11.55s, 50% of calls are shorter than 3 minutes 18.46 seconds, and 95% of calls are shorter than 40 minutes 48 seconds.\\r\\n\\r\\nCalculate multiple statistics:\\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords \\r\\n| summarize percentiles(Duration, 5, 50, 95), avg(Duration)\\r\\n```\\r\\n\\r\\n## Weighted percentiles\\r\\n\\r\\nAssume you measure the time (Duration) it takes an action to complete again and again, and\\r\\nthen instead of recording each and every value of the measurement, you "condense" them by\\r\\nrecording each value of Duration rounded to 100 msec and how many times that rounded value\\r\\nappeared (BucketSize).\\r\\n\\r\\nYou can use `summarize percentilesw(Duration, BucketSize, ...)` to calculates the given\\r\\npercentiles in a "weighted" way - treating each value of Duration as if it was repeated\\r\\nBucketSize times in the input, without actually needing to materialize those records.\\r\\n\\r\\nConsider the following following example (taken from [StackOverflow](https://stackoverflow/questions/8106/kusto-percentiles-on-aggregated-data)).\\r\\nA customer has a set of latency values in milliseconds:\\r\\n`{ 1, 1, 2, 2, 2, 5, 7, 7, 12, 12, 15, 15, 15, 18, 21, 22, 26, 35 }`.\\r\\n\\r\\nIn order to reduce bandwidth and storage, the custmer performs pre-aggregation to the\\r\\nfollowing buckets: `{ 10, 20, 30, 40, 50, 100 }`, and counts the number of events in each bucket,\\r\\nwhich gives the following Kusto table:\\r\\n\\r\\n![](./images/aggregations/percentilesw-table.png)\\r\\n\\r\\nWhich can be read as:\\r\\n - 8 events in the 10ms bucket (corresponding to subset `{ 1, 1, 2, 2, 2, 5, 7, 7 }`)\\r\\n - 6 events in the 20ms bucket (corresponding to subset `{ 12, 12, 15, 15, 15, 18 }`)\\r\\n - 3 events in the 30ms bucket (corresponding to subset `{ 21, 22, 26 }`)\\r\\n - 1 event in the 40ms bucket (corresponding to subset `{ 35 }`)\\r\\n\\r\\nAt this point, the original data is no longer available to us, and all we have is the\\r\\nnumber of events in each bucket. In order to compute percentiles from this data,\\r\\nwe can use the `percentilesw()` function. For example, for the 50,\\r\\n75 and 99.9 percentiles, we\\\'ll use the following query: \\r\\n\\r\\n\\r\\n```\\r\\nTable\\r\\n| summarize percentilesw(LatencyBucket, ReqCount, 50, 75, 99.9) \\r\\n```\\r\\n\\r\\nThe result for the above query is:\\r\\n\\r\\n![](./images/aggregations/percentilesw-result.png)\\r\\n\\r\\nNotice, that the above query corresponds to the function\\r\\n`percentiles(LatencyBucket, 50, 75, 99.9)` if the data was expended to the following form:\\r\\n\\r\\n![](./images/aggregations/percentilesw-rawtable.png)\\r\\n\\r\\n## Getting multiple percentiles in an array\\r\\nMultiple percentiles percentiles can be obtained as an array in a single dynamic column instead of multiple columns: \\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords \\r\\n| summarize percentiles_array(Duration, 5, 25, 50, 75, 95), avg(Duration)\\r\\n```\\r\\n\\r\\n![](./images/aggregations/percentiles_array-result.png)\\r\\n\\r\\nSimilarily weighted percentiles can be returned as a dynamic array using `percentilesw_array`\\r\\n\\r\\nPercentiles for `percentiles_array` and `percentilesw_array` can be specified in a dynamic array of integer or floating-point numbers. The array must be constant but does not have to be literal.\\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords \\r\\n| summarize percentiles_array(Duration, dynamic([5, 25, 50, 75, 95])), avg(Duration)\\r\\n```\\r\\n\\r\\n\\r\\n```\\r\\nCallDetailRecords \\r\\n| summarize percentiles_array(Duration, range(0, 100, 5)), avg(Duration)\\r\\n```\\r\\n## Nearest-rank percentile\\r\\n*P*-th percentile (0 < *P* <= 100) of a list of ordered values (sorted from least to greatest) is the smallest value in the list such that *P* percent of the data is less or equal to that value ([from Wikipedia article on percentiles](https://en.wikipedia.org/wiki/Percentile#The_Nearest_Rank_method))\\r\\n\\r\\nWe also define *0*-th percentiles to be the smallest member of the population.\\r\\n\\r\\n**Note**\\r\\n* Given the approximating nature of the calculation the actual returned value may not be a member of the population\\r\\n* Nearest-rank definition means that *P*=50 does not conform to the [interpolative definition of the median](https://en.wikipedia.org/wiki/Median). When evaluating the significance of this discrepancy for the specific application the size of the population and an [estimation error](#estimation-error-in-percentiles) should be taken into account. \\r\\n\\r\\n## Estimation error in percentiles\\r\\n\\r\\nThe percentiles aggregate provides an approximate value using [T-Digest](https://github.com/tdunning/t-digest/blob/master/docs/t-digest-paper/histo.pdf). \\r\\n\\r\\nA few important points: \\r\\n\\r\\n* The bounds on the estimation error vary with the value of the requested percentile. The best accuracy is at the ends of [0..100] scale, percentiles 0 and 100 are the exact minimum and maximum values of the distribution. The accuracy gradually decreases towards the middle of the scale. It is worst at the median and is capped at 1%. \\r\\n* Error bounds are observed on the rank, not on the value. Suppose percentile(X, 50) returned value of Xm. The estimation guarantees that at least 49% and at most 51% of the values of X are less or equal to Xm. There is no theoretical limit on the difference between Xm and actual median value of X.\\r\\n* The estimation may sometimes result in a precise value but there are no reliable conditions to define when it will be the case\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentiles_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentile_tdigest","Calculates the percentile result from tdigest results (which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md))","**Syntax**\\r\\n\\r\\n`percentile_tdigest(`*Expr*`,` *Percentile1* [`,` *typeLiteral*]`)`\\r\\n\\r\\n`percentiles_array_tdigest(`*Expr*`,` *Percentile1* [`,` *Percentile2*] ...[`,` *PercentileN*]`)`\\r\\n\\r\\n`percentiles_array_tdigest(`*Expr*`,` *Dynamic array*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md)\\r\\n* *Percentile* is a double constant that specifies the percentile.\\r\\n* *typeLiteral*: An optional type literal (e.g., `typeof(long)`). If provided, the result set will be of this type. \\r\\n* *Dynamic array*: list of percentiles in a dynamic array of integer or floating point numbers\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe percentiles/percentilesw value of each value in *Expr*.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n1) The function must recieve at least one percent (and maybe more, see the syntax above: *Percentile1* [`,` *Percentile2*] ...[`,` *PercentileN*]) and the result will be\\r\\n a dynamic array which includes the results. (such like [`percentiles()`](query_language_percentiles_aggfunction.md))\\r\\n \\r\\n2) if only one percent was provided and the type was provided also then the result will be a column of the same type provided with the results of that percent (all tdigests must be of that type in this case).\\r\\n\\r\\n3) if *Expr* includes tdigests of different types, then don\'t provide the type and the result will be of type dynamic. (see examples below).",\'```\\r\\nStormEvents\\r\\n| summarize tdigestRes = tdigest(DamageProperty) by State\\r\\n| project percentile_tdigest(tdigestRes, 100, typeof(int))\\r\\n```\\r\\n\\r\\n|percentile_tdigest_tdigestRes|\\r\\n|---|\\r\\n|0|\\r\\n|62000000|\\r\\n|110000000|\\r\\n|1200000|\\r\\n|250000|\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| summarize tdigestRes = tdigest(DamageProperty) by State\\r\\n| project percentiles_array_tdigest(tdigestRes, range(0, 100, 50), typeof(int))\\r\\n```\\r\\n\\r\\n|percentile_tdigest_tdigestRes|\\r\\n|---|\\r\\n|[0,0,0]|\\r\\n|[0,0,62000000]|\\r\\n|[0,0,110000000]|\\r\\n|[0,0,1200000]|\\r\\n|[0,0,250000]|\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| summarize tdigestRes = tdigest(DamageProperty) by State\\r\\n| union (StormEvents | summarize tdigestRes = tdigest(EndTime) by State)\\r\\n| project percentile_tdigest(tdigestRes, 100)\\r\\n```\\r\\n\\r\\n|percentile_tdigest_tdigestRes|\\r\\n|---|\\r\\n|[0]|\\r\\n|[62000000]|\\r\\n|["2007-12-20T11:30:00.0000000Z"]|\\r\\n|["2007-12-31T23:59:00.0000000Z"]|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentile_tdigestfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"percentrank_tdigest","Calculates the approximate rank of the value in a set where rank is expressed as percentage of set\'s size. \\r\\nThis function can be viewed as the inverse of the percentile.","**Syntax**\\r\\n\\r\\n`percentrank_tdigest(`*TDigest*`,` *Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *TDigest*: Expression which was generated by [tdigest](query_language_tdigest_aggfunction.md) or [merge_tdigests](query_language_merge_tdigests_aggfunction.md)\\r\\n* *Expr*: Expression representing a value to be used for percentage ranking calculation.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe percentage rank of value in a dataset.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n1) The type of second parameter and the type of the elements in the tdigest should be the same.\\r\\n\\r\\n2) First parameter should be TDigest which was generated by [tdigest()](query_language_tdigest_aggfunction.md) or [merge_tdigests()](query_language_merge_tdigests_aggfunction.md)","Getting the percentrank_tdigest() of the damage property that valued 4490$ is ~85%:\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| summarize tdigestRes = tdigest(DamageProperty)\\r\\n| project percentrank_tdigest(tdigestRes, 4490)\\r\\n\\r\\n```\\r\\n\\r\\n|Column1|\\r\\n|---|\\r\\n|85.0015237192293|\\r\\n\\r\\n\\r\\nUsing percentile 85 over the damage property should give 4490$:\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| summarize tdigestRes = tdigest(DamageProperty)\\r\\n| project percentile_tdigest(tdigestRes, 85, typeof(long))\\r\\n\\r\\n```\\r\\n\\r\\n|percentile_tdigest_tdigestRes|\\r\\n|---|\\r\\n|4490|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_percentrank_tdigestfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pi","Returns the constant value of Pi (π).","**Syntax**\\r\\n\\r\\n`pi()`\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The value of Pi.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_pifunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"pow","Returns a result of raising to power","**Syntax**\\r\\n\\r\\n`pow(`*base*`,` *exponent* `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *base*: Base value.\\r\\n* *exponent*: Exponent value.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns base raised to the power exponent: base ^ exponent.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_powfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"prev","Returns the value of a column in a row that it at some offset prior to the\\r\\ncurrent row in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\\r\\n\\r\\n`prev(column)`\\r\\n\\r\\n`prev(column, offset)`\\r\\n\\r\\n`prev(column, offset, default_value)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `column`: the column to get the values from.\\r\\n\\r\\n* `offset`: the offset to go back in rows. When no offset is specified a default offset 1 is used.\\r\\n\\r\\n* `default_value`: the default value to be used when there is no previous rows to take the value from. When no default value is specified, null is used.","```\\r\\nTable | serialize | extend prevA = prev(A,1)\\r\\n| extend diff = A - prevA\\r\\n| where diff > 1\\r\\n\\r\\nTable | serialize prevA = prev(A,1,10)\\r\\n| extend diff = A - prevA\\r\\n| where diff <= 10\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_prevfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"print","Evaluates one or more scalar expressions and inserts the results (as a single-row table with as many columns as there are expressions) into the output.",\'print banner=strcat("Hello", ", ", "World!")\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`print` [*ColumnName* `=`] *ScalarExpression* [\\\',\\\' ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *ColumnName*: An option name to assign to the output\\\'s singular column.\\r\\n* *ScalarExpression*: A scalar expression to evaluate.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA single-column, single-row, table whose single cell has the value of the evaluated *ScalarExpression*.\',\'The `print` operator is useful as a quick way to test scalar expression evaluation\\r\\nin the system. Without it, one has to resort to tricks such as prepending the\\r\\nevaluation with a `range x from 1 to 1 step 1 | project ...` or\\r\\n`datatable (print_0:long)[1] | project ...`.\\r\\n\\r\\n\\r\\n```\\r\\nprint 0 + 1 + 2 + 3 + 4 + 5, x = "Wow!"\\r\\n\\r\\nprint banner=strcat("Hello", ", ", "World!")\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_printoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project","Select the columns to include, rename or drop, and insert new computed columns.","The order of the columns in the result is specified by the order of the arguments. Only the columns specified in the arguments are included in the result: any others in the input are dropped. (See also `extend`.)\\r\\n\\r\\n T | project cost=price*quantity, price\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| project` *ColumnName* [`=` *Expression*] [`,` ...]\\r\\n \\r\\nor\\r\\n \\r\\n*T* `| project` [*ColumnName* | `(`*ColumnName*[`,`]`)` `=`] *Expression* [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The input table.\\r\\n* *ColumnName:* Optional name of a column to appear in the output. If there is no *Expression*, then *ColumnName* is mandatory and a column of that name must appear in the input. If omitted then the name will be generated. If *Expression* returns more than one column, then a list of column names can be specified in parenthesis. In this case *Expression*\'s output columns will be given the specified names, dropping all rest of the output columns if any. If list of the column names is not specified then all *Expression*\'s output columns with generated names will be added to output.\\r\\n* *Expression:* Optional scalar expression referencing the input columns. If *ColumnName* is not omitted then Expression* is mandatory.\\r\\n\\r\\n It is legal to return a new calculated column with the same name as an existing column in the input.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table that has the columns named as arguments, and as many rows as the input table.",\'The following example shows several kinds of manipulations that can be done\\r\\nusing the `project` operator. The input table `T` has three columns of type `int`: `A`, `B`, and `C`. \\r\\n\\r\\n\\r\\n```\\r\\nT\\r\\n| project\\r\\n X=C, // Rename column C to X\\r\\n A=2*B, // Calculate a new column A from the old B\\r\\n C=strcat("-",tostring(C)), // Calculate a new column C from the old C\\r\\n B=2*B // Calculate a new column B from the old B\\r\\n```\\r\\n\\r\\nSee [series_stats](query_language_series_statsfunction.md) as an example of a function that returns multiple columns\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project-away","Select what columns to exclude from the input.","T | project-away price, quantity\\r\\n\\r\\nThe order of the columns in the result is specified by their original order in the table. Only the columns that were specified as arguments are dropped: any others are included in the result. (See also `project`.)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| project-away` *ColumnName* [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The input table.\\r\\n* *ColumnName:* The name of a column to remove from the output. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table that has the columns that were not named as arguments, and as many rows as the input table.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* Use [`project-rename`](query_language_projectrenameoperator.md) instead if you also want to rename some of the columns.\\r\\n\\r\\n* You can project-away any columns that are present in the original table or that were computed as part of the query.",\'The input table `T` has three columns of type `int`: `A`, `B`, and `C`. \\r\\n\\r\\n\\r\\n```\\r\\nT | project-away C // Removes column C from the output\\r\\n```\\r\\n\\r\\nReturns the table only with columns `A`, `B`. \\r\\n\\r\\nConsider the example for [`parse`](query_language_parseoperator.md). \\r\\nThe column `eventText` of table `Traces` contains\\r\\nstrings of the form `Event: NotifySliceRelease (resourceName={0}, totalSlices= {1}, sliceNumber={2}, lockTime={3}, releaseTime={4}, previousLockTime={5})`.\\r\\nThe operation below will extend the table with 6 columns: `resourceName` , `totalSlices`, `sliceNumber`, `lockTime `, `releaseTime`, `previouLockTime`, \\r\\n `Month` and `Day`, excluding the original \\\'evenText\\\' column.\\r\\n\\r\\n\\r\\n```\\r\\nTraces \\r\\n| parse eventText with * "resourceName=" resourceName ", totalSlices=" totalSlices:long * "sliceNumber=" sliceNumber:long * "lockTime=" lockTime ", releaseTime=" releaseTime:date "," * "previousLockTime=" previouLockTime:date ")" * \\r\\n| project-away eventText\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectawayoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"project-rename","Renames columns in the result output.","T | project-rename new_column_name = column_name\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| project-rename` *NewColumnName* = *ExistingColumnName* [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The input table.\\r\\n* *NewColumnName:* The new name of a column. \\r\\n* *ExistingColumnName:* The existing name of a column. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table that has the columns in the same order as in an existing table, with columns renamed.","```\\r\\nprint a=\'a\', b=\'b\', c=\'c\'\\r\\n| project-rename new_b=b, new_a=a\\r\\n```\\r\\n\\r\\n|new_a|new_b|c|\\r\\n|---|---|---|\\r\\n|a|b|c|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_projectrenameoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"radians","Converts angle value in degrees into value in radians, using formula `radians = (PI / 180 ) * angle_in_degrees`","**Syntax**\\r\\n\\r\\n`radians(`*a*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *a*: Angle in degrees (a real number).\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The corresponding angle in radians for an angle specified in degrees.","```\\r\\nprint radians0 = radians(90), radians1 = radians(180), radians2 = radians(360) \\r\\n\\r\\n```\\r\\n\\r\\n|radians0|radians1|radians2|\\r\\n|---|---|---|\\r\\n|1.5707963267949|3.14159265358979|6.28318530717959|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_radiansfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"rand","Returns a random number.","rand()\\r\\n rand(1000)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n* `rand()` - returns a real number between 0.0 and 1.0.\\r\\n* `rand(n)` - returns an integer number between 0 and n-1.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_randfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"range","Generates a dynamic array holding a series of equally-spaced values.","**Syntax**\\r\\n\\r\\n`range(`*start*`,` *stop*[`,` *step*]`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *start*: The value of the first element in the resulting array. \\r\\n* *stop*: The value of the last element in the resulting array,\\r\\nor the least value that is greater than the last element in the resulting\\r\\narray and within an integer multiple of *step* from *start*.\\r\\n* *step*: The difference between two consecutive elements of\\r\\nthe array. \\r\\nThe default value for *step* is `1` for numeric and `1h` for `timespan` or `datetime`",\'The following example returns `[1, 4, 7]`:\\r\\n\\r\\n\\r\\n```\\r\\nT | extend r = range(1, 8, 3)\\r\\n```\\r\\n\\r\\nThe following example returns an array holding all days\\r\\nin the year 2015:\\r\\n\\r\\n\\r\\n```\\r\\nT | extend r = range(datetime(2015-01-01), datetime(2015-12-31), 1d)\\r\\n```\\r\\n\\r\\nThe following example returns `[1,2,3]`:\\r\\n\\r\\n```\\r\\nrange(1, 3)\\r\\n```\\r\\n\\r\\nThe follwing example returns `["01:00:00","02:00:00","03:00:00","04:00:00","05:00:00"]`:\\r\\n```\\r\\nrange(1h, 5h)\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rangefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"range","Generates a single-column table of values.","Notice that it doesn\'t have a pipeline input. \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`range` *columnName* `from` *start* `to` *stop* `step` *step*\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *columnName*: The name of the single column in the output table.\\r\\n* *start*: The smallest value in the output.\\r\\n* *stop*: The highest value being generated in the output (or a bound\\r\\non the highest value, if *step* steps over this value).\\r\\n* *step*: The difference between two consecutive values. \\r\\n\\r\\nThe arguments must be numeric, date or timespan values. They can\'t reference the columns of any table. (If you want to compute the range based on an input table, use the range function, maybe with the mvexpand operator.) \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table with a single column called *columnName*,\\r\\nwhose values are *start*, *start* `+` *step*, ... up to and until *stop*.","A table of midnight at the past seven days. The bin (floor) function reduces each time to the start of the day.\\r\\n\\r\\n\\r\\n```\\r\\nrange LastWeek from ago(7d) to now() step 1d\\r\\n```\\r\\n\\r\\n|LastWeek|\\r\\n|---|\\r\\n|2015-12-05 09:10:04.627|\\r\\n|2015-12-06 09:10:04.627|\\r\\n|...|\\r\\n|2015-12-12 09:10:04.627|\\r\\n\\r\\n\\r\\nA table with a single column called `Steps`\\r\\nwhose type is `long` and whose values are `1`, `4`, and `7`.\\r\\n\\r\\n\\r\\n```\\r\\nrange Steps from 1 to 8 step 3\\r\\n```\\r\\n\\r\\nThe next example shows how the `range` operator can be used to create\\r\\na small, ad-hoc, dimension table which is then used to introduce zeros where the source data has no values.\\r\\n\\r\\n\\r\\n```\\r\\nrange TIMESTAMP from ago(4h) to now() step 1m\\r\\n| join kind=fullouter\\r\\n (Traces\\r\\n | where TIMESTAMP > ago(4h)\\r\\n | summarize Count=count() by bin(TIMESTAMP, 1m)\\r\\n ) on TIMESTAMP\\r\\n| project Count=iff(isnull(Count), 0, Count), TIMESTAMP\\r\\n| render timechart \\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rangeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"reduce","The `reduce` operator groups a set of `string` values together based on similarity.\\r\\nFor each such group, it outputs a **pattern** that best describes the group (possibly using the\\r\\nasterix (`*`) character to represent wildcards), a **count** of the number of values in the group,\\r\\nand a **representative** of the group (one of the original values in the group).",\'T | reduce by LogMessage with threshold=0.1\\r\\n\\r\\n> The implementation is largely based on the following paper:\\r\\n * [A Data Clustering Algorithm for Mining Patterns From Event Logs](http://ristov.github.io/publications/slct-ipom03-web.pdf), \\r\\n by Risto Vaarandi.\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `|` `reduce` [`kind` `=` *ReduceKind*] `by` *Expr* [`with` [`threshold` `=` *Threshold*] [`,` `characters` `=` *Characters*] ]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: An expression that evaluates to a `string` value.\\r\\n* *Threshold*: A `real` literal in the range (0..1). Default is 0.1. For large inputs, threshold should be small. \\r\\n* *Characters*: A `string` literal containing a list of characters to add to the list of characters\\r\\n that don\\\'t break a term. (For example, if you want `aaa=bbbb` and `aaa:bbb` to each be a whole term,\\r\\n rather than break on `=` and `:`, use `":="` as the string literal.)\\r\\n* *ReduceKind*: Specifies the reduce flavor. The only valid value for the time being is `source`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThis operator returns a table with three columns (`Pattern`, `Count`, and `Representative`),\\r\\nand as many rows as there are groups. `Pattern` is the pattern value for the group, with `*`\\r\\nbeing used as a wildcard (representing arbitrary insertion strings), `Count` counts how\\r\\nmany rows in the input to the operator are represented by this pattern, and `Representative`\\r\\nis one value from the input that falls into this group.\\r\\n\\r\\nIf `[kind=source]` is specified, the operator will append the `Pattern` column to the existing table structure.\\r\\nNote that the syntax an schema of this flavor might be subjected to future changes.\\r\\n\\r\\nFor example, the result of `reduce by city` might include: \\r\\n\\r\\n|Pattern |Count |Representative|\\r\\n|------------|------|--------------|\\r\\n| San * | 5182 |San Bernard |\\r\\n| Saint * | 2846 |Saint Lucy |\\r\\n| Moscow | 3726 |Moscow |\\r\\n| \\\\* -on- \\\\* | 2730 |One -on- One |\\r\\n| Paris | 2716 |Paris |\\r\\n\\r\\nAnother example with customized tokenization:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1000 step 1\\r\\n| project MyText = strcat("MachineLearningX", tostring(toint(rand(10))))\\r\\n| reduce by MyText with threshold=0.001 , characters = "X" \\r\\n```\\r\\n\\r\\n|Pattern |Count|Representative |\\r\\n|----------------|-----|-----------------|\\r\\n|MachineLearning*|1000 |MachineLearningX4|\',\'The following example shows how one might apply the `reduce` operator to a "sanitized"\\r\\ninput, in which GUIDs in the column being reduced are replaced prior to reducing\\r\\n\\r\\n\\r\\n```\\r\\n// Start with a few records from the Trace table.\\r\\nTrace | take 10000\\r\\n// We will reduce the Text column which includes random GUIDs.\\r\\n// As random GUIDs interfere with the reduce operation, replace them all\\r\\n// by the string "GUID".\\r\\n| extend Text=replace(@"[[:xdigit:]]{8}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{4}-[[:xdigit:]]{12}", @"GUID", Text)\\r\\n// Now perform the reduce. In case there are other "quasi-random" identifiers with embedded \\\'-\\\'\\r\\n// or \\\'_\\\' characters in them, treat these as non-term-breakers.\\r\\n| reduce by Text with characters="-_"\\r\\n```\\r\\n\\r\\n**See also**\\r\\n\\r\\n[autocluster](./query_language_autoclusterplugin.md)\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_reduceoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"render","Renders results in as graphical output.",\'T | render timechart\\r\\n\\r\\nThe render operator should be the last operator in the query expression.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `|` `render` *Visualization* [`with` (\\r\\n\\r\\n [`title` `=` *Title*],\\r\\n\\r\\n [`xcolumn` `=` *xColumn*],\\r\\n\\r\\n [`series` `=` *Series*],\\r\\n\\r\\n [`ycolumns` `=` *yColumns*],\\r\\n\\r\\n [`kind` `=` *VisualizationKind*],\\r\\n\\r\\n [`xtitle` `=` *xTitle*],\\r\\n\\r\\n [`ytitle` `=` *yTitle*],\\r\\n\\r\\n [`legend` `=` *Legend*],\\r\\n\\r\\n [`ysplit` `=` *ySplit*],\\r\\n\\r\\n [`accumulate` `=` *Accumulate*]\\r\\n)]\\r\\n\\r\\nWhere:\\r\\n* *Visualization* indicates the kind of visualization to perform. Supported values are:\\r\\n\\r\\n|*Visualization* |Description|\\r\\n|--------------------|-|\\r\\n| `anomalychart` | Similar to timechart, but [highlights anomalies](./query_language_samples.md#get-more-out-of-your-data-in-kusto-using-machine-learning) using an external machine-learning service. |\\r\\n| `areachart` | Area graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\\r\\n| `barchart` | First column is x-axis, and can be text, datetime or numeric. Other columns are numeric, displayed as horizontal strips.|\\r\\n| `columnchart` | Like `barchart`, with vertical strips instead of horizontal strips.|\\r\\n| `ladderchart` | Last two columns are the x-axis, other columns are y-axis.|\\r\\n| `linechart` | Line graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\\r\\n| `piechart` | First column is color-axis, second column is numeric. |\\r\\n| `pivotchart` | Displays a pivot table and chart. User can interactively select data, columns, rows and various chart types. |\\r\\n| `scatterchart` | Points graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\\r\\n| `stackedareachart` | Stacked area graph. First column is x-axis, and should be a numeric column. Other numeric columns are y-axes. |\\r\\n| `table` | Default - results are shown as a table.|\\r\\n| `timechart` | Line graph. First column is x-axis, and should be datetime. Other columns are y-axes.|\\r\\n| `timepivot` | Interactive navigation over the events time-line (pivoting on time axis)|\\r\\n\\r\\n* *title* is an optional `string` value that holds the title for the results.\\r\\n\\r\\n* *xColumn* is an optional column identifier, that defines data from which column will be used as x-axis.\\r\\n\\r\\n* *series* is an optional list of columns to control which "axis" is driven by which column in the data.\\r\\n\\r\\n* *yColumns* is an optional list of columns, data from which will be used as y-values.\\r\\n\\r\\n* *kind* is an optional identifier that chooses between the available kinds of the\\r\\n chosen *Visualization* (such as `barchart` and `columnchart`), if more than one kind is supported:\\r\\n\\r\\n|*Visualization*|*kind*|Description |\\r\\n|---------------|-------------------|--------------------------------|\\r\\n|`areachart` |`default` |Default, same as `unstacked` |\\r\\n| |`unstacked` |Each "area" to its own |\\r\\n| |`stacked` |"Areas" are stacked to the right|\\r\\n| |`stacked100` |"Areas" are stacked to the right, and stretched to the same width|\\r\\n|`barchart` |`default` |Default, same as `unstacked` |\\r\\n| |`unstacked` |Each bar to its own |\\r\\n| |`stacked` |Bars are stacked to the right |\\r\\n| |`stacked100` |Bars are stacked to the right, and stretched to the same width|\\r\\n|`columnchart` |`default` |Default, same as `unstacked` |\\r\\n| |`unstacked` |Each column to its own |\\r\\n| |`stacked` |Columns are stacked upwards |\\r\\n| |`stacked100` |Columns are stacked upwards, and stretched to the same height|\\r\\n\\r\\n* *xTitle* is an optional `string` value that holds the title for the X-Axis.\\r\\n\\r\\n* *yTitle* is an optional `string` value that holds the title for the Y-Axis.\\r\\n\\r\\n* *legend* is an optional value that can be set to either `visible` (the default) or `hidden`, which defines whether to display chart legend or not.\\r\\n\\r\\n* *ySplit* is an optional identifier that chooses between the available options of Y-Axis visualization:\\r\\n\\r\\n|*ySplit*|Description |\\r\\n|---------------|-------------------|\\r\\n|`none` |Default, chart displayed with single Y-Axis for all series |\\r\\n|`axes` |Displayed single chart with separate Y-Axis for each serie |\\r\\n|`panels` |For every column, defined as Y, generated separate panel, with binding to the same X-Axis (maximal panels amount is 5)|\\r\\n\\r\\n* *accumulate* is an optional value that can be set to either `true` or `false` (the default),\\r\\n and indicates whether to accumulate y-axis numeric values for presentation.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* Only positive values are displayed.\\r\\n* Use `where`, `summarize` and `top` to limit the volume that you display.\\r\\n* Sort the data to define the order of the x-axis.\',"[Rendering examples in the tutorial](./query_language_tutorial.md#render-display-a-chart-or-table).\\r\\n\\r\\n[Anomaly detection](./query_language_samples.md#get-more-out-of-your-data-in-kusto-using-machine-learning)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_renderoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"repeat","Generates a dynamic array holding a series of equal values.","**Syntax**\\r\\n\\r\\n`repeat(`*value*`,` *count*`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *value*: The value of the element in the resulting array. The type of *value* can be integer, long, real, datetime, or timespan. \\r\\n* *count*: The count of the elements in the resulting array. The *count* must be an integer number.\\r\\nIf *count* is equal to zero, a empty array is returned.\\r\\nIf *count* is less than zero, a null value is returned.","The following example returns `[1, 1, 1]`:\\r\\n\\r\\n\\r\\n```\\r\\nT | extend r = repeat(1, 3)\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_repeatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"replace","Replace all regex matches with another string.","**Syntax**\\r\\n\\r\\n`replace(`*regex*`,` *rewrite*`,` *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: The [regular expression](https://github.com/google/re2/wiki/Syntax) to search *text*. It can contain capture groups in \'(\'parentheses\')\'. \\r\\n* *rewrite*: The replacement regex for any match made by *matchingRegex*. Use `\\\\0` to refer to the whole match, `\\\\1` for the first capture group, `\\\\2` and so on for subsequent capture groups.\\r\\n* *text*: A string.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n*text* after replacing all matches of *regex* with evaluations of *rewrite*. Matches do not overlap.","This statement:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 5 step 1\\r\\n| extend str=strcat(\'Number is \', tostring(x))\\r\\n| extend replaced=replace(@\'is (\\\\d+)\', @\'was: \\\\1\', str)\\r\\n```\\r\\n\\r\\nHas the following results:\\r\\n\\r\\n| x | str | replaced|\\r\\n|---|---|---|\\r\\n| 1 | Number is 1.000000 | Number was: 1.000000|\\r\\n| 2 | Number is 2.000000 | Number was: 2.000000|\\r\\n| 3 | Number is 3.000000 | Number was: 3.000000|\\r\\n| 4 | Number is 4.000000 | Number was: 4.000000|\\r\\n| 5 | Number is 5.000000 | Number was: 5.000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_replacefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"reverse","Function makes reverse of input string.","If input value is not of string type, function forcibly casts the value to string.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`reverse(`*source*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: input value. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe reverse order of a string value.","```\\r\\nprint str = \\"ABCDEFGHIJKLMNOPQRSTUVWXYZ\\"\\r\\n| extend rstr = reverse(str)\\r\\n```\\r\\n\\r\\n|str|rstr|\\r\\n|---|---|\\r\\n|ABCDEFGHIJKLMNOPQRSTUVWXYZ|ZYXWVUTSRQPONMLKJIHGFEDCBA|\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\nprint [\'int\'] = 12345, [\'double\'] = 123.45, \\r\\n[\'datetime\'] = datetime(2017-10-15 12:00), [\'timespan\'] = 3h\\r\\n| project rint = reverse([\'int\']), rdouble = reverse([\'double\']), \\r\\nrdatetime = reverse([\'datetime\']), rtimespan = reverse([\'timespan\'])\\r\\n```\\r\\n\\r\\n|rint|rdouble|rdatetime|rtimespan|\\r\\n|---|---|---|---|\\r\\n|54321|54.321|Z0000000.00:00:21T51-01-7102|00:00:30|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_reversefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"round","Returns the rounded source to the specified precision.","**Syntax**\\r\\n\\r\\n`round(`*source* [`,` *Precision*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The source scalar the round is calculated on.\\r\\n* *Precision*: Number of digits the source will be rounded to.(default value is 0)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe rounded source to the specified precision.\\r\\n\\r\\nRound is different than [`bin()`](query_language_binfunction.md)/[`floor()`](query_language_floorfunction.md) in\\r\\nthat the first rounds a number to a specific number of digits while the last rounds value to an integer multiple \\r\\nof a given bin size (round(2.15, 1) returns 2.2 while bin(2.15, 1) returns 2).","```\\r\\nround(2.15, 1) // 2.2\\r\\nround(2.15) (which is the same as round(2.15, 0)) // 2\\r\\nround(-50.55, -2) // -100\\r\\nround(21.5, -1) // 20\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_roundfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"row_cumsum","Calculates the cumulative sum of a column in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set).","**Syntax**\\r\\n\\r\\n`row_cumsum` `(` *Term* [`,` *Restart*] `)`\\r\\n\\r\\n* *Term* is an expression indicating the value to be summed.\\r\\n The expression must be a scalar of one of the following types:\\r\\n `decimal`, `int`, `long`, or `real`. Null *Term* values do not affect the\\r\\n sum.\\r\\n* *Restart* is an optional argument of type `bool` that indicates when the\\r\\n accummulation operation should be restarted (set back to 0). It can be\\r\\n used to indicate partitions of the data; see the second example below.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe function returns the cumulative sum of its argument.",\'The following example shows how to calculate the cumulative sum of the first\\r\\nfew odd integers.\\r\\n\\r\\n\\r\\n```\\r\\ndatatable (a:long) [\\r\\n 1, 2, 3, 4, 5, 6, 7, 8, 9, 10\\r\\n]\\r\\n| where a%2==0\\r\\n| serialize cs=row_cumsum(a)\\r\\n```\\r\\n\\r\\na | cs\\r\\n-----|-----\\r\\n2 | 2\\r\\n4 | 6\\r\\n6 | 12\\r\\n8 | 20\\r\\n10 | 30\\r\\n\\r\\nThis example shows how to calculate the cumulative sum (here, of `salary`)\\r\\nwhen the data is partitioned (here, by `name`):\\r\\n\\r\\n\\r\\n```\\r\\ndatatable (name:string, month:int, salary:long)\\r\\n[\\r\\n "Alice", 1, 1000,\\r\\n "Bob", 1, 1000,\\r\\n "Alice", 2, 2000,\\r\\n "Bob", 2, 1950,\\r\\n "Alice", 3, 1400,\\r\\n "Bob", 3, 1450,\\r\\n]\\r\\n| order by name asc, month asc\\r\\n| extend total=row_cumsum(salary, name != prev(name))\\r\\n```\\r\\n\\r\\nname | month | salary | total\\r\\n-------|--------|---------|------\\r\\nAlice | 1 | 1000 | 1000\\r\\nAlice | 2 | 2000 | 3000\\r\\nAlice | 3 | 1400 | 4400\\r\\nBob | 1 | 1000 | 1000\\r\\nBob | 2 | 1950 | 2950\\r\\nBob | 3 | 1450 | 4400\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rowcumsumfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"row_number","Returns the current row\'s index in a [serialized row set](./query_language_windowsfunctions.md#serialized-row-set),\\r\\nstarting at either `1` (the default) or by some specified starting index.","**Syntax**\\r\\n\\r\\n`row_number()`\\r\\n\\r\\n`row_number(start index)`","```\\r\\nTable | serialize | extend rn = row_number()\\r\\nTable | serialize | extend rn = row_number(0)\\r\\nTable | serialize rn = row_number()\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_rownumberfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sample","Returns up to the specified number of random rows from the input table."," T | sample 5\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| sample` *NumberOfRows*\\r\\n\\r\\n**Arguments**\\r\\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n* if you want to sample a certain percentage of your data (rather than a specified number of rows), you can use \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents | where rand() < 0.1\\r\\n\\r\\n```\\r\\n\\r\\n* If you want to sample keys rather than rows (for example - sample 100 user ids and get all rows for these user IDS) you can use [`sample-distinct`](./query_language_sampledistinctoperator.md) in combination with the `in` operator.","```\\r\\nStormEvents | sample 10\\r\\n\\r\\n```","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sampleoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sample-distinct","Returns a single column that contains up to the specified number of distinct values of the requested column.","the default (and currently only) flavor of the operator tries to return an answer as quickly as possible (rather than trying to make a fair sample)\\r\\n\\r\\n T | sample-distinct 5 of DeviceId\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| sample-distinct` *NumberOfValues* `of` *ColumnName*\\r\\n\\r\\n**Arguments**\\r\\n* *NumberOfValues*: The number distinct values of *T* to return. You can specify any numeric expression.\\r\\n\\r\\n**Tips**\\r\\n\\r\\n Can be handy to sample a population by putting `sample-distinct` in a let statement and later filter using the `in` operator (see example) \\r\\n\\r\\n If you want the top values rather than just a sample, you can use the [top-hitters](query_language_tophittersoperator.md) operator \\r\\n\\r\\n if you want to sample data rows (rather than values of a specific column), refer to the [sample operator](query_language_sampleoperator.md)\\r\\n\\r\\n**Examples** \\r\\nGet 10 distinct values from a population\\r\\n\\r\\n```\\r\\nStormEvents | sample-distinct 10 of EpisodeId\\r\\n\\r\\n```\\r\\n\\r\\nSample a population and do further computation knowing the summarize won\'t exceed query limits. \\r\\n\\r\\n\\r\\n```\\r\\nlet sampleEpisodes = toscalar(StormEvents | sample-distinct 10 of EpisodeId);\\r\\nStormEvents | where EpisodeId in (sampleEpisodes) | summarize totalInjuries=sum(InjuriesDirect) by EpisodeId\\r\\n\\r\\n```","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sampledistinctoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"search","The search operator provides a multi-table/multi-column search experience.",\'## Syntax\\r\\n\\r\\n* [*TabularSource* `|`] `search` [`kind=`*CaseSensitivity*] [`in` `(`*TableSources*`)`] *SearchPredicate*\\r\\n\\r\\n## Arguments\\r\\n\\r\\n* *TabularSource*: An optional tabular expression that acts as a data source to be searched over,\\r\\n such as a table name, a [union operator](query_language_unionoperator.md), the results\\r\\n of a tabular query, etc. Cannot appear together with the optional phrase that includes *TableSources*.\\r\\n\\r\\n* *CaseSensitivity*: An optional flag that controls the behavior of all `string` scalar operators\\r\\n with respect to case sensitivity. Valid values are the two synonyms `default` and `case_insensitive`\\r\\n (which is the default for operators such as `has`, namely being case-insensitive) and `case_sensitive`\\r\\n (which forces all such operators into case-sensitive matching mode).\\r\\n\\r\\n* *TableSources*: An optional comma-separated list of "wildcarded" table names to take part in the search.\\r\\n The list has the same syntax as the list of the [union operator](query_language_unionoperator.md).\\r\\n Cannot appear together with the optional *TabularSource*.\\r\\n\\r\\n* *SearchPredicate*: A mandatory predicate that defines what to search for (in other words,\\r\\n a Boolean expression that is evaluated for every record in the input and that, if it returns\\r\\n `true`, the record is outputted.)\\r\\n The syntax for *SearchPredicate* extends and modifies the normal Kusto syntax for Boolean expressions:\\r\\n\\r\\n **String matching extensions**: String literals that appear as terms in the *SearchPredicate* indicate a term\\r\\n match between all columns and the literal using `has`, `hasprefix`, `hassuffix`, and the inverted (`!`)\\r\\n or case-sensitive (`sc`) versions of these operators. The decision whether to apply `has`, `hasprefix`,\\r\\n or `hassuffix` depends on whether the literal starts or ends (or both) by an asterisk (`*`). Asterisks\\r\\n inside the literal are not allowed.\\r\\n\\r\\n |Literal |Operator |\\r\\n |----------|-----------|\\r\\n |`billg` |`has` |\\r\\n |`*billg` |`hassuffix`|\\r\\n |`billg*` |`hasprefix`|\\r\\n |`*billg*` |`contains` |\\r\\n |`bi*lg` |`matches regex`|\\r\\n\\r\\n **Column restriction**: By default, string matching extensions attempt to match against all columns\\r\\n of the data set. It is possible to restrict this matching to a particular column by using\\r\\n the following syntax: *ColumnName*`:`*StringLiteral*.\\r\\n\\r\\n **String equality**: Exact matches of a column against a string value (instead of a term-match)\\r\\n can be done using the syntax *ColumnName*`==`*StringLiteral*.\\r\\n\\r\\n **Other Boolean expressions**: All regular Kusto Boolean expressions are supported by the syntax.\\r\\n For example, `"error" and x==123` means: search for records that have the term `error` in any\\r\\n of their columns, and have the value `123` in the `x` column."\\r\\n\\r\\n **Regex match**: Regular expression matching is indicated using *Column* `matches regex` *StringLiteral*\\r\\n syntax, where *StringLiteral* is the regex pattern.\\r\\n\\r\\nNote that if both *TabularSource* and *TableSources* are omitted, the search is carried over all unrestricted tables\\r\\nand views of the database in scope.\\r\\n\\r\\n## Summary of string matching extensions\\r\\n\\r\\n |# |Syntax |Meaning (equivalent `where`) |Comments|\\r\\n |--|---------------------------------------|---------------------------------------|--------|\\r\\n | 1|`search "err"` |`where * has "err"` ||\\r\\n | 2|`search in (T1,T2,A*) and "err"` |`union T1,T2,A* | where * has "err"` ||\\r\\n | 3|`search col:"err"` |`where col has "err"` ||\\r\\n | 4|`search col=="err"` |`where col=="err"` ||\\r\\n | 5|`search "err*"` |`where * hasprefix "err"` ||\\r\\n | 6|`search "*err"` |`where * hassuffix "err"` ||\\r\\n | 7|`search "*err*"` |`where * contains "err"` ||\\r\\n | 8|`search "Lab*PC"` |`where * matches regex @"\\\\bLab\\\\w*PC\\\\b"`||\\r\\n | 9|`search *` |`where 0==0` ||\\r\\n |10|`search col matches regex "..."` |`where col matches regex "..."` ||\\r\\n |11|`search kind=case_sensitive` | |All string comparisons are case-sensitive|\\r\\n |12|`search "abc" and ("def" or "hij")` |`where * has "abc" and (* has "def" or * has hij")`||\\r\\n |13|`search "err" or (A>a and Aa and A= datetime(1981-01-01)\\r\\n\\r\\n// 7. Searches over all the higher-ups\\r\\nsearch in (C*, TF) "billg" or "davec" or "steveb"\\r\\n\\r\\n// 8. A different way to say (7)\\r\\nunion C*, TF | search "billg" or "davec" or "steveb"\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_searchoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"serialize","Makes the row set serialized to allow activating on it functions that can be performed on serilaized data only, e.g. [row_number()](query_language_rownumberfunction.md).","T | serialize\\r\\n\\r\\n**Alias**\\r\\n\\r\\n`serialize`",\'```\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b"\\r\\n| serialize\\r\\n\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b"\\r\\n| serialize rn = row_number()\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_serializeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_backward","Performs backward fill interpolation of missing values in a series.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with the nearest value from its right side other than missing_value_placeholder and returns the resulting array. The rightmost instances of missing_value_placeholder are preserved.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fill_backward(`*x*`[, `*missing_value_placeholder*`])`\\r\\n* Will return series *x* with all instances of *missing_value_placeholder* filled backward.\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: dynamic array scalar expression which is an array of numeric values.\\r\\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \\r\\n\\r\\n\\r\\n```\\r\\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\\r\\n```\\r\\n\\r\\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\\r\\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\\r\\n* The functions preserves original type of array elements.","```\\r\\nlet data = datatable(arr: dynamic)\\r\\n[\\r\\n dynamic([111,null,36,41,null,null,16,61,33,null,null]) \\r\\n];\\r\\ndata \\r\\n| project arr, \\r\\n fill_forward = series_fill_backward(arr)\\r\\n\\r\\n```\\r\\n\\r\\n|arr|fill_forward|\\r\\n|---|---|\\r\\n|[111,null,36,41,null,null,16,61,33,null,null]|[111,36,36,41,16, 16,16,61,33,null,null]|\\r\\n\\r\\n \\r\\nOne can use [series_fill_forward](query_language_series_fill_forwardfunction.md) or [series_fill_const](query_language_series_fill_constfunction.md) in order to complete interpolation of the above array.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_backwardfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_const","Replaces missing values in a series with a specified constant value.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with specified constant_value and returns the resulting array.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fill_const(`*x*`[, `*constant_value*`[,` *missing_value_placeholder*`]])`\\r\\n* Will return series *x* with all instances of *missing_value_placeholder* replaced with *constant_value*.\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: dynamic array scalar expression which is an array of numeric values.\\r\\n* *constant_value*: parameter which specifies a placeholder for a missing values to be replaced. Default value is *0*. \\r\\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\\r\\n\\r\\n**Notes**\\r\\n* It is possible to create a series with constant fill in one call using `default = ` *DefaultValue* syntax (or just omitting which will assume 0). See [make-series](query_language_make_seriesoperator.md) for more information.\\r\\n\\r\\n\\r\\n```\\r\\nmake-series num=count() default=-1 on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\\r\\n```\\r\\n \\r\\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \\r\\n\\r\\n\\r\\n```\\r\\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\\r\\n```\\r\\n \\r\\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\\r\\n* The function preserves original type of the array elements.","```\\r\\nlet data = datatable(arr: dynamic)\\r\\n[\\r\\n dynamic([111,null,36,41,23,null,16,61,33,null,null]) \\r\\n];\\r\\ndata \\r\\n| project arr, \\r\\n fill_const1 = series_fill_const(arr, 0.0),\\r\\n fill_const2 = series_fill_const(arr, -1) \\r\\n\\r\\n```\\r\\n\\r\\n|arr|fill_const1|fill_const2|\\r\\n|---|---|---|\\r\\n|[111,null,36,41,23,null,16,61,33,null,null]|[111,0.0,36,41,23,0.0,16,61,33,0.0,0.0]|[111,-1,36,41,23,-1,16,61,33,-1,-1]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_constfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_forward","Performs forward fill interpolation of missing values in a series.","Takes an expression containing dynamic numerical array as input, replaces all instances of missing_value_placeholder with the nearest value from its left side other than missing_value_placeholder and returns the resulting array. The leftmost instances of missing_value_placeholder are preserved.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fill_forward(`*x*`[, `*missing_value_placeholder*`])`\\r\\n* Will return series *x* with all instances of *missing_value_placeholder* filled forward.\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: dynamic array scalar expression which is an array of numeric values. \\r\\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for a missing values to be replaced. Default value is `double`(*null*).\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \\r\\n\\r\\n\\r\\n```\\r\\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\\r\\n```\\r\\n\\r\\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\\r\\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\\r\\n* The functions preserves original type of array elements.","```\\r\\nlet data = datatable(arr: dynamic)\\r\\n[\\r\\n dynamic([null,null,36,41,null,null,16,61,33,null,null]) \\r\\n];\\r\\ndata \\r\\n| project arr, \\r\\n fill_forward = series_fill_forward(arr) \\r\\n\\r\\n```\\r\\n\\r\\n|arr|fill_forward|\\r\\n|---|---|\\r\\n|[null,null,36,41,null,null,16,61,33,null,null]|[null,null,36,41,41,41,16,61,33,33,33]|\\r\\n \\r\\nOne can use [series_fill_backward](query_language_series_fill_backwardfunction.md) or [series_fill_const](query_language_series_fill_constfunction.md) in order to complete interpolation of the above array.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_forwardfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fill_linear","Performs linear interpolation of missing values in a series.",\'Takes an expression containing dynamic numerical array as input, performs linear interpolation for all instances of missing_value_placeholder and returns the resulting array. If the beginning and end of the array contains missing_value_placeholder, then it will be replaced with the nearest value other than missing_value_placeholder (can be turned off). If the whole array consists of the missing_value_placeholder then the array will be filled with constant_value or 0 if no specified. \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fill_linear(`*x*`[,` *missing_value_placeholder*` [,`*fill_edges*` [,`*constant_value*`]]]))`\\r\\n* Will return series linear interpolation of *x* using specified parameters.\\r\\n \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: dynamic array scalar expression which is an array of numeric values.\\r\\n* *missing_value_placeholder*: optional parameter which specifies a placeholder for the "missing values" to be replaced. Default value is `double`(*null*).\\r\\n* *fill_edges*: Boolean value which indicates whether *missing_value_placeholder* at the start and end of the array should be replaced with nearest value. *True* by default. If set to *false* then *missing_value_placeholder* at the start and end of the array will be preserved.\\r\\n* *constant_value*: optional parameter relevant only for arrays entirely consists of *null* values, which specifies constant value to fill the series with. Default value is *0*. Setting this parameter it to `double`(*null*) will effectively leave *null* values where they are.\\r\\n\\r\\n**Notes**\\r\\n\\r\\n* In order to apply any interpolation functions after [make-series](query_language_make_seriesoperator.md) it is recommended to specify *null* as a default value: \\r\\n\\r\\n\\r\\n```\\r\\nmake-series num=count() default=long(null) on TimeStamp in range(ago(1d), ago(1h), 1h) by Os, Browser\\r\\n```\\r\\n\\r\\n* The *missing_value_placeholder* can be of any type which will be converted to actual element types. Therefore either `double`(*null*), `long`(*null*) or `int`(*null*) have the same meaning.\\r\\n* If *missing_value_placeholder* is `double`(*null*) (or just omitted which have the same meaning) then a result may contains *null* values. Use other interpolation functions in order to fill them. Currently only [series_outliers()](query_language_series_outliersfunction.md) support *null* values in input arrays.\\r\\n* The function preserves original type of array elements. If *x* contains only *int* or *long* elements then the linear interpolation will return rounded interpolated values rather than exact ones.\',"```\\r\\nlet data = datatable(arr: dynamic)\\r\\n[\\r\\n dynamic([null, 111.0, null, 36.0, 41.0, null, null, 16.0, 61.0, 33.0, null, null]), // Array of double \\r\\n dynamic([null, 111, null, 36, 41, null, null, 16, 61, 33, null, null]), // Similar array of int\\r\\n dynamic([null, null, null, null]) // Array with missing values only\\r\\n];\\r\\ndata\\r\\n| project arr, \\r\\n without_args = series_fill_linear(arr),\\r\\n with_edges = series_fill_linear(arr, double(null), true),\\r\\n wo_edges = series_fill_linear(arr, double(null), false),\\r\\n with_const = series_fill_linear(arr, double(null), true, 3.14159) \\r\\n\\r\\n```\\r\\n\\r\\n|arr|without_args|with_edges|wo_edges|with_const|\\r\\n|---|---|---|---|---|\\r\\n|[null,111.0,null,36.0,41.0,null,null,16.0,61.0,33.0,null,null]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|[null,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,null,null]|[111.0,111.0,73.5,36.0,41.0,32.667,24.333,16.0,61.0,33.0,33.0,33.0]|\\r\\n|[null,111,null,36,41,null,null,16,61,33,null,null]|[111,111,73,36,41,32,24,16,61,33,33,33]|[111,111,73,36,41,32,24,16,61,33,33,33]|[null,111,73,36,41,32,24,16,61,33,null,null]|[111,111,74,38, 41,32,24,16,61,33,33,33]|\\r\\n|[null,null,null,null]|[0.0,0.0,0.0,0.0]|[0.0,0.0,0.0,0.0]|[0.0,0.0,0.0,0.0]|[3.14159,3.14159,3.14159,3.14159]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fill_linearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fir","Applies a Finite Impulse Response filter on a series.","Takes an expression containing dynamic numerical array as input and applies a [Finite Impulse Response](https://en.wikipedia.org/wiki/Finite_impulse_response) filter. By specifying the `filter` coefficients, it can be used for calculating moving average, smoothing, change-detection and many more use cases. The function takes as input the column containing the dynamic array and a static dynamic array of the filter\'s coefficients and applies the filter on the column. It outputs a new dynamic array column, containing the filtered output. \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fir(`*x*`,` *filter* [`,` *normalize*[`,` *center*]]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array cell which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\\r\\n* *filter*: A constant expression containing the coefficients of the filter (stored as a dynamic array of numeric values).\\r\\n* *normalize*: Optional Boolean value indicating whether the filter should be normalized (i.e. divided by the sum of the coefficients). If *filter* contains negative values then *normalize* must be specified as `false`, otherwise result will be `null`. If not specified then a default value of *normalize* will be assumed depending on presence of negative values in the *filter*: if *filter* contains at least one negative value then *normalize* is assumed to be `false`. \\r\\nNormalization is a convenient way to make sure that the sum of the coefficients is 1 and thus the filter doesn\'t amplifies or attenuates the series. For example, moving average of 4 bins could be specified by *filter*=[1,1,1,1] and *normalized*=true, which is easier than typing [0.25,0.25.0.25,0.25].\\r\\n* *center*: An optional Boolean value indicating whether the filter is applied symmetrically on a time window before and after the current point, or on a time window from the current point backwards. By default, center is false, which fits the scenario of streaming data, where we can only apply the filter on the current and older points; however, for ad-hoc processing you can set it to true, keeping it synchronized with the time series (see examples below). Technically speaking, this parameter controls the filter’s [group delay](https://en.wikipedia.org/wiki/Group_delay_and_phase_delay).","* Calculating a moving average of 5 points can be performed by setting *filter*=[1,1,1,1,1] and *normalize*=`true` (default). Note the effect of *center*=`false` (default) vs. `true`:\\r\\n\\r\\n\\r\\n```\\r\\nrange t from bin(now(), 1h)-23h to bin(now(), 1h) step 1h\\r\\n| summarize t=makelist(t)\\r\\n| project id=\'TS\', val=dynamic([0,0,0,0,0,0,0,0,0,10,20,40,100,40,20,10,0,0,0,0,0,0,0,0]), t\\r\\n| extend 5h_MovingAvg=series_fir(val, dynamic([1,1,1,1,1])),\\r\\n 5h_MovingAvg_centered=series_fir(val, dynamic([1,1,1,1,1]), true, true)\\r\\n| render timechart\\r\\n```\\r\\n\\r\\nThis query returns: \\r\\n*5h_MovingAvg*: 5 points moving average filter. The spike is smoothed and its peak shifted by (5-1)/2 = 2h. \\r\\n*5h_MovingAvg_centered*: same but with setting center=true, causes the peak to stay in its original location.\\r\\n\\r\\n![](./Images/samples/series_fir.png)\\r\\n\\r\\n* Calculating the difference between a point and its preceding one can be performed by setting *filter*=[1,-1]:\\r\\n\\r\\n\\r\\n```\\r\\nrange t from bin(now(), 1h)-11h to bin(now(), 1h) step 1h\\r\\n| summarize t=makelist(t)\\r\\n| project id=\'TS\',t,value=dynamic([0,0,0,0,2,2,2,2,3,3,3,3])\\r\\n| extend diff=series_fir(value, dynamic([1,-1]), false, false)\\r\\n| render timechart\\r\\n```\\r\\n\\r\\n![](./Images/samples/series_fir2.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_firfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_2lines","Applies two segments linear regression on a series, returning multiple columns.","Takes an expression containing dynamic numerical array as input and applies [two segments linear regression](https://en.wikipedia.org/wiki/Segmented_regression) in order to identify and quantify trend change in a series. The function iterates on the series indexes and in each iteration splits the series to 2 parts, fits a separate line (using [series_fit_line()](query_language_series_fit_linefunction.md)) to each part and calculate the total r-square. The best split is the one that maximized r-square; the function returns its parameters:\\r\\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It\'s a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line\\r\\n* `split_idx`: the index of breaking point to 2 segments (zero-based)\\r\\n* `variance`: variance of the input data\\r\\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones (by the 2 line segments).\\r\\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\\r\\n* `right_rsquare`: r-square of the line on the right side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md)\\r\\n* `right_slope`: slope of the right approximated line (this is a from y=ax+b)\\r\\n* `right_interception`: interception of the approximated left line (this is b from y=ax+b)\\r\\n* `right_variance`: variance of the input data on the right side of the split\\r\\n* `right_rvariance`: residual variance of the input data on the right side of the split\\r\\n* `left_rsquare`: r-square of the line on the left side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md)\\r\\n* `left_slope`: slope of the left approximated line (this is a from y=ax+b)\\r\\n* `left_interception`: interception of the approximated left line (this is b from y=ax+b)\\r\\n* `left_variance`: variance of the input data on the left side of the split\\r\\n* `left_rvariance`: residual variance of the input data on the left side of the split\\r\\n\\r\\n*Note* that this function returns multiple columns therefore it cannot be used as an argument for another function.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nproject `series_fit_2lines(`*x*`)`\\r\\n* Will return all mentioned above columns with the following names: series_fit_2lines_x_rsquare, series_fit_2lines_x_split_idx and etc.\\r\\nproject (rs, si, v)=`series_fit_2lines(`*x*`)`\\r\\n* Will return the following columns: rs (r-square), si (split index), v (variance) and the rest will look like series_fit_2lines_x_rvariance, series_fit_2lines_x_line_fit and etc.\\r\\nextend (rs, si, v)=`series_fit_2lines(`*x*`)`\\r\\n* Will return only: rs (r-square), si (split index) and v (variance).\\r\\n \\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array of numeric values. \\r\\n\\r\\n**Important note**\\r\\n\\r\\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\\r\\nrange x from 1 to 1 step 1\\r\\n| project id=\' \', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([1,2.2, 2.5, 4.7, 5.0, 12, 10.3, 10.3, 9, 8.3, 6.2])\\r\\n| extend (Slope,Interception,RSquare,Variance,RVariance,LineFit)=series_fit_line(y), (RSquare2, SplitIdx, Variance2,RVariance2,LineFit2)=series_fit_2lines(y)\\r\\n| project id, x, y, LineFit, LineFit2\\r\\n| render timechart\\r\\n```\\r\\n\\r\\n![](./Images/samples/series_fit_2lines.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_2linesfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_2lines_dynamic","Applies two segments linear regression on a series, returning dynamic object.","Takes an expression containing dynamic numerical array as input and applies [two segments linear regression](https://en.wikipedia.org/wiki/Segmented_regression) in order to identify and quantify trend change in a series. The function iterates on the series indexes and in each iteration splits the series to 2 parts, fits a separate line (using [series_fit_line()](query_language_series_fit_linefunction.md) or [series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)) to each part and calculate the total r-square. The best split is the one that maximized r-square; the function returns its parameters in dynamic value with the following content::\\r\\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It\'s a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line\\r\\n* `split_idx`: the index of breaking point to 2 segments (zero-based)\\r\\n* `variance`: variance of the input data\\r\\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones (by the 2 line segments).\\r\\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\\r\\n* `right.rsquare`: r-square of the line on the right side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md) or[series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)\\r\\n* `right.slope`: slope of the right approximated line (this is a from y=ax+b)\\r\\n* `right.interception`: interception of the approximated left line (this is b from y=ax+b)\\r\\n* `right.variance`: variance of the input data on the right side of the split\\r\\n* `right.rvariance`: residual variance of the input data on the right side of the split\\r\\n* `left.rsquare`: r-square of the line on the left side of the split, see [series_fit_line()](query_language_series_fit_linefunction.md) or [series_fit_line_dynamic()](query_language_series_fit_line_dynamicfunction.md)\\r\\n* `left.slope`: slope of the left approximated line (this is a from y=ax+b)\\r\\n* `left.interception`: interception of the approximated left line (this is b from y=ax+b)\\r\\n* `left.variance`: variance of the input data on the left side of the split\\r\\n* `left.rvariance`: residual variance of the input data on the left side of the split\\r\\n\\r\\nThis operator is similar to [series_fit_2lines](query_language_series_fit_2linesfunction.md), but unlike `series_fit_2lines` it returns a dynamic bag.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fit_2lines_dynamic(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array of numeric values. \\r\\n\\r\\n**Important note**\\r\\n\\r\\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\\r\\nrange x from 1 to 1 step 1\\r\\n| project id=\' \', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([1,2.2, 2.5, 4.7, 5.0, 12, 10.3, 10.3, 9, 8.3, 6.2])\\r\\n| extend LineFit=series_fit_line_dynamic(y).line_fit, LineFit2=series_fit_2lines_dynamic(y).line_fit\\r\\n| project id, x, y, LineFit, LineFit2\\r\\n| render timechart\\r\\n```\\r\\n\\r\\n![](./Images/samples/series_fit_2lines.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_2lines_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_line","Applies linear regression on a series, returning multiple columns.","Takes an expression containing dynamic numerical array as input and performs [linear regression](https://en.wikipedia.org/wiki/Line_fitting) in order to find the line that best fits it. This function should be used on time series arrays, fitting the output of make-series operator. It generates the following columns:\\r\\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It\'s a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line \\r\\n* `slope`: slope of the approximated line (this is a from y=ax+b)\\r\\n* `variance`: variance of the input data\\r\\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones.\\r\\n* `interception`: interception of the approximated line (this is b from y=ax+b)\\r\\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fit_line(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array of numeric values.\\r\\n\\r\\n**Important note**\\r\\n\\r\\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\\r\\nrange x from 1 to 1 step 1\\r\\n| project id=\' \', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([2,5,6,8,11,15,17,18,25,26,30,30])\\r\\n| extend (RSquare,Slope,Variance,RVariance,Interception,LineFit)=series_fit_line(y)\\r\\n| render timechart\\r\\n```\\r\\n\\r\\n![](./Images/samples/series_fit_line.png)\\r\\n\\r\\n| RSquare | Slope | Variance | RVariance | Interception | LineFit |\\r\\n|---------|-------|----------|-----------|--------------|---------------------------------------------------------------------------------------------|\\r\\n| 0.982 | 2.730 | 98.628 | 1.686 | -1.666 | 1.064, 3.7945, 6.526, 9.256, 11.987, 14.718, 17.449, 20.180, 22.910, 25.641, 28.371, 31.102 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_linefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_fit_line_dynamic","Applies linear regression on a series, returning dynamic object.","Takes an expression containing dynamic numerical array as input and performs [linear regression](https://en.wikipedia.org/wiki/Line_fitting) in order to find the line that best fits it. This function should be used on time series arrays, fitting the output of make-series operator. It generates a dynamic value with the following content:\\r\\n* `rsquare`: [r-square](https://en.wikipedia.org/wiki/Coefficient_of_determination) is a standard measure of the fit quality. It\'s a number in the range [0-1], where 1 - is the best possible fit, and 0 means the data is totally unordered and do not fit any line \\r\\n* `slope`: slope of the approximated line (this is a from y=ax+b)\\r\\n* `variance`: variance of the input data\\r\\n* `rvariance`: residual variance which is the variance between the input data values the approximated ones.\\r\\n* `interception`: interception of the approximated line (this is b from y=ax+b)\\r\\n* `line_fit`: numerical array holding a series of values of the best fitted line. The series length is equal to the length of the input array. It is mainly used for charting.\\r\\n\\r\\nThis operator is similar to [series_fit_line](query_language_series_fit_linefunction.md), but unlike `series_fit_line` it returns a dynamic bag.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_fit_line_dynamic(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array of numeric values.\\r\\n\\r\\n**Important note**\\r\\n\\r\\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.","```\\r\\nrange x from 1 to 1 step 1\\r\\n| project id=\' \', x=range(bin(now(), 1h)-11h, bin(now(), 1h), 1h), y=dynamic([2,5,6,8,11,15,17,18,25,26,30,30])\\r\\n| extend fit=series_fit_line_dynamic(y)\\r\\n| extend RSquare=fit.rsquare, Slope=fit.slope, Variance=fit.variance,RVariance=fit.rvariance,Interception=fit.interception,LineFit=fit.line_fit\\r\\n| render timechart\\r\\n```\\r\\n\\r\\n![](./Images/samples/series_fit_line.png)\\r\\n\\r\\n| RSquare | Slope | Variance | RVariance | Interception | LineFit |\\r\\n|---------|-------|----------|-----------|--------------|---------------------------------------------------------------------------------------------|\\r\\n| 0.982 | 2.730 | 98.628 | 1.686 | -1.666 | 1.064, 3.7945, 6.526, 9.256, 11.987, 14.718, 17.449, 20.180, 22.910, 25.641, 28.371, 31.102 |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_fit_line_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_iir","Applies a Infinite Impulse Response filter on a series.",\'Takes an expression containing dynamic numerical array as input and applies an [Infinite Impulse Response](https://en.wikipedia.org/wiki/Infinite_impulse_response) filter. By specifying the filter coefficients, it can be used, for example, to calculate the cumulative sum of the series, to apply smoothing operations, as well as various [high-pass](https://en.wikipedia.org/wiki/High-pass_filter), [band-pass](https://en.wikipedia.org/wiki/Band-pass_filter) and [low-pass](https://en.wikipedia.org/wiki/Low-pass_filter) filters. The function takes as input the column containing the dynamic array and two static dynamic arrays of the filter\\\'s *a* and *b* coefficients, and applies the filter on the column. It outputs a new dynamic array column, containing the filtered output. \\r\\n \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_iir(`*x*`,` *b* `,` *a*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array cell which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\\r\\n* *b*: A constant expression containing the numerator coefficients of the filter (stored as a dynamic array of numeric values).\\r\\n* *a*: A constant expression, like *b*. Containing the denominator coefficients of the filter.\\r\\n\\r\\n**Important note**\\r\\n\\r\\n* The first element of *a* (i.e. `a[0]`) mustn’t be zero (to avoid division by 0; see the formula below).\\r\\n\\r\\n**More about the filter’s recursive formula**\\r\\n\\r\\n* Given an input array X and coefficients arrays a, b of lengths n_a and n_b respectively, the transfer function of the filter, generating the output array Y, is defined by (see also in Wikipedia):\\r\\n\\r\\n
\\r\\nYi = a0-1(b0Xi\\r\\n + b1Xi-1 + ... + bnb-1Xi-nb-1\\r\\n - a1Yi-1-a2Yi-2 - ... - ana-1Yi-na-1)\\r\\n
\',"Calculating cumulative sum can be performed by iir filter with coefficients *a*=[1,-1] and *b*=[1]: \\r\\n\\r\\n```\\r\\nlet x = range(1.0, 10, 1);\\r\\nrange t from 1 to 1 step 1\\r\\n| project x=x, y = series_iir(x, dynamic([1]), dynamic([1,-1]))\\r\\n| mvexpand x, y\\r\\n```\\r\\n\\r\\n| x | y |\\r\\n|:--|:--|\\r\\n|1.0|1.0|\\r\\n|2.0|3.0|\\r\\n|3.0|6.0|\\r\\n|4.0|10.0|\\r\\n\\r\\nHere\'s how to wrap it in a function:\\r\\n\\r\\n\\r\\n```\\r\\nlet vector_sum=(x:dynamic)\\r\\n{\\r\\n let y=arraylength(x) - 1;\\r\\n toreal(series_iir(x, dynamic([1]), dynamic([1, -1]))[y])\\r\\n};\\r\\nprint d=dynamic([0, 1, 2, 3, 4])\\r\\n| extend dd=vector_sum(d)\\r\\n```\\r\\n\\r\\n|d |dd |\\r\\n|-------------|----|\\r\\n|`[0,1,2,3,4]`|`10`|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_iirfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_outliers","Scores anomaly points in a series.",\'Takes an expression containing dynamic numerical array as input and generates a dynamic numeric array of the same length. Each value of the array indicates a score of possible anomaly using [Tukey\\\'s test](https://en.wikipedia.org/wiki/Outlier#Tukey.27s_test). A value greater than 1.5 or less than -1.5 indicates a rise or decline anomaly respectively in the same element of the input. \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_outliers(`*x*`, `*kind*`, `*ignore_val*`, `*min_percentile*`, `*max_percentile*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array cell which is an array of numeric values\\r\\n* *kind*: Algorithm of outlier detection. Currently supports `"tukey"` (traditional Tukey) and `"ctukey"` (custom Tukey). Default is `"ctukey"`\\r\\n* *ignore_val*: numeric value indicating missing values in the series, default is double(null)\\r\\n* *min_percentile*: for calulation of the normal inter quantile range, default is 10 (ctukey only) \\r\\n* *max_percentile*: same, default is 90 (ctukey only) \\r\\n\\r\\nThe following table describes differences between `"tukey"` and `"ctukey"`:\\r\\n\\r\\n| Algorithm | Default quantile range | Supports custom quantile range |\\r\\n|-----------|----------------------- |--------------------------------|\\r\\n| `"tukey"` | 25% / 75% | No |\\r\\n| `"ctukey"`| 10% / 90% | Yes |\\r\\n\\r\\n\\r\\n**Important note**\\r\\n\\r\\nMost convenient way of using this function is applying it to results of [make-series](query_language_make_seriesoperator.md) operator.\',"* For the following input `[30,28,5,27,31,38,29,80,25,37,30]` the series_outliers() returns `[0.0,0.0,-3.206896551724138,-0.1724137931034483,0.0,2.6666666666666667,0.0,16.666666666666669,-0.4482758620689655,2.3333333333333337,0.0]`, meaning the `5` is an anomaly on decline and `80` is an anomaly on rise compared to the rest of the series.\\r\\n\\r\\n* Suppose you have a time series with some noise that creates outliers and you would like to replace those outliers (noise) with the average value, you could use series_outliers() to detect the outliers then replace them:\\r\\n\\r\\n```\\r\\nrange x from 1 to 100 step 1 \\r\\n| extend y=iff(x==20 or x==80, 10*rand()+10+(50-x)/2, 10*rand()+10) // generate a sample series with outliers at x=20 and x=80\\r\\n| summarize x=makelist(x),series=makelist(y)\\r\\n| extend series_stats(series), outliers=series_outliers(series)\\r\\n| mvexpand x to typeof(long), series to typeof(double), outliers to typeof(double)\\r\\n| project x, series , outliers_removed=iff(outliers > 1.5 or outliers < -1.5, series_stats_series_avg , series ) // replace outliers with the average\\r\\n| render linechart\\r\\n``` \\r\\n\\r\\n![](./Images/samples/series_outliers.png)","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_outliersfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_periods_detect","Finds the most significant periods that exist in a time series.","Very often a metric measuring an application’s traffic is characterized by two significant periods: a weekly and a daily. Given such a time series, `series_periods_detect()` shall detect these 2 dominant periods. \\r\\nThe function takes as input a column containing a dynamic array of time series (typically the resulting output of [make-series](query_language_make_seriesoperator.md) operator), two `real` numbers defining the minimal and maximal period size (i.e. number of bins, e.g. for 1h bin the size of a daily period would be 24) to search for, and a `long` number defining the total number of periods for the function to search. The function outputs 2 columns:\\r\\n* *periods*: a dynamic array containing the periods that have been found (in units of the bin size), ordered by their scores\\r\\n* *scores*: a dynamic array containing values between 0 and 1, each measures the significance of a period in its respective position in the *periods* array\\r\\n \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_periods_detect(`*x*`,` *min_period*`,` *max_period*`,` *num_periods*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array scalar expression which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\\r\\n* *min_period*: A `real` number specifying the minimal period to search for.\\r\\n* *max_period*: A `real` number specifying the maximal period to search for.\\r\\n* *num_periods*: A `long` number specifying the maximum required number of periods. This will be the length of the output dynamic arrays.\\r\\n\\r\\n**Important notes**\\r\\n\\r\\n* The algorithm can detect periods containing at least 4 points and at most half of the series length. \\r\\n* You should set the *min_period* a little below and *max_period* a little above the periods you expect to find in the time series. For example, if you have an hourly-aggregated signal, and you look for both daily and weekly periods (that would be 24 & 168 respectively) you can set *min_period*=0.8\\\\*24, *max_period*=1.2\\\\*168, leaving 20% margins around these periods.\\r\\n* The input time series must be regular, i.e. aggregated in constant bins (which is always the case if it has been created using [make-series](query_language_make_seriesoperator.md)). Otherwise, the output is meaningless.","The following query embeds a snapshot of a month of an application’s traffic, aggregated twice a day (i.e. the bin size is 12 hours).\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\\r\\n| project x=range(1, arraylength(y), 1), y \\r\\n| render linechart \\r\\n```\\r\\n\\r\\n![](./Images/samples/series_periods.png)\\r\\n\\r\\nRunning `series_periods_detect()` on this series results in the weekly period (14 points long):\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\\r\\n| project x=range(1, arraylength(y), 1), y \\r\\n| project series_periods_detect(y, 0.0, 50.0, 2)\\r\\n```\\r\\n\\r\\n| series\\\\_periods\\\\_detect\\\\_y\\\\_periods | series\\\\_periods\\\\_detect\\\\_y\\\\_periods\\\\_scores |\\r\\n|-------------|-------------------|\\r\\n| [14.0, 0.0] | [0.84, 0.0] |\\r\\n\\r\\n\\r\\nNote that the daily period that can be also seen in the chart was not found since the sampling is too coarse (12h bin size) so a daily period of 2 bins is bellow the minimum period size of 4 points required by the algorithm.","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_periods_detectfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_periods_validate","Checks whether a time series contains periodic patterns of given lengths.","Very often a metric measuring the traffic of an application is characterized by a weekly and/or daily periods. This can be confirmed by running `series_periods_validate()` checking for a weekly and daily periods.\\r\\n\\r\\nThe function takes as input a column containing a dynamic array of time series (typically the resulting output of [make-series](query_language_make_seriesoperator.md) operator), and one or more `real` numbers that define the lengths of the periods to validate. \\r\\n\\r\\nThe function outputs 2 columns:\\r\\n* *periods*: a dynamic array containing the periods to validate (supplied in the input)\\r\\n* *scores*: a dynamic array containing a score between 0 and 1 that measures the significance of a period in its respective position in the *periods* array\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_periods_validate(`*x*`,` *period1* [ `,` *period2* `,` . . . ] `)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array scalar expression which is an array of numeric values, typically the resulting output of [make-series](query_language_make_seriesoperator.md) or [makelist](query_language_makelist_aggfunction.md) operators.\\r\\n* *period1*, *period2*, etc.: `real` numbers specifying the periods to validate, in units of the bin size. For example, if the series is in 1h bins, a weekly period is 168 bins.\\r\\n\\r\\n**Important notes**\\r\\n\\r\\n* The minimal value for each of the *period* arguments is **4** and the maximal is half of the length of the input series; for a *period* argument outside these bounds, the output score will be **0**.\\r\\n* The input time series must be regular, i.e. aggregated in constant bins (which is always the case if it has been created using [make-series](query_language_make_seriesoperator.md)). Otherwise, the output is meaningless.\\r\\n* The function accepts up to 16 periods to validate.","The following query embeds a snapshot of a month of an application’s traffic, aggregated twice a day (i.e. the bin size is 12 hours).\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\\r\\n| project x=range(1, arraylength(y), 1), y \\r\\n| render linechart \\r\\n```\\r\\n\\r\\n![](./Images/samples/series_periods.png)\\r\\n\\r\\nRunning `series_periods_validate()` on this series to validate a weekly period (14 points long) results in a high score, and with a **0** score when validating a five days period (10 points long).\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| project y=dynamic([80,139,87,110,68,54,50,51,53,133,86,141,97,156,94,149,95,140,77,61,50,54,47,133,72,152,94,148,105,162,101,160,87,63,53,55,54,151,103,189,108,183,113,175,113,178,90,71,62,62,65,165,109,181,115,182,121,178,114,170])\\r\\n| project x=range(1, arraylength(y), 1), y \\r\\n| project series_periods_validate(y, 14.0, 10.0)\\r\\n```\\r\\n\\r\\n| series\\\\_periods\\\\_validate\\\\_y\\\\_periods | series\\\\_periods\\\\_validate\\\\_y\\\\_scores |\\r\\n|-------------|-------------------|\\r\\n| [14.0, 10.0] | [0.84,0.0] |","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_periods_validatefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_stats","Returns statistics for a series in multiple columns.","The `series_stats()` function takes a column containing dynamic numerical array as input and calculates the following columns:\\r\\n* `min`: minimum value in the input array\\r\\n* `min_idx`: minimum value in the input array\\r\\n* `max`: maximum value in the input array\\r\\n* `max_idx`: maximum value in the input array\\r\\n* `average`: average value of the input array\\r\\n* `variance`: sample variance of input array\\r\\n* `stdev`: sample standard deviation of the input array\\r\\n\\r\\n*Note* that this function returns multiple columns therefore it cannot be used as an argument for another function.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nproject `series_stats(`*x*`)` or extend `series_stats(`*x*`)` \\r\\n* Will return all mentioned above columns with the following names: series_stats_x_min, series_stats_x_min_idx and etc.\\r\\n \\r\\nproject (m, mi)=`series_stats(`*x*`)` or extend (m, mi)=`series_stats(`*x*`)`\\r\\n* Will return the following columns: m (min) and mi (min_idx).\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array cell which is an array of numeric values.","```\\r\\nprint x=dynamic([23,46,23,87,4,8,3,75,2,56,13,75,32,16,29]) \\r\\n| project series_stats(x)\\r\\n\\r\\n```\\r\\n\\r\\n|series_stats_x_min|series_stats_x_min_idx|series_stats_x_max|series_stats_x_max_idx|series_stats_x_avg|series_stats_x_stdev|series_stats_x_variance|\\r\\n|---|---|---|---|---|---|---|\\r\\n|2|8|87|3|32.8|28.5036338535483|812.457142857143|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_statsfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"series_stats_dynamic","Returns statistics for a series in dynamic object.","The `series_stats_dynamic()` function takes a column containing dynamic numerical array as input and generates a dynamic value with the following content:\\r\\n* `min`: minimum value in the input array\\r\\n* `min_idx`: minimum value in the input array\\r\\n* `max`: maximum value in the input array\\r\\n* `max_idx`: maximum value in the input array\\r\\n* `average`: average value of the input array\\r\\n* `variance`: sample variance of input array\\r\\n* `stdev`: sample standard deviation of the input array\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`series_stats_dynamic(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: Dynamic array cell which is an array of numeric values.",\'```\\r\\nprint x=dynamic([23,46,23,87,4,8,3,75,2,56,13,75,32,16,29]) \\r\\n| project stats=series_stats_dynamic(x)\\r\\n\\r\\n```\\r\\n\\r\\n|stats|\\r\\n|---|\\r\\n{ \\r\\n "min": 2.0, \\r\\n "min_idx": 8, \\r\\n "max": 87.0, \\r\\n "max_idx": 3, \\r\\n "avg": 32.8, \\r\\n "stdev": 28.503633853548269, \\r\\n "variance": 812.45714285714291 \\r\\n}\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_series_stats_dynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sign","Sign of a numeric expression","**Syntax**\\r\\n\\r\\n`sign(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The positive (+1), zero (0), or negative (-1) sign of the specified expression.","```\\r\\nprint s1 = sign(-42), s2 = sign(0), s3 = sign(11.2)\\r\\n\\r\\n```\\r\\n\\r\\n|s1|s2|s3|\\r\\n|---|---|---|\\r\\n|-1|0|1|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_signfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sin","Returns the sine function.","**Syntax**\\r\\n\\r\\n`sin(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The result of `sin(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sinfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"sort","Sort the rows of the input table into order by one or more columns.","T | sort by strlen(country) asc, price desc\\r\\n\\r\\n**Alias**\\r\\n\\r\\n`order`\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| sort by` *expression* [`asc` | `desc`] [`nulls first` | `nulls last`] [`,` ...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The table input to sort.\\r\\n* *expression*: A scalar expression by which to sort. The type of the values must be numeric, date, time or string.\\r\\n* `asc` Sort by into ascending order, low to high. The default is `desc`, descending high to low.\\r\\n* `nulls first` (the default for `asc` order) will place the null values at the beginning and `nulls last` (the default for `desc` order) will place the null values at the end.",\'```\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b"\\r\\n| sort by Timestamp asc nulls first\\r\\n```\\r\\n\\r\\nAll rows in table Traces that have a specific `ActivityId`, sorted by their timestamp. If `Timestamp` column contains null values, those will appear at the first lines of the result.\\r\\n\\r\\nIn order to exclude null values from the result add a filter before the call to sort:\\r\\n\\r\\n\\r\\n```\\r\\nTraces\\r\\n| where ActivityId == "479671d99b7b" and isnotnull(Timestamp)\\r\\n| sort by Timestamp asc\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sortoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"split","Splits a given string according to a given delimiter and returns a string array with the conatined substrings.",\'Optionally, a specific substring can be returned if exists.\\r\\n\\r\\n split("aaa_bbb_ccc", "_") == ["aaa","bbb","ccc"]\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`split(`*source*`,` *delimiter* [`,` *requestedIndex*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The source string that will be splitted according to the given delimiter.\\r\\n* *delimiter*: The delimiter that will be used in order to split the source string.\\r\\n* *requestedIndex*: An optional zero-based index `int`. If provided, the returned string array will contain the requested substring if exists. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA string array that contains the substrings of the given source string that are delimited by the given delimiter.\',\'```\\r\\nsplit("aa_bb", "_") // ["aa","bb"]\\r\\nsplit("aaa_bbb_ccc", "_", 1) // ["bbb"]\\r\\nsplit("", "_") // [""]\\r\\nsplit("a__b") // ["a","","b"]\\r\\nsplit("aabbcc", "bb") // ["aa","cc"]\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_splitfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sqrt","Returns the square root function.","**Syntax**\\r\\n\\r\\n`sqrt(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number >= 0.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* A positive number such that `sqrt(x) * sqrt(x) == x`\\r\\n* `null` if the argument is negative or cannot be converted to a `real` value.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sqrtfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofday","Returns the start of the day containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`startofday(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset days from the input date (integer, default - 0). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the start of the day for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project dayStart = startofday(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|dayStart|\\r\\n|---|\\r\\n|2016-12-31 00:00:00.0000000|\\r\\n|2017-01-01 00:00:00.0000000|\\r\\n|2017-01-02 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofdayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofmonth","Returns the start of the month containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`startofmonth(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset months from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the start of the month for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project monthStart = startofmonth(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|monthStart|\\r\\n|---|\\r\\n|2016-12-01 00:00:00.0000000|\\r\\n|2017-01-01 00:00:00.0000000|\\r\\n|2017-02-01 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofmonthfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofweek","Returns the start of the week containing the date, shifted by an offset, if provided.","Start of the week is considered to be a Sunday.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`startofweek(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset weeks from the input date (integer, default - 0).\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the start of the week for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project weekStart = startofweek(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|weekStart|\\r\\n|---|\\r\\n|2016-12-25 00:00:00.0000000|\\r\\n|2017-01-01 00:00:00.0000000|\\r\\n|2017-01-08 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofweekfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"startofyear","Returns the start of the year containing the date, shifted by an offset, if provided.","**Syntax**\\r\\n\\r\\n`startofyear(`*date* [`,`*offset*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `date`: The input date.\\r\\n* `offset`: An optional number of offset years from the input date (integer, default - 0). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA datetime representing the start of the year for the given *date* value, with the offset, if specified.","```\\r\\n range offset from -1 to 1 step 1\\r\\n | project yearStart = startofyear(datetime(2017-01-01 10:10:17), offset) \\r\\n```\\r\\n\\r\\n|yearStart|\\r\\n|---|\\r\\n|2016-01-01 00:00:00.0000000|\\r\\n|2017-01-01 00:00:00.0000000|\\r\\n|2018-01-01 00:00:00.0000000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_startofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdev","Calculates the standard deviation of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).","* Used formula:\\r\\n![](./images/aggregations/stdev_sample.png)\\r\\n\\r\\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `stdev(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe standard deviation value of *Expr* across the group.","```\\r\\nrange x from 1 to 5 step 1\\r\\n| summarize makelist(x), stdev(x)\\r\\n\\r\\n```\\r\\n\\r\\n|list_x|stdev_x|\\r\\n|---|---|\\r\\n|[ 1, 2, 3, 4, 5]|1.58113883008419|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdev_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdevif","Calculates the [stdev](query_language_stdev_aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `stdevif(`*Expr*`, `*Predicate*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the standard deviation.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe standard deviation value of *Expr* across the group where *Predicate* evaluates to `true`.","```\\r\\nrange x from 1 to 100 step 1\\r\\n| summarize stdevif(x, x%2 == 0)\\r\\n\\r\\n```\\r\\n\\r\\n|stdevif_x|\\r\\n|---|\\r\\n|29.1547594742265|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdevif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"stdevp","Calculates the standard deviation of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).","* Used formula:\\r\\n![](./images/aggregations/stdev_population.png)\\r\\n\\r\\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `stdevp(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe standard deviation value of *Expr* across the group.","```\\r\\nrange x from 1 to 5 step 1\\r\\n| summarize makelist(x), stdevp(x)\\r\\n\\r\\n```\\r\\n\\r\\n|list_x|stdevp_x|\\r\\n|---|---|\\r\\n|[ 1, 2, 3, 4, 5]|1.4142135623731|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_stdevp_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat","Concatenates between 1 and 64 arguments.","* In case if arguments are not of string type, they will be forcibly converted to string.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`strcat(`*argument1*,*argument2* [, *argumentN*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *argument1* ... *argumentN* : expressions to be concatenated.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nArguments, concatenated to a single string.",\'```\\r\\nprint str = strcat("hello", " ", "world")\\r\\n```\\r\\n\\r\\n|str|\\r\\n|---|\\r\\n|hello world|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcatfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat_array","Creates a concatenated string of array values using specified delimeter.","**Syntax**\\r\\n\\r\\n`strcat_array(`*array*, *delimiter*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *array*: A `dynamic` value representing an array of values to be concatenated.\\r\\n* *delimeter*: A `string` value that will be used to concatenate the values in *array*\\r\\n\\r\\n**Returns**\\r\\n\\r\\nArray values, concatenated to a single string.",\'```\\r\\nprint str = strcat_array(dynamic([1, 2, 3]), "->")\\r\\n```\\r\\n\\r\\n|str|\\r\\n|---|\\r\\n|1->2->3|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcat_arrayfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcat_delim","Concatenates between 2 and 64 arguments, with delimiter, provided as first argument.","* In case if arguments are not of string type, they will be forcibly converted to string.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`strcat_delim(`*delimiter*,*argument1*,*argument2* [, *argumentN*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *delimiter*: string expression, which will be used as seperator.\\r\\n* *argument1* ... *argumentN* : expressions to be concatenated.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nArguments, concatenated to a single string with *delimiter*.","```\\r\\nprint st = strcat_delim(\'-\', 1, \'2\', \'A\', 1s)\\r\\n\\r\\n```\\r\\n\\r\\n|st|\\r\\n|---|\\r\\n|1-2-A-00:00:01|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcat_delimfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strcmp","Compares two strings.","The function starts comparing the first character of each string. If they are equal to each other, it continues with the following pairs until the characters differ or until the end of shorter string is reached.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`strcmp(`*string1*`,` *string2*`)` \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *string1*: first input string for comparison. \\r\\n* *string2*: second input string for comparison.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns an integral value indicating the relationship between the strings:\\r\\n* *<0* - the first character that does not match has a lower value in string1 than in string2\\r\\n* *0* - the contents of both strings are equal\\r\\n* *>0* - the first character that does not match has a greater value in string1 than in string2",\'```\\r\\ndatatable(string1:string, string2:string)\\r\\n["ABC","ABC",\\r\\n"abc","ABC",\\r\\n"ABC","abc",\\r\\n"abcde","abc"]\\r\\n| extend result = strcmp(string1,string2)\\r\\n```\\r\\n\\r\\n|string1|string2|result|\\r\\n|---|---|---|\\r\\n|ABC|ABC|0|\\r\\n|abc|ABC|1|\\r\\n|ABC|abc|-1|\\r\\n|abcde|abc|1|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strcmpfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strlen","Returns the length, in characters, of the input string.",\'strlen("hello") == 5\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`strlen(`*source*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The source string that will be measured for string length.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nReturns the length, in characters, of the input string.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strlenfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"strrep","Repeates given [string](./scalar-data-types/string.md) provided amount of times.","* In case if first or third argument is not of a string type, it will be forcibly converted to string.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`strrep(`*value*,*multiplier*,[*delimiter*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *value*: input expression\\r\\n* *multiplier*: positive integer value (from 1 to 1024)\\r\\n* *delimiter*: an optional string expression (default: empty string)\\r\\n\\r\\n**Returns**\\r\\n\\r\\nValue repeated for a specified number of times, concatenated with *delimiter*.\\r\\n\\r\\nIn case if *multiplier* is more than maximal allowed value (1024), input string will be repeated 1024 times.","```\\r\\nprint from_str = strrep(\'ABC\', 2), from_int = strrep(123,3,\'.\'), from_time = strrep(3s,2,\' \')\\r\\n```\\r\\n\\r\\n|from_str|from_int|from_time|\\r\\n|---|---|---|\\r\\n|ABCABC|123.123.123|00:00:03 00:00:03|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_strrepfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"substring","Extracts a substring from a source string starting from some index to the end of the string.",\'Optionally, the length of the requested substring can be specified.\\r\\n\\r\\n substring("abcdefg", 1, 2) == "bc"\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`substring(`*source*`,` *startingIndex* [`,` *length*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *source*: The source string that the substring will be taken from.\\r\\n* *startingIndex*: The zero-based starting character position of the requested substring.\\r\\n* *length*: An optional parameter that can be used to specify the requested number of characters in the substring. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA substring from the given string. The substring starts at startingIndex (zero-based) character position and continues to the end of the string or length characters if specified.\',\'```\\r\\nsubstring("123456", 1) // 23456\\r\\nsubstring("123456", 2, 2) // 34\\r\\nsubstring("ABCD", 0, 2) // AB\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_substringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sum","Calculates the sum of *Expr* across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `sum(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe sum value of *Expr* across the group.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sum_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"sumif","Returns a sum of *Expr* for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\nSee also - [sum()](query_language_sum_aggfunction.md) function, which sums rows without predicate expression.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `sumif(`*Expr*`,`*Predicate*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the sum. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe sum value of *Expr* for which *Predicate* evaluates to `true`.\\r\\n\\r\\n**Tip**\\r\\n\\r\\nUse `summarize sumif(expr, filter)` instead of `where filter | summarize sum(expr)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_sumif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"summarize","Produces a table that aggregates the content of the input table.","T | summarize count(), avg(price) by fruit, supplier\\r\\n\\r\\nA table that shows the number and average price of each fruit from each supplier. There\'s a row in the output for each distinct combination of fruit and supplier. The output columns show the count, average price, fruit and supplier. All other input columns are ignored.\\r\\n\\r\\n\\r\\n T | summarize count() by price_range=bin(price, 10.0)\\r\\n\\r\\nA table that shows how many items have prices in each interval [0,10.0], [10.0,20.0], and so on. This example has a column for the count and one for the price range. All other input columns are ignored.\\r\\n\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| summarize`\\r\\n [[*Column* `=`] *Aggregation* [`,` ...]]\\r\\n [`by`\\r\\n [*Column* `=`] *GroupExpression* [`,` ...]]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Column:* Optional name for a result column. Defaults to a name derived from the expression.\\r\\n* *Aggregation:* A call to an [aggregation function](query_language_summarizeoperator.md#list-of-aggregation-functions) such as `count()` or `avg()`, with column names as arguments. See the [list of aggregation functions](query_language_summarizeoperator.md#list-of-aggregation-functions).\\r\\n* *GroupExpression:* An expression over the columns, that provides a set of distinct values. Typically it\'s either a column name that already provides a restricted set of values, or `bin()` with a numeric or time column as argument. \\r\\n\\r\\n If you don\'t provide a *GroupExpression,* the whole table is summarized in a single output row.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe input rows are arranged into groups having the same values of the `by` expressions. Then the specified aggregation functions are computed over each group, producing a row for each group. The result contains the `by` columns and also at least one column for each computed aggregate. (Some aggregation functions return multiple columns.)\\r\\n\\r\\nThe result has as many rows as there are distinct combinations of `by` values. If you want to summarize over ranges of numeric values, use `bin()` to reduce ranges to discrete values.\\r\\n\\r\\n**Note**\\r\\n\\r\\nAlthough you can provide arbitrary expressions for both the aggregation and grouping expressions, it\'s more efficient to use simple column names, or apply `bin()` to a numeric column.\\r\\n\\r\\n## List of aggregation functions\\r\\n\\r\\n|Function|Description|\\r\\n|--------|-----------|\\r\\n|[any()](query_language_any_aggfunction.md)|Returns random non-empty value for the group|\\r\\n|[argmax()](query_language_argmax_aggfunction.md)|Returns one or more expressions when argument is maximized|\\r\\n|[argmin()](query_language_argmin_aggfunction.md)|Returns one or more expressions when argument is minimized|\\r\\n|[avg()](query_language_avg_aggfunction.md)|Retuns average value across the group|\\r\\n|[buildschema()](query_language_buildschema_aggfunction.md)|Returns the minimal schema that admits all values of the `dynamic` input|\\r\\n|[count()](query_language_count_aggfunction.md)|Returns count of the group|\\r\\n|[countif()](query_language_countif_aggfunction.md)|Returns count with the predicate of the group|\\r\\n|[dcount()](query_language_dcount_aggfunction.md)|Returns approximate distinct count of the group elements|\\r\\n|[makelist()](query_language_makelist_aggfunction.md)|Returns a list of all the values within the group|\\r\\n|[makeset()](query_language_makeset_aggfunction.md)|Returns a set of distinct values within the group|\\r\\n|[max()](query_language_max_aggfunction.md)|Returns the maximum value across the group|\\r\\n|[min()](query_language_min_aggfunction.md)|Returns the minimum value across the group|\\r\\n|[percentiles()](query_language_percentiles_aggfunction.md)|Returns the percentile approximate of the group|\\r\\n|[stdev()](query_language_stdev_aggfunction.md)|Returns the standard deviateion across the group|\\r\\n|[sum()](query_language_sum_aggfunction.md)|Returns the sum of the elements withing the group|\\r\\n|[variance()](query_language_variance_aggfunction.md)|Returns the variance across the group|\\r\\n\\r\\n## Aggregates default values\\r\\n\\r\\nThe following table summarizes the default values of aggregations\\r\\n\\r\\nOperator |Default value \\r\\n---------------|------------------------------------\\r\\n `count()`, `countif()`, `dcount()`, `dcountif()` | 0 \\r\\n `makeset()`, `makelist()` | empty dynamic array ([]) \\r\\n `any()`, `argmax()`. `argmin()`, `avg()`, `buildschema()`, `hll()`, `max()`, `min()`, `percentiles()`, `stdev()`, `sum()`, `sumif()`, `tdigest()`, `variance()` | null \\r\\n\\r\\n In addition, when using these aggregates over entities which includes null values, the null values will be ignored and won\'t participate in the calculation (See examples below).","![](./Images/aggregations/01.png)\\r\\n\\r\\n**Example**\\r\\n\\r\\nDetermine what unique combinations of\\r\\n`ActivityType` and `CompletionStatus` there are in a table. Note that\\r\\nthere are no aggregation functions, just group-by keys. The output will just show the columns for those results:\\r\\n\\r\\n```\\r\\nActivities | summarize by ActivityType, completionStatus\\r\\n```\\r\\n\\r\\n|`ActivityType`|`completionStatus`\\r\\n|---|---\\r\\n|`dancing`|`started`\\r\\n|`singing`|`started`\\r\\n|`dancing`|`abandoned`\\r\\n|`singing`|`completed`\\r\\n\\r\\n**Example**\\r\\n\\r\\nFinds the minimum and maximum timestamp of all records in the Activities table. There is no group-by clause, so there is just one row in the output:\\r\\n\\r\\n```\\r\\nActivities | summarize Min = min(Timestamp), Max = max(Timestamp)\\r\\n```\\r\\n\\r\\n|`Min`|`Max`\\r\\n|---|---\\r\\n|`1975-06-09 09:21:45` | `2015-12-24 23:45:00`\\r\\n\\r\\n**Example**\\r\\n\\r\\nCreate a row for each continent, showing a count of the cities in which activities occur. Because there are few values for \\"continent\\", no grouping function is needed in the \'by\' clause:\\r\\n\\r\\n Activities | summarize cities=dcount(city) by continent\\r\\n\\r\\n|`cities`|`continent`\\r\\n|---:|---\\r\\n|`4290`|`Asia`|\\r\\n|`3267`|`Europe`|\\r\\n|`2673`|`North America`|\\r\\n\\r\\n\\r\\n**Example**\\r\\n\\r\\nThe following example calculates a histogram for each activity\\r\\ntype. Because `Duration` has many values, we use `bin` to group its values into 10-minute intervals:\\r\\n\\r\\n```\\r\\nActivities | summarize count() by ActivityType, length=bin(Duration, 10m)\\r\\n```\\r\\n\\r\\n|`count_`|`ActivityType`|`length`\\r\\n|---:|---|---\\r\\n|`354`| `dancing` | `0:00:00.000`\\r\\n|`23`|`singing` | `0:00:00.000`\\r\\n|`2717`|`dancing`|`0:10:00.000`\\r\\n|`341`|`singing`|`0:10:00.000`\\r\\n|`725`|`dancing`|`0:20:00.000`\\r\\n|`2876`|`singing`|`0:20:00.000`\\r\\n|...\\r\\n\\r\\n**Examples for the aggregates default values**\\r\\n\\r\\nWhen the input of summarize operator that has at least one group-by key is empty then it\'s result is empty too.\\r\\n\\r\\nWhen the input of summarize operator that doesn\'t have any group-by key is empty, then the result is the default values of the aggregates used in the summarize:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| where 1 == 2\\r\\n| summarize any(x), argmax(x, x), argmin(x, x), avg(x), buildschema(todynamic(tostring(x))), max(x), min(x), percentile(x, 55), hll(x) ,stdev(x), sum(x), sumif(x, x > 0), tdigest(x), variance(x)\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|any_x|max_x|max_x_x|min_x|min_x_x|avg_x|schema_x|max_x1|min_x1|percentile_x_55|hll_x|stdev_x|sum_x|sumif_x|tdigest_x|variance_x|\\r\\n|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|\\r\\n|||||||||||||||||\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| where 1 == 2\\r\\n| summarize count(x), countif(x > 0) , dcount(x), dcountif(x, x > 0)\\r\\n```\\r\\n\\r\\n|count_x|countif_|dcount_x|dcountif_x|\\r\\n|---|---|---|---|\\r\\n|0|0|0|0|\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 1 step 1\\r\\n| where 1 == 2\\r\\n| summarize makeset(x), makelist(x)\\r\\n```\\r\\n\\r\\n|set_x|list_x|\\r\\n|---|---|\\r\\n|[]|[]|\\r\\n\\r\\nThe aggregate avg sums all the non-nulls and counts only those which participated in the calculation (will not take nulls into account).\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 2 step 1\\r\\n| extend y = iff(x == 1, real(null), real(5))\\r\\n| summarize sum(y), avg(y)\\r\\n```\\r\\n\\r\\n|sum_y|avg_y|\\r\\n|---|---|\\r\\n|5|5|\\r\\n\\r\\nThe regular count will count nulls: \\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 2 step 1\\r\\n| extend y = iff(x == 1, real(null), real(5))\\r\\n| summarize count(y)\\r\\n```\\r\\n\\r\\n|count_y|\\r\\n|---|\\r\\n|2|\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 2 step 1\\r\\n| extend y = iff(x == 1, real(null), real(5))\\r\\n| summarize makeset(y), makeset(y)\\r\\n```\\r\\n\\r\\n|set_y|set_y1|\\r\\n|---|---|\\r\\n|[5.0]|[5.0]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_summarizeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"table","References specific table using an query-time evaluated string-expression.",\'table(\\\'StormEvent\\\')\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`table(`*stringExpression* [`,` *query_data_scope* ]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *stringExpression*: Name of the table that is referenced.\\r\\n* *query_data_scope*: An optional parameter that controls the tables\\\'s datascope -- whether the query applies to all data or just part of it. Possible values:\\r\\n - `"hotcache"`: Table scope is data that is covered by [cache policy](../concepts/concepts_cachepolicy.md)\\r\\n - `"all"`: Table scope is all data, hot or cold.\\r\\n - `"default"`: Table scope is default (cluster default policy)\',"### Use table() to access table of the current database. \\r\\n\\r\\n\\r\\n```\\r\\ntable(\'StormEvent\') | count\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use table() inside let statements \\r\\n\\r\\nThe same query as above can be rewritten to use inline function (let statement) that \\r\\nreceives a parameter `tableName` - which is passed into the table() function.\\r\\n\\r\\n\\r\\n```\\r\\nlet foo = (tableName:string)\\r\\n{\\r\\n table(tableName) | count\\r\\n};\\r\\nfoo(\'help\')\\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|59066|\\r\\n\\r\\n### Use table() inside Functions \\r\\n\\r\\nThe same query as above can be rewritten to be used in a function that \\r\\nreceives a parameter `tableName` - which is passed into the table() function.\\r\\n\\r\\n\\r\\n```\\r\\n.create function foo(tableName:string)\\r\\n{\\r\\n table(tableName) | count\\r\\n};\\r\\n```\\r\\n\\r\\n**Note:** such functions can be used only locally and not in the cross-cluster query.\\r\\n\\r\\n### Use table() with non-constant parameter\\r\\n\\r\\nA parameter, which is not scalar constant string can\'t be passed as parameter to `table()` function.\\r\\n\\r\\nBelow, given an example of workaround for such case.\\r\\n\\r\\n\\r\\n```\\r\\nlet T1 = range x from 1 to 1 step 1;\\r\\nlet T2 = range x from 2 to 2 step 1;\\r\\nlet _choose = (_selector:string)\\r\\n{\\r\\n union \\r\\n (T1 | where _selector == \'T1\'),\\r\\n (T2 | where _selector == \'T2\')\\r\\n};\\r\\n_choose(\'T2\')\\r\\n\\r\\n```\\r\\n\\r\\n|x|\\r\\n|---|\\r\\n|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tablefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"take","Return up to the specified number of rows."," T | take 5\\r\\n\\r\\nThere is no guarantee which records are returned, unless\\r\\nthe source data is sorted.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`take` *NumberOfRows*\\r\\n`limit` *NumberOfRows*\\r\\n\\r\\n(`take` and `limit` are synonyms.)\\r\\n\\r\\n**Remarks**\\r\\n\\r\\n`take` is a simple, quick, and efficient way to view a small sample of records\\r\\nwhen browing data interactively, but be aware that it doesn\'t guarantee any consistency\\r\\nin its results when executing multiple times, even if the data set hasn\'t changed.\\r\\n\\r\\nEven is the number of rows returned by the query is not explicitly limited\\r\\nby the query (no `take` operator is used), Kusto limits that number by default.\\r\\nPlease see [Kusto query limits](../concepts/concepts_querylimits.md) for details.\\r\\n\\r\\nSee:\\r\\n[sort operator](query_language_sortoperator.md)\\r\\n[top operator](query_language_topoperator.md)\\r\\n[top-nested operator](query_language_topnestedoperator.md)\\r\\n\\r\\n## A note on paging through a large resultset (or: the lack of a `skip` operator)\\r\\n\\r\\nKusto does not support the complementary `skip` operator. This is intentional, as\\r\\n`take` and `skip` together are mainly used for thin client paging, and have a major\\r\\nperformance impact on the service. Application builders that want to support result\\r\\npaging are advised to query for several pages of data (say, 10,000 records at a time)\\r\\nand then display a page of data at a time to the user.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_takeoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tan","Returns the tangent function.","**Syntax**\\r\\n\\r\\n`tan(`*x*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *x*: A real number.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n* The result of `tan(x)`","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tdigest","Calculates the Intermediate results of [`percentiles()`](query_language_percentiles_aggfunction.md) across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\\r\\n\\r\\nRead more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`summarize` `tdigest(`*Expr* [`,` *WeightExpr*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *WeightExpr*: Expression that will be used as the weight of values for aggregation calculation.\\r\\n\\r\\n\\t\\r\\n**Returns**\\r\\n\\r\\nThe Intermediate results of weighted percentiles of *Expr* across the group.\\r\\n \\r\\n \\r\\n**Tips**\\r\\n\\r\\n1) You may use the aggregation function [`merge_tdigests()`](query_language_merge_tdigests_aggfunction.md) to merge the output of tdigest again across another group.\\r\\n\\r\\n2) You may use the function [`percentile_tdigest()`] (query_language_percentile_tdigestfunction.md) to calculate the percentile/percentilew of the tdigest results.","```\\r\\nStormEvents\\r\\n| summarize tdigest(DamageProperty) by State\\r\\n```\\r\\n\\r\\n|State|tdigest_DamageProperty|\\r\\n|---|---|\\r\\n|ATLANTIC SOUTH|[[5],[0],[193]]|\\r\\n|FLORIDA|[[5],[250,10,600000,5000,375000,15000000,20000,6000000,0,110000,150000,500,12000,30000,15000,46000000,7000000,6200000,200000,40000,8000,52000000,62000000,1200000,130000,1500000,4000000,7000,250000,875000,3000,100000,10600000,300000,1000000,25000,75000,2000,60000,10000,170000,350000,50000,1000,16000,80000,2500,400000],[9,1,1,22,1,1,9,1,842,1,3,7,2,4,7,1,1,1,2,5,3,3,1,1,1,1,2,2,1,1,9,7,1,1,2,5,2,9,2,27,1,1,7,27,1,1,1,1]]|\\r\\n|GEORGIA|[[5],[468,209,300000,3000,250000,775000,14000,500000,0,75000,4500000,500,6928,22767,9714,800000,700000,600000,150000,25000,5000,1600000,1250000,2700000,1500000,2250000,400000,4000,175000,325000,2500,73750,750000,1400000,350000,28000000,39000,1500,35000,6455,140000,225000,30000,1000,110000000,21700000,2000,275000,200000,100000,1000000,2600000,370000,2100000,355000,117500,50000,20100,10000],[11,11,4,53,21,1,6,10,1317,8,1,56,8,6,7,1,1,1,14,29,69,1,2,1,1,1,3,14,5,1,3,4,4,1,4,1,5,14,3,5,2,1,9,96,1,1,72,1,10,17,3,1,1,1,1,2,21,4,31]]|\\r\\n|MISSISSIPPI|[[5],[267,55,90000,3000,75000,300000,11167,160000,0,32000,40000,1000,7000,13000,8000,400000,200000,180000,50000,15000,5000,700000,500000,120000,650000,1000000,150000,4000,60000,100000,2500,30000,250000,600000,110000,12000,20000,1500,17000,6000,45000,70000,15250,1219,10000,25000,2000,80000,65000,35000,450000,1200000,130000,750000],[3,2,6,21,1,4,6,1,741,4,13,44,8,2,8,1,5,1,23,21,32,1,3,1,1,1,5,18,17,4,1,14,2,4,4,16,13,10,4,9,2,10,4,8,31,17,51,13,1,1,1,2,1,1]]|\\r\\n|AMERICAN SAMOA|[[5],[0,250000],[15,1]]|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigest_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tdigest_merge","Merges tdigest results across the group.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md).\\r\\n\\r\\nRead more about the underlying algorithm (T-Digest) and the estimated error [here](query_language_percentiles_aggfunction.md#estimation-error-in-percentiles).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `tdigest_merge(`*Expr*`)`.\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe merged tdigest values of *Expr* across the group.\\r\\n \\r\\n\\r\\n**Tips**\\r\\n\\r\\n1) You may use the function [`percentile_tdigest()`] (query_language_percentile_tdigestfunction.md).\\r\\n\\r\\n2) All tdigests that are included in the same group must be of the same type.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tdigest_merge_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tobool","Converts input to boolean (signed 8-bit) representation.",\'tobool("true") == true\\r\\n tobool("false") == false\\r\\n tobool(1) == true\\r\\n tobool(123) == true\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`tobool(`*Expr*`)`\\r\\n`toboolean(`*Expr*`)` (alias)\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to boolean. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a boolean.\\r\\nIf conversion is not successful, result will be `null`.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toboolfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todatetime","Converts input to [datetime](./scalar-data-types/datetime.md) scalar.",\'todatetime("2015-12-24") == datetime(2015-12-24)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`todatetime(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to [datetime](./scalar-data-types/datetime.md). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a [datetime](./scalar-data-types/datetime.md) value.\\r\\nIf conversion is not successful, result will be null.\\r\\n \\r\\n*Note*: Prefer using [datetime()](./scalar-data-types/datetime.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todatetimefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todecimal","Converts input to decimal number representation.",\'todecimal("123.45678") == decimal(123.45678)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`todecimal(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to decimal. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a decimal number.\\r\\nIf conversion is not successful, result will be `null`.\\r\\n \\r\\n*Note*: Prefer using [real()](./scalar-data-types/real.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todecimalfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todouble","Converts the input to a value of type `real`. (`todouble()` and `toreal()` are synonyms.)",\'toreal("123.4") == 123.4\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`toreal(`*Expr*`)`\\r\\n`todouble(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: An expression whose value will be converted to a value of type `real`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, the result is a value of type `real`.\\r\\nIf conversion is not successful, the result is the value `real(null)`.\\r\\n\\r\\n*Note*: Prefer using [double() or real()](./scalar-data-types/real.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todoublefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"todynamic","Interprets a `string` as a [JSON value](http://json.org/) and returns the value as [`dynamic`](./scalar-data-types/dynamic.md).","It is superior to using [extractjson() function](./query_language_extractjsonfunction.md)\\r\\nwhen you need to extract more than one element of a JSON compound object.\\r\\n\\r\\nAliases to [parsejson()](./query_language_parsejsonfunction.md) function.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`todynamic(`*json*`)`\\r\\n`toobject(`*json*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *json*: A JSON document.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn object of type `dynamic` specified by *json*.\\r\\n\\r\\n*Note*: Prefer using [dynamic()](./scalar-data-types/dynamic.md) when possible.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_todynamicfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toguid","Converts input to [`guid`](./scalar-data-types/guid.md) representation.",\'toguid("70fc66f7-8279-44fc-9092-d364d70fce44") == guid("70fc66f7-8279-44fc-9092-d364d70fce44")\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`toguid(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to [`guid`](./scalar-data-types/guid.md) scalar. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a [`guid`](./scalar-data-types/guid.md) scalar.\\r\\nIf conversion is not successful, result will be `null`.\\r\\n\\r\\n*Note*: Prefer using [guid()](./scalar-data-types/guid.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toguidfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tohex","Converts input to a hexadecimal string.","tohex(256) == \'100\'\\r\\n tohex(-256) == \'ffffffffffffff00\' // 64-bit 2\'s complement of -256\\r\\n tohex(toint(-256), 8) == \'ffffff00\' // 32-bit 2\'s complement of -256\\r\\n tohex(256, 8) == \'00000100\'\\r\\n tohex(256, 2) == \'100\' // Exceeds min length of 2, so min length is ignored.\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`tohex(`*Expr*`, [`,` *MinLength*]`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: int or long value that will be converted to a hex string. Other types are not supported.\\r\\n* *MinLength*: numeric value representing the number of leading characters to include in the output. Values between 1 and 16 are supported, values greater than 16 will be truncated to 16. If the string is longer than minLength without leading characters, then minLength is effectively ignored. Negative numbers may only be represented at minimum by their underlying data size, so for an int (32-bit) the minLength will be at minimum 8, for a long (64-bit) it will be at minimum 16.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a string value.\\r\\nIf conversion is not successful, result will be null.","","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tohexfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toint","Converts input to integener (signed 32-bit) number representation.",\'toint("123") == 123\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`toint(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to integer. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a integer number.\\r\\nIf conversion is not successful, result will be `null`.\\r\\n \\r\\n*Note*: Prefer using [int()](./scalar-data-types/int.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tointfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tolong","Converts input to long (signed 64-bit) number representation.",\'tolong("123") == 123\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`tolong(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to long. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a long number.\\r\\nIf conversion is not successful, result will be `null`.\\r\\n \\r\\n*Note*: Prefer using [long()](./scalar-data-types/long.md) when possible.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tolongfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tolower","Converts input string to lower case.",\'tolower("Hello") == "hello"\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tolowerfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top","Returns the first *N* records sorted by the specified columns.",\'T | top 5 by Name desc nulls last\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| top` *NumberOfRows* `by` *sort_key* [`asc` | `desc`] [`nulls first` | `nulls last`]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\\r\\n* *sort_key*: The name of the column by which to sort the rows.\\r\\n* `asc` or `desc` (the default) may appear to control whether selection is actually from the "bottom" or "top" of the range.\\r\\n* `nulls first` (the default for `asc` order) or `nulls last` (the default for `desc` order) may appear to control whether null values will be at the beginning or the end of the range.\\r\\n\\r\\n\\r\\n**Tips**\\r\\n\\r\\n`top 5 by name` is superficially equivalent to `sort by name | take 5`. However, it runs faster and always returns sorted results, whereas `take` makes no such guarantee.\\r\\n[top-nested](query_language_topnestedoperator.md) allows to produce hierarchical top results.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_topoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top-hitters","Returns an approximation of the first *N* results (assuming skewed distribution of the input).","T | top-hitters 25 of Page by Views \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| top-hitters` *NumberOfRows* `of` *sort_key* `[` `by` *expression* `]`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *NumberOfRows*: The number of rows of *T* to return. You can specify any numeric expression.\\r\\n* *sort_key*: The name of the column by which to sort the rows.\\r\\n* *expression*: (optional) An expression which will be used for the top-hitters estimation. \\r\\n * *expression*: top-hitters will return *NumberOfRows* rows which have an approximated maximum of sum(*expression*). Expression can be a column, or any other expression that evaluates to a number. \\r\\n * If *expression* is not mentioned, top-hitters algorithm will count the occurences of the *sort-key*. \\r\\n\\r\\n**Notes**\\r\\n\\r\\n`top-hitters` is an approximation algorithm and should be used when running with large data. \\r\\nThe approximation of the the top-hitters is based on the [Count-Min-Sketch](https://en.wikipedia.org/wiki/Count%E2%80%93min_sketch) algorithm.","## Getting top hitters (most frequent items) \\r\\n\\r\\nThe next example shows how to find top-5 languages with most pages in Wikipedia (accessed after during April 2016). \\r\\n\\r\\n\\r\\n```\\r\\nPageViews\\r\\n| where Timestamp > datetime(2016-04-01) and Timestamp < datetime(2016-05-01) \\r\\n| top-hitters 5 of Language \\r\\n```\\r\\n\\r\\n|Language|approximate_count_Language|\\r\\n|---|---|\\r\\n|en|1539954127|\\r\\n|zh|339827659|\\r\\n|de|262197491|\\r\\n|ru|227003107|\\r\\n|fr|207943448|\\r\\n\\r\\n## Getting top hitters (based on column value) ***\\r\\n\\r\\nThe next example shows how to find most viewed English pages of Wikipedia of the year 2016. \\r\\nThe query uses \'Views\' (integer number) to calculate page popularity (number of views). \\r\\n\\r\\n\\r\\n```\\r\\nPageViews\\r\\n| where Timestamp > datetime(2016-01-01)\\r\\n| where Language == \\"en\\"\\r\\n| where Page !has \'Special\'\\r\\n| top-hitters 10 of Page by Views\\r\\n```\\r\\n\\r\\n|Page|approximate_sum_Views|\\r\\n|---|---|\\r\\n|Main_Page|1325856754|\\r\\n|Web_scraping|43979153|\\r\\n|Java_(programming_language)|16489491|\\r\\n|United_States|13928841|\\r\\n|Wikipedia|13584915|\\r\\n|Donald_Trump|12376448|\\r\\n|YouTube|11917252|\\r\\n|The_Revenant_(2015_film)|10714263|\\r\\n|Star_Wars:_The_Force_Awakens|9770653|\\r\\n|Portal:Current_events|9578000|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tophittersoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"top-nested","Produces hierarchical top results, where each level is a drill-down based on previous level values.",\'T | top-nested 3 of Location with others="Others" by sum(MachinesNumber), top-nested 4 of bin(Timestamp,5m) by sum(MachinesNumber)\\r\\n\\r\\nIt is useful for dashboard visualization scenarios, or when it is necessary to answer to a question that \\r\\nsounds like: "find what are top-N values of K1 (using some aggregation); for each of them, find what are the top-M values of K2 (using another aggregation); ..."\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `|` `top-nested` [*N1*] `of` *Expression1* [`with others=` *ConstExpr1*] `by` [*AggName1* `=`] *Aggregation1* [`asc` | `desc`] [`,`...]\\r\\n\\r\\n**Arguments**\\r\\n\\r\\nfor each top-nested rule:\\r\\n* *N1*: The number of top values to return for each hierarchy level. Optional (if omitted, all distinct values will be returned).\\r\\n* *Expression1*: An expression by which to select the top values. Typically it\\\'s either a column name in *T*, or some binning operation (e.g., `bin()`) on such a column. \\r\\n* *ConstExpr1*: If specified, then for the applicable nesting level, an additional row will be appended that holds the aggregated result for the other values that are not included in the top values.\\r\\n* *Aggregation1*: A call to an aggregation function which may be one of:\\r\\n [sum()](query_language_sum_aggfunction.md),\\r\\n [count()](query_language_count_aggfunction.md),\\r\\n [max()](query_language_max_aggfunction.md),\\r\\n [min()](query_language_min_aggfunction.md),\\r\\n [dcount()](query_language_dcountif_aggfunction.md),\\r\\n [avg()](query_language_avg_aggfunction.md),\\r\\n [percentile()](query_language_percentiles_aggfunction.md),\\r\\n [percentilew()](query_language_percentiles_aggfunction.md),\\r\\n or any algebric combination of these aggregations.\\r\\n* `asc` or `desc` (the default) may appear to control whether selection is actually from the "bottom" or "top" of the range.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nHierarchial table which includes input columns and for each one a new column is produced to include result of the Aggregation for the same level for each element.\\r\\nThe columns are arranged in the same order of the input columns and the new produced column will be close to the aggregated column. \\r\\nEach record has a hierarchial structure where each value is selected after applying all the previous top-nested rules on all the previous levels and then applying the current level\\\'s rule on this output.\\r\\nThis means that the top n values for level i are calculated for each value in level i - 1.\\r\\n \\r\\n**Tips**\\r\\n\\r\\n* Use columns renaming in for *Aggregation* results: T | top-nested 3 of Location by MachinesNumberForLocation = sum(MachinesNumber) ... .\\r\\n\\r\\n* The number of records returned might be quite large; up to (*N1*+1) * (*N2*+1) * ... * (*Nm*+1) (where m is the number of the levels and *Ni* is the top count for level i).\\r\\n\\r\\n* The Aggregation must receive a numeric column with aggregation function which is one of the mentioned above.\\r\\n\\r\\n* Use the `with others=` option in order to get the aggregated value of all other values that was not top N values in some level.\\r\\n\\r\\n* If you are not interested in getting `with others=` for some level, null values will be appended (for the aggreagated column and the level key, see example below).\\r\\n\\r\\n\\r\\n* It is possible to return additional columns for the selected top-nested candidates by appending additional top-nested statements like these (see examples below):\\r\\n\\r\\n\\r\\n```\\r\\ntop-nested 2 of ...., ..., ..., top-nested of by max(1), top-nested of by max(1)\\r\\n```\',"```\\r\\nStormEvents\\r\\n| top-nested 2 of State by sum(BeginLat),\\r\\n top-nested 3 of Source by sum(BeginLat),\\r\\n top-nested 1 of EndLocation by sum(BeginLat)\\r\\n```\\r\\n\\r\\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|\\r\\n|---|---|---|---|---|---|\\r\\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|FT SCOTT|264.858|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|\\r\\n|TEXAS|123400.5101|Public|13650.9079|AMARILLO|246.2598|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|\\r\\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|\\r\\n\\r\\n\\r\\n* With others example:\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| top-nested 2 of State with others = \\"All Other States\\" by sum(BeginLat),\\r\\n top-nested 3 of Source by sum(BeginLat),\\r\\n top-nested 1 of EndLocation with others = \\"All Other End Locations\\" by sum(BeginLat)\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|\\r\\n|---|---|---|---|---|---|\\r\\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|FT SCOTT|264.858|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|\\r\\n|TEXAS|123400.5101|Public|13650.9079|AMARILLO|246.2598|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|\\r\\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|\\r\\n|KANSAS|87771.2355000001|Law Enforcement|18744.823|All Other End Locations|18479.965|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|All Other End Locations|22367.3749|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|All Other End Locations|20890.9679|\\r\\n|TEXAS|123400.5101|Public|13650.9079|All Other End Locations|13404.6481|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|All Other End Locations|36939.2788|\\r\\n|TEXAS|123400.5101|Trained Spotter|13997.7124|All Other End Locations|13576.2724|\\r\\n|KANSAS|87771.2355000001|||All Other End Locations|24891.0836|\\r\\n|TEXAS|123400.5101|||All Other End Locations|58523.2932000001|\\r\\n|All Other States|1149279.5923|||All Other End Locations|1149279.5923|\\r\\n\\r\\n\\r\\nThe following query shows the same results for the first level used in the example above:\\r\\n\\r\\n\\r\\n```\\r\\n StormEvents\\r\\n | where State !in (\'TEXAS\', \'KANSAS\')\\r\\n | summarize sum(BeginLat)\\r\\n```\\r\\n\\r\\n|sum_BeginLat|\\r\\n|---|\\r\\n|1149279.5923|\\r\\n\\r\\n\\r\\nRequesting another column (EventType) to the top-nested result: \\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| top-nested 2 of State by sum(BeginLat), top-nested 2 of Source by sum(BeginLat), top-nested 1 of EndLocation by sum(BeginLat), top-nested of EventType by tmp = max(1)\\r\\n| project-away tmp\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|State|aggregated_State|Source|aggregated_Source|EndLocation|aggregated_EndLocation|EventType|\\r\\n|---|---|---|---|---|---|---|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Thunderstorm Wind|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Hail|\\r\\n|KANSAS|87771.2355000001|Trained Spotter|21279.7083|SHARON SPGS|388.7404|Tornado|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Hail|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Thunderstorm Wind|\\r\\n|KANSAS|87771.2355000001|Public|22855.6206|BUCKLIN|488.2457|Flood|\\r\\n|TEXAS|123400.5101|Trained Spotter|13997.7124|CLAUDE|421.44|Hail|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Hail|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Flood|\\r\\n|TEXAS|123400.5101|Law Enforcement|37228.5966|PERRYTON|289.3178|Flash Flood|\\r\\n\\r\\nIn order to sort the result by the last nested level (in this example by EndLocation) and give an index sort order for each value in this level (per group) :\\r\\n\\r\\n\\r\\n```\\r\\nStormEvents\\r\\n| top-nested 2 of State by sum(BeginLat), top-nested 2 of Source by sum(BeginLat), top-nested 4 of EndLocation by sum(BeginLat)\\r\\n| order by State , Source, aggregated_EndLocation\\r\\n| summarize EndLocations = makelist(EndLocation, 10000) , endLocationSums = makelist(aggregated_EndLocation, 10000) by State, Source\\r\\n| extend indicies = range(0, arraylength(EndLocations) - 1, 1)\\r\\n| mvexpand EndLocations, endLocationSums, indicies\\r\\n\\r\\n\\r\\n\\r\\n```\\r\\n\\r\\n|State|Source|EndLocations|endLocationSums|indicies|\\r\\n|---|---|---|---|---|\\r\\n|TEXAS|Trained Spotter|CLAUDE|421.44|0|\\r\\n|TEXAS|Trained Spotter|AMARILLO|316.8892|1|\\r\\n|TEXAS|Trained Spotter|DALHART|252.6186|2|\\r\\n|TEXAS|Trained Spotter|PERRYTON|216.7826|3|\\r\\n|TEXAS|Law Enforcement|PERRYTON|289.3178|0|\\r\\n|TEXAS|Law Enforcement|LEAKEY|267.9825|1|\\r\\n|TEXAS|Law Enforcement|BRACKETTVILLE|264.3483|2|\\r\\n|TEXAS|Law Enforcement|GILMER|261.9068|3|\\r\\n|KANSAS|Trained Spotter|SHARON SPGS|388.7404|0|\\r\\n|KANSAS|Trained Spotter|ATWOOD|358.6136|1|\\r\\n|KANSAS|Trained Spotter|LENORA|317.0718|2|\\r\\n|KANSAS|Trained Spotter|SCOTT CITY|307.84|3|\\r\\n|KANSAS|Public|BUCKLIN|488.2457|0|\\r\\n|KANSAS|Public|ASHLAND|446.4218|1|\\r\\n|KANSAS|Public|PROTECTION|446.11|2|\\r\\n|KANSAS|Public|MEADE STATE PARK|371.1|3|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_topnestedoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toscalar","Returns a scalar constant value of the evaluated expression.","This function is useful for queries that require staged calculations, as for example\\r\\ncalculating a total count of events and then use it for for filtering groups\\r\\nthat exceed certain percent of all events. \\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`toscalar(`*Expression*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expression*: Expression that will be evaluated for scalar conversion \\r\\n\\r\\n**Returns**\\r\\n\\r\\nA scalar constant value of the evaluated expression.\\r\\nIf expression result is a tabular, then the first column and first row will be taken for conversion.\\r\\n\\r\\n**Tip**\\r\\nYou can use [`let` statement](query_language_letstatement.md) for readability of the query when using `toscalar()`. \\r\\n\\r\\n**Notes**\\r\\n\\r\\n`toscalar()` can be calculated a constant number of times during the query execution.\\r\\nIn other words, `toscalar()` function cannot be applied on row-level of (for-each-row scenario).","The following query evaluates `Start`, `End` and `Step` as scalar constants - and\\r\\nuse it for `range` evaluation. \\r\\n\\r\\n\\r\\n```\\r\\nlet Start = toscalar(range x from 1 to 1 step 1); \\r\\nlet End = toscalar(range x from 1 to 9 step 1 | count); \\r\\nlet Step = toscalar(2);\\r\\nrange z from Start to End step Step | extend start=Start, end=End, step=Step\\r\\n```\\r\\n\\r\\n|z|start|end|step|\\r\\n|---|---|---|---|\\r\\n|1|1|9|2|\\r\\n|3|1|9|2|\\r\\n|5|1|9|2|\\r\\n|7|1|9|2|\\r\\n|9|1|9|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toscalarfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"tostring","Converts input to a string representation.",\'tostring(123) == "123"\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`tostring(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to string. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf *Expr* value is non-null result will be a string representation of *Expr*.\\r\\nIf *Expr* value is null, result will be empty string.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_tostringfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"totimespan","Converts input to [timespan](./scalar-data-types/timespan.md) scalar.",\'totimespan("0.00:01:00") == time(1min)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`totimespan(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be converted to [timespan](./scalar-data-types/timespan.md). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nIf conversion is successful, result will be a [timespan](./scalar-data-types/timespan.md) value.\\r\\nIf conversion is not successful, result will be null.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_totimespanfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"toupper","Converts a string to upper case.",\'toupper("hello") == "HELLO"\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_toupperfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"translate","Replaces a set of characters (\'searchList\') with another set of characters (\'replacementList\') in a given a string.\\r\\nThe function searches for characters in the \'searchList\' and replaces them with the corresponding characters in \'replacementList\'","**Syntax**\\r\\n\\r\\n`translate(`*searchList*`,` *replacementList*,` *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *searchList*: The list of characters that should be replaced\\r\\n* *replacementList*: The list of characters that should replace the characters in \'searchList\'\\r\\n* *text*: A string to search\\r\\n\\r\\n**Returns**\\r\\n\\r\\n*text* after replacing all ocurrences of characters in \'replacementList\' with the corresponding characters in \'searchList\'",\'|||\\r\\n|---|---\\r\\n|`translate("abc", "x", "abc")`| "xxx" \\r\\n|`translate("abc", "", "ab")`| ""\\r\\n|`translate("krasp", "otsku", "spark")`| "kusto"\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_translatefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"treepath","Enumerates all the path expressions that identify leaves in a dynamic object.","`treepath(`*dynamic object*`)`\\r\\n\\r\\n**Returns**\\r\\n\\r\\nAn array of path expressions.",\'|Expression|Evaluates to|\\r\\n|---|---|\\r\\n|`treepath(parsejson(\\\'{"a":"b", "c":123}\\\'))` | `["[\\\'a\\\']","[\\\'c\\\']"]`|\\r\\n|`treepath(parsejson(\\\'{"prop1":[1,2,3,4], "prop2":"value2"}\\\'))`|`["[\\\'prop1\\\']","[\\\'prop1\\\'][0]","[\\\'prop2\\\']"]`|\\r\\n|`treepath(parsejson(\\\'{"listProperty":[100,200,300,"abcde",{"x":"y"}]}\\\'))`|`["[\\\'listProperty\\\']","[\\\'listProperty\\\'][0]","[\\\'listProperty\\\'][0][\\\'x\\\']"]`|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_treepathfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim","Removes all leading and trailing matches of the specified regular expression.","**Syntax**\\r\\n\\r\\n`trim(`*regex*`,` *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the beginning and/or the end of *text*. \\r\\n* *text*: A string.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n*text* after trimming matches of *regex* found in the beginning and/or the end of *text*.",\'Statement bellow trims *substring* from the start and the end of the *string_to_trim*:\\r\\n\\r\\n\\r\\n```\\r\\nlet string_to_trim = @"--http://bing.com--";\\r\\nlet substring = "--";\\r\\nrange x from 1 to 1 step 1\\r\\n| project string_to_trim = string_to_trim, trimmed_string = trim(substring,string_to_trim)\\r\\n```\\r\\n\\r\\n|string_to_trim|trimmed_string|\\r\\n|---|---|\\r\\n|--http://bing.com--|http://bing.com|\\r\\n\\r\\nNext statement trims all non-word characters from start and end of the string:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 5 step 1\\r\\n| project str = strcat("- ","Te st",x,@"// $")\\r\\n| extend trimmed_str = trim(@"[^\\\\w]+",str)\\r\\n```\\r\\n\\r\\n|str|trimmed_str|\\r\\n|---|---|\\r\\n|- Te st1// $|Te st1|\\r\\n|- Te st2// $|Te st2|\\r\\n|- Te st3// $|Te st3|\\r\\n|- Te st4// $|Te st4|\\r\\n|- Te st5// $|Te st5|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim_end","Removes trailing match of the specified regular expression.","**Syntax**\\r\\n\\r\\n`trim_end(`*regex*`,` *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the end of *text*. \\r\\n* *text*: A string.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n*text* after trimming matches of *regex* found in the end of *text*.",\'Statement bellow trims *substring* from the end of *string_to_trim*:\\r\\n\\r\\n\\r\\n```\\r\\nlet string_to_trim = @"bing.com";\\r\\nlet substring = ".com";\\r\\nrange x from 1 to 1 step 1\\r\\n| project string_to_trim = string_to_trim,trimmed_string = trim_end(substring,string_to_trim)\\r\\n```\\r\\n\\r\\n|string_to_trim|trimmed_string|\\r\\n|---|---|\\r\\n|bing.com|bing|\\r\\n\\r\\nNext statement trims all non-word characters from the end of the string:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 5 step 1\\r\\n| project str = strcat("- ","Te st",x,@"// $")\\r\\n| extend trimmed_str = trim_end(@"[^\\\\w]+",str)\\r\\n```\\r\\n\\r\\n|str|trimmed_str|\\r\\n|---|---|\\r\\n|- Te st1// $|- Te st1|\\r\\n|- Te st2// $|- Te st2|\\r\\n|- Te st3// $|- Te st3|\\r\\n|- Te st4// $|- Te st4|\\r\\n|- Te st5// $|- Te st5|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimendfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"trim_start","Removes leading match of the specified regular expression.","**Syntax**\\r\\n\\r\\n`trim_start(`*regex*`,` *text*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *regex*: String or [regular expression](query_language_re2.md) to be trimmed from the beginning of *text*. \\r\\n* *text*: A string.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n*text* after trimming match of *regex* found in the beginning of *text*.",\'Statement bellow trims *substring* from the start of *string_to_trim*:\\r\\n\\r\\n\\r\\n```\\r\\nlet string_to_trim = @"http://bing.com";\\r\\nlet substring = "http://";\\r\\nrange x from 1 to 1 step 1\\r\\n| project string_to_trim = string_to_trim,trimmed_string = trim_start(substring,string_to_trim)\\r\\n```\\r\\n\\r\\n|string_to_trim|trimmed_string|\\r\\n|---|---|\\r\\n|http://bing.com|bing.com|\\r\\n\\r\\nNext statement trims all non-word characters from the beginning of the string:\\r\\n\\r\\n\\r\\n```\\r\\nrange x from 1 to 5 step 1\\r\\n| project str = strcat("- ","Te st",x,@"// $")\\r\\n| extend trimmed_str = trim_start(@"[^\\\\w]+",str)\\r\\n```\\r\\n\\r\\n|str|trimmed_str|\\r\\n|---|---|\\r\\n|- Te st1// $|Te st1// $|\\r\\n|- Te st2// $|Te st2// $|\\r\\n|- Te st3// $|Te st3// $|\\r\\n|- Te st4// $|Te st4// $|\\r\\n|- Te st5// $|Te st5// $|\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_trimstartfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"union","Takes two or more tables and returns the rows of all of them.",\'```\\r\\nTable1 | union Table2, Table3\\r\\n```\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| union` [`kind=` `inner`|`outer`] [`withsource=`*ColumnName*] [`isfuzzy=` `true`|`false`] *Table* [`,` *Table*]... \\r\\n\\r\\nAlternative form with no piped input:\\r\\n\\r\\n`union` [`kind=` `inner`|`outer`] [`withsource=`*ColumnName*] [`isfuzzy=` `true`|`false`] *Table* [`,` *Table*]... \\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `Table`:\\r\\n * The name of a table, such as `Events`; or\\r\\n * A query expression that must be enclosed with parenthesis, such as `(Events | where id==42)` or `(cluster("https://help.kusto.windows.net:443").database("Samples").table("*"))`\\r\\n * A set of tables specified with a wildcard. For example, `E*` would form the union of all the tables in the database whose names begin `E`.\\r\\n* `kind`: \\r\\n * `inner` - The result has the subset of columns that are common to all of the input tables.\\r\\n * `outer` - The result has all the columns that occur in any of the inputs. Cells that were not defined by an input row are set to `null`.\\r\\n* `withsource`=*ColumnName*: If specified, the output will include a column\\r\\ncalled *ColumnName* whose value indicates which source table has contributed each row.\\r\\nIf the query effectively (after wildcard matching) references tables from more than one database (default database always counts) the value of this column will have a table name qualified with the database.\\r\\nSimilarly __cluster and database__ qualifications will be present in the value if more than one cluster is referenced. \\r\\n* `isfuzzy=` `true` | `false`: If `isfuzzy` is set to `true` - allows fuzzy resolution of union legs. `Fuzzy` means that query execution will continue even if the underlying table or view reference is not present, yielding a warning in the query status results (one for each missing reference). At least one successful union leg must exists; if no resolutions were successful - query will return an error.\\r\\nThe default is `isfuzzy=` `false`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nA table with as many rows as there are in all the input tables.\\r\\n\\r\\n**Notes**\\r\\n1. `union` scope can include [let statements](./query_language_letstatement.md) if those are \\r\\nattributed with [view keyword](./query_language_letstatement.md)\\r\\n2. `union` scope will not include [functions](../controlCommands/controlcommands_functions.md). To include \\r\\nfunction in the union scope - define a [let statement](./query_language_letstatement.md) \\r\\nwith [view keyword](./query_language_letstatement.md)\\r\\n3. If the `union` input is [tables](../controlCommands/controlcommands_tables.md) (as oppose to [tabular expressions](./query_language_findoperator.md)), and the `union` is followed by a [where operator](./query_language_whereoperator.md), consider replacing both with [find](./query_language_syntax.md) for better performance. Please note the different [output schema](./query_language_findoperator.md#output-schema) produced by the `find` operator.\',"```\\r\\nunion K* | where * has \\"Kusto\\"\\r\\n```\\r\\n\\r\\nRows from all tables in the database whose name starts with `K`, and in which any column includes the word `Kusto`.\\r\\n\\r\\n**Example**\\r\\n\\r\\n\\r\\n```\\r\\nunion withsource=SourceTable kind=outer Query, Command\\r\\n| where Timestamp > ago(1d)\\r\\n| summarize dcount(UserId)\\r\\n```\\r\\n\\r\\nThe number of distinct users that have produced\\r\\neither a `Query` event or a `Command` event over the past day. In the result, the \'SourceTable\' column will indicate either \\"Query\\" or \\"Command\\".\\r\\n\\r\\n\\r\\n```\\r\\nQuery\\r\\n| where Timestamp > ago(1d)\\r\\n| union withsource=SourceTable kind=outer \\r\\n (Command | where Timestamp > ago(1d))\\r\\n| summarize dcount(UserId)\\r\\n```\\r\\n\\r\\nThis more efficient version produces the same result. It filters each table before creating the union.\\r\\n\\r\\n**Example: Using `isfuzzy=true`**\\r\\n \\r\\n\\r\\n``` \\r\\n// Using union isfuzzy=true to access non-existing view: \\r\\nlet View_1 = view () { range x from 1 to 1 step 1 };\\r\\nlet View_2 = view () { range x from 1 to 1 step 1 };\\r\\nlet OtherView_1 = view () { range x from 1 to 1 step 1 };\\r\\nunion isfuzzy=true\\r\\n(View_1 | where x > 0), \\r\\n(View_2 | where x > 0),\\r\\n(View_3 | where x > 0)\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|2|\\r\\n\\r\\nObserving Query Status - the following warning returned:\\r\\n`Failed to resolve entity \'View_3\'`\\r\\n\\r\\n\\r\\n```\\r\\n// Using union isfuzzy=true and wildcard access:\\r\\nlet View_1 = view () { range x from 1 to 1 step 1 };\\r\\nlet View_2 = view () { range x from 1 to 1 step 1 };\\r\\nlet OtherView_1 = view () { range x from 1 to 1 step 1 };\\r\\nunion isfuzzy=true View*, SomeView*, OtherView*\\r\\n| count \\r\\n```\\r\\n\\r\\n|Count|\\r\\n|---|\\r\\n|3|\\r\\n\\r\\nObserving Query Status - the following warning returned:\\r\\n`Failed to resolve entity \'SomeView*\'`","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_unionoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"url_decode","The function converts encoded URL into a to regular URL representation.","Detailed information about URL decoding and encoding can be found [here](https://en.wikipedia.org/wiki/Percent-encoding).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`url_decode(`*encoded url*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *encoded url*: encoded URL (string). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nURL (string) in a regular representation.","```\\r\\nlet url = @\'https%3a%2f%2fwww.bing.com%2f\';\\r\\nprint original = url, decoded = url_decode(url)\\r\\n```\\r\\n\\r\\n|original|decoded|\\r\\n|---|---|\\r\\n|https%3a%2f%2fwww.bing.com%2f|https://www.bing.com/|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_urldecodefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"url_encode","The function converts characters of the input URL into a format that can be transmitted over the Internet.","Detailed information about URL encoding and decoding can be found [here](https://en.wikipedia.org/wiki/Percent-encoding).\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`url_encode(`*url*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *url*: input URL (string). \\r\\n\\r\\n**Returns**\\r\\n\\r\\nURL (string) converted into a format that can be transmitted over the Internet.","```\\r\\nlet url = @\'https://www.bing.com/\';\\r\\nprint original = url, encoded = url_encode(url)\\r\\n```\\r\\n\\r\\n|original|encoded|\\r\\n|---|---|\\r\\n|https://www.bing.com/|https%3a%2f%2fwww.bing.com%2f|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_urlencodefunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"variance","Calculates the variance of *Expr* across the group, considering the group as a [sample](https://en.wikipedia.org/wiki/Sample_%28statistics%29).","* Used formula:\\r\\n![](./images/aggregations/variance_sample.png)\\r\\n\\r\\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `variance(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe variance value of *Expr* across the group.","```\\r\\nrange x from 1 to 5 step 1\\r\\n| summarize makelist(x), variance(x) \\r\\n```\\r\\n\\r\\n|list_x|variance_x|\\r\\n|---|---|\\r\\n|[ 1, 2, 3, 4, 5]|2.5|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_variance_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"varianceif","Calculates the [variance](query_language_variance_aggfunction.md) of *Expr* across the group for which *Predicate* evaluates to `true`.","* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `varianceif(`*Expr*`, `*Predicate*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n* *Predicate*: predicate that if true, the *Expr* calculated value will be added to the variance.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe variance value of *Expr* across the group where *Predicate* evaluates to `true`.","```\\r\\nrange x from 1 to 100 step 1\\r\\n| summarize varianceif(x, x%2 == 0)\\r\\n\\r\\n```\\r\\n\\r\\n|varianceif_x|\\r\\n|---|\\r\\n|850|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_varianceif_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"variancep","Calculates the variance of *Expr* across the group, considering the group as a [population](https://en.wikipedia.org/wiki/Statistical_population).","* Used formula:\\r\\n![](./images/aggregations/variance_population.png)\\r\\n\\r\\n* Can be used only in context of aggregation inside [summarize](query_language_summarizeoperator.md)\\r\\n\\r\\n**Syntax**\\r\\n\\r\\nsummarize `variancep(`*Expr*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *Expr*: Expression that will be used for aggregation calculation. \\r\\n\\r\\n**Returns**\\r\\n\\r\\nThe variance value of *Expr* across the group.","```\\r\\nrange x from 1 to 5 step 1\\r\\n| summarize makelist(x), variancep(x) \\r\\n```\\r\\n\\r\\n|list_x|variance_x|\\r\\n|---|---|\\r\\n|[ 1, 2, 3, 4, 5]|2|","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_variancep_aggfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"weekofyear","Retunrs the integer number represents the week number.",\'Aligned with ISO 8601 standards, where first day of the week is Sunday.\\r\\n\\r\\n weekofyear(datetime("2015-12-14"))\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`weekofyear(`*a_date*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* `a_date`: A `datetime`.\\r\\n\\r\\n**Returns**\\r\\n\\r\\n`week number` - The week number that contains the given date.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_weekofyearfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"welch_test","Computes the p_value of the [Welch-test function](https://en.wikipedia.org/wiki/Welch%27s_t-test)",\'```\\r\\n// s1, s2 values are from https://en.wikipedia.org/wiki/Welch%27s_t-test\\r\\nrange r from 1 to 1 step 1\\r\\n| extend s1 = dynamic([27.5, 21.0, 19.0, 23.6, 17.0, 17.9, 16.9, 20.1, 21.9, 22.6, 23.1, 19.6, 19.0, 21.7, 21.4]),\\r\\n s2 = dynamic([27.1, 22.0, 20.8, 23.4, 23.4, 23.5, 25.8, 22.0, 24.8, 20.2, 21.9, 22.1, 22.9, 20.5, 24.4])\\r\\n| mvexpand s1 to typeof(double), s2 to typeof(double)\\r\\n| summarize m1=avg(s1), v1=variance(s1), c1=count(), m2=avg(s2), v2=variance(s2), c2=count()\\r\\n| extend pValue=welch_test(m1,v1,c1,m2,v2,c2)\\r\\n\\r\\n// pValue = 0.021\\r\\n```\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n`welch_test(`*mean1*`, `*variance1*`, `*count1*`, `*mean2*`, `*variance2*`, `*count2*`)`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *mean1*: Expression that represents the mean (average) value of the 1st series\\r\\n* *variance1*: Expression that represents the variance value of the 1st series\\r\\n* *count1*: Expression that represents the count of values in the 1st series\\r\\n* *mean2*: Expression that represents the mean (average) value of the 2nd series\\r\\n* *variance2*: Expression that represents the variance value of the 2nd series\\r\\n* *count2*: Expression that represents the count of values in the 2nd series\\r\\n\\r\\n**Returns**\\r\\n\\r\\nFrom [Wikipedia](https://en.wikipedia.org/wiki/Welch%27s_t-test):\\r\\n\\r\\nIn statistics, Welch\\\'s t-test, or unequal variances t-test, is a two-sample location test \\r\\nwhich is used to test the hypothesis that two populations have equal means. Welch\\\'s t-test \\r\\nis an adaptation of Student\\\'s t-test, that is, it has been derived with the help of Student\\\'s \\r\\nt-test and is more reliable when the two samples have unequal variances and unequal sample\\r\\nsizes. These tests are often referred to as "unpaired" or "independent samples" t-tests, \\r\\nas they are typically applied when the statistical units underlying the two samples\\r\\nbeing compared are non-overlapping. Given that Welch\\\'s t-test has been less popular than \\r\\nStudent\\\'s t-test and may be less familiar to readers, a more informative name is "Welch\\\'s \\r\\nunequal variances t-test" or "unequal variances t-test" for brevity.\',"","https://kusto.azurewebsites.net/docs/queryLanguage/query_language_welch_testfunction.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.OperatorToken,"where","Filters a table to the subset of rows that satisfy a predicate."," T | where fruit==\\"apple\\"\\r\\n\\r\\n**Alias** `filter`\\r\\n\\r\\n**Syntax**\\r\\n\\r\\n*T* `| where` *Predicate*\\r\\n\\r\\n**Arguments**\\r\\n\\r\\n* *T*: The tabular input whose records are to be filtered.\\r\\n* *Predicate*: A `boolean` [expression](./scalar-data-types/bool.md) over the columns of *T*. It is evaluated for each row in *T*.\\r\\n\\r\\n**Returns**\\r\\n\\r\\nRows in *T* for which *Predicate* is `true`.\\r\\n\\r\\n**Notes**\\r\\nNull values: all filtering functions return false when compared with null values. \\r\\nYou can use special null-aware functions to write queries that take null values into account:\\r\\n[isnull()](./query_language_isnullfunction.md),\\r\\n[isnotnull()](./query_language_isnotnullfunction.md),\\r\\n[isempty()](./query_language_isemptyfunction.md),\\r\\n[isnotempty()](./query_language_isnotemptyfunction.md). \\r\\n\\r\\n**Tips**\\r\\n\\r\\nTo get the fastest performance:\\r\\n\\r\\n* **Use simple comparisons** between column names and constants. (\'Constant\' means constant over the table - so `now()` and `ago()` are OK, and so are scalar values assigned using a [`let` statement](./query_language_letstatement.md).)\\r\\n\\r\\n For example, prefer `where Timestamp >= ago(1d)` to `where floor(Timestamp, 1d) == ago(1d)`.\\r\\n\\r\\n* **Simplest terms first**: If you have multiple clauses conjoined with `and`, put first the clauses that involve just one column. So `Timestamp > ago(1d) and OpId == EventId` is better than the other way around.\\r\\n\\r\\n[See here](./concepts_datatypes_string_operators.md) for a summary of available string operators.\\r\\n\\r\\n[See here](./concepts_numoperators.md) for a summary of available numeric operators.",\'```\\r\\nTraces\\r\\n| where Timestamp > ago(1h)\\r\\n and Source == "Kuskus"\\r\\n and ActivityId == SubActivityId \\r\\n```\\r\\n\\r\\nRecords that are no older than 1 hour,\\r\\nand come from the Source called "Kuskus", and have two columns of the same value. \\r\\n\\r\\nNotice that we put the comparison between two columns last, as it can\\\'t utilize the index and forces a scan.\\r\\n\\r\\n**Example**\\r\\n\\r\\n\\r\\n```\\r\\nTraces | where * has "Kusto"\\r\\n```\\r\\n\\r\\nAll the rows in which the word "Kusto" appears in any column.\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_whereoperator.html")),this.AddTopic(new Kusto.Data.IntelliSense.CslTopicDocumentation(Kusto.Data.IntelliSense.CslCommandToken.Kind.FunctionNameToken,"zip","The `zip` function accepts any number of `dynamic` arrays, and returns an\\r\\narray whose elements are each an array holding the elements of the input\\r\\narrays of the same index.","**Syntax**\\r\\n\\r\\n`zip(`*array1*`,` *array2*`, ... )`\\r\\n\\r\\n**Arguments**\\r\\n\\r\\nBetween 2 and 16 dynamic arrays.",\'The following example returns `[[1,2],[3,4],[5,6]]`:\\r\\n\\r\\n\\r\\n```\\r\\nT \\r\\n| zip([1,3,5], [2,4,6])\\r\\n```\\r\\n\\r\\nThe following example returns `[["A",{}], [1,"B"], [1.5, null]]`:\\r\\n\\r\\n\\r\\n```\\r\\nT \\r\\n| zip(["A", 1, 1.5], [{}, "B"])\\r\\n```\',"https://kusto.azurewebsites.net/docs/queryLanguage/query_language_zipfunction.html")))}}}),Bridge.ns("Kusto.Data.IntelliSense.CslDocumentation",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslDocumentation,{f1:function(e){return e.value}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase",{statics:{fields:{CommonRegexOptions:0,DefaultRegexOptions:0,s_isCommandRegex:null,s_firstWordAfterPipeRegex:null},ctors:{init:function(){this.CommonRegexOptions=16,this.DefaultRegexOptions=0,this.s_isCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_firstWordAfterPipeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*(?[\\\\w\\\\-]+)\\\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)}},methods:{FindRules:function(e,t,n,i,r){var s;s=Bridge.getEnumerator(e);try{for(;s.moveNext();){var a=s.Current;if((!(null!=a.RequiredKeywords&&a.RequiredKeywords.Count>0)||(a.RequiresFullCommand?Bridge.global.System.Linq.Enumerable.from(a.RequiredKeywords).any(function(e){return Bridge.global.System.String.contains(t,e)}):!Bridge.global.System.String.isNullOrEmpty(r)&&a.RequiredKeywords.contains(r)))&&a.IsMatch(n,a.RequiresFullCommand?t:i))return a}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}return null},FindLastStatement:function(e){return Bridge.global.System.String.isNullOrEmpty(e)?"":Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.ParseAsStatements(e,59,!1)).lastOrDefault(null,null)},ParseAsStatements:function(e,t,n){var i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);if(Bridge.global.System.String.isNullOrEmpty(e))return i;for(var r=0,s=Bridge.global.System.String.toCharArray(e,0,e.length),a=0;a0&&i.add(e.substr(r,u)),r=a+1|0}}return i},SkipToBalancedChar:function(e,t,n,i){for(var r=t;r1&&(t.v="|"+(r||"")),Bridge.global.System.String.isNullOrEmpty(r)?n.v="":n.v=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.GetFirstWordAfterPipe(r)},GetFirstWordAfterPipe:function(e){return Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_firstWordAfterPipeRegex.match(e).getGroups().getByName("FirstWord").toString()}}},props:{Locker:null,GeneralRules:null,CommandRules:null,QueryParametersRules:null,DefaultRule:null,CommandToolTips:null,ContextConnection:null},ctors:{ctor:function(){this.$initialize(),this.Locker={}}},methods:{TryMatchAnyRule:function(e,t){var n,i,r=this.AnalyzeCommand$1(e,null),s=r.Context,a={},l={};Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.GetApproximateCommandLastPart(r.Command,l,a);var o=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_isCommandRegex.isMatch(e);if(t.v=null,o){Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for commands rules"),n=Bridge.getEnumerator(this.CommandRules);try{for(;n.moveNext();){var u=n.Current;if(u.IsMatch(s,u.RequiresFullCommand?e:l.v)){t.v=u;break}}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}if(null==t.v&&(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for general rules"),t.v=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.FindRules(this.GeneralRules,e,s,l.v,a.v)),null==t.v){Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: start matching rules for query parameters rules"),i=Bridge.getEnumerator(this.QueryParametersRules);try{for(;i.moveNext();){var d=i.Current;if(d.IsMatch(s,d.RequiresFullCommand?e:l.v)){t.v=d;break}}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}}return null!=t.v&&t.v.IsContextual?(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: rule {0} was found",[Bridge.box(t.v.Kind,Bridge.global.System.Int32)]),this.UpdateProviderAvailableEntities(e,s),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: Entities were updated",[Bridge.box(t.v.Kind,Bridge.global.System.Int32)])):Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer.Tracer.TraceVerbose("TryMatchAnyRule: no rule was found"),null!=t.v},TryMatchSpecificRule:function(e,t,n,i){return i.v=null,Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.s_isCommandRegex.isMatch(e)&&(i.v=Bridge.global.System.Linq.Enumerable.from(this.CommandRules).firstOrDefault(function(i){return i.Kind===n&&i.IsMatch(t,e)},null)),null==i.v&&(i.v=Bridge.global.System.Linq.Enumerable.from(this.GeneralRules).firstOrDefault(function(i){return i.Kind===n&&i.IsMatch(t,e)},null)),null!=i.v&&i.v.IsContextual&&this.UpdateProviderAvailableEntities(e,t),null!=i.v},SetQueryParametersRule:function(e){},Initialize:function(){this.CommandRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor),this.GeneralRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor),this.CommandToolTips=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTip).ctor),this.QueryParametersRules=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseRule).ctor)}}}),Bridge.define("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult",{$kind:"nested enum",statics:{fields:{None:0,AppendEntities:1,ReplaceEntities:2}}}),Bridge.define("Kusto.Data.IntelliSense.CslTopicDocumentation",{props:{TokenKind:0,Name:null,ShortDescription:null,LongDescription:null,Examples:null,Url:null},ctors:{ctor:function(e,t,n,i,r,s){void 0===s&&(s=null),this.$initialize(),this.TokenKind=e,this.Name=t,this.ShortDescription=n,this.LongDescription=i,this.Examples=r,this.Url=s}},methods:{GetMarkDownText:function(){var e,t=new Bridge.global.System.Text.StringBuilder;t.appendFormat(Bridge.global.System.String.format("## [{0}]({1})",this.Name,this.Url)),t.appendLine(),t.appendLine(),e=Bridge.getEnumerator(Bridge.global.System.Array.init([this.ShortDescription,this.LongDescription,this.Examples],Bridge.global.System.String));try{for(;e.moveNext();){var n=e.Current;Bridge.global.System.String.isNullOrEmpty(n)||(t.appendLine(n),t.appendLine())}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}return t.toString()},equals:function(e){if(null==e)return!1;var t=Bridge.as(e,Kusto.Data.IntelliSense.CslTopicDocumentation);return null!=t&&this.TokenKind===t.TokenKind&&Bridge.referenceEquals(this.Name,t.Name)&&Bridge.referenceEquals(this.ShortDescription,t.ShortDescription)&&Bridge.referenceEquals(this.Examples,t.Examples)},getHashCode:function(){var e,t,n,i;return Bridge.getHashCode(this.TokenKind)^Bridge.getHashCode(this.Name)^(null!=(e=null!=(t=this.ShortDescription)?Bridge.getHashCode(t):null)?e:0)^(null!=(n=null!=(i=this.Examples)?Bridge.getHashCode(i):null)?n:0)}}}),Bridge.define("Kusto.Data.IntelliSense.EntityDataType",{$kind:"enum",statics:{fields:{Empty:0,Object:1,DBNull:2,Boolean:3,Char:4,SByte:5,Byte:6,Int16:7,UInt16:8,Int32:9,UInt32:10,Int64:11,UInt64:12,Single:13,Double:14,Decimal:15,DateTime:16,String:18,Dynamic:19,TimeSpan:20}}}),Bridge.define("Kusto.Data.IntelliSense.EntityDataTypeConverter",{statics:{methods:{FromType:function(e){var t={v:Kusto.Data.IntelliSense.EntityDataType.String};return Bridge.global.System.Enum.tryParse(Bridge.global.Kusto.Data.IntelliSense.EntityDataType,e,t)||Bridge.referenceEquals(e,"Guid")&&(t.v=Kusto.Data.IntelliSense.EntityDataType.String),t.v}}}}),Bridge.define("Kusto.Data.IntelliSense.ExpressionEntity",{fields:{Operator:null,Name:null,Arguments:null,IsGenerated:!1},ctors:{init:function(){this.IsGenerated=!1}},methods:{FirstArgument:function(){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.Arguments)?Bridge.global.System.Linq.Enumerable.from(this.Arguments).first():""}}}),Bridge.define("Kusto.Data.IntelliSense.ExpressionEntityParser",{statics:{methods:{ParseEntities:function(e){return Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,e,Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntityExpression)},ParseEntities$1:function(e,t){return Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,e,Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntityExpression,t)},ParseEntitiesList:function(e,t,n,i){void 0===i&&(i=null);var r=new(Bridge.global.System.Collections.Generic.List$1(e).ctor);if(Bridge.global.System.String.isNullOrWhiteSpace(t))return r;for(var s=0,a=Bridge.global.System.String.toCharArray(t,0,t.length),l=0,o={v:0},u=-1,d=0;d=t.length?t.substr(i):t.substr(i,a);var o=s(l=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(l));n.AddRange(o)}},UnescapeEntityName:function(e){return e=e.trim(),e=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedSquareBrackets(e),Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedSingleAndDoubleQuotes(e)},NormalizeEntityName:function(e){if(Bridge.global.System.String.isNullOrEmpty(e))return"";if(!Bridge.global.System.Linq.Enumerable.from(e).contains(46)&&!Bridge.global.System.Linq.Enumerable.from(e).contains(91))return e;for(var t=new Bridge.global.System.Text.StringBuilder,n=Bridge.global.System.String.toCharArray(e,0,e.length),i=0,r=0;r0&&(r<0||i=0&&(t=t.substr(0,a));var l=Kusto.Data.IntelliSense.ExpressionEntityParser.NormalizeEntityName(t.trim());return Bridge.global.System.Array.init([(n=new Kusto.Data.IntelliSense.ExpressionEntity,n.Name=l,n)],Kusto.Data.IntelliSense.ExpressionEntity)}if(0===r){var o=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(t),u=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.System.String,o,e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f1);return Bridge.global.System.Linq.Enumerable.from(u).select(e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f2)}var d=t.substr(0,r).trim(),g=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(t.substr(r)),c=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntitiesList(Bridge.global.System.String,g,e.$.Kusto.Data.IntelliSense.ExpressionEntityParser.f1),m=((n=new Kusto.Data.IntelliSense.ExpressionEntity).Operator=d,n);return Bridge.global.System.Linq.Enumerable.from(c).any()&&(m.Name=Kusto.Cloud.Platform.Utils.ExtendedString.TrimBalancedRoundBrackets(c.getItem(0)),m.Arguments=Bridge.global.System.Linq.Enumerable.from(c).skip(1).ToArray(Bridge.global.System.String)),Bridge.global.System.Array.init([m],Kusto.Data.IntelliSense.ExpressionEntity)},IndexOfClosingBracket:function(e,t,n){for(var i=n;i{0}(
{1})",this.Name,t)}else this.m_signature=(this.Name||"")+"()";return this.m_signature}},Summary:null,Usage:null,NameSuffix:null,Parameters:null},methods:{GetSignatureWithBoldParameter:function(t){var n,i;if(null!=this.Parameters&&Bridge.global.System.Linq.Enumerable.from(this.Parameters).any())if(Bridge.global.System.Linq.Enumerable.from(this.Parameters).count()>t){var r=Bridge.global.System.Array.init([Bridge.global.System.String.format("{0}",[(n=Bridge.global.System.Linq.Enumerable.from(this.Parameters).ToArray())[Bridge.global.System.Array.index(t,n)].PlainSignature])],Bridge.global.System.String),s=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(this.Parameters).take(t).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2).concat(r).concat(Bridge.global.System.Linq.Enumerable.from(this.Parameters).skip(t+1|0).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2))).join(", ");i=Bridge.global.System.String.format(\'{0}({1})\',this.Name,s)}else{var a=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(this.Parameters).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f2)).join(", ");i=Bridge.global.System.String.format(\'{0}({1})\',this.Name,a)}else i=null!=this.NameSuffix?(this.Name||"")+(this.NameSuffix||""):(this.Name||"")+"()";return i},Clone:function(){var t,n=null!=this.Parameters&&Bridge.global.System.Linq.Enumerable.from(this.Parameters).any()?Bridge.global.System.Linq.Enumerable.from(this.Parameters).select(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip.f3).ToArray(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter):null;return(t=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name=this.Name,t.NameSuffix=this.NameSuffix,t.Parameters=n,t.Summary=this.Summary,t.Usage=this.Usage,t}}}),Bridge.ns("Kusto.Data.IntelliSense.IntelliSenseCommandTip",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.IntelliSenseCommandTip,{f1:function(e){return e.Singature},f2:function(e){return e.PlainSignature},f3:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter",{props:{Name:null,Description:null,DataType:null,Optional:!1,IsArgsArray:!1,Singature:{get:function(){return this.IsArgsArray?"...":Bridge.global.System.String.format("{0}{1} {2}",this.Optional?"[?] ":"",this.DataType,this.Name)}},PlainSignature:{get:function(){return this.IsArgsArray?"...":Bridge.global.System.String.format(\'{0}{1} {2}\',this.Optional?"[?] ":"",this.DataType,this.Name)}}},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType=this.DataType,e.Description=this.Description,e.IsArgsArray=this.IsArgsArray,e.Name=this.Name,e.Optional=this.Optional,e}}}),Bridge.define("Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer",{$kind:"nested class",statics:{fields:{Tracer:null},ctors:{init:function(){this.Tracer=new Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.PrivateTracer}}},methods:{TraceVerbose:function(e,t){void 0===t&&(t=[])}}}),Bridge.define("Kusto.Data.IntelliSense.KustoCommandContext",{inherits:function(){return[Bridge.global.System.IEquatable$1(Kusto.Data.IntelliSense.KustoCommandContext)]},statics:{fields:{Empty:null},ctors:{init:function(){this.Empty=new Kusto.Data.IntelliSense.KustoCommandContext("")}}},props:{Context:null,Operation:0},alias:["equalsT","Bridge.global.System$IEquatable$1$Kusto$Data$IntelliSense$KustoCommandContext$equalsT"],ctors:{ctor:function(e,t){void 0===t&&(t=0),this.$initialize(),this.Context=e,this.Operation=t}},methods:{equalsT:function(e){return null!=e&&Bridge.global.System.String.equals(e.Context,this.Context)&&e.Operation===this.Operation},getHashCode:function(){return Bridge.getHashCode(this.Context)^Bridge.getHashCode(this.Operation)},Flatten:function(){return Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.String.split(this.Context,Bridge.global.System.Array.init([44],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1)).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.KustoCommandContext.f1)).ToArray(Kusto.Data.IntelliSense.KustoCommandContext)},IsEmpty:function(){return Bridge.global.System.String.isNullOrEmpty(this.Context)}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoCommandContext",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoCommandContext,{f1:function(e){return new Kusto.Data.IntelliSense.KustoCommandContext(e.trim(),this.Operation)}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseAccountEntity",{props:{Name:null}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity",{props:{ConnectionString:null,Alias:null,Databases:null,Plugins:null},methods:{Clone:function(){var t,n,i;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity).ConnectionString=this.ConnectionString,t.Alias=this.Alias,t.Databases=null!=(n=this.Databases)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity):null,t.Plugins=null!=(i=this.Plugins)?Bridge.global.System.Linq.Enumerable.from(i).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity.f2).ToArray(Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity):null,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseClusterEntity,{f1:function(e){return e.Clone()},f2:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity",{props:{Name:null,TypeCode:0},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity).Name=this.Name,e.TypeCode=this.TypeCode,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity",{props:{Name:null,Alias:null,Tables:null,Functions:null,IsInitialized:!1},methods:{Clone:function(){var t,n,i;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity).Name=this.Name,t.Alias=this.Alias,t.Tables=null!=(n=this.Tables)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity):null,t.Functions=null!=(i=this.Functions)?Bridge.global.System.Linq.Enumerable.from(i).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity.f2).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity):null,t.IsInitialized=this.IsInitialized,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,{f1:function(e){return e.Clone()},f2:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity",{props:{Name:null,CallName:null,Expression:null},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSenseFunctionEntity).Name=this.Name,e.CallName=this.CallName,e.Expression=this.Expression,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity",{props:{Name:null},methods:{Clone:function(){var e;return(e=new Kusto.Data.IntelliSense.KustoIntelliSensePluginEntity).Name=this.Name,e}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema",{props:{Cluster:null,Database:null},ctors:{ctor:function(e,t){this.$initialize(),this.Cluster=e,this.Database=t}},methods:{Clone:function(){return new Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema(null!=this.Cluster?this.Cluster.Clone():null,null!=this.Database?this.Database.Clone():null)}}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseServiceEntity",{props:{Name:null}}),Bridge.define("Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity",{props:{Name:null,IsInvisible:!1,Columns:null},methods:{Clone:function(){var t,n;return(t=new Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity).Name=this.Name,t.Columns=null!=(n=this.Columns)?Bridge.global.System.Linq.Enumerable.from(n).select(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity.f1).ToArray(Kusto.Data.IntelliSense.KustoIntelliSenseColumnEntity):null,t.IsInvisible=this.IsInvisible,t}}}),Bridge.ns("Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity,{f1:function(e){return e.Clone()}}),Bridge.define("Kusto.Data.IntelliSense.OptionKind",{$kind:"enum",statics:{fields:{None:0,Operator:1,Command:2,Service:3,Policy:4,Database:5,Table:6,DataType:7,Literal:8,Parameter:9,IngestionMapping:10,ExpressionFunction:11,Option:12,OptionKind:13,OptionRender:14,Column:15,ColumnString:16,ColumnNumeric:17,ColumnDateTime:18,ColumnTimespan:19,FunctionServerSide:20,FunctionAggregation:21,FunctionFilter:22,FunctionScalar:23,ClientDirective:24}}}),Bridge.define("Kusto.Data.IntelliSense.ParseMode",{$kind:"enum",statics:{fields:{CommandTokensOnly:0,TokenizeAllText:1}}}),Bridge.define("Kusto.Data.IntelliSense.RuleKind",{$kind:"enum",statics:{fields:{None:0,YieldColumnNamesForFilter:1,YieldColumnNamesForProject:2,YieldColumnNamesForProjectAway:3,YieldColumnNamesForProjectRename:4,YieldColumnNamesForJoin:5,YieldKindFlavorsForJoin:6,YieldKindFlavorsForReduceBy:7,YieldColumnNamesForOrdering:8,YieldColumnNamesForTwoParamFunctions:9,YieldColumnNamesForThreeParamFunctions:10,YieldColumnNamesForManyParamFunctions:11,YieldColumnNamesAndFunctionsForExtend:12,YieldColumnNamesForMakeSeries:13,YieldTableNames:14,YieldTableNamesForFindIn:15,YieldRenderOptions:16,YieldRenderKindKeywordOption:17,YieldRenderKindOptions:18,YieldOperatorsAfterPipe:19,YieldStringComparisonOptions:20,YieldNumericComparisonOptions:21,YieldDateTimeOperatorsOptions:22,YieldSummarizeOperatorOptions:23,YieldAscendingDescendingOptions:24,YieldNumericScalarOptions:25,YieldByKeywordOptions:26,YieldWithKeywordOptions:27,YieldStarOption:28,YieldParseTypesKeywordOptions:29,YieldColumnNamesForParse:30,YieldColumnNamesForDiffPatternsPluginSplitParameter:31,YieldParseKeywordKindsOptions:32,YieldRangeFromOptions:33,YieldRangeFromToOptions:34,YieldRangeFromToStepOptions:35,YieldQueryParameters:36,YieldEvaluateOperatorOptions:37,YieldPostJoinOptions:38,YieldPostFindInOptions:39,YieldPostFindOptions:40,YieldTopNestedOfKeywordOption:41,YieldTopNestedOthersOption:42,YieldTopNestedKeywordOption:43,YieldTopHittersKeywordOption:44,YieldTimespanOptions:45,YieldDatabaseNamesOptions:46,YieldClusterNamesOptions:47,YieldDatabaseFunctionOption:48,YieldNullsFirstNullsLastOptions:49,YieldTableNamesForRemoteQueryOptions:50,YieldColumnNamesForRender:51,YieldColumnNamesForFilterInFind:52,YieldColumnNamesForProjectInFind:53,YieldEndOrContinueFindInOptions:54,YieldPostFindInListOptions:55,YieldFindProjectSmartOptions:56,YieldMakeSeriesOperatorOptions:57,YieldMakeSeriesOperatorForDefaultOrOn:58,YieldMakeSeriesOperatorForOn:59,YieldMakeSeriesOperatorForRange:60,YieldMakeSeriesOperatorForBy:61,YieldPostSearchOptions:62,YieldPostSearchKindOptions:63,YieldSearchKindOptions:64,YieldInsideSearchOptions:65,YieldClientDirectivesOptions:66,YieldClientDirective_ConnectOptions:67,Last:68}}}),Bridge.define("Kusto.JavaScript.Client.App",{statics:{methods:{Test:function(){Kusto.UT.IntelliSenseRulesTests.InitializeTestClass();var e=new Kusto.UT.IntelliSenseRulesTests;e.IntelliSenseCommandEntitiesTest(),e.IntelliSenseCommandEntitiesForTablesTest(),e.IntelliSenseCommandEntitiesUsingFunctionsTest(),e.IntelliSenseCommandEntities_FindTest(),e.IntelliSenseCommandEntities_SearchTest(),e.IntelliSenseExtendTest(),e.IntelliSenseFilterTest(),e.IntelliSenseGetCommandContextTest(),e.IntelliSenseJoinTest(),e.IntelliSenseLimitTest(),e.IntelliSenseParseOperator(),e.IntelliSenseProjectAwayTest(),e.IntelliSenseProjectRenameTest(),e.IntelliSenseProjectTest(),e.IntelliSenseQueryParametersTest(),e.IntelliSenseRangeTest(),e.IntelliSenseReduceTest(),e.IntelliSenseRenderTest(),e.IntelliSenseSummarizeTest(),e.IntelliSenseTopTest(),e.IntelliSenseTopNestedTest(),e.IntelliSenseToScalarTest(),e.IntelliSenseTimeKeywordsTest(),e.IntelliSenseEvaluateTest(),e.IntelliSenseClusterTest(),e.IntelliSenseDatabaseTest(),e.IntelliSenseFindTest(),e.IntelliSenseSearchTest(),e.IntelliSenseSampleTest(),e.IntelliSenseSampleDistinctTest(),e.IntelliSenseMakeSeriesTest();var t=new Kusto.UT.IntelliSenseCslCommandParserTests;t.InitializeTestClass(),t.TestCslCommandParserEntities(),Bridge.global.alert("Success")}}}}),Bridge.define("Kusto.UT.AssertStub",{methods:{AreEqual:function(e,t){var n,i;if(!Bridge.referenceEquals(e,t))throw new Bridge.global.System.Exception(Bridge.global.System.String.format("Values do not match: expected=\'{0}\', actual=\'{1}\'",null!=(n=e)?n:"null",null!=(i=t)?i:"null"))},AreEqual$1:function(e,t,n){var i,r;if(!Bridge.referenceEquals(e,t))throw new Bridge.global.System.Exception(Bridge.global.System.String.format("Values do not match: expected=\'{0}\', actual=\'{1}\'\\n{2}",null!=(i=e)?i:"null",null!=(r=t)?r:"null",n))},Fail:function(e){throw new Bridge.global.System.Exception(e)},IsTrue:function(e,t){if(!e)throw new Bridge.global.System.Exception(t)}}}),Bridge.define("Kusto.UT.IntelliSenseCslCommandParserTests",{fields:{Assert:null,m_intelliSenseProvider:null},ctors:{init:function(){this.Assert=new Kusto.UT.AssertStub}},methods:{InitializeTestClass:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),t=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),n=Kusto.UT.IntelliSenseRulesTests.GenerateKustoEntities(e,t),i=new Kusto.Data.IntelliSense.KustoIntelliSenseQuerySchema(n,Bridge.global.System.Linq.Enumerable.from(n.Databases).first());this.m_intelliSenseProvider=new Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.$ctor1(n,i,e,t,void 0,!0,!0)},TestClsCommandsPerttifier:function(){var e,t=Bridge.global.System.Array.init([{Item1:\'let ErrorCounts = (message:string) {\\r\\nErrorCountsByBin(message, 1d)\\r\\n};\\r\\nErrorCounts("Can not perform requested operation on nested resource. Parent resource") | extend error = "parent not found"\',Item2:\'let ErrorCounts = (message:string)\\r\\n{\\r\\n ErrorCountsByBin(message, 1d)\\r\\n};\\r\\nErrorCounts("Can not perform requested operation on nested resource. Parent resource")\\r\\n| extend error = "parent not found"\'},{Item1:"Table\\r\\n//| project ProjectKind, UserId, ProjectType\\r\\n//| join (activeTable) on UserId\\r\\n//| summarize dcount(UserId) by ProjectType\\r\\n//| sort by dcount_UserId asc\\r\\n| count",Item2:"Table\\r\\n//| project ProjectKind, UserId, ProjectType\\r\\n//| join (activeTable) on UserId\\r\\n//| summarize dcount(UserId) by ProjectType\\r\\n//| sort by dcount_UserId asc\\r\\n| count"},{Item1:"Table\\r\\n| join (Table) on Key",Item2:"Table\\r\\n| join\\r\\n(\\r\\n Table\\r\\n)\\r\\non Key"},{Item1:\'PerRequestTable | where MSODS contains "}" | take 1\',Item2:\'PerRequestTable\\r\\n| where MSODS contains "}"\\r\\n| take 1\'},{Item1:"let variable=1;Table | count",Item2:"let variable=1;\\r\\nTable\\r\\n| count"},{Item1:"// comment\\r\\nKustoLogs | where Timestamp > ago(1d) and EventText contains \\"[0]Kusto.DataNode.Exceptions.SemanticErrorException: Semantic error: Query \'Temp_MonRgLoad | project TIMESTAMP | consume\' has the following semantic error: \\" | summarize cnt() by Source",Item2:"// comment\\r\\nKustoLogs\\r\\n| where Timestamp > ago(1d) and EventText contains \\"[0]Kusto.DataNode.Exceptions.SemanticErrorException: Semantic error: Query \'Temp_MonRgLoad | project TIMESTAMP | consume\' has the following semantic error: \\"\\r\\n| summarize cnt() by Source"},{Item1:"Table | join (Table | project x ) on x | count",Item2:"Table\\r\\n| join\\r\\n(\\r\\n Table\\r\\n | project x\\r\\n)\\r\\non x\\r\\n| count"},{Item1:"Table | join kind=inner (Table | project x ) on x | count",Item2:"Table\\r\\n| join kind=inner\\r\\n(\\r\\n Table\\r\\n | project x\\r\\n)\\r\\non x\\r\\n| count"},{Item1:"let foo = (i: long) { range x from 1 to 1 step 1 }; foo()",Item2:"let foo = (i: long)\\r\\n{\\r\\n range x from 1 to 1 step 1\\r\\n};\\r\\nfoo()"},{Item1:"let foo = (i: long) {range x from 1 to 1 step 1 | count }; foo()",Item2:"let foo = (i: long)\\r\\n{\\r\\n range x from 1 to 1 step 1\\r\\n | count\\r\\n};\\r\\nfoo()"},{Item1:\'.alter function with (docstring = @\\\'List of UserIds that are WebSites only\\\', folder =@\\\'Filters\\\') UsersWithWebSiteAppsOnly() { DimAppUsage() | join kind=leftouter DimApplications() on ApplicationId | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto") | summarize by UserId = UserId }\',Item2:\'.alter function with (docstring = @\\\'List of UserIds that are WebSites only\\\', folder =@\\\'Filters\\\') UsersWithWebSiteAppsOnly()\\r\\n{\\r\\n DimAppUsage()\\r\\n | join kind=leftouter\\r\\n DimApplications()\\r\\n on ApplicationId\\r\\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\\r\\n | summarize by UserId = UserId\\r\\n}\'},{Item1:\'.alter function with (docstring = @\\\'List of UserIds that are WebSites only\\\', folder =@\\\'Filters\\\') UsersWithWebSiteAppsOnly()\\r\\n{\\r\\n DimAppUsage()\\r\\n | join kind=leftouter DimApplications() on ApplicationId\\r\\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\\r\\n | summarize by UserId = UserId\\r\\n}\',Item2:\'.alter function with (docstring = @\\\'List of UserIds that are WebSites only\\\', folder =@\\\'Filters\\\') UsersWithWebSiteAppsOnly()\\r\\n{\\r\\n DimAppUsage()\\r\\n | join kind=leftouter\\r\\n DimApplications()\\r\\n on ApplicationId\\r\\n | where RequestSource in ("unknown", "ibiza","ibizaaiextensionauto")\\r\\n | summarize by UserId = UserId\\r\\n}\'},{Item1:"KustoLogs | where Timestamp > ago(6d) | where ClientActivityId==\'KE.RunQuery;e0944367-3fd6-4f83-b2e9-ff0724d55053\'",Item2:"KustoLogs\\r\\n| where Timestamp > ago(6d)\\r\\n| where ClientActivityId==\'KE.RunQuery;e0944367-3fd6-4f83-b2e9-ff0724d55053\'"},{Item1:"KustoLogs | make-series dusers=dcount(RequestSource) default=0 on Timestamp in range(ago(6d), now(), 1d) by userid | where stat(dusers).max>1000",Item2:"KustoLogs\\r\\n| make-series dusers=dcount(RequestSource) default=0 on Timestamp in range(ago(6d), now(), 1d) by userid\\r\\n| where stat(dusers).max>1000"}],Bridge.global.System.Object);e=Bridge.getEnumerator(t);try{for(;e.moveNext();){var n=e.Current,i=n.Item1;i=Bridge.global.System.String.replaceAll(i,"\\n","");var r=Kusto.Data.Common.CslQueryParser.PrettifyQuery(i,""),s=n.Item2;s=Bridge.global.System.String.replaceAll(s,"\\r",""),this.Assert.AreEqual(s,r)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}},TestCslCommandParserEntities:function(){var e=new Kusto.Data.IntelliSense.CslCommandParser;this.ValidateTokens(e,"Table1 \\r\\n | parse Field1 with * Column1:string * Column2:int\\r\\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.CalculatedColumnToken,Bridge.global.System.Array.init(["Column1","Column2"],Bridge.global.System.String)),this.ValidateTokens(e,"let s = now();\\r\\n Table1 \\r\\n | extend x = Field1 \\r\\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken,Bridge.global.System.Array.init(["Field1"],Bridge.global.System.String)),this.ValidateTokens(e,"Table1 \\r\\n | extend x = Field1 \\r\\n | project",Kusto.Data.IntelliSense.CslCommandToken.Kind.TableColumnToken,Bridge.global.System.Array.init(["Field1"],Bridge.global.System.String))},ValidateTokens:function(t,n,i,r){var s=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,n,Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).toList(Bridge.global.Kusto.Data.IntelliSense.CslCommand),a=Bridge.global.System.Linq.Enumerable.from(s).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(function(e){return e.TokenKind===i}).select(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f2).toList(Bridge.global.System.String);Kusto.UT.IntelliSenseRulesTests.ValidateEntities(n,r,a)},TestCslCommandParserReuse:function(){var e,t=new Kusto.Data.IntelliSense.CslCommandParser;e=Bridge.getEnumerator(Bridge.global.System.Array.init(["let s = 1;\\r\\n let r = range x from s to 1 step 1;\\r\\n r | ","Table1 | where Field1 == \'rrr\' "],Bridge.global.System.String));try{for(;e.moveNext();){var n=e.Current;this.ValidateParserReuse(t,n)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}},ValidateParserReuse:function(t,n){var i=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,n,Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken),r=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,(n||"")+" ",Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken);this.ComapreParseResultTokens(i,Bridge.global.System.Linq.Enumerable.from(r).ToArray(),0,!1);var s=Bridge.global.System.Linq.Enumerable.from(t.Parse(this.m_intelliSenseProvider,"// comment\\n"+(n||""),Kusto.Data.IntelliSense.ParseMode.TokenizeAllText)).selectMany(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f1).where(e.$.Kusto.UT.IntelliSenseCslCommandParserTests.f3).ToArray(Kusto.Data.IntelliSense.CslCommandToken);this.Assert.AreEqual(Bridge.box(i.length,Bridge.global.System.Int32),Bridge.box(s.length-1|0,Bridge.global.System.Int32));for(var a=0;a",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 < ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 == ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 != ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 >= ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where DateTimeField1 <= ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where Field1 == \'ff\' and DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | where Field1 == \'ff\' or DateTimeField1 > ",Kusto.Data.IntelliSense.RuleKind.YieldDateTimeOperatorsOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("aago(",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("ago(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("ago( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(" ago(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("nnow(",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("now(",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("now( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(" now( ",Kusto.Data.IntelliSense.RuleKind.YieldTimespanOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseEvaluateTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | evaluate ",Kusto.Data.IntelliSense.RuleKind.YieldEvaluateOperatorOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'Table1 | evaluate diffpatterns("split= \',Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForDiffPatternsPluginSplitParameter)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'Table1 | evaluate diffpatterns("bsplit= \',Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("Table1 | extend split=",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesAndFunctionsForExtend)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseExportCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandNoModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export compressed to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async to ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export to",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".export async compressed to",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSensePurgeCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge whatif = info maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT records",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge async whatif = info maxRecords = 111 table TTT records ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSensePurgeCleanupCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup async",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".purge-cleanup async ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseCreateRowstoreAdminCommandTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName ",Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldRowStoreCreatePersistencyOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName volatile",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog ",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor1(".create rowstore SomeName writeaheadlog (h@\'\', h@\'\')",Kusto.Data.IntelliSense.AdminEngineRuleKind.None)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseSearchTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind= ",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind = ",Kusto.Data.IntelliSense.RuleKind.YieldSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_insensitive ",Kusto.Data.IntelliSense.RuleKind.YieldPostSearchKindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'search "ff" or\',Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'search "ff" or \',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'search "ff" and \',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'search in (Table1) "ff" and \',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, [\'Table.2\']) \\"ff\\" or ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2(\'search kind=case_sensitive "ff" and \',Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search kind=case_sensitive in (Table1) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, [\'Table.2\'])",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, [\'Table.2\']) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, database(\'*\').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("search in (Table1, database(\'*\').*) ",Kusto.Data.IntelliSense.RuleKind.YieldInsideSearchOptions)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseFindTest:function(){var e=new(Bridge.global.System.Collections.Generic.List$1(Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern).ctor);e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource = SourceTable ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, Table2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, Table2, ",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2, ",Kusto.Data.IntelliSense.RuleKind.YieldTableNamesForFindIn)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\'] ",Kusto.Data.IntelliSense.RuleKind.YieldEndOrContinueFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2 ",Kusto.Data.IntelliSense.RuleKind.YieldEndOrContinueFindInOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\'])",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, Table2) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, database(\'*\').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, database(\'*\').*) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, database(\'*\').*)",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, database(\'*\').*) ",Kusto.Data.IntelliSense.RuleKind.YieldPostFindInListOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field1 == \'abc\' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field1 == \'abc\' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database(\'*\').*) where * has \'abc\' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database(\'*\').*) where * has \'abc\' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database(\'*\').*) where \'abc\' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (*, database(\'*\').*) where \'abc\' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field1 == \'abc\' and",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field1 == \'abc\' and ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field3 == \'abc\' project",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field3 == \'abc\' project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field0 == \'abc\' and DateTimeField1 > ago(1h) project",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field0 == \'abc\' and DateTimeField1 > ago(1h) project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field0 == \'abc\' project DateTimeField1",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field0 == \'abc\' and DateTimeField1 > ago(1h) project NumField1",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project NumField2,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project NumField2, ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field3 == \'abc\' and DateTimeField0 > ago(1h) project Field0,",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find withsource=SourceTable in (Table1, [\'Table.2\']) where Field3 == \'abc\' and DateTimeField0 > ago(1h) project Field0, ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project-smart",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project-smart ",Kusto.Data.IntelliSense.RuleKind.YieldFindProjectSmartOptions)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project NumField2 | where",Kusto.Data.IntelliSense.RuleKind.None)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project NumField2 | where ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilter)),e.add(new Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern.$ctor2("find in (Table1, [\'Table.2\']) where Field8 == \'abc\' project NumField2 | project ",Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProject)),Kusto.UT.IntelliSenseRulesTests.TestIntelliSensePatterns(Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider,e)},IntelliSenseGetCommandContextTest:function(){var t,n,i=e.$.Kusto.UT.IntelliSenseRulesTests.f3(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)));t=Bridge.getEnumerator(Bridge.global.System.Array.init([!1,!0],Bridge.global.System.Boolean));try{for(;t.moveNext();){t.Current,n=Bridge.getEnumerator(i);try{for(;n.moveNext();){var r=n.Current,s=r.key;s=Bridge.global.System.String.replaceAll(Bridge.global.System.String.replaceAll(s,String.fromCharCode(10),String.fromCharCode(32)),String.fromCharCode(13),String.fromCharCode(32));var a=Kusto.UT.IntelliSenseRulesTests.s_intelliSenseProvider.AnalyzeCommand$1(s,null).Context;Kusto.UT.IntelliSenseRulesTests.Assert.AreEqual$1(r.value,a.Context,Kusto.Cloud.Platform.Utils.ExtendedString.FormatWithInvariantCulture("Command context was not resolved correctly for command \'{0}\'",[s]))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}}}}),Bridge.ns("Kusto.UT.IntelliSenseRulesTests",e.$),Bridge.apply(e.$.Kusto.UT.IntelliSenseRulesTests,{f1:function(e){return e.Name},f2:function(e){return(e.Operator||"")+":"+(e.Name||"")},f3:function(e){return e.add("database(\'","database(\'"),e.add("database(\'someDB\')","database(\'someDB\')"),e.add("database(\'someDB\').","database(\'someDB\')."),e.add("database(\'someDB\').Table","database(\'someDB\').Table"),e.add("database(\'someDB with space\')","database(\'someDB with space\')"),e.add("database(\'someDB with space\').","database(\'someDB with space\')."),e.add("database(\'someDB with space\').Table","database(\'someDB with space\').Table"),e.add(\'database("someDB with space")\',\'database("someDB with space")\'),e.add(\'database("someDB with space").\',\'database("someDB with space").\'),e.add(\'database("someDB with space").Table\',\'database("someDB with space").Table\'),e.add("cluster(\'abc\').database(\'","cluster(\'abc\').database(\'"),e.add("cluster(\'abc\').database(\'someDB\')","cluster(\'abc\').database(\'someDB\')"),e.add("cluster(\'abc\').database(\'someDB\').","cluster(\'abc\').database(\'someDB\')."),e.add("cluster(\'abc\').database(\'someDB\').Table","cluster(\'abc\').database(\'someDB\').Table"),e.add("cluster(\'https://abc.kusto.windows.net\').database(\'","cluster(\'https://abc.kusto.windows.net\').database(\'"),e.add("cluster(\'https://abc.kusto.windows.net\').database(\'someDB\')","cluster(\'https://abc.kusto.windows.net\').database(\'someDB\')"),e.add("cluster(\'https://abc.kusto.windows.net\').database(\'someDB\').","cluster(\'https://abc.kusto.windows.net\').database(\'someDB\')."),e.add("cluster(\'https://abc.kusto.windows.net\').database(\'someDB\').Table","cluster(\'https://abc.kusto.windows.net\').database(\'someDB\').Table"),e.add(\'cluster("https://abc.kusto.windows.net").database(\\\'\',\'cluster("https://abc.kusto.windows.net").database(\\\'\'),e.add("cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\')","cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\')"),e.add("cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\').","cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\')."),e.add("cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\').Table","cluster(\\"https://abc.kusto.windows.net\\").database(\'someDB\').Table"),e.add("let x = toscalar(Table1 | ","Table1"),e.add("range x from toscalar(Table1 | count) to toscalar(Table2 | ","Table2"),e.add("set querytrace;\\r\\n Table2 | ","Table2"),e.add(\'union\\r\\n(Table1 | where body has keyword and body has "Google" | summarize posts=dcount(link_id) | extend context = "Google"),\\r\\n(Table2 | where \',"Table2"),e.add("union (Table1), (Table2 ","Table2"),e.add("union\\n (Table ","Table"),e.add("union (Table ","Table"),e.add("let x = () {request};\\n let y = x;\\n y ","request"),e.add("let x = request;\\n x ","request"),e.add("let x = request | count;\\n x ","request"),e.add("let x = request;\\n x | count ","request"),e.add("let x = request;\\n let y = x;\\n y ","request"),e.add("let x = () {request | limit 100};\\n let y = x;\\n y ","request"),e.add(".show database XYZ ",".show database XYZ"),e.add("Table1 | count","Table1"),e.add("Table1 | join (Table2 | ","Table2"),e.add("let x = 1;\\n Table2 | ","Table2"),e.add("range xyz from 1 to 1 step 1| ","range"),e.add("let x = () { request | where ","request"),e.add("let x = request | where ","request"),e.add("cluster(\'lxprdscu02\').database(\'Analytics Billing\').ApplicationHourlyEntryCount\\r\\n| where StartTime >= ago(rangeInDaysForBililngData)\\r\\n| where DataSource == \'AI\'\\r\\n| where Database in (longtailDatabases)\\r\\n| summarize totalGB=1.0*sum(SizeInBytes)/1024/1024/1024 by bin(StartTime, 1d), ApplicationName , InstrumentationKey , ClusterName, DatabasePrettyName, Database, ProfileId\\r\\n| top-nested of ClusterName by count(), top-nested of DatabasePrettyName by count(), top-nested of Database by count(),top-nested topAppCountByData of ProfileId by avg_totalGB = avg(totalGB) desc, top-nested of ApplicationName by count(), top-nested of InstrumentationKey by count()\\r\\n| project ClusterName, DatabasePrettyName , Database, ProfileId , ApplicationName ,InstrumentationKey, avg_totalGB\\r\\n| order by ClusterName , avg_totalGB desc ","cluster(\'lxprdscu02\').database(\'Analytics Billing\').ApplicationHourlyEntryCount"),e.add("database(\'Analytics Billing\').ApplicationHourlyEntryCount\\r\\n| where StartTime >= ago(rangeInDaysForBililngData)\\r\\n| where DataSource == \'AI\'\\r\\n| where Database in (longtailDatabases)\\r\\n| summarize totalGB=1.0*sum(SizeInBytes)/1024/1024/1024 by bin(StartTime, 1d), ApplicationName , InstrumentationKey , ClusterName, DatabasePrettyName, Database, ProfileId\\r\\n| top-nested of ClusterName by count(), top-nested of DatabasePrettyName by count(), top-nested of Database by count(),top-nested topAppCountByData of ProfileId by avg_totalGB = avg(totalGB) desc, top-nested of ApplicationName by count(), top-nested of InstrumentationKey by count()\\r\\n| project ClusterName, DatabasePrettyName , Database, ProfileId , ApplicationName ,InstrumentationKey, avg_totalGB\\r\\n| order by ClusterName , avg_totalGB desc ","database(\'Analytics Billing\').ApplicationHourlyEntryCount"),e.add("find \'abc\'","*"),e.add("find in (database(\'*\').*) \'abc\'","database(\'*\').*"),e.add("find in (database(\\"*\\").*) \'abc\'",\'database("*").*\'),e.add("find in (Table) where","Table"),e.add("find in ([\'Table\']) where","[\'Table\']"),e.add("find in (database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*) \'abc\'","database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*"),e.add("find withsource=X \'abc\'","*"),e.add("find withsource=X in (database(\'*\').*) \'abc\'","database(\'*\').*"),e.add("find withsource=X in (database(\\"*\\").*) \'abc\'",\'database("*").*\'),e.add("find withsource=X in (Table) where","Table"),e.add("find withsource=X in ([\'Table\']) where","[\'Table\']"),e.add("find withsource=X in (database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*) \'abc\'","database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*"),e.add("search \'abc\'","*"),e.add("Table1 | search \'abc\'","Table1"),e.add("search in (database(\'*\').*) \'abc\'","database(\'*\').*"),e.add("search in (database(\\"*\\").*) \'abc\'",\'database("*").*\'),e.add("search in (Table) where","Table"),e.add("search in (Table1, Table2) where","Table1, Table2"),e.add("search in ([\'Table\']) where","[\'Table\']"),e.add("search in (database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*) \'abc\'","database(\'Office*\').*, T*, cluster(\'somecluster\').database(\'x\').T*"),e}}),Bridge.define("Kusto.UT.IntelliSenseRulesTests.IntelliSenseTestPattern",{$kind:"nested class",props:{Input:null,ExpectedMatch:!1,ExpectedRuleKind:0},ctors:{ctor:function(e){this.$initialize(),this.Input=e,this.ExpectedRuleKind=Kusto.Data.IntelliSense.RuleKind.None,this.ExpectedMatch=!1},$ctor2:function(e,t){this.$initialize(),this.Input=e,this.ExpectedRuleKind=t,this.ExpectedMatch=t!==Kusto.Data.IntelliSense.RuleKind.None},$ctor1:function(e,t){this.$initialize(),this.Input=e,this.ExpectedRuleKind=t,this.ExpectedMatch=t!==Kusto.Data.IntelliSense.AdminEngineRuleKind.None}}}),Bridge.define("Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],props:{MatchingRegex:null,AdditionalOptions:null,ContextualOptions:null,OverrideOptions:null,OptionsKind:0,RequiresFullCommand:{get:function(){return!0}},IsContextual:{get:function(){return!0}}},methods:{IsMatch:function(e,t){return this.MatchingRegex.isMatch(t)},GetOptions:function(t){if(null==this.AdditionalOptions||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions))return this.GetContextOptions(t);var n=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).$ctor1)(this.GetContextOptions(t));return Bridge.global.System.Linq.Enumerable.from(n).union(Bridge.global.System.Linq.Enumerable.from(this.AdditionalOptions).selectMany(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f1))},GetContextOptions:function(e){if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)),this.OverrideOptions)&&this.OverrideOptions.containsKey(e))return this.OverrideOptions.get(e);var t=new Kusto.Data.IntelliSense.KustoCommandContext(e.Context);return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)),this.ContextualOptions)&&this.ContextualOptions.containsKey(t)?this.ContextualOptions.get(t):Bridge.global.System.Array.init([],Bridge.global.System.String)},GetCompletionOptions:function(t){if(null==this.AdditionalOptions||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions))return Bridge.global.System.Linq.Enumerable.from(this.GetContextOptions(t)).select(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f2)).ToArray(Kusto.Data.IntelliSense.CompletionOption);var n=new Kusto.Data.IntelliSense.CompletionOptionCollection(this.OptionsKind,this.GetContextOptions(t));return Bridge.global.System.Linq.Enumerable.from(function(e){return e.add(n),e}(new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CompletionOptionCollection).ctor))).concat(this.AdditionalOptions).orderByDescending(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f3).selectMany(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule.f4)}}}),Bridge.ns("Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.ContextualRegexIntelliSenseRule,{f1:function(e){return e.Values},f2:function(e){return new Kusto.Data.IntelliSense.CompletionOption(this.OptionsKind,e)},f3:function(e){return e.Priority},f4:function(e){return e.GetCompletionOptions()}}),Bridge.define("Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],statics:{methods:{GetHashStringForContextAndToken:function(e,t){return(e||"")+";"+(t||"")}}},props:{MatchingRegex:null,MatchingTokens:null,GroupNameToUseAfterMatch:null,Options:null,RequiresFullCommand:{get:function(){return!0}},IsContextual:{get:function(){return!0}}},methods:{IsMatch:function(e,t){if(null==this.MatchingTokens||!Bridge.global.System.Linq.Enumerable.from(this.MatchingTokens).any()||Bridge.global.System.String.isNullOrEmpty(this.GroupNameToUseAfterMatch))return!1;var n=this.MatchingRegex.match(t);if(!n.getSuccess()||n.getGroups().getCount()<1)return!1;var i=Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.Context,n.getGroups().getByName(this.GroupNameToUseAfterMatch).toString());return this.MatchingTokens.contains(i)},GetOptions:function(e){return this.Options.Values},GetCompletionOptions:function(e){return this.Options.GetCompletionOptions()}}}),Bridge.define("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase],statics:{fields:{s_afterPipeRegex:null,s_renderRegex:null,s_renderMultiChartsRegex:null,s_renderKindOptionsRegex:null,s_evaluateRegex:null,s_makeSeriesRequestingAggregatorsRegex:null,s_makeSeriesBeforeDefaultOrOnRegex:null,s_makeSeriesBeforeOnRegex:null,s_makeSeriesBeforeRangeRegex:null,s_makeSeriesBeforeByRegex:null,s_joinRegex:null,s_diffPatternsPluginSplitParameterRegex:null,s_startOfLineWithSpaceOrAfterJoinRegex:null,s_startOfCommandWithClusterRegex:null,s_tablesScopeRegex:null,s_startOfCommandWithDatabaseRegex:null,s_clusterFunctionRegex:null,s_databaseFunctionInFindRegex:null,s_databaseFunctionRegex:null,s_operatorContextForFilterColumnRegex:null,s_operatorContextForProject:null,s_operatorContextForProjectAway:null,s_operatorContextForProjectRename:null,s_operatorContextForFilterColumnInFindRegex:null,s_operatorContextForFindProject:null,s_singleParamFunctions:null,s_singleParamFunctionsColumnContextRegex:null,s_twoParamFunctions:null,s_twoParamFunctionsColumnContextRegex:null,s_threeParamFunctions:null,s_threeParamFunctionsColumnContextRegex:null,s_manyParamFunctions:null,s_manyParamFunctionsColumnContextRegex:null,s_operatorContextForExtend_ColumnAndFunctionRegex:null,s_entitiesForJoin_ColumnsRegex:null,s_joinFlavorsForJoin_Regex:null,s_parseKindChoose_Regex:null,s_parseWith_Regex:null,s_parseTypesSuggest_Regex:null,s_parseStarOption_Regex:null,m_commandsRequestingAggregators:null,s_lineWithDotBeginningRegex:null,s_topOrLimitOrTakeOrSampleRegex:null,s_agoContextRegex:null,s_nowContextRegex:null,s_operatorContextForTopNestedAndTopHitters:null,s_operatorContextForSampleDistinct:null,s_topNestedKeywordPrefixRegex:null,s_topNestedWithOthersOption:null,s_topHittersKeywordPrefixRegex:null,s_yieldByKeywordRegex:null,s_parseColumnContextRegex:null,s_renderTimePivotColumnContextRegex:null,s_topSortOrderReduceByRegex:null,s_topTopNestedSortOrderByAscDescRegex:null,s_findContextRegex:null,s_findInRegex:null,s_findInStartOrContinueListRegex:null,s_FindInEndOrContinueListRegex:null,s_findWhereRegex:null,s_findProjectSmartRegex:null,s_reduceByColumnContextRegex:null,s_topNestedSuggestingColumnsRegex:null,s_topHittersSuggestingColumnsRegex:null,s_sampleDistinctSuggestingColumnsRegex:null,s_topOrOrderAscendingDescendingRegex:null,s_topNestedAscendingDescendingRegex:null,s_rangeFromRegex:null,s_rangeFromToRegex:null,s_rangeFromToStepRegex:null,s_filteredColumnString:null,s_filteredColumnRegex:null,s_filterPredicateRightValueRegex:null,s_makeSeriesByRegex:null,s_searchPrefixRegex:null,s_searchContextRegex:null,s_searchKindRegex:null,s_searchAfterKindContextRegex:null,s_searchMoreContextRegex:null,s_searchKind_Regex:null,s_clientDirective_Regex:null,s_clientDirectiveConnect_Regex:null,s_operatorOptions:null,s_renderOptions:null,s_renderKindOptions:null,s_aggregateOperationOptions:null,s_makeSeriesAggregateOperationOptions:null,s_extendOperationOptions:null,s_databaseFunctionOptions:null,s_stringOperatorOptions:null,s_numericOperatorOptions:null,s_numericScalarsOptions:null,s_byKeywordOptions:null,s_kindChooseKeywordOptions:null,s_withOthersKeywordOptions:null,s_ofKeywordOptions:null,s_withKeywordOptions:null,s_parseSuggestedTypesKeywordOptions:null,s_parseStarOption:null,s_ascDescKeywordOptions:null,s_nullsLastFirstKeywordOptions:null,s_ascDescOrNullsLastNullsFirstKeywordOptions:null,s_rangeFromOptions:null,s_rangeFromToOptions:null,s_rangeFromToStepOptions:null,s_joinFlavorsOptions:null,s_postJoinOptions:null,s_kindKeywordOptions:null,s_searchInKeywordOptions:null,s_searchLiteralsOptions:null,s_reduceByFlavorsOptions:null,s_datetimeOptions:null,s_timespanOptions:null,s_negativeTimespanOptions:null,s_postFindInOptions:null,s_findInEndOrContinueOptions:null,s_findWhereInOptions:null,s_findInPostListOptions:null,s_makeSeriesDefaultOrOnOptions:null,s_makeSeriesOnOptions:null,s_makeSeriesInRangeOptions:null,s_searchKindOptions:null,s_clientDirectivesOptions:null,MultiColumnFunctionResultSuffixes:null,s_afterFunctionsApplyPolicies:null,s_filterKeywords:null,s_projectKeywords:null,s_projectAwayKeywords:null,s_projectRenameKeywords:null,s_projectExtendKeywords:null,s_joinKeywords:null,s_topSortOrderReduceKeywords:null,s_operatorsUsingByKeywordKeywords:null,s_topSortOrderKeywords:null,s_topTopNestedSortOrderKeywords:null,s_reduceKeywords:null,s_parseKeywords:null,s_renderKeywords:null,s_topLimitTakeSampleKeywords:null,s_evaluateKeywords:null,s_summarizeKeywords:null,s_distinctKeywords:null,s_topNestedKeywords:null,s_topHittersKeywords:null,s_sampleDistinctKeywords:null,s_operatorsRequestingAggregators:null,s_databaseKeywords:null,s_findKeywords:null,s_searchKeywords:null,s_makeSeriesKeywords:null,s_remoteContextRegex:null,s_queryParametersRegex:null,s_joinClosureRegex:null,s_joinWithMakeSeriesClosureRegex:null,s_makeSeriesStartRegex:null,s_findSubClausesRegex:null,s_searchSubClausesRegex:null,s_rangeEntitiesRegex:null,s_parsedEntitiesRegex:null,s_removeStringLiteralsRegex:null,s_removeStringLiteralsSurroundedBySpacesRegex:null,s_removeCommentsRegex:null,s_fieldInvalidCharacters:null,s_fieldQuotableCharacters:null,s_aggregateOperatorToColumnPrefixMapping:null,s_lastCommandSegmentRegex:null,s_incompleteJoinRegex:null,s_commandClausesRegex:null,s_operatorsReplacingEntities:null,s_withsourceExtractRegex:null,s_findProjectionRegex:null,s_packRgx:null,s_topNestedLevelExtractRegex:null,s_sampleDistinctEntityExtractRegex:null,s_aggregateOperatorsHash:null,s_byKeywordRegex:null,s_byAndOnKeywordRegex:null,s_makeSeriesDropNonFieldsRegex:null,s_fieldMatchingRegex:null,s_numericSuffixRegex:null,s_defaultContextPattern:null,s_commandContext_Join:null,s_commandContext_Union:null,s_commandContext_ToScalar:null,s_commandContext_Show:null,s_commandContext_Range:null,s_commandContext_Callable:null,s_commandContext_Let:null,s_commandContext_ConnectDirective:null,s_commandContext_Find:null,s_commandContext_Search:null,s_commandDefaultContext:null,s_twoOrMoreSpacesRegex:null,s_showCommandFixRegex:null,s_commandContextRegexes:null,s_nonDefaultContextKeywordsRegex:null,s_letVariableRegex:null,s_letStatementRegexList:null},props:{Operators:{get:function(){return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_operatorOptions}}},ctors:{init:function(){this.s_afterPipeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\|\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)render\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderMultiChartsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)render\\\\s+(areachart|barchart|columnchart)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderKindOptionsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)render\\\\s+(areachart|barchart|columnchart)\\\\s+kind\\\\s*=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_evaluateRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)evaluate\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesRequestingAggregatorsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)make-series\\\\s+(\\\\w+\\\\s*?=\\\\s*?)?$|(^|\\\\|\\\\s*?)make-series\\\\s+(?!.*\\\\b(by|on|range|in)\\\\b).*?,\\\\s+(\\\\w+\\\\s*?=\\\\s*?)?$|(^|\\\\|\\\\s*?)make-series\\\\s+(?!.*\\\\b(by|on|range|in)\\\\b).*[+*/\\\\-]\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeDefaultOrOnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)make-series(?!.*\\\\b(by|on|range|in).*)(.*\\\\))\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeOnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)make-series\\\\s+(?!.*\\\\b(range|on).*)(.*\\\\bdefault\\\\b\\\\s*\\\\=\\\\s*\\\\w+)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeRangeRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)make-series(?!.*\\\\b(range).*)(.*\\\\bon\\\\b\\\\s+.*)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesBeforeByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)make-series(?!.*\\\\b(by).*)(.*\\\\bin\\\\s+range\\\\b\\\\s*\\\\(.*,.*,.*\\\\))\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)join\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_diffPatternsPluginSplitParameterRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(\'diffpatterns\\\\("split=\\\\s*$\',Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_startOfLineWithSpaceOrAfterJoinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*$|join\\\\s+.*?\\\\(\\\\s+$|^\\\\s*let\\\\s+\\\\w+\\\\s*=\\\\s+$|toscalar\\\\(\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_startOfCommandWithClusterRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*|join\\\\s+.*?\\\\(\\\\s+|^\\\\s*let\\\\s+\\\\w+\\\\s*=\\\\s+|toscalar\\\\(\\\\s*|;\\\\s+)cluster\\\\($",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_tablesScopeRegex="(((cluster\\\\([^\\\\)]+\\\\)\\\\.)?(database\\\\([^\\\\)]+\\\\)\\\\.)?(\\\\[.+?\\\\]|[\\\\w\\\\d\\\\*]+),\\\\s*)*((cluster\\\\([^\\\\)]+\\\\)\\\\.)?(database\\\\([^\\\\)]+\\\\)\\\\.)?(\\\\[.+?\\\\]|[\\\\w\\\\d\\\\*]+)))",this.s_startOfCommandWithDatabaseRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*|join\\\\s+.*?\\\\(\\\\s+|find\\\\s+in\\\\s*\\\\(|find\\\\s+in\\\\s*\\\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+",\\\\s*|^\\\\s*let\\\\s+\\\\w+\\\\s*=\\\\s+|toscalar\\\\(\\\\s*|;\\\\s+|cluster\\\\([^\\\\)]+?\\\\)\\\\.)database\\\\($",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clusterFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("cluster\\\\([^\\\\)]+\\\\)\\\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databaseFunctionInFindRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("find\\\\s+in\\\\s*\\\\([^\\\\|]*database\\\\([^\\\\)]+\\\\)\\\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databaseFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("database\\\\([^\\\\)]+\\\\)\\\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFilterColumnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(filter|where)\\\\s+$|(^|\\\\|\\\\s*?)(filter|where)\\\\s+[^\\\\|]+(and|or)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProject=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)project\\\\s+$|(^|\\\\|\\\\s*?)project\\\\s+[^\\\\|]*,\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProjectAway=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)project-away\\\\s+$|(^|\\\\|\\\\s*?)project-away\\\\s+[^\\\\|]*,\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForProjectRename=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)project-rename\\\\s+[^\\\\|]*?\\\\=\\\\s*$|(^|\\\\|\\\\s*?)project-rename\\\\s+[^\\\\|]*,\\\\s+[^\\\\|]*?\\\\=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFilterColumnInFindRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+[^\\\\|]*where\\\\s+$|(^|\\\\s*)find\\\\s+[^\\\\|]+(and|or)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForFindProject=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+[^\\\\|]+project\\\\s+$|(^|\\\\s*)find\\\\s+[^\\\\|]+project\\\\s+[^\\\\|]*,\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_singleParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SingleParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationSingleParameterTokens)).join("\\\\(|"),this.s_singleParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\b("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_singleParamFunctions||"")+"\\\\()\\\\s*$|(^|\\\\|\\\\s*?)summarize\\\\s+[^\\\\|]*?by\\\\s+$|(^|\\\\|\\\\s*?)summarize\\\\s+[^\\\\|]*\\\\)\\\\s*,\\\\s+$|(^|\\\\|\\\\s*?)summarize\\\\s+[^\\\\|]*?by\\\\s+(?!bin)[^\\\\|]+,\\\\s+$|(^|\\\\|\\\\s*?)distinct\\\\s+([^\\\\|]+,\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_twoParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.TwoParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTwoParametersTokens)).join("\\\\(|"),this.s_twoParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_twoParamFunctions||"")+"\\\\()\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_threeParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ThreeParameterFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationThreeParametersTokens)).join("\\\\(|"),this.s_threeParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_threeParamFunctions||"")+"\\\\()\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_manyParamFunctions=Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.ManyParametersFunctionsTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationManyParametersTokens)).join("(\\\\(|[^\\\\)]+,)|"),this.s_manyParamFunctionsColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_manyParamFunctions||"")+"\\\\()\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForExtend_ColumnAndFunctionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)extend\\\\s+[^\\\\|]*?[\\\\=\\\\-\\\\+\\\\/\\\\*]\\\\s*$|(^|\\\\|\\\\s*?)project\\\\s+[^\\\\|]*?\\\\=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_entitiesForJoin_ColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)join\\\\s+.*\\\\(.+\\\\)\\\\s+on\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinFlavorsForJoin_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)join\\\\s+kind\\\\s*=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseKindChoose_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)parse\\\\s+kind\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseWith_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(\'(^|\\\\|\\\\s*?)parse\\\\s*(kind\\\\s*=\\\\s*\\\\w+(\\\\s*flags\\\\s*=\\\\s*\\\\w+)?\\\\s*)?\\\\s*(\\\\w+|".*?")\\\\s*$\',Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseTypesSuggest_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)parse\\\\s+.*\\\\swith\\\\s+.*\\\\s*:\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseStarOption_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)parse(.+?)with(.+?[^\\\\*\\\\s])?\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.m_commandsRequestingAggregators=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)summarize\\\\s+(\\\\w+\\\\s*?=\\\\s*?)?$|(^|\\\\|\\\\s*?)summarize\\\\s+(?!.*\\\\bby\\\\b).*,\\\\s+(\\\\w+\\\\s*?=\\\\s*?)?$|(^|\\\\|\\\\s*?)summarize\\\\s+(?!.*\\\\bby\\\\b).*[+*/\\\\-]\\\\s*$|(^|\\\\|\\\\s*?).*top-(nested|hitters).*\\\\s+by\\\\s+(\\\\w+\\\\s*?=\\\\s*\\\\s*?)?$|(^|\\\\|\\\\s*?).*top-(nested|hitters).*\\\\s+by\\\\s+.*?[+*/\\\\-]\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_lineWithDotBeginningRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topOrLimitOrTakeOrSampleRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(top|.*top-hitters|limit|take|.*top-nested|sample|sample-distinct)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_agoContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\bago\\\\(\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_nowContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\bnow\\\\(\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForTopNestedAndTopHitters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*top-(nested|hitters)\\\\s+\\\\d+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorContextForSampleDistinct=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*sample-distinct\\\\s+\\\\d+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedKeywordPrefixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)top-nested.*by.*(\\\\d|\\\\)|asc|desc)\\\\s*,\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedWithOthersOption=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)top-nested.*?of\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topHittersKeywordPrefixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)top-hitters.*by.*(\\\\d|\\\\))\\\\s*,\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_yieldByKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(top\\\\s+\\\\d+|.*top-hitters.*of\\\\s+\\\\w+|.*top-nested.*of\\\\s+[\\\\w,\\\\(\\\\)]+\\\\s*(with others\\\\s*=\\\\s*\\\\w+\\\\s*)?|distinct|sort|order|reduce|render\\\\s+timepivot)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parseColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)parse\\\\s+(kind\\\\s*=\\\\s*\\\\w+\\\\s*(flags\\\\s*=\\\\s*\\\\w+\\\\s*)?\\\\s*)?\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_renderTimePivotColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)render\\\\s+timepivot\\\\s+by(.*,)?\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topSortOrderReduceByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(top\\\\s+\\\\d+|sort|order|reduce)\\\\s+by\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topTopNestedSortOrderByAscDescRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)((top\\\\s+\\\\d+|sort|order).*?by.*?(asc|desc))[ ]+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+(withsource\\\\s*\\\\=\\\\s*\\\\w+\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findInRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+(withsource\\\\s*\\\\=\\\\s*[^\\\\|\\\\(\\\\)]*\\\\s+)?in\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findInStartOrContinueListRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+[^\\\\|\\\\(\\\\)]*in\\\\s*\\\\(\\\\s*("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+",\\\\s+)?\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_FindInEndOrContinueListRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+(withsource\\\\s*\\\\=\\\\s*\\\\w+\\\\s+)?in\\\\s*\\\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findWhereRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+[^\\\\|\\\\(\\\\)]*in\\\\s*\\\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\\\)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findProjectSmartRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*)find\\\\s+[^\\\\|]*\\\\s+project\\\\-smart\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_reduceByColumnContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)reduce\\\\s+by\\\\s+\\\\w+\\\\s+kind\\\\s*=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*top-nested.*of\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topHittersSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*top-hitters.*of\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_sampleDistinctSuggestingColumnsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*sample-distinct.*of\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topOrOrderAscendingDescendingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(top\\\\s+\\\\d+|sort|order)\\\\s+by\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedAscendingDescendingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?).*top-nested.*by\\\\s+.*(\\\\)|\\\\d)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*|join\\\\s+\\\\(\\\\s+|;\\\\s*)range\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*|join\\\\s+\\\\(\\\\s+|;\\\\s*)range\\\\s+\\\\w+\\\\s+from(?!.*\\\\bto)\\\\s+[^|]*[\\\\w\\\\)]+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeFromToStepRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*|join\\\\s+\\\\(\\\\s+|;\\\\s*)range(?!.*step)\\\\s+\\\\w+\\\\s+from\\\\s+[^|]+to\\\\s+[^|]+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_filteredColumnString="((^|\\\\|\\\\s*?)(filter|where)|\\\\b(and|or))\\\\s+(?\\\\S+?)\\\\s+",this.s_filteredColumnRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_filteredColumnString||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_filterPredicateRightValueRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_filteredColumnString||"")+"(\\\\=\\\\=|\\\\!\\\\=|\\\\>|\\\\<|\\\\<\\\\=|\\\\>\\\\=)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_makeSeriesByRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\|\\\\s*?)(make-series\\\\s+[^\\\\|]*\\\\bon\\\\s+[^\\\\|]+\\\\s+in\\\\s+range\\\\b\\\\([^\\\\|]+,[^\\\\|]+\\\\,[^\\\\|]+\\\\))\\\\s+by\\\\s+$|(^|\\\\|\\\\s*?)(make-series\\\\s+[^\\\\|]*\\\\bon\\\\s+[^\\\\|]+\\\\s+in\\\\s+range\\\\b\\\\([^\\\\|]+,[^\\\\|]+\\\\,[^\\\\|]+\\\\))\\\\s+by\\\\s+[^\\\\|]+?,\\\\s+$|(^|\\\\|\\\\s*?)(make-series\\\\s+[^\\\\|]*\\\\bon\\\\b)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchPrefixRegex="(^|;|\\\\|)\\\\s*search\\\\s+",this.s_searchContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchKindRegex="(kind\\\\s*=\\\\s*(case_sensitive|case_insensitive)\\\\s+)",this.s_searchAfterKindContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchKindRegex||"")+"$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchMoreContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"[^\\\\|]+(and|or)\\\\s+$|"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"[^\\\\|\\\\(\\\\)]*in\\\\s*\\\\("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\\\)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchKind_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor((Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchPrefixRegex||"")+"kind\\\\s*=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clientDirective_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*#$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clientDirectiveConnect_Regex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*#connect\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorOptions=Kusto.Data.IntelliSense.CslCommandParser.PromotedOperatorCommandTokens,this.s_renderOptions=Kusto.Data.IntelliSense.CslCommandParser.ChartRenderTypesTokens,this.s_renderKindOptions=Kusto.Data.IntelliSense.CslCommandParser.ChartRenderKindTokens,this.s_aggregateOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedSummarizeAggregators,this.s_makeSeriesAggregateOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedMakeSeriesAggregationTokens,this.s_extendOperationOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedExtendFunctions,this.s_databaseFunctionOptions=Bridge.global.System.Array.init(["database()"],Bridge.global.System.String),this.s_stringOperatorOptions=Bridge.global.System.Array.init(["==","!=","has","contains","startswith","matches regex","endswith","!has","!contains","=~","!~","in","!in","containscs","!containscs","!startswith","!endswith","hasprefix","!hasprefix","hassuffix","!hassuffix"],Bridge.global.System.String),this.s_numericOperatorOptions=Bridge.global.System.Array.init(["==","!=",">","<","<=",">="],Bridge.global.System.String),this.s_numericScalarsOptions=Bridge.global.System.Array.init(["1","10","100","1000"],Bridge.global.System.String),this.s_byKeywordOptions=Bridge.global.System.Array.init(["by"],Bridge.global.System.String),this.s_kindChooseKeywordOptions=Bridge.global.System.Array.init(["= simple","= regex","= relaxed"],Bridge.global.System.String),this.s_withOthersKeywordOptions=Bridge.global.System.Array.init(["with others = "],Bridge.global.System.String),this.s_ofKeywordOptions=Bridge.global.System.Array.init(["of"],Bridge.global.System.String),this.s_withKeywordOptions=Bridge.global.System.Array.init(["with"],Bridge.global.System.String),this.s_parseSuggestedTypesKeywordOptions=Bridge.global.System.Array.init(["long","int64","real","double","string","time","timespan","date","datetime","int"],Bridge.global.System.String),this.s_parseStarOption=Bridge.global.System.Array.init(["*"],Bridge.global.System.String),this.s_ascDescKeywordOptions=Bridge.global.System.Array.init(["asc","desc"],Bridge.global.System.String),this.s_nullsLastFirstKeywordOptions=Bridge.global.System.Array.init(["nulls last","nulls first"],Bridge.global.System.String),this.s_ascDescOrNullsLastNullsFirstKeywordOptions=Bridge.global.System.Array.init(["asc","desc","nulls last","nulls first"],Bridge.global.System.String),this.s_rangeFromOptions=Bridge.global.System.Array.init(["from"],Bridge.global.System.String),this.s_rangeFromToOptions=Bridge.global.System.Array.init(["to"],Bridge.global.System.String),this.s_rangeFromToStepOptions=Bridge.global.System.Array.init(["step"],Bridge.global.System.String),this.s_joinFlavorsOptions=Kusto.Data.IntelliSense.CslCommandParser.JoinKindTokens,this.s_postJoinOptions=Bridge.global.System.Array.init(["(","kind="],Bridge.global.System.String),this.s_kindKeywordOptions=Bridge.global.System.Array.init(["kind="],Bridge.global.System.String),this.s_searchInKeywordOptions=Bridge.global.System.Array.init(["in"],Bridge.global.System.String),this.s_searchLiteralsOptions=Bridge.global.System.Array.init([\'""\',"*"],Bridge.global.System.String),this.s_reduceByFlavorsOptions=Kusto.Data.IntelliSense.CslCommandParser.ReduceByKindTokens,this.s_datetimeOptions=Kusto.Data.IntelliSense.CslCommandParser.SortedDatetimeFunctions,this.s_timespanOptions=Bridge.global.System.Array.init(["30m","1h","12h","1d","3d","7d"],Bridge.global.System.String),this.s_negativeTimespanOptions=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_timespanOptions).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f1).ToArray(Bridge.global.System.String),this.s_postFindInOptions=Bridge.global.System.Array.init(["("],Bridge.global.System.String),this.s_findInEndOrContinueOptions=Bridge.global.System.Array.init([")",","],Bridge.global.System.String),this.s_findWhereInOptions=Bridge.global.System.Array.init(["where","in"],Bridge.global.System.String),this.s_findInPostListOptions=Bridge.global.System.Array.init(["where"],Bridge.global.System.String),this.s_makeSeriesDefaultOrOnOptions=Bridge.global.System.Array.init(["on","default="],Bridge.global.System.String),this.s_makeSeriesOnOptions=Bridge.global.System.Array.init(["on"],Bridge.global.System.String),this.s_makeSeriesInRangeOptions=Bridge.global.System.Array.init(["in range()"],Bridge.global.System.String),this.s_searchKindOptions=Bridge.global.System.Array.init(["case_sensitive","case_insensitive"],Bridge.global.System.String),this.s_clientDirectivesOptions=Bridge.global.System.Array.init(["connect"],Bridge.global.System.String),this.MultiColumnFunctionResultSuffixes=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f2(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Array.type(Bridge.global.System.String)))),this.s_afterFunctionsApplyPolicies=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SortedExtendFunctions).toDictionary(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f3,e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f4,Bridge.global.System.String,Bridge.global.Kusto.Data.IntelliSense.ApplyPolicy),this.s_filterKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f5(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f6(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectAwayKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f7(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectRenameKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f8(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_projectExtendKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f9(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_joinKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f10(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topSortOrderReduceKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f11(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_operatorsUsingByKeywordKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f12(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topSortOrderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f13(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topTopNestedSortOrderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f14(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_reduceKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f15(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_parseKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f16(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_renderKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f17(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topLimitTakeSampleKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f18(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_evaluateKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f19(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_summarizeKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f20(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_distinctKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f21(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topNestedKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f22(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_topHittersKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f23(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_sampleDistinctKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f24(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_operatorsRequestingAggregators=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f25(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_databaseKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f26(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_findKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f27(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_searchKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f28(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_makeSeriesKeywords=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f29(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_remoteContextRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?cluster\\\\((?[^\\\\)]+?)\\\\)\\\\.?)?((?database)\\\\((?[^\\\\)]*)\\\\))?(\\\\.(?(\\\\[.+?\\\\]|[\\\\w\\\\*]+))?)?",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_queryParametersRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("{\\\\w*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinClosureRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\)\\\\s*on\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_joinWithMakeSeriesClosureRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*make-series\\\\s+.*?\\\\b(on)\\\\b.*?\\\\)\\\\s*on\\\\b"),this.s_makeSeriesStartRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*make-series"),this.s_findSubClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*?|;)find\\\\s+[^\\\\|]*(where|project)\\\\s+[^\\\\|]*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_searchSubClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|\\\\s*?|;\\\\s*)search\\\\s+[^\\\\|]*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_rangeEntitiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?[\\\\w_]+)\\\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_parsedEntitiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(".*?with\\\\s+(?.+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeStringLiteralsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(\'.*?\'|\\".*?\\")",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeStringLiteralsSurroundedBySpacesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\s(\'.*?\'|\\".*?\\")\\\\s",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_removeCommentsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("//.+[\\\\r\\\\n]+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldInvalidCharacters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("[^\\\\w \\\\-\\\\.]",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldQuotableCharacters=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("[ \\\\-\\\\.\\\\[\\\\]]",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_aggregateOperatorToColumnPrefixMapping=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f30(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String))),this.s_lastCommandSegmentRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("union(\\\\s*\\\\(.*?\\\\)\\\\s*,)+\\\\s*\\\\((?.*$)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_incompleteJoinRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("join(?!.+\\\\bon\\\\b)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandClausesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^\\\\s*(?.*?)join|\\\\s*\\\\((?.+?)\\\\)\\\\s+on\\\\s+\\\\w+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_operatorsReplacingEntities=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f31(new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),this.s_withsourceExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("withsource\\\\s*=\\\\s*(?\\\\w+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_findProjectionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("project\\\\s+(?[^\\\\|]+)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_packRgx=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(,)?\\\\s*pack\\\\s*\\\\(\\\\s*\\\\*\\\\s*\\\\)\\\\s*",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_topNestedLevelExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(top-nested)?\\\\s*\\\\d+\\\\s+of\\\\s+(?[\\\\w_]+)\\\\s+by\\\\s+((?[\\\\w_]+)\\\\s*=\\\\s*)?(?.+?(,)?)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_sampleDistinctEntityExtractRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(sample-distinct)?\\\\s*\\\\d+\\\\s+of\\\\s+(?[\\\\w_\\\\(\\\\), ]+)\\\\s",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_aggregateOperatorsHash=new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).$ctor1)(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationTokens).union(Kusto.Data.IntelliSense.CslCommandParser.SummarizeAggregationAliasesTokens)),this.s_byKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\bby\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_byAndOnKeywordRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\b(by|on)\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_makeSeriesDropNonFieldsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(\\\\b(default\\\\s*\\\\=\\\\s*\\\\S+)\\\\b)|(\\\\bin\\\\s+range\\\\s*\\\\(\\\\s*\\\\S+\\\\s*,\\\\s*\\\\S+\\\\s*,\\\\s*\\\\S+\\\\s*\\\\))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_fieldMatchingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?[\\\\w_]+)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_numericSuffixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(?\\\\d+)$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_defaultContextPattern="(?(((cluster.+?)?database\\\\([^\\\\)]*\\\\)?\\\\.?(\\\\[.+?\\\\]|[\\\\w|\\\\d|*]+)?|\\\\[.+?\\\\])|[\\\\w\\\\d\\\\*]+))",this.s_commandContext_Join=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(".*join\\\\s.*?\\\\(\\\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Union=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("union\\\\s.*\\\\(\\\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_ToScalar=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("toscalar\\\\s*\\\\(\\\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Show=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?\\\\.show\\\\s+\\\\w+(\\\\s+\\\\w+)*)\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Range=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^(?range)\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Callable=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\{\\\\s+"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Let=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^let\\\\s.*?=\\\\s*(\\\\(.*?\\\\)\\\\s*\\\\{\\\\s*)?"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_ConnectDirective=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*#connect\\\\s+(?cluster\\\\(.+?\\\\)(.database\\\\(.+\\\\))?)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Find=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|.*;)((find\\\\s+[^\\\\|]*in\\\\s*\\\\((?("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"))\\\\))|(find\\\\s+[^\\\\|]*in\\\\s*\\\\(("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\\\s*,\\\\s*)?(((?((cluster.+\\\\.)?database\\\\([^\\\\)]*\\\\)))\\\\.)|(database\\\\((?))|((?(cluster.+\\\\.database\\\\())))))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContext_Search=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|.*;)((search\\\\s+[^\\\\|]*in\\\\s*\\\\((?("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"))\\\\))|(search\\\\s+[^\\\\|]*in\\\\s*\\\\(("+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_tablesScopeRegex||"")+"\\\\s*,\\\\s*)?(((?((cluster.+\\\\.)?database\\\\([^\\\\)]*\\\\)))\\\\.)|(database\\\\((?))|((?(cluster.+\\\\.database\\\\())))))",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandDefaultContext=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*"+(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_defaultContextPattern||""),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_twoOrMoreSpacesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\s\\\\s+",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showCommandFixRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(.show)(.*)(extents)",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_commandContextRegexes=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f32(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Object))),this.s_nonDefaultContextKeywordsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor(Bridge.toArray(Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContextRegexes.getKeys()).orderByDescending(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f33).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f34)).join("|"),Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions),this.s_letVariableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("(^|;)\\\\s*let\\\\s+(?\\\\w+)\\\\s*=",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_letStatementRegexList=e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f35(new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.Text.RegularExpressions.Regex).ctor))}},methods:{MapColumnsToTables:function(t){var n,i,r=new(Bridge.global.System.Collections.Generic.Dictionary$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)));if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity,t))return r;var s=new(Bridge.global.System.Collections.Generic.Dictionary$2(Kusto.Data.IntelliSense.KustoCommandContext,Bridge.global.System.Collections.Generic.IEnumerable$1(Bridge.global.System.String)));n=Bridge.getEnumerator(t,Kusto.Data.IntelliSense.KustoIntelliSenseTableEntity);try{for(;n.moveNext();){var a=n.Current;s.add(new Kusto.Data.IntelliSense.KustoCommandContext(a.Name),Bridge.global.System.Linq.Enumerable.from(a.Columns).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f36))}}finally{Bridge.is(n,Bridge.global.System.IDisposable)&&n.System$IDisposable$Dispose()}i=Bridge.getEnumerator(s);try{for(;i.moveNext();){var l=i.Current;r.set(l.key,Bridge.global.System.Linq.Enumerable.from(l.value).orderBy(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f37).toList(Bridge.global.System.String))}}finally{Bridge.is(i,Bridge.global.System.IDisposable)&&i.System$IDisposable$Dispose()}return r},ParseCommandClauses:function(e){var t;if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_incompleteJoinRegex.isMatch(e))return Bridge.global.System.Array.init([e],Bridge.global.System.String);var n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandClausesRegex.matches(e);if(0===n.getCount())return Bridge.global.System.Array.init([e],Bridge.global.System.String);var i=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);t=Bridge.getEnumerator(n);try{for(;t.moveNext();){var r=(Bridge.cast(t.Current,Bridge.global.System.Text.RegularExpressions.Match).getGroups().getByName("Clause").toString()||"")+" | ";Bridge.global.System.String.isNullOrWhiteSpace(r)||i.add(r)}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return i.add(e),i},BuildOpEntitiesMap:function(e){var t,n=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.String)),i=Bridge.global.System.Linq.Enumerable.from(Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.ParseAsStatements(e,124,!1)).reverse();t=Bridge.getEnumerator(i);try{for(;t.moveNext();){var r=t.Current;if(!Bridge.global.System.String.isNullOrWhiteSpace(r)){if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_joinClosureRegex.isMatch(r)){if(!Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_makeSeriesStartRegex.isMatch(r))continue;if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_joinWithMakeSeriesClosureRegex.isMatch(r))continue}if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_searchSubClausesRegex.isMatch(r))n.containsKey("search")||n.add("search","");else if(Bridge.global.System.String.endsWith(r,"|")||Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_findSubClausesRegex.isMatch(r)){var s=Bridge.global.System.String.split(r,Bridge.global.System.Array.init([32,13,10],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),2,1);if(2===s.length){var a=s[Bridge.global.System.Array.index(0,s)],l=Bridge.referenceEquals(a,"find")?s[Bridge.global.System.Array.index(1,s)]:Kusto.Cloud.Platform.Utils.ExtendedString.TrimEnd(s[Bridge.global.System.Array.index(1,s)],"|");if(n.containsKey(a)?n.set(a,(n.get(a)||"")+","+(l||"")):n.add(a,l),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_operatorsReplacingEntities.contains(a))break}}}}}finally{Bridge.is(t,Bridge.global.System.IDisposable)&&t.System$IDisposable$Dispose()}return n},HandleParseEntities:function(e,t,n,i){var r,s={v:null};if(!n.tryGetValue("parse",s))return t;var a=!1,l=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_parsedEntitiesRegex.match(s.v);if(l.getSuccess()){var o=l.getGroups().getByName("Entities").toString(),u=Bridge.global.System.String.split(o,Bridge.global.System.Array.init([42,32],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);r=Bridge.getEnumerator(u);try{for(;r.moveNext();){var d=r.Current.trim();!Bridge.global.System.String.isNullOrEmpty(d)&&Bridge.global.System.Char.isLetter(d.charCodeAt(0))&&(d=Kusto.Cloud.Platform.Utils.ExtendedString.SplitFirst(d,":"),a=!!(a|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,d)))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}return a?Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities:t},HandleReduceByEntities:function(e,t,n,i){return n.tryGetValue("reduce",{v:null})?(e.AddRange(Bridge.global.System.Array.init(["Pattern","Count"],Bridge.global.System.String)),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities):t},HandleGetSchemaEntities:function(e,t,n,i){return n.tryGetValue("getschema",{v:null})?(e.AddRange(Bridge.global.System.Array.init(["ColumnName","ColumnOrdinal","DataType","ColumnType"],Bridge.global.System.String)),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities):t},HandleRangeEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("range",r))return t;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_rangeEntitiesRegex.match(r.v);if(s.getSuccess()){var a=s.getGroups().getByName("Field").toString();e.contains(a)||(e.add(a),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities)}return t},HandlePrintEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("print",r))return t;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_rangeEntitiesRegex.match(r.v);if(s.getSuccess()){var a=s.getGroups().getByName("Field").toString();e.contains(a)||(e.add(a),t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities)}return t},HandleProjectEntities:function(e,t,n,i){var r={v:null};return n.tryGetValue("project",r)?(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromListWithImplicitColumns(e,r.v)&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t):t},HandleProjectAwayEntities:function(e,t,n,i){var r,s,a={v:null};if(!n.tryGetValue("project-away",a))return t;var l=Kusto.Data.IntelliSense.ExpressionEntityParser.ParseEntities(a.v),o=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);r=Bridge.getEnumerator(l);try{for(;r.moveNext();){var u=r.Current.Name;e.contains(u)?e.remove(u):o.add(u)}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}if(Bridge.global.System.Linq.Enumerable.from(o).any()&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e)){var d=null!=i?i:new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);s=Bridge.getEnumerator(Bridge.global.System.Linq.Enumerable.from(d).except(o));try{for(;s.moveNext();){var g=s.Current;Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,g)}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}}return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities},HandleMvexpandEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("mvexpand",r))return t;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromList(e,r.v);return t===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None&&s&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities),t},HandleTopNestedEntities:function(e,t,n,i){var r,s={v:null},a=!1;if(!n.tryGetValue("top-nested",s))return t;var l=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_topNestedLevelExtractRegex.matches(s.v);l.getCount()>0&&(a=!0),r=Bridge.getEnumerator(l);try{for(;r.moveNext();){var o=r.Current,u=Bridge.as(o,Bridge.global.System.Text.RegularExpressions.Match),d=u.getGroups().getByName("InputColumn").toString();Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,d);var g=u.getGroups().getByName("ReanmingColumn").toString();Bridge.global.System.String.isNullOrEmpty(g)&&(g="aggregated_"+(d||"")),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,g)}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}return a&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleExtendEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("extend",r))return t;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromListWithImplicitColumns(e,r.v);return t===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None&&s&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities),t},HandleSampleDistinctEntities:function(e,t,n,i){var r={v:null};if(!n.tryGetValue("sample-distinct",r))return t;var s=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_sampleDistinctEntityExtractRegex.match(r.v);if(!s.getSuccess())return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.None;var a=s.getGroups().getByName("InputColumn").toString();return Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleAggregationEntities(e,a,i)},GenerateImplicitEntitiesForFunction:function(e,t,n,i){var r,s;if(0!==n||Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.ExpressionEntity,t)||!Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.MultiColumnFunctionResultSuffixes.containsKey(e))return!1;var a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.MultiColumnFunctionResultSuffixes.get(e);if(a.length0){var o=i.toString();e=(this.InjectFunctionsAsLetStatementsIfNeeded(o,t)||"")+(e||"")}}return e},ResolveEntitiesFromClause:function(e,t,n,i){var r=this.InjectFunctionsAsLetStatementsIfNeeded(i,new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor)),s=this.AnalyzeStatementsImpl(r,!1).Command;if(Bridge.global.System.String.isNullOrWhiteSpace(s))return n.v;var a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.BuildOpEntitiesMap(s);return n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleRangeEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandlePrintEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleProjectEntities(e,n.v,a,t),n.v=this.HandleFindEntities(e,n.v,a,t),n.v=this.HandleSearchEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleExtendEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleMvexpandEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleSummarizeEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleMakeSeriesEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleTopNestedEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleReduceByEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleParseEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleGetSchemaEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleSampleDistinctEntities(e,n.v,a,t),n.v===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities?t=e:n.v===Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.AppendEntities&&(t=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,t)?e:Bridge.global.System.Linq.Enumerable.from(t).union(e).toList(Bridge.global.System.String)),n.v=this.HandleProjectRenameEntities(e,n.v,a,t),n.v=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.HandleProjectAwayEntities(e,n.v,a,t),n.v},HandleFindEntities:function(e,t,n,i){var r,s,a,l={v:null};if(!n.tryGetValue("find",l))return t;var o=!1,u=Bridge.global.System.String.endsWith(l.v,"|");if(l.v=Kusto.Cloud.Platform.Utils.ExtendedString.TrimEnd(l.v,"|"),u){var d=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_findProjectionRegex.match(l.v);if(d.getSuccess()){var g=d.getGroups().getByName("projectedList").getValue(),c=g;g=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_packRgx.replace(g,""),Bridge.referenceEquals(g,c)||(o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_")));var m=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor);if(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveEntitiesFromList(m,g)){var h=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.IntersectWith(Bridge.global.System.String,m,i);r=Bridge.getEnumerator(h,Bridge.global.System.String);try{for(;r.moveNext();){var f=r.Current;o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,f))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}}else{if(null!=i){s=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;s.moveNext();){var p=s.Current;o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,p))}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}}o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_"))}var S=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_withsourceExtractRegex.match(l.v),y=S.getSuccess()?S.getGroups().getByName("tableNameColumn").getValue():"source_";o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,y)),d.getSuccess()||(o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,"pack_")))}else if(null!=i){a=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;a.moveNext();){var b=a.Current;o=!!(o|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,b))}}finally{Bridge.is(a,Bridge.global.System.IDisposable)&&a.System$IDisposable$Dispose()}}return o&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleSearchEntities:function(e,t,n,i){var r;if(!n.tryGetValue("search",{v:null}))return t;var s=!1;if(null!=i){r=Bridge.getEnumerator(i,Bridge.global.System.String);try{for(;r.moveNext();){var a=r.Current;s=!!(s|Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddFieldIfNotPresent(e,a))}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}}return s&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},HandleProjectRenameEntities:function(e,t,n,i){var r,s,a={v:null};if(!n.tryGetValue("project-rename",a))return t;var l=new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor),o=!1,u=Bridge.global.System.String.split(a.v,Bridge.global.System.Array.init([44],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,u))return t;var d=Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.String,e);r=Bridge.getEnumerator(u);try{for(;r.moveNext();){var g=r.Current,c=Bridge.global.System.String.split(g,Bridge.global.System.Array.init([61],Bridge.global.System.Char).map(function(e){return String.fromCharCode(e)}),null,1);if(2===c.length){var m=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(c[Bridge.global.System.Array.index(0,c)]),h=Kusto.Data.IntelliSense.ExpressionEntityParser.UnescapeEntityName(c[Bridge.global.System.Array.index(1,c)]);Bridge.global.System.String.isNullOrEmpty(m)||Bridge.global.System.String.isNullOrEmpty(h)||Bridge.global.System.String.equals(m,h,4)||(l.add(h),e.contains(h)&&(e.remove(h),o=!0),e.contains(m)||(Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,m),o=!0))}}}finally{Bridge.is(r,Bridge.global.System.IDisposable)&&r.System$IDisposable$Dispose()}if(Bridge.global.System.Linq.Enumerable.from(l).any()&&d&&Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,i)){s=Bridge.getEnumerator(Bridge.global.System.Linq.Enumerable.from(i).except(l));try{for(;s.moveNext();){var f=s.Current;Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.AddEscapedEntityName(e,f)}}finally{Bridge.is(s,Bridge.global.System.IDisposable)&&s.System$IDisposable$Dispose()}}return o&&(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveResult.ReplaceEntities),t},AnalyzeCommand$1:function(e,t){var n=this.InjectFunctionsAsLetStatementsIfNeeded(e,new(Bridge.global.System.Collections.Generic.HashSet$1(Bridge.global.System.String).ctor));if(null!=t&&null!=t.ContextCache&&(this.ContextCache=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.Int32,Kusto.Data.IntelliSense.KustoCommandContext))(t.ContextCache)),Bridge.global.System.String.indexOf(n,String.fromCharCode(59))<0){var i=new Kusto.Data.IntelliSense.AnalyzedCommand;return i.Command=e,i.Context=this.ResolveContextFromCommand(n),i}return this.AnalyzeStatementsImpl(n,!0)},AnalyzeCommand:function(e,t){var n;if(Bridge.global.System.String.isNullOrWhiteSpace(t))return e;if(null==e||Bridge.global.System.String.isNullOrEmpty(e.Command))return this.AnalyzeCommand$1(t,null);var i=(e.Command||"")+(t||"");return Bridge.global.System.String.indexOf(t,String.fromCharCode(59))>=0||Bridge.global.System.String.endsWith(e.Command.trim(),";")||Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_nonDefaultContextKeywordsRegex.isMatch(t)?this.AnalyzeCommand$1(i,null):((n=new Kusto.Data.IntelliSense.AnalyzedCommand).Command=i,n.Context=e.Context,n)},ResolveContextFromCommand:function(e){var t;if(Bridge.global.System.String.isNullOrWhiteSpace(e))return Kusto.Data.IntelliSense.KustoCommandContext.Empty;var n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeStringLiteralsSurroundedBySpacesRegex.replace(e," ");n=(n=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeCommentsRegex.replace(n,"")).trim();var i=Bridge.getHashCode(n);if(this.m_contextCache.containsKey(i))return this.m_contextCache.get(i);var r="",s=Kusto.Data.IntelliSense.ContextOperation.Intersect,a=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_nonDefaultContextKeywordsRegex.matches(n),l=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.GetLatestMatch(a),o=!1,u=!1;if(null!=l){var d=l.getGroups().get(0).toString(),g={};Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContextRegexes.tryGetValue(d,g)&&(r=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveContextUsingRegex(n,g.v,l.getIndex())),o=Bridge.referenceEquals(d,"find"),(u=Bridge.referenceEquals(d,"search"))&&!Bridge.global.System.String.isNullOrEmpty(r)&&(s=Kusto.Data.IntelliSense.ContextOperation.Union)}if(o&&Bridge.referenceEquals(r,"")&&(r="database(\'*\')"),Bridge.global.System.String.isNullOrEmpty(r))if(o)r="*";else{var c={Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandDefaultContext,Item2:null};r=null!=(t=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveContextUsingRegex(n,c,0))?t:"",u&&Bridge.global.System.String.equals(r,"search")&&(r="*",s=Kusto.Data.IntelliSense.ContextOperation.Union)}var m=Bridge.global.System.String.isNullOrEmpty(r)?Kusto.Data.IntelliSense.KustoCommandContext.Empty:new Kusto.Data.IntelliSense.KustoCommandContext(r,s);return this.m_contextCache.set(i,m),m},AnalyzeStatementsImpl:function(e,t){var n=new Kusto.Data.IntelliSense.AnalyzedCommand,i=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ResolveLetExpressions(e);if(n.Command=Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.FindLastStatement(e),(t||i.count>0)&&(n.Context=this.ResolveContextFromCommand(n.Command)),0===i.count)return n;for(;i.containsKey(n.Context.Context);){var r=i.get(n.Context.Context),s=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\b"+(n.Context.Context||"")+"\\\\b(\\\\(.*?\\\\))?");n.Command=s.replace(n.Command,r),i.remove(n.Context.Context),n.Context=this.ResolveContextFromCommand(r)}return n},GetKnownEntities:function(e,t,n,i,r){var s={};return this.TryMatchSpecificRule(e,t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForFilterInFind,s)?(i.v=Bridge.global.System.Linq.Enumerable.from(s.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0):this.TryMatchSpecificRule((e||"")+" project ",t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProjectInFind,s)?(i.v=Bridge.global.System.Linq.Enumerable.from(s.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0):(e=(e||"")+" | project ",!!this.TryMatchSpecificRule(e,t,Kusto.Data.IntelliSense.RuleKind.YieldColumnNamesForProject,s)&&(i.v=Bridge.global.System.Linq.Enumerable.from(s.v.GetOptions(t)).toList(Bridge.global.System.String),n.containsKey(t)||n.set(t,i.v),r.v=n.get(t),!0))},LoadCommandToolTips:function(){var e,t=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTip).ctor);this.CommandToolTips=t;var n=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="tostring",e.Summary="Converts the given value to string",e.Usage="... | extend str = tostring(Column1)",e),i=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);n.Parameters=i,i.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="value",e.Description="The value to convert to string",e)),t.add(n);var r=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="strlen",e.Summary="Returns the length of the given string",e.Usage="... | extend length = strlen(Column1)",e),s=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);r.Parameters=s,s.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string being measured for length",e)),t.add(r);var a=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="hash",e.Summary="Returns the xxhash value of a scalar value",e.Usage="... | extend hash = hash(Column1, 100)",e),l=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);a.Parameters=l,l.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="Every scalar type except Dynamic",e.Name="target",e.Description="The value the hash is calculated on",e)),l.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="modulo",e.Description="The modulo value to be applied on the hash result",e)),t.add(a);var o=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="iff",e.Summary="Returns one of two values, depending on whether the Boolean expression evaluates to true or false",e.Usage="... | extend val = iff(strlen(Column1) > 10, \'long\', \'short\')",e),u=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);o.Parameters=u,u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="bool",e.Name="expression",e.Description="The Boolean expression you want to evaluate",e)),u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="trueValue",e.Description=" Returned if \'expression\' evaluates to True",e)),u.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="falseValue",e.Description="Returned if \'expression\' evaluates to False",e)),t.add(o);var d=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="extract",e.Summary="Produces a scalar using a regular expression (RE2 reference)",e.Usage="... | extend number = extract(@\'(\\\\d+)\', 1, Column1, typeof(int))",e),g=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);d.Parameters=g,g.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="regex",e.Description="The regular expression to be applied",e)),g.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="int",e.Name="groupIndex",e.Description="The index of the matching group (1 = 1st matching group in regex, 2 = 2nd matching group, etc.)",e)),g.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),g.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="typename typeof(T)",e.Name="type",e.Description="Optional type to convert the result to",e.Optional=!0,e)),t.add(d);var c=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="replace",e.Summary="Replace a string with another string using a regular expression (RE2 reference)",e.Usage="... | replace str = replace(@\'foo\', @\'bar\', Column1)",e),m=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);c.Parameters=m,m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="matchingPattern",e.Description="String or regular expression to be applied for matching",e)),m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="rewritePattern",e.Description="String or regular expression to be used for rewrite (\\\\1 = 1st matching group in regex, \\\\2 = 2nd matching group, etc.)",e)),m.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),t.add(c);var h=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="extractjson",e.Summary="Produces a scalar using a JSONPath expression (JSONPath reference)",e.Usage="... | extend number = extractjson(@\'$.Object.Property\', Column1, typeof(int))",e),f=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);h.Parameters=f,f.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="jsonPath",e.Description="The JSON Path expression to be used",e)),f.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="column",e.Name="columnName",e.Description="Specify column to operate on (can be calculated column)",e)),f.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="typename typeof(T)",e.Name="type",e.Description="Optional type to convert the result to",e.Optional=!0,e)),t.add(h);var p=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="parsejson",e.Summary="Converts a JSON string into a value of type \'dynamic\' (an object), whose properties can be further accessed using dot or bracket notation",e.Usage="... | extend obj = parsejson(Column1)",e),S=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);p.Parameters=S,S.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="columnName",e.Description="Any valid query expression that returns a string (e.g. a column name)",e)),t.add(p);var y=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="toupper",e.Summary="Converts the given string to upper case",e.Usage="... | extend upper = topupper(Column1)",e),b=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);y.Parameters=b,b.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be converted to upper case",e)),t.add(y);var I=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="tolower",e.Summary="Converts the given string to lower case",e.Usage="... | extend lower = tolower(Column1)",e),T=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);I.Parameters=T,T.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be converted to lower case",e)),t.add(I);var B=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="substring",e.Summary="Retrieves a substring from the given string",e.Usage="... | extend substr = substring(Column1,1,3)",e),C=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);B.Parameters=C,C.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="The string to be substringed",e)),C.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="startIndex",e.Description="The zero-based starting character position of a substring in this instance",e)),C.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="long",e.Name="count",e.Description="The number of characters in the substring",e.Optional=!0,e)),t.add(B);var x=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="split",e.Summary="Retrieves a string array that contains the substrings of the given source string that are delimited by the given delimiter",e.Usage=\'... | extend split = split(Column1,";")\',e),_=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);x.Parameters=_,_.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="source",e.Description="The string to be splitted",e)),_.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="delimiter",e.Description="The delimiter on which the split will be based on",e)),_.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="index",e.Description="The index of the requested substring",e.Optional=!0,e)),t.add(x);var w=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="strcat",e.Summary="Concatenates several strings together (up-to 16 parameters)",e.Usage="... | extend s = strcat(\'KU\', \'S\', \'TO\')",e),v=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);w.Parameters=v,v.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="value",e.Description="First part",e)),v.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="values",e.Description="Other parts",e.IsArgsArray=!0,e.Optional=!0,e)),t.add(w);var R=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="countof",e.Summary="Returns the number of pattern matches in the given string",e.Usage="... | extend matches = countof(Expression, Pattern, Type)",e),K=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);R.Parameters=K,K.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Expression",e.Description="The string to match the pattern to",e)),K.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Pattern",e.Description="The pattern to match the expression to. Can be a regular expression",e)),K.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="string",e.Name="Type",e.Description="For substring count leave empty or specifiy \'normal\', for regular expression count specify \'regex\'",e)),t.add(R);var A=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentile",e.Summary="Returns the estimated value for the given percentile over source values",e.Usage="... | summarize percentile(source, percent) ...",e),D=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);A.Parameters=D,D.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),D.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e)),t.add(A);var E=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentiles",e.Summary="Returns the estimated value for each of the given percentiles over source values",e.Usage="... | summarize percentiles(source, percent, ...) ...",e),$=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);E.Parameters=$,$.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),$.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e.IsArgsArray=!0,e)),t.add(E);var P=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentilew",e.Summary="Returns the estimated value for the given percentile over weighted source values",e.Usage="... | summarize percentilew(source, weight, percent) ...",e),O=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);P.Parameters=O,O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Weight",e.Description="Range of weights to give to each source value",e)),O.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e)),t.add(P);var k=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="percentilesw",e.Summary="Returns the estimated value for each of the given percentiles over weighted source values",e.Usage="... | summarize percentilesw(source, weight, percent, ...) ...",e),N=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);k.Parameters=N,N.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Source",e.Description="Range of values over which to estimate percentile",e)),N.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Weight",e.Description="Range of weights to give to each source value",e)),N.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="real",e.Name="percent",e.Description="Value in the range [0..100] giving the percentile to estimate",e.IsArgsArray=!0,e)),t.add(k);var F=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="ingestion_time",e.Summary="returns a datetime value specifying when the record was first available for query",e.Usage="... | extend length = ingestiontime()",e);F.Parameters=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor),t.add(F);var L=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="countif",e.Summary="Returns the number of rows that matches the predicate",e.Usage="... | summarize countif(Predicate)",e),U=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);L.Parameters=U,U.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),t.add(L);var M=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="dcountif",e.Summary="Returns the number of unique values of Expression in rows that matches the predicate",e.Usage="... | summarize dcountif(Expression, Predicate, Accuracy)",e),q=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);M.Parameters=q,q.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="T",e.Name="Expression",e.Description="The unique values to count",e)),q.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),q.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="integer",e.Name="Accuracy",e.Description="Optional. Controls the balance between speed and accuracy",e)),t.add(M);var z=((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTip).Name="sumif",e.Summary="Returns the sum of rows that matches the predicate",e.Usage="... | summarize sumif(Predicate, Column)",e),G=new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).ctor);z.Parameters=G,G.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="boolean",e.Name="Predicate",e.Description="Boolean expression used as predicate",e)),G.add(((e=new Kusto.Data.IntelliSense.IntelliSenseCommandTipParameter).DataType="numeric or DateTime or TimeSpan",e.Name="Column",e.Description="Column or other scalar funciton to calculate the sum of",e)),t.add(z)}}}),Bridge.define("$AnonymousType$1",e,{$kind:"anonymous",ctors:{ctor:function(e,t,n){this.Name=e,this.ParentTableName=t,this.TypeCode=n}},methods:{equals:function(t){return!!Bridge.is(t,e.$AnonymousType$1)&&Bridge.equals(this.Name,t.Name)&&Bridge.equals(this.ParentTableName,t.ParentTableName)&&Bridge.equals(this.TypeCode,t.TypeCode)},getHashCode:function(){return Bridge.addHash([7550196186,this.Name,this.ParentTableName,this.TypeCode])},toJSON:function(){return{Name:this.Name,ParentTableName:this.ParentTableName,TypeCode:this.TypeCode}}},statics:{methods:{$metadata:function(){return{m:[{a:2,n:"Name",t:16,rt:Bridge.global.System.String,g:{a:2,n:"get_Name",t:8,rt:Bridge.global.System.String,fg:"Name"},fn:"Name"},{a:2,n:"ParentTableName",t:16,rt:Bridge.global.System.String,g:{a:2,n:"get_ParentTableName",t:8,rt:Bridge.global.System.String,fg:"ParentTableName"},fn:"ParentTableName"},{a:2,n:"TypeCode",t:16,rt:Kusto.Data.IntelliSense.EntityDataType,g:{a:2,n:"get_TypeCode",t:8,rt:Kusto.Data.IntelliSense.EntityDataType,fg:"TypeCode",box:function(e){return Bridge.box(e,Kusto.Data.IntelliSense.EntityDataType,Bridge.global.System.Enum.toStringFn(Kusto.Data.IntelliSense.EntityDataType))}},fn:"TypeCode"}]}}}}}),Bridge.ns("Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider,{f1:function(e){return"-"+(e||"")},f2:function(e){return e.add("series_stats",Bridge.global.System.Array.init(["min","min_idx","max","max_idx","avg","stdev","variance"],Bridge.global.System.String)),e.add("series_fit_line",Bridge.global.System.Array.init(["rsquare","slope","variance","rvariance","interception","line_fit"],Bridge.global.System.String)),e.add("series_fit_2lines",Bridge.global.System.Array.init(["rsquare","split_idx","variance","rvariance","line_fit","right_rsquare","right_slope","right_interception","right_variance","right_rvariance","left_rsquare","left_slope","left_interception","left_variance","left_rvariance"],Bridge.global.System.String)),e.add("series_periods_detect",Bridge.global.System.Array.init(["periods","scores"],Bridge.global.System.String)),e.add("series_periods_validate",Bridge.global.System.Array.init(["periods","scores"],Bridge.global.System.String)),e},f3:function(e){return e},f4:function(e){return Kusto.Data.IntelliSense.ApplyPolicy.AppendSpaceStepBackPolicy},f5:function(e){return e.add("filter"),e.add("where"),e},f6:function(e){return e.add("project"),e},f7:function(e){return e.add("project-away"),e},f8:function(e){return e.add("project-rename"),e},f9:function(e){return e.add("project"),e.add("extend"),e},f10:function(e){return e.add("join"),e},f11:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("reduce"),e.add("top-nested"),e},f12:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("reduce"),e.add("top-nested"),e.add("render"),e},f13:function(e){return e.add("top"),e.add("order"),e.add("sort"),e},f14:function(e){return e.add("top"),e.add("top-hitters"),e.add("order"),e.add("sort"),e.add("top-nested"),e},f15:function(e){return e.add("reduce"),e},f16:function(e){return e.add("parse"),e},f17:function(e){return e.add("render"),e},f18:function(e){return e.add("top"),e.add("limit"),e.add("take"),e.add("top-nested"),e.add("top-hitters"),e.add("sample"),e.add("sample-distinct"),e},f19:function(e){return e.add("evaluate"),e},f20:function(e){return e.add("summarize"),e},f21:function(e){return e.add("distinct"),e},f22:function(e){return e.add("top-nested"),e},f23:function(e){return e.add("top-hitters"),e},f24:function(e){return e.add("sample-distinct"),e},f25:function(e){return e.add("top-nested"),e.add("top-hitters"),e.add("summarize"),e.add("distinct"),e},f26:function(e){return e.add("database"),e},f27:function(e){return e.add("find"),e},f28:function(e){return e.add("search"),e},f29:function(e){return e.add("make-series"),e},f30:function(e){return e.add("cnt","count"),e.add("percentiles","percentile"),e.add("percentilew","percentile"),e.add("percentilesw","percentile"),e.add("makelist","list"),e.add("makeset","set"),e},f31:function(e){return e.add("join"),e.add("project"),e.add("summarize"),e.add("reduce"),e.add("getschema"),e.add("distinct"),e},f32:function(e){return e.add("join",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Join,Item2:null}),e.add(".show",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Show,Item2:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_showCommandFixRegex}),e.add("range",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Range,Item2:null}),e.add("toscalar",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_ToScalar,Item2:null}),e.add("{",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Callable,Item2:null}),e.add("let",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Let,Item2:null}),e.add("union",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Union,Item2:null}),e.add("find",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Find,Item2:null}),e.add("search",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_Search,Item2:null}),e.add("#connect",{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_commandContext_ConnectDirective,Item2:null}),e},f33:function(e){return e},f34:function(e){return Bridge.global.System.Text.RegularExpressions.Regex.escape(e)},f35:function(e){return e.add(new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\blet\\\\s+(?\\\\w+)\\\\s*=.*?\\\\{(?.+?)\\\\}",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)),e.add(new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\blet\\\\s+(?\\\\w+)\\\\s*=\\\\s*(?.+?);",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions)),e},f36:function(e){return e.Name},f37:function(e){return e},f38:function(e){return(e.getGroups().get(1).getValue()||"")+" "+(e.getGroups().get(3).getValue()||"")},f39:function(e){return e.add("kind=",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("(",Kusto.Data.IntelliSense.ApplyPolicy.AppendJoinClauseWithoutOpenningBracketPolicy),e},f40:function(e){var t;return e.add("timechart",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" with \'cats\' ",t)),e.add("barchart",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" with \'dogs\' ",t)),e},f41:function(e){var t;return e.add("autocluster",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e.add("diffpatterns",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=\'("split= ")\',t.OffsetToken="=",t.OffsetPosition=2,t)),e.add("basket",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e.add("extractcolumns",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="()",t.OffsetToken=")",t.OffsetPosition=0,t)),e},f42:function(e){return e.add("where",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClausePolicy),e},f43:function(e){return e.add("(",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClauseWithoutOpenningBracketPolicy),e},f44:function(e){var t;return e.add(")",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" where ",t)),e.add(",",Kusto.Data.IntelliSense.ApplyPolicy.AppendFindInClauseWithoutOpenningBracketPolicy),e},f45:function(e){return e.add(\'""\',Kusto.Data.IntelliSense.ApplyPolicy.AppendSpaceStepBackPolicy),e.add("kind=",Kusto.Data.IntelliSense.ApplyPolicy.NullApplyPolicy),e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendSearchInClausePolicy),e},f46:function(e){return e.value},f47:function(e){return e.toLowerCase()},f48:function(e){return e},f49:function(e){return e.Name},f50:function(e){return e.value},f51:function(e){return e.Tables},f52:function(t){return Bridge.global.System.Linq.Enumerable.from(t.Columns).select(e.$.Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.f36)},f53:function(e){return"\'"+(e||"")+"\'"},f54:function(e){return"\'"+(e||"")+"\'"},f55:function(e){return"\'"+(e.Name||"")+"\'"},f56:function(e){return!e.IsInvisible},f57:function(e){return e},f58:function(e){return e.CallName},f59:function(e){return Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy},f60:function(e){return(e.Name||"")+"()"},f61:function(e){return e},f62:function(e){return e.Name},f63:function(e){return{Item1:Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_removeCommentsRegex.replace(e.Expression,""),Item2:new Bridge.global.System.Text.RegularExpressions.Regex.ctor("\\\\b"+(e.Name||"")+"\\\\b",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.DefaultRegexOptions)}},f64:function(e){return"cluster(\'"+(e||"")+"\')"},f65:function(t){return Bridge.global.System.Linq.Enumerable.from(t.Columns).select(function(n){return new e.$AnonymousType$1(n.Name,t.Name,n.TypeCode)})},f66:function(e){return e.TypeCode===Kusto.Data.IntelliSense.EntityDataType.String},f67:function(e){return Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.ParentTableName,e.Name)},f68:function(e){return Kusto.Data.IntelliSense.ContextualTokensWithRegexIntelliSenseRule.GetHashStringForContextAndToken(e.Name,"*")},f69:function(e){return e.add("in",Kusto.Data.IntelliSense.ApplyPolicy.AppendStringLiteralArrayPolicy),e.add("!in",Kusto.Data.IntelliSense.ApplyPolicy.AppendStringLiteralArrayPolicy),e},f70:function(e){return e.TypeCode!==Kusto.Data.IntelliSense.EntityDataType.String},f71:function(e){return e.TypeCode===Kusto.Data.IntelliSense.EntityDataType.DateTime}}),Bridge.define("Kusto.Data.IntelliSense.RegexIntelliSenseRule",{inherits:[Kusto.Data.IntelliSense.IntelliSenseRule],props:{MatchingRegex:null,Options:null,AdditionalOptions:null,RequiresFullCommand:{get:function(){return!1}},IsContextual:{get:function(){return!1}}},methods:{IsMatch:function(e,t){return!!this.MatchingRegex.isMatch(t)},GetOptions:function(t){var n=this.Options.Values;return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions)?n:Bridge.global.System.Linq.Enumerable.from(n).union(Bridge.global.System.Linq.Enumerable.from(this.AdditionalOptions).selectMany(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f1))},GetCompletionOptions:function(t){return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.CompletionOptionCollection,this.AdditionalOptions)?this.Options.GetCompletionOptions():Bridge.global.System.Linq.Enumerable.from(Bridge.fn.bind(this,e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f2)(new(Bridge.global.System.Collections.Generic.List$1(Kusto.Data.IntelliSense.CompletionOptionCollection).ctor))).concat(this.AdditionalOptions).orderByDescending(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f3).selectMany(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule.f4)}}}),Bridge.ns("Kusto.Data.IntelliSense.RegexIntelliSenseRule",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.RegexIntelliSenseRule,{f1:function(e){return e.Values},f2:function(e){return e.add(this.Options),e},f3:function(e){return e.Priority},f4:function(e){return e.GetCompletionOptions()}}),Bridge.define("Kusto.UT.IntelliSenseRulesTests.RemoteSchemaResolverMock",{inherits:[Kusto.Data.IntelliSense.IKustoIntelliSenseSchemaResolver],$kind:"nested class",fields:{s_dbMap:null,s_clusterDatabasesMap:null},alias:["ResolveDatabaseNames","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseNames","ResolveDatabaseSchema","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseSchema","ResolveDatabaseSchema$1","Kusto$Data$IntelliSense$IKustoIntelliSenseSchemaResolver$ResolveDatabaseSchema$1"],ctors:{ctor:function(){var e;this.$initialize(),this.s_dbMap=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity)),this.s_clusterDatabasesMap=new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String)));var t=Kusto.UT.IntelliSenseRulesTests.GenerateKustoEntities(null,null);e=Bridge.getEnumerator(Bridge.global.System.Array.init([{Item1:"",Item2:"db1"},{Item1:"other",Item2:"db2"}],Bridge.global.System.Object));try{for(;e.moveNext();){var n=e.Current,i=(n.Item1||"")+":"+(n.Item2||"");this.s_dbMap.set(i,Bridge.global.System.Linq.Enumerable.from(t.Databases).first()),this.s_clusterDatabasesMap.containsKey(n.Item1)||this.s_clusterDatabasesMap.set(n.Item1,new(Bridge.global.System.Collections.Generic.List$1(Bridge.global.System.String).ctor)),this.s_clusterDatabasesMap.get(n.Item1).add(n.Item2)}}finally{Bridge.is(e,Bridge.global.System.IDisposable)&&e.System$IDisposable$Dispose()}}},methods:{ResolveDatabaseNames:function(e){var t={};return this.s_clusterDatabasesMap.tryGetValue(e,t),t.v},ResolveDatabaseSchema:function(e,t){var n=(e||"")+":"+(t||"");return this.s_dbMap.containsKey(n)?this.s_dbMap.get(n):null},ResolveDatabaseSchema$1:function(e,t,n){var i=(e||"")+":"+(t||""),r=Bridge.global.System.Linq.Enumerable.from(this.s_dbMap).where(function(t){return Bridge.global.System.String.startsWith(t.key,(e||"")+":")});if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity),r))if(Kusto.Cloud.Platform.Utils.ExtendedRegex.IsWildCardPattern(t)){var s=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(i),a=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(t);null!=a&&(r=r.where(function(e){return s.isMatch(e.key)||a.isMatch(e.value.Name)||a.isMatch(e.value.Alias)}))}else r=r.where(function(e){return Bridge.global.System.String.equals(i,e.key,5)||Bridge.global.System.String.equals(t,e.value.Name,5)||Bridge.global.System.String.equals(t,e.value.Alias,5)});if(Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.System.Collections.Generic.KeyValuePair$2(Bridge.global.System.String,Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity),r))return null;var l=null;Bridge.global.System.String.isNullOrEmpty(n)||Kusto.Cloud.Platform.Utils.ExtendedRegex.IsWildCardPattern(n)&&(l=Kusto.Cloud.Platform.Utils.ExtendedRegex.TryTransformWildCardPatternToRegex(n));var o=r.select(function(e){var t=new Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity;return t.Name=e.value.Name,t.Alias=e.value.Alias,t.Tables=Bridge.global.System.Linq.Enumerable.from(e.value.Tables).where(function(e){return Bridge.global.System.String.isNullOrEmpty(n)||null==l&&Bridge.referenceEquals(n,e.Name)||null!=l&&l.isMatch(e.Name)}),t.Functions=e.value.Functions,t.IsInitialized=e.value.IsInitialized,t});return Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastNone$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,o)?null:o}}}),Bridge.define("Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider",{inherits:[Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider],statics:{fields:{s_showCommandRegex:null,s_setCommandRegex:null,s_addCommandRegex:null,s_alterCommandRegex:null,s_alterMergeCommandRegex:null,s_deleteCommandRegex:null,s_createCommandRegex:null,s_dropCommandRegex:null,s_moveCommandRegex:null,s_attachCommandRegex:null,s_replaceCommandRegex:null,s_ingestionDuplicationCommandRegex:null,s_createOrAlterCommandRegex:null,s_purgeCommandRegex:null,s_purgeCleanupCommandRegex:null,s_createDatabaseCommandRegex:null,s_createDatabaseCommandEndingRegex:null,s_showDatabaseCommandRegex:null,s_showBasicAuthCommandRegex:null,s_showDatabasePrincipalsCommandRegex:null,s_showClusterCommandRegex:null,s_showPrincipalCommandRegex:null,s_showFabricCommandRegex:null,s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex:null,s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex:null,s_addClusterBlockedPrincipalsCommandRegex:null,s_setClusterAdminsNoneCommandRegex:null,s_setClusterUsersNoneCommandRegex:null,s_setClusterViewersNoneCommandRegex:null,s_setClusterDatabaseCreatorsNoneCommandRegex:null,s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex:null,s_showTableOptionsCommandRegex:null,s_setDatabaseCommandRegex:null,s_addDatabaseCommandRegex:null,s_dropDatabaseCommandRegex:null,s_anySimpleSyntaxActionTableCommandRegex:null,s_anySimpleSyntaxActionFunctionCommandRegex:null,s_dropExtentTagsCommandRegex:null,s_alterExtentTagsCommandRegex:null,s_attachExtentsCommandRegex:null,s_attachExtentsIntoTableCommandRegex:null,s_attachExtentsIntoSpecifiedTableCommandRegex:null,s_moveExtentsCommandRegex:null,s_moveSpecifiedExtentsCommandRegex:null,s_moveExtentsFromSpecifiedTableCommandRegex:null,s_moveExtentsFromTableCommandRegex:null,s_moveExtentsToTableCommandRegex:null,s_replaceExtentsCommandRegex:null,s_replaceExtentsInTableCommandRegex:null,s_showExtentsInSpecifiedEntityCommandRegex:null,s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex:null,s_dropExtentTagsFromTableCommandRegex:null,s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex:null,s_addDatabaseAdminsUsersViewersCommandRegex:null,s_dropDatabasePropertyCommandRegex:null,s_setTableAdminsCommandRegex:null,s_addTableAdminsCommandRegex:null,s_createTableEntitiesCommandRegex:null,s_alterTableEntitiesCommandRegex:null,s_alterMergeTableEntitiesCommandRegex:null,s_dropTableEntitiesCommandRegex:null,s_deleteTableEntitiesCommandRegex:null,s_dropTableColumnsSyntaxCommandRegex:null,s_alterFunctionEntitiesCommandRegex:null,s_setDatabaseAdminsNoneCommandRegex:null,s_setDatabaseUsersNoneCommandRegex:null,s_setDatabaseViewersNoneCommandRegex:null,s_setDatabaseIngestorsNoneCommandRegex:null,s_setTableAdminsNoneCommandRegex:null,s_setTableIngestorsNoneCommandRegex:null,s_appendTableCommandRegex:null,s_setOrAppendReplaceTableCommandRegex:null,s_clusterPolicyRegex:null,s_alterDatabaseRegex:null,s_databasePolicyRegex:null,s_tablePolicyRegex:null,s_columnPolicyRegex:null,s_policyCommandOnDatabase:null,s_policyCommand:null,s_alterMultiplePoliciesRegex:null,s_deleteMultiplePoliciesRegex:null,s_exportCommandRegex:null,s_exportCommandWithModifiersToRegex:null,s_exportCommandNoModifiersToRegex:null,s_duplicateIngestionIntoRegex:null,s_purgeWhatIfRegex:null,s_purgeWithPropertiesRegex:null,s_purgeTableRegex:null,s_purgeSpecifiedTableRegex:null,s_alterMergePolicyRetentionRegex:null,s_alterMergePolicyRetentionSoftDeleteDefinedRegex:null,s_alterMergePolicyRetentionOptionsRegex:null,s_createRowstoreCommandRegex:null,s_createRowstoreCommandEndingRegex:null,s_adminOperationOptions:null,s_showCommandOptions:null,s_clusterShowKeywordOptions:null,s_tableShowKeywordOptions:null,s_setAddCommandsOptions:null,s_dropCommandsOptions:null,s_attachCommandsOptions:null,s_moveCommandsOptions:null,s_replaceCommandsOptions:null,s_dropExtentTagsCommandsOptions:null,s_attachExtentsCommandsOptions:null,s_attachExtentsIntoSpecifedTableCommandsOptions:null,s_moveExtentsCommandsOptions:null,s_moveSpecifiedExtentsCommandsOptions:null,s_moveExtentsFromTableCommandsOptions:null,s_showExtentsByEntityCommandsOptions:null,s_showExtentsByEntityWithTagFiltersCommandsOptions:null,s_replaceExtentsCommandsOptions:null,s_alterCommandOptions:null,s_alterMergeAndDeleteCommandOptions:null,s_createCommandOptions:null,s_setUsersAdminsPrettyNameKeywordOptions:null,s_addSetDropUsersAdminsKeywordOptions:null,s_dropDatabaseKeywordOptions:null,s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions:null,s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions:null,s_addClusterBlockedPrincipalsApplicationKeywordOptions:null,s_showBasicAuthUsersKeywordOptions:null,s_AddSetAdminsKeywordOptions:null,s_createTableEntitiesKeywordOptions:null,s_alterTableEntitiesKeywordOptions:null,s_alterMergeTableEntitiesKeywordOptions:null,s_dropTableEntitiesKeywordOptions:null,s_deleteTableEntitiesKeywordOptions:null,s_alterFunctionEntitiesKeywordOptions:null,s_DropColumnsSyntaxKeywordOptions:null,s_setNoneKeywordOptions:null,s_clusterPoliciesOptions:null,s_databasePoliciesOptions:null,s_tablePoliciesOptions:null,s_columnPoliciesOptions:null,s_multiplePoliciesOptions:null,s_multipleDeletionPoliciesOptions:null,s_databasePersistencyOptions:null,s_rowstorePersistencyOptions:null,s_ifNotExistsOptions:null,s_policyKeywordOptions:null,s_principalsPolicySchemaAndExtentsKeywordOptions:null,s_exportFileFormatOptions:null,s_exportCommandOptions:null,s_alterDatabaseCommandOptions:null,s_duplicateIngestionCommandsOptions:null,s_purgeWhatIfCommandOptions:null,s_purgeTableCommandsOptions:null,s_purgeCleanupCommandsOptions:null,s_purgeCommandsOptions:null,s_purgeWithPropertiesCommandsOptions:null,s_showPrincipalKeywordOptions:null,s_showFabricKeywordOptions:null,s_alterMergePolicyRetentionOptions:null,s_alterMergePolicyRetentionSoftDeleteDefinedOptions:null,s_timeSpanPolicyOptions:null,s_createOrAlterOptions:null},ctors:{init:function(){this.s_showCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergeCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter-merge\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.delete\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.attach\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.replace\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_ingestionDuplicationCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.dup-next-(failed-)?ingest\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createOrAlterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create-or-alter\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeCleanupCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge-cleanup\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+database\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createDatabaseCommandEndingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+database\\\\s+\\\\w+\\\\s+(persist\\\\s+\\\\(.+\\\\)|volatile)\\\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+database\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showBasicAuthCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+basicauth\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showDatabasePrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+database\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showClusterCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+cluster\\\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showPrincipalCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+principal\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showFabricCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+fabric\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+cluster\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+cluster\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addClusterBlockedPrincipalsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+cluster\\\\s+blockedprincipals\\\\s+(\'(.*?)\'|\\"(.*?)\\")\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+cluster\\\\s+admins\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterUsersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+cluster\\\\s+users\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterViewersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+cluster\\\\s+viewers\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setClusterDatabaseCreatorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+cluster\\\\s+databasecreators\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+cluster\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showTableOptionsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+database\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropDatabaseCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+database\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_anySimpleSyntaxActionTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|create|add|set|alter|alter-merge|drop|delete)\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_anySimpleSyntaxActionFunctionCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|drop)\\\\s+function\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropExtentTagsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+extent\\\\s+tags\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterExtentTagsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+extent\\\\s+tags\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.attach\\\\s+(async\\\\s+)?extents\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsIntoTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.attach\\\\s+(async\\\\s+)?extents\\\\s+into\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_attachExtentsIntoSpecifiedTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.attach\\\\s+(async\\\\s+)?extents\\\\s+into\\\\s+table\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveSpecifiedExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+([A-Za-z0-9(),.-]+)\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsFromSpecifiedTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+([A-Za-z0-9(),.-]+)\\\\s+from\\\\s+table\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsFromTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+([A-Za-z0-9(),.-]+)\\\\s+from\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_moveExtentsToTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+([A-Za-z0-9(),.-]+)\\\\s+from\\\\s+table\\\\s+\\\\S+\\\\s+to\\\\s+table\\\\s+$|^\\\\s*\\\\.move\\\\s+(async\\\\s+)?extents\\\\s+to\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceExtentsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.replace\\\\s+(async\\\\s+)?extents\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_replaceExtentsInTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.replace\\\\s+(async\\\\s+)?extents\\\\s+in\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showExtentsInSpecifiedEntityCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+(database|table)\\\\s+\\\\S+\\\\s+extents\\\\s+$|^\\\\s*\\\\.show\\\\s+cluster\\\\s+extents\\\\s+$|^\\\\s*\\\\.show\\\\s+tables\\\\s+\\\\([^)]+\\\\)\\\\s+extents\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.show\\\\s+((database\\\\s+\\\\S+)|(table\\\\s+\\\\S+)|(tables\\\\s+\\\\([^)]+\\\\))|(cluster))\\\\s+extents\\\\s+(hot\\\\s+)?where\\\\s+tags\\\\s+((has|!has|contains|!contains)\\\\s+\\\\S+\\\\s+and\\\\s+tags\\\\s+)*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropExtentTagsFromTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+extent\\\\s+tags\\\\s+from\\\\s+table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addDatabaseAdminsUsersViewersCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+database\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropDatabasePropertyCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+database\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableAdminsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_addTableAdminsCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.add\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergeTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter-merge\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteTableEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.delete\\\\s+table\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_dropTableColumnsSyntaxCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.drop\\\\s+table\\\\s+\\\\w+\\\\s+columns\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterFunctionEntitiesCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+function\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+\\\\w+\\\\s+admins\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseUsersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+\\\\w+\\\\s+users\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseViewersNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+\\\\w+\\\\s+viewers\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setDatabaseIngestorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+database\\\\s+\\\\w+\\\\s+ingestors\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableAdminsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+table\\\\s+\\\\w+\\\\s+admins\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setTableIngestorsNoneCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.set\\\\s+table\\\\s+\\\\w+\\\\s+ingestors\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_appendTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.append\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_setOrAppendReplaceTableCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(set-or-append|set-or-replace)\\\\s+(async\\\\s+)?$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_clusterPolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|alter-merge|delete)\\\\s+cluster\\\\s+policy\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterDatabaseRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+database\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_databasePolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|alter-merge|delete)\\\\s+database\\\\s+\\\\S+\\\\s+policy\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_tablePolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|alter-merge|delete)\\\\s+table\\\\s+\\\\S+\\\\s+policy\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_columnPolicyRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|alter-merge|delete)\\\\s+column\\\\s+\\\\S+\\\\s+policy\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_policyCommandOnDatabase=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(show|alter|alter-merge|delete)\\\\s+database\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_policyCommand=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(alter|alter-merge|delete)\\\\s+column\\\\s+\\\\S+\\\\s+$|^\\\\s*\\\\.(alter|alter-merge|delete)\\\\s+cluster\\\\s+$|^\\\\s*\\\\.(alter-merge|delete)\\\\s+database\\\\s+\\\\S+\\\\s+$|^\\\\s*\\\\.show\\\\s+column\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMultiplePoliciesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.alter\\\\s+policies\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_deleteMultiplePoliciesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.delete\\\\s+policies\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.export\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandWithModifiersToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.export\\\\s+(async|async compressed|compressed)\\\\s+to\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_exportCommandNoModifiersToRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.export\\\\s+to\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_duplicateIngestionIntoRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.dup-next-(failed-)?ingest\\\\s+into\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeWhatIfRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?whatif\\\\s*=\\\\s*$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeWithPropertiesRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?whatif\\\\s*=\\\\s*\\\\S+\\\\s+(maxRecords\\\\s*=\\\\s*\\\\d+\\\\s+)?$|^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?maxRecords\\\\s*=\\\\s*\\\\d+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeTableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?(whatif\\\\s*=\\\\s*\\\\S+\\\\s+)?(maxRecords\\\\s*=\\\\s*\\\\d+\\\\s+)?table\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_purgeSpecifiedTableRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.purge\\\\s+(async\\\\s+)?(whatif\\\\s*=\\\\s*\\\\S+\\\\s+)?(maxRecords\\\\s*=\\\\s*\\\\d+\\\\s+)?table\\\\s+\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(alter-merge)\\\\s+(database|table)\\\\s+\\\\S+\\\\s+policy\\\\s+retention\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionSoftDeleteDefinedRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(alter-merge)\\\\s+(database|table)\\\\s+\\\\S+\\\\s+policy\\\\s+retention\\\\s+softdelete\\\\s*=\\\\s*\\\\S+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_alterMergePolicyRetentionOptionsRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.(alter-merge)\\\\s+(database|table)\\\\s+\\\\S+\\\\s+policy\\\\s+retention\\\\s+((softdelete\\\\s*=\\\\s*\\\\S+\\\\s+harddelete)|((soft|hard)delete))\\\\s*=\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createRowstoreCommandRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+rowstore\\\\s+\\\\w+\\\\s+$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_createRowstoreCommandEndingRegex=new Bridge.global.System.Text.RegularExpressions.Regex.ctor("^\\\\s*\\\\.create\\\\s+rowstore\\\\s+\\\\w+\\\\s+(writeaheadlog\\\\s+\\\\(.+\\\\)|volatile)\\\\s$",Kusto.Data.IntelliSense.IntelliSenseRulesProviderBase.CommonRegexOptions),this.s_adminOperationOptions=Bridge.global.System.Array.init(["show","alter","alter-merge","append","attach","create","delete","detach","drop","rename","set-or-append","set-or-replace","set","export","move","replace","create-or-alter","dup-next-ingest","dup-next-failed-ingest","seal table","purge","purge-cleanup"],Bridge.global.System.String),this.s_showCommandOptions=Bridge.global.System.Linq.Enumerable.from(Bridge.global.System.Array.init(["basicauth","cache","capacity","cluster","column","database","databases","diagnostics","extentcontainers","fabric","function","functions","ingestion failures","journal","memory","operations","schema","table","tables","version","queries","commands","principal","rowstores","rowstore","rowstore transactions","rowstore seals"],Bridge.global.System.String)).orderBy(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f1).ToArray(Bridge.global.System.String),this.s_clusterShowKeywordOptions=Bridge.global.System.Array.init(["principals","policy","extents","monitoring","journal","blockedprincipals"," "],Bridge.global.System.String),this.s_tableShowKeywordOptions=Bridge.global.System.Array.init(["principals","policy","extents","ingestion csv mappings","ingestion json mappings","rowstores"," "],Bridge.global.System.String),this.s_setAddCommandsOptions=Bridge.global.System.Array.init(["database","cluster","table","async"],Bridge.global.System.String),this.s_dropCommandsOptions=Bridge.global.System.Array.init(["database","cluster","table","tables","function","column","extent tags","extent","extents","rowstore"],Bridge.global.System.String),this.s_attachCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_moveCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_replaceCommandsOptions=Bridge.global.System.Array.init(["extents"],Bridge.global.System.String),this.s_dropExtentTagsCommandsOptions=Bridge.global.System.Array.init(["from table"],Bridge.global.System.String),this.s_attachExtentsCommandsOptions=Bridge.global.System.Array.init(["into table","by metadata"],Bridge.global.System.String),this.s_attachExtentsIntoSpecifedTableCommandsOptions=Bridge.global.System.Array.init(["by metadata"],Bridge.global.System.String),this.s_moveExtentsCommandsOptions=Bridge.global.System.Array.init(["all","(GUID,...,GUID)","to table"],Bridge.global.System.String),this.s_moveSpecifiedExtentsCommandsOptions=Bridge.global.System.Array.init(["from table"],Bridge.global.System.String),this.s_moveExtentsFromTableCommandsOptions=Bridge.global.System.Array.init(["to table"],Bridge.global.System.String),this.s_showExtentsByEntityCommandsOptions=Bridge.global.System.Array.init(["hot","where tags"],Bridge.global.System.String),this.s_showExtentsByEntityWithTagFiltersCommandsOptions=Bridge.global.System.Array.init(["has","!has","contains","!contains"],Bridge.global.System.String),this.s_replaceExtentsCommandsOptions=Bridge.global.System.Array.init(["in table"],Bridge.global.System.String),this.s_alterCommandOptions=Bridge.global.System.Array.init(["cluster","column","database","function","table","policies","extent tags"],Bridge.global.System.String),this.s_alterMergeAndDeleteCommandOptions=Bridge.global.System.Array.init(["cluster","column","database","table"],Bridge.global.System.String),this.s_createCommandOptions=Bridge.global.System.Array.init(["database","function","table","rowstore"],Bridge.global.System.String),this.s_setUsersAdminsPrettyNameKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors","prettyname"],Bridge.global.System.String),this.s_addSetDropUsersAdminsKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors"],Bridge.global.System.String),this.s_dropDatabaseKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","ingestors","prettyname"],Bridge.global.System.String),this.s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","databasecreators"],Bridge.global.System.String),this.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions=Bridge.global.System.Array.init(["users","admins","viewers","databasecreators","blockedprincipals"],Bridge.global.System.String),this.s_addClusterBlockedPrincipalsApplicationKeywordOptions=Bridge.global.System.Array.init(["application","user","period","reason"],Bridge.global.System.String),this.s_showBasicAuthUsersKeywordOptions=Bridge.global.System.Array.init(["users"],Bridge.global.System.String),this.s_AddSetAdminsKeywordOptions=Bridge.global.System.Array.init(["admins","ingestors"],Bridge.global.System.String),this.s_createTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["ingestion csv mapping","ingestion json mapping"],Bridge.global.System.String),this.s_alterTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["ingestion csv mapping","ingestion json mapping","docstring","folder","column-docstrings","policy"],Bridge.global.System.String),this.s_alterMergeTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["column-docstrings","policy"],Bridge.global.System.String),this.s_dropTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["admins","ingestors","columns","ingestion csv mapping","ingestion json mapping"],Bridge.global.System.String),this.s_deleteTableEntitiesKeywordOptions=Bridge.global.System.Array.init(["policy"],Bridge.global.System.String),this.s_alterFunctionEntitiesKeywordOptions=Bridge.global.System.Array.init(["docstring","folder"],Bridge.global.System.String),this.s_DropColumnsSyntaxKeywordOptions=Bridge.global.System.Array.init(["(COLUMN1,COLUMN2)"],Bridge.global.System.String),this.s_setNoneKeywordOptions=Bridge.global.System.Array.init(["none"],Bridge.global.System.String),this.s_clusterPoliciesOptions=Bridge.global.System.Array.init(["caching","querythrottling","capacity","rowstore","callout","querylimit"],Bridge.global.System.String),this.s_databasePoliciesOptions=Bridge.global.System.Array.init(["caching","encoding","merge","retention","sharding","streamingingestion"],Bridge.global.System.String),this.s_tablePoliciesOptions=Bridge.global.System.Array.init(["caching","encoding","merge","ingestiontime","retention","roworder","update","sharding","streamingingestion","restricted_view_access"],Bridge.global.System.String),this.s_columnPoliciesOptions=Bridge.global.System.Array.init(["caching","encoding"],Bridge.global.System.String),this.s_multiplePoliciesOptions=Bridge.global.System.Array.init(["of retention","of encoding"],Bridge.global.System.String),this.s_multipleDeletionPoliciesOptions=Bridge.global.System.Array.init(["of retention"],Bridge.global.System.String),this.s_databasePersistencyOptions=Bridge.global.System.Array.init(["persist","volatile"],Bridge.global.System.String),this.s_rowstorePersistencyOptions=Bridge.global.System.Array.init(["writeaheadlog","volatile"],Bridge.global.System.String),this.s_ifNotExistsOptions=Bridge.global.System.Array.init(["ifnotexists"," "],Bridge.global.System.String),this.s_policyKeywordOptions=Bridge.global.System.Array.init(["policy"],Bridge.global.System.String),this.s_principalsPolicySchemaAndExtentsKeywordOptions=Bridge.global.System.Array.init(["principals","policy","schema","extents","journal","purge operations"," "],Bridge.global.System.String),this.s_exportFileFormatOptions=Bridge.global.System.Array.init(["csv","tsv","json","sql"],Bridge.global.System.String),this.s_exportCommandOptions=Bridge.global.System.Array.init(["async compressed","async","compressed"," "],Bridge.global.System.String),this.s_alterDatabaseCommandOptions=Bridge.global.System.Array.init(["policy","persist metadata","prettyname"],Bridge.global.System.String),this.s_duplicateIngestionCommandsOptions=Bridge.global.System.Array.init(["into"],Bridge.global.System.String),this.s_purgeWhatIfCommandOptions=Bridge.global.System.Array.init(["info","stats","purge","retain"],Bridge.global.System.String),this.s_purgeTableCommandsOptions=Bridge.global.System.Array.init(["records"],Bridge.global.System.String),this.s_purgeCleanupCommandsOptions=Bridge.global.System.Array.init(["until="],Bridge.global.System.String),this.s_purgeCommandsOptions=Bridge.global.System.Array.init(["whatif =","maxRecords =","table"],Bridge.global.System.String),this.s_purgeWithPropertiesCommandsOptions=Bridge.global.System.Array.init(["table"],Bridge.global.System.String),this.s_showPrincipalKeywordOptions=Bridge.global.System.Array.init(["access","roles","@\'principal\' roles"],Bridge.global.System.String),this.s_showFabricKeywordOptions=Bridge.global.System.Array.init(["clocks","locks","cache","nodes","services"],Bridge.global.System.String),this.s_alterMergePolicyRetentionOptions=Bridge.global.System.Array.init(["softdelete","harddelete"],Bridge.global.System.String),this.s_alterMergePolicyRetentionSoftDeleteDefinedOptions=Bridge.global.System.Array.init(["harddelete"],Bridge.global.System.String),this.s_timeSpanPolicyOptions=Bridge.global.System.Array.init(["1d","7d","30d","90d","365d"],Bridge.global.System.String),this.s_createOrAlterOptions=Bridge.global.System.Array.init(["function"],Bridge.global.System.String)}}},fields:{s_afterCreateDatabaseApplyPolicies:null,s_afterAlterDatabaseApplyPolicies:null,s_afterCreateRowStoreApplyPolicies:null,s_afterExportFile:null},ctors:{init:function(){this.s_afterCreateDatabaseApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f2(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterAlterDatabaseApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f3(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterCreateRowStoreApplyPolicies=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f4(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy))),this.s_afterExportFile=e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f5(new(Bridge.global.System.Collections.Generic.Dictionary$2(Bridge.global.System.String,Kusto.Data.IntelliSense.ApplyPolicy)))},$ctor1:function(e,t,n,i,r,s,a){void 0===n&&(n=null),void 0===i&&(i=null),void 0===r&&(r=null),void 0===s&&(s=!1),void 0===a&&(a=!1),this.$initialize(),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.$ctor1.call(this,e,t,n,i,r,s,a),this.LoadRules$1()},ctor:function(e){this.$initialize(),Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.ctor.call(this,e),this.LoadRules$1()}},methods:{Clone$1:function(){return new Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.ctor(this)},LoadRules$1:function(){Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.TableNames)&&this.AddTableControlCommands(),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.System.String,this.FunctionNames)&&this.AddFunctionControlCommands(),this.AddControlCommandKeywords(),this.AddPolicyControlCommands(),this.AddMultiplePoliciesControlCommands(),this.DeleteMultiplePoliciesControlCommands(),this.AddPermissionsControlCommands(),this.AddDatabaseCreateCommands(),this.AddExportControlCommand(),Kusto.Cloud.Platform.Utils.ExtendedEnumerable.SafeFastAny$1(Bridge.global.Kusto.Data.IntelliSense.KustoIntelliSenseDatabaseEntity,this.Databases)&&this.AddDatabaseControlCommands(this.Databases),this.AddAddDropControlCommandKeywords(),this.AddRowStoreControlCommands()},AddDatabaseCreateCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseCreatePersistencyOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createDatabaseCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePersistencyOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterCreateDatabaseApplyPolicies,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateIfNotExistsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createDatabaseCommandEndingRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_ifNotExistsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddControlCommandKeywords:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAdminCommandsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslQueryIntelliSenseRulesProvider.s_lineWithDotBeginningRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Command,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_adminOperationOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowPrincipalCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showPrincipalCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showPrincipalKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowFabricOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showFabricCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showFabricKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddExportControlCommand:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" to ",t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandWithModifiersAndOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandWithModifiersToRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportFileFormatOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterExportFile,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldExportCommandNoModifiersAndOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportCommandNoModifiersToRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_exportFileFormatOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterExportFile,e))},AddPermissionsControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowBasicAuthOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showBasicAuthCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showBasicAuthUsersKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowClusterPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showClusterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterShowKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterAdminsUsersViewersDatabaseCreatorsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setUsersAdminsViewersDatabaseCreatorsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropClusterAdminsUsersViewersDatabaseCreatorsBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropClusterAdminsUsersViewersDatabaseCreatorsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDropUsersAdminsViewersDbCreatorsBlockedKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddClusterBlockedPrincipalsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterBlockedPrincipalsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addClusterBlockedPrincipalsApplicationKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterUsersNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterUsersNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterAdminsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterAdminsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterViewersNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterViewersNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetClusterDatabaseCreatorsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setClusterDatabaseCreatorsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddPolicyControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyCommand,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldClusterPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterPolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_clusterPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabasePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_databasePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTablePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tablePolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tablePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldColumnPoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_columnPolicyRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_columnPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddMultiplePoliciesControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMultiplePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMultiplePoliciesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_multiplePoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},DeleteMultiplePoliciesControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteMultiplePoliciesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteMultiplePoliciesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Policy,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_multipleDeletionPoliciesOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddDatabaseControlCommands:function(t){var n;this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowDatabasePrincipalsPoliciesAndSchemaOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showDatabasePrincipalsCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_principalsPolicySchemaAndExtentsKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseAdminsUsersViewersPrettyNameOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseAdminsUsersViewersPrettyNameCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setUsersAdminsPrettyNameKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddDatabaseAdminsUsersViewersOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDatabaseAdminsUsersViewersCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addSetDropUsersAdminsKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropDatabaseOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabasePropertyCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabaseKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseUsersNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseUsersNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseAdminsNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseAdminsNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseViewersNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseViewersNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetDatabaseIngestorsNoneOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseIngestorsNoneCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n));var i=Bridge.global.System.Linq.Enumerable.from(t).select(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f6).orderBy(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.f7).ToArray(Bridge.global.System.String);this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropDatabaseCommandRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDatabaseNames,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_policyCommandOnDatabase,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Database,i),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterDatabaseCommandOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterDatabaseRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterDatabaseCommandOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n.AfterApplyPolicies=this.s_afterAlterDatabaseApplyPolicies,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergePolicyRetentionOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendAssignmentPolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergePolicyRetentionSoftDeleteDefinedOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionSoftDeleteDefinedRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionSoftDeleteDefinedOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendAssignmentPolicy,n)),this.CommandRules.add(((n=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTimeSpanPolicyOptions,n.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergePolicyRetentionOptionsRegex,n.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_timeSpanPolicyOptions),n.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,n))},AddTableControlCommands:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_appendTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setOrAppendReplaceTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showTableOptionsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_tableShowKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_anySimpleSyntaxActionTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropExtentTagsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropExtentTagsFromTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (@\'\')",t.OffsetPosition=-2,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterExtentTagsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterExtentTagsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Command,Bridge.global.System.Array.init(["(@\'\') <| "],Bridge.global.System.String)),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text="",t.OffsetPosition=-6,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachExtentsIntoTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoSpecifiedTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachExtentsIntoSpecifedTableCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveSpecifiedExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveSpecifiedExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveSpecifiedExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveExtentsToTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromSpecifiedTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsFromTableCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveExtentsToTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowExtentsByEntityOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsInSpecifiedEntityCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsByEntityCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldShowExtentsByEntityWithTagsFiltersOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsInSpecifiedEntityWithTagFiltersCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_showExtentsByEntityWithTagFiltersCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" @\'\'",t.OffsetPosition=-1,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldReplaceExtentsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceExtentsInTableCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableAdminsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableAdminsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_AddSetAdminsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddTableAdminsOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addTableAdminsCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_AddSetAdminsKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteTableEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteTableEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteTableEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropTableColumnsSyntaxOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropTableColumnsSyntaxCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_DropColumnsSyntaxKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableAdminsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableAdminsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetTableIngestorsNoneOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setTableIngestorsNoneCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setNoneKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_duplicateIngestionIntoRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" to h@\'\'",t.OffsetPosition=-1,t),e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWhatIfOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWhatIfRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWhatIfCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeWithPropertiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWithPropertiesRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeWithPropertiesCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldTableNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeTableRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Table,this.TableNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeTableOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeSpecifiedTableRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeTableCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" <|",t),e))},AddRowStoreControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldRowStoreCreatePersistencyOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createRowstoreCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_rowstorePersistencyOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e.AfterApplyPolicies=this.s_afterCreateRowStoreApplyPolicies,e))},AddFunctionControlCommands:function(){var e;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldFunctionNamesForAdminOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_anySimpleSyntaxActionFunctionCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.ExpressionFunction,this.FunctionNames),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterFunctionEntitiesOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterFunctionEntitiesCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterFunctionEntitiesKeywordOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e))},AddAddDropControlCommandKeywords:function(){var e,t;this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldSetCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setAddCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAddCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_addCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_setAddCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDropCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_dropCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldMoveCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_moveCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAttachCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_attachCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldReplaceCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_replaceCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldAlterMergeCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeAndDeleteCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldDeleteCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_deleteCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_alterMergeAndDeleteCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateCommandOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createCommandOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldCreateOrAlterOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createOrAlterCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_createOrAlterOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldIngestionDuplicationOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_ingestionDuplicationCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_duplicateIngestionCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCommandsOptions),e.DefaultAfterApplyPolicy=Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy,e)),this.CommandRules.add(((e=new Kusto.Data.IntelliSense.RegexIntelliSenseRule).Kind=Kusto.Data.IntelliSense.AdminEngineRuleKind.YieldPurgeCleanupOptions,e.MatchingRegex=Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCleanupCommandRegex,e.Options=new Kusto.Data.IntelliSense.CompletionOptionCollection(Kusto.Data.IntelliSense.OptionKind.Option,Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider.s_purgeCleanupCommandsOptions),e.DefaultAfterApplyPolicy=((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" datetime()",t.OffsetPosition=-1,t),e))}}}),Bridge.ns("Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider",e.$),Bridge.apply(e.$.Kusto.Data.IntelliSense.CslIntelliSenseRulesProvider,{f1:function(e){return e},f2:function(e){var t;return e.add("volatile",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("persist",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@\'\', h@\'\') ",t.OffsetPosition=-9,t)),e},f3:function(e){var t;return e.add("policy",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("persist metadata",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" h\'\' ",t.OffsetPosition=-2,t)),e},f4:function(e){var t;return e.add("volatile",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e.add("writeaheadlog",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@\'\', h@\'\') ",t.OffsetPosition=-9,t)),e},f5:function(e){var t;return e.add("csv",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@\'\')",t.OffsetPosition=-2,t)),e.add("tsv",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@\'\')",t.OffsetPosition=-2,t)),e.add("json",((t=new Kusto.Data.IntelliSense.ApplyPolicy).Text=" (h@\'\')",t.OffsetPosition=-2,t)),e.add("sql",Kusto.Data.IntelliSense.ApplyPolicy.AppendSpacePolicy),e},f6:function(e){return e.Name},f7:function(e){return e}})})},function(e,t,n){"use strict";var i,r,s,a,l,o,u,d,g,c,m,h,f,p,S;n.r(t),n.d(t,"Position",function(){return i}),n.d(t,"Range",function(){return r}),n.d(t,"Location",function(){return s}),n.d(t,"Color",function(){return a}),n.d(t,"ColorInformation",function(){return l}),n.d(t,"ColorPresentation",function(){return o}),n.d(t,"FoldingRangeKind",function(){return u}),n.d(t,"FoldingRange",function(){return d}),n.d(t,"DiagnosticRelatedInformation",function(){return g}),n.d(t,"DiagnosticSeverity",function(){return c}),n.d(t,"Diagnostic",function(){return m}),n.d(t,"Command",function(){return h}),n.d(t,"TextEdit",function(){return f}),n.d(t,"TextDocumentEdit",function(){return p}),n.d(t,"WorkspaceEdit",function(){return S}),n.d(t,"WorkspaceChange",function(){return k}),n.d(t,"TextDocumentIdentifier",function(){return y}),n.d(t,"VersionedTextDocumentIdentifier",function(){return b}),n.d(t,"TextDocumentItem",function(){return I}),n.d(t,"MarkupKind",function(){return T}),n.d(t,"MarkupContent",function(){return B}),n.d(t,"CompletionItemKind",function(){return C}),n.d(t,"InsertTextFormat",function(){return x}),n.d(t,"CompletionItem",function(){return _}),n.d(t,"CompletionList",function(){return w}),n.d(t,"MarkedString",function(){return v}),n.d(t,"Hover",function(){return R}),n.d(t,"ParameterInformation",function(){return K}),n.d(t,"SignatureInformation",function(){return A}),n.d(t,"DocumentHighlightKind",function(){return D}),n.d(t,"DocumentHighlight",function(){return E}),n.d(t,"SymbolKind",function(){return $}),n.d(t,"SymbolInformation",function(){return P}),n.d(t,"DocumentSymbol",function(){return q}),n.d(t,"CodeActionKind",function(){return N}),n.d(t,"CodeActionContext",function(){return F}),n.d(t,"CodeAction",function(){return L}),n.d(t,"CodeLens",function(){return U}),n.d(t,"FormattingOptions",function(){return M}),n.d(t,"DocumentLink",function(){return z}),n.d(t,"EOL",function(){return Y}),n.d(t,"TextDocument",function(){return G}),n.d(t,"TextDocumentSaveReason",function(){return j}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return V.objectLiteral(t)&&V.number(t.line)&&V.number(t.character)}}(i||(i={})),function(e){e.create=function(e,t,n,r){if(V.number(e)&&V.number(t)&&V.number(n)&&V.number(r))return{start:i.create(e,t),end:i.create(n,r)};if(i.is(e)&&i.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},e.is=function(e){var t=e;return V.objectLiteral(t)&&i.is(t.start)&&i.is(t.end)}}(r||(r={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return V.defined(t)&&r.is(t.range)&&(V.string(t.uri)||V.undefined(t.uri))}}(s||(s={})),function(e){e.create=function(e,t,n,i){return{red:e,green:t,blue:n,alpha:i}},e.is=function(e){var t=e;return V.number(t.red)&&V.number(t.green)&&V.number(t.blue)&&V.number(t.alpha)}}(a||(a={})),function(e){e.create=function(e,t){return{range:e,color:t}},e.is=function(e){var t=e;return r.is(t.range)&&a.is(t.color)}}(l||(l={})),function(e){e.create=function(e,t,n){return{label:e,textEdit:t,additionalTextEdits:n}},e.is=function(e){var t=e;return V.string(t.label)&&(V.undefined(t.textEdit)||f.is(t))&&(V.undefined(t.additionalTextEdits)||V.typedArray(t.additionalTextEdits,f.is))}}(o||(o={})),function(e){e.Comment="comment",e.Imports="imports",e.Region="region"}(u||(u={})),function(e){e.create=function(e,t,n,i,r){var s={startLine:e,endLine:t};return V.defined(n)&&(s.startCharacter=n),V.defined(i)&&(s.endCharacter=i),V.defined(r)&&(s.kind=r),s},e.is=function(e){var t=e;return V.number(t.startLine)&&V.number(t.startLine)&&(V.undefined(t.startCharacter)||V.number(t.startCharacter))&&(V.undefined(t.endCharacter)||V.number(t.endCharacter))&&(V.undefined(t.kind)||V.string(t.kind))}}(d||(d={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return V.defined(t)&&s.is(t.location)&&V.string(t.message)}}(g||(g={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(c||(c={})),function(e){e.create=function(e,t,n,i,r,s){var a={range:e,message:t};return V.defined(n)&&(a.severity=n),V.defined(i)&&(a.code=i),V.defined(r)&&(a.source=r),V.defined(s)&&(a.relatedInformation=s),a},e.is=function(e){var t=e;return V.defined(t)&&r.is(t.range)&&V.string(t.message)&&(V.number(t.severity)||V.undefined(t.severity))&&(V.number(t.code)||V.string(t.code)||V.undefined(t.code))&&(V.string(t.source)||V.undefined(t.source))&&(V.undefined(t.relatedInformation)||V.typedArray(t.relatedInformation,g.is))}}(m||(m={})),function(e){e.create=function(e,t){for(var n=[],i=2;i0&&(r.arguments=n),r},e.is=function(e){var t=e;return V.defined(t)&&V.string(t.title)&&V.string(t.command)}}(h||(h={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}},e.is=function(e){var t=e;return V.objectLiteral(t)&&V.string(t.newText)&&r.is(t.range)}}(f||(f={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return V.defined(t)&&b.is(t.textDocument)&&Array.isArray(t.edits)}}(p||(p={})),(S||(S={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||V.typedArray(t.documentChanges,p.is))};var y,b,I,T,B,C,x,_,w,v,R,K,A,D,E,$,P,O=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(f.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(f.replace(e,t))},e.prototype.delete=function(e){this.edits.push(f.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),k=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach(function(e){var n=new O(e.edits);t._textEditChanges[e.textDocument.uri]=n}):e.changes&&Object.keys(e.changes).forEach(function(n){var i=new O(e.changes[n]);t._textEditChanges[n]=i}))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(b.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for versioned document changes.");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new O(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new O(r),this._textEditChanges[e]=i}return i},e}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return V.defined(t)&&V.string(t.uri)}}(y||(y={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return V.defined(t)&&V.string(t.uri)&&V.number(t.version)}}(b||(b={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return V.defined(t)&&V.string(t.uri)&&V.string(t.languageId)&&V.number(t.version)&&V.string(t.text)}}(I||(I={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(T||(T={})),function(e){e.is=function(t){var n=t;return n===e.PlainText||n===e.Markdown}}(T||(T={})),(B||(B={})).is=function(e){var t=e;return V.objectLiteral(e)&&T.is(t.kind)&&V.string(t.value)},function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(C||(C={})),function(e){e.PlainText=1,e.Snippet=2}(x||(x={})),(_||(_={})).create=function(e){return{label:e}},(w||(w={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},function(e){e.fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,"\\\\$&")},e.is=function(e){var t=e;return V.string(t)||V.objectLiteral(t)&&V.string(t.language)&&V.string(t.value)}}(v||(v={})),(R||(R={})).is=function(e){var t=e;return V.objectLiteral(t)&&(B.is(t.contents)||v.is(t.contents)||V.typedArray(t.contents,v.is))&&(void 0===e.range||r.is(e.range))},(K||(K={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(A||(A={})).create=function(e,t){for(var n=[],i=2;i=0;s--){var a=i[s],l=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(!(o<=r))throw new Error("Ovelapping edit");n=n.substring(0,l)+a.newText+n.substring(o,n.length),r=l}return n}}(G||(G={})),function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3}(j||(j={}));var V,W=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=null}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=null},e.prototype.getLineOffsets=function(){if(null===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return i.create(0,e);for(;ne?r=s:n=s+1}var a=n-1;return i.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1\n * Steven Levithan (c) 2012-present MIT License\n */\nn.default=function(e){var t="xregexp",n=/(\\()(?!\\?)|\\\\([1-9]\\d*)|\\\\[\\s\\S]|\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/g,i=e.union([/\\({{([\\w$]+)}}\\)|{{([\\w$]+)}}/,n],"g",{conjunction:"or"});function r(e){var t=/^(?:\\(\\?:\\))*\\^/,n=/\\$(?:\\(\\?:\\))*$/;return t.test(e)&&n.test(e)&&n.test(e.replace(/\\\\[\\s\\S]/g,""))?e.replace(t,"").replace(n,""):e}function s(n,i){var r=i?"x":"";return e.isRegExp(n)?n[t]&&n[t].captureNames?n:e(n.source,r):e(n,r)}function a(t){return t instanceof RegExp?t:e.escape(t)}function l(e,t,n){return e["subpattern"+n]=t,e}function o(e,t,n){return e+(t1?i-1:0),s=1;s"):o="(?:",p=f,""+o+g[a].pattern.replace(n,function(e,t,n){if(t){if(l=g[a].names[f-p],++f,l)return"(?<"+l+">"}else if(n)return u=+n-1,g[a].names[u]?"\\\\k<"+g[a].names[u]+">":"\\\\"+(+n+p);return e})+")"}if(r){if(l=b[S],y[++S]=++f,l)return"(?<"+l+">"}else if(s)return b[u=+s-1]?"\\\\k<"+b[u]+">":"\\\\"+y[+s];return e});return e(I,o)}},t.exports=n.default},{}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),\n/*!\n * XRegExp.matchRecursive 4.1.1\n * \n * Steven Levithan (c) 2009-present MIT License\n */\nn.default=function(e){function t(e,t,n,i){return{name:e,value:t,start:n,end:i}}e.matchRecursive=function(n,i,r,s,a){s=s||"",a=a||{};var l=-1!==s.indexOf("g"),o=-1!==s.indexOf("y"),u=s.replace(/y/g,""),d=a.escapeChar,g=a.valueNames,c=[],m=0,h=0,f=0,p=0,S=void 0,y=void 0,b=void 0,I=void 0,T=void 0;if(i=e(i,u),r=e(r,u),d){if(d.length>1)throw new Error("Cannot use more than one escape character");d=e.escape(d),T=new RegExp("(?:"+d+"[\\\\S\\\\s]|(?:(?!"+e.union([i,r],"",{conjunction:"or"}).source+")[^"+d+"])+)+",s.replace(/[^imu]+/g,""))}for(;;){if(d&&(f+=(e.exec(n,T,f,"sticky")||[""])[0].length),b=e.exec(n,i,f),I=e.exec(n,r,f),b&&I&&(b.index<=I.index?I=null:b=null),b||I)f=(h=(b||I).index)+(b||I)[0].length;else if(!m)break;if(o&&!m&&h>p)break;if(b)m||(S=h,y=f),++m;else{if(!I||!m)throw new Error("Unbalanced delimiter found in string");if(!--m&&(g?(g[0]&&S>p&&c.push(t(g[0],n.slice(p,S),p,S)),g[1]&&c.push(t(g[1],n.slice(S,y),S,y)),g[2]&&c.push(t(g[2],n.slice(y,h),y,h)),g[3]&&c.push(t(g[3],n.slice(h,f),h,f))):c.push(n.slice(y,h)),p=f,!l))break}h===f&&++f}return l&&!o&&g&&g[0]&&n.length>p&&c.push(t(g[0],n.slice(p),p,n.length)),c}},t.exports=n.default},{}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}),\n/*!\n * XRegExp Unicode Base 4.1.1\n * \n * Steven Levithan (c) 2008-present MIT License\n */\nn.default=function(e){var t={},n=e._dec,i=e._hex,r=e._pad4;function s(e){return e.replace(/[- _]+/g,"").toLowerCase()}function a(e){var t=/^\\\\[xu](.+)/.exec(e);return t?n(t[1]):e.charCodeAt("\\\\"===e[0]?1:0)}function l(n){return t[n]["b!"]||(t[n]["b!"]=function(t){var n="",s=-1;return e.forEach(t,/(\\\\x..|\\\\u....|\\\\?[\\s\\S])(?:-(\\\\x..|\\\\u....|\\\\?[\\s\\S]))?/,function(e){var t=a(e[1]);t>s+1&&(n+="\\\\u"+r(i(s+1)),t>s+2&&(n+="-\\\\u"+r(i(t-1)))),s=a(e[2]||e[1])}),s<65535&&(n+="\\\\u"+r(i(s+1)),s<65534&&(n+="-\\\\uFFFF")),n}(t[n].bmp))}e.addToken(/\\\\([pP])(?:{(\\^?)([^}]*)}|([A-Za-z]))/,function(e,n,i){var r="P"===e[1]||!!e[2],a=-1!==i.indexOf("A"),o=s(e[4]||e[3]),u=t[o];if("P"===e[1]&&e[2])throw new SyntaxError("Invalid double negation "+e[0]);if(!t.hasOwnProperty(o))throw new SyntaxError("Unknown Unicode token "+e[0]);if(u.inverseOf){if(o=s(u.inverseOf),!t.hasOwnProperty(o))throw new ReferenceError("Unicode token missing data "+e[0]+" -> "+u.inverseOf);u=t[o],r=!r}if(!u.bmp&&!a)throw new SyntaxError("Astral mode required for Unicode token "+e[0]);if(a){if("class"===n)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes");return function(e,n){var i=n?"a!":"a=";return t[e][i]||(t[e][i]=function(e,n){var i=t[e],r="";return i.bmp&&!i.isBmpLast&&(r="["+i.bmp+"]"+(i.astral?"|":"")),i.astral&&(r+=i.astral),i.isBmpLast&&i.bmp&&(r+=(i.astral?"|":"")+"["+i.bmp+"]"),n?"(?:(?!"+r+")(?:[\\ud800-\\udbff][\\udc00-\\udfff]|[\\0-￿]))":"(?:"+r+")"}(e,n))}(o,r)}return"class"===n?r?l(o):u.bmp:(r?"[^":"[")+u.bmp+"]"},{scope:"all",optionalFlags:"A",leadChar:"\\\\"}),e.addUnicodeData=function(n){for(var i=void 0,r=0;r\n * Steven Levithan (c) 2010-present MIT License\n * Unicode data by Mathias Bynens \n */\nt.exports=n.default},{"../../tools/output/blocks":10}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/categories"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Categories");e.addUnicodeData(i.default)},\n/*!\n * XRegExp Unicode Categories 4.1.1\n * \n * Steven Levithan (c) 2010-present MIT License\n * Unicode data by Mathias Bynens \n */\nt.exports=n.default},{"../../tools/output/categories":11}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/properties"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");var t=i.default;t.push({name:"Assigned",inverseOf:"Cn"}),e.addUnicodeData(t)},\n/*!\n * XRegExp Unicode Properties 4.1.1\n * \n * Steven Levithan (c) 2012-present MIT License\n * Unicode data by Mathias Bynens \n */\nt.exports=n.default},{"../../tools/output/properties":12}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/scripts"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");e.addUnicodeData(i.default)},\n/*!\n * XRegExp Unicode Scripts 4.1.1\n * \n * Steven Levithan (c) 2010-present MIT License\n * Unicode data by Mathias Bynens \n */\nt.exports=n.default},{"../../tools/output/scripts":13}],8:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=g(e("./xregexp")),r=g(e("./addons/build")),s=g(e("./addons/matchrecursive")),a=g(e("./addons/unicode-base")),l=g(e("./addons/unicode-blocks")),o=g(e("./addons/unicode-categories")),u=g(e("./addons/unicode-properties")),d=g(e("./addons/unicode-scripts"));function g(e){return e&&e.__esModule?e:{default:e}}(0,r.default)(i.default),(0,s.default)(i.default),(0,a.default)(i.default),(0,l.default)(i.default),(0,o.default)(i.default),(0,u.default)(i.default),(0,d.default)(i.default),n.default=i.default,t.exports=n.default},{"./addons/build":1,"./addons/matchrecursive":2,"./addons/unicode-base":3,"./addons/unicode-blocks":4,"./addons/unicode-categories":5,"./addons/unicode-properties":6,"./addons/unicode-scripts":7,"./xregexp":9}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});\n/*!\n * XRegExp 4.1.1\n * \n * Steven Levithan (c) 2007-present MIT License\n */\nvar i="xregexp",r={astral:!1,namespacing:!1},s={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},a={},l={},o={},u=[],d="default",g="class",c={default:/\\\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\\d*|x[\\dA-Fa-f]{2}|u(?:[\\dA-Fa-f]{4}|{[\\dA-Fa-f]+})|c[A-Za-z]|[\\s\\S])|\\(\\?(?:[:=!]|<[=!])|[?*+]\\?|{\\d+(?:,\\d*)?}\\??|[\\s\\S]/,class:/\\\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\\dA-Fa-f]{2}|u(?:[\\dA-Fa-f]{4}|{[\\dA-Fa-f]+})|c[A-Za-z]|[\\s\\S])|[\\s\\S]/},m=/\\$(?:{([\\w$]+)}|<([\\w$]+)>|(\\d\\d?|[\\s\\S]))/g,h=void 0===s.exec.call(/()??/,"")[1],f=void 0!==/x/.flags,p={}.toString;function S(e){var t=!0;try{new RegExp("",e)}catch(e){t=!1}return t}var y=S("u"),b=S("y"),I={g:!0,i:!0,m:!0,u:y,y:b};function T(e,t,n,r,s){var a=void 0;if(e[i]={captureNames:t},s)return e;if(e.__proto__)e.__proto__=O.prototype;else for(a in O.prototype)e[a]=O.prototype[a];return e[i].source=n,e[i].flags=r?r.split("").sort().join(""):r,e}function B(e){return s.replace.call(e,/([\\s\\S])(?=[\\s\\S]*\\1)/g,"")}function C(e,t){if(!O.isRegExp(e))throw new TypeError("Type RegExp expected");var n=e[i]||{},r=function(e){return f?e.flags:s.exec.call(/\\/([a-z]*)$/i,RegExp.prototype.toString.call(e))[1]}(e),a="",l="",o=null,u=null;return(t=t||{}).removeG&&(l+="g"),t.removeY&&(l+="y"),l&&(r=s.replace.call(r,new RegExp("["+l+"]+","g"),"")),t.addG&&(a+="g"),t.addY&&(a+="y"),a&&(r=B(r+a)),t.isInternalOnly||(void 0!==n.source&&(o=n.source),null!=n.flags&&(u=a?B(n.flags+a):n.flags)),T(new RegExp(t.source||e.source,r),function(e){return!(!e[i]||!e[i].captureNames)}(e)?n.captureNames.slice(0):null,o,u,t.isInternalOnly)}function x(e){return parseInt(e,16)}function _(e,t,n){return"("===e.input[e.index-1]||")"===e.input[e.index+e[0].length]||"|"===e.input[e.index-1]||"|"===e.input[e.index+e[0].length]||e.index<1||e.index+e[0].length>=e.input.length||s.test.call(/^\\(\\?[:=!]/,e.input.substr(e.index-3,3))||function(e,t,n){return s.test.call(-1!==n.indexOf("x")?/^(?:\\s|#[^#\\n]*|\\(\\?#[^)]*\\))*(?:[?*+]|{\\d+(?:,\\d*)?})/:/^(?:\\(\\?#[^)]*\\))*(?:[?*+]|{\\d+(?:,\\d*)?})/,e.slice(t))}(e.input,e.index+e[0].length,n)?"":"(?:)"}function w(e){return parseInt(e,10).toString(16)}function v(e,t){return p.call(e)==="[object "+t+"]"}function R(e){for(;e.length<4;)e="0"+e;return e}function K(e){var t={};return v(e,"String")?(O.forEach(e,/[^\\s,]+/,function(e){t[e]=!0}),t):e}function A(e){if(!/^[\\w$]$/.test(e))throw new Error("Flag must be a single character A-Za-z0-9_$");I[e]=!0}function D(e,t,n,i,r){for(var s=u.length,a=e[n],l=null,o=void 0,d=void 0;s--;)if(!((d=u[s]).leadChar&&d.leadChar!==a||d.scope!==i&&"all"!==d.scope||d.flag&&-1===t.indexOf(d.flag))&&(o=O.exec(e,d.regex,n,"sticky"))){l={matchLength:o[0].length,output:d.handler.call(r,o,i,t),reparse:d.reparse};break}return l}function E(e){r.astral=e}function $(e){r.namespacing=e}function P(e){if(null==e)throw new TypeError("Cannot convert null or undefined to object");return e}function O(e,t){if(O.isRegExp(e)){if(void 0!==t)throw new TypeError("Cannot supply flags when copying a RegExp");return C(e)}if(e=void 0===e?"":String(e),t=void 0===t?"":String(t),O.isInstalled("astral")&&-1===t.indexOf("A")&&(t+="A"),o[e]||(o[e]={}),!o[e][t]){for(var n={hasNamedCapture:!1,captureNames:[]},i=d,r="",a=0,l=void 0,u=function(e,t){var n=void 0;if(B(t)!==t)throw new SyntaxError("Invalid duplicate regex flag "+t);for(e=s.replace.call(e,/^\\(\\?([\\w$]+)\\)/,function(e,n){if(s.test.call(/[gy]/,n))throw new SyntaxError("Cannot use flag g or y in mode modifier "+e);return t=B(t+n),""}),n=0;n"}else if(n)return"\\\\"+(+n+l);return e}if(!v(e,"Array")||!e.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(var d=/(\\()(?!\\?)|\\\\([1-9]\\d*)|\\\\[\\s\\S]|\\[(?:[^\\\\\\]]|\\\\[\\s\\S])*\\]/g,g=[],c=void 0,m=0;m1&&-1!==n.indexOf("")){var r=C(this,{removeG:!0,isInternalOnly:!0});s.replace.call(String(e).slice(n.index),r,function(){for(var e=arguments.length,t=Array(e),i=0;in.index&&(this.lastIndex=n.index)}return this.global||(this.lastIndex=t),n},a.test=function(e){return!!a.exec.call(this,e)},a.match=function(e){if(O.isRegExp(e)){if(e.global){var t=s.match.apply(this,arguments);return e.lastIndex=0,t}}else e=new RegExp(e);return a.exec.call(e,P(this))},a.replace=function(e,t){var n,r=O.isRegExp(e),a=void 0,l=void 0;return r?(e[i]&&(l=e[i].captureNames),a=e.lastIndex):e+="",n=v(t,"Function")?s.replace.call(String(this),e,function(){for(var n=arguments.length,i=Array(n),s=0;sn.length-3)throw new SyntaxError("Backreference to undefined group "+e);return n[r]||""}throw new SyntaxError("Invalid token "+e)})}),r&&(e.global?e.lastIndex=0:e.lastIndex=a),n},a.split=function(e,t){if(!O.isRegExp(e))return s.split.apply(this,arguments);var n=String(this),i=[],r=e.lastIndex,a=0,l=void 0;return t=(void 0===t?-1:t)>>>0,O.forEach(n,e,function(e){e.index+e[0].length>a&&(i.push(n.slice(a,e.index)),e.length>1&&e.indext?i.slice(0,t):i},O.addToken(/\\\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\\dA-Fa-f]{4}|{[\\dA-Fa-f]+})|x(?![\\dA-Fa-f]{2}))/,function(e,t){if("B"===e[1]&&t===d)return e[0];throw new SyntaxError("Invalid escape "+e[0])},{scope:"all",leadChar:"\\\\"}),O.addToken(/\\\\u{([\\dA-Fa-f]+)}/,function(e,t,n){var i=x(e[1]);if(i>1114111)throw new SyntaxError("Invalid Unicode code point "+e[0]);if(i<=65535)return"\\\\u"+R(w(i));if(y&&-1!==n.indexOf("u"))return e[0];throw new SyntaxError("Cannot use Unicode code point above \\\\u{FFFF} without flag u")},{scope:"all",leadChar:"\\\\"}),O.addToken(/\\[(\\^?)\\]/,function(e){return e[1]?"[\\\\s\\\\S]":"\\\\b\\\\B"},{leadChar:"["}),O.addToken(/\\(\\?#[^)]*\\)/,_,{leadChar:"("}),O.addToken(/\\s+|#[^\\n]*\\n?/,_,{flag:"x"}),O.addToken(/\\./,function(){return"[\\\\s\\\\S]"},{flag:"s",leadChar:"."}),O.addToken(/\\\\k<([\\w$]+)>/,function(e){var t=isNaN(e[1])?this.captureNames.indexOf(e[1])+1:+e[1],n=e.index+e[0].length;if(!t||t>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+e[0]);return"\\\\"+t+(n===e.input.length||isNaN(e.input[n])?"":"(?:)")},{leadChar:"\\\\"}),O.addToken(/\\\\(\\d+)/,function(e,t){if(!(t===d&&/^[1-9]/.test(e[1])&&+e[1]<=this.captureNames.length)&&"0"!==e[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+e[0]);return e[0]},{scope:"all",leadChar:"\\\\"}),O.addToken(/\\(\\?P?<([\\w$]+)>/,function(e){if(!isNaN(e[1]))throw new SyntaxError("Cannot use integer as capture name "+e[0]);if(!O.isInstalled("namespacing")&&("length"===e[1]||"__proto__"===e[1]))throw new SyntaxError("Cannot use reserved word as capture name "+e[0]);if(-1!==this.captureNames.indexOf(e[1]))throw new SyntaxError("Cannot use same name for multiple groups "+e[0]);return this.captureNames.push(e[1]),this.hasNamedCapture=!0,"("},{leadChar:"("}),O.addToken(/\\((?!\\?)/,function(e,t,n){return-1!==n.indexOf("n")?"(?:":(this.captureNames.push(null),"(")},{optionalFlags:"n",leadChar:"("}),n.default=O,t.exports=n.default},{}],10:[function(e,t,n){t.exports=[{name:"InAdlam",astral:"\\ud83a[\\udd00-\\udd5f]"},{name:"InAegean_Numbers",astral:"\\ud800[\\udd00-\\udd3f]"},{name:"InAhom",astral:"\\ud805[\\udf00-\\udf3f]"},{name:"InAlchemical_Symbols",astral:"\\ud83d[\\udf00-\\udf7f]"},{name:"InAlphabetic_Presentation_Forms",bmp:"ff-ﭏ"},{name:"InAnatolian_Hieroglyphs",astral:"\\ud811[\\udc00-\\ude7f]"},{name:"InAncient_Greek_Musical_Notation",astral:"\\ud834[\\ude00-\\ude4f]"},{name:"InAncient_Greek_Numbers",astral:"\\ud800[\\udd40-\\udd8f]"},{name:"InAncient_Symbols",astral:"\\ud800[\\udd90-\\uddcf]"},{name:"InArabic",bmp:"؀-ۿ"},{name:"InArabic_Extended_A",bmp:"ࢠ-ࣿ"},{name:"InArabic_Mathematical_Alphabetic_Symbols",astral:"\\ud83b[\\ude00-\\udeff]"},{name:"InArabic_Presentation_Forms_A",bmp:"ﭐ-﷿"},{name:"InArabic_Presentation_Forms_B",bmp:"ﹰ-\\ufeff"},{name:"InArabic_Supplement",bmp:"ݐ-ݿ"},{name:"InArmenian",bmp:"԰-֏"},{name:"InArrows",bmp:"←-⇿"},{name:"InAvestan",astral:"\\ud802[\\udf00-\\udf3f]"},{name:"InBalinese",bmp:"ᬀ-᭿"},{name:"InBamum",bmp:"ꚠ-꛿"},{name:"InBamum_Supplement",astral:"\\ud81a[\\udc00-\\ude3f]"},{name:"InBasic_Latin",bmp:"\\0-"},{name:"InBassa_Vah",astral:"\\ud81a[\\uded0-\\udeff]"},{name:"InBatak",bmp:"ᯀ-᯿"},{name:"InBengali",bmp:"ঀ-৿"},{name:"InBhaiksuki",astral:"\\ud807[\\udc00-\\udc6f]"},{name:"InBlock_Elements",bmp:"▀-▟"},{name:"InBopomofo",bmp:"㄀-ㄯ"},{name:"InBopomofo_Extended",bmp:"ㆠ-ㆿ"},{name:"InBox_Drawing",bmp:"─-╿"},{name:"InBrahmi",astral:"\\ud804[\\udc00-\\udc7f]"},{name:"InBraille_Patterns",bmp:"⠀-⣿"},{name:"InBuginese",bmp:"ᨀ-᨟"},{name:"InBuhid",bmp:"ᝀ-᝟"},{name:"InByzantine_Musical_Symbols",astral:"\\ud834[\\udc00-\\udcff]"},{name:"InCJK_Compatibility",bmp:"㌀-㏿"},{name:"InCJK_Compatibility_Forms",bmp:"︰-﹏"},{name:"InCJK_Compatibility_Ideographs",bmp:"豈-﫿"},{name:"InCJK_Compatibility_Ideographs_Supplement",astral:"\\ud87e[\\udc00-\\ude1f]"},{name:"InCJK_Radicals_Supplement",bmp:"⺀-⻿"},{name:"InCJK_Strokes",bmp:"㇀-㇯"},{name:"InCJK_Symbols_And_Punctuation",bmp:" -〿"},{name:"InCJK_Unified_Ideographs",bmp:"一-鿿"},{name:"InCJK_Unified_Ideographs_Extension_A",bmp:"㐀-䶿"},{name:"InCJK_Unified_Ideographs_Extension_B",astral:"[\\ud840-\\ud868][\\udc00-\\udfff]|\\ud869[\\udc00-\\udedf]"},{name:"InCJK_Unified_Ideographs_Extension_C",astral:"\\ud869[\\udf00-\\udfff]|[\\ud86a-\\ud86c][\\udc00-\\udfff]|\\ud86d[\\udc00-\\udf3f]"},{name:"InCJK_Unified_Ideographs_Extension_D",astral:"\\ud86d[\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1f]"},{name:"InCJK_Unified_Ideographs_Extension_E",astral:"\\ud86e[\\udc20-\\udfff]|[\\ud86f-\\ud872][\\udc00-\\udfff]|\\ud873[\\udc00-\\udeaf]"},{name:"InCJK_Unified_Ideographs_Extension_F",astral:"\\ud873[\\udeb0-\\udfff]|[\\ud874-\\ud879][\\udc00-\\udfff]|\\ud87a[\\udc00-\\udfef]"},{name:"InCarian",astral:"\\ud800[\\udea0-\\udedf]"},{name:"InCaucasian_Albanian",astral:"\\ud801[\\udd30-\\udd6f]"},{name:"InChakma",astral:"\\ud804[\\udd00-\\udd4f]"},{name:"InCham",bmp:"ꨀ-꩟"},{name:"InCherokee",bmp:"Ꭰ-᏿"},{name:"InCherokee_Supplement",bmp:"ꭰ-ꮿ"},{name:"InCombining_Diacritical_Marks",bmp:"̀-ͯ"},{name:"InCombining_Diacritical_Marks_Extended",bmp:"᪰-᫿"},{name:"InCombining_Diacritical_Marks_For_Symbols",bmp:"⃐-⃿"},{name:"InCombining_Diacritical_Marks_Supplement",bmp:"᷀-᷿"},{name:"InCombining_Half_Marks",bmp:"︠-︯"},{name:"InCommon_Indic_Number_Forms",bmp:"꠰-꠿"},{name:"InControl_Pictures",bmp:"␀-␿"},{name:"InCoptic",bmp:"Ⲁ-⳿"},{name:"InCoptic_Epact_Numbers",astral:"\\ud800[\\udee0-\\udeff]"},{name:"InCounting_Rod_Numerals",astral:"\\ud834[\\udf60-\\udf7f]"},{name:"InCuneiform",astral:"\\ud808[\\udc00-\\udfff]"},{name:"InCuneiform_Numbers_And_Punctuation",astral:"\\ud809[\\udc00-\\udc7f]"},{name:"InCurrency_Symbols",bmp:"₠-⃏"},{name:"InCypriot_Syllabary",astral:"\\ud802[\\udc00-\\udc3f]"},{name:"InCyrillic",bmp:"Ѐ-ӿ"},{name:"InCyrillic_Extended_A",bmp:"ⷠ-ⷿ"},{name:"InCyrillic_Extended_B",bmp:"Ꙁ-ꚟ"},{name:"InCyrillic_Extended_C",bmp:"ᲀ-᲏"},{name:"InCyrillic_Supplement",bmp:"Ԁ-ԯ"},{name:"InDeseret",astral:"\\ud801[\\udc00-\\udc4f]"},{name:"InDevanagari",bmp:"ऀ-ॿ"},{name:"InDevanagari_Extended",bmp:"꣠-ꣿ"},{name:"InDingbats",bmp:"✀-➿"},{name:"InDomino_Tiles",astral:"\\ud83c[\\udc30-\\udc9f]"},{name:"InDuployan",astral:"\\ud82f[\\udc00-\\udc9f]"},{name:"InEarly_Dynastic_Cuneiform",astral:"\\ud809[\\udc80-\\udd4f]"},{name:"InEgyptian_Hieroglyphs",astral:"\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2f]"},{name:"InElbasan",astral:"\\ud801[\\udd00-\\udd2f]"},{name:"InEmoticons",astral:"\\ud83d[\\ude00-\\ude4f]"},{name:"InEnclosed_Alphanumeric_Supplement",astral:"\\ud83c[\\udd00-\\uddff]"},{name:"InEnclosed_Alphanumerics",bmp:"①-⓿"},{name:"InEnclosed_CJK_Letters_And_Months",bmp:"㈀-㋿"},{name:"InEnclosed_Ideographic_Supplement",astral:"\\ud83c[\\ude00-\\udeff]"},{name:"InEthiopic",bmp:"ሀ-፿"},{name:"InEthiopic_Extended",bmp:"ⶀ-⷟"},{name:"InEthiopic_Extended_A",bmp:"꬀-꬯"},{name:"InEthiopic_Supplement",bmp:"ᎀ-᎟"},{name:"InGeneral_Punctuation",bmp:" -"},{name:"InGeometric_Shapes",bmp:"■-◿"},{name:"InGeometric_Shapes_Extended",astral:"\\ud83d[\\udf80-\\udfff]"},{name:"InGeorgian",bmp:"Ⴀ-ჿ"},{name:"InGeorgian_Supplement",bmp:"ⴀ-⴯"},{name:"InGlagolitic",bmp:"Ⰰ-ⱟ"},{name:"InGlagolitic_Supplement",astral:"\\ud838[\\udc00-\\udc2f]"},{name:"InGothic",astral:"\\ud800[\\udf30-\\udf4f]"},{name:"InGrantha",astral:"\\ud804[\\udf00-\\udf7f]"},{name:"InGreek_And_Coptic",bmp:"Ͱ-Ͽ"},{name:"InGreek_Extended",bmp:"ἀ-῿"},{name:"InGujarati",bmp:"઀-૿"},{name:"InGurmukhi",bmp:"਀-੿"},{name:"InHalfwidth_And_Fullwidth_Forms",bmp:"＀-￯"},{name:"InHangul_Compatibility_Jamo",bmp:"㄰-㆏"},{name:"InHangul_Jamo",bmp:"ᄀ-ᇿ"},{name:"InHangul_Jamo_Extended_A",bmp:"ꥠ-꥿"},{name:"InHangul_Jamo_Extended_B",bmp:"ힰ-퟿"},{name:"InHangul_Syllables",bmp:"가-힯"},{name:"InHanunoo",bmp:"ᜠ-᜿"},{name:"InHatran",astral:"\\ud802[\\udce0-\\udcff]"},{name:"InHebrew",bmp:"֐-׿"},{name:"InHigh_Private_Use_Surrogates",bmp:"\\udb80-\\udbff"},{name:"InHigh_Surrogates",bmp:"\\ud800-\\udb7f"},{name:"InHiragana",bmp:"぀-ゟ"},{name:"InIPA_Extensions",bmp:"ɐ-ʯ"},{name:"InIdeographic_Description_Characters",bmp:"⿰-⿿"},{name:"InIdeographic_Symbols_And_Punctuation",astral:"\\ud81b[\\udfe0-\\udfff]"},{name:"InImperial_Aramaic",astral:"\\ud802[\\udc40-\\udc5f]"},{name:"InInscriptional_Pahlavi",astral:"\\ud802[\\udf60-\\udf7f]"},{name:"InInscriptional_Parthian",astral:"\\ud802[\\udf40-\\udf5f]"},{name:"InJavanese",bmp:"ꦀ-꧟"},{name:"InKaithi",astral:"\\ud804[\\udc80-\\udccf]"},{name:"InKana_Extended_A",astral:"\\ud82c[\\udd00-\\udd2f]"},{name:"InKana_Supplement",astral:"\\ud82c[\\udc00-\\udcff]"},{name:"InKanbun",bmp:"㆐-㆟"},{name:"InKangxi_Radicals",bmp:"⼀-⿟"},{name:"InKannada",bmp:"ಀ-೿"},{name:"InKatakana",bmp:"゠-ヿ"},{name:"InKatakana_Phonetic_Extensions",bmp:"ㇰ-ㇿ"},{name:"InKayah_Li",bmp:"꤀-꤯"},{name:"InKharoshthi",astral:"\\ud802[\\ude00-\\ude5f]"},{name:"InKhmer",bmp:"ក-៿"},{name:"InKhmer_Symbols",bmp:"᧠-᧿"},{name:"InKhojki",astral:"\\ud804[\\ude00-\\ude4f]"},{name:"InKhudawadi",astral:"\\ud804[\\udeb0-\\udeff]"},{name:"InLao",bmp:"຀-໿"},{name:"InLatin_1_Supplement",bmp:"€-ÿ"},{name:"InLatin_Extended_A",bmp:"Ā-ſ"},{name:"InLatin_Extended_Additional",bmp:"Ḁ-ỿ"},{name:"InLatin_Extended_B",bmp:"ƀ-ɏ"},{name:"InLatin_Extended_C",bmp:"Ⱡ-Ɀ"},{name:"InLatin_Extended_D",bmp:"꜠-ꟿ"},{name:"InLatin_Extended_E",bmp:"ꬰ-꭯"},{name:"InLepcha",bmp:"ᰀ-ᱏ"},{name:"InLetterlike_Symbols",bmp:"℀-⅏"},{name:"InLimbu",bmp:"ᤀ-᥏"},{name:"InLinear_A",astral:"\\ud801[\\ude00-\\udf7f]"},{name:"InLinear_B_Ideograms",astral:"\\ud800[\\udc80-\\udcff]"},{name:"InLinear_B_Syllabary",astral:"\\ud800[\\udc00-\\udc7f]"},{name:"InLisu",bmp:"ꓐ-꓿"},{name:"InLow_Surrogates",bmp:"\\udc00-\\udfff"},{name:"InLycian",astral:"\\ud800[\\ude80-\\ude9f]"},{name:"InLydian",astral:"\\ud802[\\udd20-\\udd3f]"},{name:"InMahajani",astral:"\\ud804[\\udd50-\\udd7f]"},{name:"InMahjong_Tiles",astral:"\\ud83c[\\udc00-\\udc2f]"},{name:"InMalayalam",bmp:"ഀ-ൿ"},{name:"InMandaic",bmp:"ࡀ-࡟"},{name:"InManichaean",astral:"\\ud802[\\udec0-\\udeff]"},{name:"InMarchen",astral:"\\ud807[\\udc70-\\udcbf]"},{name:"InMasaram_Gondi",astral:"\\ud807[\\udd00-\\udd5f]"},{name:"InMathematical_Alphanumeric_Symbols",astral:"\\ud835[\\udc00-\\udfff]"},{name:"InMathematical_Operators",bmp:"∀-⋿"},{name:"InMeetei_Mayek",bmp:"ꯀ-꯿"},{name:"InMeetei_Mayek_Extensions",bmp:"ꫠ-꫿"},{name:"InMende_Kikakui",astral:"\\ud83a[\\udc00-\\udcdf]"},{name:"InMeroitic_Cursive",astral:"\\ud802[\\udda0-\\uddff]"},{name:"InMeroitic_Hieroglyphs",astral:"\\ud802[\\udd80-\\udd9f]"},{name:"InMiao",astral:"\\ud81b[\\udf00-\\udf9f]"},{name:"InMiscellaneous_Mathematical_Symbols_A",bmp:"⟀-⟯"},{name:"InMiscellaneous_Mathematical_Symbols_B",bmp:"⦀-⧿"},{name:"InMiscellaneous_Symbols",bmp:"☀-⛿"},{name:"InMiscellaneous_Symbols_And_Arrows",bmp:"⬀-⯿"},{name:"InMiscellaneous_Symbols_And_Pictographs",astral:"\\ud83c[\\udf00-\\udfff]|\\ud83d[\\udc00-\\uddff]"},{name:"InMiscellaneous_Technical",bmp:"⌀-⏿"},{name:"InModi",astral:"\\ud805[\\ude00-\\ude5f]"},{name:"InModifier_Tone_Letters",bmp:"꜀-ꜟ"},{name:"InMongolian",bmp:"᠀-᢯"},{name:"InMongolian_Supplement",astral:"\\ud805[\\ude60-\\ude7f]"},{name:"InMro",astral:"\\ud81a[\\ude40-\\ude6f]"},{name:"InMultani",astral:"\\ud804[\\ude80-\\udeaf]"},{name:"InMusical_Symbols",astral:"\\ud834[\\udd00-\\uddff]"},{name:"InMyanmar",bmp:"က-႟"},{name:"InMyanmar_Extended_A",bmp:"ꩠ-ꩿ"},{name:"InMyanmar_Extended_B",bmp:"ꧠ-꧿"},{name:"InNKo",bmp:"߀-߿"},{name:"InNabataean",astral:"\\ud802[\\udc80-\\udcaf]"},{name:"InNew_Tai_Lue",bmp:"ᦀ-᧟"},{name:"InNewa",astral:"\\ud805[\\udc00-\\udc7f]"},{name:"InNumber_Forms",bmp:"⅐-↏"},{name:"InNushu",astral:"\\ud82c[\\udd70-\\udeff]"},{name:"InOgham",bmp:" -᚟"},{name:"InOl_Chiki",bmp:"᱐-᱿"},{name:"InOld_Hungarian",astral:"\\ud803[\\udc80-\\udcff]"},{name:"InOld_Italic",astral:"\\ud800[\\udf00-\\udf2f]"},{name:"InOld_North_Arabian",astral:"\\ud802[\\ude80-\\ude9f]"},{name:"InOld_Permic",astral:"\\ud800[\\udf50-\\udf7f]"},{name:"InOld_Persian",astral:"\\ud800[\\udfa0-\\udfdf]"},{name:"InOld_South_Arabian",astral:"\\ud802[\\ude60-\\ude7f]"},{name:"InOld_Turkic",astral:"\\ud803[\\udc00-\\udc4f]"},{name:"InOptical_Character_Recognition",bmp:"⑀-⑟"},{name:"InOriya",bmp:"଀-୿"},{name:"InOrnamental_Dingbats",astral:"\\ud83d[\\ude50-\\ude7f]"},{name:"InOsage",astral:"\\ud801[\\udcb0-\\udcff]"},{name:"InOsmanya",astral:"\\ud801[\\udc80-\\udcaf]"},{name:"InPahawh_Hmong",astral:"\\ud81a[\\udf00-\\udf8f]"},{name:"InPalmyrene",astral:"\\ud802[\\udc60-\\udc7f]"},{name:"InPau_Cin_Hau",astral:"\\ud806[\\udec0-\\udeff]"},{name:"InPhags_Pa",bmp:"ꡀ-꡿"},{name:"InPhaistos_Disc",astral:"\\ud800[\\uddd0-\\uddff]"},{name:"InPhoenician",astral:"\\ud802[\\udd00-\\udd1f]"},{name:"InPhonetic_Extensions",bmp:"ᴀ-ᵿ"},{name:"InPhonetic_Extensions_Supplement",bmp:"ᶀ-ᶿ"},{name:"InPlaying_Cards",astral:"\\ud83c[\\udca0-\\udcff]"},{name:"InPrivate_Use_Area",bmp:"-"},{name:"InPsalter_Pahlavi",astral:"\\ud802[\\udf80-\\udfaf]"},{name:"InRejang",bmp:"ꤰ-꥟"},{name:"InRumi_Numeral_Symbols",astral:"\\ud803[\\ude60-\\ude7f]"},{name:"InRunic",bmp:"ᚠ-᛿"},{name:"InSamaritan",bmp:"ࠀ-࠿"},{name:"InSaurashtra",bmp:"ꢀ-꣟"},{name:"InSharada",astral:"\\ud804[\\udd80-\\udddf]"},{name:"InShavian",astral:"\\ud801[\\udc50-\\udc7f]"},{name:"InShorthand_Format_Controls",astral:"\\ud82f[\\udca0-\\udcaf]"},{name:"InSiddham",astral:"\\ud805[\\udd80-\\uddff]"},{name:"InSinhala",bmp:"඀-෿"},{name:"InSinhala_Archaic_Numbers",astral:"\\ud804[\\udde0-\\uddff]"},{name:"InSmall_Form_Variants",bmp:"﹐-﹯"},{name:"InSora_Sompeng",astral:"\\ud804[\\udcd0-\\udcff]"},{name:"InSoyombo",astral:"\\ud806[\\ude50-\\udeaf]"},{name:"InSpacing_Modifier_Letters",bmp:"ʰ-˿"},{name:"InSpecials",bmp:"￰-￿"},{name:"InSundanese",bmp:"ᮀ-ᮿ"},{name:"InSundanese_Supplement",bmp:"᳀-᳏"},{name:"InSuperscripts_And_Subscripts",bmp:"⁰-₟"},{name:"InSupplemental_Arrows_A",bmp:"⟰-⟿"},{name:"InSupplemental_Arrows_B",bmp:"⤀-⥿"},{name:"InSupplemental_Arrows_C",astral:"\\ud83e[\\udc00-\\udcff]"},{name:"InSupplemental_Mathematical_Operators",bmp:"⨀-⫿"},{name:"InSupplemental_Punctuation",bmp:"⸀-⹿"},{name:"InSupplemental_Symbols_And_Pictographs",astral:"\\ud83e[\\udd00-\\uddff]"},{name:"InSupplementary_Private_Use_Area_A",astral:"[\\udb80-\\udbbf][\\udc00-\\udfff]"},{name:"InSupplementary_Private_Use_Area_B",astral:"[\\udbc0-\\udbff][\\udc00-\\udfff]"},{name:"InSutton_SignWriting",astral:"\\ud836[\\udc00-\\udeaf]"},{name:"InSyloti_Nagri",bmp:"ꠀ-꠯"},{name:"InSyriac",bmp:"܀-ݏ"},{name:"InSyriac_Supplement",bmp:"ࡠ-࡯"},{name:"InTagalog",bmp:"ᜀ-ᜟ"},{name:"InTagbanwa",bmp:"ᝠ-᝿"},{name:"InTags",astral:"\\udb40[\\udc00-\\udc7f]"},{name:"InTai_Le",bmp:"ᥐ-᥿"},{name:"InTai_Tham",bmp:"ᨠ-᪯"},{name:"InTai_Viet",bmp:"ꪀ-꫟"},{name:"InTai_Xuan_Jing_Symbols",astral:"\\ud834[\\udf00-\\udf5f]"},{name:"InTakri",astral:"\\ud805[\\ude80-\\udecf]"},{name:"InTamil",bmp:"஀-௿"},{name:"InTangut",astral:"[\\ud81c-\\ud821][\\udc00-\\udfff]"},{name:"InTangut_Components",astral:"\\ud822[\\udc00-\\udeff]"},{name:"InTelugu",bmp:"ఀ-౿"},{name:"InThaana",bmp:"ހ-޿"},{name:"InThai",bmp:"฀-๿"},{name:"InTibetan",bmp:"ༀ-࿿"},{name:"InTifinagh",bmp:"ⴰ-⵿"},{name:"InTirhuta",astral:"\\ud805[\\udc80-\\udcdf]"},{name:"InTransport_And_Map_Symbols",astral:"\\ud83d[\\ude80-\\udeff]"},{name:"InUgaritic",astral:"\\ud800[\\udf80-\\udf9f]"},{name:"InUnified_Canadian_Aboriginal_Syllabics",bmp:"᐀-ᙿ"},{name:"InUnified_Canadian_Aboriginal_Syllabics_Extended",bmp:"ᢰ-᣿"},{name:"InVai",bmp:"ꔀ-꘿"},{name:"InVariation_Selectors",bmp:"︀-️"},{name:"InVariation_Selectors_Supplement",astral:"\\udb40[\\udd00-\\uddef]"},{name:"InVedic_Extensions",bmp:"᳐-᳿"},{name:"InVertical_Forms",bmp:"︐-︟"},{name:"InWarang_Citi",astral:"\\ud806[\\udca0-\\udcff]"},{name:"InYi_Radicals",bmp:"꒐-꓏"},{name:"InYi_Syllables",bmp:"ꀀ-꒏"},{name:"InYijing_Hexagram_Symbols",bmp:"䷀-䷿"},{name:"InZanabazar_Square",astral:"\\ud806[\\ude00-\\ude4f]"}]},{}],11:[function(e,t,n){t.exports=[{name:"C",alias:"Other",isBmpLast:!0,bmp:"\\0--Ÿ­͸͹΀-΃΋΍΢԰՗՘ՠֈ֋֌֐׈-׏׫-ׯ׵-؅؜؝۝܎܏݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟࡫-࢟ࢵࢾ-࣓࣢঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৾-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿ఄ఍఑఩఺-఼౅౉౎-౔౗౛-౟౤౥౰-౷಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-೿ഄ഍഑൅൉൐-൓൤൥඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠎᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯ᪿ-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-Ჿ᳈-᳏ᳺ-᳿᷺἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿​-‏‪-‮⁠-⁲⁳₏₝-₟⃀-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⮗⮺-⮼⯉⯓-⯫⯰-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹊-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄯ㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿫-鿿꒍-꒏꓇-꓏꘬-꘿꛸-꛿ꞯꞸ-ꟶ꠬-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟ꣾꣿ꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯ꭦ-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟﹓﹧﹬-﹯﹵﻽-＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￾￿",astral:"\\ud800[\\udc0c\\udc27\\udc3b\\udc3e\\udc4e\\udc4f\\udc5e-\\udc7f\\udcfb-\\udcff\\udd03-\\udd06\\udd34-\\udd36\\udd8f\\udd9c-\\udd9f\\udda1-\\uddcf\\uddfe-\\ude7f\\ude9d-\\ude9f\\uded1-\\udedf\\udefc-\\udeff\\udf24-\\udf2c\\udf4b-\\udf4f\\udf7b-\\udf7f\\udf9e\\udfc4-\\udfc7\\udfd6-\\udfff]|\\ud801[\\udc9e\\udc9f\\udcaa-\\udcaf\\udcd4-\\udcd7\\udcfc-\\udcff\\udd28-\\udd2f\\udd64-\\udd6e\\udd70-\\uddff\\udf37-\\udf3f\\udf56-\\udf5f\\udf68-\\udfff]|\\ud802[\\udc06\\udc07\\udc09\\udc36\\udc39-\\udc3b\\udc3d\\udc3e\\udc56\\udc9f-\\udca6\\udcb0-\\udcdf\\udcf3\\udcf6-\\udcfa\\udd1c-\\udd1e\\udd3a-\\udd3e\\udd40-\\udd7f\\uddb8-\\uddbb\\uddd0\\uddd1\\ude04\\ude07-\\ude0b\\ude14\\ude18\\ude34-\\ude37\\ude3b-\\ude3e\\ude48-\\ude4f\\ude59-\\ude5f\\udea0-\\udebf\\udee7-\\udeea\\udef7-\\udeff\\udf36-\\udf38\\udf56\\udf57\\udf73-\\udf77\\udf92-\\udf98\\udf9d-\\udfa8\\udfb0-\\udfff]|\\ud803[\\udc49-\\udc7f\\udcb3-\\udcbf\\udcf3-\\udcf9\\udd00-\\ude5f\\ude7f-\\udfff]|\\ud804[\\udc4e-\\udc51\\udc70-\\udc7e\\udcbd\\udcc2-\\udccf\\udce9-\\udcef\\udcfa-\\udcff\\udd35\\udd44-\\udd4f\\udd77-\\udd7f\\uddce\\uddcf\\udde0\\uddf5-\\uddff\\ude12\\ude3f-\\ude7f\\ude87\\ude89\\ude8e\\ude9e\\udeaa-\\udeaf\\udeeb-\\udeef\\udefa-\\udeff\\udf04\\udf0d\\udf0e\\udf11\\udf12\\udf29\\udf31\\udf34\\udf3a\\udf3b\\udf45\\udf46\\udf49\\udf4a\\udf4e\\udf4f\\udf51-\\udf56\\udf58-\\udf5c\\udf64\\udf65\\udf6d-\\udf6f\\udf75-\\udfff]|\\ud805[\\udc5a\\udc5c\\udc5e-\\udc7f\\udcc8-\\udccf\\udcda-\\udd7f\\uddb6\\uddb7\\uddde-\\uddff\\ude45-\\ude4f\\ude5a-\\ude5f\\ude6d-\\ude7f\\udeb8-\\udebf\\udeca-\\udeff\\udf1a-\\udf1c\\udf2c-\\udf2f\\udf40-\\udfff]|\\ud806[\\udc00-\\udc9f\\udcf3-\\udcfe\\udd00-\\uddff\\ude48-\\ude4f\\ude84\\ude85\\ude9d\\udea3-\\udebf\\udef9-\\udfff]|\\ud807[\\udc09\\udc37\\udc46-\\udc4f\\udc6d-\\udc6f\\udc90\\udc91\\udca8\\udcb7-\\udcff\\udd07\\udd0a\\udd37-\\udd39\\udd3b\\udd3e\\udd48-\\udd4f\\udd5a-\\udfff]|\\ud808[\\udf9a-\\udfff]|\\ud809[\\udc6f\\udc75-\\udc7f\\udd44-\\udfff]|[\\ud80a\\ud80b\\ud80e-\\ud810\\ud812-\\ud819\\ud823-\\ud82b\\ud82d\\ud82e\\ud830-\\ud833\\ud837\\ud839\\ud83f\\ud87b-\\ud87d\\ud87f-\\udb3f\\udb41-\\udbff][\\udc00-\\udfff]|\\ud80d[\\udc2f-\\udfff]|\\ud811[\\ude47-\\udfff]|\\ud81a[\\ude39-\\ude3f\\ude5f\\ude6a-\\ude6d\\ude70-\\udecf\\udeee\\udeef\\udef6-\\udeff\\udf46-\\udf4f\\udf5a\\udf62\\udf78-\\udf7c\\udf90-\\udfff]|\\ud81b[\\udc00-\\udeff\\udf45-\\udf4f\\udf7f-\\udf8e\\udfa0-\\udfdf\\udfe2-\\udfff]|\\ud821[\\udfed-\\udfff]|\\ud822[\\udef3-\\udfff]|\\ud82c[\\udd1f-\\udd6f\\udefc-\\udfff]|\\ud82f[\\udc6b-\\udc6f\\udc7d-\\udc7f\\udc89-\\udc8f\\udc9a\\udc9b\\udca0-\\udfff]|\\ud834[\\udcf6-\\udcff\\udd27\\udd28\\udd73-\\udd7a\\udde9-\\uddff\\ude46-\\udeff\\udf57-\\udf5f\\udf72-\\udfff]|\\ud835[\\udc55\\udc9d\\udca0\\udca1\\udca3\\udca4\\udca7\\udca8\\udcad\\udcba\\udcbc\\udcc4\\udd06\\udd0b\\udd0c\\udd15\\udd1d\\udd3a\\udd3f\\udd45\\udd47-\\udd49\\udd51\\udea6\\udea7\\udfcc\\udfcd]|\\ud836[\\ude8c-\\ude9a\\udea0\\udeb0-\\udfff]|\\ud838[\\udc07\\udc19\\udc1a\\udc22\\udc25\\udc2b-\\udfff]|\\ud83a[\\udcc5\\udcc6\\udcd7-\\udcff\\udd4b-\\udd4f\\udd5a-\\udd5d\\udd60-\\udfff]|\\ud83b[\\udc00-\\uddff\\ude04\\ude20\\ude23\\ude25\\ude26\\ude28\\ude33\\ude38\\ude3a\\ude3c-\\ude41\\ude43-\\ude46\\ude48\\ude4a\\ude4c\\ude50\\ude53\\ude55\\ude56\\ude58\\ude5a\\ude5c\\ude5e\\ude60\\ude63\\ude65\\ude66\\ude6b\\ude73\\ude78\\ude7d\\ude7f\\ude8a\\ude9c-\\udea0\\udea4\\udeaa\\udebc-\\udeef\\udef2-\\udfff]|\\ud83c[\\udc2c-\\udc2f\\udc94-\\udc9f\\udcaf\\udcb0\\udcc0\\udcd0\\udcf6-\\udcff\\udd0d-\\udd0f\\udd2f\\udd6c-\\udd6f\\uddad-\\udde5\\ude03-\\ude0f\\ude3c-\\ude3f\\ude49-\\ude4f\\ude52-\\ude5f\\ude66-\\udeff]|\\ud83d[\\uded5-\\udedf\\udeed-\\udeef\\udef9-\\udeff\\udf74-\\udf7f\\udfd5-\\udfff]|\\ud83e[\\udc0c-\\udc0f\\udc48-\\udc4f\\udc5a-\\udc5f\\udc88-\\udc8f\\udcae-\\udcff\\udd0c-\\udd0f\\udd3f\\udd4d-\\udd4f\\udd6c-\\udd7f\\udd98-\\uddbf\\uddc1-\\uddcf\\udde7-\\udfff]|\\ud869[\\uded7-\\udeff]|\\ud86d[\\udf35-\\udf3f]|\\ud86e[\\udc1e\\udc1f]|\\ud873[\\udea2-\\udeaf]|\\ud87a[\\udfe1-\\udfff]|\\ud87e[\\ude1e-\\udfff]|\\udb40[\\udc00-\\udcff\\uddf0-\\udfff]"},{name:"Cc",alias:"Control",bmp:"\\0--Ÿ"},{name:"Cf",alias:"Format",bmp:"­؀-؅؜۝܏࣢᠎​-‏‪-‮⁠-⁤⁦-\\ufeff-",astral:"𑂽|\\ud82f[\\udca0-\\udca3]|\\ud834[\\udd73-\\udd7a]|\\udb40[\\udc01\\udc20-\\udc7f]"},{name:"Cn",alias:"Unassigned",bmp:"͸͹΀-΃΋΍΢԰՗՘ՠֈ֋֌֐׈-׏׫-ׯ׵-׿؝܎݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟࡫-࢟ࢵࢾ-࣓঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৾-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿ఄ఍఑఩఺-఼౅౉౎-౔౗౛-౟౤౥౰-౷಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-೿ഄ഍഑൅൉൐-൓൤൥඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯ᪿ-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-Ჿ᳈-᳏ᳺ-᳿᷺἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿⁥⁲⁳₏₝-₟⃀-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⮗⮺-⮼⯉⯓-⯫⯰-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹊-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄯ㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿫-鿿꒍-꒏꓇-꓏꘬-꘿꛸-꛿ꞯꞸ-ꟶ꠬-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟ꣾꣿ꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯ꭦ-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-퟿﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟﹓﹧﹬-﹯﹵﻽﻾＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￸￾￿",astral:"\\ud800[\\udc0c\\udc27\\udc3b\\udc3e\\udc4e\\udc4f\\udc5e-\\udc7f\\udcfb-\\udcff\\udd03-\\udd06\\udd34-\\udd36\\udd8f\\udd9c-\\udd9f\\udda1-\\uddcf\\uddfe-\\ude7f\\ude9d-\\ude9f\\uded1-\\udedf\\udefc-\\udeff\\udf24-\\udf2c\\udf4b-\\udf4f\\udf7b-\\udf7f\\udf9e\\udfc4-\\udfc7\\udfd6-\\udfff]|\\ud801[\\udc9e\\udc9f\\udcaa-\\udcaf\\udcd4-\\udcd7\\udcfc-\\udcff\\udd28-\\udd2f\\udd64-\\udd6e\\udd70-\\uddff\\udf37-\\udf3f\\udf56-\\udf5f\\udf68-\\udfff]|\\ud802[\\udc06\\udc07\\udc09\\udc36\\udc39-\\udc3b\\udc3d\\udc3e\\udc56\\udc9f-\\udca6\\udcb0-\\udcdf\\udcf3\\udcf6-\\udcfa\\udd1c-\\udd1e\\udd3a-\\udd3e\\udd40-\\udd7f\\uddb8-\\uddbb\\uddd0\\uddd1\\ude04\\ude07-\\ude0b\\ude14\\ude18\\ude34-\\ude37\\ude3b-\\ude3e\\ude48-\\ude4f\\ude59-\\ude5f\\udea0-\\udebf\\udee7-\\udeea\\udef7-\\udeff\\udf36-\\udf38\\udf56\\udf57\\udf73-\\udf77\\udf92-\\udf98\\udf9d-\\udfa8\\udfb0-\\udfff]|\\ud803[\\udc49-\\udc7f\\udcb3-\\udcbf\\udcf3-\\udcf9\\udd00-\\ude5f\\ude7f-\\udfff]|\\ud804[\\udc4e-\\udc51\\udc70-\\udc7e\\udcc2-\\udccf\\udce9-\\udcef\\udcfa-\\udcff\\udd35\\udd44-\\udd4f\\udd77-\\udd7f\\uddce\\uddcf\\udde0\\uddf5-\\uddff\\ude12\\ude3f-\\ude7f\\ude87\\ude89\\ude8e\\ude9e\\udeaa-\\udeaf\\udeeb-\\udeef\\udefa-\\udeff\\udf04\\udf0d\\udf0e\\udf11\\udf12\\udf29\\udf31\\udf34\\udf3a\\udf3b\\udf45\\udf46\\udf49\\udf4a\\udf4e\\udf4f\\udf51-\\udf56\\udf58-\\udf5c\\udf64\\udf65\\udf6d-\\udf6f\\udf75-\\udfff]|\\ud805[\\udc5a\\udc5c\\udc5e-\\udc7f\\udcc8-\\udccf\\udcda-\\udd7f\\uddb6\\uddb7\\uddde-\\uddff\\ude45-\\ude4f\\ude5a-\\ude5f\\ude6d-\\ude7f\\udeb8-\\udebf\\udeca-\\udeff\\udf1a-\\udf1c\\udf2c-\\udf2f\\udf40-\\udfff]|\\ud806[\\udc00-\\udc9f\\udcf3-\\udcfe\\udd00-\\uddff\\ude48-\\ude4f\\ude84\\ude85\\ude9d\\udea3-\\udebf\\udef9-\\udfff]|\\ud807[\\udc09\\udc37\\udc46-\\udc4f\\udc6d-\\udc6f\\udc90\\udc91\\udca8\\udcb7-\\udcff\\udd07\\udd0a\\udd37-\\udd39\\udd3b\\udd3e\\udd48-\\udd4f\\udd5a-\\udfff]|\\ud808[\\udf9a-\\udfff]|\\ud809[\\udc6f\\udc75-\\udc7f\\udd44-\\udfff]|[\\ud80a\\ud80b\\ud80e-\\ud810\\ud812-\\ud819\\ud823-\\ud82b\\ud82d\\ud82e\\ud830-\\ud833\\ud837\\ud839\\ud83f\\ud87b-\\ud87d\\ud87f-\\udb3f\\udb41-\\udb7f][\\udc00-\\udfff]|\\ud80d[\\udc2f-\\udfff]|\\ud811[\\ude47-\\udfff]|\\ud81a[\\ude39-\\ude3f\\ude5f\\ude6a-\\ude6d\\ude70-\\udecf\\udeee\\udeef\\udef6-\\udeff\\udf46-\\udf4f\\udf5a\\udf62\\udf78-\\udf7c\\udf90-\\udfff]|\\ud81b[\\udc00-\\udeff\\udf45-\\udf4f\\udf7f-\\udf8e\\udfa0-\\udfdf\\udfe2-\\udfff]|\\ud821[\\udfed-\\udfff]|\\ud822[\\udef3-\\udfff]|\\ud82c[\\udd1f-\\udd6f\\udefc-\\udfff]|\\ud82f[\\udc6b-\\udc6f\\udc7d-\\udc7f\\udc89-\\udc8f\\udc9a\\udc9b\\udca4-\\udfff]|\\ud834[\\udcf6-\\udcff\\udd27\\udd28\\udde9-\\uddff\\ude46-\\udeff\\udf57-\\udf5f\\udf72-\\udfff]|\\ud835[\\udc55\\udc9d\\udca0\\udca1\\udca3\\udca4\\udca7\\udca8\\udcad\\udcba\\udcbc\\udcc4\\udd06\\udd0b\\udd0c\\udd15\\udd1d\\udd3a\\udd3f\\udd45\\udd47-\\udd49\\udd51\\udea6\\udea7\\udfcc\\udfcd]|\\ud836[\\ude8c-\\ude9a\\udea0\\udeb0-\\udfff]|\\ud838[\\udc07\\udc19\\udc1a\\udc22\\udc25\\udc2b-\\udfff]|\\ud83a[\\udcc5\\udcc6\\udcd7-\\udcff\\udd4b-\\udd4f\\udd5a-\\udd5d\\udd60-\\udfff]|\\ud83b[\\udc00-\\uddff\\ude04\\ude20\\ude23\\ude25\\ude26\\ude28\\ude33\\ude38\\ude3a\\ude3c-\\ude41\\ude43-\\ude46\\ude48\\ude4a\\ude4c\\ude50\\ude53\\ude55\\ude56\\ude58\\ude5a\\ude5c\\ude5e\\ude60\\ude63\\ude65\\ude66\\ude6b\\ude73\\ude78\\ude7d\\ude7f\\ude8a\\ude9c-\\udea0\\udea4\\udeaa\\udebc-\\udeef\\udef2-\\udfff]|\\ud83c[\\udc2c-\\udc2f\\udc94-\\udc9f\\udcaf\\udcb0\\udcc0\\udcd0\\udcf6-\\udcff\\udd0d-\\udd0f\\udd2f\\udd6c-\\udd6f\\uddad-\\udde5\\ude03-\\ude0f\\ude3c-\\ude3f\\ude49-\\ude4f\\ude52-\\ude5f\\ude66-\\udeff]|\\ud83d[\\uded5-\\udedf\\udeed-\\udeef\\udef9-\\udeff\\udf74-\\udf7f\\udfd5-\\udfff]|\\ud83e[\\udc0c-\\udc0f\\udc48-\\udc4f\\udc5a-\\udc5f\\udc88-\\udc8f\\udcae-\\udcff\\udd0c-\\udd0f\\udd3f\\udd4d-\\udd4f\\udd6c-\\udd7f\\udd98-\\uddbf\\uddc1-\\uddcf\\udde7-\\udfff]|\\ud869[\\uded7-\\udeff]|\\ud86d[\\udf35-\\udf3f]|\\ud86e[\\udc1e\\udc1f]|\\ud873[\\udea2-\\udeaf]|\\ud87a[\\udfe1-\\udfff]|\\ud87e[\\ude1e-\\udfff]|\\udb40[\\udc00\\udc02-\\udc1f\\udc80-\\udcff\\uddf0-\\udfff]|[\\udbbf\\udbff][\\udffe\\udfff]"},{name:"Co",alias:"Private_Use",bmp:"-",astral:"[\\udb80-\\udbbe\\udbc0-\\udbfe][\\udc00-\\udfff]|[\\udbbf\\udbff][\\udc00-\\udffd]"},{name:"Cs",alias:"Surrogate",bmp:"\\ud800-\\udfff"},{name:"L",alias:"Letter",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf40\\udf42-\\udf49\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude33\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc80-\\udcaf\\udcc4\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udf00-\\udf19]|\\ud806[\\udca0-\\udcdf\\udcff\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude83\\ude86-\\ude89\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08\\udd09\\udd0b-\\udd30\\udd46]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc80-\\udd43]|[\\ud80c\\ud81c-\\ud820\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\udf00-\\udf44\\udf50\\udf93-\\udf9f\\udfe0\\udfe1]|\\ud821[\\udc00-\\udfec]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]"},{name:"LC",alias:"Cased_Letter",bmp:"A-Za-zµÀ-ÖØ-öø-ƺƼ-ƿDŽ-ʓʕ-ʯͰ-ͳͶͷͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆա-ևႠ-ჅჇჍᎠ-Ᏽᏸ-ᏽᲀ-ᲈᴀ-ᴫᵫ-ᵷᵹ-ᶚḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⱻⱾ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭꙀ-ꙭꚀ-ꚛꜢ-ꝯꝱ-ꞇꞋ-ꞎꞐ-ꞮꞰ-ꞷꟺꬰ-ꭚꭠ-ꭥꭰ-ꮿff-stﬓ-ﬗA-Za-z",astral:"\\ud801[\\udc00-\\udc4f\\udcb0-\\udcd3\\udcd8-\\udcfb]|\\ud803[\\udc80-\\udcb2\\udcc0-\\udcf2]|\\ud806[\\udca0-\\udcdf]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud83a[\\udd00-\\udd43]"},{name:"Ll",alias:"Lowercase_Letter",bmp:"a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯա-ևᏸ-ᏽᲀ-ᲈᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓ-ꞕꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩꞵꞷꟺꬰ-ꭚꭠ-ꭥꭰ-ꮿff-stﬓ-ﬗa-z",astral:"\\ud801[\\udc28-\\udc4f\\udcd8-\\udcfb]|\\ud803[\\udcc0-\\udcf2]|\\ud806[\\udcc0-\\udcdf]|\\ud835[\\udc1a-\\udc33\\udc4e-\\udc54\\udc56-\\udc67\\udc82-\\udc9b\\udcb6-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udccf\\udcea-\\udd03\\udd1e-\\udd37\\udd52-\\udd6b\\udd86-\\udd9f\\uddba-\\uddd3\\uddee-\\ude07\\ude22-\\ude3b\\ude56-\\ude6f\\ude8a-\\udea5\\udec2-\\udeda\\udedc-\\udee1\\udefc-\\udf14\\udf16-\\udf1b\\udf36-\\udf4e\\udf50-\\udf55\\udf70-\\udf88\\udf8a-\\udf8f\\udfaa-\\udfc2\\udfc4-\\udfc9\\udfcb]|\\ud83a[\\udd22-\\udd43]"},{name:"Lm",alias:"Modifier_Letter",bmp:"ʰ-ˁˆ-ˑˠ-ˤˬˮʹͺՙـۥۦߴߵߺࠚࠤࠨॱๆໆჼៗᡃᪧᱸ-ᱽᴬ-ᵪᵸᶛ-ᶿⁱⁿₐ-ₜⱼⱽⵯⸯ々〱-〵〻ゝゞー-ヾꀕꓸ-ꓽꘌꙿꚜꚝꜗ-ꜟꝰꞈꟸꟹꧏꧦꩰꫝꫳꫴꭜ-ꭟー゙゚",astral:"\\ud81a[\\udf40-\\udf43]|\\ud81b[\\udf93-\\udf9f\\udfe0\\udfe1]"},{name:"Lo",alias:"Other_Letter",bmp:"ªºƻǀ-ǃʔא-תװ-ײؠ-ؿف-يٮٯٱ-ۓەۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪࠀ-ࠕࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॲ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๅກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎა-ჺჽ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៜᠠ-ᡂᡄ-ᡷᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱷᳩ-ᳬᳮ-ᳱᳵᳶℵ-ℸⴰ-ⵧⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ〆〼ぁ-ゖゟァ-ヺヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꀔꀖ-ꒌꓐ-ꓷꔀ-ꘋꘐ-ꘟꘪꘫꙮꚠ-ꛥꞏꟷꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧠ-ꧤꧧ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩯꩱ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛꫜꫠ-ꫪꫲꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎יִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼヲ-ッア-ンᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf40\\udf42-\\udf49\\udf50-\\udf75\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf]|\\ud801[\\udc50-\\udc9d\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe\\uddbf\\ude00\\ude10-\\ude13\\ude15-\\ude17\\ude19-\\ude33\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48]|\\ud804[\\udc03-\\udc37\\udc83-\\udcaf\\udcd0-\\udce8\\udd03-\\udd26\\udd50-\\udd72\\udd76\\udd83-\\uddb2\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude2b\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udede\\udf05-\\udf0c\\udf0f\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32\\udf33\\udf35-\\udf39\\udf3d\\udf50\\udf5d-\\udf61]|\\ud805[\\udc00-\\udc34\\udc47-\\udc4a\\udc80-\\udcaf\\udcc4\\udcc5\\udcc7\\udd80-\\uddae\\uddd8-\\udddb\\ude00-\\ude2f\\ude44\\ude80-\\udeaa\\udf00-\\udf19]|\\ud806[\\udcff\\ude00\\ude0b-\\ude32\\ude3a\\ude50\\ude5c-\\ude83\\ude86-\\ude89\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc2e\\udc40\\udc72-\\udc8f\\udd00-\\udd06\\udd08\\udd09\\udd0b-\\udd30\\udd46]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc80-\\udd43]|[\\ud80c\\ud81c-\\ud820\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf2f\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\udf00-\\udf44\\udf50]|\\ud821[\\udc00-\\udfec]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99]|\\ud83a[\\udc00-\\udcc4]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]"},{name:"Lt",alias:"Titlecase_Letter",bmp:"DžLjNjDzᾈ-ᾏᾘ-ᾟᾨ-ᾯᾼῌῼ"},{name:"Lu",alias:"Uppercase_Letter",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶͿΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԨԪԬԮԱ-ՖႠ-ჅჇჍᎠ-ᏵḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꚘꚚꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞖꞘꞚꞜꞞꞠꞢꞤꞦꞨꞪ-ꞮꞰ-ꞴꞶA-Z",astral:"\\ud801[\\udc00-\\udc27\\udcb0-\\udcd3]|\\ud803[\\udc80-\\udcb2]|\\ud806[\\udca0-\\udcbf]|\\ud835[\\udc00-\\udc19\\udc34-\\udc4d\\udc68-\\udc81\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb5\\udcd0-\\udce9\\udd04\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd38\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd6c-\\udd85\\udda0-\\uddb9\\uddd4-\\udded\\ude08-\\ude21\\ude3c-\\ude55\\ude70-\\ude89\\udea8-\\udec0\\udee2-\\udefa\\udf1c-\\udf34\\udf56-\\udf6e\\udf90-\\udfa8\\udfca]|\\ud83a[\\udd00-\\udd21]"},{name:"M",alias:"Mark",bmp:"̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪾ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯",astral:"\\ud800[\\uddfd\\udee0\\udf76-\\udf7a]|\\ud802[\\ude01-\\ude03\\ude05\\ude06\\ude0c-\\ude0f\\ude38-\\ude3a\\ude3f\\udee5\\udee6]|\\ud804[\\udc00-\\udc02\\udc38-\\udc46\\udc7f-\\udc82\\udcb0-\\udcba\\udd00-\\udd02\\udd27-\\udd34\\udd73\\udd80-\\udd82\\uddb3-\\uddc0\\uddca-\\uddcc\\ude2c-\\ude37\\ude3e\\udedf-\\udeea\\udf00-\\udf03\\udf3c\\udf3e-\\udf44\\udf47\\udf48\\udf4b-\\udf4d\\udf57\\udf62\\udf63\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc35-\\udc46\\udcb0-\\udcc3\\uddaf-\\uddb5\\uddb8-\\uddc0\\udddc\\udddd\\ude30-\\ude40\\udeab-\\udeb7\\udf1d-\\udf2b]|\\ud806[\\ude01-\\ude0a\\ude33-\\ude39\\ude3b-\\ude3e\\ude47\\ude51-\\ude5b\\ude8a-\\ude99]|\\ud807[\\udc2f-\\udc36\\udc38-\\udc3f\\udc92-\\udca7\\udca9-\\udcb6\\udd31-\\udd36\\udd3a\\udd3c\\udd3d\\udd3f-\\udd45\\udd47]|\\ud81a[\\udef0-\\udef4\\udf30-\\udf36]|\\ud81b[\\udf51-\\udf7e\\udf8f-\\udf92]|\\ud82f[\\udc9d\\udc9e]|\\ud834[\\udd65-\\udd69\\udd6d-\\udd72\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23\\udc24\\udc26-\\udc2a]|\\ud83a[\\udcd0-\\udcd6\\udd44-\\udd4a]|\\udb40[\\udd00-\\uddef]"},{name:"Mc",alias:"Spacing_Mark",bmp:"ःऻा-ीॉ-ौॎॏংঃা-ীেৈোৌৗਃਾ-ੀઃા-ીૉોૌଂଃାୀେୈୋୌୗாிுூெ-ைொ-ௌௗఁ-ఃు-ౄಂಃಾೀ-ೄೇೈೊೋೕೖംഃാ-ീെ-ൈൊ-ൌൗංඃා-ෑෘ-ෟෲෳ༾༿ཿါာေးျြၖၗၢ-ၤၧ-ၭႃႄႇ-ႌႏႚ-ႜាើ-ៅះៈᤣ-ᤦᤩ-ᤫᤰᤱᤳ-ᤸᨙᨚᩕᩗᩡᩣᩤᩭ-ᩲᬄᬵᬻᬽ-ᭁᭃ᭄ᮂᮡᮦᮧ᮪ᯧᯪ-ᯬᯮ᯲᯳ᰤ-ᰫᰴᰵ᳡ᳲᳳ᳷〮〯ꠣꠤꠧꢀꢁꢴ-ꣃꥒ꥓ꦃꦴꦵꦺꦻꦽ-꧀ꨯꨰꨳꨴꩍꩻꩽꫫꫮꫯꫵꯣꯤꯦꯧꯩꯪ꯬",astral:"\\ud804[\\udc00\\udc02\\udc82\\udcb0-\\udcb2\\udcb7\\udcb8\\udd2c\\udd82\\uddb3-\\uddb5\\uddbf\\uddc0\\ude2c-\\ude2e\\ude32\\ude33\\ude35\\udee0-\\udee2\\udf02\\udf03\\udf3e\\udf3f\\udf41-\\udf44\\udf47\\udf48\\udf4b-\\udf4d\\udf57\\udf62\\udf63]|\\ud805[\\udc35-\\udc37\\udc40\\udc41\\udc45\\udcb0-\\udcb2\\udcb9\\udcbb-\\udcbe\\udcc1\\uddaf-\\uddb1\\uddb8-\\uddbb\\uddbe\\ude30-\\ude32\\ude3b\\ude3c\\ude3e\\udeac\\udeae\\udeaf\\udeb6\\udf20\\udf21\\udf26]|\\ud806[\\ude07\\ude08\\ude39\\ude57\\ude58\\ude97]|\\ud807[\\udc2f\\udc3e\\udca9\\udcb1\\udcb4]|\\ud81b[\\udf51-\\udf7e]|\\ud834[\\udd65\\udd66\\udd6d-\\udd72]"},{name:"Me",alias:"Enclosing_Mark",bmp:"҈҉᪾⃝-⃠⃢-⃤꙰-꙲"},{name:"Mn",alias:"Nonspacing_Mark",bmp:"̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ंऺ़ु-ै्॑-ॗॢॣঁ়ু-ৄ্ৢৣਁਂ਼ੁੂੇੈੋ-੍ੑੰੱੵઁં઼ુ-ૅેૈ્ૢૣૺ-૿ଁ଼ିୁ-ୄ୍ୖୢୣஂீ்ఀా-ీె-ైొ-్ౕౖౢౣಁ಼ಿೆೌ್ೢೣഀഁ഻഼ു-ൄ്ൢൣ්ි-ුූัิ-ฺ็-๎ັິ-ູົຼ່-ໍཱ༹༘༙༵༷-ཾྀ-྄྆྇ྍ-ྗྙ-ྼ࿆ိ-ူဲ-့္်ွှၘၙၞ-ၠၱ-ၴႂႅႆႍႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴឵ិ-ួំ៉-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤢᤧᤨᤲ᤹-᤻ᨘᨗᨛᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼᪰-᪽ᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ᭫-᭳ᮀᮁᮢ-ᮥᮨᮩ᮫-ᮭ᯦ᯨᯩᯭᯯ-ᯱᰬ-ᰳᰶ᰷᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸᳹᷀-᷹᷻-᷿⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〭꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠥꠦ꣄ꣅ꣠-꣱ꤦ-꤭ꥇ-ꥑꦀ-ꦂ꦳ꦶ-ꦹꦼꧥꨩ-ꨮꨱꨲꨵꨶꩃꩌꩼꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫬꫭ꫶ꯥꯨ꯭ﬞ︀-️︠-︯",astral:"\\ud800[\\uddfd\\udee0\\udf76-\\udf7a]|\\ud802[\\ude01-\\ude03\\ude05\\ude06\\ude0c-\\ude0f\\ude38-\\ude3a\\ude3f\\udee5\\udee6]|\\ud804[\\udc01\\udc38-\\udc46\\udc7f-\\udc81\\udcb3-\\udcb6\\udcb9\\udcba\\udd00-\\udd02\\udd27-\\udd2b\\udd2d-\\udd34\\udd73\\udd80\\udd81\\uddb6-\\uddbe\\uddca-\\uddcc\\ude2f-\\ude31\\ude34\\ude36\\ude37\\ude3e\\udedf\\udee3-\\udeea\\udf00\\udf01\\udf3c\\udf40\\udf66-\\udf6c\\udf70-\\udf74]|\\ud805[\\udc38-\\udc3f\\udc42-\\udc44\\udc46\\udcb3-\\udcb8\\udcba\\udcbf\\udcc0\\udcc2\\udcc3\\uddb2-\\uddb5\\uddbc\\uddbd\\uddbf\\uddc0\\udddc\\udddd\\ude33-\\ude3a\\ude3d\\ude3f\\ude40\\udeab\\udead\\udeb0-\\udeb5\\udeb7\\udf1d-\\udf1f\\udf22-\\udf25\\udf27-\\udf2b]|\\ud806[\\ude01-\\ude06\\ude09\\ude0a\\ude33-\\ude38\\ude3b-\\ude3e\\ude47\\ude51-\\ude56\\ude59-\\ude5b\\ude8a-\\ude96\\ude98\\ude99]|\\ud807[\\udc30-\\udc36\\udc38-\\udc3d\\udc3f\\udc92-\\udca7\\udcaa-\\udcb0\\udcb2\\udcb3\\udcb5\\udcb6\\udd31-\\udd36\\udd3a\\udd3c\\udd3d\\udd3f-\\udd45\\udd47]|\\ud81a[\\udef0-\\udef4\\udf30-\\udf36]|\\ud81b[\\udf8f-\\udf92]|\\ud82f[\\udc9d\\udc9e]|\\ud834[\\udd67-\\udd69\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad\\ude42-\\ude44]|\\ud836[\\ude00-\\ude36\\ude3b-\\ude6c\\ude75\\ude84\\ude9b-\\ude9f\\udea1-\\udeaf]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23\\udc24\\udc26-\\udc2a]|\\ud83a[\\udcd0-\\udcd6\\udd44-\\udd4a]|\\udb40[\\udd00-\\uddef]"},{name:"N",alias:"Number",bmp:"0-9²³¹¼-¾٠-٩۰-۹߀-߉०-९০-৯৴-৹੦-੯૦-૯୦-୯୲-୷௦-௲౦-౯౸-౾೦-೯൘-൞൦-൸෦-෯๐-๙໐-໙༠-༳၀-၉႐-႙፩-፼ᛮ-ᛰ០-៩៰-៹᠐-᠙᥆-᥏᧐-᧚᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙⁰⁴-⁹₀-₉⅐-ↂↅ-↉①-⒛⓪-⓿❶-➓⳽〇〡-〩〸-〺㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꘠-꘩ꛦ-ꛯ꠰-꠵꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\\ud800[\\udd07-\\udd33\\udd40-\\udd78\\udd8a\\udd8b\\udee1-\\udefb\\udf20-\\udf23\\udf41\\udf4a\\udfd1-\\udfd5]|\\ud801[\\udca0-\\udca9]|\\ud802[\\udc58-\\udc5f\\udc79-\\udc7f\\udca7-\\udcaf\\udcfb-\\udcff\\udd16-\\udd1b\\uddbc\\uddbd\\uddc0-\\uddcf\\uddd2-\\uddff\\ude40-\\ude47\\ude7d\\ude7e\\ude9d-\\ude9f\\udeeb-\\udeef\\udf58-\\udf5f\\udf78-\\udf7f\\udfa9-\\udfaf]|\\ud803[\\udcfa-\\udcff\\ude60-\\ude7e]|\\ud804[\\udc52-\\udc6f\\udcf0-\\udcf9\\udd36-\\udd3f\\uddd0-\\uddd9\\udde1-\\uddf4\\udef0-\\udef9]|\\ud805[\\udc50-\\udc59\\udcd0-\\udcd9\\ude50-\\ude59\\udec0-\\udec9\\udf30-\\udf3b]|\\ud806[\\udce0-\\udcf2]|\\ud807[\\udc50-\\udc6c\\udd50-\\udd59]|\\ud809[\\udc00-\\udc6e]|\\ud81a[\\ude60-\\ude69\\udf50-\\udf59\\udf5b-\\udf61]|\\ud834[\\udf60-\\udf71]|\\ud835[\\udfce-\\udfff]|\\ud83a[\\udcc7-\\udccf\\udd50-\\udd59]|\\ud83c[\\udd00-\\udd0c]"},{name:"Nd",alias:"Decimal_Number",bmp:"0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\\ud801[\\udca0-\\udca9]|\\ud804[\\udc66-\\udc6f\\udcf0-\\udcf9\\udd36-\\udd3f\\uddd0-\\uddd9\\udef0-\\udef9]|\\ud805[\\udc50-\\udc59\\udcd0-\\udcd9\\ude50-\\ude59\\udec0-\\udec9\\udf30-\\udf39]|\\ud806[\\udce0-\\udce9]|\\ud807[\\udc50-\\udc59\\udd50-\\udd59]|\\ud81a[\\ude60-\\ude69\\udf50-\\udf59]|\\ud835[\\udfce-\\udfff]|\\ud83a[\\udd50-\\udd59]"},{name:"Nl",alias:"Letter_Number",bmp:"ᛮ-ᛰⅠ-ↂↅ-ↈ〇〡-〩〸-〺ꛦ-ꛯ",astral:"\\ud800[\\udd40-\\udd74\\udf41\\udf4a\\udfd1-\\udfd5]|\\ud809[\\udc00-\\udc6e]"},{name:"No",alias:"Other_Number",bmp:"²³¹¼-¾৴-৹୲-୷௰-௲౸-౾൘-൞൰-൸༪-༳፩-፼៰-៹᧚⁰⁴-⁹₀-₉⅐-⅟↉①-⒛⓪-⓿❶-➓⳽㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꠰-꠵",astral:"\\ud800[\\udd07-\\udd33\\udd75-\\udd78\\udd8a\\udd8b\\udee1-\\udefb\\udf20-\\udf23]|\\ud802[\\udc58-\\udc5f\\udc79-\\udc7f\\udca7-\\udcaf\\udcfb-\\udcff\\udd16-\\udd1b\\uddbc\\uddbd\\uddc0-\\uddcf\\uddd2-\\uddff\\ude40-\\ude47\\ude7d\\ude7e\\ude9d-\\ude9f\\udeeb-\\udeef\\udf58-\\udf5f\\udf78-\\udf7f\\udfa9-\\udfaf]|\\ud803[\\udcfa-\\udcff\\ude60-\\ude7e]|\\ud804[\\udc52-\\udc65\\udde1-\\uddf4]|\\ud805[\\udf3a\\udf3b]|\\ud806[\\udcea-\\udcf2]|\\ud807[\\udc5a-\\udc6c]|\\ud81a[\\udf5b-\\udf61]|\\ud834[\\udf60-\\udf71]|\\ud83a[\\udcc7-\\udccf]|\\ud83c[\\udd00-\\udd0c]"},{name:"P",alias:"Punctuation",bmp:"!-#%-\\\\*,-\\\\/:;\\\\?@\\\\[-\\\\]_\\\\{\\\\}¡§«¶·»¿;·՚-՟։֊־׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽૰෴๏๚๛༄-༒༔༺-༽྅࿐-࿔࿙࿚၊-၏჻፠-፨᐀᙭᙮᚛᚜᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‐-‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎⌈-⌋〈〉❨-❵⟅⟆⟦-⟯⦃-⦘⧘-⧛⧼⧽⳹-⳼⳾⳿⵰⸀-⸮⸰-⹉、-〃〈-】〔-〟〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!-#%-*,-/:;?@[-]_{}⦅-・",astral:"\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|𐕯|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud804[\\udc47-\\udc4d\\udcbb\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74\\udd75\\uddc5-\\uddc9\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70\\udc71]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|𛲟|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e\\udd5f]"},{name:"Pc",alias:"Connector_Punctuation",bmp:"_‿⁀⁔︳︴﹍-﹏_"},{name:"Pd",alias:"Dash_Punctuation",bmp:"\\\\-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-"},{name:"Pe",alias:"Close_Punctuation",bmp:"\\\\)\\\\]\\\\}༻༽᚜⁆⁾₎⌉⌋〉❩❫❭❯❱❳❵⟆⟧⟩⟫⟭⟯⦄⦆⦈⦊⦌⦎⦐⦒⦔⦖⦘⧙⧛⧽⸣⸥⸧⸩〉》」』】〕〗〙〛〞〟﴾︘︶︸︺︼︾﹀﹂﹄﹈﹚﹜﹞)]}⦆」"},{name:"Pf",alias:"Final_Punctuation",bmp:"»’”›⸃⸅⸊⸍⸝⸡"},{name:"Pi",alias:"Initial_Punctuation",bmp:"«‘‛“‟‹⸂⸄⸉⸌⸜⸠"},{name:"Po",alias:"Other_Punctuation",bmp:"!-#%-\'\\\\*,\\\\.\\\\/:;\\\\?@\\\\¡§¶·¿;·՚-՟։׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽૰෴๏๚๛༄-༒༔྅࿐-࿔࿙࿚၊-၏჻፠-፨᙭᙮᛫-᛭᜵᜶។-៖៘-៚᠀-᠅᠇-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‖‗†-‧‰-‸※-‾⁁-⁃⁇-⁑⁓⁕-⁞⳹-⳼⳾⳿⵰⸀⸁⸆-⸈⸋⸎-⸖⸘⸙⸛⸞⸟⸪-⸮⸰-⸹⸼-⸿⹁⹃-⹉、-〃〽・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫︐-︖︙︰﹅﹆﹉-﹌﹐-﹒﹔-﹗﹟-﹡﹨﹪﹫!-#%-'*,./:;?@\。、・",astral:"\\ud800[\\udd00-\\udd02\\udf9f\\udfd0]|𐕯|\\ud802[\\udc57\\udd1f\\udd3f\\ude50-\\ude58\\ude7f\\udef0-\\udef6\\udf39-\\udf3f\\udf99-\\udf9c]|\\ud804[\\udc47-\\udc4d\\udcbb\\udcbc\\udcbe-\\udcc1\\udd40-\\udd43\\udd74\\udd75\\uddc5-\\uddc9\\uddcd\\udddb\\udddd-\\udddf\\ude38-\\ude3d\\udea9]|\\ud805[\\udc4b-\\udc4f\\udc5b\\udc5d\\udcc6\\uddc1-\\uddd7\\ude41-\\ude43\\ude60-\\ude6c\\udf3c-\\udf3e]|\\ud806[\\ude3f-\\ude46\\ude9a-\\ude9c\\ude9e-\\udea2]|\\ud807[\\udc41-\\udc45\\udc70\\udc71]|\\ud809[\\udc70-\\udc74]|\\ud81a[\\ude6e\\ude6f\\udef5\\udf37-\\udf3b\\udf44]|𛲟|\\ud836[\\ude87-\\ude8b]|\\ud83a[\\udd5e\\udd5f]"},{name:"Ps",alias:"Open_Punctuation",bmp:"\\\\(\\\\[\\\\{༺༼᚛‚„⁅⁽₍⌈⌊〈❨❪❬❮❰❲❴⟅⟦⟨⟪⟬⟮⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⧘⧚⧼⸢⸤⸦⸨⹂〈《「『【〔〖〘〚〝﴿︗︵︷︹︻︽︿﹁﹃﹇﹙﹛﹝([{⦅「"},{name:"S",alias:"Symbol",bmp:"\\\\$\\\\+<->\\\\^`\\\\|~¢-¦¨©¬®-±´¸×÷˂-˅˒-˟˥-˫˭˯-˿͵΄΅϶҂֍-֏؆-؈؋؎؏۞۩۽۾߶৲৳৺৻૱୰௳-௺౿൏൹฿༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙៛᥀᧞-᧿᭡-᭪᭴-᭼᾽᾿-῁῍-῏῝-῟῭-`´῾⁄⁒⁺-⁼₊-₌₠-₿℀℁℃-℆℈℉℔№-℘℞-℣℥℧℩℮℺℻⅀-⅄⅊-⅍⅏↊↋←-⌇⌌-⌨⌫-␦⑀-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿゛゜㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꜀-꜖꜠꜡꞉꞊꠨-꠫꠶-꠹꩷-꩹꭛﬩﮲-﯁﷼﷽﹢﹤-﹦﹩$+<->^`|~¢-₩│-○�",astral:"\\ud800[\\udd37-\\udd3f\\udd79-\\udd89\\udd8c-\\udd8e\\udd90-\\udd9b\\udda0\\uddd0-\\uddfc]|\\ud802[\\udc77\\udc78\\udec8]|𑜿|\\ud81a[\\udf3c-\\udf3f\\udf45]|𛲜|\\ud834[\\udc00-\\udcf5\\udd00-\\udd26\\udd29-\\udd64\\udd6a-\\udd6c\\udd83\\udd84\\udd8c-\\udda9\\uddae-\\udde8\\ude00-\\ude41\\ude45\\udf00-\\udf56]|\\ud835[\\udec1\\udedb\\udefb\\udf15\\udf35\\udf4f\\udf6f\\udf89\\udfa9\\udfc3]|\\ud836[\\udc00-\\uddff\\ude37-\\ude3a\\ude6d-\\ude74\\ude76-\\ude83\\ude85\\ude86]|\\ud83b[\\udef0\\udef1]|\\ud83c[\\udc00-\\udc2b\\udc30-\\udc93\\udca0-\\udcae\\udcb1-\\udcbf\\udcc1-\\udccf\\udcd1-\\udcf5\\udd10-\\udd2e\\udd30-\\udd6b\\udd70-\\uddac\\udde6-\\ude02\\ude10-\\ude3b\\ude40-\\ude48\\ude50\\ude51\\ude60-\\ude65\\udf00-\\udfff]|\\ud83d[\\udc00-\\uded4\\udee0-\\udeec\\udef0-\\udef8\\udf00-\\udf73\\udf80-\\udfd4]|\\ud83e[\\udc00-\\udc0b\\udc10-\\udc47\\udc50-\\udc59\\udc60-\\udc87\\udc90-\\udcad\\udd00-\\udd0b\\udd10-\\udd3e\\udd40-\\udd4c\\udd50-\\udd6b\\udd80-\\udd97\\uddc0\\uddd0-\\udde6]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\\\$¢-¥֏؋৲৳৻૱௹฿៛₠-₿꠸﷼﹩$¢£¥₩"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\\\^`¨¯´¸˂-˅˒-˟˥-˫˭˯-˿͵΄΅᾽᾿-῁῍-῏῝-῟῭-`´῾゛゜꜀-꜖꜠꜡꞉꞊꭛﮲-﯁^` ̄",astral:"\\ud83c[\\udffb-\\udfff]"},{name:"Sm",alias:"Math_Symbol",bmp:"\\\\+<->\\\\|~¬±×÷϶؆-؈⁄⁒⁺-⁼₊-₌℘⅀-⅄⅋←-↔↚↛↠↣↦↮⇎⇏⇒⇔⇴-⋿⌠⌡⍼⎛-⎳⏜-⏡▷◁◸-◿♯⟀-⟄⟇-⟥⟰-⟿⤀-⦂⦙-⧗⧜-⧻⧾-⫿⬰-⭄⭇-⭌﬩﹢﹤-﹦+<->|~¬←-↓",astral:"\\ud835[\\udec1\\udedb\\udefb\\udf15\\udf35\\udf4f\\udf6f\\udf89\\udfa9\\udfc3]|\\ud83b[\\udef0\\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"¦©®°҂֍֎؎؏۞۩۽۾߶৺୰௳-௸௺౿൏൹༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᥀᧞-᧿᭡-᭪᭴-᭼℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌⅍⅏↊↋↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐⇑⇓⇕-⇳⌀-⌇⌌-⌟⌢-⌨⌫-⍻⍽-⎚⎴-⏛⏢-␦⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-❧➔-➿⠀-⣿⬀-⬯⭅⭆⭍-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꠨-꠫꠶꠷꠹꩷-꩹﷽¦│■○�",astral:"\\ud800[\\udd37-\\udd3f\\udd79-\\udd89\\udd8c-\\udd8e\\udd90-\\udd9b\\udda0\\uddd0-\\uddfc]|\\ud802[\\udc77\\udc78\\udec8]|𑜿|\\ud81a[\\udf3c-\\udf3f\\udf45]|𛲜|\\ud834[\\udc00-\\udcf5\\udd00-\\udd26\\udd29-\\udd64\\udd6a-\\udd6c\\udd83\\udd84\\udd8c-\\udda9\\uddae-\\udde8\\ude00-\\ude41\\ude45\\udf00-\\udf56]|\\ud836[\\udc00-\\uddff\\ude37-\\ude3a\\ude6d-\\ude74\\ude76-\\ude83\\ude85\\ude86]|\\ud83c[\\udc00-\\udc2b\\udc30-\\udc93\\udca0-\\udcae\\udcb1-\\udcbf\\udcc1-\\udccf\\udcd1-\\udcf5\\udd10-\\udd2e\\udd30-\\udd6b\\udd70-\\uddac\\udde6-\\ude02\\ude10-\\ude3b\\ude40-\\ude48\\ude50\\ude51\\ude60-\\ude65\\udf00-\\udffa]|\\ud83d[\\udc00-\\uded4\\udee0-\\udeec\\udef0-\\udef8\\udf00-\\udf73\\udf80-\\udfd4]|\\ud83e[\\udc00-\\udc0b\\udc10-\\udc47\\udc50-\\udc59\\udc60-\\udc87\\udc90-\\udcad\\udd00-\\udd0b\\udd10-\\udd3e\\udd40-\\udd4c\\udd50-\\udd6b\\udd80-\\udd97\\uddc0\\uddd0-\\udde6]"},{name:"Z",alias:"Separator",bmp:"    - \\u2028\\u2029   "},{name:"Zl",alias:"Line_Separator",bmp:"\\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\\u2029"},{name:"Zs",alias:"Space_Separator",bmp:"    -    "}]},{}],12:[function(e,t,n){t.exports=[{name:"ASCII",bmp:"\\0-"},{name:"Alphabetic",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͅͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևְ-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-ٗٙ-ٟٮ-ۓە-ۜۡ-ۭۨ-ۯۺ-ۼۿܐ-ܿݍ-ޱߊ-ߪߴߵߺࠀ-ࠗࠚ-ࠬࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽࣔ-ࣣࣟ-ࣰࣩ-ऻऽ-ौॎ-ॐॕ-ॣॱ-ঃঅ-ঌএঐও-নপ-রলশ-হঽ-ৄেৈোৌৎৗড়ঢ়য়-ৣৰৱৼਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਾ-ੂੇੈੋੌੑਖ਼-ੜਫ਼ੰ-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽ-ૅે-ૉોૌૐૠ-ૣૹ-ૼଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽ-ୄେୈୋୌୖୗଡ଼ଢ଼ୟ-ୣୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-ௌௐௗఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-ౌౕౖౘ-ౚౠ-ౣಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೄೆ-ೈೊ-ೌೕೖೞೠ-ೣೱೲഀ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൌൎൔ-ൗൟ-ൣൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆා-ුූෘ-ෟෲෳก-ฺเ-ๆํກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆໍໜ-ໟༀཀ-ཇཉ-ཬཱ-ཱྀྈ-ྗྙ-ྼက-ံးျ-ဿၐ-ၢၥ-ၨၮ-ႆႎႜႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፟ᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜓᜠ-ᜳᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-ឳា-ៈៗៜᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-ᤸᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨛᨠ-ᩞᩡ-ᩴᪧᬀ-ᬳᬵ-ᭃᭅ-ᭋᮀ-ᮩᮬ-ᮯᮺ-ᯥᯧ-ᯱᰀ-ᰵᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳳᳵᳶᴀ-ᶿᷧ-ᷴḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙴ-ꙻꙿ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠧꡀ-ꡳꢀ-ꣃꣅꣲ-ꣷꣻꣽꤊ-ꤪꤰ-ꥒꥠ-ꥼꦀ-ꦲꦴ-ꦿꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨶꩀ-ꩍꩠ-ꩶꩺꩾ-ꪾꫀꫂꫛ-ꫝꫠ-ꫯꫲ-ꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯪ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa\\udd40-\\udd74\\ude80-\\ude9c\\udea0-\\uded0\\udf00-\\udf1f\\udf2d-\\udf4a\\udf50-\\udf7a\\udf80-\\udf9d\\udfa0-\\udfc3\\udfc8-\\udfcf\\udfd1-\\udfd5]|\\ud801[\\udc00-\\udc9d\\udcb0-\\udcd3\\udcd8-\\udcfb\\udd00-\\udd27\\udd30-\\udd63\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]|\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37\\udc38\\udc3c\\udc3f-\\udc55\\udc60-\\udc76\\udc80-\\udc9e\\udce0-\\udcf2\\udcf4\\udcf5\\udd00-\\udd15\\udd20-\\udd39\\udd80-\\uddb7\\uddbe\\uddbf\\ude00-\\ude03\\ude05\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude33\\ude60-\\ude7c\\ude80-\\ude9c\\udec0-\\udec7\\udec9-\\udee4\\udf00-\\udf35\\udf40-\\udf55\\udf60-\\udf72\\udf80-\\udf91]|\\ud803[\\udc00-\\udc48\\udc80-\\udcb2\\udcc0-\\udcf2]|\\ud804[\\udc00-\\udc45\\udc82-\\udcb8\\udcd0-\\udce8\\udd00-\\udd32\\udd50-\\udd72\\udd76\\udd80-\\uddbf\\uddc1-\\uddc4\\uddda\\udddc\\ude00-\\ude11\\ude13-\\ude34\\ude37\\ude3e\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea8\\udeb0-\\udee8\\udf00-\\udf03\\udf05-\\udf0c\\udf0f\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32\\udf33\\udf35-\\udf39\\udf3d-\\udf44\\udf47\\udf48\\udf4b\\udf4c\\udf50\\udf57\\udf5d-\\udf63]|\\ud805[\\udc00-\\udc41\\udc43-\\udc45\\udc47-\\udc4a\\udc80-\\udcc1\\udcc4\\udcc5\\udcc7\\udd80-\\uddb5\\uddb8-\\uddbe\\uddd8-\\udddd\\ude00-\\ude3e\\ude40\\ude44\\ude80-\\udeb5\\udf00-\\udf19\\udf1d-\\udf2a]|\\ud806[\\udca0-\\udcdf\\udcff\\ude00-\\ude32\\ude35-\\ude3e\\ude50-\\ude83\\ude86-\\ude97\\udec0-\\udef8]|\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc3e\\udc40\\udc72-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6\\udd00-\\udd06\\udd08\\udd09\\udd0b-\\udd36\\udd3a\\udd3c\\udd3d\\udd3f-\\udd41\\udd43\\udd46\\udd47]|\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc80-\\udd43]|[\\ud80c\\ud81c-\\ud820\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]|\\ud811[\\udc00-\\ude46]|\\ud81a[\\udc00-\\ude38\\ude40-\\ude5e\\uded0-\\udeed\\udf00-\\udf36\\udf40-\\udf43\\udf63-\\udf77\\udf7d-\\udf8f]|\\ud81b[\\udf00-\\udf44\\udf50-\\udf7e\\udf93-\\udf9f\\udfe0\\udfe1]|\\ud821[\\udc00-\\udfec]|\\ud822[\\udc00-\\udef2]|\\ud82c[\\udc00-\\udd1e\\udd70-\\udefb]|\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9e]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udec0\\udec2-\\udeda\\udedc-\\udefa\\udefc-\\udf14\\udf16-\\udf34\\udf36-\\udf4e\\udf50-\\udf6e\\udf70-\\udf88\\udf8a-\\udfa8\\udfaa-\\udfc2\\udfc4-\\udfcb]|\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23\\udc24\\udc26-\\udc2a]|\\ud83a[\\udc00-\\udcc4\\udd00-\\udd43\\udd47]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb]|\\ud83c[\\udd30-\\udd49\\udd50-\\udd69\\udd70-\\udd89]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]"},{name:"Any",isBmpLast:!0,bmp:"\\0-￿",astral:"[\\ud800-\\udbff][\\udc00-\\udfff]"},{name:"Default_Ignorable_Code_Point",bmp:"­͏؜ᅟᅠ឴឵᠋-᠎​-‏‪-‮⁠-ㅤ︀-️\\ufeffᅠ￰-￸",astral:"\\ud82f[\\udca0-\\udca3]|\\ud834[\\udd73-\\udd7a]|[\\udb40-\\udb43][\\udc00-\\udfff]"},{name:"Lowercase",bmp:"a-zªµºß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʸˀˁˠ-ˤͅͱͳͷͺ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯա-ևᏸ-ᏽᲀ-ᲈᴀ-ᶿḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷⁱⁿₐ-ₜℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎⅰ-ⅿↄⓐ-ⓩⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱽⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛ-ꚝꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓ-ꞕꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩꞵꞷꟸ-ꟺꬰ-ꭚꭜ-ꭥꭰ-ꮿff-stﬓ-ﬗa-z",astral:"\\ud801[\\udc28-\\udc4f\\udcd8-\\udcfb]|\\ud803[\\udcc0-\\udcf2]|\\ud806[\\udcc0-\\udcdf]|\\ud835[\\udc1a-\\udc33\\udc4e-\\udc54\\udc56-\\udc67\\udc82-\\udc9b\\udcb6-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udccf\\udcea-\\udd03\\udd1e-\\udd37\\udd52-\\udd6b\\udd86-\\udd9f\\uddba-\\uddd3\\uddee-\\ude07\\ude22-\\ude3b\\ude56-\\ude6f\\ude8a-\\udea5\\udec2-\\udeda\\udedc-\\udee1\\udefc-\\udf14\\udf16-\\udf1b\\udf36-\\udf4e\\udf50-\\udf55\\udf70-\\udf88\\udf8a-\\udf8f\\udfaa-\\udfc2\\udfc4-\\udfc9\\udfcb]|\\ud83a[\\udd22-\\udd43]"},{name:"Noncharacter_Code_Point",bmp:"﷐-﷯￾￿",astral:"[\\ud83f\\ud87f\\ud8bf\\ud8ff\\ud93f\\ud97f\\ud9bf\\ud9ff\\uda3f\\uda7f\\udabf\\udaff\\udb3f\\udb7f\\udbbf\\udbff][\\udffe\\udfff]"},{name:"Uppercase",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶͿΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԨԪԬԮԱ-ՖႠ-ჅჇჍᎠ-ᏵḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅⅠ-ⅯↃⒶ-ⓏⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꚘꚚꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞖꞘꞚꞜꞞꞠꞢꞤꞦꞨꞪ-ꞮꞰ-ꞴꞶA-Z",astral:"\\ud801[\\udc00-\\udc27\\udcb0-\\udcd3]|\\ud803[\\udc80-\\udcb2]|\\ud806[\\udca0-\\udcbf]|\\ud835[\\udc00-\\udc19\\udc34-\\udc4d\\udc68-\\udc81\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb5\\udcd0-\\udce9\\udd04\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd38\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd6c-\\udd85\\udda0-\\uddb9\\uddd4-\\udded\\ude08-\\ude21\\ude3c-\\ude55\\ude70-\\ude89\\udea8-\\udec0\\udee2-\\udefa\\udf1c-\\udf34\\udf56-\\udf6e\\udf90-\\udfa8\\udfca]|\\ud83a[\\udd00-\\udd21]|\\ud83c[\\udd30-\\udd49\\udd50-\\udd69\\udd70-\\udd89]"},{name:"White_Space",bmp:"\\t-\\r …   - \\u2028\\u2029   "}]},{}],13:[function(e,t,n){t.exports=[{name:"Adlam",astral:"\\ud83a[\\udd00-\\udd4a\\udd50-\\udd59\\udd5e\\udd5f]"},{name:"Ahom",astral:"\\ud805[\\udf00-\\udf19\\udf1d-\\udf2b\\udf30-\\udf3f]"},{name:"Anatolian_Hieroglyphs",astral:"\\ud811[\\udc00-\\ude46]"},{name:"Arabic",bmp:"؀-؄؆-؋؍-ؚ؜؞ؠ-ؿف-يٖ-ٯٱ-ۜ۞-ۿݐ-ݿࢠ-ࢴࢶ-ࢽࣔ-ࣣ࣡-ࣿﭐ-﯁ﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷽ﹰ-ﹴﹶ-ﻼ",astral:"\\ud803[\\ude60-\\ude7e]|\\ud83b[\\ude00-\\ude03\\ude05-\\ude1f\\ude21\\ude22\\ude24\\ude27\\ude29-\\ude32\\ude34-\\ude37\\ude39\\ude3b\\ude42\\ude47\\ude49\\ude4b\\ude4d-\\ude4f\\ude51\\ude52\\ude54\\ude57\\ude59\\ude5b\\ude5d\\ude5f\\ude61\\ude62\\ude64\\ude67-\\ude6a\\ude6c-\\ude72\\ude74-\\ude77\\ude79-\\ude7c\\ude7e\\ude80-\\ude89\\ude8b-\\ude9b\\udea1-\\udea3\\udea5-\\udea9\\udeab-\\udebb\\udef0\\udef1]"},{name:"Armenian",bmp:"Ա-Ֆՙ-՟ա-և֊֍-֏ﬓ-ﬗ"},{name:"Avestan",astral:"\\ud802[\\udf00-\\udf35\\udf39-\\udf3f]"},{name:"Balinese",bmp:"ᬀ-ᭋ᭐-᭼"},{name:"Bamum",bmp:"ꚠ-꛷",astral:"\\ud81a[\\udc00-\\ude38]"},{name:"Bassa_Vah",astral:"\\ud81a[\\uded0-\\udeed\\udef0-\\udef5]"},{name:"Batak",bmp:"ᯀ-᯳᯼-᯿"},{name:"Bengali",bmp:"ঀ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-৽"},{name:"Bhaiksuki",astral:"\\ud807[\\udc00-\\udc08\\udc0a-\\udc36\\udc38-\\udc45\\udc50-\\udc6c]"},{name:"Bopomofo",bmp:"˪˫ㄅ-ㄮㆠ-ㆺ"},{name:"Brahmi",astral:"\\ud804[\\udc00-\\udc4d\\udc52-\\udc6f\\udc7f]"},{name:"Braille",bmp:"⠀-⣿"},{name:"Buginese",bmp:"ᨀ-ᨛ᨞᨟"},{name:"Buhid",bmp:"ᝀ-ᝓ"},{name:"Canadian_Aboriginal",bmp:"᐀-ᙿᢰ-ᣵ"},{name:"Carian",astral:"\\ud800[\\udea0-\\uded0]"},{name:"Caucasian_Albanian",astral:"\\ud801[\\udd30-\\udd63\\udd6f]"},{name:"Chakma",astral:"\\ud804[\\udd00-\\udd34\\udd36-\\udd43]"},{name:"Cham",bmp:"ꨀ-ꨶꩀ-ꩍ꩐-꩙꩜-꩟"},{name:"Cherokee",bmp:"Ꭰ-Ᏽᏸ-ᏽꭰ-ꮿ"},{name:"Common",bmp:"\\0-@\\\\[-`\\\\{-©«-¹»-¿×÷ʹ-˟˥-˩ˬ-˿ʹ;΅·։؅،؛؟ـ۝࣢।॥฿࿕-࿘჻᛫-᛭᜵᜶᠂᠃᠅᳓᳡ᳩ-ᳬᳮ-ᳳᳵ-᳷ -​‎-⁤⁦-⁰⁴-⁾₀-₎₠-₿℀-℥℧-℩ℬ-ℱℳ-⅍⅏-⅟↉-↋←-␦⑀-⑊①-⟿⤀-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⸀-⹉⿰-⿻ -〄〆〈-〠〰-〷〼-〿゛゜゠・ー㆐-㆟㇀-㇣㈠-㉟㉿-㋏㍘-㏿䷀-䷿꜀-꜡ꞈ-꞊꠰-꠹꤮ꧏ꭛﴾﴿︐-︙︰-﹒﹔-﹦﹨-﹫\\ufeff!-@[-`{-・ー゙゚¢-₩│-○-�",astral:"\\ud800[\\udd00-\\udd02\\udd07-\\udd33\\udd37-\\udd3f\\udd90-\\udd9b\\uddd0-\\uddfc\\udee1-\\udefb]|\\ud82f[\\udca0-\\udca3]|\\ud834[\\udc00-\\udcf5\\udd00-\\udd26\\udd29-\\udd66\\udd6a-\\udd7a\\udd83\\udd84\\udd8c-\\udda9\\uddae-\\udde8\\udf00-\\udf56\\udf60-\\udf71]|\\ud835[\\udc00-\\udc54\\udc56-\\udc9c\\udc9e\\udc9f\\udca2\\udca5\\udca6\\udca9-\\udcac\\udcae-\\udcb9\\udcbb\\udcbd-\\udcc3\\udcc5-\\udd05\\udd07-\\udd0a\\udd0d-\\udd14\\udd16-\\udd1c\\udd1e-\\udd39\\udd3b-\\udd3e\\udd40-\\udd44\\udd46\\udd4a-\\udd50\\udd52-\\udea5\\udea8-\\udfcb\\udfce-\\udfff]|\\ud83c[\\udc00-\\udc2b\\udc30-\\udc93\\udca0-\\udcae\\udcb1-\\udcbf\\udcc1-\\udccf\\udcd1-\\udcf5\\udd00-\\udd0c\\udd10-\\udd2e\\udd30-\\udd6b\\udd70-\\uddac\\udde6-\\uddff\\ude01\\ude02\\ude10-\\ude3b\\ude40-\\ude48\\ude50\\ude51\\ude60-\\ude65\\udf00-\\udfff]|\\ud83d[\\udc00-\\uded4\\udee0-\\udeec\\udef0-\\udef8\\udf00-\\udf73\\udf80-\\udfd4]|\\ud83e[\\udc00-\\udc0b\\udc10-\\udc47\\udc50-\\udc59\\udc60-\\udc87\\udc90-\\udcad\\udd00-\\udd0b\\udd10-\\udd3e\\udd40-\\udd4c\\udd50-\\udd6b\\udd80-\\udd97\\uddc0\\uddd0-\\udde6]|\\udb40[\\udc01\\udc20-\\udc7f]"},{name:"Coptic",bmp:"Ϣ-ϯⲀ-ⳳ⳹-⳿"},{name:"Cuneiform",astral:"\\ud808[\\udc00-\\udf99]|\\ud809[\\udc00-\\udc6e\\udc70-\\udc74\\udc80-\\udd43]"},{name:"Cypriot",astral:"\\ud802[\\udc00-\\udc05\\udc08\\udc0a-\\udc35\\udc37\\udc38\\udc3c\\udc3f]"},{name:"Cyrillic",bmp:"Ѐ-҄҇-ԯᲀ-ᲈᴫᵸⷠ-ⷿꙀ-ꚟ︮︯"},{name:"Deseret",astral:"\\ud801[\\udc00-\\udc4f]"},{name:"Devanagari",bmp:"ऀ-ॐ॓-ॣ०-ॿ꣠-ꣽ"},{name:"Duployan",astral:"\\ud82f[\\udc00-\\udc6a\\udc70-\\udc7c\\udc80-\\udc88\\udc90-\\udc99\\udc9c-\\udc9f]"},{name:"Egyptian_Hieroglyphs",astral:"\\ud80c[\\udc00-\\udfff]|\\ud80d[\\udc00-\\udc2e]"},{name:"Elbasan",astral:"\\ud801[\\udd00-\\udd27]"},{name:"Ethiopic",bmp:"ሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ"},{name:"Georgian",bmp:"Ⴀ-ჅჇჍა-ჺჼ-ჿⴀ-ⴥⴧⴭ"},{name:"Glagolitic",bmp:"Ⰰ-Ⱞⰰ-ⱞ",astral:"\\ud838[\\udc00-\\udc06\\udc08-\\udc18\\udc1b-\\udc21\\udc23\\udc24\\udc26-\\udc2a]"},{name:"Gothic",astral:"\\ud800[\\udf30-\\udf4a]"},{name:"Grantha",astral:"\\ud804[\\udf00-\\udf03\\udf05-\\udf0c\\udf0f\\udf10\\udf13-\\udf28\\udf2a-\\udf30\\udf32\\udf33\\udf35-\\udf39\\udf3c-\\udf44\\udf47\\udf48\\udf4b-\\udf4d\\udf50\\udf57\\udf5d-\\udf63\\udf66-\\udf6c\\udf70-\\udf74]"},{name:"Greek",bmp:"Ͱ-ͳ͵-ͷͺ-ͽͿ΄ΆΈ-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ῄῆ-ΐῖ-Ί῝-`ῲ-ῴῶ-῾Ωꭥ",astral:"\\ud800[\\udd40-\\udd8e\\udda0]|\\ud834[\\ude00-\\ude45]"},{name:"Gujarati",bmp:"ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱ૹ-૿"},{name:"Gurmukhi",bmp:"ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵ"},{name:"Han",bmp:"⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶵一-鿪豈-舘並-龎",astral:"[\\ud840-\\ud868\\ud86a-\\ud86c\\ud86f-\\ud872\\ud874-\\ud879][\\udc00-\\udfff]|\\ud869[\\udc00-\\uded6\\udf00-\\udfff]|\\ud86d[\\udc00-\\udf34\\udf40-\\udfff]|\\ud86e[\\udc00-\\udc1d\\udc20-\\udfff]|\\ud873[\\udc00-\\udea1\\udeb0-\\udfff]|\\ud87a[\\udc00-\\udfe0]|\\ud87e[\\udc00-\\ude1d]"},{name:"Hangul",bmp:"ᄀ-ᇿ〮〯ㄱ-ㆎ㈀-㈞㉠-㉾ꥠ-ꥼ가-힣ힰ-ퟆퟋ-ퟻᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"},{name:"Hanunoo",bmp:"ᜠ-᜴"},{name:"Hatran",astral:"\\ud802[\\udce0-\\udcf2\\udcf4\\udcf5\\udcfb-\\udcff]"},{name:"Hebrew",bmp:"֑-ׇא-תװ-״יִ-זּטּ-לּמּנּסּףּפּצּ-ﭏ"},{name:"Hiragana",bmp:"ぁ-ゖゝ-ゟ",astral:"\\ud82c[\\udc01-\\udd1e]|🈀"},{name:"Imperial_Aramaic",astral:"\\ud802[\\udc40-\\udc55\\udc57-\\udc5f]"},{name:"Inherited",bmp:"̀-ًͯ҅҆-ٰٕ॒॑᪰-᪾᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸᳹᷀-᷹᷻-᷿‌‍⃐-〪⃰-゙゚〭︀-️︠-︭",astral:"\\ud800[\\uddfd\\udee0]|\\ud834[\\udd67-\\udd69\\udd7b-\\udd82\\udd85-\\udd8b\\uddaa-\\uddad]|\\udb40[\\udd00-\\uddef]"},{name:"Inscriptional_Pahlavi",astral:"\\ud802[\\udf60-\\udf72\\udf78-\\udf7f]"},{name:"Inscriptional_Parthian",astral:"\\ud802[\\udf40-\\udf55\\udf58-\\udf5f]"},{name:"Javanese",bmp:"ꦀ-꧍꧐-꧙꧞꧟"},{name:"Kaithi",astral:"\\ud804[\\udc80-\\udcc1]"},{name:"Kannada",bmp:"ಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲ"},{name:"Katakana",bmp:"ァ-ヺヽ-ヿㇰ-ㇿ㋐-㋾㌀-㍗ヲ-ッア-ン",astral:"𛀀"},{name:"Kayah_Li",bmp:"꤀-꤭꤯"},{name:"Kharoshthi",astral:"\\ud802[\\ude00-\\ude03\\ude05\\ude06\\ude0c-\\ude13\\ude15-\\ude17\\ude19-\\ude33\\ude38-\\ude3a\\ude3f-\\ude47\\ude50-\\ude58]"},{name:"Khmer",bmp:"ក-៝០-៩៰-៹᧠-᧿"},{name:"Khojki",astral:"\\ud804[\\ude00-\\ude11\\ude13-\\ude3e]"},{name:"Khudawadi",astral:"\\ud804[\\udeb0-\\udeea\\udef0-\\udef9]"},{name:"Lao",bmp:"ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟ"},{name:"Latin",bmp:"A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞮꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z"},{name:"Lepcha",bmp:"ᰀ-᰷᰻-᱉ᱍ-ᱏ"},{name:"Limbu",bmp:"ᤀ-ᤞᤠ-ᤫᤰ-᤻᥀᥄-᥏"},{name:"Linear_A",astral:"\\ud801[\\ude00-\\udf36\\udf40-\\udf55\\udf60-\\udf67]"},{name:"Linear_B",astral:"\\ud800[\\udc00-\\udc0b\\udc0d-\\udc26\\udc28-\\udc3a\\udc3c\\udc3d\\udc3f-\\udc4d\\udc50-\\udc5d\\udc80-\\udcfa]"},{name:"Lisu",bmp:"ꓐ-꓿"},{name:"Lycian",astral:"\\ud800[\\ude80-\\ude9c]"},{name:"Lydian",astral:"\\ud802[\\udd20-\\udd39\\udd3f]"},{name:"Mahajani",astral:"\\ud804[\\udd50-\\udd76]"},{name:"Malayalam",bmp:"ഀ-ഃഅ-ഌഎ-ഐഒ-ൄെ-ൈൊ-൏ൔ-ൣ൦-ൿ"},{name:"Mandaic",bmp:"ࡀ-࡛࡞"},{name:"Manichaean",astral:"\\ud802[\\udec0-\\udee6\\udeeb-\\udef6]"},{name:"Marchen",astral:"\\ud807[\\udc70-\\udc8f\\udc92-\\udca7\\udca9-\\udcb6]"},{name:"Masaram_Gondi",astral:"\\ud807[\\udd00-\\udd06\\udd08\\udd09\\udd0b-\\udd36\\udd3a\\udd3c\\udd3d\\udd3f-\\udd47\\udd50-\\udd59]"},{name:"Meetei_Mayek",bmp:"ꫠ-꫶ꯀ-꯭꯰-꯹"},{name:"Mende_Kikakui",astral:"\\ud83a[\\udc00-\\udcc4\\udcc7-\\udcd6]"},{name:"Meroitic_Cursive",astral:"\\ud802[\\udda0-\\uddb7\\uddbc-\\uddcf\\uddd2-\\uddff]"},{name:"Meroitic_Hieroglyphs",astral:"\\ud802[\\udd80-\\udd9f]"},{name:"Miao",astral:"\\ud81b[\\udf00-\\udf44\\udf50-\\udf7e\\udf8f-\\udf9f]"},{name:"Modi",astral:"\\ud805[\\ude00-\\ude44\\ude50-\\ude59]"},{name:"Mongolian",bmp:"᠀᠁᠄᠆-᠎᠐-᠙ᠠ-ᡷᢀ-ᢪ",astral:"\\ud805[\\ude60-\\ude6c]"},{name:"Mro",astral:"\\ud81a[\\ude40-\\ude5e\\ude60-\\ude69\\ude6e\\ude6f]"},{name:"Multani",astral:"\\ud804[\\ude80-\\ude86\\ude88\\ude8a-\\ude8d\\ude8f-\\ude9d\\ude9f-\\udea9]"},{name:"Myanmar",bmp:"က-႟ꧠ-ꧾꩠ-ꩿ"},{name:"Nabataean",astral:"\\ud802[\\udc80-\\udc9e\\udca7-\\udcaf]"},{name:"New_Tai_Lue",bmp:"ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟"},{name:"Newa",astral:"\\ud805[\\udc00-\\udc59\\udc5b\\udc5d]"},{name:"Nko",bmp:"߀-ߺ"},{name:"Nushu",astral:"𖿡|\\ud82c[\\udd70-\\udefb]"},{name:"Ogham",bmp:" -᚜"},{name:"Ol_Chiki",bmp:"᱐-᱿"},{name:"Old_Hungarian",astral:"\\ud803[\\udc80-\\udcb2\\udcc0-\\udcf2\\udcfa-\\udcff]"},{name:"Old_Italic",astral:"\\ud800[\\udf00-\\udf23\\udf2d-\\udf2f]"},{name:"Old_North_Arabian",astral:"\\ud802[\\ude80-\\ude9f]"},{name:"Old_Permic",astral:"\\ud800[\\udf50-\\udf7a]"},{name:"Old_Persian",astral:"\\ud800[\\udfa0-\\udfc3\\udfc8-\\udfd5]"},{name:"Old_South_Arabian",astral:"\\ud802[\\ude60-\\ude7f]"},{name:"Old_Turkic",astral:"\\ud803[\\udc00-\\udc48]"},{name:"Oriya",bmp:"ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୷"},{name:"Osage",astral:"\\ud801[\\udcb0-\\udcd3\\udcd8-\\udcfb]"},{name:"Osmanya",astral:"\\ud801[\\udc80-\\udc9d\\udca0-\\udca9]"},{name:"Pahawh_Hmong",astral:"\\ud81a[\\udf00-\\udf45\\udf50-\\udf59\\udf5b-\\udf61\\udf63-\\udf77\\udf7d-\\udf8f]"},{name:"Palmyrene",astral:"\\ud802[\\udc60-\\udc7f]"},{name:"Pau_Cin_Hau",astral:"\\ud806[\\udec0-\\udef8]"},{name:"Phags_Pa",bmp:"ꡀ-꡷"},{name:"Phoenician",astral:"\\ud802[\\udd00-\\udd1b\\udd1f]"},{name:"Psalter_Pahlavi",astral:"\\ud802[\\udf80-\\udf91\\udf99-\\udf9c\\udfa9-\\udfaf]"},{name:"Rejang",bmp:"ꤰ-꥓꥟"},{name:"Runic",bmp:"ᚠ-ᛪᛮ-ᛸ"},{name:"Samaritan",bmp:"ࠀ-࠭࠰-࠾"},{name:"Saurashtra",bmp:"ꢀ-ꣅ꣎-꣙"},{name:"Sharada",astral:"\\ud804[\\udd80-\\uddcd\\uddd0-\\udddf]"},{name:"Shavian",astral:"\\ud801[\\udc50-\\udc7f]"},{name:"Siddham",astral:"\\ud805[\\udd80-\\uddb5\\uddb8-\\udddd]"},{name:"SignWriting",astral:"\\ud836[\\udc00-\\ude8b\\ude9b-\\ude9f\\udea1-\\udeaf]"},{name:"Sinhala",bmp:"ංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲ-෴",astral:"\\ud804[\\udde1-\\uddf4]"},{name:"Sora_Sompeng",astral:"\\ud804[\\udcd0-\\udce8\\udcf0-\\udcf9]"},{name:"Soyombo",astral:"\\ud806[\\ude50-\\ude83\\ude86-\\ude9c\\ude9e-\\udea2]"},{name:"Sundanese",bmp:"ᮀ-ᮿ᳀-᳇"},{name:"Syloti_Nagri",bmp:"ꠀ-꠫"},{name:"Syriac",bmp:"܀-܍܏-݊ݍ-ݏࡠ-ࡪ"},{name:"Tagalog",bmp:"ᜀ-ᜌᜎ-᜔"},{name:"Tagbanwa",bmp:"ᝠ-ᝬᝮ-ᝰᝲᝳ"},{name:"Tai_Le",bmp:"ᥐ-ᥭᥰ-ᥴ"},{name:"Tai_Tham",bmp:"ᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪠-᪭"},{name:"Tai_Viet",bmp:"ꪀ-ꫂꫛ-꫟"},{name:"Takri",astral:"\\ud805[\\ude80-\\udeb7\\udec0-\\udec9]"},{name:"Tamil",bmp:"ஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௺"},{name:"Tangut",astral:"𖿠|[\\ud81c-\\ud820][\\udc00-\\udfff]|\\ud821[\\udc00-\\udfec]|\\ud822[\\udc00-\\udef2]"},{name:"Telugu",bmp:"ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘ-ౚౠ-ౣ౦-౯౸-౿"},{name:"Thaana",bmp:"ހ-ޱ"},{name:"Thai",bmp:"ก-ฺเ-๛"},{name:"Tibetan",bmp:"ༀ-ཇཉ-ཬཱ-ྗྙ-ྼ྾-࿌࿎-࿔࿙࿚"},{name:"Tifinagh",bmp:"ⴰ-ⵧⵯ⵰⵿"},{name:"Tirhuta",astral:"\\ud805[\\udc80-\\udcc7\\udcd0-\\udcd9]"},{name:"Ugaritic",astral:"\\ud800[\\udf80-\\udf9d\\udf9f]"},{name:"Vai",bmp:"ꔀ-ꘫ"},{name:"Warang_Citi",astral:"\\ud806[\\udca0-\\udcf2\\udcff]"},{name:"Yi",bmp:"ꀀ-ꒌ꒐-꓆"},{name:"Zanabazar_Square",astral:"\\ud806[\\ude00-\\ude47]"}]},{}]},{},[8])(8)},function(e,t,n){"use strict";var i,r,s,a,l,o,u,d,g,c;n.r(t),n.d(t,"Position",function(){return i}),n.d(t,"Range",function(){return r}),n.d(t,"Location",function(){return s}),n.d(t,"DiagnosticRelatedInformation",function(){return a}),n.d(t,"DiagnosticSeverity",function(){return l}),n.d(t,"Diagnostic",function(){return o}),n.d(t,"Command",function(){return u}),n.d(t,"TextEdit",function(){return d}),n.d(t,"TextDocumentEdit",function(){return g}),n.d(t,"WorkspaceEdit",function(){return c}),n.d(t,"WorkspaceChange",function(){return P}),n.d(t,"TextDocumentIdentifier",function(){return m}),n.d(t,"VersionedTextDocumentIdentifier",function(){return h}),n.d(t,"TextDocumentItem",function(){return f}),n.d(t,"MarkupKind",function(){return p}),n.d(t,"CompletionItemKind",function(){return S}),n.d(t,"InsertTextFormat",function(){return y}),n.d(t,"CompletionItem",function(){return b}),n.d(t,"CompletionList",function(){return I}),n.d(t,"MarkedString",function(){return T}),n.d(t,"ParameterInformation",function(){return B}),n.d(t,"SignatureInformation",function(){return C}),n.d(t,"DocumentHighlightKind",function(){return x}),n.d(t,"DocumentHighlight",function(){return _}),n.d(t,"SymbolKind",function(){return w}),n.d(t,"SymbolInformation",function(){return v}),n.d(t,"CodeActionKind",function(){return R}),n.d(t,"CodeActionContext",function(){return K}),n.d(t,"CodeAction",function(){return A}),n.d(t,"CodeLens",function(){return D}),n.d(t,"FormattingOptions",function(){return E}),n.d(t,"DocumentLink",function(){return O}),n.d(t,"EOL",function(){return F}),n.d(t,"TextDocument",function(){return k}),n.d(t,"TextDocumentSaveReason",function(){return N}),function(e){e.create=function(e,t){return{line:e,character:t}},e.is=function(e){var t=e;return L.defined(t)&&L.number(t.line)&&L.number(t.character)}}(i||(i={})),function(e){e.create=function(e,t,n,r){if(L.number(e)&&L.number(t)&&L.number(n)&&L.number(r))return{start:i.create(e,t),end:i.create(n,r)};if(i.is(e)&&i.is(t))return{start:e,end:t};throw new Error("Range#create called with invalid arguments["+e+", "+t+", "+n+", "+r+"]")},e.is=function(e){var t=e;return L.defined(t)&&i.is(t.start)&&i.is(t.end)}}(r||(r={})),function(e){e.create=function(e,t){return{uri:e,range:t}},e.is=function(e){var t=e;return L.defined(t)&&r.is(t.range)&&(L.string(t.uri)||L.undefined(t.uri))}}(s||(s={})),function(e){e.create=function(e,t){return{location:e,message:t}},e.is=function(e){var t=e;return L.defined(t)&&s.is(t.location)&&L.string(t.message)}}(a||(a={})),function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4}(l||(l={})),function(e){e.create=function(e,t,n,i,r,s){var a={range:e,message:t};return L.defined(n)&&(a.severity=n),L.defined(i)&&(a.code=i),L.defined(r)&&(a.source=r),L.defined(s)&&(a.relatedInformation=s),a},e.is=function(e){var t=e;return L.defined(t)&&r.is(t.range)&&L.string(t.message)&&(L.number(t.severity)||L.undefined(t.severity))&&(L.number(t.code)||L.string(t.code)||L.undefined(t.code))&&(L.string(t.source)||L.undefined(t.source))&&(L.undefined(t.relatedInformation)||L.typedArray(t.relatedInformation,a.is))}}(o||(o={})),function(e){e.create=function(e,t){for(var n=[],i=2;i0&&(r.arguments=n),r},e.is=function(e){var t=e;return L.defined(t)&&L.string(t.title)&&L.string(t.command)}}(u||(u={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}}}(d||(d={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return L.defined(t)&&h.is(t.textDocument)&&Array.isArray(t.edits)}}(g||(g={})),(c||(c={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||L.typedArray(t.documentChanges,g.is))};var m,h,f,p,S,y,b,I,T,B,C,x,_,w,v,R,K,A,D,E,$=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(d.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(d.replace(e,t))},e.prototype.delete=function(e){this.edits.push(d.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),P=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach(function(e){var n=new $(e.edits);t._textEditChanges[e.textDocument.uri]=n}):e.changes&&Object.keys(e.changes).forEach(function(n){var i=new $(e.changes[n]);t._textEditChanges[n]=i}))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(h.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for versioned document changes.");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new $(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new $(r),this._textEditChanges[e]=i}return i},e}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return L.defined(t)&&L.string(t.uri)}}(m||(m={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return L.defined(t)&&L.string(t.uri)&&L.number(t.version)}}(h||(h={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return L.defined(t)&&L.string(t.uri)&&L.string(t.languageId)&&L.number(t.version)&&L.string(t.text)}}(f||(f={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(p||(p={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(S||(S={})),function(e){e.PlainText=1,e.Snippet=2}(y||(y={})),(b||(b={})).create=function(e){return{label:e}},(I||(I={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(T||(T={})).fromPlainText=function(e){return e.replace(/[\\\\`*_{}[\\]()#+\\-.!]/g,"\\\\$&")},(B||(B={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(C||(C={})).create=function(e,t){for(var n=[],i=2;i=0;s--){var a=i[s],l=e.offsetAt(a.range.start),o=e.offsetAt(a.range.end);if(!(o<=r))throw new Error("Ovelapping edit");n=n.substring(0,l)+a.newText+n.substring(o,n.length),r=l}return n}}(k||(k={})),function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3}(N||(N={}));var L,U=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=null}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=null},e.prototype.getLineOffsets=function(){if(null===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return i.create(0,e);for(;ne?r=s:n=s+1}var a=n-1;return i.create(a,e-t[a])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1=97&&s<=122||s>=65&&s<=90||s>=48&&s<=57||45===s||46===s||95===s||126===s||t&&47===s)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var a=f[s];void 0!==a?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=a):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function S(e){for(var t=void 0,n=0;n1&&"file"===e.scheme?"//"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,r.c&&(t=t.replace(/\\//g,"\\\\")),t}function b(e,t){var n=t?S:p,i="",r=e.scheme,s=e.authority,a=e.path,l=e.query,o=e.fragment;if(r&&(i+=r,i+=":"),(s||"file"===r)&&(i+=d,i+=d),s){var u=s.indexOf("@");if(-1!==u){var g=s.substr(0,u);s=s.substr(u+1),-1===(u=g.indexOf(":"))?i+=n(g,!1):(i+=n(g.substr(0,u),!1),i+=":",i+=n(g.substr(u+1),!1)),i+="@"}-1===(u=(s=s.toLowerCase()).indexOf(":"))?i+=n(s,!1):(i+=n(s.substr(0,u),!1),i+=s.substr(u))}if(a){if(a.length>=3&&47===a.charCodeAt(0)&&58===a.charCodeAt(2))(c=a.charCodeAt(1))>=65&&c<=90&&(a="/"+String.fromCharCode(c+32)+":"+a.substr(3));else if(a.length>=2&&58===a.charCodeAt(1)){var c;(c=a.charCodeAt(0))>=65&&c<=90&&(a=String.fromCharCode(c+32)+":"+a.substr(2))}i+=n(a,!0)}return l&&(i+="?",i+=n(l,!1)),o&&(i+="#",i+=t?o:p(o,!1)),i}var I=n(0),T=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumbern||e===n&&t>i?(this.startLineNumber=n,this.startColumn=i,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=i)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var i,r,s,a;return n.startLineNumbert.endLineNumber?(s=n.endLineNumber,a=n.endColumn):n.endLineNumber===t.endLineNumber?(s=n.endLineNumber,a=Math.max(n.endColumn,t.endColumn)):(s=t.endLineNumber,a=t.endColumn),new e(i,r,s,a)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var i=t.startLineNumber,r=t.startColumn,s=t.endLineNumber,a=t.endColumn,l=n.startLineNumber,o=n.startColumn,u=n.endLineNumber,d=n.endColumn;return iu?(s=u,a=d):s===u&&(a=Math.min(a,d)),i>s?null:i===s&&r>a?null:new e(i,r,s,a)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new T(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new T(this.startLineNumber,this.startColumn)},e.prototype.toString=function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumbere.startLineNumber},e}(),C=function(){function e(e,t,n,i){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=i}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();function x(e){return{getLength:function(){return e.length},getElementAtIndex:function(t){return e.charCodeAt(t)}}}function _(e,t,n){return new K(x(e),x(t)).ComputeDiff(n)}var w=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}(),v=function(){function e(){}return e.Copy=function(e,t,n,i,r){for(var s=0;s0||this.m_modifiedCount>0)&&this.m_changes.push(new C(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=Number.MAX_VALUE,this.m_modifiedStart=Number.MAX_VALUE},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),K=function(){function e(e,t,n){void 0===n&&(n=null),this.OriginalSequence=e,this.ModifiedSequence=t,this.ContinueProcessingPredicate=n,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e.prototype.ElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.OriginalElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.OriginalSequence.getElementAtIndex(t)},e.prototype.ModifiedElementsAreEqual=function(e,t){return this.ModifiedSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this.OriginalSequence.getLength()-1,0,this.ModifiedSequence.getLength()-1,e)},e.prototype._ComputeDiff=function(e,t,n,i,r){var s=this.ComputeDiffRecursive(e,t,n,i,[!1]);return r?this.ShiftChanges(s):s},e.prototype.ComputeDiffRecursive=function(e,t,n,i,r){for(r[0]=!1;e<=t&&n<=i&&this.ElementsAreEqual(e,n);)e++,n++;for(;t>=e&&i>=n&&this.ElementsAreEqual(t,i);)t--,i--;if(e>t||n>i){var s=void 0;return n<=i?(w.Assert(e===t+1,"originalStart should only be one more than originalEnd"),s=[new C(e,0,n,i-n+1)]):e<=t?(w.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),s=[new C(e,t-e+1,n,0)]):(w.Assert(e===t+1,"originalStart should only be one more than originalEnd"),w.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),s=[]),s}var a=[0],l=[0],o=this.ComputeRecursionPoint(e,t,n,i,a,l,r),u=a[0],d=l[0];if(null!==o)return o;if(!r[0]){var g,c=this.ComputeDiffRecursive(e,u,n,d,r);return g=r[0]?[new C(u+1,t-(u+1)+1,d+1,i-(d+1)+1)]:this.ComputeDiffRecursive(u+1,t,d+1,i,r),this.ConcatenateChanges(c,g)}return[new C(e,t-e+1,n,i-n+1)]},e.prototype.WALKTRACE=function(e,t,n,i,r,s,a,l,o,u,d,g,c,m,h,f,p,S){var y,b,I=null,T=new R,B=t,x=n,_=c[0]-f[0]-i,w=Number.MIN_VALUE,v=this.m_forwardHistory.length-1;do{(b=_+e)===B||b=0&&(e=(o=this.m_forwardHistory[v])[0],B=1,x=o.length-1)}while(--v>=-1);if(y=T.getReverseChanges(),S[0]){var K=c[0]+1,A=f[0]+1;if(null!==y&&y.length>0){var D=y[y.length-1];K=Math.max(K,D.getOriginalEnd()),A=Math.max(A,D.getModifiedEnd())}I=[new C(K,g-K+1,A,h-A+1)]}else{T=new R,B=s,x=a,_=c[0]-f[0]-l,w=Number.MAX_VALUE,v=p?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{(b=_+r)===B||b=u[b+1]?(m=(d=u[b+1]-1)-_-l,d>w&&T.MarkNextChange(),w=d+1,T.AddOriginalElement(d+1,m+1),_=b+1-r):(m=(d=u[b-1])-_-l,d>w&&T.MarkNextChange(),w=d,T.AddModifiedElement(d+1,m+1),_=b-1-r),v>=0&&(r=(u=this.m_reverseHistory[v])[0],B=1,x=u.length-1)}while(--v>=-1);I=T.getChanges()}return this.ConcatenateChanges(y,I)},e.prototype.ComputeRecursionPoint=function(e,t,n,i,r,s,a){var l,o,u,d=0,g=0,c=0,m=0;e--,n--,r[0]=0,s[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var h,f,p=t-e+(i-n),S=p+1,y=new Array(S),b=new Array(S),I=i-n,T=t-e,B=e-n,x=t-i,_=(T-I)%2==0;for(y[I]=e,b[T]=t,a[0]=!1,u=1;u<=p/2+1;u++){var w=0,R=0;for(d=this.ClipDiagonalBound(I-u,u,I,S),g=this.ClipDiagonalBound(I+u,u,I,S),h=d;h<=g;h+=2){for(o=(l=h===d||hw+R&&(w=l,R=o),!_&&Math.abs(h-T)<=u-1&&l>=b[h])return r[0]=l,s[0]=o,f<=b[h]&&u<=1448?this.WALKTRACE(I,d,g,B,T,c,m,x,y,b,l,t,r,o,i,s,_,a):null}var K=(w-e+(R-n)-u)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(w,this.OriginalSequence,K))return a[0]=!0,r[0]=w,s[0]=R,K>0&&u<=1448?this.WALKTRACE(I,d,g,B,T,c,m,x,y,b,l,t,r,o,i,s,_,a):[new C(++e,t-e+1,++n,i-n+1)];for(c=this.ClipDiagonalBound(T-u,u,T,S),m=this.ClipDiagonalBound(T+u,u,T,S),h=c;h<=m;h+=2){for(o=(l=h===c||h=b[h+1]?b[h+1]-1:b[h-1])-(h-T)-x,f=l;l>e&&o>n&&this.ElementsAreEqual(l,o);)l--,o--;if(b[h]=l,_&&Math.abs(h-I)<=u&&l<=y[h])return r[0]=l,s[0]=o,f>=y[h]&&u<=1448?this.WALKTRACE(I,d,g,B,T,c,m,x,y,b,l,t,r,o,i,s,_,a):null}if(u<=1447){var A=new Array(g-d+2);A[0]=I-d+1,v.Copy(y,d,A,1,g-d+1),this.m_forwardHistory.push(A),(A=new Array(m-c+2))[0]=T-c+1,v.Copy(b,c,A,1,m-c+1),this.m_reverseHistory.push(A)}}return this.WALKTRACE(I,d,g,B,T,c,m,x,y,b,l,t,r,o,i,s,_,a)},e.prototype.ShiftChanges=function(e){var t;do{t=!1;for(var n=0;n0,l=i.modifiedLength>0;i.originalStart+i.originalLength=0;n--){if(i=e[n],r=0,s=0,n>0){var d=e[n-1];d.originalLength>0&&(r=d.originalStart+d.originalLength),d.modifiedLength>0&&(s=d.modifiedStart+d.modifiedLength)}a=i.originalLength>0,l=i.modifiedLength>0;for(var g=0,c=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength),m=1;;m++){var h=i.originalStart-m,f=i.modifiedStart-m;if(hc&&(c=p,g=m)}i.originalStart-=g,i.modifiedStart-=g}return e},e.prototype._OriginalIsBoundary=function(e){if(e<=0||e>=this.OriginalSequence.getLength()-1)return!0;var t=this.OriginalSequence.getElementAtIndex(e);return"string"==typeof t&&/^\\s*$/.test(t)},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){if(e<=0||e>=this.ModifiedSequence.getLength()-1)return!0;var t=this.ModifiedSequence.getElementAtIndex(e);return"string"==typeof t&&/^\\s*$/.test(t)},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[],i=null;return 0===e.length||0===t.length?t.length>0?t:e:this.ChangesOverlap(e[e.length-1],t[0],n)?(i=new Array(e.length+t.length-1),v.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],v.Copy(t,1,i,e.length,t.length-1),i):(i=new Array(e.length+t.length),v.Copy(e,0,i,0,e.length),v.Copy(t,0,i,e.length,t.length),i)},e.prototype.ChangesOverlap=function(e,t,n){if(w.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),w.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,r=e.originalLength,s=e.modifiedStart,a=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(r=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(a=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new C(i,r,s,a),!0}return n[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,i){if(e>=0&&e=0;n--){var i=e.charCodeAt(n);if(32!==i&&9!==i)return n}return-1}(e);return-1===n?t:n+2},e.prototype.getCharSequence=function(e,t,n){for(var i=[],r=[],s=[],a=0,l=t;l<=n;l++)for(var o=this._lines[l],u=e?this._startColumns[l]:1,d=e?this._endColumns[l]:o.length+1,g=u;g1&&h>1&&g.charCodeAt(m-2)===c.charCodeAt(h-2);)m--,h--;(m>1||h>1)&&this._pushTrimWhitespaceCharChange(r,s+1,1,m,a+1,1,h);for(var f=E._getLastNonBlankColumn(g,1),p=E._getLastNonBlankColumn(c,1),S=g.length+1,y=c.length+1;f255?255:0|e}function L(e){return e<0?0:e>4294967295?4294967295:0|e}var U=function(e,t){this.index=e,this.remainder=t},M=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.getCount=function(){return this.values.length},e.prototype.insertValues=function(e,t){e=L(e);var n=this.values,i=this.prefixSum,r=t.length;return 0!==r&&(this.values=new Uint32Array(n.length+r),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+r),this.values.set(t,e),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=L(e),t=L(t),this.values[e]!==t&&(this.values[e]=t,e-1=n.length)return!1;var r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=L(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t,n,i,r=0,s=this.values.length-1;r<=s;)if(t=r+(s-r)/2|0,e<(i=(n=this.prefixSum[t])-this.values[t]))s=t-1;else{if(!(e>=n))break;r=t+1}return new U(t,e-i)},e}(),q=(function(){function e(e){this._cacheAccumulatedValueStart=0,this._cache=null,this._actual=new M(e),this._bustCache()}e.prototype._bustCache=function(){this._cacheAccumulatedValueStart=0,this._cache=null},e.prototype.insertValues=function(e,t){this._actual.insertValues(e,t)&&this._bustCache()},e.prototype.changeValue=function(e,t){this._actual.changeValue(e,t)&&this._bustCache()},e.prototype.removeValues=function(e,t){this._actual.removeValues(e,t)&&this._bustCache()},e.prototype.getTotalValue=function(){return this._actual.getTotalValue()},e.prototype.getAccumulatedValue=function(e){return this._actual.getAccumulatedValue(e)},e.prototype.getIndexOf=function(e){if(e=Math.floor(e),null!==this._cache){var t=e-this._cacheAccumulatedValueStart;if(t>=0&&t=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}(),G=(function(){function e(){this._actual=new z(0)}e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)}}(),function(){function e(e){for(var t=0,n=0,i=0,r=e.length;it&&(t=l),a>n&&(n=a),o>n&&(n=o)}var u=new N(++n,++t,0);for(i=0,r=e.length;i=this._maxCharCode?0:this._states.get(e,t)},e}()),j=null,Y=null,V=function(){function e(){}return e._createLink=function(e,t,n,i,r){var s=r-1;do{var a=t.charCodeAt(s);if(2!==e.get(a))break;s--}while(s>i);if(i>0){var l=t.charCodeAt(i-1),o=t.charCodeAt(s);(40===l&&41===o||91===l&&93===o||123===l&&125===o)&&s--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:s+2},url:t.substring(i,s+1)}},e.computeLinks=function(t){for(var n=(null===j&&(j=new G([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),j),i=function(){if(null===Y){Y=new z(0);for(var e=0;e<" \\t<>\'\\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".length;e++)Y.set(" \\t<>\'\\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".charCodeAt(e),1);for(e=0;e<".,;".length;e++)Y.set(".,;".charCodeAt(e),2)}return Y}(),r=[],s=1,a=t.getLineCount();s<=a;s++){for(var l=t.getLineContent(s),o=l.length,u=0,d=0,g=0,c=1,m=!1,h=!1,f=!1;u=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null},e.INSTANCE=new e,e}(),H="`~!@#$%^&*()-=+[{]}\\\\|;:\'\\",.<>/?",Q=function(e){void 0===e&&(e="");for(var t="(-?\\\\d*\\\\.\\\\d\\\\w*)|([^",n=0;n=0||(t+="\\\\"+H[n]);return t+="\\\\s]+)",new RegExp(t,"g")}(),X={};I.a.addEventListener("error",function(e){var t=e.detail,n=t.id;t.parent?t.handler&&X&&delete X[n]:(X[n]=t,1===Object.keys(X).length&&setTimeout(function(){var e=X;X={},Object.keys(e).forEach(function(t){var n=e[t];n.exception?Z(n.exception):n.error&&Z(n.error),console.log("WARNING: Promise with no error callback:"+n.id),console.log(n),n.exception&&console.log(n.exception.stack)})},0))});var J=new(function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(function(){if(e.stack)throw new Error(e.message+"\\n\\n"+e.stack);throw e},0)}}return e.prototype.emit=function(e){this.listeners.forEach(function(t){t(e)})},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}());function Z(e){(function(e){return e instanceof Error&&e.name===te&&e.message===te})(e)||J.onUnexpectedError(e)}function ee(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e}var te="Canceled";var ne,ie=function(){function e(){this._toDispose=[]}return Object.defineProperty(e.prototype,"toDispose",{get:function(){return this._toDispose},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._toDispose=function e(t){for(var n=[],i=1;i0;){var i=this._deliveryQueue.shift(),r=i[0],s=i[1];try{"function"==typeof r?r.call(void 0,s):r[0].call(r[1],s)}catch(n){Z(n)}}}},e.prototype.dispose=function(){this._listeners&&(this._listeners=void 0),this._deliveryQueue&&(this._deliveryQueue.length=0),this._disposed=!0},e._noop=function(){},e}();!function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new ae({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}Object.defineProperty(e.prototype,"event",{get:function(){return this.emitter.event},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};return this.events.push(n),this.hasListeners&&this.hook(n),function(e){return{dispose:function(){e()}}}(function(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}(function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)}))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,this.events.forEach(function(t){return e.hook(t)})},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach(function(t){return e.unhook(t)})},e.prototype.hook=function(e){var t=this;e.listener=e.event(function(e){return t.emitter.fire(e)})},e.prototype.unhook=function(e){e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()}}(),function(){function e(){this.buffers=[]}e.prototype.wrapEvent=function(e){var t=this;return function(n,i,r){return e(function(e){var r=t.buffers[t.buffers.length-1];r?r.push(function(){return n.call(i,e)}):n.call(i,e)},void 0,r)}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t),e(),this.buffers.pop(),t.forEach(function(e){return e()})}}(),function(){function e(e){this._event=e}Object.defineProperty(e.prototype,"event",{get:function(){return this._event},enumerable:!0,configurable:!0}),e.prototype.map=function(t){return new e(function(e,t){return function(n,i,r){return void 0===i&&(i=null),e(function(e){return n.call(i,t(e))},null,r)}}(this._event,t))},e.prototype.filter=function(t){return new e(function(e,t){return function(n,i,r){return void 0===i&&(i=null),e(function(e){return t(e)&&n.call(i,e)},null,r)}}(this._event,t))},e.prototype.on=function(e,t,n){return this._event(e,t,n)}}(),function(){function e(){this.emitter=new ae,this.event=this.emitter.event,this.disposable=ie.None}Object.defineProperty(e.prototype,"input",{set:function(e){this.disposable.dispose(),this.disposable=e(this.emitter.fire,this.emitter)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.disposable.dispose(),this.emitter.dispose()}}();var le,oe=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},e.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),ue=new oe,de=new oe,ge=new oe;!function(){function e(e,t,n,i){void 0===n&&(n=t),void 0===i&&(i=n),ue.define(e,t),de.define(e,n),ge.define(e,i)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"),e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\\\","\\\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"\'","\'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"),e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return ue.keyCodeToStr(e)},e.fromString=function(e){return ue.strToKeyCode(e)},e.toUserSettingsUS=function(e){return de.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return ge.keyCodeToStr(e)},e.fromUserSettings=function(e){return de.strToKeyCode(e)||ge.strToKeyCode(e)}}(le||(le={})),function(){function e(e,t,n,i,r){this.type=1,this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyCode=r}e.prototype.equals=function(e){return 1===e.type&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}();var ce,me=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(ce||(ce={}));var he,fe=function(e){function t(t,n,i,r){var s=e.call(this,t,n,i,r)||this;return s.selectionStartLineNumber=t,s.selectionStartColumn=n,s.positionLineNumber=i,s.positionColumn=r,s}return me(t,e),t.prototype.clone=function(){return new t(this.selectionStartLineNumber,this.selectionStartColumn,this.positionLineNumber,this.positionColumn)},t.prototype.toString=function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?ce.LTR:ce.RTL},t.prototype.setEndPosition=function(e,n){return this.getDirection()===ce.LTR?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new T(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return this.getDirection()===ce.LTR?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n>>0)>>>0}(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();!function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(Be||(Be={}));var xe=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),_e=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return xe(t,e),Object.defineProperty(t.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"eol",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){return this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=function(e,t,n,i){t.lastIndex=0;var r=t.exec(n);if(!r)return null;var s=r[0].indexOf(" ")>=0?function(e,t,n,i){var r,s=e-1-0;for(t.lastIndex=0;r=t.exec(n);){if(r.index>s)return null;if(t.lastIndex>=s)return{word:r[0],startColumn:1+r.index,endColumn:1+t.lastIndex}}return null}(e,t,n):function(e,t,n,i){var r,s=e-1-0,a=n.lastIndexOf(" ",s-1)+1,l=n.indexOf(" ",s);for(-1===l&&(l=n.length),t.lastIndex=a;r=t.exec(n);)if(r.index<=s&&t.lastIndex>=s)return{word:r[0],startColumn:1+r.index,endColumn:1+t.lastIndex};return null}(e,t,n);return t.lastIndex=0,s}(e.column,function(e){var t=Q;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}(t),this._lines[e.lineNumber-1]);return n?new B(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.getWordUntilPosition=function(e,t){var n=this.getWordAtPosition(e,t);return n?{word:this._lines[e.lineNumber-1].substring(n.startColumn-1,e.column-1),startColumn:n.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}},t.prototype.createWordIterator=function(e){var t,n=this,i={done:!1,value:""},r=0,s=0,a=[],l=function(){if(s=n._lines.length))return t=n._lines[r],a=n._wordenize(t,e),s=0,r+=1,l();i.done=!0,i.value=void 0}return i};return{next:l}},t.prototype._wordenize=function(e,t){var n,i=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,r=[];r.push(this._lines[n].substring(e.startColumn-1));for(var s=n+1;sthis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var r=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>r&&(n=r,i=!0)}return i?{lineNumber:t,column:n}:e},t}(q),we=function(e){function t(t){var n=e.call(this,t)||this;return n._models=Object.create(null),n}return xe(t,e),t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[];return Object.keys(this._models).forEach(function(n){return t.push(e._models[n])}),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new _e(m.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t}(function(){function e(e){this._foreignModuleFactory=e,this._foreignModule=null}return e.prototype.computeDiff=function(e,t,n){var i=this._getModel(e),r=this._getModel(t);if(!i||!r)return null;var s=i.getLinesContent(),a=r.getLinesContent(),l=new k(s,a,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0});return I.a.as(l.computeDiff())},e.prototype.computeMoreMinimalEdits=function(t,n){var i=this._getModel(t);if(!i)return I.a.as(n);for(var r,s=[],a=0,l=n;ae._diffLimit)s.push({range:u,text:d});else for(var m=_(c,d,!1),h=i.offsetAt(B.lift(u).getStartPosition()),f=0,p=m;f"),r}n.Namespace||(n.Namespace=Object.create(Object.prototype));var u=1,a=2,l=3;Object.defineProperties(n.Namespace,{defineWithParent:{value:s,writable:!0,enumerable:!0,configurable:!0},define:{value:function(e,n){return s(t,e,n)},writable:!0,enumerable:!0,configurable:!0},_lazy:{value:function(e){var t,n,i=u;return{setName:function(e){t=e},get:function(){switch(i){case l:return n;case u:i=a;try{r("WinJS.Namespace._lazy:"+t+",StartTM"),n=e()}finally{r("WinJS.Namespace._lazy:"+t+",StopTM"),i=u}return e=null,i=l,n;case a:throw"Illegal: reentrancy on initialization";default:throw"Illegal"}},set:function(e){switch(i){case a:throw"Illegal: reentrancy on initialization";default:i=l,n=e}},enumerable:!0,configurable:!0}},writable:!0,enumerable:!0,configurable:!0},_moduleDefine:{value:function(e,n,r){var s=[e],u=null;return n&&(u=o(t,n),s.push(u)),i(s,r,n||""),u},writable:!0,enumerable:!0,configurable:!0}})}(),function(){function t(e,t,r){return e=e||function(){},n.markSupportedForProcessing(e),t&&i(e.prototype,t),r&&i(e,r),e}e.Namespace.define("WinJS.Class",{define:t,derive:function(e,r,o,s){if(e){r=r||function(){};var u=e.prototype;return r.prototype=Object.create(u),n.markSupportedForProcessing(r),Object.defineProperty(r.prototype,"constructor",{value:r,writable:!0,configurable:!0,enumerable:!0}),o&&i(r.prototype,o),s&&i(r,s),r}return t(r,o,s)},mix:function(e){var t,n;for(e=e||function(){},t=1,n=arguments.length;t=0,s=f.indexOf("Macintosh")>=0,u=f.indexOf("Linux")>=0,l=!0,navigator.language}!function(e){e[e.Web=0]="Web",e[e.Mac=1]="Mac",e[e.Linux=2]="Linux",e[e.Windows=3]="Windows"}(i||(i={})),i.Web,a&&(s?i.Mac:o?i.Windows:u&&i.Linux);var d=o,m=l,p="object"==typeof self?self:"object"==typeof r?r:{}}).call(this,n(2),n(3))},function(e,t){var n,r,i=e.exports={};function o(){throw new Error("setTimeout has not been defined")}function s(){throw new Error("clearTimeout has not been defined")}function u(e){if(n===setTimeout)return setTimeout(e,0);if((n===o||!n)&&setTimeout)return n=setTimeout,setTimeout(e,0);try{return n(e,0)}catch(t){try{return n.call(null,e,0)}catch(t){return n.call(this,e,0)}}}!function(){try{n="function"==typeof setTimeout?setTimeout:o}catch(e){n=o}try{r="function"==typeof clearTimeout?clearTimeout:s}catch(e){r=s}}();var a,l=[],c=!1,h=-1;function f(){c&&a&&(c=!1,a.length?l=a.concat(l):h=-1,l.length&&d())}function d(){if(!c){var e=u(f);c=!0;for(var t=l.length;t;){for(a=l,l=[];++h1)for(var n=1;n=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),void 0!==n&&(n+=e.charAt(i));else{void 0===n&&(n=e.substr(0,i));var s=p[o];void 0!==s?(-1!==r&&(n+=encodeURIComponent(e.substring(r,i)),r=-1),n+=s):-1===r&&(r=i)}}return-1!==r&&(n+=encodeURIComponent(e.substring(r))),void 0!==n?n:e}function g(e){for(var t=void 0,n=0;n1&&"file"===e.scheme?"//"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,i.c&&(t=t.replace(/\\//g,"\\\\")),t}function v(e,t){var n=t?g:_,r="",i=e.scheme,o=e.authority,s=e.path,u=e.query,a=e.fragment;if(i&&(r+=i,r+=":"),(o||"file"===i)&&(r+=c,r+=c),o){var l=o.indexOf("@");if(-1!==l){var h=o.substr(0,l);o=o.substr(l+1),-1===(l=h.indexOf(":"))?r+=n(h,!1):(r+=n(h.substr(0,l),!1),r+=":",r+=n(h.substr(l+1),!1)),r+="@"}-1===(l=(o=o.toLowerCase()).indexOf(":"))?r+=n(o,!1):(r+=n(o.substr(0,l),!1),r+=o.substr(l))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(f=s.charCodeAt(1))>=65&&f<=90&&(s="/"+String.fromCharCode(f+32)+":"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var f;(f=s.charCodeAt(0))>=65&&f<=90&&(s=String.fromCharCode(f+32)+":"+s.substr(2))}r+=n(s,!0)}return u&&(r+="?",r+=n(u,!1)),a&&(r+="#",r+=t?a:_(a,!1)),r}var b=n(0),C=function(){function e(e,t){this.lineNumber=e,this.column=t}return e.prototype.equals=function(t){return e.equals(this,t)},e.equals=function(e,t){return!e&&!t||!!e&&!!t&&e.lineNumber===t.lineNumber&&e.column===t.column},e.prototype.isBefore=function(t){return e.isBefore(this,t)},e.isBefore=function(e,t){return e.lineNumbern||e===n&&t>r?(this.startLineNumber=n,this.startColumn=r,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=r)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var r,i,o,s;return n.startLineNumbert.endLineNumber?(o=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,s=t.endColumn),new e(r,i,o,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var r=t.startLineNumber,i=t.startColumn,o=t.endLineNumber,s=t.endColumn,u=n.startLineNumber,a=n.startColumn,l=n.endLineNumber,c=n.endColumn;return rl?(o=l,s=c):o===l&&(s=Math.min(s,c)),r>o?null:r===o&&i>s?null:new e(r,i,o,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new C(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new C(this.startLineNumber,this.startColumn)},e.prototype.toString=function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumbere.startLineNumber},e}(),L=function(){function e(e,t,n,r){this.originalStart=e,this.originalLength=t,this.modifiedStart=n,this.modifiedLength=r}return e.prototype.getOriginalEnd=function(){return this.originalStart+this.originalLength},e.prototype.getModifiedEnd=function(){return this.modifiedStart+this.modifiedLength},e}();function N(e){return{getLength:function(){return e.length},getElementAtIndex:function(t){return e.charCodeAt(t)}}}function E(e,t,n){return new M(N(e),N(t)).ComputeDiff(n)}var A=function(){function e(){}return e.Assert=function(e,t){if(!e)throw new Error(t)},e}(),w=function(){function e(){}return e.Copy=function(e,t,n,r,i){for(var o=0;o0||this.m_modifiedCount>0)&&this.m_changes.push(new L(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=Number.MAX_VALUE,this.m_modifiedStart=Number.MAX_VALUE},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),M=function(){function e(e,t,n){void 0===n&&(n=null),this.OriginalSequence=e,this.ModifiedSequence=t,this.ContinueProcessingPredicate=n,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e.prototype.ElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.OriginalElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.OriginalSequence.getElementAtIndex(t)},e.prototype.ModifiedElementsAreEqual=function(e,t){return this.ModifiedSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this.OriginalSequence.getLength()-1,0,this.ModifiedSequence.getLength()-1,e)},e.prototype._ComputeDiff=function(e,t,n,r,i){var o=this.ComputeDiffRecursive(e,t,n,r,[!1]);return i?this.ShiftChanges(o):o},e.prototype.ComputeDiffRecursive=function(e,t,n,r,i){for(i[0]=!1;e<=t&&n<=r&&this.ElementsAreEqual(e,n);)e++,n++;for(;t>=e&&r>=n&&this.ElementsAreEqual(t,r);)t--,r--;if(e>t||n>r){var o=void 0;return n<=r?(A.Assert(e===t+1,"originalStart should only be one more than originalEnd"),o=[new L(e,0,n,r-n+1)]):e<=t?(A.Assert(n===r+1,"modifiedStart should only be one more than modifiedEnd"),o=[new L(e,t-e+1,n,0)]):(A.Assert(e===t+1,"originalStart should only be one more than originalEnd"),A.Assert(n===r+1,"modifiedStart should only be one more than modifiedEnd"),o=[]),o}var s=[0],u=[0],a=this.ComputeRecursionPoint(e,t,n,r,s,u,i),l=s[0],c=u[0];if(null!==a)return a;if(!i[0]){var h,f=this.ComputeDiffRecursive(e,l,n,c,i);return h=i[0]?[new L(l+1,t-(l+1)+1,c+1,r-(c+1)+1)]:this.ComputeDiffRecursive(l+1,t,c+1,r,i),this.ConcatenateChanges(f,h)}return[new L(e,t-e+1,n,r-n+1)]},e.prototype.WALKTRACE=function(e,t,n,r,i,o,s,u,a,l,c,h,f,d,m,p,_,g){var y,v,b=null,C=new P,S=t,N=n,E=f[0]-p[0]-r,A=Number.MIN_VALUE,w=this.m_forwardHistory.length-1;do{(v=E+e)===S||v=0&&(e=(a=this.m_forwardHistory[w])[0],S=1,N=a.length-1)}while(--w>=-1);if(y=C.getReverseChanges(),g[0]){var M=f[0]+1,x=p[0]+1;if(null!==y&&y.length>0){var k=y[y.length-1];M=Math.max(M,k.getOriginalEnd()),x=Math.max(x,k.getModifiedEnd())}b=[new L(M,h-M+1,x,m-x+1)]}else{C=new P,S=o,N=s,E=f[0]-p[0]-u,A=Number.MAX_VALUE,w=_?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{(v=E+i)===S||v=l[v+1]?(d=(c=l[v+1]-1)-E-u,c>A&&C.MarkNextChange(),A=c+1,C.AddOriginalElement(c+1,d+1),E=v+1-i):(d=(c=l[v-1])-E-u,c>A&&C.MarkNextChange(),A=c,C.AddModifiedElement(c+1,d+1),E=v-1-i),w>=0&&(i=(l=this.m_reverseHistory[w])[0],S=1,N=l.length-1)}while(--w>=-1);b=C.getChanges()}return this.ConcatenateChanges(y,b)},e.prototype.ComputeRecursionPoint=function(e,t,n,r,i,o,s){var u,a,l,c=0,h=0,f=0,d=0;e--,n--,i[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var m,p,_=t-e+(r-n),g=_+1,y=new Array(g),v=new Array(g),b=r-n,C=t-e,S=e-n,N=t-r,E=(C-b)%2==0;for(y[b]=e,v[C]=t,s[0]=!1,l=1;l<=_/2+1;l++){var A=0,P=0;for(c=this.ClipDiagonalBound(b-l,l,b,g),h=this.ClipDiagonalBound(b+l,l,b,g),m=c;m<=h;m+=2){for(a=(u=m===c||mA+P&&(A=u,P=a),!E&&Math.abs(m-C)<=l-1&&u>=v[m])return i[0]=u,o[0]=a,p<=v[m]&&l<=1448?this.WALKTRACE(b,c,h,S,C,f,d,N,y,v,u,t,i,a,r,o,E,s):null}var M=(A-e+(P-n)-l)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(A,this.OriginalSequence,M))return s[0]=!0,i[0]=A,o[0]=P,M>0&&l<=1448?this.WALKTRACE(b,c,h,S,C,f,d,N,y,v,u,t,i,a,r,o,E,s):[new L(++e,t-e+1,++n,r-n+1)];for(f=this.ClipDiagonalBound(C-l,l,C,g),d=this.ClipDiagonalBound(C+l,l,C,g),m=f;m<=d;m+=2){for(a=(u=m===f||m=v[m+1]?v[m+1]-1:v[m-1])-(m-C)-N,p=u;u>e&&a>n&&this.ElementsAreEqual(u,a);)u--,a--;if(v[m]=u,E&&Math.abs(m-b)<=l&&u<=y[m])return i[0]=u,o[0]=a,p>=y[m]&&l<=1448?this.WALKTRACE(b,c,h,S,C,f,d,N,y,v,u,t,i,a,r,o,E,s):null}if(l<=1447){var x=new Array(h-c+2);x[0]=b-c+1,w.Copy(y,c,x,1,h-c+1),this.m_forwardHistory.push(x),(x=new Array(d-f+2))[0]=C-f+1,w.Copy(v,f,x,1,d-f+1),this.m_reverseHistory.push(x)}}return this.WALKTRACE(b,c,h,S,C,f,d,N,y,v,u,t,i,a,r,o,E,s)},e.prototype.ShiftChanges=function(e){var t;do{t=!1;for(var n=0;n0,u=r.modifiedLength>0;r.originalStart+r.originalLength=0;n--){if(r=e[n],i=0,o=0,n>0){var c=e[n-1];c.originalLength>0&&(i=c.originalStart+c.originalLength),c.modifiedLength>0&&(o=c.modifiedStart+c.modifiedLength)}s=r.originalLength>0,u=r.modifiedLength>0;for(var h=0,f=this._boundaryScore(r.originalStart,r.originalLength,r.modifiedStart,r.modifiedLength),d=1;;d++){var m=r.originalStart-d,p=r.modifiedStart-d;if(mf&&(f=_,h=d)}r.originalStart-=h,r.modifiedStart-=h}return e},e.prototype._OriginalIsBoundary=function(e){if(e<=0||e>=this.OriginalSequence.getLength()-1)return!0;var t=this.OriginalSequence.getElementAtIndex(e);return"string"==typeof t&&/^\\s*$/.test(t)},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){if(e<=0||e>=this.ModifiedSequence.getLength()-1)return!0;var t=this.ModifiedSequence.getElementAtIndex(e);return"string"==typeof t&&/^\\s*$/.test(t)},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,r){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,r)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[],r=null;return 0===e.length||0===t.length?t.length>0?t:e:this.ChangesOverlap(e[e.length-1],t[0],n)?(r=new Array(e.length+t.length-1),w.Copy(e,0,r,0,e.length-1),r[e.length-1]=n[0],w.Copy(t,1,r,e.length,t.length-1),r):(r=new Array(e.length+t.length),w.Copy(e,0,r,0,e.length),w.Copy(t,0,r,e.length,t.length),r)},e.prototype.ChangesOverlap=function(e,t,n){if(A.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),A.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var r=e.originalStart,i=e.originalLength,o=e.modifiedStart,s=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(i=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(s=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new L(r,i,o,s),!0}return n[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,r){if(e>=0&&e=0;n--){var r=e.charCodeAt(n);if(32!==r&&9!==r)return n}return-1}(e);return-1===n?t:n+2},e.prototype.getCharSequence=function(e,t,n){for(var r=[],i=[],o=[],s=0,u=t;u<=n;u++)for(var a=this._lines[u],l=e?this._startColumns[u]:1,c=e?this._endColumns[u]:a.length+1,h=l;h1&&m>1&&h.charCodeAt(d-2)===f.charCodeAt(m-2);)d--,m--;(d>1||m>1)&&this._pushTrimWhitespaceCharChange(i,o+1,1,d,s+1,1,m);for(var p=O._getLastNonBlankColumn(h,1),_=O._getLastNonBlankColumn(f,1),g=h.length+1,y=f.length+1;p255?255:0|e}function V(e){return e<0?0:e>4294967295?4294967295:0|e}var F=function(e,t){this.index=e,this.remainder=t},q=function(){function e(e){this.values=e,this.prefixSum=new Uint32Array(e.length),this.prefixSumValidIndex=new Int32Array(1),this.prefixSumValidIndex[0]=-1}return e.prototype.getCount=function(){return this.values.length},e.prototype.insertValues=function(e,t){e=V(e);var n=this.values,r=this.prefixSum,i=t.length;return 0!==i&&(this.values=new Uint32Array(n.length+i),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e),e+i),this.values.set(t,e),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=V(e),t=V(t),this.values[e]!==t&&(this.values[e]=t,e-1=n.length)return!1;var i=n.length-e;return t>=i&&(t=i),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(r.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=V(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t,n,r,i=0,o=this.values.length-1;i<=o;)if(t=i+(o-i)/2|0,e<(r=(n=this.prefixSum[t])-this.values[t]))o=t-1;else{if(!(e>=n))break;i=t+1}return new F(t,e-r)},e}(),W=(function(){function e(e){this._cacheAccumulatedValueStart=0,this._cache=null,this._actual=new q(e),this._bustCache()}e.prototype._bustCache=function(){this._cacheAccumulatedValueStart=0,this._cache=null},e.prototype.insertValues=function(e,t){this._actual.insertValues(e,t)&&this._bustCache()},e.prototype.changeValue=function(e,t){this._actual.changeValue(e,t)&&this._bustCache()},e.prototype.removeValues=function(e,t){this._actual.removeValues(e,t)&&this._bustCache()},e.prototype.getTotalValue=function(){return this._actual.getTotalValue()},e.prototype.getAccumulatedValue=function(e){return this._actual.getAccumulatedValue(e)},e.prototype.getIndexOf=function(e){if(e=Math.floor(e),null!==this._cache){var t=e-this._cacheAccumulatedValueStart;if(t>=0&&t=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}(),j=(function(){function e(){this._actual=new Y(0)}e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)}}(),function(){function e(e){for(var t=0,n=0,r=0,i=e.length;rt&&(t=u),s>n&&(n=s),a>n&&(n=a)}var l=new R(++n,++t,0);for(r=0,i=e.length;r=this._maxCharCode?0:this._states.get(e,t)},e}()),B=null,H=null,J=function(){function e(){}return e._createLink=function(e,t,n,r,i){var o=i-1;do{var s=t.charCodeAt(o);if(2!==e.get(s))break;o--}while(o>r);if(r>0){var u=t.charCodeAt(r-1),a=t.charCodeAt(o);(40===u&&41===a||91===u&&93===a||123===u&&125===a)&&o--}return{range:{startLineNumber:n,startColumn:r+1,endLineNumber:n,endColumn:o+2},url:t.substring(r,o+1)}},e.computeLinks=function(t){for(var n=(null===B&&(B=new j([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),B),r=function(){if(null===H){H=new Y(0);for(var e=0;e<" \\t<>\'\\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".length;e++)H.set(" \\t<>\'\\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".charCodeAt(e),1);for(e=0;e<".,;".length;e++)H.set(".,;".charCodeAt(e),2)}return H}(),i=[],o=1,s=t.getLineCount();o<=s;o++){for(var u=t.getLineContent(o),a=u.length,l=0,c=0,h=0,f=1,d=!1,m=!1,p=!1;l=0?((r+=n?1:-1)<0?r=e.length-1:r%=e.length,e[r]):null},e.INSTANCE=new e,e}(),z="`~!@#$%^&*()-=+[{]}\\\\|;:\'\\",.<>/?",G=function(e){void 0===e&&(e="");for(var t="(-?\\\\d*\\\\.\\\\d\\\\w*)|([^",n=0;n=0||(t+="\\\\"+z[n]);return t+="\\\\s]+)",new RegExp(t,"g")}(),X={};b.a.addEventListener("error",function(e){var t=e.detail,n=t.id;t.parent?t.handler&&X&&delete X[n]:(X[n]=t,1===Object.keys(X).length&&setTimeout(function(){var e=X;X={},Object.keys(e).forEach(function(t){var n=e[t];n.exception?Z(n.exception):n.error&&Z(n.error),console.log("WARNING: Promise with no error callback:"+n.id),console.log(n),n.exception&&console.log(n.exception.stack)})},0))});var $=new(function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(function(){if(e.stack)throw new Error(e.message+"\\n\\n"+e.stack);throw e},0)}}return e.prototype.emit=function(e){this.listeners.forEach(function(t){t(e)})},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}());function Z(e){(function(e){return e instanceof Error&&e.name===te&&e.message===te})(e)||$.onUnexpectedError(e)}function ee(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e}var te="Canceled";var ne,re=function(){function e(){this._toDispose=[]}return Object.defineProperty(e.prototype,"toDispose",{get:function(){return this._toDispose},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._toDispose=function e(t){for(var n=[],r=1;r0;){var r=this._deliveryQueue.shift(),i=r[0],o=r[1];try{"function"==typeof i?i.call(void 0,o):i[0].call(i[1],o)}catch(n){Z(n)}}}},e.prototype.dispose=function(){this._listeners&&(this._listeners=void 0),this._deliveryQueue&&(this._deliveryQueue.length=0),this._disposed=!0},e._noop=function(){},e}();!function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new se({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}Object.defineProperty(e.prototype,"event",{get:function(){return this.emitter.event},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};return this.events.push(n),this.hasListeners&&this.hook(n),function(e){return{dispose:function(){e()}}}(function(e){var t,n=this,r=!1;return function(){return r?t:(r=!0,t=e.apply(n,arguments))}}(function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)}))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,this.events.forEach(function(t){return e.hook(t)})},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach(function(t){return e.unhook(t)})},e.prototype.hook=function(e){var t=this;e.listener=e.event(function(e){return t.emitter.fire(e)})},e.prototype.unhook=function(e){e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()}}(),function(){function e(){this.buffers=[]}e.prototype.wrapEvent=function(e){var t=this;return function(n,r,i){return e(function(e){var i=t.buffers[t.buffers.length-1];i?i.push(function(){return n.call(r,e)}):n.call(r,e)},void 0,i)}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t),e(),this.buffers.pop(),t.forEach(function(e){return e()})}}(),function(){function e(e){this._event=e}Object.defineProperty(e.prototype,"event",{get:function(){return this._event},enumerable:!0,configurable:!0}),e.prototype.map=function(t){return new e(function(e,t){return function(n,r,i){return void 0===r&&(r=null),e(function(e){return n.call(r,t(e))},null,i)}}(this._event,t))},e.prototype.filter=function(t){return new e(function(e,t){return function(n,r,i){return void 0===r&&(r=null),e(function(e){return t(e)&&n.call(r,e)},null,i)}}(this._event,t))},e.prototype.on=function(e,t,n){return this._event(e,t,n)}}(),function(){function e(){this.emitter=new se,this.event=this.emitter.event,this.disposable=re.None}Object.defineProperty(e.prototype,"input",{set:function(e){this.disposable.dispose(),this.disposable=e(this.emitter.fire,this.emitter)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.disposable.dispose(),this.emitter.dispose()}}();var ue,ae=function(){function e(){this._keyCodeToStr=[],this._strToKeyCode=Object.create(null)}return e.prototype.define=function(e,t){this._keyCodeToStr[e]=t,this._strToKeyCode[t.toLowerCase()]=e},e.prototype.keyCodeToStr=function(e){return this._keyCodeToStr[e]},e.prototype.strToKeyCode=function(e){return this._strToKeyCode[e.toLowerCase()]||0},e}(),le=new ae,ce=new ae,he=new ae;!function(){function e(e,t,n,r){void 0===n&&(n=t),void 0===r&&(r=n),le.define(e,t),ce.define(e,n),he.define(e,r)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"),e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\\\","\\\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"\'","\'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"),e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return le.keyCodeToStr(e)},e.fromString=function(e){return le.strToKeyCode(e)},e.toUserSettingsUS=function(e){return ce.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return he.keyCodeToStr(e)},e.fromUserSettings=function(e){return ce.strToKeyCode(e)||he.strToKeyCode(e)}}(ue||(ue={})),function(){function e(e,t,n,r,i){this.type=1,this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=r,this.keyCode=i}e.prototype.equals=function(e){return 1===e.type&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode}}();var fe,de=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(fe||(fe={}));var me,pe=function(e){function t(t,n,r,i){var o=e.call(this,t,n,r,i)||this;return o.selectionStartLineNumber=t,o.selectionStartColumn=n,o.positionLineNumber=r,o.positionColumn=i,o}return de(t,e),t.prototype.clone=function(){return new t(this.selectionStartLineNumber,this.selectionStartColumn,this.positionLineNumber,this.positionColumn)},t.prototype.toString=function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?fe.LTR:fe.RTL},t.prototype.setEndPosition=function(e,n){return this.getDirection()===fe.LTR?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new C(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return this.getDirection()===fe.LTR?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,r=e.length;n>>0)>>>0}(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();!function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(Se||(Se={}));var Ne=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),Ee=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Ne(t,e),Object.defineProperty(t.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"eol",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){return this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=function(e,t,n,r){t.lastIndex=0;var i=t.exec(n);if(!i)return null;var o=i[0].indexOf(" ")>=0?function(e,t,n,r){var i,o=e-1-0;for(t.lastIndex=0;i=t.exec(n);){if(i.index>o)return null;if(t.lastIndex>=o)return{word:i[0],startColumn:1+i.index,endColumn:1+t.lastIndex}}return null}(e,t,n):function(e,t,n,r){var i,o=e-1-0,s=n.lastIndexOf(" ",o-1)+1,u=n.indexOf(" ",o);for(-1===u&&(u=n.length),t.lastIndex=s;i=t.exec(n);)if(i.index<=o&&t.lastIndex>=o)return{word:i[0],startColumn:1+i.index,endColumn:1+t.lastIndex};return null}(e,t,n);return t.lastIndex=0,o}(e.column,function(e){var t=G;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}(t),this._lines[e.lineNumber-1]);return n?new S(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.getWordUntilPosition=function(e,t){var n=this.getWordAtPosition(e,t);return n?{word:this._lines[e.lineNumber-1].substring(n.startColumn-1,e.column-1),startColumn:n.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}},t.prototype.createWordIterator=function(e){var t,n=this,r={done:!1,value:""},i=0,o=0,s=[],u=function(){if(o=n._lines.length))return t=n._lines[i],s=n._wordenize(t,e),o=0,i+=1,u();r.done=!0,r.value=void 0}return r};return{next:u}},t.prototype._wordenize=function(e,t){var n,r=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)r.push({start:n.index,end:n.index+n[0].length});return r},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,r=e.endLineNumber-1,i=[];i.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;othis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,r=!0;else{var i=this._lines[t-1].length+1;n<1?(n=1,r=!0):n>i&&(n=i,r=!0)}return r?{lineNumber:t,column:n}:e},t}(W),Ae=function(e){function t(t){var n=e.call(this,t)||this;return n._models=Object.create(null),n}return Ne(t,e),t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[];return Object.keys(this._models).forEach(function(n){return t.push(e._models[n])}),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new Ee(d.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t}(function(){function e(e){this._foreignModuleFactory=e,this._foreignModule=null}return e.prototype.computeDiff=function(e,t,n){var r=this._getModel(e),i=this._getModel(t);if(!r||!i)return null;var o=r.getLinesContent(),s=i.getLinesContent(),u=new U(o,s,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0});return b.a.as(u.computeDiff())},e.prototype.computeMoreMinimalEdits=function(t,n){var r=this._getModel(t);if(!r)return b.a.as(n);for(var i,o=[],s=0,u=n;se._diffLimit)o.push({range:l,text:c});else for(var d=E(f,c,!1),m=r.offsetAt(S.lift(l).getStartPosition()),p=0,_=d;p<_.length;p++){var g=_[p],y=r.positionAt(m+g.originalStart),v=r.positionAt(m+g.originalStart+g.originalLength),C={text:c.substr(g.modifiedStart,g.modifiedLength),range:{startLineNumber:y.lineNumber,startColumn:y.column,endLineNumber:v.lineNumber,endColumn:v.column}};r.getValueInRange(C.range)!==C.text&&o.push(C)}}}return"number"==typeof i&&o.push({eol:i,text:void 0,range:void 0}),b.a.as(o)},e.prototype.computeLinks=function(e){var t=this._getModel(e);return t?b.a.as(function(e){return e&&"function"==typeof e.getLineCount&&"function"==typeof e.getLineContent?J.computeLinks(e):[]}(t)):null},e.prototype.textualSuggest=function(t,n,r,i){var o=this._getModel(t);if(o){var s=[],u=new RegExp(r,i),a=o.getWordUntilPosition(n,u).word,l=Object.create(null);l[a]=!0;for(var c=o.createWordIterator(u),h=c.next();!h.done&&s.length<=e._suggestionsLimit;h=c.next()){var f=h.value;l[f]||(l[f]=!0,isNaN(Number(f))&&s.push({type:"text",label:f,insertText:f,noAutoAccept:!0,overwriteBefore:a.length}))}return b.a.as({suggestions:s})}},e.prototype.navigateValueSet=function(e,t,n,r,i){var o=this._getModel(e);if(!o)return null;var s=new RegExp(r,i);t.startColumn===t.endColumn&&(t={startLineNumber:t.startLineNumber,startColumn:t.startColumn,endLineNumber:t.endLineNumber,endColumn:t.endColumn+1});var u=o.getValueInRange(t),a=o.getWordAtPosition({lineNumber:t.startLineNumber,column:t.startColumn},s),l=null;null!==a&&(l=o.getValueInRange(a));var c=Q.INSTANCE.navigateValueSet(t,u,a,l,n);return b.a.as(c)},e.prototype.loadForeignModule=function(e,t){var n=this,r={getMirrorModels:function(){return n._getModels()}};if(this._foreignModuleFactory){this._foreignModule=this._foreignModuleFactory(r,t);var i=[];for(var o in this._foreignModule)"function"==typeof this._foreignModule[o]&&i.push(o);return b.a.as(i)}return b.a.wrapError(new Error("Unexpected usage"))},e.prototype.fmr=function(e,t){if(!this._foreignModule||"function"!=typeof this._foreignModule[e])return b.a.wrapError(new Error("Missing requestHandler or method: "+e));try{return b.a.as(this._foreignModule[e].apply(this._foreignModule,t))}catch(e){return b.a.wrapError(e)}},e._diffLimit=1e4,e._suggestionsLimit=1e4,e}());"function"==typeof importScripts&&(i.a.monaco={editor:void 0,languages:void 0,CancellationTokenSource:be,Emitter:se,KeyCode:Se,KeyMod:Le,Position:C,Range:S,Selection:pe,SelectionDirection:fe,MarkerSeverity:ye,MarkerTag:ge,Promise:b.a,Uri:d,Token:Ce});var we=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}();!function(){function e(e){this.defaultDelay=e,this.timeout=null,this.completionPromise=null,this.onSuccess=null,this.task=null}e.prototype.trigger=function(e,t){var n=this;return void 0===t&&(t=this.defaultDelay),this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new b.a(function(e){n.onSuccess=e},function(){}).then(function(){n.completionPromise=null,n.onSuccess=null;var e=n.task;return n.task=null,e()})),this.timeout=setTimeout(function(){n.timeout=null,n.onSuccess(null)},t),this.completionPromise},e.prototype.cancel=function(){this.cancelTimeout(),this.completionPromise&&(this.completionPromise.cancel(),this.completionPromise=null)},e.prototype.cancelTimeout=function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)}}();var Pe=function(e){function t(t){var n,r,i,o;return n=e.call(this,function(e,t,n){r=e,i=t,o=n},function(){i(function(){var e=new Error(te);return e.name=e.message,e}())})||this,t.then(r,i,o),n}return we(t,e),t}(b.a);(function(e){function t(){var t=e.call(this)||this;return t._token=-1,t}we(t,e),t.prototype.dispose=function(){this.cancel(),e.prototype.dispose.call(this)},t.prototype.cancel=function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)},t.prototype.cancelAndSet=function(e,t){var n=this;this.cancel(),this._token=setTimeout(function(){n._token=-1,e()},t)},t.prototype.setIfNotSet=function(e,t){var n=this;-1===this._token&&(this._token=setTimeout(function(){n._token=-1,e()},t))}})(re),function(e){function t(){var t=e.call(this)||this;return t._token=-1,t}we(t,e),t.prototype.dispose=function(){this.cancel(),e.prototype.dispose.call(this)},t.prototype.cancel=function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)},t.prototype.cancelAndSet=function(e,t){this.cancel(),this._token=setInterval(function(){e()},t)}}(re),function(){function e(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}e.prototype.dispose=function(){this.cancel(),this.runner=null},e.prototype.cancel=function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)},e.prototype.schedule=function(e){void 0===e&&(e=this.timeout),this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)},e.prototype.isScheduled=function(){return-1!==this.timeoutToken},e.prototype.onTimeout=function(){this.timeoutToken=-1,this.runner&&this.doRun()},e.prototype.doRun=function(){this.runner()}}();var Me=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}}(),xe="$initialize",ke=function(){function e(e){this._workerId=-1,this._handler=e,this._lastSentReq=0,this._pendingReplies=Object.create(null)}return e.prototype.setWorkerId=function(e){this._workerId=e},e.prototype.sendMessage=function(e,t){var n=String(++this._lastSentReq),r={c:null,e:null},i=new b.a(function(e,t){r.c=e,r.e=t},function(){});return this._pendingReplies[n]=r,this._send({vsWorker:this._workerId,req:n,method:e,args:t}),i},e.prototype.handleMessage=function(e){var t;try{t=JSON.parse(e)}catch(e){}t&&t.vsWorker&&(-1!==this._workerId&&t.vsWorker!==this._workerId||this._handleMessage(t))},e.prototype._handleMessage=function(e){var t=this;if(e.seq){var n=e;if(!this._pendingReplies[n.seq])return void console.warn("Got reply to unknown seq");var r=this._pendingReplies[n.seq];if(delete this._pendingReplies[n.seq],n.err){var i=n.err;return n.err.$isError&&((i=new Error).name=n.err.name,i.message=n.err.message,i.stack=n.err.stack),void r.e(i)}r.c(n.res)}else{var o=e,s=o.req;this._handler.handleMessage(o.method,o.args).then(function(e){t._send({vsWorker:t._workerId,seq:s,res:e,err:void 0})},function(e){e.detail instanceof Error&&(e.detail=ee(e.detail)),t._send({vsWorker:t._workerId,seq:s,res:void 0,err:ee(e)})})}},e.prototype._send=function(e){var t=JSON.stringify(e);this._handler.sendMessage(t)},e}(),Oe=(function(e){function t(t,n){var r=e.call(this)||this,i=null,o=null;r._worker=r._register(t.create("vs/base/common/worker/simpleWorker",function(e){r._protocol.handleMessage(e)},function(e){o(e)})),r._protocol=new ke({sendMessage:function(e){r._worker.postMessage(e)},handleMessage:function(e,t){return b.a.as(null)}}),r._protocol.setWorkerId(r._worker.getId());var s=null;void 0!==self.require&&"function"==typeof self.require.getConfig?s=self.require.getConfig():void 0!==self.requirejs&&(s=self.requirejs.s.contexts._.config),r._lazyProxy=new b.a(function(e,t){i=e,o=t},function(){}),r._onModuleLoaded=r._protocol.sendMessage(xe,[r._worker.getId(),n,s]),r._onModuleLoaded.then(function(e){for(var t={},n=0;n12e4&&this._saveStateAndStopWorker()},e.prototype._getClient=function(){var e=this;return this._lastUsedTime=Date.now(),this._client||(this._worker=monaco.editor.createWebWorker({moduleId:"vs/language/kusto/kustoWorker",label:"kusto",createData:{languageSettings:this._defaults.languageSettings,languageId:"kusto"}}),this._client=this._worker.getProxy().then(function(t){return e._storedState?t.setSchema(e._storedState).then(function(){return t}):t})),this._client},e.prototype.getLanguageServiceWorker=function(){for(var e,t=this,i=[],r=0;r0&&(r.arguments=n),r},e.is=function(e){var t=e;return M.defined(t)&&M.string(t.title)&&M.string(t.command)}}(u||(u={})),function(e){e.replace=function(e,t){return{range:e,newText:t}},e.insert=function(e,t){return{range:{start:e,end:e},newText:t}},e.del=function(e){return{range:e,newText:""}}}(d||(d={})),function(e){e.create=function(e,t){return{textDocument:e,edits:t}},e.is=function(e){var t=e;return M.defined(t)&&h.is(t.textDocument)&&Array.isArray(t.edits)}}(c||(c={})),(g||(g={})).is=function(e){var t=e;return t&&(void 0!==t.changes||void 0!==t.documentChanges)&&(void 0===t.documentChanges||M.typedArray(t.documentChanges,c.is))};var m,h,p,f,y,S,b,I,C,_,v,T,x,w,B,D,A,R,E,K,N=function(){function e(e){this.edits=e}return e.prototype.insert=function(e,t){this.edits.push(d.insert(e,t))},e.prototype.replace=function(e,t){this.edits.push(d.replace(e,t))},e.prototype.delete=function(e){this.edits.push(d.del(e))},e.prototype.add=function(e){this.edits.push(e)},e.prototype.all=function(){return this.edits},e.prototype.clear=function(){this.edits.splice(0,this.edits.length)},e}(),P=function(){function e(e){var t=this;this._textEditChanges=Object.create(null),e&&(this._workspaceEdit=e,e.documentChanges?e.documentChanges.forEach(function(e){var n=new N(e.edits);t._textEditChanges[e.textDocument.uri]=n}):e.changes&&Object.keys(e.changes).forEach(function(n){var i=new N(e.changes[n]);t._textEditChanges[n]=i}))}return Object.defineProperty(e.prototype,"edit",{get:function(){return this._workspaceEdit},enumerable:!0,configurable:!0}),e.prototype.getTextEditChange=function(e){if(h.is(e)){if(this._workspaceEdit||(this._workspaceEdit={documentChanges:[]}),!this._workspaceEdit.documentChanges)throw new Error("Workspace edit is not configured for versioned document changes.");var t=e;if(!(i=this._textEditChanges[t.uri])){var n={textDocument:t,edits:r=[]};this._workspaceEdit.documentChanges.push(n),i=new N(r),this._textEditChanges[t.uri]=i}return i}if(this._workspaceEdit||(this._workspaceEdit={changes:Object.create(null)}),!this._workspaceEdit.changes)throw new Error("Workspace edit is not configured for normal text edit changes.");var i;if(!(i=this._textEditChanges[e])){var r=[];this._workspaceEdit.changes[e]=r,i=new N(r),this._textEditChanges[e]=i}return i},e}();!function(e){e.create=function(e){return{uri:e}},e.is=function(e){var t=e;return M.defined(t)&&M.string(t.uri)}}(m||(m={})),function(e){e.create=function(e,t){return{uri:e,version:t}},e.is=function(e){var t=e;return M.defined(t)&&M.string(t.uri)&&M.number(t.version)}}(h||(h={})),function(e){e.create=function(e,t,n,i){return{uri:e,languageId:t,version:n,text:i}},e.is=function(e){var t=e;return M.defined(t)&&M.string(t.uri)&&M.string(t.languageId)&&M.number(t.version)&&M.string(t.text)}}(p||(p={})),function(e){e.PlainText="plaintext",e.Markdown="markdown"}(f||(f={})),function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25}(y||(y={})),function(e){e.PlainText=1,e.Snippet=2}(S||(S={})),(b||(b={})).create=function(e){return{label:e}},(I||(I={})).create=function(e,t){return{items:e||[],isIncomplete:!!t}},(C||(C={})).fromPlainText=function(e){return e.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")},(_||(_={})).create=function(e,t){return t?{label:e,documentation:t}:{label:e}},(v||(v={})).create=function(e,t){for(var n=[],i=2;i=0;o--){var s=i[o],a=e.offsetAt(s.range.start),l=e.offsetAt(s.range.end);if(!(l<=r))throw new Error("Ovelapping edit");n=n.substring(0,a)+s.newText+n.substring(l,n.length),r=a}return n}}($||($={})),function(e){e.Manual=1,e.AfterDelay=2,e.FocusOut=3}(k||(k={}));var M,F=function(){function e(e,t,n,i){this._uri=e,this._languageId=t,this._version=n,this._content=i,this._lineOffsets=null}return Object.defineProperty(e.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"languageId",{get:function(){return this._languageId},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"version",{get:function(){return this._version},enumerable:!0,configurable:!0}),e.prototype.getText=function(e){if(e){var t=this.offsetAt(e.start),n=this.offsetAt(e.end);return this._content.substring(t,n)}return this._content},e.prototype.update=function(e,t){this._content=e.text,this._version=t,this._lineOffsets=null},e.prototype.getLineOffsets=function(){if(null===this._lineOffsets){for(var e=[],t=this._content,n=!0,i=0;i0&&e.push(t.length),this._lineOffsets=e}return this._lineOffsets},e.prototype.positionAt=function(e){e=Math.max(Math.min(e,this._content.length),0);var t=this.getLineOffsets(),n=0,r=t.length;if(0===r)return i.create(0,e);for(;ne?r=o:n=o+1}var s=n-1;return i.create(s,e-t[s])},e.prototype.offsetAt=function(e){var t=this.getLineOffsets();if(e.line>=t.length)return this._content.length;if(e.line<0)return 0;var n=t[e.line],i=e.line+1=t||n<0||c&&e-u>=o}function I(){var e=p();if(b(e))return C(e);a=setTimeout(I,function(e){var n=t-(e-l);return c?h(n,o-(e-u)):n}(e))}function C(e){return a=void 0,g&&i?S(e):(i=r=void 0,s)}function _(){var e=p(),n=b(e);if(i=arguments,r=this,l=e,n){if(void 0===a)return function(e){return u=e,a=setTimeout(I,t),d?S(e):s}(l);if(c)return a=setTimeout(I,t),S(l)}return void 0===a&&(a=setTimeout(I,t)),s}return t=y(t)||0,f(n)&&(d=!!n.leading,o=(c="maxWait"in n)?m(y(n.maxWait)||0,t):o,g="trailing"in n?!!n.trailing:g),_.cancel=function(){void 0!==a&&clearTimeout(a),u=0,i=l=r=a=void 0},_.flush=function(){return void 0===a?s:C(p())},_}}).call(this,n(4))},function(e,t,n){ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Released under the MIT license + * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md + *-----------------------------------------------------------*/ +Object.defineProperty(t,"__esModule",{value:!0});var i,r=n(10),o=function(){function e(){}return e.prototype.clone=function(){return new e},e.prototype.equals=function(e){return!0},e}();!function(e){e[e.TableToken=2]="TableToken",e[e.TableColumnToken=4]="TableColumnToken",e[e.OperatorToken=8]="OperatorToken",e[e.SubOperatorToken=16]="SubOperatorToken",e[e.CalculatedColumnToken=32]="CalculatedColumnToken",e[e.StringLiteralToken=64]="StringLiteralToken",e[e.FunctionNameToken=128]="FunctionNameToken",e[e.UnknownToken=256]="UnknownToken",e[e.CommentToken=512]="CommentToken",e[e.PlainTextToken=1024]="PlainTextToken",e[e.DataTypeToken=2048]="DataTypeToken",e[e.ControlCommandToken=4096]="ControlCommandToken",e[e.CommandPartToken=8192]="CommandPartToken",e[e.QueryParametersToken=16384]="QueryParametersToken",e[e.CslCommandToken=32768]="CslCommandToken",e[e.LetVariablesToken=65536]="LetVariablesToken",e[e.PluginToken=131072]="PluginToken",e[e.BracketRangeToken=262144]="BracketRangeToken",e[e.ClientDirectiveToken=524288]="ClientDirectiveToken"}(i||(i={}));var s,a=((s={})[i.TableToken]="variable.parameter",s[i.TableColumnToken]="variable",s[i.OperatorToken]="operator.sql",s[i.SubOperatorToken]="operator.scss",s[i.CalculatedColumnToken]="variable.predefined",s[i.StringLiteralToken]="string",s[i.FunctionNameToken]="string.key.json",s[i.UnknownToken]="",s[i.CommentToken]="comment",s[i.PlainTextToken]="",s[i.DataTypeToken]="type",s[i.ControlCommandToken]="tag",s[i.CommandPartToken]="tag",s[i.QueryParametersToken]="annotation",s[i.CslCommandToken]="keyword",s[i.LetVariablesToken]="number",s[i.PluginToken]="keyword",s[i.BracketRangeToken]="annotation",s[i.ClientDirectiveToken]="annotation",s);t.createTokenizationSupport=function(){var e=r.getKustoTokenizer();return{getInitialState:function(){return new o},tokenize:function(t,n){return{tokens:e.tokenize(t,n).map(function(e){return{scopes:a[e.TokenKind],startIndex:e.AbsoluteStart}}),endState:n}}}}},function(e,t){ +/*!----------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Released under the MIT license + * https://github.com/Azure/monaco-kusto/blob/master/LICENSE.md + *-----------------------------------------------------------*/ +Object.defineProperty(t,"__esModule",{value:!0});var n={"System.SByte":"bool","System.Byte":"uint8","System.Int16":"int16","System.UInt16":"uint16","System.Int32":"int","System.UInt32":"uint","System.Int64":"long","System.UInt64":"ulong","System.String":"string","System.Single":"float","System.Double":"real","System.DateTime":"datetime","System.TimeSpan":"timespan","System.Guid":"guid","System.Boolean":"bool","Newtonsoft.Json.Linq.JArray":"dynamic","Newtonsoft.Json.Linq.JObject":"dynamic","Newtonsoft.Json.Linq.JToken":"dynamic","System.Object":"dynamic"};t.getCslTypeNameFromClrType=function(e){return n[e]||e},t.getCallName=function(e){return e.name+"("+e.inputParameters.map(function(e){return"{"+e.name+"}"}).join(",")+")"},t.getExpression=function(e){return"let "+e.name+" = "+t.getInputParametersAsCslString(e.inputParameters)+" "+e.body},t.getInputParametersAsCslString=function(e){return"("+e.map(function(e){return i(e)}).join(",")+")"};var i=function(e){if(e.columns&&e.columns.length>0){var n=e.columns.map(function(e){return e.name+":"+(e.cslType||t.getCslTypeNameFromClrType(e.type))}).join(",");return e.name+":"+(""===n?"*":n)}return e.name+":"+(e.cslType||t.getCslTypeNameFromClrType(e.type))}},function(e,t,n){var i;e.exports=function e(t,n,r){function o(a,l){if(!n[a]){if(!t[a]){if(!l&&("function"==typeof i&&i))return i(a,!0);if(s)return s(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var d=n[a]={exports:{}};t[a][0].call(d.exports,function(e){return o(t[a][1][e]||e)},d,d.exports,e,t,n,r)}return n[a].exports}for(var s="function"==typeof i&&i,a=0;a + * Steven Levithan (c) 2012-present MIT License + */ +n.default=function(e){var t="xregexp",n=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,i=e.union([/\({{([\w$]+)}}\)|{{([\w$]+)}}/,n],"g",{conjunction:"or"});function r(e){var t=/^(?:\(\?:\))*\^/,n=/\$(?:\(\?:\))*$/;return t.test(e)&&n.test(e)&&n.test(e.replace(/\\[\s\S]/g,""))?e.replace(t,"").replace(n,""):e}function o(n,i){var r=i?"x":"";return e.isRegExp(n)?n[t]&&n[t].captureNames?n:e(n.source,r):e(n,r)}function s(t){return t instanceof RegExp?t:e.escape(t)}function a(e,t,n){return e["subpattern"+n]=t,e}function l(e,t,n){return e+(t1?i-1:0),o=1;o"):l="(?:",f=p,""+l+c[s].pattern.replace(n,function(e,t,n){if(t){if(a=c[s].names[p-f],++p,a)return"(?<"+a+">"}else if(n)return u=+n-1,c[s].names[u]?"\\k<"+c[s].names[u]+">":"\\"+(+n+f);return e})+")"}if(r){if(a=b[y],S[++y]=++p,a)return"(?<"+a+">"}else if(o)return b[u=+o-1]?"\\k<"+b[u]+">":"\\"+S[+o];return e});return e(I,l)}},t.exports=n.default},{}],2:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}), +/*! + * XRegExp.matchRecursive 4.1.1 + * + * Steven Levithan (c) 2009-present MIT License + */ +n.default=function(e){function t(e,t,n,i){return{name:e,value:t,start:n,end:i}}e.matchRecursive=function(n,i,r,o,s){o=o||"",s=s||{};var a=-1!==o.indexOf("g"),l=-1!==o.indexOf("y"),u=o.replace(/y/g,""),d=s.escapeChar,c=s.valueNames,g=[],m=0,h=0,p=0,f=0,y=void 0,S=void 0,b=void 0,I=void 0,C=void 0;if(i=e(i,u),r=e(r,u),d){if(d.length>1)throw new Error("Cannot use more than one escape character");d=e.escape(d),C=new RegExp("(?:"+d+"[\\S\\s]|(?:(?!"+e.union([i,r],"",{conjunction:"or"}).source+")[^"+d+"])+)+",o.replace(/[^imu]+/g,""))}for(;;){if(d&&(p+=(e.exec(n,C,p,"sticky")||[""])[0].length),b=e.exec(n,i,p),I=e.exec(n,r,p),b&&I&&(b.index<=I.index?I=null:b=null),b||I)p=(h=(b||I).index)+(b||I)[0].length;else if(!m)break;if(l&&!m&&h>f)break;if(b)m||(y=h,S=p),++m;else{if(!I||!m)throw new Error("Unbalanced delimiter found in string");if(!--m&&(c?(c[0]&&y>f&&g.push(t(c[0],n.slice(f,y),f,y)),c[1]&&g.push(t(c[1],n.slice(y,S),y,S)),c[2]&&g.push(t(c[2],n.slice(S,h),S,h)),c[3]&&g.push(t(c[3],n.slice(h,p),h,p))):g.push(n.slice(S,h)),f=p,!a))break}h===p&&++p}return a&&!l&&c&&c[0]&&n.length>f&&g.push(t(c[0],n.slice(f),f,n.length)),g}},t.exports=n.default},{}],3:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}), +/*! + * XRegExp Unicode Base 4.1.1 + * + * Steven Levithan (c) 2008-present MIT License + */ +n.default=function(e){var t={},n=e._dec,i=e._hex,r=e._pad4;function o(e){return e.replace(/[- _]+/g,"").toLowerCase()}function s(e){var t=/^\\[xu](.+)/.exec(e);return t?n(t[1]):e.charCodeAt("\\"===e[0]?1:0)}function a(n){return t[n]["b!"]||(t[n]["b!"]=function(t){var n="",o=-1;return e.forEach(t,/(\\x..|\\u....|\\?[\s\S])(?:-(\\x..|\\u....|\\?[\s\S]))?/,function(e){var t=s(e[1]);t>o+1&&(n+="\\u"+r(i(o+1)),t>o+2&&(n+="-\\u"+r(i(t-1)))),o=s(e[2]||e[1])}),o<65535&&(n+="\\u"+r(i(o+1)),o<65534&&(n+="-\\uFFFF")),n}(t[n].bmp))}e.addToken(/\\([pP])(?:{(\^?)([^}]*)}|([A-Za-z]))/,function(e,n,i){var r="P"===e[1]||!!e[2],s=-1!==i.indexOf("A"),l=o(e[4]||e[3]),u=t[l];if("P"===e[1]&&e[2])throw new SyntaxError("Invalid double negation "+e[0]);if(!t.hasOwnProperty(l))throw new SyntaxError("Unknown Unicode token "+e[0]);if(u.inverseOf){if(l=o(u.inverseOf),!t.hasOwnProperty(l))throw new ReferenceError("Unicode token missing data "+e[0]+" -> "+u.inverseOf);u=t[l],r=!r}if(!u.bmp&&!s)throw new SyntaxError("Astral mode required for Unicode token "+e[0]);if(s){if("class"===n)throw new SyntaxError("Astral mode does not support Unicode tokens within character classes");return function(e,n){var i=n?"a!":"a=";return t[e][i]||(t[e][i]=function(e,n){var i=t[e],r="";return i.bmp&&!i.isBmpLast&&(r="["+i.bmp+"]"+(i.astral?"|":"")),i.astral&&(r+=i.astral),i.isBmpLast&&i.bmp&&(r+=(i.astral?"|":"")+"["+i.bmp+"]"),n?"(?:(?!"+r+")(?:[\ud800-\udbff][\udc00-\udfff]|[\0-￿]))":"(?:"+r+")"}(e,n))}(l,r)}return"class"===n?r?a(l):u.bmp:(r?"[^":"[")+u.bmp+"]"},{scope:"all",optionalFlags:"A",leadChar:"\\"}),e.addUnicodeData=function(n){for(var i=void 0,r=0;r + * Steven Levithan (c) 2010-present MIT License + * Unicode data by Mathias Bynens + */ +t.exports=n.default},{"../../tools/output/blocks":10}],5:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/categories"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Categories");e.addUnicodeData(i.default)}, +/*! + * XRegExp Unicode Categories 4.1.1 + * + * Steven Levithan (c) 2010-present MIT License + * Unicode data by Mathias Bynens + */ +t.exports=n.default},{"../../tools/output/categories":11}],6:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/properties"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Properties");var t=i.default;t.push({name:"Assigned",inverseOf:"Cn"}),e.addUnicodeData(t)}, +/*! + * XRegExp Unicode Properties 4.1.1 + * + * Steven Levithan (c) 2012-present MIT License + * Unicode data by Mathias Bynens + */ +t.exports=n.default},{"../../tools/output/properties":12}],7:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=function(e){return e&&e.__esModule?e:{default:e}}(e("../../tools/output/scripts"));n.default=function(e){if(!e.addUnicodeData)throw new ReferenceError("Unicode Base must be loaded before Unicode Scripts");e.addUnicodeData(i.default)}, +/*! + * XRegExp Unicode Scripts 4.1.1 + * + * Steven Levithan (c) 2010-present MIT License + * Unicode data by Mathias Bynens + */ +t.exports=n.default},{"../../tools/output/scripts":13}],8:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0});var i=c(e("./xregexp")),r=c(e("./addons/build")),o=c(e("./addons/matchrecursive")),s=c(e("./addons/unicode-base")),a=c(e("./addons/unicode-blocks")),l=c(e("./addons/unicode-categories")),u=c(e("./addons/unicode-properties")),d=c(e("./addons/unicode-scripts"));function c(e){return e&&e.__esModule?e:{default:e}}(0,r.default)(i.default),(0,o.default)(i.default),(0,s.default)(i.default),(0,a.default)(i.default),(0,l.default)(i.default),(0,u.default)(i.default),(0,d.default)(i.default),n.default=i.default,t.exports=n.default},{"./addons/build":1,"./addons/matchrecursive":2,"./addons/unicode-base":3,"./addons/unicode-blocks":4,"./addons/unicode-categories":5,"./addons/unicode-properties":6,"./addons/unicode-scripts":7,"./xregexp":9}],9:[function(e,t,n){"use strict";Object.defineProperty(n,"__esModule",{value:!0}); +/*! + * XRegExp 4.1.1 + * + * Steven Levithan (c) 2007-present MIT License + */ +var i="xregexp",r={astral:!1,namespacing:!1},o={exec:RegExp.prototype.exec,test:RegExp.prototype.test,match:String.prototype.match,replace:String.prototype.replace,split:String.prototype.split},s={},a={},l={},u=[],d="default",c="class",g={default:/\\(?:0(?:[0-3][0-7]{0,2}|[4-7][0-7]?)?|[1-9]\d*|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|\(\?(?:[:=!]|<[=!])|[?*+]\?|{\d+(?:,\d*)?}\??|[\s\S]/,class:/\\(?:[0-3][0-7]{0,2}|[4-7][0-7]?|x[\dA-Fa-f]{2}|u(?:[\dA-Fa-f]{4}|{[\dA-Fa-f]+})|c[A-Za-z]|[\s\S])|[\s\S]/},m=/\$(?:{([\w$]+)}|<([\w$]+)>|(\d\d?|[\s\S]))/g,h=void 0===o.exec.call(/()??/,"")[1],p=void 0!==/x/.flags,f={}.toString;function y(e){var t=!0;try{new RegExp("",e)}catch(e){t=!1}return t}var S=y("u"),b=y("y"),I={g:!0,i:!0,m:!0,u:S,y:b};function C(e,t,n,r,o){var s=void 0;if(e[i]={captureNames:t},o)return e;if(e.__proto__)e.__proto__=O.prototype;else for(s in O.prototype)e[s]=O.prototype[s];return e[i].source=n,e[i].flags=r?r.split("").sort().join(""):r,e}function _(e){return o.replace.call(e,/([\s\S])(?=[\s\S]*\1)/g,"")}function v(e,t){if(!O.isRegExp(e))throw new TypeError("Type RegExp expected");var n=e[i]||{},r=function(e){return p?e.flags:o.exec.call(/\/([a-z]*)$/i,RegExp.prototype.toString.call(e))[1]}(e),s="",a="",l=null,u=null;return(t=t||{}).removeG&&(a+="g"),t.removeY&&(a+="y"),a&&(r=o.replace.call(r,new RegExp("["+a+"]+","g"),"")),t.addG&&(s+="g"),t.addY&&(s+="y"),s&&(r=_(r+s)),t.isInternalOnly||(void 0!==n.source&&(l=n.source),null!=n.flags&&(u=s?_(n.flags+s):n.flags)),C(new RegExp(t.source||e.source,r),function(e){return!(!e[i]||!e[i].captureNames)}(e)?n.captureNames.slice(0):null,l,u,t.isInternalOnly)}function T(e){return parseInt(e,16)}function x(e,t,n){return"("===e.input[e.index-1]||")"===e.input[e.index+e[0].length]||"|"===e.input[e.index-1]||"|"===e.input[e.index+e[0].length]||e.index<1||e.index+e[0].length>=e.input.length||o.test.call(/^\(\?[:=!]/,e.input.substr(e.index-3,3))||function(e,t,n){return o.test.call(-1!==n.indexOf("x")?/^(?:\s|#[^#\n]*|\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/:/^(?:\(\?#[^)]*\))*(?:[?*+]|{\d+(?:,\d*)?})/,e.slice(t))}(e.input,e.index+e[0].length,n)?"":"(?:)"}function w(e){return parseInt(e,10).toString(16)}function B(e,t){return f.call(e)==="[object "+t+"]"}function D(e){for(;e.length<4;)e="0"+e;return e}function A(e){var t={};return B(e,"String")?(O.forEach(e,/[^\s,]+/,function(e){t[e]=!0}),t):e}function R(e){if(!/^[\w$]$/.test(e))throw new Error("Flag must be a single character A-Za-z0-9_$");I[e]=!0}function E(e,t,n,i,r){for(var o=u.length,s=e[n],a=null,l=void 0,d=void 0;o--;)if(!((d=u[o]).leadChar&&d.leadChar!==s||d.scope!==i&&"all"!==d.scope||d.flag&&-1===t.indexOf(d.flag))&&(l=O.exec(e,d.regex,n,"sticky"))){a={matchLength:l[0].length,output:d.handler.call(r,l,i,t),reparse:d.reparse};break}return a}function K(e){r.astral=e}function N(e){r.namespacing=e}function P(e){if(null==e)throw new TypeError("Cannot convert null or undefined to object");return e}function O(e,t){if(O.isRegExp(e)){if(void 0!==t)throw new TypeError("Cannot supply flags when copying a RegExp");return v(e)}if(e=void 0===e?"":String(e),t=void 0===t?"":String(t),O.isInstalled("astral")&&-1===t.indexOf("A")&&(t+="A"),l[e]||(l[e]={}),!l[e][t]){for(var n={hasNamedCapture:!1,captureNames:[]},i=d,r="",s=0,a=void 0,u=function(e,t){var n=void 0;if(_(t)!==t)throw new SyntaxError("Invalid duplicate regex flag "+t);for(e=o.replace.call(e,/^\(\?([\w$]+)\)/,function(e,n){if(o.test.call(/[gy]/,n))throw new SyntaxError("Cannot use flag g or y in mode modifier "+e);return t=_(t+n),""}),n=0;n"}else if(n)return"\\"+(+n+a);return e}if(!B(e,"Array")||!e.length)throw new TypeError("Must provide a nonempty array of patterns to merge");for(var d=/(\()(?!\?)|\\([1-9]\d*)|\\[\s\S]|\[(?:[^\\\]]|\\[\s\S])*\]/g,c=[],g=void 0,m=0;m1&&-1!==n.indexOf("")){var r=v(this,{removeG:!0,isInternalOnly:!0});o.replace.call(String(e).slice(n.index),r,function(){for(var e=arguments.length,t=Array(e),i=0;in.index&&(this.lastIndex=n.index)}return this.global||(this.lastIndex=t),n},s.test=function(e){return!!s.exec.call(this,e)},s.match=function(e){if(O.isRegExp(e)){if(e.global){var t=o.match.apply(this,arguments);return e.lastIndex=0,t}}else e=new RegExp(e);return s.exec.call(e,P(this))},s.replace=function(e,t){var n,r=O.isRegExp(e),s=void 0,a=void 0;return r?(e[i]&&(a=e[i].captureNames),s=e.lastIndex):e+="",n=B(t,"Function")?o.replace.call(String(this),e,function(){for(var n=arguments.length,i=Array(n),o=0;on.length-3)throw new SyntaxError("Backreference to undefined group "+e);return n[r]||""}throw new SyntaxError("Invalid token "+e)})}),r&&(e.global?e.lastIndex=0:e.lastIndex=s),n},s.split=function(e,t){if(!O.isRegExp(e))return o.split.apply(this,arguments);var n=String(this),i=[],r=e.lastIndex,s=0,a=void 0;return t=(void 0===t?-1:t)>>>0,O.forEach(n,e,function(e){e.index+e[0].length>s&&(i.push(n.slice(s,e.index)),e.length>1&&e.indext?i.slice(0,t):i},O.addToken(/\\([ABCE-RTUVXYZaeg-mopqyz]|c(?![A-Za-z])|u(?![\dA-Fa-f]{4}|{[\dA-Fa-f]+})|x(?![\dA-Fa-f]{2}))/,function(e,t){if("B"===e[1]&&t===d)return e[0];throw new SyntaxError("Invalid escape "+e[0])},{scope:"all",leadChar:"\\"}),O.addToken(/\\u{([\dA-Fa-f]+)}/,function(e,t,n){var i=T(e[1]);if(i>1114111)throw new SyntaxError("Invalid Unicode code point "+e[0]);if(i<=65535)return"\\u"+D(w(i));if(S&&-1!==n.indexOf("u"))return e[0];throw new SyntaxError("Cannot use Unicode code point above \\u{FFFF} without flag u")},{scope:"all",leadChar:"\\"}),O.addToken(/\[(\^?)\]/,function(e){return e[1]?"[\\s\\S]":"\\b\\B"},{leadChar:"["}),O.addToken(/\(\?#[^)]*\)/,x,{leadChar:"("}),O.addToken(/\s+|#[^\n]*\n?/,x,{flag:"x"}),O.addToken(/\./,function(){return"[\\s\\S]"},{flag:"s",leadChar:"."}),O.addToken(/\\k<([\w$]+)>/,function(e){var t=isNaN(e[1])?this.captureNames.indexOf(e[1])+1:+e[1],n=e.index+e[0].length;if(!t||t>this.captureNames.length)throw new SyntaxError("Backreference to undefined group "+e[0]);return"\\"+t+(n===e.input.length||isNaN(e.input[n])?"":"(?:)")},{leadChar:"\\"}),O.addToken(/\\(\d+)/,function(e,t){if(!(t===d&&/^[1-9]/.test(e[1])&&+e[1]<=this.captureNames.length)&&"0"!==e[1])throw new SyntaxError("Cannot use octal escape or backreference to undefined group "+e[0]);return e[0]},{scope:"all",leadChar:"\\"}),O.addToken(/\(\?P?<([\w$]+)>/,function(e){if(!isNaN(e[1]))throw new SyntaxError("Cannot use integer as capture name "+e[0]);if(!O.isInstalled("namespacing")&&("length"===e[1]||"__proto__"===e[1]))throw new SyntaxError("Cannot use reserved word as capture name "+e[0]);if(-1!==this.captureNames.indexOf(e[1]))throw new SyntaxError("Cannot use same name for multiple groups "+e[0]);return this.captureNames.push(e[1]),this.hasNamedCapture=!0,"("},{leadChar:"("}),O.addToken(/\((?!\?)/,function(e,t,n){return-1!==n.indexOf("n")?"(?:":(this.captureNames.push(null),"(")},{optionalFlags:"n",leadChar:"("}),n.default=O,t.exports=n.default},{}],10:[function(e,t,n){t.exports=[{name:"InAdlam",astral:"\ud83a[\udd00-\udd5f]"},{name:"InAegean_Numbers",astral:"\ud800[\udd00-\udd3f]"},{name:"InAhom",astral:"\ud805[\udf00-\udf3f]"},{name:"InAlchemical_Symbols",astral:"\ud83d[\udf00-\udf7f]"},{name:"InAlphabetic_Presentation_Forms",bmp:"ff-ﭏ"},{name:"InAnatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude7f]"},{name:"InAncient_Greek_Musical_Notation",astral:"\ud834[\ude00-\ude4f]"},{name:"InAncient_Greek_Numbers",astral:"\ud800[\udd40-\udd8f]"},{name:"InAncient_Symbols",astral:"\ud800[\udd90-\uddcf]"},{name:"InArabic",bmp:"؀-ۿ"},{name:"InArabic_Extended_A",bmp:"ࢠ-ࣿ"},{name:"InArabic_Mathematical_Alphabetic_Symbols",astral:"\ud83b[\ude00-\udeff]"},{name:"InArabic_Presentation_Forms_A",bmp:"ﭐ-﷿"},{name:"InArabic_Presentation_Forms_B",bmp:"ﹰ-\ufeff"},{name:"InArabic_Supplement",bmp:"ݐ-ݿ"},{name:"InArmenian",bmp:"԰-֏"},{name:"InArrows",bmp:"←-⇿"},{name:"InAvestan",astral:"\ud802[\udf00-\udf3f]"},{name:"InBalinese",bmp:"ᬀ-᭿"},{name:"InBamum",bmp:"ꚠ-꛿"},{name:"InBamum_Supplement",astral:"\ud81a[\udc00-\ude3f]"},{name:"InBasic_Latin",bmp:"\0-"},{name:"InBassa_Vah",astral:"\ud81a[\uded0-\udeff]"},{name:"InBatak",bmp:"ᯀ-᯿"},{name:"InBengali",bmp:"ঀ-৿"},{name:"InBhaiksuki",astral:"\ud807[\udc00-\udc6f]"},{name:"InBlock_Elements",bmp:"▀-▟"},{name:"InBopomofo",bmp:"㄀-ㄯ"},{name:"InBopomofo_Extended",bmp:"ㆠ-ㆿ"},{name:"InBox_Drawing",bmp:"─-╿"},{name:"InBrahmi",astral:"\ud804[\udc00-\udc7f]"},{name:"InBraille_Patterns",bmp:"⠀-⣿"},{name:"InBuginese",bmp:"ᨀ-᨟"},{name:"InBuhid",bmp:"ᝀ-᝟"},{name:"InByzantine_Musical_Symbols",astral:"\ud834[\udc00-\udcff]"},{name:"InCJK_Compatibility",bmp:"㌀-㏿"},{name:"InCJK_Compatibility_Forms",bmp:"︰-﹏"},{name:"InCJK_Compatibility_Ideographs",bmp:"豈-﫿"},{name:"InCJK_Compatibility_Ideographs_Supplement",astral:"\ud87e[\udc00-\ude1f]"},{name:"InCJK_Radicals_Supplement",bmp:"⺀-⻿"},{name:"InCJK_Strokes",bmp:"㇀-㇯"},{name:"InCJK_Symbols_And_Punctuation",bmp:" -〿"},{name:"InCJK_Unified_Ideographs",bmp:"一-鿿"},{name:"InCJK_Unified_Ideographs_Extension_A",bmp:"㐀-䶿"},{name:"InCJK_Unified_Ideographs_Extension_B",astral:"[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\udedf]"},{name:"InCJK_Unified_Ideographs_Extension_C",astral:"\ud869[\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf3f]"},{name:"InCJK_Unified_Ideographs_Extension_D",astral:"\ud86d[\udf40-\udfff]|\ud86e[\udc00-\udc1f]"},{name:"InCJK_Unified_Ideographs_Extension_E",astral:"\ud86e[\udc20-\udfff]|[\ud86f-\ud872][\udc00-\udfff]|\ud873[\udc00-\udeaf]"},{name:"InCJK_Unified_Ideographs_Extension_F",astral:"\ud873[\udeb0-\udfff]|[\ud874-\ud879][\udc00-\udfff]|\ud87a[\udc00-\udfef]"},{name:"InCarian",astral:"\ud800[\udea0-\udedf]"},{name:"InCaucasian_Albanian",astral:"\ud801[\udd30-\udd6f]"},{name:"InChakma",astral:"\ud804[\udd00-\udd4f]"},{name:"InCham",bmp:"ꨀ-꩟"},{name:"InCherokee",bmp:"Ꭰ-᏿"},{name:"InCherokee_Supplement",bmp:"ꭰ-ꮿ"},{name:"InCombining_Diacritical_Marks",bmp:"̀-ͯ"},{name:"InCombining_Diacritical_Marks_Extended",bmp:"᪰-᫿"},{name:"InCombining_Diacritical_Marks_For_Symbols",bmp:"⃐-⃿"},{name:"InCombining_Diacritical_Marks_Supplement",bmp:"᷀-᷿"},{name:"InCombining_Half_Marks",bmp:"︠-︯"},{name:"InCommon_Indic_Number_Forms",bmp:"꠰-꠿"},{name:"InControl_Pictures",bmp:"␀-␿"},{name:"InCoptic",bmp:"Ⲁ-⳿"},{name:"InCoptic_Epact_Numbers",astral:"\ud800[\udee0-\udeff]"},{name:"InCounting_Rod_Numerals",astral:"\ud834[\udf60-\udf7f]"},{name:"InCuneiform",astral:"\ud808[\udc00-\udfff]"},{name:"InCuneiform_Numbers_And_Punctuation",astral:"\ud809[\udc00-\udc7f]"},{name:"InCurrency_Symbols",bmp:"₠-⃏"},{name:"InCypriot_Syllabary",astral:"\ud802[\udc00-\udc3f]"},{name:"InCyrillic",bmp:"Ѐ-ӿ"},{name:"InCyrillic_Extended_A",bmp:"ⷠ-ⷿ"},{name:"InCyrillic_Extended_B",bmp:"Ꙁ-ꚟ"},{name:"InCyrillic_Extended_C",bmp:"ᲀ-᲏"},{name:"InCyrillic_Supplement",bmp:"Ԁ-ԯ"},{name:"InDeseret",astral:"\ud801[\udc00-\udc4f]"},{name:"InDevanagari",bmp:"ऀ-ॿ"},{name:"InDevanagari_Extended",bmp:"꣠-ꣿ"},{name:"InDingbats",bmp:"✀-➿"},{name:"InDomino_Tiles",astral:"\ud83c[\udc30-\udc9f]"},{name:"InDuployan",astral:"\ud82f[\udc00-\udc9f]"},{name:"InEarly_Dynastic_Cuneiform",astral:"\ud809[\udc80-\udd4f]"},{name:"InEgyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2f]"},{name:"InElbasan",astral:"\ud801[\udd00-\udd2f]"},{name:"InEmoticons",astral:"\ud83d[\ude00-\ude4f]"},{name:"InEnclosed_Alphanumeric_Supplement",astral:"\ud83c[\udd00-\uddff]"},{name:"InEnclosed_Alphanumerics",bmp:"①-⓿"},{name:"InEnclosed_CJK_Letters_And_Months",bmp:"㈀-㋿"},{name:"InEnclosed_Ideographic_Supplement",astral:"\ud83c[\ude00-\udeff]"},{name:"InEthiopic",bmp:"ሀ-፿"},{name:"InEthiopic_Extended",bmp:"ⶀ-⷟"},{name:"InEthiopic_Extended_A",bmp:"꬀-꬯"},{name:"InEthiopic_Supplement",bmp:"ᎀ-᎟"},{name:"InGeneral_Punctuation",bmp:" -"},{name:"InGeometric_Shapes",bmp:"■-◿"},{name:"InGeometric_Shapes_Extended",astral:"\ud83d[\udf80-\udfff]"},{name:"InGeorgian",bmp:"Ⴀ-ჿ"},{name:"InGeorgian_Supplement",bmp:"ⴀ-⴯"},{name:"InGlagolitic",bmp:"Ⰰ-ⱟ"},{name:"InGlagolitic_Supplement",astral:"\ud838[\udc00-\udc2f]"},{name:"InGothic",astral:"\ud800[\udf30-\udf4f]"},{name:"InGrantha",astral:"\ud804[\udf00-\udf7f]"},{name:"InGreek_And_Coptic",bmp:"Ͱ-Ͽ"},{name:"InGreek_Extended",bmp:"ἀ-῿"},{name:"InGujarati",bmp:"઀-૿"},{name:"InGurmukhi",bmp:"਀-੿"},{name:"InHalfwidth_And_Fullwidth_Forms",bmp:"＀-￯"},{name:"InHangul_Compatibility_Jamo",bmp:"㄰-㆏"},{name:"InHangul_Jamo",bmp:"ᄀ-ᇿ"},{name:"InHangul_Jamo_Extended_A",bmp:"ꥠ-꥿"},{name:"InHangul_Jamo_Extended_B",bmp:"ힰ-퟿"},{name:"InHangul_Syllables",bmp:"가-힯"},{name:"InHanunoo",bmp:"ᜠ-᜿"},{name:"InHatran",astral:"\ud802[\udce0-\udcff]"},{name:"InHebrew",bmp:"֐-׿"},{name:"InHigh_Private_Use_Surrogates",bmp:"\udb80-\udbff"},{name:"InHigh_Surrogates",bmp:"\ud800-\udb7f"},{name:"InHiragana",bmp:"぀-ゟ"},{name:"InIPA_Extensions",bmp:"ɐ-ʯ"},{name:"InIdeographic_Description_Characters",bmp:"⿰-⿿"},{name:"InIdeographic_Symbols_And_Punctuation",astral:"\ud81b[\udfe0-\udfff]"},{name:"InImperial_Aramaic",astral:"\ud802[\udc40-\udc5f]"},{name:"InInscriptional_Pahlavi",astral:"\ud802[\udf60-\udf7f]"},{name:"InInscriptional_Parthian",astral:"\ud802[\udf40-\udf5f]"},{name:"InJavanese",bmp:"ꦀ-꧟"},{name:"InKaithi",astral:"\ud804[\udc80-\udccf]"},{name:"InKana_Extended_A",astral:"\ud82c[\udd00-\udd2f]"},{name:"InKana_Supplement",astral:"\ud82c[\udc00-\udcff]"},{name:"InKanbun",bmp:"㆐-㆟"},{name:"InKangxi_Radicals",bmp:"⼀-⿟"},{name:"InKannada",bmp:"ಀ-೿"},{name:"InKatakana",bmp:"゠-ヿ"},{name:"InKatakana_Phonetic_Extensions",bmp:"ㇰ-ㇿ"},{name:"InKayah_Li",bmp:"꤀-꤯"},{name:"InKharoshthi",astral:"\ud802[\ude00-\ude5f]"},{name:"InKhmer",bmp:"ក-៿"},{name:"InKhmer_Symbols",bmp:"᧠-᧿"},{name:"InKhojki",astral:"\ud804[\ude00-\ude4f]"},{name:"InKhudawadi",astral:"\ud804[\udeb0-\udeff]"},{name:"InLao",bmp:"຀-໿"},{name:"InLatin_1_Supplement",bmp:"€-ÿ"},{name:"InLatin_Extended_A",bmp:"Ā-ſ"},{name:"InLatin_Extended_Additional",bmp:"Ḁ-ỿ"},{name:"InLatin_Extended_B",bmp:"ƀ-ɏ"},{name:"InLatin_Extended_C",bmp:"Ⱡ-Ɀ"},{name:"InLatin_Extended_D",bmp:"꜠-ꟿ"},{name:"InLatin_Extended_E",bmp:"ꬰ-꭯"},{name:"InLepcha",bmp:"ᰀ-ᱏ"},{name:"InLetterlike_Symbols",bmp:"℀-⅏"},{name:"InLimbu",bmp:"ᤀ-᥏"},{name:"InLinear_A",astral:"\ud801[\ude00-\udf7f]"},{name:"InLinear_B_Ideograms",astral:"\ud800[\udc80-\udcff]"},{name:"InLinear_B_Syllabary",astral:"\ud800[\udc00-\udc7f]"},{name:"InLisu",bmp:"ꓐ-꓿"},{name:"InLow_Surrogates",bmp:"\udc00-\udfff"},{name:"InLycian",astral:"\ud800[\ude80-\ude9f]"},{name:"InLydian",astral:"\ud802[\udd20-\udd3f]"},{name:"InMahajani",astral:"\ud804[\udd50-\udd7f]"},{name:"InMahjong_Tiles",astral:"\ud83c[\udc00-\udc2f]"},{name:"InMalayalam",bmp:"ഀ-ൿ"},{name:"InMandaic",bmp:"ࡀ-࡟"},{name:"InManichaean",astral:"\ud802[\udec0-\udeff]"},{name:"InMarchen",astral:"\ud807[\udc70-\udcbf]"},{name:"InMasaram_Gondi",astral:"\ud807[\udd00-\udd5f]"},{name:"InMathematical_Alphanumeric_Symbols",astral:"\ud835[\udc00-\udfff]"},{name:"InMathematical_Operators",bmp:"∀-⋿"},{name:"InMeetei_Mayek",bmp:"ꯀ-꯿"},{name:"InMeetei_Mayek_Extensions",bmp:"ꫠ-꫿"},{name:"InMende_Kikakui",astral:"\ud83a[\udc00-\udcdf]"},{name:"InMeroitic_Cursive",astral:"\ud802[\udda0-\uddff]"},{name:"InMeroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"InMiao",astral:"\ud81b[\udf00-\udf9f]"},{name:"InMiscellaneous_Mathematical_Symbols_A",bmp:"⟀-⟯"},{name:"InMiscellaneous_Mathematical_Symbols_B",bmp:"⦀-⧿"},{name:"InMiscellaneous_Symbols",bmp:"☀-⛿"},{name:"InMiscellaneous_Symbols_And_Arrows",bmp:"⬀-⯿"},{name:"InMiscellaneous_Symbols_And_Pictographs",astral:"\ud83c[\udf00-\udfff]|\ud83d[\udc00-\uddff]"},{name:"InMiscellaneous_Technical",bmp:"⌀-⏿"},{name:"InModi",astral:"\ud805[\ude00-\ude5f]"},{name:"InModifier_Tone_Letters",bmp:"꜀-ꜟ"},{name:"InMongolian",bmp:"᠀-᢯"},{name:"InMongolian_Supplement",astral:"\ud805[\ude60-\ude7f]"},{name:"InMro",astral:"\ud81a[\ude40-\ude6f]"},{name:"InMultani",astral:"\ud804[\ude80-\udeaf]"},{name:"InMusical_Symbols",astral:"\ud834[\udd00-\uddff]"},{name:"InMyanmar",bmp:"က-႟"},{name:"InMyanmar_Extended_A",bmp:"ꩠ-ꩿ"},{name:"InMyanmar_Extended_B",bmp:"ꧠ-꧿"},{name:"InNKo",bmp:"߀-߿"},{name:"InNabataean",astral:"\ud802[\udc80-\udcaf]"},{name:"InNew_Tai_Lue",bmp:"ᦀ-᧟"},{name:"InNewa",astral:"\ud805[\udc00-\udc7f]"},{name:"InNumber_Forms",bmp:"⅐-↏"},{name:"InNushu",astral:"\ud82c[\udd70-\udeff]"},{name:"InOgham",bmp:" -᚟"},{name:"InOl_Chiki",bmp:"᱐-᱿"},{name:"InOld_Hungarian",astral:"\ud803[\udc80-\udcff]"},{name:"InOld_Italic",astral:"\ud800[\udf00-\udf2f]"},{name:"InOld_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"InOld_Permic",astral:"\ud800[\udf50-\udf7f]"},{name:"InOld_Persian",astral:"\ud800[\udfa0-\udfdf]"},{name:"InOld_South_Arabian",astral:"\ud802[\ude60-\ude7f]"},{name:"InOld_Turkic",astral:"\ud803[\udc00-\udc4f]"},{name:"InOptical_Character_Recognition",bmp:"⑀-⑟"},{name:"InOriya",bmp:"଀-୿"},{name:"InOrnamental_Dingbats",astral:"\ud83d[\ude50-\ude7f]"},{name:"InOsage",astral:"\ud801[\udcb0-\udcff]"},{name:"InOsmanya",astral:"\ud801[\udc80-\udcaf]"},{name:"InPahawh_Hmong",astral:"\ud81a[\udf00-\udf8f]"},{name:"InPalmyrene",astral:"\ud802[\udc60-\udc7f]"},{name:"InPau_Cin_Hau",astral:"\ud806[\udec0-\udeff]"},{name:"InPhags_Pa",bmp:"ꡀ-꡿"},{name:"InPhaistos_Disc",astral:"\ud800[\uddd0-\uddff]"},{name:"InPhoenician",astral:"\ud802[\udd00-\udd1f]"},{name:"InPhonetic_Extensions",bmp:"ᴀ-ᵿ"},{name:"InPhonetic_Extensions_Supplement",bmp:"ᶀ-ᶿ"},{name:"InPlaying_Cards",astral:"\ud83c[\udca0-\udcff]"},{name:"InPrivate_Use_Area",bmp:"-"},{name:"InPsalter_Pahlavi",astral:"\ud802[\udf80-\udfaf]"},{name:"InRejang",bmp:"ꤰ-꥟"},{name:"InRumi_Numeral_Symbols",astral:"\ud803[\ude60-\ude7f]"},{name:"InRunic",bmp:"ᚠ-᛿"},{name:"InSamaritan",bmp:"ࠀ-࠿"},{name:"InSaurashtra",bmp:"ꢀ-꣟"},{name:"InSharada",astral:"\ud804[\udd80-\udddf]"},{name:"InShavian",astral:"\ud801[\udc50-\udc7f]"},{name:"InShorthand_Format_Controls",astral:"\ud82f[\udca0-\udcaf]"},{name:"InSiddham",astral:"\ud805[\udd80-\uddff]"},{name:"InSinhala",bmp:"඀-෿"},{name:"InSinhala_Archaic_Numbers",astral:"\ud804[\udde0-\uddff]"},{name:"InSmall_Form_Variants",bmp:"﹐-﹯"},{name:"InSora_Sompeng",astral:"\ud804[\udcd0-\udcff]"},{name:"InSoyombo",astral:"\ud806[\ude50-\udeaf]"},{name:"InSpacing_Modifier_Letters",bmp:"ʰ-˿"},{name:"InSpecials",bmp:"￰-￿"},{name:"InSundanese",bmp:"ᮀ-ᮿ"},{name:"InSundanese_Supplement",bmp:"᳀-᳏"},{name:"InSuperscripts_And_Subscripts",bmp:"⁰-₟"},{name:"InSupplemental_Arrows_A",bmp:"⟰-⟿"},{name:"InSupplemental_Arrows_B",bmp:"⤀-⥿"},{name:"InSupplemental_Arrows_C",astral:"\ud83e[\udc00-\udcff]"},{name:"InSupplemental_Mathematical_Operators",bmp:"⨀-⫿"},{name:"InSupplemental_Punctuation",bmp:"⸀-⹿"},{name:"InSupplemental_Symbols_And_Pictographs",astral:"\ud83e[\udd00-\uddff]"},{name:"InSupplementary_Private_Use_Area_A",astral:"[\udb80-\udbbf][\udc00-\udfff]"},{name:"InSupplementary_Private_Use_Area_B",astral:"[\udbc0-\udbff][\udc00-\udfff]"},{name:"InSutton_SignWriting",astral:"\ud836[\udc00-\udeaf]"},{name:"InSyloti_Nagri",bmp:"ꠀ-꠯"},{name:"InSyriac",bmp:"܀-ݏ"},{name:"InSyriac_Supplement",bmp:"ࡠ-࡯"},{name:"InTagalog",bmp:"ᜀ-ᜟ"},{name:"InTagbanwa",bmp:"ᝠ-᝿"},{name:"InTags",astral:"\udb40[\udc00-\udc7f]"},{name:"InTai_Le",bmp:"ᥐ-᥿"},{name:"InTai_Tham",bmp:"ᨠ-᪯"},{name:"InTai_Viet",bmp:"ꪀ-꫟"},{name:"InTai_Xuan_Jing_Symbols",astral:"\ud834[\udf00-\udf5f]"},{name:"InTakri",astral:"\ud805[\ude80-\udecf]"},{name:"InTamil",bmp:"஀-௿"},{name:"InTangut",astral:"[\ud81c-\ud821][\udc00-\udfff]"},{name:"InTangut_Components",astral:"\ud822[\udc00-\udeff]"},{name:"InTelugu",bmp:"ఀ-౿"},{name:"InThaana",bmp:"ހ-޿"},{name:"InThai",bmp:"฀-๿"},{name:"InTibetan",bmp:"ༀ-࿿"},{name:"InTifinagh",bmp:"ⴰ-⵿"},{name:"InTirhuta",astral:"\ud805[\udc80-\udcdf]"},{name:"InTransport_And_Map_Symbols",astral:"\ud83d[\ude80-\udeff]"},{name:"InUgaritic",astral:"\ud800[\udf80-\udf9f]"},{name:"InUnified_Canadian_Aboriginal_Syllabics",bmp:"᐀-ᙿ"},{name:"InUnified_Canadian_Aboriginal_Syllabics_Extended",bmp:"ᢰ-᣿"},{name:"InVai",bmp:"ꔀ-꘿"},{name:"InVariation_Selectors",bmp:"︀-️"},{name:"InVariation_Selectors_Supplement",astral:"\udb40[\udd00-\uddef]"},{name:"InVedic_Extensions",bmp:"᳐-᳿"},{name:"InVertical_Forms",bmp:"︐-︟"},{name:"InWarang_Citi",astral:"\ud806[\udca0-\udcff]"},{name:"InYi_Radicals",bmp:"꒐-꓏"},{name:"InYi_Syllables",bmp:"ꀀ-꒏"},{name:"InYijing_Hexagram_Symbols",bmp:"䷀-䷿"},{name:"InZanabazar_Square",astral:"\ud806[\ude00-\ude4f]"}]},{}],11:[function(e,t,n){t.exports=[{name:"C",alias:"Other",isBmpLast:!0,bmp:"\0--Ÿ­͸͹΀-΃΋΍΢԰՗՘ՠֈ֋֌֐׈-׏׫-ׯ׵-؅؜؝۝܎܏݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟࡫-࢟ࢵࢾ-࣓࣢঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৾-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿ఄ఍఑఩఺-఼౅౉౎-౔౗౛-౟౤౥౰-౷಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-೿ഄ഍഑൅൉൐-൓൤൥඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠎᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯ᪿ-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-Ჿ᳈-᳏ᳺ-᳿᷺἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿​-‏‪-‮⁠-⁲⁳₏₝-₟⃀-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⮗⮺-⮼⯉⯓-⯫⯰-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹊-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄯ㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿫-鿿꒍-꒏꓇-꓏꘬-꘿꛸-꛿ꞯꞸ-ꟶ꠬-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟ꣾꣿ꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯ꭦ-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟﹓﹧﹬-﹯﹵﻽-＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￾￿",astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9c-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2c\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd70-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude34-\ude37\ude3b-\ude3e\ude48-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd00-\ude5f\ude7f-\udfff]|\ud804[\udc4e-\udc51\udc70-\udc7e\udcbd\udcc2-\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd44-\udd4f\udd77-\udd7f\uddce\uddcf\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf3b\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5a\udc5c\udc5e-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeb8-\udebf\udeca-\udeff\udf1a-\udf1c\udf2c-\udf2f\udf40-\udfff]|\ud806[\udc00-\udc9f\udcf3-\udcfe\udd00-\uddff\ude48-\ude4f\ude84\ude85\ude9d\udea3-\udebf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udcff\udd07\udd0a\udd37-\udd39\udd3b\udd3e\udd48-\udd4f\udd5a-\udfff]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80b\ud80e-\ud810\ud812-\ud819\ud823-\ud82b\ud82d\ud82e\ud830-\ud833\ud837\ud839\ud83f\ud87b-\ud87d\ud87f-\udb3f\udb41-\udbff][\udc00-\udfff]|\ud80d[\udc2f-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\ude70-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\udeff\udf45-\udf4f\udf7f-\udf8e\udfa0-\udfdf\udfe2-\udfff]|\ud821[\udfed-\udfff]|\ud822[\udef3-\udfff]|\ud82c[\udd1f-\udd6f\udefc-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca0-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\udd73-\udd7a\udde9-\uddff\ude46-\udeff\udf57-\udf5f\udf72-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4b-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\udd0d-\udd0f\udd2f\udd6c-\udd6f\uddad-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\ude5f\ude66-\udeff]|\ud83d[\uded5-\udedf\udeed-\udeef\udef9-\udeff\udf74-\udf7f\udfd5-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae-\udcff\udd0c-\udd0f\udd3f\udd4d-\udd4f\udd6c-\udd7f\udd98-\uddbf\uddc1-\uddcf\udde7-\udfff]|\ud869[\uded7-\udeff]|\ud86d[\udf35-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udeaf]|\ud87a[\udfe1-\udfff]|\ud87e[\ude1e-\udfff]|\udb40[\udc00-\udcff\uddf0-\udfff]"},{name:"Cc",alias:"Control",bmp:"\0--Ÿ"},{name:"Cf",alias:"Format",bmp:"­؀-؅؜۝܏࣢᠎​-‏‪-‮⁠-⁤⁦-\ufeff-",astral:"𑂽|\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|\udb40[\udc01\udc20-\udc7f]"},{name:"Cn",alias:"Unassigned",bmp:"͸͹΀-΃΋΍΢԰՗՘ՠֈ֋֌֐׈-׏׫-ׯ׵-׿؝܎݋݌޲-޿߻-߿࠮࠯࠿࡜࡝࡟࡫-࢟ࢵࢾ-࣓঄঍঎঑঒঩঱঳-঵঺঻৅৆৉৊৏-৖৘-৛৞৤৥৾-਀਄਋-਎਑਒਩਱਴਷਺਻਽੃-੆੉੊੎-੐੒-੘੝੟-੥੶-઀઄઎઒઩઱઴઺઻૆૊૎૏૑-૟૤૥૲-૸଀଄଍଎଑଒଩଱଴଺଻୅୆୉୊୎-୕୘-୛୞୤୥୸-஁஄஋-஍஑஖-஘஛஝஠-஢஥-஧஫-஭஺-஽௃-௅௉௎௏௑-௖௘-௥௻-௿ఄ఍఑఩఺-఼౅౉౎-౔౗౛-౟౤౥౰-౷಄಍಑಩಴಺಻೅೉೎-೔೗-ೝ೟೤೥೰ೳ-೿ഄ഍഑൅൉൐-൓൤൥඀ඁ඄඗-඙඲඼඾඿෇-෉෋-෎෕෗෠-෥෰෱෵-฀฻-฾๜-຀຃຅ຆຉ຋ຌຎ-ຓຘຠ຤຦ຨຩຬ຺຾຿໅໇໎໏໚໛໠-໿཈཭-཰྘྽࿍࿛-࿿჆჈-჌჎჏቉቎቏቗቙቞቟኉኎኏኱኶኷኿዁዆዇዗጑጖጗፛፜፽-፿᎚-᎟᏶᏷᏾᏿᚝-᚟᛹-᛿ᜍ᜕-ᜟ᜷-᜿᝔-᝟᝭᝱᝴-᝿៞៟៪-៯៺-៿᠏᠚-᠟ᡸ-᡿᢫-᢯᣶-᣿᤟᤬-᤯᤼-᤿᥁-᥃᥮᥯᥵-᥿᦬-᦯᧊-᧏᧛-᧝᨜᨝᩟᩽᩾᪊-᪏᪚-᪟᪮᪯ᪿ-᫿ᭌ-᭏᭽-᭿᯴-᯻᰸-᰺᱊-᱌Ᲊ-Ჿ᳈-᳏ᳺ-᳿᷺἖἗἞἟὆὇὎὏὘὚὜὞὾὿᾵῅῔῕῜῰῱῵῿⁥⁲⁳₏₝-₟⃀-⃏⃱-⃿↌-↏␧-␿⑋-⑟⭴⭵⮖⮗⮺-⮼⯉⯓-⯫⯰-⯿Ⱟⱟ⳴-⳸⴦⴨-⴬⴮⴯⵨-⵮⵱-⵾⶗-⶟⶧⶯⶷⶿⷇⷏⷗⷟⹊-⹿⺚⻴-⻿⿖-⿯⿼-⿿぀゗゘㄀-㄄ㄯ㄰㆏ㆻ-ㆿ㇤-㇯㈟㋿䶶-䶿鿫-鿿꒍-꒏꓇-꓏꘬-꘿꛸-꛿ꞯꞸ-ꟶ꠬-꠯꠺-꠿꡸-꡿꣆-꣍꣚-꣟ꣾꣿ꥔-꥞꥽-꥿꧎꧚-꧝꧿꨷-꨿꩎꩏꩚꩛꫃-꫚꫷-꬀꬇꬈꬏꬐꬗-꬟꬧꬯ꭦ-꭯꯮꯯꯺-꯿힤-힯퟇-퟊퟼-퟿﩮﩯﫚-﫿﬇-﬒﬘-﬜﬷﬽﬿﭂﭅﯂-﯒﵀-﵏﶐﶑﷈-﷯﷾﷿︚-︟﹓﹧﹬-﹯﹵﻽﻾＀﾿-￁￈￉￐￑￘￙￝-￟￧￯-￸￾￿",astral:"\ud800[\udc0c\udc27\udc3b\udc3e\udc4e\udc4f\udc5e-\udc7f\udcfb-\udcff\udd03-\udd06\udd34-\udd36\udd8f\udd9c-\udd9f\udda1-\uddcf\uddfe-\ude7f\ude9d-\ude9f\uded1-\udedf\udefc-\udeff\udf24-\udf2c\udf4b-\udf4f\udf7b-\udf7f\udf9e\udfc4-\udfc7\udfd6-\udfff]|\ud801[\udc9e\udc9f\udcaa-\udcaf\udcd4-\udcd7\udcfc-\udcff\udd28-\udd2f\udd64-\udd6e\udd70-\uddff\udf37-\udf3f\udf56-\udf5f\udf68-\udfff]|\ud802[\udc06\udc07\udc09\udc36\udc39-\udc3b\udc3d\udc3e\udc56\udc9f-\udca6\udcb0-\udcdf\udcf3\udcf6-\udcfa\udd1c-\udd1e\udd3a-\udd3e\udd40-\udd7f\uddb8-\uddbb\uddd0\uddd1\ude04\ude07-\ude0b\ude14\ude18\ude34-\ude37\ude3b-\ude3e\ude48-\ude4f\ude59-\ude5f\udea0-\udebf\udee7-\udeea\udef7-\udeff\udf36-\udf38\udf56\udf57\udf73-\udf77\udf92-\udf98\udf9d-\udfa8\udfb0-\udfff]|\ud803[\udc49-\udc7f\udcb3-\udcbf\udcf3-\udcf9\udd00-\ude5f\ude7f-\udfff]|\ud804[\udc4e-\udc51\udc70-\udc7e\udcc2-\udccf\udce9-\udcef\udcfa-\udcff\udd35\udd44-\udd4f\udd77-\udd7f\uddce\uddcf\udde0\uddf5-\uddff\ude12\ude3f-\ude7f\ude87\ude89\ude8e\ude9e\udeaa-\udeaf\udeeb-\udeef\udefa-\udeff\udf04\udf0d\udf0e\udf11\udf12\udf29\udf31\udf34\udf3a\udf3b\udf45\udf46\udf49\udf4a\udf4e\udf4f\udf51-\udf56\udf58-\udf5c\udf64\udf65\udf6d-\udf6f\udf75-\udfff]|\ud805[\udc5a\udc5c\udc5e-\udc7f\udcc8-\udccf\udcda-\udd7f\uddb6\uddb7\uddde-\uddff\ude45-\ude4f\ude5a-\ude5f\ude6d-\ude7f\udeb8-\udebf\udeca-\udeff\udf1a-\udf1c\udf2c-\udf2f\udf40-\udfff]|\ud806[\udc00-\udc9f\udcf3-\udcfe\udd00-\uddff\ude48-\ude4f\ude84\ude85\ude9d\udea3-\udebf\udef9-\udfff]|\ud807[\udc09\udc37\udc46-\udc4f\udc6d-\udc6f\udc90\udc91\udca8\udcb7-\udcff\udd07\udd0a\udd37-\udd39\udd3b\udd3e\udd48-\udd4f\udd5a-\udfff]|\ud808[\udf9a-\udfff]|\ud809[\udc6f\udc75-\udc7f\udd44-\udfff]|[\ud80a\ud80b\ud80e-\ud810\ud812-\ud819\ud823-\ud82b\ud82d\ud82e\ud830-\ud833\ud837\ud839\ud83f\ud87b-\ud87d\ud87f-\udb3f\udb41-\udb7f][\udc00-\udfff]|\ud80d[\udc2f-\udfff]|\ud811[\ude47-\udfff]|\ud81a[\ude39-\ude3f\ude5f\ude6a-\ude6d\ude70-\udecf\udeee\udeef\udef6-\udeff\udf46-\udf4f\udf5a\udf62\udf78-\udf7c\udf90-\udfff]|\ud81b[\udc00-\udeff\udf45-\udf4f\udf7f-\udf8e\udfa0-\udfdf\udfe2-\udfff]|\ud821[\udfed-\udfff]|\ud822[\udef3-\udfff]|\ud82c[\udd1f-\udd6f\udefc-\udfff]|\ud82f[\udc6b-\udc6f\udc7d-\udc7f\udc89-\udc8f\udc9a\udc9b\udca4-\udfff]|\ud834[\udcf6-\udcff\udd27\udd28\udde9-\uddff\ude46-\udeff\udf57-\udf5f\udf72-\udfff]|\ud835[\udc55\udc9d\udca0\udca1\udca3\udca4\udca7\udca8\udcad\udcba\udcbc\udcc4\udd06\udd0b\udd0c\udd15\udd1d\udd3a\udd3f\udd45\udd47-\udd49\udd51\udea6\udea7\udfcc\udfcd]|\ud836[\ude8c-\ude9a\udea0\udeb0-\udfff]|\ud838[\udc07\udc19\udc1a\udc22\udc25\udc2b-\udfff]|\ud83a[\udcc5\udcc6\udcd7-\udcff\udd4b-\udd4f\udd5a-\udd5d\udd60-\udfff]|\ud83b[\udc00-\uddff\ude04\ude20\ude23\ude25\ude26\ude28\ude33\ude38\ude3a\ude3c-\ude41\ude43-\ude46\ude48\ude4a\ude4c\ude50\ude53\ude55\ude56\ude58\ude5a\ude5c\ude5e\ude60\ude63\ude65\ude66\ude6b\ude73\ude78\ude7d\ude7f\ude8a\ude9c-\udea0\udea4\udeaa\udebc-\udeef\udef2-\udfff]|\ud83c[\udc2c-\udc2f\udc94-\udc9f\udcaf\udcb0\udcc0\udcd0\udcf6-\udcff\udd0d-\udd0f\udd2f\udd6c-\udd6f\uddad-\udde5\ude03-\ude0f\ude3c-\ude3f\ude49-\ude4f\ude52-\ude5f\ude66-\udeff]|\ud83d[\uded5-\udedf\udeed-\udeef\udef9-\udeff\udf74-\udf7f\udfd5-\udfff]|\ud83e[\udc0c-\udc0f\udc48-\udc4f\udc5a-\udc5f\udc88-\udc8f\udcae-\udcff\udd0c-\udd0f\udd3f\udd4d-\udd4f\udd6c-\udd7f\udd98-\uddbf\uddc1-\uddcf\udde7-\udfff]|\ud869[\uded7-\udeff]|\ud86d[\udf35-\udf3f]|\ud86e[\udc1e\udc1f]|\ud873[\udea2-\udeaf]|\ud87a[\udfe1-\udfff]|\ud87e[\ude1e-\udfff]|\udb40[\udc00\udc02-\udc1f\udc80-\udcff\uddf0-\udfff]|[\udbbf\udbff][\udffe\udfff]"},{name:"Co",alias:"Private_Use",bmp:"-",astral:"[\udb80-\udbbe\udbc0-\udbfe][\udc00-\udfff]|[\udbbf\udbff][\udc00-\udffd]"},{name:"Cs",alias:"Surrogate",bmp:"\ud800-\udfff"},{name:"L",alias:"Letter",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևא-תװ-ײؠ-يٮٯٱ-ۓەۥۦۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪߴߵߺࠀ-ࠕࠚࠤࠨࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॱ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๆກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໆໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៗៜᠠ-ᡷᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᪧᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳱᳵᳶᴀ-ᶿḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⸯ々〆〱-〵〻〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙿ-ꚝꚠ-ꛥꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛ-ꫝꫠ-ꫪꫲ-ꫴꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udf00-\udf19]|\ud806[\udca0-\udcdf\udcff\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude83\ude86-\ude89\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50\udf93-\udf9f\udfe0\udfe1]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud83a[\udc00-\udcc4\udd00-\udd43]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]"},{name:"LC",alias:"Cased_Letter",bmp:"A-Za-zµÀ-ÖØ-öø-ƺƼ-ƿDŽ-ʓʕ-ʯͰ-ͳͶͷͻ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆա-ևႠ-ჅჇჍᎠ-Ᏽᏸ-ᏽᲀ-ᲈᴀ-ᴫᵫ-ᵷᵹ-ᶚḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℴℹℼ-ℿⅅ-ⅉⅎↃↄⰀ-Ⱞⰰ-ⱞⱠ-ⱻⱾ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭꙀ-ꙭꚀ-ꚛꜢ-ꝯꝱ-ꞇꞋ-ꞎꞐ-ꞮꞰ-ꞷꟺꬰ-ꭚꭠ-ꭥꭰ-ꮿff-stﬓ-ﬗA-Za-z",astral:"\ud801[\udc00-\udc4f\udcb0-\udcd3\udcd8-\udcfb]|\ud803[\udc80-\udcb2\udcc0-\udcf2]|\ud806[\udca0-\udcdf]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud83a[\udd00-\udd43]"},{name:"Ll",alias:"Lowercase_Letter",bmp:"a-zµß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʯͱͳͷͻ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯա-ևᏸ-ᏽᲀ-ᲈᴀ-ᴫᵫ-ᵷᵹ-ᶚḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎↄⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱻⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯꝱ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓ-ꞕꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩꞵꞷꟺꬰ-ꭚꭠ-ꭥꭰ-ꮿff-stﬓ-ﬗa-z",astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Lm",alias:"Modifier_Letter",bmp:"ʰ-ˁˆ-ˑˠ-ˤˬˮʹͺՙـۥۦߴߵߺࠚࠤࠨॱๆໆჼៗᡃᪧᱸ-ᱽᴬ-ᵪᵸᶛ-ᶿⁱⁿₐ-ₜⱼⱽⵯⸯ々〱-〵〻ゝゞー-ヾꀕꓸ-ꓽꘌꙿꚜꚝꜗ-ꜟꝰꞈꟸꟹꧏꧦꩰꫝꫳꫴꭜ-ꭟー゙゚",astral:"\ud81a[\udf40-\udf43]|\ud81b[\udf93-\udf9f\udfe0\udfe1]"},{name:"Lo",alias:"Other_Letter",bmp:"ªºƻǀ-ǃʔא-תװ-ײؠ-ؿف-يٮٯٱ-ۓەۮۯۺ-ۼۿܐܒ-ܯݍ-ޥޱߊ-ߪࠀ-ࠕࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽऄ-हऽॐक़-ॡॲ-ঀঅ-ঌএঐও-নপ-রলশ-হঽৎড়ঢ়য়-ৡৰৱৼਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਖ਼-ੜਫ਼ੲ-ੴઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽૐૠૡૹଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽଡ଼ଢ଼ୟ-ୡୱஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹௐఅ-ఌఎ-ఐఒ-నప-హఽౘ-ౚౠౡಀಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽೞೠೡೱೲഅ-ഌഎ-ഐഒ-ഺഽൎൔ-ൖൟ-ൡൺ-ൿඅ-ඖක-නඳ-රලව-ෆก-ะาำเ-ๅກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ະາຳຽເ-ໄໜ-ໟༀཀ-ཇཉ-ཬྈ-ྌက-ဪဿၐ-ၕၚ-ၝၡၥၦၮ-ၰၵ-ႁႎა-ჺჽ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚᎀ-ᎏᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛱ-ᛸᜀ-ᜌᜎ-ᜑᜠ-ᜱᝀ-ᝑᝠ-ᝬᝮ-ᝰក-ឳៜᠠ-ᡂᡄ-ᡷᢀ-ᢄᢇ-ᢨᢪᢰ-ᣵᤀ-ᤞᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨖᨠ-ᩔᬅ-ᬳᭅ-ᭋᮃ-ᮠᮮᮯᮺ-ᯥᰀ-ᰣᱍ-ᱏᱚ-ᱷᳩ-ᳬᳮ-ᳱᳵᳶℵ-ℸⴰ-ⵧⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞ〆〼ぁ-ゖゟァ-ヺヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꀔꀖ-ꒌꓐ-ꓷꔀ-ꘋꘐ-ꘟꘪꘫꙮꚠ-ꛥꞏꟷꟻ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠢꡀ-ꡳꢂ-ꢳꣲ-ꣷꣻꣽꤊ-ꤥꤰ-ꥆꥠ-ꥼꦄ-ꦲꧠ-ꧤꧧ-ꧯꧺ-ꧾꨀ-ꨨꩀ-ꩂꩄ-ꩋꩠ-ꩯꩱ-ꩶꩺꩾ-ꪯꪱꪵꪶꪹ-ꪽꫀꫂꫛꫜꫠ-ꫪꫲꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꯀ-ꯢ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎יִײַ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼヲ-ッア-ンᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf40\udf42-\udf49\udf50-\udf75\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf]|\ud801[\udc50-\udc9d\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00\ude10-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48]|\ud804[\udc03-\udc37\udc83-\udcaf\udcd0-\udce8\udd03-\udd26\udd50-\udd72\udd76\udd83-\uddb2\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude2b\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udede\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d\udf50\udf5d-\udf61]|\ud805[\udc00-\udc34\udc47-\udc4a\udc80-\udcaf\udcc4\udcc5\udcc7\udd80-\uddae\uddd8-\udddb\ude00-\ude2f\ude44\ude80-\udeaa\udf00-\udf19]|\ud806[\udcff\ude00\ude0b-\ude32\ude3a\ude50\ude5c-\ude83\ude86-\ude89\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc2e\udc40\udc72-\udc8f\udd00-\udd06\udd08\udd09\udd0b-\udd30\udd46]|\ud808[\udc00-\udf99]|\ud809[\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf2f\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99]|\ud83a[\udc00-\udcc4]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]"},{name:"Lt",alias:"Titlecase_Letter",bmp:"DžLjNjDzᾈ-ᾏᾘ-ᾟᾨ-ᾯᾼῌῼ"},{name:"Lu",alias:"Uppercase_Letter",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶͿΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԨԪԬԮԱ-ՖႠ-ჅჇჍᎠ-ᏵḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅↃⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꚘꚚꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞖꞘꞚꞜꞞꞠꞢꞤꞦꞨꞪ-ꞮꞰ-ꞴꞶA-Z",astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]"},{name:"M",alias:"Mark",bmp:"̀-ͯ҃-҉֑-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ःऺ-़ा-ॏ॑-ॗॢॣঁ-ঃ়া-ৄেৈো-্ৗৢৣਁ-ਃ਼ਾ-ੂੇੈੋ-੍ੑੰੱੵઁ-ઃ઼ા-ૅે-ૉો-્ૢૣૺ-૿ଁ-ଃ଼ା-ୄେୈୋ-୍ୖୗୢୣஂா-ூெ-ைொ-்ௗఀ-ఃా-ౄె-ైొ-్ౕౖౢౣಁ-ಃ಼ಾ-ೄೆ-ೈೊ-್ೕೖೢೣഀ-ഃ഻഼ാ-ൄെ-ൈൊ-്ൗൢൣංඃ්ා-ුූෘ-ෟෲෳัิ-ฺ็-๎ັິ-ູົຼ່-ໍ༹༘༙༵༷༾༿ཱ-྄྆྇ྍ-ྗྙ-ྼ࿆ါ-ှၖ-ၙၞ-ၠၢ-ၤၧ-ၭၱ-ၴႂ-ႍႏႚ-ႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤫᤰ-᤻ᨗ-ᨛᩕ-ᩞ᩠-᩿᩼᪰-᪾ᬀ-ᬄ᬴-᭄᭫-᭳ᮀ-ᮂᮡ-ᮭ᯦-᯳ᰤ-᰷᳐-᳔᳒-᳨᳭ᳲ-᳴᳷-᳹᷀-᷹᷻-᷿⃐-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〯꙯-꙲ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠣ-ꠧꢀꢁꢴ-ꣅ꣠-꣱ꤦ-꤭ꥇ-꥓ꦀ-ꦃ꦳-꧀ꧥꨩ-ꨶꩃꩌꩍꩻ-ꩽꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫫ-ꫯꫵ꫶ꯣ-ꯪ꯬꯭ﬞ︀-️︠-︯",astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud804[\udc00-\udc02\udc38-\udc46\udc7f-\udc82\udcb0-\udcba\udd00-\udd02\udd27-\udd34\udd73\udd80-\udd82\uddb3-\uddc0\uddca-\uddcc\ude2c-\ude37\ude3e\udedf-\udeea\udf00-\udf03\udf3c\udf3e-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63\udf66-\udf6c\udf70-\udf74]|\ud805[\udc35-\udc46\udcb0-\udcc3\uddaf-\uddb5\uddb8-\uddc0\udddc\udddd\ude30-\ude40\udeab-\udeb7\udf1d-\udf2b]|\ud806[\ude01-\ude0a\ude33-\ude39\ude3b-\ude3e\ude47\ude51-\ude5b\ude8a-\ude99]|\ud807[\udc2f-\udc36\udc38-\udc3f\udc92-\udca7\udca9-\udcb6\udd31-\udd36\udd3a\udd3c\udd3d\udd3f-\udd45\udd47]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf51-\udf7e\udf8f-\udf92]|\ud82f[\udc9d\udc9e]|\ud834[\udd65-\udd69\udd6d-\udd72\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"},{name:"Mc",alias:"Spacing_Mark",bmp:"ःऻा-ीॉ-ौॎॏংঃা-ীেৈোৌৗਃਾ-ੀઃા-ીૉોૌଂଃାୀେୈୋୌୗாிுூெ-ைொ-ௌௗఁ-ఃు-ౄಂಃಾೀ-ೄೇೈೊೋೕೖംഃാ-ീെ-ൈൊ-ൌൗංඃා-ෑෘ-ෟෲෳ༾༿ཿါာေးျြၖၗၢ-ၤၧ-ၭႃႄႇ-ႌႏႚ-ႜាើ-ៅះៈᤣ-ᤦᤩ-ᤫᤰᤱᤳ-ᤸᨙᨚᩕᩗᩡᩣᩤᩭ-ᩲᬄᬵᬻᬽ-ᭁᭃ᭄ᮂᮡᮦᮧ᮪ᯧᯪ-ᯬᯮ᯲᯳ᰤ-ᰫᰴᰵ᳡ᳲᳳ᳷〮〯ꠣꠤꠧꢀꢁꢴ-ꣃꥒ꥓ꦃꦴꦵꦺꦻꦽ-꧀ꨯꨰꨳꨴꩍꩻꩽꫫꫮꫯꫵꯣꯤꯦꯧꯩꯪ꯬",astral:"\ud804[\udc00\udc02\udc82\udcb0-\udcb2\udcb7\udcb8\udd2c\udd82\uddb3-\uddb5\uddbf\uddc0\ude2c-\ude2e\ude32\ude33\ude35\udee0-\udee2\udf02\udf03\udf3e\udf3f\udf41-\udf44\udf47\udf48\udf4b-\udf4d\udf57\udf62\udf63]|\ud805[\udc35-\udc37\udc40\udc41\udc45\udcb0-\udcb2\udcb9\udcbb-\udcbe\udcc1\uddaf-\uddb1\uddb8-\uddbb\uddbe\ude30-\ude32\ude3b\ude3c\ude3e\udeac\udeae\udeaf\udeb6\udf20\udf21\udf26]|\ud806[\ude07\ude08\ude39\ude57\ude58\ude97]|\ud807[\udc2f\udc3e\udca9\udcb1\udcb4]|\ud81b[\udf51-\udf7e]|\ud834[\udd65\udd66\udd6d-\udd72]"},{name:"Me",alias:"Enclosing_Mark",bmp:"҈҉᪾⃝-⃠⃢-⃤꙰-꙲"},{name:"Mn",alias:"Nonspacing_Mark",bmp:"̀-ͯ҃-֑҇-ׇֽֿׁׂׅׄؐ-ًؚ-ٰٟۖ-ۜ۟-۪ۤۧۨ-ܑۭܰ-݊ަ-ް߫-߳ࠖ-࠙ࠛ-ࠣࠥ-ࠧࠩ-࡙࠭-࡛ࣔ-ࣣ࣡-ंऺ़ु-ै्॑-ॗॢॣঁ়ু-ৄ্ৢৣਁਂ਼ੁੂੇੈੋ-੍ੑੰੱੵઁં઼ુ-ૅેૈ્ૢૣૺ-૿ଁ଼ିୁ-ୄ୍ୖୢୣஂீ்ఀా-ీె-ైొ-్ౕౖౢౣಁ಼ಿೆೌ್ೢೣഀഁ഻഼ു-ൄ്ൢൣ්ි-ුූัิ-ฺ็-๎ັິ-ູົຼ່-ໍཱ༹༘༙༵༷-ཾྀ-྄྆྇ྍ-ྗྙ-ྼ࿆ိ-ူဲ-့္်ွှၘၙၞ-ၠၱ-ၴႂႅႆႍႝ፝-፟ᜒ-᜔ᜲ-᜴ᝒᝓᝲᝳ឴឵ិ-ួំ៉-៓៝᠋-᠍ᢅᢆᢩᤠ-ᤢᤧᤨᤲ᤹-᤻ᨘᨗᨛᩖᩘ-ᩞ᩠ᩢᩥ-ᩬᩳ-᩿᩼᪰-᪽ᬀ-ᬃ᬴ᬶ-ᬺᬼᭂ᭫-᭳ᮀᮁᮢ-ᮥᮨᮩ᮫-ᮭ᯦ᯨᯩᯭᯯ-ᯱᰬ-ᰳᰶ᰷᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸᳹᷀-᷹᷻-᷿⃐-⃥⃜⃡-⃰⳯-⵿⳱ⷠ-〪ⷿ-゙゚〭꙯ꙴ-꙽ꚞꚟ꛰꛱ꠂ꠆ꠋꠥꠦ꣄ꣅ꣠-꣱ꤦ-꤭ꥇ-ꥑꦀ-ꦂ꦳ꦶ-ꦹꦼꧥꨩ-ꨮꨱꨲꨵꨶꩃꩌꩼꪰꪲ-ꪴꪷꪸꪾ꪿꫁ꫬꫭ꫶ꯥꯨ꯭ﬞ︀-️︠-︯",astral:"\ud800[\uddfd\udee0\udf76-\udf7a]|\ud802[\ude01-\ude03\ude05\ude06\ude0c-\ude0f\ude38-\ude3a\ude3f\udee5\udee6]|\ud804[\udc01\udc38-\udc46\udc7f-\udc81\udcb3-\udcb6\udcb9\udcba\udd00-\udd02\udd27-\udd2b\udd2d-\udd34\udd73\udd80\udd81\uddb6-\uddbe\uddca-\uddcc\ude2f-\ude31\ude34\ude36\ude37\ude3e\udedf\udee3-\udeea\udf00\udf01\udf3c\udf40\udf66-\udf6c\udf70-\udf74]|\ud805[\udc38-\udc3f\udc42-\udc44\udc46\udcb3-\udcb8\udcba\udcbf\udcc0\udcc2\udcc3\uddb2-\uddb5\uddbc\uddbd\uddbf\uddc0\udddc\udddd\ude33-\ude3a\ude3d\ude3f\ude40\udeab\udead\udeb0-\udeb5\udeb7\udf1d-\udf1f\udf22-\udf25\udf27-\udf2b]|\ud806[\ude01-\ude06\ude09\ude0a\ude33-\ude38\ude3b-\ude3e\ude47\ude51-\ude56\ude59-\ude5b\ude8a-\ude96\ude98\ude99]|\ud807[\udc30-\udc36\udc38-\udc3d\udc3f\udc92-\udca7\udcaa-\udcb0\udcb2\udcb3\udcb5\udcb6\udd31-\udd36\udd3a\udd3c\udd3d\udd3f-\udd45\udd47]|\ud81a[\udef0-\udef4\udf30-\udf36]|\ud81b[\udf8f-\udf92]|\ud82f[\udc9d\udc9e]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad\ude42-\ude44]|\ud836[\ude00-\ude36\ude3b-\ude6c\ude75\ude84\ude9b-\ude9f\udea1-\udeaf]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udcd0-\udcd6\udd44-\udd4a]|\udb40[\udd00-\uddef]"},{name:"N",alias:"Number",bmp:"0-9²³¹¼-¾٠-٩۰-۹߀-߉०-९০-৯৴-৹੦-੯૦-૯୦-୯୲-୷௦-௲౦-౯౸-౾೦-೯൘-൞൦-൸෦-෯๐-๙໐-໙༠-༳၀-၉႐-႙፩-፼ᛮ-ᛰ០-៩៰-៹᠐-᠙᥆-᥏᧐-᧚᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙⁰⁴-⁹₀-₉⅐-ↂↅ-↉①-⒛⓪-⓿❶-➓⳽〇〡-〩〸-〺㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꘠-꘩ꛦ-ꛯ꠰-꠵꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\ud800[\udd07-\udd33\udd40-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23\udf41\udf4a\udfd1-\udfd5]|\ud801[\udca0-\udca9]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude47\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\ude60-\ude7e]|\ud804[\udc52-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udde1-\uddf4\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf3b]|\ud806[\udce0-\udcf2]|\ud807[\udc50-\udc6c\udd50-\udd59]|\ud809[\udc00-\udc6e]|\ud81a[\ude60-\ude69\udf50-\udf59\udf5b-\udf61]|\ud834[\udf60-\udf71]|\ud835[\udfce-\udfff]|\ud83a[\udcc7-\udccf\udd50-\udd59]|\ud83c[\udd00-\udd0c]"},{name:"Nd",alias:"Decimal_Number",bmp:"0-9٠-٩۰-۹߀-߉०-९০-৯੦-੯૦-૯୦-୯௦-௯౦-౯೦-೯൦-൯෦-෯๐-๙໐-໙༠-༩၀-၉႐-႙០-៩᠐-᠙᥆-᥏᧐-᧙᪀-᪉᪐-᪙᭐-᭙᮰-᮹᱀-᱉᱐-᱙꘠-꘩꣐-꣙꤀-꤉꧐-꧙꧰-꧹꩐-꩙꯰-꯹0-9",astral:"\ud801[\udca0-\udca9]|\ud804[\udc66-\udc6f\udcf0-\udcf9\udd36-\udd3f\uddd0-\uddd9\udef0-\udef9]|\ud805[\udc50-\udc59\udcd0-\udcd9\ude50-\ude59\udec0-\udec9\udf30-\udf39]|\ud806[\udce0-\udce9]|\ud807[\udc50-\udc59\udd50-\udd59]|\ud81a[\ude60-\ude69\udf50-\udf59]|\ud835[\udfce-\udfff]|\ud83a[\udd50-\udd59]"},{name:"Nl",alias:"Letter_Number",bmp:"ᛮ-ᛰⅠ-ↂↅ-ↈ〇〡-〩〸-〺ꛦ-ꛯ",astral:"\ud800[\udd40-\udd74\udf41\udf4a\udfd1-\udfd5]|\ud809[\udc00-\udc6e]"},{name:"No",alias:"Other_Number",bmp:"²³¹¼-¾৴-৹୲-୷௰-௲౸-౾൘-൞൰-൸༪-༳፩-፼៰-៹᧚⁰⁴-⁹₀-₉⅐-⅟↉①-⒛⓪-⓿❶-➓⳽㆒-㆕㈠-㈩㉈-㉏㉑-㉟㊀-㊉㊱-㊿꠰-꠵",astral:"\ud800[\udd07-\udd33\udd75-\udd78\udd8a\udd8b\udee1-\udefb\udf20-\udf23]|\ud802[\udc58-\udc5f\udc79-\udc7f\udca7-\udcaf\udcfb-\udcff\udd16-\udd1b\uddbc\uddbd\uddc0-\uddcf\uddd2-\uddff\ude40-\ude47\ude7d\ude7e\ude9d-\ude9f\udeeb-\udeef\udf58-\udf5f\udf78-\udf7f\udfa9-\udfaf]|\ud803[\udcfa-\udcff\ude60-\ude7e]|\ud804[\udc52-\udc65\udde1-\uddf4]|\ud805[\udf3a\udf3b]|\ud806[\udcea-\udcf2]|\ud807[\udc5a-\udc6c]|\ud81a[\udf5b-\udf61]|\ud834[\udf60-\udf71]|\ud83a[\udcc7-\udccf]|\ud83c[\udd00-\udd0c]"},{name:"P",alias:"Punctuation",bmp:"!-#%-\\*,-\\/:;\\?@\\[-\\]_\\{\\}¡§«¶·»¿;·՚-՟։֊־׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽૰෴๏๚๛༄-༒༔༺-༽྅࿐-࿔࿙࿚၊-၏჻፠-፨᐀᙭᙮᚛᚜᛫-᛭᜵᜶។-៖៘-៚᠀-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‐-‧‰-⁃⁅-⁑⁓-⁞⁽⁾₍₎⌈-⌋〈〉❨-❵⟅⟆⟦-⟯⦃-⦘⧘-⧛⧼⧽⳹-⳼⳾⳿⵰⸀-⸮⸰-⹉、-〃〈-】〔-〟〰〽゠・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫﴾﴿︐-︙︰-﹒﹔-﹡﹣﹨﹪﹫!-#%-*,-/:;?@[-]_{}⦅-・",astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|𐕯|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc9\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udf3c-\udf3e]|\ud806[\ude3f-\ude46\ude9a-\ude9c\ude9e-\udea2]|\ud807[\udc41-\udc45\udc70\udc71]|\ud809[\udc70-\udc74]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|𛲟|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"},{name:"Pc",alias:"Connector_Punctuation",bmp:"_‿⁀⁔︳︴﹍-﹏_"},{name:"Pd",alias:"Dash_Punctuation",bmp:"\\-֊־᐀᠆‐-―⸗⸚⸺⸻⹀〜〰゠︱︲﹘﹣-"},{name:"Pe",alias:"Close_Punctuation",bmp:"\\)\\]\\}༻༽᚜⁆⁾₎⌉⌋〉❩❫❭❯❱❳❵⟆⟧⟩⟫⟭⟯⦄⦆⦈⦊⦌⦎⦐⦒⦔⦖⦘⧙⧛⧽⸣⸥⸧⸩〉》」』】〕〗〙〛〞〟﴾︘︶︸︺︼︾﹀﹂﹄﹈﹚﹜﹞)]}⦆」"},{name:"Pf",alias:"Final_Punctuation",bmp:"»’”›⸃⸅⸊⸍⸝⸡"},{name:"Pi",alias:"Initial_Punctuation",bmp:"«‘‛“‟‹⸂⸄⸉⸌⸜⸠"},{name:"Po",alias:"Other_Punctuation",bmp:"!-#%-'\\*,\\.\\/:;\\?@\\¡§¶·¿;·՚-՟։׀׃׆׳״؉؊،؍؛؞؟٪-٭۔܀-܍߷-߹࠰-࠾࡞।॥॰৽૰෴๏๚๛༄-༒༔྅࿐-࿔࿙࿚၊-၏჻፠-፨᙭᙮᛫-᛭᜵᜶។-៖៘-៚᠀-᠅᠇-᠊᥄᥅᨞᨟᪠-᪦᪨-᪭᭚-᭠᯼-᯿᰻-᰿᱾᱿᳀-᳇᳓‖‗†-‧‰-‸※-‾⁁-⁃⁇-⁑⁓⁕-⁞⳹-⳼⳾⳿⵰⸀⸁⸆-⸈⸋⸎-⸖⸘⸙⸛⸞⸟⸪-⸮⸰-⸹⸼-⸿⹁⹃-⹉、-〃〽・꓾꓿꘍-꘏꙳꙾꛲-꛷꡴-꡷꣎꣏꣸-꣺꣼꤮꤯꥟꧁-꧍꧞꧟꩜-꩟꫞꫟꫰꫱꯫︐-︖︙︰﹅﹆﹉-﹌﹐-﹒﹔-﹗﹟-﹡﹨﹪﹫!-#%-'*,./:;?@\。、・",astral:"\ud800[\udd00-\udd02\udf9f\udfd0]|𐕯|\ud802[\udc57\udd1f\udd3f\ude50-\ude58\ude7f\udef0-\udef6\udf39-\udf3f\udf99-\udf9c]|\ud804[\udc47-\udc4d\udcbb\udcbc\udcbe-\udcc1\udd40-\udd43\udd74\udd75\uddc5-\uddc9\uddcd\udddb\udddd-\udddf\ude38-\ude3d\udea9]|\ud805[\udc4b-\udc4f\udc5b\udc5d\udcc6\uddc1-\uddd7\ude41-\ude43\ude60-\ude6c\udf3c-\udf3e]|\ud806[\ude3f-\ude46\ude9a-\ude9c\ude9e-\udea2]|\ud807[\udc41-\udc45\udc70\udc71]|\ud809[\udc70-\udc74]|\ud81a[\ude6e\ude6f\udef5\udf37-\udf3b\udf44]|𛲟|\ud836[\ude87-\ude8b]|\ud83a[\udd5e\udd5f]"},{name:"Ps",alias:"Open_Punctuation",bmp:"\\(\\[\\{༺༼᚛‚„⁅⁽₍⌈⌊〈❨❪❬❮❰❲❴⟅⟦⟨⟪⟬⟮⦃⦅⦇⦉⦋⦍⦏⦑⦓⦕⦗⧘⧚⧼⸢⸤⸦⸨⹂〈《「『【〔〖〘〚〝﴿︗︵︷︹︻︽︿﹁﹃﹇﹙﹛﹝([{⦅「"},{name:"S",alias:"Symbol",bmp:"\\$\\+<->\\^`\\|~¢-¦¨©¬®-±´¸×÷˂-˅˒-˟˥-˫˭˯-˿͵΄΅϶҂֍-֏؆-؈؋؎؏۞۩۽۾߶৲৳৺৻૱୰௳-௺౿൏൹฿༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙៛᥀᧞-᧿᭡-᭪᭴-᭼᾽᾿-῁῍-῏῝-῟῭-`´῾⁄⁒⁺-⁼₊-₌₠-₿℀℁℃-℆℈℉℔№-℘℞-℣℥℧℩℮℺℻⅀-⅄⅊-⅍⅏↊↋←-⌇⌌-⌨⌫-␦⑀-⑊⒜-ⓩ─-❧➔-⟄⟇-⟥⟰-⦂⦙-⧗⧜-⧻⧾-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿゛゜㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꜀-꜖꜠꜡꞉꞊꠨-꠫꠶-꠹꩷-꩹꭛﬩﮲-﯁﷼﷽﹢﹤-﹦﹩$+<->^`|~¢-₩│-○�",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|𑜿|\ud81a[\udf3c-\udf3f\udf45]|𛲜|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83b[\udef0\udef1]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\ude60-\ude65\udf00-\udfff]|\ud83d[\udc00-\uded4\udee0-\udeec\udef0-\udef8\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd00-\udd0b\udd10-\udd3e\udd40-\udd4c\udd50-\udd6b\udd80-\udd97\uddc0\uddd0-\udde6]"},{name:"Sc",alias:"Currency_Symbol",bmp:"\\$¢-¥֏؋৲৳৻૱௹฿៛₠-₿꠸﷼﹩$¢£¥₩"},{name:"Sk",alias:"Modifier_Symbol",bmp:"\\^`¨¯´¸˂-˅˒-˟˥-˫˭˯-˿͵΄΅᾽᾿-῁῍-῏῝-῟῭-`´῾゛゜꜀-꜖꜠꜡꞉꞊꭛﮲-﯁^` ̄",astral:"\ud83c[\udffb-\udfff]"},{name:"Sm",alias:"Math_Symbol",bmp:"\\+<->\\|~¬±×÷϶؆-؈⁄⁒⁺-⁼₊-₌℘⅀-⅄⅋←-↔↚↛↠↣↦↮⇎⇏⇒⇔⇴-⋿⌠⌡⍼⎛-⎳⏜-⏡▷◁◸-◿♯⟀-⟄⟇-⟥⟰-⟿⤀-⦂⦙-⧗⧜-⧻⧾-⫿⬰-⭄⭇-⭌﬩﹢﹤-﹦+<->|~¬←-↓",astral:"\ud835[\udec1\udedb\udefb\udf15\udf35\udf4f\udf6f\udf89\udfa9\udfc3]|\ud83b[\udef0\udef1]"},{name:"So",alias:"Other_Symbol",bmp:"¦©®°҂֍֎؎؏۞۩۽۾߶৺୰௳-௸௺౿൏൹༁-༃༓༕-༗༚-༟༴༶༸྾-࿅࿇-࿌࿎࿏࿕-࿘႞႟᎐-᎙᥀᧞-᧿᭡-᭪᭴-᭼℀℁℃-℆℈℉℔№℗℞-℣℥℧℩℮℺℻⅊⅌⅍⅏↊↋↕-↙↜-↟↡↢↤↥↧-↭↯-⇍⇐⇑⇓⇕-⇳⌀-⌇⌌-⌟⌢-⌨⌫-⍻⍽-⎚⎴-⏛⏢-␦⑀-⑊⒜-ⓩ─-▶▸-◀◂-◷☀-♮♰-❧➔-➿⠀-⣿⬀-⬯⭅⭆⭍-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⳥-⳪⺀-⺙⺛-⻳⼀-⿕⿰-⿻〄〒〓〠〶〷〾〿㆐㆑㆖-㆟㇀-㇣㈀-㈞㈪-㉇㉐㉠-㉿㊊-㊰㋀-㋾㌀-㏿䷀-䷿꒐-꓆꠨-꠫꠶꠷꠹꩷-꩹﷽¦│■○�",astral:"\ud800[\udd37-\udd3f\udd79-\udd89\udd8c-\udd8e\udd90-\udd9b\udda0\uddd0-\uddfc]|\ud802[\udc77\udc78\udec8]|𑜿|\ud81a[\udf3c-\udf3f\udf45]|𛲜|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd64\udd6a-\udd6c\udd83\udd84\udd8c-\udda9\uddae-\udde8\ude00-\ude41\ude45\udf00-\udf56]|\ud836[\udc00-\uddff\ude37-\ude3a\ude6d-\ude74\ude76-\ude83\ude85\ude86]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\ude60-\ude65\udf00-\udffa]|\ud83d[\udc00-\uded4\udee0-\udeec\udef0-\udef8\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd00-\udd0b\udd10-\udd3e\udd40-\udd4c\udd50-\udd6b\udd80-\udd97\uddc0\uddd0-\udde6]"},{name:"Z",alias:"Separator",bmp:"    - \u2028\u2029   "},{name:"Zl",alias:"Line_Separator",bmp:"\u2028"},{name:"Zp",alias:"Paragraph_Separator",bmp:"\u2029"},{name:"Zs",alias:"Space_Separator",bmp:"    -    "}]},{}],12:[function(e,t,n){t.exports=[{name:"ASCII",bmp:"\0-"},{name:"Alphabetic",bmp:"A-Za-zªµºÀ-ÖØ-öø-ˁˆ-ˑˠ-ˤˬˮͅͰ-ʹͶͷͺ-ͽͿΆΈ-ΊΌΎ-ΡΣ-ϵϷ-ҁҊ-ԯԱ-Ֆՙա-ևְ-ׇֽֿׁׂׅׄא-תװ-ײؐ-ؚؠ-ٗٙ-ٟٮ-ۓە-ۜۡ-ۭۨ-ۯۺ-ۼۿܐ-ܿݍ-ޱߊ-ߪߴߵߺࠀ-ࠗࠚ-ࠬࡀ-ࡘࡠ-ࡪࢠ-ࢴࢶ-ࢽࣔ-ࣣࣟ-ࣰࣩ-ऻऽ-ौॎ-ॐॕ-ॣॱ-ঃঅ-ঌএঐও-নপ-রলশ-হঽ-ৄেৈোৌৎৗড়ঢ়য়-ৣৰৱৼਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹਾ-ੂੇੈੋੌੑਖ਼-ੜਫ਼ੰ-ੵઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હઽ-ૅે-ૉોૌૐૠ-ૣૹ-ૼଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହଽ-ୄେୈୋୌୖୗଡ଼ଢ଼ୟ-ୣୱஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-ௌௐௗఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-ౌౕౖౘ-ౚౠ-ౣಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹಽ-ೄೆ-ೈೊ-ೌೕೖೞೠ-ೣೱೲഀ-ഃഅ-ഌഎ-ഐഒ-ഺഽ-ൄെ-ൈൊ-ൌൎൔ-ൗൟ-ൣൺ-ൿංඃඅ-ඖක-නඳ-රලව-ෆා-ුූෘ-ෟෲෳก-ฺเ-ๆํກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆໍໜ-ໟༀཀ-ཇཉ-ཬཱ-ཱྀྈ-ྗྙ-ྼက-ံးျ-ဿၐ-ၢၥ-ၨၮ-ႆႎႜႝႠ-ჅჇჍა-ჺჼ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፟ᎀ-ᎏᎠ-Ᏽᏸ-ᏽᐁ-ᙬᙯ-ᙿᚁ-ᚚᚠ-ᛪᛮ-ᛸᜀ-ᜌᜎ-ᜓᜠ-ᜳᝀ-ᝓᝠ-ᝬᝮ-ᝰᝲᝳក-ឳា-ៈៗៜᠠ-ᡷᢀ-ᢪᢰ-ᣵᤀ-ᤞᤠ-ᤫᤰ-ᤸᥐ-ᥭᥰ-ᥴᦀ-ᦫᦰ-ᧉᨀ-ᨛᨠ-ᩞᩡ-ᩴᪧᬀ-ᬳᬵ-ᭃᭅ-ᭋᮀ-ᮩᮬ-ᮯᮺ-ᯥᯧ-ᯱᰀ-ᰵᱍ-ᱏᱚ-ᱽᲀ-ᲈᳩ-ᳬᳮ-ᳳᳵᳶᴀ-ᶿᷧ-ᷴḀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ᾼιῂ-ῄῆ-ῌῐ-ΐῖ-Ίῠ-Ῥῲ-ῴῶ-ῼⁱⁿₐ-ₜℂℇℊ-ℓℕℙ-ℝℤΩℨK-ℭℯ-ℹℼ-ℿⅅ-ⅉⅎⅠ-ↈⒶ-ⓩⰀ-Ⱞⰰ-ⱞⱠ-ⳤⳫ-ⳮⳲⳳⴀ-ⴥⴧⴭⴰ-ⵧⵯⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞⷠ-ⷿⸯ々-〇〡-〩〱-〵〸-〼ぁ-ゖゝ-ゟァ-ヺー-ヿㄅ-ㄮㄱ-ㆎㆠ-ㆺㇰ-ㇿ㐀-䶵一-鿪ꀀ-ꒌꓐ-ꓽꔀ-ꘌꘐ-ꘟꘪꘫꙀ-ꙮꙴ-ꙻꙿ-ꛯꜗ-ꜟꜢ-ꞈꞋ-ꞮꞰ-ꞷꟷ-ꠁꠃ-ꠅꠇ-ꠊꠌ-ꠧꡀ-ꡳꢀ-ꣃꣅꣲ-ꣷꣻꣽꤊ-ꤪꤰ-ꥒꥠ-ꥼꦀ-ꦲꦴ-ꦿꧏꧠ-ꧤꧦ-ꧯꧺ-ꧾꨀ-ꨶꩀ-ꩍꩠ-ꩶꩺꩾ-ꪾꫀꫂꫛ-ꫝꫠ-ꫯꫲ-ꫵꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮꬰ-ꭚꭜ-ꭥꭰ-ꯪ가-힣ힰ-ퟆퟋ-ퟻ豈-舘並-龎ff-stﬓ-ﬗיִ-ﬨשׁ-זּטּ-לּמּנּסּףּפּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-ﷻﹰ-ﹴﹶ-ﻼA-Za-zヲ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa\udd40-\udd74\ude80-\ude9c\udea0-\uded0\udf00-\udf1f\udf2d-\udf4a\udf50-\udf7a\udf80-\udf9d\udfa0-\udfc3\udfc8-\udfcf\udfd1-\udfd5]|\ud801[\udc00-\udc9d\udcb0-\udcd3\udcd8-\udcfb\udd00-\udd27\udd30-\udd63\ude00-\udf36\udf40-\udf55\udf60-\udf67]|\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f-\udc55\udc60-\udc76\udc80-\udc9e\udce0-\udcf2\udcf4\udcf5\udd00-\udd15\udd20-\udd39\udd80-\uddb7\uddbe\uddbf\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude60-\ude7c\ude80-\ude9c\udec0-\udec7\udec9-\udee4\udf00-\udf35\udf40-\udf55\udf60-\udf72\udf80-\udf91]|\ud803[\udc00-\udc48\udc80-\udcb2\udcc0-\udcf2]|\ud804[\udc00-\udc45\udc82-\udcb8\udcd0-\udce8\udd00-\udd32\udd50-\udd72\udd76\udd80-\uddbf\uddc1-\uddc4\uddda\udddc\ude00-\ude11\ude13-\ude34\ude37\ude3e\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea8\udeb0-\udee8\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3d-\udf44\udf47\udf48\udf4b\udf4c\udf50\udf57\udf5d-\udf63]|\ud805[\udc00-\udc41\udc43-\udc45\udc47-\udc4a\udc80-\udcc1\udcc4\udcc5\udcc7\udd80-\uddb5\uddb8-\uddbe\uddd8-\udddd\ude00-\ude3e\ude40\ude44\ude80-\udeb5\udf00-\udf19\udf1d-\udf2a]|\ud806[\udca0-\udcdf\udcff\ude00-\ude32\ude35-\ude3e\ude50-\ude83\ude86-\ude97\udec0-\udef8]|\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc3e\udc40\udc72-\udc8f\udc92-\udca7\udca9-\udcb6\udd00-\udd06\udd08\udd09\udd0b-\udd36\udd3a\udd3c\udd3d\udd3f-\udd41\udd43\udd46\udd47]|\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc80-\udd43]|[\ud80c\ud81c-\ud820\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud80d[\udc00-\udc2e]|\ud811[\udc00-\ude46]|\ud81a[\udc00-\ude38\ude40-\ude5e\uded0-\udeed\udf00-\udf36\udf40-\udf43\udf63-\udf77\udf7d-\udf8f]|\ud81b[\udf00-\udf44\udf50-\udf7e\udf93-\udf9f\udfe0\udfe1]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]|\ud82c[\udc00-\udd1e\udd70-\udefb]|\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9e]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udec0\udec2-\udeda\udedc-\udefa\udefc-\udf14\udf16-\udf34\udf36-\udf4e\udf50-\udf6e\udf70-\udf88\udf8a-\udfa8\udfaa-\udfc2\udfc4-\udfcb]|\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]|\ud83a[\udc00-\udcc4\udd00-\udd43\udd47]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]"},{name:"Any",isBmpLast:!0,bmp:"\0-￿",astral:"[\ud800-\udbff][\udc00-\udfff]"},{name:"Default_Ignorable_Code_Point",bmp:"­͏؜ᅟᅠ឴឵᠋-᠎​-‏‪-‮⁠-ㅤ︀-️\ufeffᅠ￰-￸",astral:"\ud82f[\udca0-\udca3]|\ud834[\udd73-\udd7a]|[\udb40-\udb43][\udc00-\udfff]"},{name:"Lowercase",bmp:"a-zªµºß-öø-ÿāăąćĉċčďđēĕėęěĝğġģĥħĩīĭįıijĵķĸĺļľŀłńņňʼnŋōŏőœŕŗřśŝşšţťŧũūŭůűųŵŷźżž-ƀƃƅƈƌƍƒƕƙ-ƛƞơƣƥƨƪƫƭưƴƶƹƺƽ-ƿdžljnjǎǐǒǔǖǘǚǜǝǟǡǣǥǧǩǫǭǯǰdzǵǹǻǽǿȁȃȅȇȉȋȍȏȑȓȕȗșțȝȟȡȣȥȧȩȫȭȯȱȳ-ȹȼȿɀɂɇɉɋɍɏ-ʓʕ-ʸˀˁˠ-ˤͅͱͳͷͺ-ͽΐά-ώϐϑϕ-ϗϙϛϝϟϡϣϥϧϩϫϭϯ-ϳϵϸϻϼа-џѡѣѥѧѩѫѭѯѱѳѵѷѹѻѽѿҁҋҍҏґғҕҗҙқҝҟҡңҥҧҩҫҭүұҳҵҷҹһҽҿӂӄӆӈӊӌӎӏӑӓӕӗәӛӝӟӡӣӥӧөӫӭӯӱӳӵӷӹӻӽӿԁԃԅԇԉԋԍԏԑԓԕԗԙԛԝԟԡԣԥԧԩԫԭԯա-ևᏸ-ᏽᲀ-ᲈᴀ-ᶿḁḃḅḇḉḋḍḏḑḓḕḗḙḛḝḟḡḣḥḧḩḫḭḯḱḳḵḷḹḻḽḿṁṃṅṇṉṋṍṏṑṓṕṗṙṛṝṟṡṣṥṧṩṫṭṯṱṳṵṷṹṻṽṿẁẃẅẇẉẋẍẏẑẓẕ-ẝẟạảấầẩẫậắằẳẵặẹẻẽếềểễệỉịọỏốồổỗộớờởỡợụủứừửữựỳỵỷỹỻỽỿ-ἇἐ-ἕἠ-ἧἰ-ἷὀ-ὅὐ-ὗὠ-ὧὰ-ώᾀ-ᾇᾐ-ᾗᾠ-ᾧᾰ-ᾴᾶᾷιῂ-ῄῆῇῐ-ΐῖῗῠ-ῧῲ-ῴῶῷⁱⁿₐ-ₜℊℎℏℓℯℴℹℼℽⅆ-ⅉⅎⅰ-ⅿↄⓐ-ⓩⰰ-ⱞⱡⱥⱦⱨⱪⱬⱱⱳⱴⱶ-ⱽⲁⲃⲅⲇⲉⲋⲍⲏⲑⲓⲕⲗⲙⲛⲝⲟⲡⲣⲥⲧⲩⲫⲭⲯⲱⲳⲵⲷⲹⲻⲽⲿⳁⳃⳅⳇⳉⳋⳍⳏⳑⳓⳕⳗⳙⳛⳝⳟⳡⳣⳤⳬⳮⳳⴀ-ⴥⴧⴭꙁꙃꙅꙇꙉꙋꙍꙏꙑꙓꙕꙗꙙꙛꙝꙟꙡꙣꙥꙧꙩꙫꙭꚁꚃꚅꚇꚉꚋꚍꚏꚑꚓꚕꚗꚙꚛ-ꚝꜣꜥꜧꜩꜫꜭꜯ-ꜱꜳꜵꜷꜹꜻꜽꜿꝁꝃꝅꝇꝉꝋꝍꝏꝑꝓꝕꝗꝙꝛꝝꝟꝡꝣꝥꝧꝩꝫꝭꝯ-ꝸꝺꝼꝿꞁꞃꞅꞇꞌꞎꞑꞓ-ꞕꞗꞙꞛꞝꞟꞡꞣꞥꞧꞩꞵꞷꟸ-ꟺꬰ-ꭚꭜ-ꭥꭰ-ꮿff-stﬓ-ﬗa-z",astral:"\ud801[\udc28-\udc4f\udcd8-\udcfb]|\ud803[\udcc0-\udcf2]|\ud806[\udcc0-\udcdf]|\ud835[\udc1a-\udc33\udc4e-\udc54\udc56-\udc67\udc82-\udc9b\udcb6-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udccf\udcea-\udd03\udd1e-\udd37\udd52-\udd6b\udd86-\udd9f\uddba-\uddd3\uddee-\ude07\ude22-\ude3b\ude56-\ude6f\ude8a-\udea5\udec2-\udeda\udedc-\udee1\udefc-\udf14\udf16-\udf1b\udf36-\udf4e\udf50-\udf55\udf70-\udf88\udf8a-\udf8f\udfaa-\udfc2\udfc4-\udfc9\udfcb]|\ud83a[\udd22-\udd43]"},{name:"Noncharacter_Code_Point",bmp:"﷐-﷯￾￿",astral:"[\ud83f\ud87f\ud8bf\ud8ff\ud93f\ud97f\ud9bf\ud9ff\uda3f\uda7f\udabf\udaff\udb3f\udb7f\udbbf\udbff][\udffe\udfff]"},{name:"Uppercase",bmp:"A-ZÀ-ÖØ-ÞĀĂĄĆĈĊČĎĐĒĔĖĘĚĜĞĠĢĤĦĨĪĬĮİIJĴĶĹĻĽĿŁŃŅŇŊŌŎŐŒŔŖŘŚŜŞŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽƁƂƄƆƇƉ-ƋƎ-ƑƓƔƖ-ƘƜƝƟƠƢƤƦƧƩƬƮƯƱ-ƳƵƷƸƼDŽLJNJǍǏǑǓǕǗǙǛǞǠǢǤǦǨǪǬǮDZǴǶ-ǸǺǼǾȀȂȄȆȈȊȌȎȐȒȔȖȘȚȜȞȠȢȤȦȨȪȬȮȰȲȺȻȽȾɁɃ-ɆɈɊɌɎͰͲͶͿΆΈ-ΊΌΎΏΑ-ΡΣ-ΫϏϒ-ϔϘϚϜϞϠϢϤϦϨϪϬϮϴϷϹϺϽ-ЯѠѢѤѦѨѪѬѮѰѲѴѶѸѺѼѾҀҊҌҎҐҒҔҖҘҚҜҞҠҢҤҦҨҪҬҮҰҲҴҶҸҺҼҾӀӁӃӅӇӉӋӍӐӒӔӖӘӚӜӞӠӢӤӦӨӪӬӮӰӲӴӶӸӺӼӾԀԂԄԆԈԊԌԎԐԒԔԖԘԚԜԞԠԢԤԦԨԪԬԮԱ-ՖႠ-ჅჇჍᎠ-ᏵḀḂḄḆḈḊḌḎḐḒḔḖḘḚḜḞḠḢḤḦḨḪḬḮḰḲḴḶḸḺḼḾṀṂṄṆṈṊṌṎṐṒṔṖṘṚṜṞṠṢṤṦṨṪṬṮṰṲṴṶṸṺṼṾẀẂẄẆẈẊẌẎẐẒẔẞẠẢẤẦẨẪẬẮẰẲẴẶẸẺẼẾỀỂỄỆỈỊỌỎỐỒỔỖỘỚỜỞỠỢỤỦỨỪỬỮỰỲỴỶỸỺỼỾἈ-ἏἘ-ἝἨ-ἯἸ-ἿὈ-ὍὙὛὝὟὨ-ὯᾸ-ΆῈ-ΉῘ-ΊῨ-ῬῸ-Ώℂℇℋ-ℍℐ-ℒℕℙ-ℝℤΩℨK-ℭℰ-ℳℾℿⅅⅠ-ⅯↃⒶ-ⓏⰀ-ⰮⱠⱢ-ⱤⱧⱩⱫⱭ-ⱰⱲⱵⱾ-ⲀⲂⲄⲆⲈⲊⲌⲎⲐⲒⲔⲖⲘⲚⲜⲞⲠⲢⲤⲦⲨⲪⲬⲮⲰⲲⲴⲶⲸⲺⲼⲾⳀⳂⳄⳆⳈⳊⳌⳎⳐⳒⳔⳖⳘⳚⳜⳞⳠⳢⳫⳭⳲꙀꙂꙄꙆꙈꙊꙌꙎꙐꙒꙔꙖꙘꙚꙜꙞꙠꙢꙤꙦꙨꙪꙬꚀꚂꚄꚆꚈꚊꚌꚎꚐꚒꚔꚖꚘꚚꜢꜤꜦꜨꜪꜬꜮꜲꜴꜶꜸꜺꜼꜾꝀꝂꝄꝆꝈꝊꝌꝎꝐꝒꝔꝖꝘꝚꝜꝞꝠꝢꝤꝦꝨꝪꝬꝮꝹꝻꝽꝾꞀꞂꞄꞆꞋꞍꞐꞒꞖꞘꞚꞜꞞꞠꞢꞤꞦꞨꞪ-ꞮꞰ-ꞴꞶA-Z",astral:"\ud801[\udc00-\udc27\udcb0-\udcd3]|\ud803[\udc80-\udcb2]|\ud806[\udca0-\udcbf]|\ud835[\udc00-\udc19\udc34-\udc4d\udc68-\udc81\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb5\udcd0-\udce9\udd04\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd38\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd6c-\udd85\udda0-\uddb9\uddd4-\udded\ude08-\ude21\ude3c-\ude55\ude70-\ude89\udea8-\udec0\udee2-\udefa\udf1c-\udf34\udf56-\udf6e\udf90-\udfa8\udfca]|\ud83a[\udd00-\udd21]|\ud83c[\udd30-\udd49\udd50-\udd69\udd70-\udd89]"},{name:"White_Space",bmp:"\t-\r …   - \u2028\u2029   "}]},{}],13:[function(e,t,n){t.exports=[{name:"Adlam",astral:"\ud83a[\udd00-\udd4a\udd50-\udd59\udd5e\udd5f]"},{name:"Ahom",astral:"\ud805[\udf00-\udf19\udf1d-\udf2b\udf30-\udf3f]"},{name:"Anatolian_Hieroglyphs",astral:"\ud811[\udc00-\ude46]"},{name:"Arabic",bmp:"؀-؄؆-؋؍-ؚ؜؞ؠ-ؿف-يٖ-ٯٱ-ۜ۞-ۿݐ-ݿࢠ-ࢴࢶ-ࢽࣔ-ࣣ࣡-ࣿﭐ-﯁ﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷽ﹰ-ﹴﹶ-ﻼ",astral:"\ud803[\ude60-\ude7e]|\ud83b[\ude00-\ude03\ude05-\ude1f\ude21\ude22\ude24\ude27\ude29-\ude32\ude34-\ude37\ude39\ude3b\ude42\ude47\ude49\ude4b\ude4d-\ude4f\ude51\ude52\ude54\ude57\ude59\ude5b\ude5d\ude5f\ude61\ude62\ude64\ude67-\ude6a\ude6c-\ude72\ude74-\ude77\ude79-\ude7c\ude7e\ude80-\ude89\ude8b-\ude9b\udea1-\udea3\udea5-\udea9\udeab-\udebb\udef0\udef1]"},{name:"Armenian",bmp:"Ա-Ֆՙ-՟ա-և֊֍-֏ﬓ-ﬗ"},{name:"Avestan",astral:"\ud802[\udf00-\udf35\udf39-\udf3f]"},{name:"Balinese",bmp:"ᬀ-ᭋ᭐-᭼"},{name:"Bamum",bmp:"ꚠ-꛷",astral:"\ud81a[\udc00-\ude38]"},{name:"Bassa_Vah",astral:"\ud81a[\uded0-\udeed\udef0-\udef5]"},{name:"Batak",bmp:"ᯀ-᯳᯼-᯿"},{name:"Bengali",bmp:"ঀ-ঃঅ-ঌএঐও-নপ-রলশ-হ়-ৄেৈো-ৎৗড়ঢ়য়-ৣ০-৽"},{name:"Bhaiksuki",astral:"\ud807[\udc00-\udc08\udc0a-\udc36\udc38-\udc45\udc50-\udc6c]"},{name:"Bopomofo",bmp:"˪˫ㄅ-ㄮㆠ-ㆺ"},{name:"Brahmi",astral:"\ud804[\udc00-\udc4d\udc52-\udc6f\udc7f]"},{name:"Braille",bmp:"⠀-⣿"},{name:"Buginese",bmp:"ᨀ-ᨛ᨞᨟"},{name:"Buhid",bmp:"ᝀ-ᝓ"},{name:"Canadian_Aboriginal",bmp:"᐀-ᙿᢰ-ᣵ"},{name:"Carian",astral:"\ud800[\udea0-\uded0]"},{name:"Caucasian_Albanian",astral:"\ud801[\udd30-\udd63\udd6f]"},{name:"Chakma",astral:"\ud804[\udd00-\udd34\udd36-\udd43]"},{name:"Cham",bmp:"ꨀ-ꨶꩀ-ꩍ꩐-꩙꩜-꩟"},{name:"Cherokee",bmp:"Ꭰ-Ᏽᏸ-ᏽꭰ-ꮿ"},{name:"Common",bmp:"\0-@\\[-`\\{-©«-¹»-¿×÷ʹ-˟˥-˩ˬ-˿ʹ;΅·։؅،؛؟ـ۝࣢।॥฿࿕-࿘჻᛫-᛭᜵᜶᠂᠃᠅᳓᳡ᳩ-ᳬᳮ-ᳳᳵ-᳷ -​‎-⁤⁦-⁰⁴-⁾₀-₎₠-₿℀-℥℧-℩ℬ-ℱℳ-⅍⅏-⅟↉-↋←-␦⑀-⑊①-⟿⤀-⭳⭶-⮕⮘-⮹⮽-⯈⯊-⯒⯬-⯯⸀-⹉⿰-⿻ -〄〆〈-〠〰-〷〼-〿゛゜゠・ー㆐-㆟㇀-㇣㈠-㉟㉿-㋏㍘-㏿䷀-䷿꜀-꜡ꞈ-꞊꠰-꠹꤮ꧏ꭛﴾﴿︐-︙︰-﹒﹔-﹦﹨-﹫\ufeff!-@[-`{-・ー゙゚¢-₩│-○-�",astral:"\ud800[\udd00-\udd02\udd07-\udd33\udd37-\udd3f\udd90-\udd9b\uddd0-\uddfc\udee1-\udefb]|\ud82f[\udca0-\udca3]|\ud834[\udc00-\udcf5\udd00-\udd26\udd29-\udd66\udd6a-\udd7a\udd83\udd84\udd8c-\udda9\uddae-\udde8\udf00-\udf56\udf60-\udf71]|\ud835[\udc00-\udc54\udc56-\udc9c\udc9e\udc9f\udca2\udca5\udca6\udca9-\udcac\udcae-\udcb9\udcbb\udcbd-\udcc3\udcc5-\udd05\udd07-\udd0a\udd0d-\udd14\udd16-\udd1c\udd1e-\udd39\udd3b-\udd3e\udd40-\udd44\udd46\udd4a-\udd50\udd52-\udea5\udea8-\udfcb\udfce-\udfff]|\ud83c[\udc00-\udc2b\udc30-\udc93\udca0-\udcae\udcb1-\udcbf\udcc1-\udccf\udcd1-\udcf5\udd00-\udd0c\udd10-\udd2e\udd30-\udd6b\udd70-\uddac\udde6-\uddff\ude01\ude02\ude10-\ude3b\ude40-\ude48\ude50\ude51\ude60-\ude65\udf00-\udfff]|\ud83d[\udc00-\uded4\udee0-\udeec\udef0-\udef8\udf00-\udf73\udf80-\udfd4]|\ud83e[\udc00-\udc0b\udc10-\udc47\udc50-\udc59\udc60-\udc87\udc90-\udcad\udd00-\udd0b\udd10-\udd3e\udd40-\udd4c\udd50-\udd6b\udd80-\udd97\uddc0\uddd0-\udde6]|\udb40[\udc01\udc20-\udc7f]"},{name:"Coptic",bmp:"Ϣ-ϯⲀ-ⳳ⳹-⳿"},{name:"Cuneiform",astral:"\ud808[\udc00-\udf99]|\ud809[\udc00-\udc6e\udc70-\udc74\udc80-\udd43]"},{name:"Cypriot",astral:"\ud802[\udc00-\udc05\udc08\udc0a-\udc35\udc37\udc38\udc3c\udc3f]"},{name:"Cyrillic",bmp:"Ѐ-҄҇-ԯᲀ-ᲈᴫᵸⷠ-ⷿꙀ-ꚟ︮︯"},{name:"Deseret",astral:"\ud801[\udc00-\udc4f]"},{name:"Devanagari",bmp:"ऀ-ॐ॓-ॣ०-ॿ꣠-ꣽ"},{name:"Duployan",astral:"\ud82f[\udc00-\udc6a\udc70-\udc7c\udc80-\udc88\udc90-\udc99\udc9c-\udc9f]"},{name:"Egyptian_Hieroglyphs",astral:"\ud80c[\udc00-\udfff]|\ud80d[\udc00-\udc2e]"},{name:"Elbasan",astral:"\ud801[\udd00-\udd27]"},{name:"Ethiopic",bmp:"ሀ-ቈቊ-ቍቐ-ቖቘቚ-ቝበ-ኈኊ-ኍነ-ኰኲ-ኵኸ-ኾዀዂ-ዅወ-ዖዘ-ጐጒ-ጕጘ-ፚ፝-፼ᎀ-᎙ⶀ-ⶖⶠ-ⶦⶨ-ⶮⶰ-ⶶⶸ-ⶾⷀ-ⷆⷈ-ⷎⷐ-ⷖⷘ-ⷞꬁ-ꬆꬉ-ꬎꬑ-ꬖꬠ-ꬦꬨ-ꬮ"},{name:"Georgian",bmp:"Ⴀ-ჅჇჍა-ჺჼ-ჿⴀ-ⴥⴧⴭ"},{name:"Glagolitic",bmp:"Ⰰ-Ⱞⰰ-ⱞ",astral:"\ud838[\udc00-\udc06\udc08-\udc18\udc1b-\udc21\udc23\udc24\udc26-\udc2a]"},{name:"Gothic",astral:"\ud800[\udf30-\udf4a]"},{name:"Grantha",astral:"\ud804[\udf00-\udf03\udf05-\udf0c\udf0f\udf10\udf13-\udf28\udf2a-\udf30\udf32\udf33\udf35-\udf39\udf3c-\udf44\udf47\udf48\udf4b-\udf4d\udf50\udf57\udf5d-\udf63\udf66-\udf6c\udf70-\udf74]"},{name:"Greek",bmp:"Ͱ-ͳ͵-ͷͺ-ͽͿ΄ΆΈ-ΊΌΎ-ΡΣ-ϡϰ-Ͽᴦ-ᴪᵝ-ᵡᵦ-ᵪᶿἀ-ἕἘ-Ἕἠ-ὅὈ-Ὅὐ-ὗὙὛὝὟ-ώᾀ-ᾴᾶ-ῄῆ-ΐῖ-Ί῝-`ῲ-ῴῶ-῾Ωꭥ",astral:"\ud800[\udd40-\udd8e\udda0]|\ud834[\ude00-\ude45]"},{name:"Gujarati",bmp:"ઁ-ઃઅ-ઍએ-ઑઓ-નપ-રલળવ-હ઼-ૅે-ૉો-્ૐૠ-ૣ૦-૱ૹ-૿"},{name:"Gurmukhi",bmp:"ਁ-ਃਅ-ਊਏਐਓ-ਨਪ-ਰਲਲ਼ਵਸ਼ਸਹ਼ਾ-ੂੇੈੋ-੍ੑਖ਼-ੜਫ਼੦-ੵ"},{name:"Han",bmp:"⺀-⺙⺛-⻳⼀-⿕々〇〡-〩〸-〻㐀-䶵一-鿪豈-舘並-龎",astral:"[\ud840-\ud868\ud86a-\ud86c\ud86f-\ud872\ud874-\ud879][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d\udc20-\udfff]|\ud873[\udc00-\udea1\udeb0-\udfff]|\ud87a[\udc00-\udfe0]|\ud87e[\udc00-\ude1d]"},{name:"Hangul",bmp:"ᄀ-ᇿ〮〯ㄱ-ㆎ㈀-㈞㉠-㉾ꥠ-ꥼ가-힣ힰ-ퟆퟋ-ퟻᅠ-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ"},{name:"Hanunoo",bmp:"ᜠ-᜴"},{name:"Hatran",astral:"\ud802[\udce0-\udcf2\udcf4\udcf5\udcfb-\udcff]"},{name:"Hebrew",bmp:"֑-ׇא-תװ-״יִ-זּטּ-לּמּנּסּףּפּצּ-ﭏ"},{name:"Hiragana",bmp:"ぁ-ゖゝ-ゟ",astral:"\ud82c[\udc01-\udd1e]|🈀"},{name:"Imperial_Aramaic",astral:"\ud802[\udc40-\udc55\udc57-\udc5f]"},{name:"Inherited",bmp:"̀-ًͯ҅҆-ٰٕ॒॑᪰-᪾᳐-᳔᳒-᳢᳠-᳨᳭᳴᳸᳹᷀-᷹᷻-᷿‌‍⃐-〪⃰-゙゚〭︀-️︠-︭",astral:"\ud800[\uddfd\udee0]|\ud834[\udd67-\udd69\udd7b-\udd82\udd85-\udd8b\uddaa-\uddad]|\udb40[\udd00-\uddef]"},{name:"Inscriptional_Pahlavi",astral:"\ud802[\udf60-\udf72\udf78-\udf7f]"},{name:"Inscriptional_Parthian",astral:"\ud802[\udf40-\udf55\udf58-\udf5f]"},{name:"Javanese",bmp:"ꦀ-꧍꧐-꧙꧞꧟"},{name:"Kaithi",astral:"\ud804[\udc80-\udcc1]"},{name:"Kannada",bmp:"ಀ-ಃಅ-ಌಎ-ಐಒ-ನಪ-ಳವ-ಹ಼-ೄೆ-ೈೊ-್ೕೖೞೠ-ೣ೦-೯ೱೲ"},{name:"Katakana",bmp:"ァ-ヺヽ-ヿㇰ-ㇿ㋐-㋾㌀-㍗ヲ-ッア-ン",astral:"𛀀"},{name:"Kayah_Li",bmp:"꤀-꤭꤯"},{name:"Kharoshthi",astral:"\ud802[\ude00-\ude03\ude05\ude06\ude0c-\ude13\ude15-\ude17\ude19-\ude33\ude38-\ude3a\ude3f-\ude47\ude50-\ude58]"},{name:"Khmer",bmp:"ក-៝០-៩៰-៹᧠-᧿"},{name:"Khojki",astral:"\ud804[\ude00-\ude11\ude13-\ude3e]"},{name:"Khudawadi",astral:"\ud804[\udeb0-\udeea\udef0-\udef9]"},{name:"Lao",bmp:"ກຂຄງຈຊຍດ-ທນ-ຟມ-ຣລວສຫອ-ູົ-ຽເ-ໄໆ່-ໍ໐-໙ໜ-ໟ"},{name:"Latin",bmp:"A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞮꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z"},{name:"Lepcha",bmp:"ᰀ-᰷᰻-᱉ᱍ-ᱏ"},{name:"Limbu",bmp:"ᤀ-ᤞᤠ-ᤫᤰ-᤻᥀᥄-᥏"},{name:"Linear_A",astral:"\ud801[\ude00-\udf36\udf40-\udf55\udf60-\udf67]"},{name:"Linear_B",astral:"\ud800[\udc00-\udc0b\udc0d-\udc26\udc28-\udc3a\udc3c\udc3d\udc3f-\udc4d\udc50-\udc5d\udc80-\udcfa]"},{name:"Lisu",bmp:"ꓐ-꓿"},{name:"Lycian",astral:"\ud800[\ude80-\ude9c]"},{name:"Lydian",astral:"\ud802[\udd20-\udd39\udd3f]"},{name:"Mahajani",astral:"\ud804[\udd50-\udd76]"},{name:"Malayalam",bmp:"ഀ-ഃഅ-ഌഎ-ഐഒ-ൄെ-ൈൊ-൏ൔ-ൣ൦-ൿ"},{name:"Mandaic",bmp:"ࡀ-࡛࡞"},{name:"Manichaean",astral:"\ud802[\udec0-\udee6\udeeb-\udef6]"},{name:"Marchen",astral:"\ud807[\udc70-\udc8f\udc92-\udca7\udca9-\udcb6]"},{name:"Masaram_Gondi",astral:"\ud807[\udd00-\udd06\udd08\udd09\udd0b-\udd36\udd3a\udd3c\udd3d\udd3f-\udd47\udd50-\udd59]"},{name:"Meetei_Mayek",bmp:"ꫠ-꫶ꯀ-꯭꯰-꯹"},{name:"Mende_Kikakui",astral:"\ud83a[\udc00-\udcc4\udcc7-\udcd6]"},{name:"Meroitic_Cursive",astral:"\ud802[\udda0-\uddb7\uddbc-\uddcf\uddd2-\uddff]"},{name:"Meroitic_Hieroglyphs",astral:"\ud802[\udd80-\udd9f]"},{name:"Miao",astral:"\ud81b[\udf00-\udf44\udf50-\udf7e\udf8f-\udf9f]"},{name:"Modi",astral:"\ud805[\ude00-\ude44\ude50-\ude59]"},{name:"Mongolian",bmp:"᠀᠁᠄᠆-᠎᠐-᠙ᠠ-ᡷᢀ-ᢪ",astral:"\ud805[\ude60-\ude6c]"},{name:"Mro",astral:"\ud81a[\ude40-\ude5e\ude60-\ude69\ude6e\ude6f]"},{name:"Multani",astral:"\ud804[\ude80-\ude86\ude88\ude8a-\ude8d\ude8f-\ude9d\ude9f-\udea9]"},{name:"Myanmar",bmp:"က-႟ꧠ-ꧾꩠ-ꩿ"},{name:"Nabataean",astral:"\ud802[\udc80-\udc9e\udca7-\udcaf]"},{name:"New_Tai_Lue",bmp:"ᦀ-ᦫᦰ-ᧉ᧐-᧚᧞᧟"},{name:"Newa",astral:"\ud805[\udc00-\udc59\udc5b\udc5d]"},{name:"Nko",bmp:"߀-ߺ"},{name:"Nushu",astral:"𖿡|\ud82c[\udd70-\udefb]"},{name:"Ogham",bmp:" -᚜"},{name:"Ol_Chiki",bmp:"᱐-᱿"},{name:"Old_Hungarian",astral:"\ud803[\udc80-\udcb2\udcc0-\udcf2\udcfa-\udcff]"},{name:"Old_Italic",astral:"\ud800[\udf00-\udf23\udf2d-\udf2f]"},{name:"Old_North_Arabian",astral:"\ud802[\ude80-\ude9f]"},{name:"Old_Permic",astral:"\ud800[\udf50-\udf7a]"},{name:"Old_Persian",astral:"\ud800[\udfa0-\udfc3\udfc8-\udfd5]"},{name:"Old_South_Arabian",astral:"\ud802[\ude60-\ude7f]"},{name:"Old_Turkic",astral:"\ud803[\udc00-\udc48]"},{name:"Oriya",bmp:"ଁ-ଃଅ-ଌଏଐଓ-ନପ-ରଲଳଵ-ହ଼-ୄେୈୋ-୍ୖୗଡ଼ଢ଼ୟ-ୣ୦-୷"},{name:"Osage",astral:"\ud801[\udcb0-\udcd3\udcd8-\udcfb]"},{name:"Osmanya",astral:"\ud801[\udc80-\udc9d\udca0-\udca9]"},{name:"Pahawh_Hmong",astral:"\ud81a[\udf00-\udf45\udf50-\udf59\udf5b-\udf61\udf63-\udf77\udf7d-\udf8f]"},{name:"Palmyrene",astral:"\ud802[\udc60-\udc7f]"},{name:"Pau_Cin_Hau",astral:"\ud806[\udec0-\udef8]"},{name:"Phags_Pa",bmp:"ꡀ-꡷"},{name:"Phoenician",astral:"\ud802[\udd00-\udd1b\udd1f]"},{name:"Psalter_Pahlavi",astral:"\ud802[\udf80-\udf91\udf99-\udf9c\udfa9-\udfaf]"},{name:"Rejang",bmp:"ꤰ-꥓꥟"},{name:"Runic",bmp:"ᚠ-ᛪᛮ-ᛸ"},{name:"Samaritan",bmp:"ࠀ-࠭࠰-࠾"},{name:"Saurashtra",bmp:"ꢀ-ꣅ꣎-꣙"},{name:"Sharada",astral:"\ud804[\udd80-\uddcd\uddd0-\udddf]"},{name:"Shavian",astral:"\ud801[\udc50-\udc7f]"},{name:"Siddham",astral:"\ud805[\udd80-\uddb5\uddb8-\udddd]"},{name:"SignWriting",astral:"\ud836[\udc00-\ude8b\ude9b-\ude9f\udea1-\udeaf]"},{name:"Sinhala",bmp:"ංඃඅ-ඖක-නඳ-රලව-ෆ්ා-ුූෘ-ෟ෦-෯ෲ-෴",astral:"\ud804[\udde1-\uddf4]"},{name:"Sora_Sompeng",astral:"\ud804[\udcd0-\udce8\udcf0-\udcf9]"},{name:"Soyombo",astral:"\ud806[\ude50-\ude83\ude86-\ude9c\ude9e-\udea2]"},{name:"Sundanese",bmp:"ᮀ-ᮿ᳀-᳇"},{name:"Syloti_Nagri",bmp:"ꠀ-꠫"},{name:"Syriac",bmp:"܀-܍܏-݊ݍ-ݏࡠ-ࡪ"},{name:"Tagalog",bmp:"ᜀ-ᜌᜎ-᜔"},{name:"Tagbanwa",bmp:"ᝠ-ᝬᝮ-ᝰᝲᝳ"},{name:"Tai_Le",bmp:"ᥐ-ᥭᥰ-ᥴ"},{name:"Tai_Tham",bmp:"ᨠ-ᩞ᩠-᩿᩼-᪉᪐-᪙᪠-᪭"},{name:"Tai_Viet",bmp:"ꪀ-ꫂꫛ-꫟"},{name:"Takri",astral:"\ud805[\ude80-\udeb7\udec0-\udec9]"},{name:"Tamil",bmp:"ஂஃஅ-ஊஎ-ஐஒ-கஙசஜஞடணதந-பம-ஹா-ூெ-ைொ-்ௐௗ௦-௺"},{name:"Tangut",astral:"𖿠|[\ud81c-\ud820][\udc00-\udfff]|\ud821[\udc00-\udfec]|\ud822[\udc00-\udef2]"},{name:"Telugu",bmp:"ఀ-ఃఅ-ఌఎ-ఐఒ-నప-హఽ-ౄె-ైొ-్ౕౖౘ-ౚౠ-ౣ౦-౯౸-౿"},{name:"Thaana",bmp:"ހ-ޱ"},{name:"Thai",bmp:"ก-ฺเ-๛"},{name:"Tibetan",bmp:"ༀ-ཇཉ-ཬཱ-ྗྙ-ྼ྾-࿌࿎-࿔࿙࿚"},{name:"Tifinagh",bmp:"ⴰ-ⵧⵯ⵰⵿"},{name:"Tirhuta",astral:"\ud805[\udc80-\udcc7\udcd0-\udcd9]"},{name:"Ugaritic",astral:"\ud800[\udf80-\udf9d\udf9f]"},{name:"Vai",bmp:"ꔀ-ꘫ"},{name:"Warang_Citi",astral:"\ud806[\udca0-\udcf2\udcff]"},{name:"Yi",bmp:"ꀀ-ꒌ꒐-꓆"},{name:"Zanabazar_Square",astral:"\ud806[\ude00-\ude47]"}]},{}]},{},[8])(8)},function(e,t,n){"use strict";n.r(t);var i={};function r(e,t){for(var n=[],i=2;in||e===n&&t>i?(this.startLineNumber=n,this.startColumn=i,this.endLineNumber=e,this.endColumn=t):(this.startLineNumber=e,this.startColumn=t,this.endLineNumber=n,this.endColumn=i)}return e.prototype.isEmpty=function(){return e.isEmpty(this)},e.isEmpty=function(e){return e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn},e.prototype.containsPosition=function(t){return e.containsPosition(this,t)},e.containsPosition=function(e,t){return!(t.lineNumbere.endLineNumber||t.lineNumber===e.startLineNumber&&t.columne.endColumn)},e.prototype.containsRange=function(t){return e.containsRange(this,t)},e.containsRange=function(e,t){return!(t.startLineNumbere.endLineNumber||t.endLineNumber>e.endLineNumber||t.startLineNumber===e.startLineNumber&&t.startColumne.endColumn)},e.prototype.plusRange=function(t){return e.plusRange(this,t)},e.plusRange=function(t,n){var i,r,o,s;return n.startLineNumbert.endLineNumber?(o=n.endLineNumber,s=n.endColumn):n.endLineNumber===t.endLineNumber?(o=n.endLineNumber,s=Math.max(n.endColumn,t.endColumn)):(o=t.endLineNumber,s=t.endColumn),new e(i,r,o,s)},e.prototype.intersectRanges=function(t){return e.intersectRanges(this,t)},e.intersectRanges=function(t,n){var i=t.startLineNumber,r=t.startColumn,o=t.endLineNumber,s=t.endColumn,a=n.startLineNumber,l=n.startColumn,u=n.endLineNumber,d=n.endColumn;return iu?(o=u,s=d):o===u&&(s=Math.min(s,d)),i>o?null:i===o&&r>s?null:new e(i,r,o,s)},e.prototype.equalsRange=function(t){return e.equalsRange(this,t)},e.equalsRange=function(e,t){return!!e&&!!t&&e.startLineNumber===t.startLineNumber&&e.startColumn===t.startColumn&&e.endLineNumber===t.endLineNumber&&e.endColumn===t.endColumn},e.prototype.getEndPosition=function(){return new o(this.endLineNumber,this.endColumn)},e.prototype.getStartPosition=function(){return new o(this.startLineNumber,this.startColumn)},e.prototype.toString=function(){return"["+this.startLineNumber+","+this.startColumn+" -> "+this.endLineNumber+","+this.endColumn+"]"},e.prototype.setEndPosition=function(t,n){return new e(this.startLineNumber,this.startColumn,t,n)},e.prototype.setStartPosition=function(t,n){return new e(t,n,this.endLineNumber,this.endColumn)},e.prototype.collapseToStart=function(){return e.collapseToStart(this)},e.collapseToStart=function(t){return new e(t.startLineNumber,t.startColumn,t.startLineNumber,t.startColumn)},e.fromPositions=function(t,n){return void 0===n&&(n=t),new e(t.lineNumber,t.column,n.lineNumber,n.column)},e.lift=function(t){return t?new e(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):null},e.isIRange=function(e){return e&&"number"==typeof e.startLineNumber&&"number"==typeof e.startColumn&&"number"==typeof e.endLineNumber&&"number"==typeof e.endColumn},e.areIntersectingOrTouching=function(e,t){return!(e.endLineNumbere.startLineNumber},e}(),a={ICodeEditor:"vs.editor.ICodeEditor",IDiffEditor:"vs.editor.IDiffEditor"},l={ExecuteCommand:"executeCommand",ExecuteCommands:"executeCommands",Type:"type",ReplacePreviousChar:"replacePreviousChar",CompositionStart:"compositionStart",CompositionEnd:"compositionEnd",Paste:"paste",Cut:"cut",Undo:"undo",Redo:"redo"},u="";function d(e){return!e||"string"!=typeof e||0===e.trim().length}function c(e,t,n){void 0===n&&(n="0");for(var i=""+e,r=[i],o=i.length;o=t.length?e:t[i]})}function h(e){return e.replace(/[<|>|&]/g,function(e){switch(e){case"<":return"<";case">":return">";case"&":return"&";default:return e}})}function p(e){return e.replace(/[\-\\\{\}\*\+\?\|\^\$\.\[\]\(\)\#]/g,"\\$&")}function f(e,t){return void 0===t&&(t=" "),S(y(e,t),t)}function y(e,t){if(!e||!t)return e;var n=t.length;if(0===n||0===e.length)return e;for(var i=0;e.indexOf(t,i)===i;)i+=n;return e.substring(i)}function S(e,t){if(!e||!t)return e;var n=t.length,i=e.length;if(0===n||0===i)return e;for(var r=i,o=-1;-1!==(o=e.lastIndexOf(t,r-1))&&o+n===r;){if(0===o)return"";r=o}return e.substring(0,r)}function b(e){return e.replace(/[\-\\\{\}\+\?\|\^\$\.\,\[\]\(\)\#\s]/g,"\\$&").replace(/[\*]/g,".*")}function I(e,t){if(e.length0?e.indexOf(t,n)===n:0===n&&e===t}function _(e,t,n){if(void 0===n&&(n={}),!e)throw new Error("Cannot create regex from empty string");t||(e=p(e)),n.wholeWord&&(/\B/.test(e.charAt(0))||(e="\\b"+e),/\B/.test(e.charAt(e.length-1))||(e+="\\b"));var i="";return n.global&&(i+="g"),n.matchCase||(i+="i"),n.multiline&&(i+="m"),new RegExp(e,i)}function v(e){return"^"!==e.source&&"^$"!==e.source&&"$"!==e.source&&"^\\s*$"!==e.source&&e.exec("")&&0===e.lastIndex}function T(e){for(var t=0,n=e.length;t=0;n--){var i=e.charCodeAt(n);if(32!==i&&9!==i)return n}return-1}function B(e,t){return et?1:0}function D(e,t){for(var n=Math.min(e.length,t.length),i=0;it.length?1:0}function A(e){return e>=97&&e<=122}function R(e){return e>=65&&e<=90}function E(e){return A(e)||R(e)}function K(e,t){return(e?e.length:0)===(t?t.length:0)&&N(e,t)}function N(e,t,n){if(void 0===n&&(n=e.length),"string"!=typeof e||"string"!=typeof t)return!1;for(var i=0;ie.length)&&N(e,t,n)}function O(e,t){var n,i=Math.min(e.length,t.length);for(n=0;n=11904&&e<=55215||e>=63744&&e<=64255||e>=65281&&e<=65374}var q=String.fromCharCode(65279);function Y(e){return e&&e.length>0&&65279===e.charCodeAt(0)}function H(e){return btoa(encodeURIComponent(e))}function Z(e,t){for(var n="",i=0;i=97&&o<=122||o>=65&&o<=90||o>=48&&o<=57||45===o||46===o||95===o||126===o||t&&47===o)-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),void 0!==n&&(n+=e.charAt(r));else{void 0===n&&(n=e.substr(0,r));var s=ue[o];void 0!==s?(-1!==i&&(n+=encodeURIComponent(e.substring(i,r)),i=-1),n+=s):-1===i&&(i=r)}}return-1!==i&&(n+=encodeURIComponent(e.substring(i))),void 0!==n?n:e}function ce(e){for(var t=void 0,n=0;n1&&"file"===e.scheme?"//"+e.authority+e.path:47===e.path.charCodeAt(0)&&(e.path.charCodeAt(1)>=65&&e.path.charCodeAt(1)<=90||e.path.charCodeAt(1)>=97&&e.path.charCodeAt(1)<=122)&&58===e.path.charCodeAt(2)?e.path[1].toLowerCase()+e.path.substr(2):e.path,X.g&&(t=t.replace(/\//g,"\\")),t}function me(e,t){var n=t?ce:de,i="",r=e.scheme,o=e.authority,s=e.path,a=e.query,l=e.fragment;if(r&&(i+=r,i+=":"),(o||"file"===r)&&(i+=re,i+=re),o){var u=o.indexOf("@");if(-1!==u){var d=o.substr(0,u);o=o.substr(u+1),-1===(u=d.indexOf(":"))?i+=n(d,!1):(i+=n(d.substr(0,u),!1),i+=":",i+=n(d.substr(u+1),!1)),i+="@"}-1===(u=(o=o.toLowerCase()).indexOf(":"))?i+=n(o,!1):(i+=n(o.substr(0,u),!1),i+=o.substr(u))}if(s){if(s.length>=3&&47===s.charCodeAt(0)&&58===s.charCodeAt(2))(c=s.charCodeAt(1))>=65&&c<=90&&(s="/"+String.fromCharCode(c+32)+":"+s.substr(3));else if(s.length>=2&&58===s.charCodeAt(1)){var c;(c=s.charCodeAt(0))>=65&&c<=90&&(s=String.fromCharCode(c+32)+":"+s.substr(2))}i+=n(s,!0)}return a&&(i+="?",i+=n(a,!1)),l&&(i+="#",i+=t?l:de(l,!1)),i}var he=n(0),pe={};he.b.addEventListener("error",function(e){var t=e.detail,n=t.id;t.parent?t.handler&&pe&&delete pe[n]:(pe[n]=t,1===Object.keys(pe).length&&setTimeout(function(){var e=pe;pe={},Object.keys(e).forEach(function(t){var n=e[t];n.exception?ye(n.exception):n.error&&ye(n.error),console.log("WARNING: Promise with no error callback:"+n.id),console.log(n),n.exception&&console.log(n.exception.stack)})},0))});var fe=new(function(){function e(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(function(){if(e.stack)throw new Error(e.message+"\n\n"+e.stack);throw e},0)}}return e.prototype.emit=function(e){this.listeners.forEach(function(t){t(e)})},e.prototype.onUnexpectedError=function(e){this.unexpectedErrorHandler(e),this.emit(e)},e.prototype.onUnexpectedExternalError=function(e){this.unexpectedErrorHandler(e)},e}());function ye(e){Ce(e)||fe.onUnexpectedError(e)}function Se(e){Ce(e)||fe.onUnexpectedExternalError(e)}function be(e){return e instanceof Error?{$isError:!0,name:e.name,message:e.message,stack:e.stacktrace||e.stack}:e}var Ie="Canceled";function Ce(e){return e instanceof Error&&e.name===Ie&&e.message===Ie}function _e(){var e=new Error(Ie);return e.name=e.message,e}function ve(e){return e?new Error("Illegal argument: "+e):new Error("Illegal argument")}function Te(e){return"function"==typeof e.dispose&&0===e.dispose.length}function xe(e){for(var t=[],n=1;n0;){var i=this._deliveryQueue.shift(),r=i[0],o=i[1];try{"function"==typeof r?r.call(void 0,o):r[0].call(r[1],o)}catch(n){ye(n)}}}},e.prototype.dispose=function(){this._listeners&&(this._listeners=void 0),this._deliveryQueue&&(this._deliveryQueue.length=0),this._disposed=!0},e._noop=function(){},e}(),Pe=function(){function e(){var e=this;this.hasListeners=!1,this.events=[],this.emitter=new Ne({onFirstListenerAdd:function(){return e.onFirstListenerAdd()},onLastListenerRemove:function(){return e.onLastListenerRemove()}})}return Object.defineProperty(e.prototype,"event",{get:function(){return this.emitter.event},enumerable:!0,configurable:!0}),e.prototype.add=function(e){var t=this,n={event:e,listener:null};return this.events.push(n),this.hasListeners&&this.hook(n),Be(function(e){var t,n=this,i=!1;return function(){return i?t:(i=!0,t=e.apply(n,arguments))}}(function(){t.hasListeners&&t.unhook(n);var e=t.events.indexOf(n);t.events.splice(e,1)}))},e.prototype.onFirstListenerAdd=function(){var e=this;this.hasListeners=!0,this.events.forEach(function(t){return e.hook(t)})},e.prototype.onLastListenerRemove=function(){var e=this;this.hasListeners=!1,this.events.forEach(function(t){return e.unhook(t)})},e.prototype.hook=function(e){var t=this;e.listener=e.event(function(e){return t.emitter.fire(e)})},e.prototype.unhook=function(e){e.listener.dispose(),e.listener=null},e.prototype.dispose=function(){this.emitter.dispose()},e}();function Oe(e,t,n,i){var r;void 0===n&&(n=100),void 0===i&&(i=!1);var o=void 0,s=void 0,a=0,l=new Ne({onFirstListenerAdd:function(){r=e(function(e){a++,o=t(o,e),i&&!s&&l.fire(o),clearTimeout(s),s=setTimeout(function(){var e=o;o=void 0,s=void 0,(!i||a>1)&&l.fire(e),a=0},n)})},onLastListenerRemove:function(){r.dispose()}});return l.event}var $e=function(){function e(){this.buffers=[]}return e.prototype.wrapEvent=function(e){var t=this;return function(n,i,r){return e(function(e){var r=t.buffers[t.buffers.length-1];r?r.push(function(){return n.call(i,e)}):n.call(i,e)},void 0,r)}},e.prototype.bufferEvents=function(e){var t=[];this.buffers.push(t),e(),this.buffers.pop(),t.forEach(function(e){return e()})},e}();function ke(e,t){return function(n,i,r){return void 0===i&&(i=null),e(function(e){return n.call(i,t(e))},null,r)}}function Le(e,t){return function(n,i,r){return void 0===i&&(i=null),e(function(e){return t(e)&&n.call(i,e)},null,r)}}var Me=function(){function e(e){this._event=e}return Object.defineProperty(e.prototype,"event",{get:function(){return this._event},enumerable:!0,configurable:!0}),e.prototype.map=function(t){return new e(ke(this._event,t))},e.prototype.filter=function(t){return new e(Le(this._event,t))},e.prototype.on=function(e,t,n){return this._event(e,t,n)},e}();function Fe(e){return new Me(e)}var ze,je,Ue,Ge,We=function(){function e(){this.emitter=new Ne,this.event=this.emitter.event,this.disposable=Ae.None}return Object.defineProperty(e.prototype,"input",{set:function(e){this.disposable.dispose(),this.disposable=e(this.emitter.fire,this.emitter)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this.disposable.dispose(),this.emitter.dispose()},e}();!function(e){e[e.Left=1]="Left",e[e.Center=2]="Center",e[e.Right=4]="Right",e[e.Full=7]="Full"}(ze||(ze={})),function(e){e[e.TextDefined=0]="TextDefined",e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(je||(je={})),function(e){e[e.LF=1]="LF",e[e.CRLF=2]="CRLF"}(Ue||(Ue={})),function(e){e[e.LF=0]="LF",e[e.CRLF=1]="CRLF"}(Ge||(Ge={}));var Ve,qe=function(){function e(e){this.tabSize=0|e.tabSize,this.insertSpaces=Boolean(e.insertSpaces),this.defaultEOL=0|e.defaultEOL,this.trimAutoWhitespace=Boolean(e.trimAutoWhitespace)}return e.prototype.equals=function(e){return this.tabSize===e.tabSize&&this.insertSpaces===e.insertSpaces&&this.defaultEOL===e.defaultEOL&&this.trimAutoWhitespace===e.trimAutoWhitespace},e.prototype.createChangeEvent=function(e){return{tabSize:this.tabSize!==e.tabSize,insertSpaces:this.insertSpaces!==e.insertSpaces,trimAutoWhitespace:this.trimAutoWhitespace!==e.trimAutoWhitespace}},e}(),Ye=function(e,t){this.range=e,this.matches=t};!function(e){e[e.AlwaysGrowsWhenTypingAtEdges=0]="AlwaysGrowsWhenTypingAtEdges",e[e.NeverGrowsWhenTypingAtEdges=1]="NeverGrowsWhenTypingAtEdges",e[e.GrowsOnlyWhenTypingBefore=2]="GrowsOnlyWhenTypingBefore",e[e.GrowsOnlyWhenTypingAfter=3]="GrowsOnlyWhenTypingAfter"}(Ve||(Ve={}));var He=function(e,t,n){this.reverseEdits=e,this.changes=t,this.trimAutoWhitespaceLineNumbers=n};function Ze(e,t){return void 0===t&&(t=0),e[e.length-(1+t)]}function Qe(e,t,n){if(void 0===n&&(n=function(e,t){return e===t}),e.length!==t.length)return!1;for(var i=0,r=e.length;ii?e[l]=o[a++]:a>r?e[l]=o[s++]:t(o[a],o[s])<0?e[l]=o[a++]:e[l]=o[s++]}(t,n,i,s,r,o)}}(e,t,0,e.length-1,[]),e}(e.slice(0),t);rt;r--)i.push(r);return i}var it="/",rt=X.g?"\\":"/";function ot(e){var t=~e.lastIndexOf("/")||~e.lastIndexOf("\\");return 0===t?e:~t==e.length-1?ot(e.substring(0,e.length-1)):e.substr(1+~t)}function st(e){var t=~(e=ot(e)).lastIndexOf(".");return t?e.substring(~t):""}var at=/(\/\.\.?\/)|(\/\.\.?)$|^(\.\.?\/)|(\/\/+)|(\\)/,lt=/(\\\.\.?\\)|(\\\.\.?)$|^(\.\.?\\)|(\\\\+)|(\/)/;function ut(e,t){if(null===e||void 0===e)return e;var n=e.length;if(0===n)return".";var i=X.g&&t;if(function(e,t){return i?!lt.test(e):!at.test(e)}(e))return e;for(var r=i?"\\":"/",o=function(e,t){if(void 0===t&&(t="/"),!e)return"";var n=e.length,i=e.charCodeAt(0);if(47===i||92===i){if((47===(i=e.charCodeAt(1))||92===i)&&47!==(i=e.charCodeAt(2))&&92!==i){for(var r=3,o=r;r=65&&i<=90||i>=97&&i<=122)&&58===e.charCodeAt(1))return 47===(i=e.charCodeAt(2))||92===i?e.slice(0,2)+t:e.slice(0,2);var s=e.indexOf("://");if(-1!==s)for(s+=3;s0)&&".."!==c&&(l=-1===d?"":l.slice(0,d),a=!0)}else dt(e,s,u,".")&&(o||l||u0)n.left||(n.left=new ft,n.left.segment=i.value()),n=n.left;else if(r<0)n.right||(n.right=new ft,n.right.segment=i.value()),n=n.right;else{if(!i.hasNext())break;i.next(),n.mid||(n.mid=new ft,n.mid.segment=i.value()),n=n.mid}}var o=n.value;return n.value=t,n.key=e,o},e.prototype.get=function(e){for(var t=this._iter.reset(e),n=this._root;n;){var i=t.cmp(n.segment);if(i>0)n=n.left;else if(i<0)n=n.right;else{if(!t.hasNext())break;t.next(),n=n.mid}}return n?n.value:void 0},e.prototype.findSubstr=function(e){for(var t,n=this._iter.reset(e),i=this._root;i;){var r=n.cmp(i.segment);if(r>0)i=i.left;else if(r<0)i=i.right;else{if(!n.hasNext())break;n.next(),t=i.value||t,i=i.mid}}return i&&i.value||t},e.prototype.forEach=function(e){this._forEach(this._root,e)},e.prototype._forEach=function(e,t){e&&(this._forEach(e.left,t),e.value&&t(e.value,e.key),this._forEach(e.mid,t),this._forEach(e.right,t))},e}(),St=function(){function e(){this.map=new Map,this.ignoreCase=!1}return e.prototype.set=function(e,t){this.map.set(this.toKey(e),t)},e.prototype.get=function(e){return this.map.get(this.toKey(e))},e.prototype.toKey=function(e){var t=e.toString();return this.ignoreCase&&(t=t.toLowerCase()),t},e}();!function(e){e[e.None=0]="None",e[e.AsOld=1]="AsOld",e[e.AsNew=2]="AsNew"}(mt||(mt={}));var bt=function(e){function t(t,n){void 0===n&&(n=1);var i=e.call(this)||this;return i._limit=t,i._ratio=Math.min(Math.max(0,n),1),i}return ct(t,e),t.prototype.get=function(t){return e.prototype.get.call(this,t,mt.AsNew)},t.prototype.set=function(t,n){e.prototype.set.call(this,t,n,mt.AsNew),this.checkTrim()},t.prototype.checkTrim=function(){this.size>this._limit&&this.trimOld(Math.round(this._limit*this._ratio))},t}(function(){function e(){this._map=new Map,this._head=void 0,this._tail=void 0,this._size=0}return e.prototype.clear=function(){this._map.clear(),this._head=void 0,this._tail=void 0,this._size=0},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),e.prototype.get=function(e,t){void 0===t&&(t=mt.None);var n=this._map.get(e);if(n)return t!==mt.None&&this.touch(n,t),n.value},e.prototype.set=function(e,t,n){void 0===n&&(n=mt.None);var i=this._map.get(e);if(i)i.value=t,n!==mt.None&&this.touch(i,n);else{switch(i={key:e,value:t,next:void 0,previous:void 0},n){case mt.None:this.addItemLast(i);break;case mt.AsOld:this.addItemFirst(i);break;case mt.AsNew:default:this.addItemLast(i)}this._map.set(e,i),this._size++}},e.prototype.forEach=function(e,t){for(var n=this._head;n;)t?e.bind(t)(n.value,n.key,this):e(n.value,n.key,this),n=n.next},e.prototype.trimOld=function(e){if(!(e>=this.size))if(0!==e){for(var t=this._head,n=this.size;t&&n>e;)this._map.delete(t.key),t=t.next,n--;this._head=t,this._size=n,t.previous=void 0}else this.clear()},e.prototype.addItemFirst=function(e){if(this._head||this._tail){if(!this._head)throw new Error("Invalid list");e.next=this._head,this._head.previous=e}else this._tail=e;this._head=e},e.prototype.addItemLast=function(e){if(this._head||this._tail){if(!this._tail)throw new Error("Invalid list");e.previous=this._tail,this._tail.next=e}else this._head=e;this._tail=e},e.prototype.touch=function(e,t){if(!this._head||!this._tail)throw new Error("Invalid list");if(t===mt.AsOld||t===mt.AsNew)if(t===mt.AsOld){if(e===this._head)return;var n=e.next,i=e.previous;e===this._tail?(i.next=void 0,this._tail=i):(n.previous=i,i.next=n),e.previous=void 0,e.next=this._head,this._head.previous=e,this._head=e}else if(t===mt.AsNew){if(e===this._tail)return;n=e.next,i=e.previous,e===this._head?(n.previous=void 0,this._head=n):(n.previous=i,i.next=n),e.next=void 0,e.previous=this._tail,this._tail.next=e,this._tail=e}},e.prototype.toJSON=function(){var e=[];return this.forEach(function(t,n){e.push([n,t])}),e},e}()),It="**",Ct="/",_t="[/\\\\]",vt="[^/\\\\]",Tt=/\//g;function xt(e){switch(e){case 0:return"";case 1:return vt+"*?";default:return"(?:"+_t+"|"+vt+"+"+_t+"|"+_t+vt+"+)*?"}}function wt(e,t){if(!e)return[];for(var n,i=[],r=!1,o=!1,s="",a=0;ae.length)&&(t.charAt(t.length-1)!==i&&(t+=i),0===e.indexOf(t)))}(n,t.base)?e(ut(t.pathToRelative(t.base,n)),i):null}}function Mt(e,t){return t.trimForExclusions&&C(e,"/**")?e.substr(0,e.length-2):e}function Ft(e,t,n){var i=rt!==it?e.replace(Tt,rt):e,r=rt+i,o=n?function(e,n){return e&&(e===i||C(e,r))?t:null}:function(e,n){return e&&e===i?t:null};return o.allPaths=[(n?"*/":"./")+e],o}function zt(e,t,n){return!(!e||!t)&&function(e,t){if(void 0===t&&(t={}),!e)return Ot;if("string"==typeof e||function(e){var t=e;return t&&"string"==typeof t.base&&"string"==typeof t.pattern&&"function"==typeof t.pathToRelative}(e)){var n=kt(e,t);if(n===$t)return Ot;var i=function(e,t){return!!n(e,t)};return n.allBasenames&&(i.allBasenames=n.allBasenames),n.allPaths&&(i.allPaths=n.allPaths),i}return function(e,t){var n=jt(Object.getOwnPropertyNames(e).map(function(n){return function(e,t,n){if(!1===t)return $t;var i=kt(e,n);if(i===$t)return $t;if("boolean"==typeof t)return i;if(t){var r=t.when;if("string"==typeof r){var o=function(t,n,o,s){if(!s||!i(t,n))return null;var a=s(r.replace("$(basename)",o));return he.b.is(a)?a.then(function(t){return t?e:null}):a?e:null};return o.requiresSiblings=!0,o}}return i}(n,e[n],t)}).filter(function(e){return e!==$t})),i=n.length;if(!i)return $t;if(!n.some(function(e){return e.requiresSiblings})){if(1===i)return n[0];var r=function(e,t){for(var i=0,r=n.length;i0;n--){var o=e.charCodeAt(n-1);if(47===o||92===o)break}t=e.substr(n)}var s=r.indexOf(t);return-1!==s?i[s]:null};a.basenames=r,a.patterns=i,a.allBasenames=r;var l=e.filter(function(e){return!e.basenames});return l.push(a),l}function Ut(e,t,n,i){if(Array.isArray(e)){for(var r=0,o=0,s=e;or&&(r=a)}return r}if("string"==typeof e)return i?"*"===e?5:e===n?10:0:0;if(e){var l=e.language,u=e.pattern,d=e.scheme,c=e.hasAccessToAllModels;if(!i&&!c)return 0;if(r=0,d)if(d===t.scheme)r=10;else{if("*"!==d)return 0;r=5}if(l)if(l===n)r=10;else{if("*"!==l)return 0;r=Math.max(r,5)}if(u){if(u!==t.fsPath&&!zt(u,t.fsPath))return 0;r=10}return r}return 0}!function(e){e.serviceIds=new Map,e.DI_TARGET="$di$target",e.DI_DEPENDENCIES="$di$dependencies",e.getServiceDependencies=function(t){return t[e.DI_DEPENDENCIES]||[]}}(Bt||(Bt={}));var Gt=Vt("instantiationService");function Wt(e,t,n,i){t[Bt.DI_TARGET]===t?t[Bt.DI_DEPENDENCIES].push({id:e,index:n,optional:i}):(t[Bt.DI_DEPENDENCIES]=[{id:e,index:n,optional:i}],t[Bt.DI_TARGET]=t)}function Vt(e){if(Bt.serviceIds.has(e))return Bt.serviceIds.get(e);var t=function(e,n,i){if(3!==arguments.length)throw new Error("@IServiceName-decorator can only be used to decorate a parameter");Wt(t,e,i,!1)};return t.toString=function(){return e},Bt.serviceIds.set(e,t),t}function qt(e){return function(t,n,i){if(3!==arguments.length)throw new Error("@optional-decorator can only be used to decorate a parameter");Wt(e,t,i,!0)}}var Yt=Vt("modelService");function Ht(e){return!e.isTooLargeForSyncing()&&!e.isForSimpleWidget}function Zt(e){return"string"!=typeof e&&(Array.isArray(e)?e.every(Zt):e.exclusive)}var Qt=function(){function e(){this._clock=0,this._entries=[],this._onDidChange=new Ne}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var n=this,i={selector:e,provider:t,_score:-1,_time:this._clock++};return this._entries.push(i),this._lastCandidate=void 0,this._onDidChange.fire(this._entries.length),Be(function(){if(i){var e=n._entries.indexOf(i);e>=0&&(n._entries.splice(e,1),n._lastCandidate=void 0,n._onDidChange.fire(n._entries.length),i=void 0)}})},e.prototype.has=function(e){return this.all(e).length>0},e.prototype.all=function(e){if(!e)return[];this._updateScores(e);for(var t=[],n=0,i=this._entries;n0&&t.push(r.provider)}return t},e.prototype.ordered=function(e){var t=[];return this._orderedForEach(e,function(e){return t.push(e.provider)}),t},e.prototype.orderedGroups=function(e){var t,n,i=[];return this._orderedForEach(e,function(e){t&&n===e._score?t.push(e.provider):(n=e._score,t=[e.provider],i.push(t))}),i},e.prototype._orderedForEach=function(e,t){if(e){this._updateScores(e);for(var n=0;n0&&t(i)}}},e.prototype._updateScores=function(t){var n={uri:t.uri.toString(),language:t.getLanguageIdentifier().language};if(!this._lastCandidate||this._lastCandidate.language!==n.language||this._lastCandidate.uri!==n.uri){this._lastCandidate=n;for(var i=0,r=this._entries;i0){for(var s=0,a=this._entries;st._score?-1:e._timet._time?-1:0},e}(),Xt=function(){function e(){this._onDidChange=new Ne,this.onDidChange=this._onDidChange.event,this._map=Object.create(null),this._colorMap=null}return e.prototype.fire=function(e){this._onDidChange.fire({changedLanguages:e,changedColorMap:!1})},e.prototype.register=function(e,t){var n=this;return this._map[e]=t,this.fire([e]),Be(function(){n._map[e]===t&&(delete n._map[e],n.fire([e]))})},e.prototype.get=function(e){return this._map[e]||null},e.prototype.setColorMap=function(e){this._colorMap=e,this._onDidChange.fire({changedLanguages:Object.keys(this._map),changedColorMap:!0})},e.prototype.getColorMap=function(){return this._colorMap},e.prototype.getDefaultBackground=function(){return this._colorMap[2]},e}(),Jt={number:"number",string:"string",undefined:"undefined",object:"object",function:"function"};function en(e){return Array.isArray?Array.isArray(e):!(!e||typeof e.length!==Jt.number||e.constructor!==Array)}function tn(e){return typeof e===Jt.string||e instanceof String}function nn(e){return!(typeof e!==Jt.object||null===e||Array.isArray(e)||e instanceof RegExp||e instanceof Date)}function rn(e){return(typeof e===Jt.number||e instanceof Number)&&!isNaN(e)}function on(e){return!0===e||!1===e}function sn(e){return typeof e===Jt.undefined}function an(e){return sn(e)||null===e}var ln=Object.prototype.hasOwnProperty;function un(e){if(!nn(e))return!1;for(var t in e)if(ln.call(e,t))return!1;return!0}function dn(e){return typeof e===Jt.function}function cn(e,t){if(tn(t)){if(typeof e!==t)throw new Error("argument does not match constraint: typeof "+t)}else if(dn(t)){if(e instanceof t)return;if(!an(e)&&e.constructor===t)return;if(1===t.length&&!0===t.call(void 0,e))return;throw new Error("argument does not match one of these constraints: arg instanceof constraint, arg.constructor === constraint, nor constraint(arg) === true")}}var gn,mn,hn,pn,fn=function(e,t){this.language=e,this.id=t},yn=function(){function e(){}return e.getLanguageId=function(e){return(255&e)>>>0},e.getTokenType=function(e){return(1792&e)>>>8},e.getFontStyle=function(e){return(14336&e)>>>11},e.getForeground=function(e){return(8372224&e)>>>14},e.getBackground=function(e){return(4286578688&e)>>>23},e.getClassNameFromMetadata=function(e){var t="mtk"+this.getForeground(e),n=this.getFontStyle(e);return 1&n&&(t+=" mtki"),2&n&&(t+=" mtkb"),4&n&&(t+=" mtku"),t},e.getInlineStyleFromMetadata=function(e,t){var n=this.getForeground(e),i=this.getFontStyle(e),r="color: "+t[n]+";";return 1&i&&(r+="font-style: italic;"),2&i&&(r+="font-weight: bold;"),4&i&&(r+="text-decoration: underline;"),r},e}();!function(e){e[e.Invoke=0]="Invoke",e[e.TriggerCharacter=1]="TriggerCharacter",e[e.TriggerForIncompleteCompletions=2]="TriggerForIncompleteCompletions"}(gn||(gn={})),function(e){e[e.Automatic=1]="Automatic",e[e.Manual=2]="Manual"}(mn||(mn={})),function(e){e[e.Text=0]="Text",e[e.Read=1]="Read",e[e.Write=2]="Write"}(hn||(hn={})),function(e){e[e.File=0]="File",e[e.Module=1]="Module",e[e.Namespace=2]="Namespace",e[e.Package=3]="Package",e[e.Class=4]="Class",e[e.Method=5]="Method",e[e.Property=6]="Property",e[e.Field=7]="Field",e[e.Constructor=8]="Constructor",e[e.Enum=9]="Enum",e[e.Interface=10]="Interface",e[e.Function=11]="Function",e[e.Variable=12]="Variable",e[e.Constant=13]="Constant",e[e.String=14]="String",e[e.Number=15]="Number",e[e.Boolean=16]="Boolean",e[e.Array=17]="Array",e[e.Object=18]="Object",e[e.Key=19]="Key",e[e.Null=20]="Null",e[e.EnumMember=21]="EnumMember",e[e.Struct=22]="Struct",e[e.Event=23]="Event",e[e.Operator=24]="Operator",e[e.TypeParameter=25]="TypeParameter"}(pn||(pn={})),function(){var e=Object.create(null);e[pn.File]="file",e[pn.Module]="module",e[pn.Namespace]="namespace",e[pn.Package]="package",e[pn.Class]="class",e[pn.Method]="method",e[pn.Property]="property",e[pn.Field]="field",e[pn.Constructor]="constructor",e[pn.Enum]="enum",e[pn.Interface]="interface",e[pn.Function]="function",e[pn.Variable]="variable",e[pn.Constant]="constant",e[pn.String]="string",e[pn.Number]="number",e[pn.Boolean]="boolean",e[pn.Array]="array",e[pn.Object]="object",e[pn.Key]="key",e[pn.Null]="null",e[pn.EnumMember]="enum-member",e[pn.Struct]="struct",e[pn.Event]="event",e[pn.Operator]="operator",e[pn.TypeParameter]="type-parameter"}();var Sn=function(){function e(e){this.value=e}return e.Comment=new e("comment"),e.Imports=new e("imports"),e.Region=new e("region"),e}();function bn(e){return nn(e)&&e.resource&&Array.isArray(e.edits)}var In=new Qt,Cn=new Qt,_n=new Qt,vn=new Qt,Tn=new Qt,xn=new Qt,wn=new Qt,Bn=new Qt,Dn=new Qt,An=new Qt,Rn=new Qt,En=new Qt,Kn=new Qt,Nn=new Qt,Pn=new Qt,On=new Qt,$n=new Qt,kn=new Qt,Ln=new Xt,Mn=function(){function e(e,t){this.beforeVersionId=e,this.beforeCursorState=t,this.afterCursorState=null,this.afterVersionId=-1,this.editOperations=[]}return e.prototype.undo=function(e){for(var t=this.editOperations.length-1;t>=0;t--)this.editOperations[t]={operations:e.applyEdits(this.editOperations[t].operations)}},e.prototype.redo=function(e){for(var t=0;t0){var e=this.past.pop();try{e.undo(this.model)}catch(e){return ye(e),this.clear(),null}return this.future.push(e),{selections:e.beforeCursorState,recordedVersionId:e.beforeVersionId}}return null},e.prototype.canUndo=function(){return this.past.length>0},e.prototype.redo=function(){if(this.future.length>0){var e=this.future.pop();try{e.redo(this.model)}catch(e){return ye(e),this.clear(),null}return this.past.push(e),{selections:e.afterCursorState,recordedVersionId:e.afterVersionId}}return null},e.prototype.canRedo=function(){return this.future.length>0},e}(),Gn=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){e[e.LTR=0]="LTR",e[e.RTL=1]="RTL"}(zn||(zn={}));var Wn=function(e){function t(t,n,i,r){var o=e.call(this,t,n,i,r)||this;return o.selectionStartLineNumber=t,o.selectionStartColumn=n,o.positionLineNumber=i,o.positionColumn=r,o}return Gn(t,e),t.prototype.clone=function(){return new t(this.selectionStartLineNumber,this.selectionStartColumn,this.positionLineNumber,this.positionColumn)},t.prototype.toString=function(){return"["+this.selectionStartLineNumber+","+this.selectionStartColumn+" -> "+this.positionLineNumber+","+this.positionColumn+"]"},t.prototype.equalsSelection=function(e){return t.selectionsEqual(this,e)},t.selectionsEqual=function(e,t){return e.selectionStartLineNumber===t.selectionStartLineNumber&&e.selectionStartColumn===t.selectionStartColumn&&e.positionLineNumber===t.positionLineNumber&&e.positionColumn===t.positionColumn},t.prototype.getDirection=function(){return this.selectionStartLineNumber===this.startLineNumber&&this.selectionStartColumn===this.startColumn?zn.LTR:zn.RTL},t.prototype.setEndPosition=function(e,n){return this.getDirection()===zn.LTR?new t(this.startLineNumber,this.startColumn,e,n):new t(e,n,this.startLineNumber,this.startColumn)},t.prototype.getPosition=function(){return new o(this.positionLineNumber,this.positionColumn)},t.prototype.setStartPosition=function(e,n){return this.getDirection()===zn.LTR?new t(e,n,this.endLineNumber,this.endColumn):new t(this.endLineNumber,this.endColumn,e,n)},t.fromPositions=function(e,n){return void 0===n&&(n=e),new t(e.lineNumber,e.column,n.lineNumber,n.column)},t.liftSelection=function(e){return new t(e.selectionStartLineNumber,e.selectionStartColumn,e.positionLineNumber,e.positionColumn)},t.selectionsArrEqual=function(e,t){if(e&&!t||!e&&t)return!1;if(!e&&!t)return!0;if(e.length!==t.length)return!1;for(var n=0,i=e.length;n>>0}function ei(e,t){e.metadata=254&e.metadata|t<<0}function ti(e){return(2&e.metadata)>>>1==1}function ni(e,t){e.metadata=253&e.metadata|(t?1:0)<<1}function ii(e){return(4&e.metadata)>>>2==1}function ri(e,t){e.metadata=251&e.metadata|(t?1:0)<<2}function oi(e){return(8&e.metadata)>>>3==1}function si(e,t){e.metadata=247&e.metadata|(t?1:0)<<3}function ai(e,t){e.metadata=207&e.metadata|t<<4}var li=function(){function e(e,t,n){this.metadata=0,this.parent=null,this.left=null,this.right=null,ei(this,1),this.start=t,this.end=n,this.delta=0,this.maxEnd=n,this.id=e,this.ownerId=0,this.options=null,ri(this,!1),ai(this,1),si(this,!1),this.cachedVersionId=0,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=null,ni(this,!1)}return e.prototype.reset=function(e,t,n,i){this.start=t,this.end=n,this.maxEnd=n,this.cachedVersionId=e,this.cachedAbsoluteStart=t,this.cachedAbsoluteEnd=n,this.range=i},e.prototype.setOptions=function(e){this.options=e;var t=this.options.className;ri(this,"squiggly-error"===t||"squiggly-warning"===t||"squiggly-info"===t),ai(this,this.options.stickiness),si(this,!!this.options.overviewRuler.color)},e.prototype.setCachedOffsets=function(e,t,n){this.cachedVersionId!==n&&(this.range=null),this.cachedVersionId=n,this.cachedAbsoluteStart=e,this.cachedAbsoluteEnd=t},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}(),ui=new li(null,0,0);ui.parent=ui,ui.left=ui,ui.right=ui,ei(ui,0);var di=function(){function e(){this.root=ui,this.requestNormalizeDelta=!1}return e.prototype.intervalSearch=function(e,t,n,i,r){return this.root===ui?[]:function(e,t,n,i,r,o){for(var s=e.root,a=0,l=0,u=0,d=[],c=0;s!==ui;)if(ti(s))ni(s.left,!1),ni(s.right,!1),s===s.parent.right&&(a-=s.parent.delta),s=s.parent;else{if(!ti(s.left)){if(a+s.maxEndn)ni(s,!0);else{if((u=a+s.end)>=t){s.setCachedOffsets(l,u,o);var g=!0;i&&s.ownerId&&s.ownerId!==i&&(g=!1),r&&ii(s)&&(g=!1),g&&(d[c++]=s)}ni(s,!0),s.right===ui||ti(s.right)||(a+=s.delta,s=s.right)}}return ni(e.root,!1),d}(this,e,t,n,i,r)},e.prototype.search=function(e,t,n){return this.root===ui?[]:function(e,t,n,i){for(var r=e.root,o=0,s=0,a=0,l=[],u=0;r!==ui;)if(ti(r))ni(r.left,!1),ni(r.right,!1),r===r.parent.right&&(o-=r.parent.delta),r=r.parent;else if(r.left===ui||ti(r.left)){s=o+r.start,a=o+r.end,r.setCachedOffsets(s,a,i);var d=!0;t&&r.ownerId&&r.ownerId!==t&&(d=!1),n&&ii(r)&&(d=!1),d&&(l[u++]=r),ni(r,!0),r.right===ui||ti(r.right)||(o+=r.delta,r=r.right)}else r=r.left;return ni(e.root,!1),l}(this,e,t,n)},e.prototype.collectNodesFromOwner=function(e){return function(e,t){for(var n=e.root,i=[],r=0;n!==ui;)ti(n)?(ni(n.left,!1),ni(n.right,!1),n=n.parent):n.left===ui||ti(n.left)?(n.ownerId===t&&(i[r++]=n),ni(n,!0),n.right===ui||ti(n.right)||(n=n.right)):n=n.left;return ni(e.root,!1),i}(this,e)},e.prototype.collectNodesPostOrder=function(){return function(e){for(var t=e.root,n=[],i=0;t!==ui;)ti(t)?(ni(t.left,!1),ni(t.right,!1),t=t.parent):t.left===ui||ti(t.left)?t.right===ui||ti(t.right)?(n[i++]=t,ni(t,!0)):t=t.right:t=t.left;return ni(e.root,!1),n}(this)},e.prototype.insert=function(e){mi(this,e),this._normalizeDeltaIfNecessary()},e.prototype.delete=function(e){hi(this,e),this._normalizeDeltaIfNecessary()},e.prototype.resolveNode=function(e,t){for(var n=e,i=0;e!==this.root;)e===e.parent.right&&(i+=e.parent.delta),e=e.parent;var r=n.start+i,o=n.end+i;n.setCachedOffsets(r,o,t)},e.prototype.acceptReplace=function(e,t,n,i){for(var r=function(e,t,n){for(var i=e.root,r=0,o=0,s=0,a=[],l=0;i!==ui;)if(ti(i))ni(i.left,!1),ni(i.right,!1),i===i.parent.right&&(r-=i.parent.delta),i=i.parent;else{if(!ti(i.left)){if(r+i.maxEndn?ni(i,!0):((s=r+i.end)>=t&&(i.setCachedOffsets(o,s,0),a[l++]=i),ni(i,!0),i.right===ui||ti(i.right)||(r+=i.delta,i=i.right))}return ni(e.root,!1),a}(this,e,e+t),o=0,s=r.length;on?(r.start+=s,r.end+=s,r.delta+=s,(r.delta<-1073741824||r.delta>1073741824)&&(e.requestNormalizeDelta=!0),ni(r,!0)):(ni(r,!0),r.right===ui||ti(r.right)||(o+=r.delta,r=r.right))}ni(e.root,!1)}(this,e,e+t,n),this._normalizeDeltaIfNecessary(),o=0,s=r.length;on)&&1!==i&&(2===i||t)}function gi(e,t,n,i,r){var o=function(e){return(48&e.metadata)>>>4}(e),s=0===o||2===o,a=1===o||2===o,l=n-t,u=i,d=Math.min(l,u),c=e.start,g=!1,m=e.end,h=!1,p=r?1:l>0?2:0;!g&&ci(c,s,t,p)&&(g=!0),!h&&ci(m,a,t,p)&&(h=!0),d>0&&!r&&(p=l>u?2:0,!g&&ci(c,s,t+d,p)&&(g=!0),!h&&ci(m,a,t+d,p)&&(h=!0)),p=r?1:0,!g&&ci(c,s,n,p)&&(e.start=t+u,g=!0),!h&&ci(m,a,n,p)&&(e.end=t+u,h=!0);var f=u-l;g||(e.start=Math.max(0,c+f),g=!0),h||(e.end=Math.max(0,m+f),h=!0),e.start>e.end&&(e.end=e.start)}function mi(e,t){if(e.root===ui)return t.parent=ui,t.left=ui,t.right=ui,ei(t,0),e.root=t,e.root;!function(e,t){for(var n=0,i=e.root,r=t.start,o=t.end;;){if(Ci(r,o,i.start+n,i.end+n)<0){if(i.left===ui){t.start-=n,t.end-=n,t.maxEnd-=n,i.left=t;break}i=i.left}else{if(i.right===ui){t.start-=n+i.delta,t.end-=n+i.delta,t.maxEnd-=n+i.delta,i.right=t;break}n+=i.delta,i=i.right}}t.parent=i,t.left=ui,t.right=ui,ei(t,1)}(e,t),Ii(t.parent);for(var n=t;n!==e.root&&1===Jn(n.parent);){var i;n.parent===n.parent.parent.left?1===Jn(i=n.parent.parent.right)?(ei(n.parent,0),ei(i,0),ei(n.parent.parent,1),n=n.parent.parent):(n===n.parent.right&&fi(e,n=n.parent),ei(n.parent,0),ei(n.parent.parent,1),yi(e,n.parent.parent)):1===Jn(i=n.parent.parent.left)?(ei(n.parent,0),ei(i,0),ei(n.parent.parent,1),n=n.parent.parent):(n===n.parent.left&&yi(e,n=n.parent),ei(n.parent,0),ei(n.parent.parent,1),fi(e,n.parent.parent))}return ei(e.root,0),t}function hi(e,t){var n,i;if(t.left===ui?(i=t,(n=t.right).delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta):t.right===ui?(n=t.left,i=t):((n=(i=function(e){for(;e.left!==ui;)e=e.left;return e}(t.right)).right).start+=i.delta,n.end+=i.delta,n.delta+=i.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),i.start+=t.delta,i.end+=t.delta,i.delta=t.delta,(i.delta<-1073741824||i.delta>1073741824)&&(e.requestNormalizeDelta=!0)),i===e.root)return e.root=n,ei(n,0),t.detach(),pi(),bi(n),void(e.root.parent=ui);var r,o=1===Jn(i);if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?n.parent=i.parent:(i.parent===t?n.parent=i:n.parent=i.parent,i.left=t.left,i.right=t.right,i.parent=t.parent,ei(i,Jn(t)),t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==ui&&(i.left.parent=i),i.right!==ui&&(i.right.parent=i)),t.detach(),o)return Ii(n.parent),i!==t&&(Ii(i),Ii(i.parent)),void pi();for(Ii(n),Ii(n.parent),i!==t&&(Ii(i),Ii(i.parent));n!==e.root&&0===Jn(n);)n===n.parent.left?(1===Jn(r=n.parent.right)&&(ei(r,0),ei(n.parent,1),fi(e,n.parent),r=n.parent.right),0===Jn(r.left)&&0===Jn(r.right)?(ei(r,1),n=n.parent):(0===Jn(r.right)&&(ei(r.left,0),ei(r,1),yi(e,r),r=n.parent.right),ei(r,Jn(n.parent)),ei(n.parent,0),ei(r.right,0),fi(e,n.parent),n=e.root)):(1===Jn(r=n.parent.left)&&(ei(r,0),ei(n.parent,1),yi(e,n.parent),r=n.parent.left),0===Jn(r.left)&&0===Jn(r.right)?(ei(r,1),n=n.parent):(0===Jn(r.left)&&(ei(r.right,0),ei(r,1),fi(e,r),r=n.parent.left),ei(r,Jn(n.parent)),ei(n.parent,0),ei(r.left,0),yi(e,n.parent),n=e.root));ei(n,0),pi()}function pi(){ui.parent=ui,ui.delta=0,ui.start=0,ui.end=0}function fi(e,t){var n=t.right;n.delta+=t.delta,(n.delta<-1073741824||n.delta>1073741824)&&(e.requestNormalizeDelta=!0),n.start+=t.delta,n.end+=t.delta,t.right=n.left,n.left!==ui&&(n.left.parent=t),n.parent=t.parent,t.parent===ui?e.root=n:t===t.parent.left?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n,bi(t),bi(n)}function yi(e,t){var n=t.left;t.delta-=n.delta,(t.delta<-1073741824||t.delta>1073741824)&&(e.requestNormalizeDelta=!0),t.start-=n.delta,t.end-=n.delta,t.left=n.right,n.right!==ui&&(n.right.parent=t),n.parent=t.parent,t.parent===ui?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n,bi(t),bi(n)}function Si(e){var t=e.end;if(e.left!==ui){var n=e.left.maxEnd;n>t&&(t=n)}if(e.right!==ui){var i=e.right.maxEnd+e.delta;i>t&&(t=i)}return t}function bi(e){e.maxEnd=Si(e)}function Ii(e){for(;e!==ui;){var t=Si(e);if(e.maxEnd===t)return;e.maxEnd=t,e=e.parent}}function Ci(e,t,n,i){return e===n?t-i:e-n}var _i=X.b.performance&&"function"==typeof X.b.performance.now,vi=function(){function e(e){this._highResolution=_i&&e,this._startTime=this._now(),this._stopTime=-1}return e.create=function(t){return void 0===t&&(t=!0),new e(t)},e.prototype.elapsed=function(){return-1!==this._stopTime?this._stopTime-this._startTime:this._now()-this._startTime},e.prototype._now=function(){return this._highResolution?X.b.performance.now():(new Date).getTime()},e}(),Ti=function(){function e(e,t,n){this.offset=0|e,this.type=t,this.language=n}return e.prototype.toString=function(){return"("+this.offset+", "+this.type+")"},e}(),xi=function(e,t){this.tokens=e,this.endState=t},wi=function(e,t){this.tokens=e,this.endState=t},Bi=new(function(){function e(){}return e.prototype.clone=function(){return this},e.prototype.equals=function(e){return this===e},e}()),Di=new fn("vs.editor.nullMode",0);function Ai(e,t,n,i){var r=new Uint32Array(2);return r[0]=i,r[1]=(16384|e<<0|2<<23)>>>0,new wi(r,n)}function Ri(e,t){for(var n=e.getCount(),i=e.findTokenIndexAtOffset(t),r=e.getLanguageId(i),o=i;o+10&&e.getLanguageId(s-1)===r;)s--;return new Ei(e,r,s,o+1,e.getStartOffset(s),e.getEndOffset(o))}var Ei=function(){function e(e,t,n,i,r,o){this._actual=e,this.languageId=t,this._firstTokenIndex=n,this._lastTokenIndex=i,this.firstCharOffset=r,this._lastCharOffset=o}return e.prototype.getLineContent=function(){return this._actual.getLineContent().substring(this.firstCharOffset,this._lastCharOffset)},e.prototype.getTokenCount=function(){return this._lastTokenIndex-this._firstTokenIndex},e.prototype.findTokenIndexAtOffset=function(e){return this._actual.findTokenIndexAtOffset(e+this.firstCharOffset)-this._firstTokenIndex},e.prototype.getStandardTokenType=function(e){return this._actual.getStandardTokenType(e+this._firstTokenIndex)},e}();function Ki(e){return 0!=(7&e)}var Ni=function(e,t,n,i,r){this.languageIdentifier=e,this.open=t,this.close=n,this.forwardRegex=i,this.reversedRegex=r},Pi=function(e,t){var n=this;this.brackets=t.map(function(t){return new Ni(e,t[0],t[1],$i({open:t[0],close:t[1]}),ki({open:t[0],close:t[1]}))}),this.forwardRegex=Li(this.brackets),this.reversedRegex=Mi(this.brackets),this.textIsBracket={},this.textIsOpenBracket={};var i=0;this.brackets.forEach(function(e){n.textIsBracket[e.open.toLowerCase()]=e,n.textIsBracket[e.close.toLowerCase()]=e,n.textIsOpenBracket[e.open.toLowerCase()]=!0,n.textIsOpenBracket[e.close.toLowerCase()]=!1,i=Math.max(i,e.open.length),i=Math.max(i,e.close.length)}),this.maxBracketLength=i};function Oi(e,t){var n={};return function(i){var r=e(i);return n.hasOwnProperty(r)||(n[r]=t(i)),n[r]}}var $i=Oi(function(e){return e.open+";"+e.close},function(e){return zi([e.open,e.close])}),ki=Oi(function(e){return e.open+";"+e.close},function(e){return zi([Ui(e.open),Ui(e.close)])}),Li=Oi(function(e){return e.map(function(e){return e.open+";"+e.close}).join(";")},function(e){var t=[];return e.forEach(function(e){t.push(e.open),t.push(e.close)}),zi(t)}),Mi=Oi(function(e){return e.map(function(e){return e.open+";"+e.close}).join(";")},function(e){var t=[];return e.forEach(function(e){t.push(Ui(e.open)),t.push(Ui(e.close))}),zi(t)});function Fi(e){var t=/^[\w]+$/.test(e);return e=p(e),t?"\\b"+e+"\\b":e}function zi(e){return _("("+e.map(Fi).join(")|(")+")",!0)}var ji,Ui=function(){var e=null,t=null;return function(n){return e!==n&&(t=function(e){for(var t="",n=e.length-1;n>=0;n--)t+=e.charAt(n);return t}(e=n)),t}}(),Gi=function(){function e(){}return e._findPrevBracketInText=function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=n.length-r.index,a=r[0].length,l=i+o;return new s(t,l-a+1,t,l+1)},e.findPrevBracketInToken=function(e,t,n,i,r){var o=Ui(n).substring(n.length-r,n.length-i);return this._findPrevBracketInText(e,t,o,i)},e.findNextBracketInText=function(e,t,n,i){var r=n.match(e);if(!r)return null;var o=r.index,a=r[0].length;if(0===a)return null;var l=i+o;return new s(t,l+1,t,l+1+a)},e.findNextBracketInToken=function(e,t,n,i,r){var o=n.substring(i,r);return this.findNextBracketInText(e,t,o,i)},e}();!function(e){e[e.None=0]="None",e[e.Indent=1]="Indent",e[e.IndentOutdent=2]="IndentOutdent",e[e.Outdent=3]="Outdent"}(ji||(ji={}));var Wi=function(){function e(e){if(this.open=e.open,this.close=e.close,this._standardTokenMask=0,Array.isArray(e.notIn))for(var t=0,n=e.notIn.length;t1&&!!e.close}).map(function(e){return new Wi(e)}),n.docComment&&this._complexAutoClosePairs.push(new Wi({open:n.docComment.open,close:n.docComment.close}))}return e.prototype.getElectricCharacters=function(){var e=[];if(this._richEditBrackets)for(var t=0,n=this._richEditBrackets.brackets.length;t=0))return{appendText:s.close}}}return null},e}(),Yi=function(){function e(t){(t=t||{}).brackets=t.brackets||[["(",")"],["{","}"],["[","]"]],this._brackets=t.brackets.map(function(t){return{open:t[0],openRegExp:e._createOpenBracketRegExp(t[0]),close:t[1],closeRegExp:e._createCloseBracketRegExp(t[1])}}),this._regExpRules=t.regExpRules||[]}return e.prototype.onEnter=function(e,t,n){for(var i=0,r=this._regExpRules.length;i0&&n.length>0)for(i=0,r=this._brackets.length;i0)for(i=0,r=this._brackets.length;i/?",Qi=function(e){void 0===e&&(e="");for(var t="(-?\\d*\\.\\d\\w*)|([^",n=0;n=0||(t+="\\"+Zi[n]);return t+="\\s]+)",new RegExp(t,"g")}();function Xi(e){var t=Qi;if(e&&e instanceof RegExp)if(e.global)t=e;else{var n="g";e.ignoreCase&&(n+="i"),e.multiline&&(n+="m"),t=new RegExp(e.source,n)}return t.lastIndex=0,t}function Ji(e,t,n,i){t.lastIndex=0;var r=t.exec(n);if(!r)return null;var o=r[0].indexOf(" ")>=0?function(e,t,n,i){var r,o=e-1-i;for(t.lastIndex=0;r=t.exec(n);){if(r.index>o)return null;if(t.lastIndex>=o)return{word:r[0],startColumn:i+1+r.index,endColumn:i+1+t.lastIndex}}return null}(e,t,n,i):function(e,t,n,i){var r,o=e-1-i,s=n.lastIndexOf(" ",o-1)+1,a=n.indexOf(" ",o);for(-1===a&&(a=n.length),t.lastIndex=s;r=t.exec(n);)if(r.index<=o&&t.lastIndex>=o)return{word:r[0],startColumn:i+1+r.index,endColumn:i+1+t.lastIndex};return null}(e,t,n,i);return t.lastIndex=0,o}var er=function(){function e(t,n,i){this._languageIdentifier=t,this._brackets=null,this._electricCharacter=null;var r=null;n&&(r=n._conf),this._conf=e._mergeConf(r,i),this.onEnter=e._handleOnEnter(this._conf),this.comments=e._handleComments(this._conf),this.characterPair=new Vi(this._conf),this.wordDefinition=this._conf.wordPattern||Qi,this.indentationRules=this._conf.indentationRules,this._conf.indentationRules&&(this.indentRulesSupport=new Hi(this._conf.indentationRules)),this.foldingRules=this._conf.folding||{}}return Object.defineProperty(e.prototype,"brackets",{get:function(){return!this._brackets&&this._conf.brackets&&(this._brackets=new Pi(this._languageIdentifier,this._conf.brackets)),this._brackets},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"electricCharacter",{get:function(){if(!this._electricCharacter){var e=[];this._conf.autoClosingPairs?e=this._conf.autoClosingPairs:this._conf.brackets&&(e=this._conf.brackets.map(function(e){return{open:e[0],close:e[1]}})),this._electricCharacter=new qi(this.brackets,e,this._conf.__electricCharacterSupport)}return this._electricCharacter},enumerable:!0,configurable:!0}),e._mergeConf=function(e,t){return{comments:e?t.comments||e.comments:t.comments,brackets:e?t.brackets||e.brackets:t.brackets,wordPattern:e?t.wordPattern||e.wordPattern:t.wordPattern,indentationRules:e?t.indentationRules||e.indentationRules:t.indentationRules,onEnterRules:e?t.onEnterRules||e.onEnterRules:t.onEnterRules,autoClosingPairs:e?t.autoClosingPairs||e.autoClosingPairs:t.autoClosingPairs,surroundingPairs:e?t.surroundingPairs||e.surroundingPairs:t.surroundingPairs,folding:e?t.folding||e.folding:t.folding,__electricCharacterSupport:e?t.__electricCharacterSupport||e.__electricCharacterSupport:t.__electricCharacterSupport}},e._handleOnEnter=function(e){var t={},n=!0;return e.brackets&&(n=!1,t.brackets=e.brackets),e.indentationRules&&(n=!1),e.onEnterRules&&(n=!1,t.regExpRules=e.onEnterRules),n?null:new Yi(t)},e._handleComments=function(e){var t=e.comments;if(!t)return null;var n={};if(t.lineComment&&(n.lineCommentToken=t.lineComment),t.blockComment){var i=t.blockComment,r=i[0],o=i[1];n.blockCommentStartToken=r,n.blockCommentEndToken=o}return n},e}(),tr=new(function(){function e(){this._onDidChange=new Ne,this.onDidChange=this._onDidChange.event,this._entries=[]}return e.prototype.register=function(e,t){var n=this,i=this._getRichEditSupport(e.id),r=new er(e,i,t);return this._entries[e.id]=r,this._onDidChange.fire({languageIdentifier:e}),Be(function(){n._entries[e.id]===r&&(n._entries[e.id]=i,n._onDidChange.fire({languageIdentifier:e}))})},e.prototype._getRichEditSupport=function(e){return this._entries[e]||null},e.prototype._getElectricCharacterSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.electricCharacter||null},e.prototype.getElectricCharacters=function(e){var t=this._getElectricCharacterSupport(e);return t?t.getElectricCharacters():[]},e.prototype.onElectricCharacter=function(e,t,n){var i=Ri(t,n-1),r=this._getElectricCharacterSupport(i.languageId);return r?r.onElectricCharacter(e,i,n-i.firstCharOffset):null},e.prototype.getComments=function(e){var t=this._getRichEditSupport(e);return t&&t.comments||null},e.prototype._getCharacterPairSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.characterPair||null},e.prototype.getAutoClosingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getAutoClosingPairs():[]},e.prototype.getSurroundingPairs=function(e){var t=this._getCharacterPairSupport(e);return t?t.getSurroundingPairs():[]},e.prototype.shouldAutoClosePair=function(e,t,n){var i=Ri(t,n-1),r=this._getCharacterPairSupport(i.languageId);return!!r&&r.shouldAutoClosePair(e,i,n-i.firstCharOffset)},e.prototype.getWordDefinition=function(e){var t=this._getRichEditSupport(e);return Xi(t&&t.wordDefinition||null)},e.prototype.getFoldingRules=function(e){var t=this._getRichEditSupport(e);return t?t.foldingRules:{}},e.prototype.getIndentRulesSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.indentRulesSupport||null},e.prototype.getPrecedingValidLine=function(e,t,n){var i=e.getLanguageIdAtPosition(t,0);if(t>1){var r=t-1,o=-1;for(r=t-1;r>=1;r--){if(e.getLanguageIdAtPosition(r,0)!==i)return o;var s=e.getLineContent(r);if(!n.shouldIgnore(s)&&!/^\s+$/.test(s)&&""!==s)return r;o=r}}return-1},e.prototype.getInheritIndentForLine=function(e,t,n){void 0===n&&(n=!0);var i=this.getIndentRulesSupport(e.getLanguageIdentifier().id);if(!i)return null;if(t<=1)return{indentation:"",action:null};var r=this.getPrecedingValidLine(e,t,i);if(r<0)return null;if(r<1)return{indentation:"",action:null};var o=e.getLineContent(r);if(i.shouldIncrease(o)||i.shouldIndentNextLine(o))return{indentation:x(o),action:ji.Indent,line:r};if(i.shouldDecrease(o))return{indentation:x(o),action:null,line:r};if(1===r)return{indentation:x(e.getLineContent(r)),action:null,line:r};var s=r-1,a=i.getIndentMetadata(e.getLineContent(s));if(!(3&a)&&4&a){for(var l=0,u=s-1;u>0;u--)if(!i.shouldIndentNextLine(e.getLineContent(u))){l=u;break}return{indentation:x(e.getLineContent(l+1)),action:null,line:l+1}}if(n)return{indentation:x(e.getLineContent(r)),action:null,line:r};for(u=r;u>0;u--){var d=e.getLineContent(u);if(i.shouldIncrease(d))return{indentation:x(d),action:ji.Indent,line:u};if(i.shouldIndentNextLine(d)){l=0;for(var c=u-1;c>0;c--)if(!i.shouldIndentNextLine(e.getLineContent(u))){l=c;break}return{indentation:x(e.getLineContent(l+1)),action:null,line:l+1}}if(i.shouldDecrease(d))return{indentation:x(d),action:null,line:u}}return{indentation:x(e.getLineContent(1)),action:null,line:1}},e.prototype.getGoodIndentForLine=function(e,t,n,i){var r=this.getIndentRulesSupport(t);if(!r)return null;var o=this.getInheritIndentForLine(e,n),s=e.getLineContent(n);if(o){var a=o.line;if(void 0!==a){var l=this._getOnEnterSupport(t),u=null;try{u=l.onEnter("",e.getLineContent(a),"")}catch(e){ye(e)}if(u){var d=x(e.getLineContent(a));return u.removeText&&(d=d.substring(0,d.length-u.removeText)),u.indentAction===ji.Indent||u.indentAction===ji.IndentOutdent?d=i.shiftIndent(d):u.indentAction===ji.Outdent&&(d=i.unshiftIndent(d)),r.shouldDecrease(s)&&(d=i.unshiftIndent(d)),u.appendText&&(d+=u.appendText),x(d)}}return r.shouldDecrease(s)?o.action===ji.Indent?o.indentation:i.unshiftIndent(o.indentation):o.action===ji.Indent?i.shiftIndent(o.indentation):o.indentation}return null},e.prototype.getIndentForEnter=function(e,t,n,i){e.forceTokenization(t.startLineNumber);var r,o,s=e.getLineTokens(t.startLineNumber),a=Ri(s,t.startColumn-1),l=a.getLineContent(),u=!1;a.firstCharOffset>0&&s.getLanguageId(0)!==a.languageId?(u=!0,r=l.substr(0,t.startColumn-1-a.firstCharOffset)):r=s.getLineContent().substring(0,t.startColumn-1),o=t.isEmpty()?l.substr(t.startColumn-1-a.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-a.firstCharOffset);var d=this.getIndentRulesSupport(a.languageId);if(!d)return null;var c=r,g=x(r);if(!i&&!u){var m=this.getInheritIndentForLine(e,t.startLineNumber);d.shouldDecrease(r)&&m&&(g=m.indentation,m.action!==ji.Indent&&(g=n.unshiftIndent(g))),c=g+y(y(r," "),"\t")}var h={getLineTokens:function(t){return e.getLineTokens(t)},getLanguageIdentifier:function(){return e.getLanguageIdentifier()},getLanguageIdAtPosition:function(t,n){return e.getLanguageIdAtPosition(t,n)},getLineContent:function(n){return n===t.startLineNumber?c:e.getLineContent(n)}},p=x(s.getLineContent()),f=this.getInheritIndentForLine(h,t.startLineNumber+1);if(!f){var S=u?p:g;return{beforeEnter:S,afterEnter:S}}var b=u?p:f.indentation;return f.action===ji.Indent&&(b=n.shiftIndent(b)),d.shouldDecrease(o)&&(b=n.unshiftIndent(b)),{beforeEnter:u?p:g,afterEnter:b}},e.prototype.getIndentActionForType=function(e,t,n,i){var r=this.getScopedLineTokens(e,t.startLineNumber,t.startColumn),o=this.getIndentRulesSupport(r.languageId);if(!o)return null;var s,a=r.getLineContent(),l=a.substr(0,t.startColumn-1-r.firstCharOffset);if(s=t.isEmpty()?a.substr(t.startColumn-1-r.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-r.firstCharOffset),!o.shouldDecrease(l+s)&&o.shouldDecrease(l+n+s)){var u=this.getInheritIndentForLine(e,t.startLineNumber,!1);if(!u)return null;var d=u.indentation;return u.action!==ji.Indent&&(d=i.unshiftIndent(d)),d}return null},e.prototype.getIndentMetadata=function(e,t){var n=this.getIndentRulesSupport(e.getLanguageIdentifier().id);return n?t<1||t>e.getLineCount()?null:n.getIndentMetadata(e.getLineContent(t)):null},e.prototype._getOnEnterSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.onEnter||null},e.prototype.getRawEnterActionAtPosition=function(e,t,n){var i=this.getEnterAction(e,new s(t,n,t,n));return i?i.enterAction:null},e.prototype.getEnterAction=function(e,t){var n=this.getIndentationAtPosition(e,t.startLineNumber,t.startColumn),i=this.getScopedLineTokens(e,t.startLineNumber,t.startColumn),r=this._getOnEnterSupport(i.languageId);if(!r)return null;var o,s=i.getLineContent(),a=s.substr(0,t.startColumn-1-i.firstCharOffset);o=t.isEmpty()?s.substr(t.startColumn-1-i.firstCharOffset):this.getScopedLineTokens(e,t.endLineNumber,t.endColumn).getLineContent().substr(t.endColumn-1-i.firstCharOffset);var l=t.startLineNumber,u="";if(l>1&&0===i.firstCharOffset){var d=this.getScopedLineTokens(e,l-1);d.languageId===i.languageId&&(u=d.getLineContent())}var c=null;try{c=r.onEnter(u,a,o)}catch(e){ye(e)}return c?(c.appendText||(c.indentAction===ji.Indent||c.indentAction===ji.IndentOutdent?c.appendText="\t":c.appendText=""),c.removeText&&(n=n.substring(0,n.length-c.removeText)),{enterAction:c,indentation:n}):null},e.prototype.getIndentationAtPosition=function(e,t,n){var i=x(e.getLineContent(t));return i.length>n-1&&(i=i.substring(0,n-1)),i},e.prototype.getScopedLineTokens=function(e,t,n){return e.forceTokenization(t),Ri(e.getLineTokens(t),isNaN(n)?e.getLineMaxColumn(t)-1:n-1)},e.prototype.getBracketsSupport=function(e){var t=this._getRichEditSupport(e);return t&&t.brackets||null},e}()),nr=function(){function e(e,t){this._tokens=e,this._tokensCount=this._tokens.length>>>1,this._text=t}return e.prototype.equals=function(t){return t instanceof e&&this.slicedEquals(t,0,this._tokensCount)},e.prototype.slicedEquals=function(e,t,n){if(this._text!==e._text)return!1;if(this._tokensCount!==e._tokensCount)return!1;for(var i=t<<1,r=i+(n<<1),o=i;o0?this._tokens[e-1<<1]:0},e.prototype.getLanguageId=function(e){var t=this._tokens[1+(e<<1)];return yn.getLanguageId(t)},e.prototype.getStandardTokenType=function(e){var t=this._tokens[1+(e<<1)];return yn.getTokenType(t)},e.prototype.getForeground=function(e){var t=this._tokens[1+(e<<1)];return yn.getForeground(t)},e.prototype.getClassName=function(e){var t=this._tokens[1+(e<<1)];return yn.getClassNameFromMetadata(t)},e.prototype.getInlineStyle=function(e,t){var n=this._tokens[1+(e<<1)];return yn.getInlineStyleFromMetadata(n,t)},e.prototype.getEndOffset=function(e){return this._tokens[e<<1]},e.prototype.findTokenIndexAtOffset=function(t){return e.findIndexInTokensArray(this._tokens,t)},e.prototype.inflate=function(){return this},e.prototype.sliceAndInflate=function(e,t,n){return new ir(this,e,t,n)},e.convertToEndOffset=function(e,t){for(var n=(e.length>>>1)-1,i=0;i>>1)-1;nt&&(i=r)}return n},e}(),ir=function(){function e(e,t,n,i){this._source=e,this._startOffset=t,this._endOffset=n,this._deltaOffset=i,this._firstTokenIndex=e.findTokenIndexAtOffset(t),this._tokensCount=0;for(var r=this._firstTokenIndex,o=e.getCount();r=n);r++)this._tokensCount++}return e.prototype.equals=function(t){return t instanceof e&&this._startOffset===t._startOffset&&this._endOffset===t._endOffset&&this._deltaOffset===t._deltaOffset&&this._source.slicedEquals(t._source,this._firstTokenIndex,this._tokensCount)},e.prototype.getCount=function(){return this._tokensCount},e.prototype.getForeground=function(e){return this._source.getForeground(this._firstTokenIndex+e)},e.prototype.getEndOffset=function(e){var t=this._source.getEndOffset(this._firstTokenIndex+e);return Math.min(this._endOffset,t)-this._startOffset+this._deltaOffset},e.prototype.getClassName=function(e){return this._source.getClassName(this._firstTokenIndex+e)},e.prototype.getInlineStyle=function(e,t){return this._source.getInlineStyle(this._firstTokenIndex+e,t)},e.prototype.findTokenIndexAtOffset=function(e){return this._source.findTokenIndexAtOffset(e+this._startOffset-this._deltaOffset)-this._firstTokenIndex},e}();function rr(e){return(16384|e<<0|2<<23)>>>0}var or=new Uint32Array(0).buffer,sr=function(){function e(e){this._state=e,this._lineTokens=null,this._invalid=!0}return e.prototype.deleteBeginning=function(e){null!==this._lineTokens&&this._lineTokens!==or&&this.delete(0,e)},e.prototype.deleteEnding=function(e){if(null!==this._lineTokens&&this._lineTokens!==or){var t=new Uint32Array(this._lineTokens),n=t[t.length-2];this.delete(e,n)}},e.prototype.delete=function(e,t){if(null!==this._lineTokens&&this._lineTokens!==or&&e!==t){var n=new Uint32Array(this._lineTokens),i=n.length>>>1;if(0!==e||n[n.length-2]!==t){var r=nr.findIndexInTokensArray(n,e),o=r>0?n[r-1<<1]:0;if(tu&&(n[l++]=g,n[l++]=n[1+(c<<1)],u=g)}if(l!==n.length){var m=new Uint32Array(l);m.set(n.subarray(0,l),0),this._lineTokens=m.buffer}}}else this._lineTokens=or}},e.prototype.append=function(e){if(e!==or)if(this._lineTokens!==or){if(null!==this._lineTokens)if(null!==e){var t=new Uint32Array(this._lineTokens),n=new Uint32Array(e),i=n.length>>>1,r=new Uint32Array(t.length+n.length);r.set(t,0);for(var o=t.length,s=t[t.length-2],a=0;a>>1,r=nr.findIndexInTokensArray(n,e);r>0&&(r>0?n[r-1<<1]:0)===e&&r--;for(var o=r;o=e},e.prototype.hasLinesToTokenize=function(e){return this._invalidLineStartIndex=0;s--)this.invalidateLine(e.startLineNumber+s-1);this._acceptDeleteRange(e),this._acceptInsertText(new o(e.startLineNumber,e.startColumn),t,n)},e.prototype._acceptDeleteRange=function(e){var t=e.startLineNumber-1;if(!(t>=this._tokens.length))if(e.startLineNumber!==e.endLineNumber){var n=this._tokens[t];n.deleteEnding(e.startColumn-1);var i=e.endLineNumber-1,r=null;if(i=this._tokens.length))if(0!==t){var r=this._tokens[i];r.deleteEnding(e.column-1),r.insert(e.column-1,n);for(var o=new Array(t),s=t-1;s>=0;s--)o[s]=new sr(null);this._tokens=function(e,t,n){var i=e.slice(0,t),r=e.slice(t);return i.concat(n,r)}(this._tokens,e.lineNumber,o)}else this._tokens[i].insert(e.column-1,n)}},e.prototype._tokenizeOneLine=function(e,t){if(!this.hasLinesToTokenize(e))return e.getLineCount()+1;var n=this._invalidLineStartIndex+1;return this._updateTokensUntilLine(e,t,n),n},e.prototype._tokenizeText=function(e,t,n){var i=null;try{i=this.tokenizationSupport.tokenize2(t,n,0)}catch(e){ye(e)}return i||(i=Ai(this.languageIdentifier.id,0,n,0)),i},e.prototype._updateTokensUntilLine=function(e,t,n){if(this.tokenizationSupport){for(var i=e.getLineCount(),r=n-1,o=this._invalidLineStartIndex;o<=r;o++){var s=o+1,a=null,l=e.getLineContent(o+1);try{var u=this._getState(o).clone();a=this.tokenizationSupport.tokenize2(l,u,0)}catch(e){ye(e)}if(a||(a=Ai(this.languageIdentifier.id,0,this._getState(o),0)),this._setTokens(this.languageIdentifier.id,o,l.length,a.tokens),t.registerChangedTokens(o+1),this._setIsInvalid(o,!1),s0?t[n-1]:null;i&&i.toLineNumber===e-1?i.toLineNumber++:t[n]={fromLineNumber:e,toLineNumber:e}},e.prototype.build=function(){return 0===this._ranges.length?null:{ranges:this._ranges}},e}();function ur(e,t,n,i){var r;for(r=0;r0&&s>0)return 0;if(l>0&&u>0)return 0;var d=Math.abs(s-u),c=Math.abs(o-l);return 0===d?c:c%d==0?c/d:0}function dr(e,t,n){for(var i=Math.min(e.getLineCount(),1e4),r=0,o=0,s="",a=0,l=[0,0,0,0,0,0,0,0,0],u=1;u<=i;u++){for(var d=e.getLineLength(u),c=e.getLineContent(u),g=d<=65536,m=!1,h=0,p=0,f=0,y=0,S=d;y0?r++:p>1&&o++;var I=ur(s,a,c,h);I<=8&&l[I]++,s=c,a=h}}var C=n;r!==o&&(C=rv&&(v=t,_=e)}),{insertSpaces:C,tabSize:_}}var cr,gr=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){e[e.Auto=1]="Auto",e[e.Hidden=2]="Hidden",e[e.Visible=3]="Visible"}(cr||(cr={}));var mr=function(){function e(e,t,n,i,r,o){t|=0,n|=0,i|=0,r|=0,o|=0,(e|=0)<0&&(e=0),n+e>t&&(n=t-e),n<0&&(n=0),i<0&&(i=0),o+i>r&&(o=r-i),o<0&&(o=0),this.width=e,this.scrollWidth=t,this.scrollLeft=n,this.height=i,this.scrollHeight=r,this.scrollTop=o}return e.prototype.equals=function(e){return this.width===e.width&&this.scrollWidth===e.scrollWidth&&this.scrollLeft===e.scrollLeft&&this.height===e.height&&this.scrollHeight===e.scrollHeight&&this.scrollTop===e.scrollTop},e.prototype.withScrollDimensions=function(t){return new e(void 0!==t.width?t.width:this.width,void 0!==t.scrollWidth?t.scrollWidth:this.scrollWidth,this.scrollLeft,void 0!==t.height?t.height:this.height,void 0!==t.scrollHeight?t.scrollHeight:this.scrollHeight,this.scrollTop)},e.prototype.withScrollPosition=function(t){return new e(this.width,this.scrollWidth,void 0!==t.scrollLeft?t.scrollLeft:this.scrollLeft,this.height,this.scrollHeight,void 0!==t.scrollTop?t.scrollTop:this.scrollTop)},e.prototype.createScrollEvent=function(e){var t=this.width!==e.width,n=this.scrollWidth!==e.scrollWidth,i=this.scrollLeft!==e.scrollLeft,r=this.height!==e.height,o=this.scrollHeight!==e.scrollHeight,s=this.scrollTop!==e.scrollTop;return{width:this.width,scrollWidth:this.scrollWidth,scrollLeft:this.scrollLeft,height:this.height,scrollHeight:this.scrollHeight,scrollTop:this.scrollTop,widthChanged:t,scrollWidthChanged:n,scrollLeftChanged:i,heightChanged:r,scrollHeightChanged:o,scrollTopChanged:s}},e}(),hr=function(e){function t(t,n){var i=e.call(this)||this;return i._onScroll=i._register(new Ne),i.onScroll=i._onScroll.event,i._smoothScrollDuration=t,i._scheduleAtNextAnimationFrame=n,i._state=new mr(0,0,0,0,0,0),i._smoothScrolling=null,i}return gr(t,e),t.prototype.dispose=function(){this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),e.prototype.dispose.call(this)},t.prototype.setSmoothScrollDuration=function(e){this._smoothScrollDuration=e},t.prototype.validateScrollPosition=function(e){return this._state.withScrollPosition(e)},t.prototype.getScrollDimensions=function(){return this._state},t.prototype.setScrollDimensions=function(e){var t=this._state.withScrollDimensions(e);this._setState(t),this._smoothScrolling&&this._smoothScrolling.acceptScrollDimensions(this._state)},t.prototype.getFutureScrollPosition=function(){return this._smoothScrolling?this._smoothScrolling.to:this._state},t.prototype.getCurrentScrollPosition=function(){return this._state},t.prototype.setScrollPositionNow=function(e){var t=this._state.withScrollPosition(e);this._smoothScrolling&&(this._smoothScrolling.dispose(),this._smoothScrolling=null),this._setState(t)},t.prototype.setScrollPositionSmooth=function(e){var t=this;if(0===this._smoothScrollDuration)return this.setScrollPositionNow(e);if(this._smoothScrolling){e={scrollLeft:void 0===e.scrollLeft?this._smoothScrolling.to.scrollLeft:e.scrollLeft,scrollTop:void 0===e.scrollTop?this._smoothScrolling.to.scrollTop:e.scrollTop};var n=this._state.withScrollPosition(e);if(this._smoothScrolling.to.scrollLeft===n.scrollLeft&&this._smoothScrolling.to.scrollTop===n.scrollTop)return;var i=this._smoothScrolling.combine(this._state,n,this._smoothScrollDuration);this._smoothScrolling.dispose(),this._smoothScrolling=i}else n=this._state.withScrollPosition(e),this._smoothScrolling=yr.start(this._state,n,this._smoothScrollDuration);this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(function(){t._smoothScrolling&&(t._smoothScrolling.animationFrameDisposable=null,t._performSmoothScrolling())})},t.prototype._performSmoothScrolling=function(){var e=this,t=this._smoothScrolling.tick(),n=this._state.withScrollPosition(t);if(this._setState(n),t.isDone)return this._smoothScrolling.dispose(),void(this._smoothScrolling=null);this._smoothScrolling.animationFrameDisposable=this._scheduleAtNextAnimationFrame(function(){e._smoothScrolling&&(e._smoothScrolling.animationFrameDisposable=null,e._performSmoothScrolling())})},t.prototype._setState=function(e){var t=this._state;t.equals(e)||(this._state=e,this._onScroll.fire(this._state.createScrollEvent(t)))},t}(Ae),pr=function(e,t,n){this.scrollLeft=e,this.scrollTop=t,this.isDone=n};function fr(e,t){var n=t-e;return function(t){return e+n*(1-function(e){return Math.pow(e,3)}(1-t))}}var yr=function(){function e(e,t,n,i){this.from=e,this.to=t,this.duration=i,this._startTime=n,this.animationFrameDisposable=null,this._initAnimations()}return e.prototype._initAnimations=function(){this.scrollLeft=this._initAnimation(this.from.scrollLeft,this.to.scrollLeft,this.to.width),this.scrollTop=this._initAnimation(this.from.scrollTop,this.to.scrollTop,this.to.height)},e.prototype._initAnimation=function(e,t,n){if(Math.abs(e-t)>2.5*n){var i=void 0,r=void 0;return e=2?(v=y?Tr.Large:Tr.LargeBlocks,K=2/b):(v=y?Tr.Small:Tr.SmallBlocks,K=1/b),(x=Math.max(0,Math.floor((E-c-2)*K/(u+K))))/K>S&&(x=Math.floor(S*K)),w=E-x,"left"===f?(T=0,B+=x,D+=x,A+=x,R+=x):T=t-x-c}else T=0,x=0,v=Tr.None,w=E;var N=Math.max(1,Math.floor((w-c-2)/u)),P=g?m:0;return{width:t,height:n,glyphMarginLeft:B,glyphMarginWidth:_,glyphMarginHeight:n,lineNumbersLeft:D,lineNumbersWidth:I,lineNumbersHeight:n,decorationsLeft:A,decorationsWidth:l,decorationsHeight:n,contentLeft:R,contentWidth:w,contentHeight:n,renderMinimap:v,minimapLeft:T,minimapWidth:x,viewportColumn:N,verticalScrollbarWidth:c,horizontalScrollbarHeight:h,overviewRuler:{top:P,width:c,height:n-2*P,right:0}}},e}(),Lr={fontFamily:X.d?"Menlo, Monaco, 'Courier New', monospace":X.c?"'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'":"Consolas, 'Courier New', monospace",fontWeight:"normal",fontSize:X.d?12:14,lineHeight:0,letterSpacing:0},Mr={tabSize:4,insertSpaces:!0,detectIndentation:!0,trimAutoWhitespace:!0,largeFileOptimizations:!0},Fr={inDiffEditor:!1,wordSeparators:Zi,lineNumbersMinChars:5,lineDecorationsWidth:10,readOnly:!1,mouseStyle:"text",disableLayerHinting:!1,automaticLayout:!1,wordWrap:"off",wordWrapColumn:80,wordWrapMinified:!0,wrappingIndent:xr.Same,wordWrapBreakBeforeCharacters:"([{‘“〈《「『【〔([{「£¥$£¥++",wordWrapBreakAfterCharacters:" \t})]?|&,;¢°′″‰℃、。。、¢,.:;?!%・・ゝゞヽヾーァィゥェォッャュョヮヵヶぁぃぅぇぉっゃゅょゎゕゖㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ々〻ァィゥェォャュョッー”〉》」』】〕)]}」",wordWrapBreakObtrusiveCharacters:".",autoClosingBrackets:!0,autoIndent:!0,dragAndDrop:!0,emptySelectionClipboard:!0,useTabStops:!0,multiCursorModifier:"altKey",multiCursorMergeOverlapping:!0,accessibilitySupport:"auto",showUnused:!0,viewInfo:{extraEditorClassName:"",disableMonospaceOptimizations:!1,rulers:[],ariaLabel:r("editorViewAccessibleLabel","Editor content"),renderLineNumbers:1,renderCustomLineNumbers:null,selectOnLineNumbers:!0,glyphMargin:!0,revealHorizontalRightPadding:30,roundedSelection:!0,overviewRulerLanes:2,overviewRulerBorder:!0,cursorBlinking:wr.Blink,mouseWheelZoom:!1,cursorStyle:Br.Line,cursorWidth:0,hideCursorInOverviewRuler:!1,scrollBeyondLastLine:!0,scrollBeyondLastColumn:5,smoothScrolling:!1,stopRenderingLineAfter:1e4,renderWhitespace:"none",renderControlCharacters:!1,fontLigatures:!1,renderIndentGuides:!0,highlightActiveIndentGuide:!0,renderLineHighlight:"line",scrollbar:{vertical:cr.Auto,horizontal:cr.Auto,arrowSize:11,useShadows:!0,verticalHasArrows:!1,horizontalHasArrows:!1,horizontalScrollbarSize:10,horizontalSliderSize:10,verticalScrollbarSize:14,verticalSliderSize:14,handleMouseWheel:!0,mouseWheelScrollSensitivity:1},minimap:{enabled:!0,side:"right",showSlider:"mouseover",renderCharacters:!0,maxColumn:120},fixedOverflowWidgets:!1},contribInfo:{selectionClipboard:!0,hover:{enabled:!0,delay:300,sticky:!0},links:!0,contextmenu:!0,quickSuggestions:{other:!0,comments:!1,strings:!1},quickSuggestionsDelay:10,parameterHints:!0,iconsInSuggestions:!0,formatOnType:!1,formatOnPaste:!1,suggestOnTriggerCharacters:!0,acceptSuggestionOnEnter:"on",acceptSuggestionOnCommitCharacter:!0,wordBasedSuggestions:!0,suggestSelection:"recentlyUsed",suggestFontSize:0,suggestLineHeight:0,suggest:{filterGraceful:!0,snippets:"inline",snippetsPreventQuickSuggestions:!0},selectionHighlight:!0,occurrencesHighlight:!0,codeLens:!0,folding:!0,foldingStrategy:"auto",showFoldingControls:"mouseover",matchBrackets:!0,find:{seedSearchStringFromSelection:!0,autoFindInSelection:!1,globalFindClipboard:!1},colorDecorators:!0,lightbulbEnabled:!0,codeActionsOnSave:{},codeActionsOnSaveTimeout:750}},zr=function(){function e(e,t,n){for(var i=new Uint8Array(e*t),r=0,o=e*t;r255?255:0|e}function Ur(e){return e<0?0:e>4294967295?4294967295:0|e}var Gr=function(){function e(t){var n=jr(t);this._defaultValue=n,this._asciiMap=e._createAsciiMap(n),this._map=new Map}return e._createAsciiMap=function(e){for(var t=new Uint8Array(256),n=0;n<256;n++)t[n]=e;return t},e.prototype.set=function(e,t){var n=jr(t);e>=0&&e<256?this._asciiMap[e]=n:this._map.set(e,n)},e.prototype.get=function(e){return e>=0&&e<256?this._asciiMap[e]:this._map.get(e)||this._defaultValue},e}(),Wr=function(){function e(){this._actual=new Gr(0)}return e.prototype.add=function(e){this._actual.set(e,1)},e.prototype.has=function(e){return 1===this._actual.get(e)},e}(),Vr=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),qr=function(e){function t(t){for(var n=e.call(this,0)||this,i=0,r=t.length;i=n)break;var i=e.charCodeAt(t);if(110===i||114===i)return!0}return!1},e.prototype.parseSearchRequest=function(){if(""===this.searchString)return null;var t;t=this.isRegex?e._isMultilineRegexSource(this.searchString):this.searchString.indexOf("\n")>=0;var n=null;try{n=_(this.searchString,this.isRegex,{matchCase:this.matchCase,wholeWord:!1,multiline:t,global:!0})}catch(e){return null}if(!n)return null;var i=!this.isRegex&&!t;return i&&this.searchString.toLowerCase()!==this.searchString.toUpperCase()&&(i=this.matchCase),new Zr(n,this.wordSeparators?Yr(this.wordSeparators):null,i?this.searchString:null)},e}(),Zr=function(e,t,n){this.regex=e,this.wordSeparators=t,this.simpleSearch=n};function Qr(e,t,n){if(!n)return new Ye(e,null);for(var i=[],r=0,o=t.length;r>0);t[r]>=e?i=r-1:t[r+1]>=e?(n=r,i=r):n=r+1}return n+1},e}(),Jr=function(){function e(){}return e.findMatches=function(e,t,n,i,r){var o=t.parseSearchRequest();return o?o.regex.multiline?this._doFindMatchesMultiline(e,n,new to(o.wordSeparators,o.regex),i,r):this._doFindMatchesLineByLine(e,n,o,i,r):[]},e._getMultilineMatchRange=function(e,t,n,i,r,o){var a,l,u=0;if(a="\r\n"===e.getEOL()?t+r+(u=i.findLineFeedCountBeforeOffset(r)):t+r,"\r\n"===e.getEOL()){var d=i.findLineFeedCountBeforeOffset(r+o.length)-u;l=a+o.length+d}else l=a+o.length;var c=e.getPositionAt(a),g=e.getPositionAt(l);return new s(c.lineNumber,c.column,g.lineNumber,g.column)},e._doFindMatchesMultiline=function(e,t,n,i,r){var o,s=e.getOffsetAt(t.getStartPosition()),a=e.getValueInRange(t,je.LF),l="\r\n"===e.getEOL()?new Xr(a):null,u=[],d=0;for(n.reset(0);o=n.next(a);)if(u[d++]=Qr(this._getMultilineMatchRange(e,s,a,l,o.index,o[0]),o,i),d>=r)return u;return u},e._doFindMatchesLineByLine=function(e,t,n,i,r){var o=[],s=0;if(t.startLineNumber===t.endLineNumber){var a=e.getLineContent(t.startLineNumber).substring(t.startColumn-1,t.endColumn-1);return s=this._findMatchesInLine(n,a,t.startLineNumber,t.startColumn-1,s,o,i,r),o}var l=e.getLineContent(t.startLineNumber).substring(t.startColumn-1);s=this._findMatchesInLine(n,l,t.startLineNumber,t.startColumn-1,s,o,i,r);for(var u=t.startLineNumber+1;u=l))return r;return r}var h,p=new to(e.wordSeparators,e.regex);p.reset(0);do{if((h=p.next(t))&&(o[r++]=Qr(new s(n,h.index+1+i,n,h.index+1+h[0].length+i),h,a),r>=l))return r}while(h);return r},e.findNextMatch=function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new to(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindNextMatchMultiline(e,n,o,i):this._doFindNextMatchLineByLine(e,n,o,i)},e._doFindNextMatchMultiline=function(e,t,n,i){var r=new o(t.lineNumber,1),a=e.getOffsetAt(r),l=e.getLineCount(),u=e.getValueInRange(new s(r.lineNumber,r.column,l,e.getLineMaxColumn(l)),je.LF),d="\r\n"===e.getEOL()?new Xr(u):null;n.reset(t.column-1);var c=n.next(u);return c?Qr(this._getMultilineMatchRange(e,a,u,d,c.index,c[0]),c,i):1!==t.lineNumber||1!==t.column?this._doFindNextMatchMultiline(e,new o(1,1),n,i):null},e._doFindNextMatchLineByLine=function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,s=e.getLineContent(o),a=this._findFirstMatchInLine(n,s,o,t.column,i);if(a)return a;for(var l=1;l<=r;l++){var u=(o+l-1)%r,d=e.getLineContent(u+1),c=this._findFirstMatchInLine(n,d,u+1,1,i);if(c)return c}return null},e._findFirstMatchInLine=function(e,t,n,i,r){e.reset(i-1);var o=e.next(t);return o?Qr(new s(n,o.index+1,n,o.index+1+o[0].length),o,r):null},e.findPreviousMatch=function(e,t,n,i){var r=t.parseSearchRequest();if(!r)return null;var o=new to(r.wordSeparators,r.regex);return r.regex.multiline?this._doFindPreviousMatchMultiline(e,n,o,i):this._doFindPreviousMatchLineByLine(e,n,o,i)},e._doFindPreviousMatchMultiline=function(e,t,n,i){var r=this._doFindMatchesMultiline(e,new s(1,1,t.lineNumber,t.column),n,i,9990);if(r.length>0)return r[r.length-1];var a=e.getLineCount();return t.lineNumber!==a||t.column!==e.getLineMaxColumn(a)?this._doFindPreviousMatchMultiline(e,new o(a,e.getLineMaxColumn(a)),n,i):null},e._doFindPreviousMatchLineByLine=function(e,t,n,i){var r=e.getLineCount(),o=t.lineNumber,s=e.getLineContent(o).substring(0,t.column-1),a=this._findLastMatchInLine(n,s,o,i);if(a)return a;for(var l=1;l<=r;l++){var u=(r+o-l-1)%r,d=e.getLineContent(u+1),c=this._findLastMatchInLine(n,d,u+1,i);if(c)return c}return null},e._findLastMatchInLine=function(e,t,n,i){var r,o=null;for(e.reset(0);r=e.next(t);)o=Qr(new s(n,r.index+1,n,r.index+1+r[0].length),r,i);return o},e}();function eo(e,t,n,i,r){return function(e,t,n,i,r){if(0===i)return!0;var o=t.charCodeAt(i-1);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var s=t.charCodeAt(i);if(0!==e.get(s))return!0}return!1}(e,t,0,i,r)&&function(e,t,n,i,r){if(i+r===n)return!0;var o=t.charCodeAt(i+r);if(0!==e.get(o))return!0;if(13===o||10===o)return!0;if(r>0){var s=t.charCodeAt(i+r-1);if(0!==e.get(s))return!0}return!1}(e,t,n,i,r)}var to=function(){function e(e,t){this._wordSeparators=e,this._searchRegex=t,this._prevMatchStartIndex=-1,this._prevMatchLength=0}return e.prototype.reset=function(e){this._searchRegex.lastIndex=e,this._prevMatchStartIndex=-1,this._prevMatchLength=0},e.prototype.next=function(e){var t,n=e.length;do{if(this._prevMatchStartIndex+this._prevMatchLength===n)return null;if(!(t=this._searchRegex.exec(e)))return null;var i=t.index,r=t[0].length;if(i===this._prevMatchStartIndex&&r===this._prevMatchLength)return null;if(this._prevMatchStartIndex=i,this._prevMatchLength=r,!this._wordSeparators||eo(this._wordSeparators,e,n,i,r))return t}while(t);return null},e}(),no=function(){function e(e,t){this.piece=e,this.color=t,this.size_left=0,this.lf_left=0,this.parent=null,this.left=null,this.right=null}return e.prototype.next=function(){if(this.right!==io)return ro(this.right);for(var e=this;e.parent!==io&&e.parent.left!==e;)e=e.parent;return e.parent===io?io:e.parent},e.prototype.prev=function(){if(this.left!==io)return oo(this.left);for(var e=this;e.parent!==io&&e.parent.right!==e;)e=e.parent;return e.parent===io?io:e.parent},e.prototype.detach=function(){this.parent=null,this.left=null,this.right=null},e}(),io=new no(null,0);function ro(e){for(;e.left!==io;)e=e.left;return e}function oo(e){for(;e.right!==io;)e=e.right;return e}function so(e){return e===io?0:e.size_left+e.piece.length+so(e.right)}function ao(e){return e===io?0:e.lf_left+e.piece.lineFeedCnt+ao(e.right)}function lo(){io.parent=io}function uo(e,t){var n=t.right;n.size_left+=t.size_left+(t.piece?t.piece.length:0),n.lf_left+=t.lf_left+(t.piece?t.piece.lineFeedCnt:0),t.right=n.left,n.left!==io&&(n.left.parent=t),n.parent=t.parent,t.parent===io?e.root=n:t.parent.left===t?t.parent.left=n:t.parent.right=n,n.left=t,t.parent=n}function co(e,t){var n=t.left;t.left=n.right,n.right!==io&&(n.right.parent=t),n.parent=t.parent,t.size_left-=n.size_left+(n.piece?n.piece.length:0),t.lf_left-=n.lf_left+(n.piece?n.piece.lineFeedCnt:0),t.parent===io?e.root=n:t===t.parent.right?t.parent.right=n:t.parent.left=n,n.right=t,t.parent=n}function go(e,t){var n,i;if(n=t.left===io?(i=t).right:t.right===io?(i=t).left:(i=ro(t.right)).right,i===e.root)return e.root=n,n.color=0,t.detach(),lo(),void(e.root.parent=io);var r=1===i.color;if(i===i.parent.left?i.parent.left=n:i.parent.right=n,i===t?(n.parent=i.parent,po(e,n)):(i.parent===t?n.parent=i:n.parent=i.parent,po(e,n),i.left=t.left,i.right=t.right,i.parent=t.parent,i.color=t.color,t===e.root?e.root=i:t===t.parent.left?t.parent.left=i:t.parent.right=i,i.left!==io&&(i.left.parent=i),i.right!==io&&(i.right.parent=i),i.size_left=t.size_left,i.lf_left=t.lf_left,po(e,i)),t.detach(),n.parent.left===n){var o=so(n),s=ao(n);if(o!==n.parent.size_left||s!==n.parent.lf_left){var a=o-n.parent.size_left,l=s-n.parent.lf_left;n.parent.size_left=o,n.parent.lf_left=s,ho(e,n.parent,a,l)}}if(po(e,n.parent),r)lo();else{for(var u;n!==e.root&&0===n.color;)n===n.parent.left?(1===(u=n.parent.right).color&&(u.color=0,n.parent.color=1,uo(e,n.parent),u=n.parent.right),0===u.left.color&&0===u.right.color?(u.color=1,n=n.parent):(0===u.right.color&&(u.left.color=0,u.color=1,co(e,u),u=n.parent.right),u.color=n.parent.color,n.parent.color=0,u.right.color=0,uo(e,n.parent),n=e.root)):(1===(u=n.parent.left).color&&(u.color=0,n.parent.color=1,co(e,n.parent),u=n.parent.left),0===u.left.color&&0===u.right.color?(u.color=1,n=n.parent):(0===u.left.color&&(u.right.color=0,u.color=1,uo(e,u),u=n.parent.left),u.color=n.parent.color,n.parent.color=0,u.left.color=0,co(e,n.parent),n=e.root));n.color=0,lo()}}function mo(e,t){for(po(e,t);t!==e.root&&1===t.parent.color;){var n;t.parent===t.parent.parent.left?1===(n=t.parent.parent.right).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.right&&uo(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,co(e,t.parent.parent)):1===(n=t.parent.parent.left).color?(t.parent.color=0,n.color=0,t.parent.parent.color=1,t=t.parent.parent):(t===t.parent.left&&co(e,t=t.parent),t.parent.color=0,t.parent.parent.color=1,uo(e,t.parent.parent))}e.root.color=0}function ho(e,t,n,i){for(;t!==e.root&&t!==io;)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}function po(e,t){var n=0,i=0;if(t!==e.root){if(0===n){for(;t!==e.root&&t===t.parent.right;)t=t.parent;if(t===e.root)return;n=so((t=t.parent).left)-t.size_left,i=ao(t.left)-t.lf_left,t.size_left+=n,t.lf_left+=i}for(;t!==e.root&&(0!==n||0!==i);)t.parent.left===t&&(t.parent.size_left+=n,t.parent.lf_left+=i),t=t.parent}}function fo(e){var t;return(t=e[e.length-1]<65536?new Uint16Array(e.length):new Uint32Array(e.length)).set(e,0),t}io.parent=io,io.left=io,io.right=io,io.color=0;var yo=function(e,t,n,i,r){this.lineStarts=e,this.cr=t,this.lf=n,this.crlf=i,this.isBasicASCII=r};function So(e,t){void 0===t&&(t=!0);for(var n=[0],i=1,r=0,o=e.length;r=0;t--){var n=this._cache[t];if(n.nodeStartOffset<=e&&n.nodeStartOffset+n.node.piece.length>=e)return n}return null},e.prototype.get2=function(e){for(var t=this._cache.length-1;t>=0;t--){var n=this._cache[t];if(n.nodeStartLineNumber&&n.nodeStartLineNumber=e)return n}return null},e.prototype.set=function(e){this._cache.length>=this._limit&&this._cache.shift(),this._cache.push(e)},e.prototype.valdiate=function(e){for(var t=!1,n=0;n=e)&&(this._cache[n]=null,t=!0)}if(t){var r=[];for(n=0;n0){e[r].lineStarts||(e[r].lineStarts=So(e[r].buffer));var s=new bo(r+1,{line:0,column:0},{line:e[r].lineStarts.length-1,column:e[r].buffer.length-e[r].lineStarts[e[r].lineStarts.length-1]},e[r].lineStarts.length-1,e[r].buffer.length);this._buffers.push(e[r]),i=this.rbInsertRight(i,s)}this._searchCache=new Co(1),this._lastVisitedLine={lineNumber:0,value:null},this.computeBufferMetadata()},e.prototype.normalizeEOL=function(e){var t=this,n=65535-Math.floor(21845),i=2*n,r="",o=0,s=[];if(this.iterate(this.root,function(a){var l=t.getNodeContent(a),u=l.length;if(o<=n||o+u0){var a=r.replace(/\r\n|\r|\n/g,e);s.push(new Io(a,So(a)))}this.create(s,e,!0)},e.prototype.getEOL=function(){return this._EOL},e.prototype.setEOL=function(e){this._EOL=e,this._EOLLength=this._EOL.length,this.normalizeEOL(e)},e.prototype.getOffsetAt=function(e,t){for(var n=0,i=this.root;i!==io;)if(i.left!==io&&i.lf_left+1>=e)i=i.left;else{if(i.lf_left+i.piece.lineFeedCnt+1>=e)return(n+=i.size_left)+(this.getAccumulatedValue(i,e-i.lf_left-2)+t-1);e-=i.lf_left+i.piece.lineFeedCnt,n+=i.size_left+i.piece.length,i=i.right}return n},e.prototype.getPositionAt=function(e){e=Math.floor(e),e=Math.max(0,e);for(var t=this.root,n=0,i=e;t!==io;)if(0!==t.size_left&&t.size_left>=e)t=t.left;else{if(t.size_left+t.piece.length>=e){var r=this.getIndexOf(t,e-t.size_left);if(n+=t.lf_left+r.index,0===r.index){var s=this.getOffsetAt(n+1,1);return new o(n+1,i-s+1)}return new o(n+1,r.remainder+1)}if(e-=t.size_left+t.piece.length,n+=t.lf_left+t.piece.lineFeedCnt,t.right===io)return s=this.getOffsetAt(n+1,1),new o(n+1,i-e-s+1);t=t.right}return new o(1,1)},e.prototype.getValueInRange=function(e,t){if(e.startLineNumber===e.endLineNumber&&e.startColumn===e.endColumn)return"";var n=this.nodeAt2(e.startLineNumber,e.startColumn),i=this.nodeAt2(e.endLineNumber,e.endColumn),r=this.getValueInRange2(n,i);return t?t===this._EOL&&this._EOLNormalized&&t===this.getEOL()&&this._EOLNormalized?r:r.replace(/\r\n|\r|\n/g,t):r},e.prototype.getValueInRange2=function(e,t){if(e.node===t.node){var n=e.node,i=this._buffers[n.piece.bufferIndex].buffer,r=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start);return i.substring(r+e.remainder,r+t.remainder)}var o=e.node,s=this._buffers[o.piece.bufferIndex].buffer,a=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start),l=s.substring(a+e.remainder,a+o.piece.length);for(o=o.next();o!==io;){var u=this._buffers[o.piece.bufferIndex].buffer,d=this.offsetInBuffer(o.piece.bufferIndex,o.piece.start);if(o===t.node){l+=u.substring(d,d+t.remainder);break}l+=u.substr(d,o.piece.length),o=o.next()}return l},e.prototype.getLinesContent=function(){return this.getContentOfSubTree(this.root).split(/\r\n|\r|\n/)},e.prototype.getLength=function(){return this._length},e.prototype.getLineCount=function(){return this._lineCnt},e.prototype.getLineContent=function(e){return this._lastVisitedLine.lineNumber===e?this._lastVisitedLine.value:(this._lastVisitedLine.lineNumber=e,e===this._lineCnt?this._lastVisitedLine.value=this.getLineRawContent(e):this._EOLNormalized?this._lastVisitedLine.value=this.getLineRawContent(e,this._EOLLength):this._lastVisitedLine.value=this.getLineRawContent(e).replace(/(\r\n|\r|\n)$/,""),this._lastVisitedLine.value)},e.prototype.getLineCharCode=function(e,t){var n=this.nodeAt2(e,t+1);if(n.remainder===n.node.piece.length){var i=n.node.next();if(!i)return 0;var r=this._buffers[i.piece.bufferIndex],o=this.offsetInBuffer(i.piece.bufferIndex,i.piece.start);return r.buffer.charCodeAt(o)}r=this._buffers[n.node.piece.bufferIndex];var s=(o=this.offsetInBuffer(n.node.piece.bufferIndex,n.node.piece.start))+n.remainder;return r.buffer.charCodeAt(s)},e.prototype.getLineLength=function(e){if(e===this.getLineCount()){var t=this.getOffsetAt(e,1);return this.getLength()-t}return this.getOffsetAt(e+1,1)-this.getOffsetAt(e,1)-this._EOLLength},e.prototype.findMatchesInNode=function(e,t,n,i,r,o,a,l,u,d,c){var g,m=this._buffers[e.piece.bufferIndex],h=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start),p=this.offsetInBuffer(e.piece.bufferIndex,r),f=this.offsetInBuffer(e.piece.bufferIndex,o);t.reset(p);var y={line:0,column:0};do{if(g=t.next(m.buffer)){if(g.index>=f)return d;this.positionInBuffer(e,g.index-h,y);var S=this.getLineFeedCnt(e.piece.bufferIndex,r,y),b=y.line===r.line?y.column-r.column+i:y.column+1,I=b+g[0].length;if(c[d++]=Qr(new s(n+S,b,n+S,I),g,l),g.index+g[0].length>=f)return d;if(d>=u)return d}}while(g);return d},e.prototype.findMatchesLineByLine=function(e,t,n,i){var r=[],o=0,s=new to(t.wordSeparators,t.regex),a=this.nodeAt2(e.startLineNumber,e.startColumn);if(null===a)return[];var l=this.nodeAt2(e.endLineNumber,e.endColumn);if(null===l)return[];var u=this.positionInBuffer(a.node,a.remainder),d=this.positionInBuffer(l.node,l.remainder);if(a.node===l.node)return this.findMatchesInNode(a.node,s,e.startLineNumber,e.startColumn,u,d,t,n,i,o,r),r;for(var c=e.startLineNumber,g=a.node;g!==l.node;){var m=this.getLineFeedCnt(g.piece.bufferIndex,u,g.piece.end);if(m>=1){var h=this._buffers[g.piece.bufferIndex].lineStarts,p=this.offsetInBuffer(g.piece.bufferIndex,g.piece.start),f=h[u.line+m],y=c===e.startLineNumber?e.startColumn:1;if((o=this.findMatchesInNode(g,s,c,y,u,this.positionInBuffer(g,f-p),t,n,i,o,r))>=i)return r;c+=m}var S=c===e.startLineNumber?e.startColumn-1:0;if(c===e.endLineNumber){var b=this.getLineContent(c).substring(S,e.endColumn-1);return o=this._findMatchesInLine(t,s,b,e.endLineNumber,S,o,r,n,i),r}if((o=this._findMatchesInLine(t,s,this.getLineContent(c).substr(S),c,S,o,r,n,i))>=i)return r;c++,g=(a=this.nodeAt2(c,1)).node,u=this.positionInBuffer(a.node,a.remainder)}if(c===e.endLineNumber){var I=c===e.startLineNumber?e.startColumn-1:0;return b=this.getLineContent(c).substring(I,e.endColumn-1),o=this._findMatchesInLine(t,s,b,e.endLineNumber,I,o,r,n,i),r}var C=c===e.startLineNumber?e.startColumn:1;return o=this.findMatchesInNode(l.node,s,c,C,u,d,t,n,i,o,r),r},e.prototype._findMatchesInLine=function(e,t,n,i,r,o,a,l,u){var d,c=e.wordSeparators;if(!l&&e.simpleSearch){for(var g=e.simpleSearch,m=g.length,h=n.length,p=-m;-1!==(p=n.indexOf(g,p+m));)if((!c||eo(c,n,h,p,m))&&(a[o++]=new Ye(new s(i,p+1+r,i,p+1+m+r),null),o>=u))return o;return o}t.reset(0);do{if((d=t.next(n))&&(a[o++]=Qr(new s(i,d.index+1+r,i,d.index+1+d[0].length+r),d,l),o>=u))return o}while(d);return o},e.prototype.insert=function(e,t,n){if(void 0===n&&(n=!1),this._EOLNormalized=this._EOLNormalized&&n,this._lastVisitedLine.lineNumber=0,this._lastVisitedLine.value=null,this.root!==io){var i=this.nodeAt(e),r=i.node,o=i.remainder,s=i.nodeStartOffset,a=r.piece,l=a.bufferIndex,u=this.positionInBuffer(r,o);if(0===r.piece.bufferIndex&&a.end.line===this._lastChangeBufferPos.line&&a.end.column===this._lastChangeBufferPos.column&&s+a.length===e&&t.length<65535)return this.appendToNode(r,t),void this.computeBufferMetadata();if(s===e)this.insertContentToNodeLeft(t,r),this._searchCache.valdiate(e);else if(s+r.piece.length>e){var d=[],c=new bo(a.bufferIndex,u,a.end,this.getLineFeedCnt(a.bufferIndex,u,a.end),this.offsetInBuffer(l,a.end)-this.offsetInBuffer(l,u));if(this.shouldCheckCRLF()&&this.endWithCR(t)&&10===this.nodeCharCodeAt(r,o)){var g={line:c.start.line+1,column:0};c=new bo(c.bufferIndex,g,c.end,this.getLineFeedCnt(c.bufferIndex,g,c.end),c.length-1),t+="\n"}if(this.shouldCheckCRLF()&&this.startWithLF(t))if(13===this.nodeCharCodeAt(r,o-1)){var m=this.positionInBuffer(r,o-1);this.deleteNodeTail(r,m),t="\r"+t,0===r.piece.length&&d.push(r)}else this.deleteNodeTail(r,u);else this.deleteNodeTail(r,u);var h=this.createNewPieces(t);c.length>0&&this.rbInsertRight(r,c);for(var p=r,f=0;f=0;l--)a=this.rbInsertLeft(a,s[l]);this.validateCRLFWithPrevNode(a),this.deleteNodes(n)},e.prototype.insertContentToNodeRight=function(e,t){this.adjustCarriageReturnFromNext(e,t)&&(e+="\n");for(var n=this.createNewPieces(e),i=this.rbInsertRight(t,n[0]),r=i,o=1;o=r))break;d=i+1}return n?(n.line=i,n.column=u-o,null):{line:i,column:u-o}},e.prototype.getLineFeedCnt=function(e,t,n){if(0===n.column)return n.line-t.line;var i=this._buffers[e].lineStarts;if(n.line===i.length-1)return n.line-t.line;var r=i[n.line+1],o=i[n.line]+n.column;if(r>o+1)return n.line-t.line;var s=o-1;return 13===this._buffers[e].buffer.charCodeAt(s)?n.line-t.line+1:n.line-t.line},e.prototype.offsetInBuffer=function(e,t){return this._buffers[e].lineStarts[t.line]+t.column},e.prototype.deleteNodes=function(e){for(var t=0;t65535){for(var t=[];e.length>65535;){var n=e.charCodeAt(65534),i=void 0;13===n||n>=55296&&n<=56319?(i=e.substring(0,65534),e=e.substring(65534)):(i=e.substring(0,65535),e=e.substring(65535));var r=So(i);t.push(new bo(this._buffers.length,{line:0,column:0},{line:r.length-1,column:i.length-r[r.length-1]},r.length-1,i.length)),this._buffers.push(new Io(i,r))}var o=So(e);return t.push(new bo(this._buffers.length,{line:0,column:0},{line:o.length-1,column:e.length-o[o.length-1]},o.length-1,e.length)),this._buffers.push(new Io(e,o)),t}var s=this._buffers[0].buffer.length,a=So(e,!1),l=this._lastChangeBufferPos;if(this._buffers[0].lineStarts[this._buffers[0].lineStarts.length-1]===s&&0!==s&&this.startWithLF(e)&&this.endWithCR(this._buffers[0].buffer)){this._lastChangeBufferPos={line:this._lastChangeBufferPos.line,column:this._lastChangeBufferPos.column+1},l=this._lastChangeBufferPos;for(var u=0;u=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1)return o=this.getAccumulatedValue(n,e-n.lf_left-2),l=this.getAccumulatedValue(n,e-n.lf_left-1),s=this._buffers[n.piece.bufferIndex].buffer,a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),u+=n.size_left,this._searchCache.set({node:n,nodeStartOffset:u,nodeStartLineNumber:d-(e-1-n.lf_left)}),s.substring(a+o,a+l-t);if(n.lf_left+n.piece.lineFeedCnt===e-1){o=this.getAccumulatedValue(n,e-n.lf_left-2),s=this._buffers[n.piece.bufferIndex].buffer,a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),i=s.substring(a+o,a+n.piece.length);break}e-=n.lf_left+n.piece.lineFeedCnt,u+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==io;){if(s=this._buffers[n.piece.bufferIndex].buffer,n.piece.lineFeedCnt>0)return l=this.getAccumulatedValue(n,0),a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),i+s.substring(a,a+l-t);a=this.offsetInBuffer(n.piece.bufferIndex,n.piece.start),i+=s.substr(a,n.piece.length),n=n.next()}return i},e.prototype.computeBufferMetadata=function(){for(var e=this.root,t=1,n=0;e!==io;)t+=e.lf_left+e.piece.lineFeedCnt,n+=e.size_left+e.piece.length,e=e.right;this._lineCnt=t,this._length=n,this._searchCache.valdiate(this._length)},e.prototype.getIndexOf=function(e,t){var n=e.piece,i=this.positionInBuffer(e,t),r=i.line-n.start.line;if(this.offsetInBuffer(n.bufferIndex,n.end)-this.offsetInBuffer(n.bufferIndex,n.start)===t){var o=this.getLineFeedCnt(e.piece.bufferIndex,n.start,i);if(o!==r)return{index:o,remainder:0}}return{index:r,remainder:i.column}},e.prototype.getAccumulatedValue=function(e,t){if(t<0)return 0;var n=e.piece,i=this._buffers[n.bufferIndex].lineStarts,r=n.start.line+t+1;return r>n.end.line?i[n.end.line]+n.end.column-i[n.start.line]-n.start.column:i[r]-i[n.start.line]-n.start.column},e.prototype.deleteNodeTail=function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.end),o=t,s=this.offsetInBuffer(n.bufferIndex,o),a=this.getLineFeedCnt(n.bufferIndex,n.start,o),l=a-i,u=s-r,d=n.length+u;e.piece=new bo(n.bufferIndex,n.start,o,a,d),ho(this,e,u,l)},e.prototype.deleteNodeHead=function(e,t){var n=e.piece,i=n.lineFeedCnt,r=this.offsetInBuffer(n.bufferIndex,n.start),o=t,s=this.getLineFeedCnt(n.bufferIndex,o,n.end),a=s-i,l=r-this.offsetInBuffer(n.bufferIndex,o),u=n.length+l;e.piece=new bo(n.bufferIndex,o,n.end,s,u),ho(this,e,l,a)},e.prototype.shrinkNode=function(e,t,n){var i=e.piece,r=i.start,o=i.end,s=i.length,a=i.lineFeedCnt,l=t,u=this.getLineFeedCnt(i.bufferIndex,i.start,l),d=this.offsetInBuffer(i.bufferIndex,t)-this.offsetInBuffer(i.bufferIndex,r);e.piece=new bo(i.bufferIndex,i.start,l,u,d),ho(this,e,d-s,u-a);var c=new bo(i.bufferIndex,n,o,this.getLineFeedCnt(i.bufferIndex,n,o),this.offsetInBuffer(i.bufferIndex,o)-this.offsetInBuffer(i.bufferIndex,n)),g=this.rbInsertRight(e,c);this.validateCRLFWithPrevNode(g)},e.prototype.appendToNode=function(e,t){this.adjustCarriageReturnFromNext(t,e)&&(t+="\n");var n=this.shouldCheckCRLF()&&this.startWithLF(t)&&this.endWithCR(e),i=this._buffers[0].buffer.length;this._buffers[0].buffer+=t;for(var r=So(t,!1),o=0;oe)t=t.left;else{if(t.size_left+t.piece.length>=e){i+=t.size_left;var r={node:t,remainder:e-t.size_left,nodeStartOffset:i};return this._searchCache.set(r),r}e-=t.size_left+t.piece.length,i+=t.size_left+t.piece.length,t=t.right}return null},e.prototype.nodeAt2=function(e,t){for(var n=this.root,i=0;n!==io;)if(n.left!==io&&n.lf_left>=e-1)n=n.left;else{if(n.lf_left+n.piece.lineFeedCnt>e-1){var r=this.getAccumulatedValue(n,e-n.lf_left-2),o=this.getAccumulatedValue(n,e-n.lf_left-1);return i+=n.size_left,{node:n,remainder:Math.min(r+t-1,o),nodeStartOffset:i}}if(n.lf_left+n.piece.lineFeedCnt===e-1){if((r=this.getAccumulatedValue(n,e-n.lf_left-2))+t-1<=n.piece.length)return{node:n,remainder:r+t-1,nodeStartOffset:i};t-=n.piece.length-r;break}e-=n.lf_left+n.piece.lineFeedCnt,i+=n.size_left+n.piece.length,n=n.right}for(n=n.next();n!==io;){if(n.piece.lineFeedCnt>0){o=this.getAccumulatedValue(n,0);var s=this.offsetOfNode(n);return{node:n,remainder:Math.min(t-1,o),nodeStartOffset:s}}if(n.piece.length>=t-1)return{node:n,remainder:t-1,nodeStartOffset:this.offsetOfNode(n)};t-=n.piece.length,n=n.next()}return null},e.prototype.nodeCharCodeAt=function(e,t){if(e.piece.lineFeedCnt<1)return-1;var n=this._buffers[e.piece.bufferIndex],i=this.offsetInBuffer(e.piece.bufferIndex,e.piece.start)+t;return n.buffer.charCodeAt(i)},e.prototype.offsetOfNode=function(e){if(!e)return 0;for(var t=e.size_left;e!==this.root;)e.parent.right===e&&(t+=e.parent.size_left+e.parent.piece.length),e=e.parent;return t},e.prototype.shouldCheckCRLF=function(){return!(this._EOLNormalized&&"\n"===this._EOL)},e.prototype.startWithLF=function(e){if("string"==typeof e)return 10===e.charCodeAt(0);if(e===io||0===e.piece.lineFeedCnt)return!1;var t=e.piece,n=this._buffers[t.bufferIndex].lineStarts,i=t.start.line,r=n[i]+t.start.column;return i!==n.length-1&&!(n[i+1]>r+1)&&10===this._buffers[t.bufferIndex].buffer.charCodeAt(r)},e.prototype.endWithCR=function(e){return"string"==typeof e?13===e.charCodeAt(e.length-1):e!==io&&0!==e.piece.lineFeedCnt&&13===this.nodeCharCodeAt(e,e.piece.length-1)},e.prototype.validateCRLFWithPrevNode=function(e){if(this.shouldCheckCRLF()&&this.startWithLF(e)){var t=e.prev();this.endWithCR(t)&&this.fixCRLF(t,e)}},e.prototype.validateCRLFWithNextNode=function(e){if(this.shouldCheckCRLF()&&this.endWithCR(e)){var t=e.next();this.startWithLF(t)&&this.fixCRLF(e,t)}},e.prototype.fixCRLF=function(e,t){var n,i=[],r=this._buffers[e.piece.bufferIndex].lineStarts;n=0===e.piece.end.column?{line:e.piece.end.line-1,column:r[e.piece.end.line]-r[e.piece.end.line-1]-1}:{line:e.piece.end.line,column:e.piece.end.column-1};var o=e.piece.length-1,s=e.piece.lineFeedCnt-1;e.piece=new bo(e.piece.bufferIndex,e.piece.start,n,s,o),ho(this,e,-1,-1),0===e.piece.length&&i.push(e);var a={line:t.piece.start.line+1,column:0},l=t.piece.length-1,u=this.getLineFeedCnt(t.piece.bufferIndex,a,t.piece.end);t.piece=new bo(t.piece.bufferIndex,a,t.piece.end,u,l),ho(this,t,-1,-1),0===t.piece.length&&i.push(t);var d=this.createNewPieces("\r\n");this.rbInsertRight(e,d[0]);for(var c=0;c0){p.sort(function(e,t){return t.lineNumber-e.lineNumber}),C=[],a=0;for(var _=p.length;a<_;a++)if(y=p[a].lineNumber,!(a>0&&p[a-1].lineNumber===y)){var v=p[a].oldContent,x=this.getLineContent(y);0!==x.length&&x!==v&&-1===T(x)&&C.push(y)}}return new He(b,I,C)},e.prototype._reduceOperations=function(e){return e.length<1e3?e:[this._toSingleEditOperation(e)]},e.prototype._toSingleEditOperation=function(e){for(var t=!1,n=e[0].range,i=e[e.length-1].range,r=new s(n.startLineNumber,n.startColumn,i.endLineNumber,i.endColumn),o=n.startLineNumber,a=n.startColumn,l=[],u=0,d=e.length;u0){var g=l.lines.length,m=l.lines[0],h=l.lines[g-1];c=1===g?new s(u,d,u,d+m.length):new s(u,d,u+g-1,h.length+1)}else c=new s(u,d,u,d);t=c.endLineNumber,n=c.endColumn,i.push(c),r=l}return i},e._sortOpsAscending=function(e,t){var n=s.compareRangesUsingEnds(e.range,t.range);return 0===n?e.sortIndex-t.sortIndex:n},e._sortOpsDescending=function(e,t){var n=s.compareRangesUsingEnds(e.range,t.range);return 0===n?t.sortIndex-e.sortIndex:-n},e}(),To=function(){function e(e,t,n,i,r,o,s,a){this._chunks=e,this._bom=t,this._cr=n,this._lf=i,this._crlf=r,this._containsRTL=o,this._isBasicASCII=s,this._normalizeEOL=a}return e.prototype._getEOL=function(e){var t=this._cr+this._lf+this._crlf,n=this._cr+this._crlf;return 0===t?e===Ue.LF?"\n":"\r\n":n>t/2?"\r\n":"\n"},e.prototype.create=function(e){var t=this._getEOL(e),n=this._chunks;if(this._normalizeEOL&&("\r\n"===t&&(this._cr>0||this._lf>0)||"\n"===t&&(this._cr>0||this._crlf>0)))for(var i=0,r=n.length;i=55296&&t<=56319?(this._acceptChunk1(e.substr(0,e.length-1),!1),this._hasPreviousChar=!0,this._previousChar=t):(this._acceptChunk1(e,!1),this._hasPreviousChar=!1,this._previousChar=t)}},e.prototype._acceptChunk1=function(e,t){(t||0!==e.length)&&(this._hasPreviousChar?this._acceptChunk2(String.fromCharCode(this._previousChar)+e):this._acceptChunk2(e))},e.prototype._acceptChunk2=function(e){var t=function(e,t){e.length=0,e[0]=0;for(var n=1,i=0,r=0,o=0,s=!0,a=0,l=t.length;a126)&&(s=!1)}var d=new yo(fo(e),i,r,o,s);return e.length=0,d}(this._tmpLineStarts,e);this.chunks.push(new Io(e,t.lineStarts)),this.cr+=t.cr,this.lf+=t.lf,this.crlf+=t.crlf,this.isBasicASCII&&(this.isBasicASCII=t.isBasicASCII),this.isBasicASCII||this.containsRTL||(this.containsRTL=F(e))},e.prototype.finish=function(e){return void 0===e&&(e=!0),this._finish(),new To(this.chunks,this.BOM,this.cr,this.lf,this.crlf,this.containsRTL,this.isBasicASCII,e)},e.prototype._finish=function(){if(0===this.chunks.length&&this._acceptChunk1("",!0),this._hasPreviousChar){this._hasPreviousChar=!1;var e=this.chunks[this.chunks.length-1];e.buffer+=String.fromCharCode(this._previousChar);var t=So(e.buffer);e.lineStarts=t,13===this._previousChar&&this.cr++}},e}(),wo=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Bo(e,t){return("string"==typeof e?function(e){var t=new xo;return t.acceptChunk(e),t.finish()}(e):e).create(t)}var Do=0,Ao=function(e){function t(n,i,r,o){void 0===o&&(o=null);var a=e.call(this)||this;a._onWillDispose=a._register(new Ne),a.onWillDispose=a._onWillDispose.event,a._onDidChangeDecorations=a._register(new ko),a.onDidChangeDecorations=a._onDidChangeDecorations.event,a._onDidChangeLanguage=a._register(new Ne),a.onDidChangeLanguage=a._onDidChangeLanguage.event,a._onDidChangeLanguageConfiguration=a._register(new Ne),a.onDidChangeLanguageConfiguration=a._onDidChangeLanguageConfiguration.event,a._onDidChangeTokens=a._register(new Ne),a.onDidChangeTokens=a._onDidChangeTokens.event,a._onDidChangeOptions=a._register(new Ne),a.onDidChangeOptions=a._onDidChangeOptions.event,a._eventEmitter=a._register(new Lo),Do++,a.id="$model"+Do,a.isForSimpleWidget=i.isForSimpleWidget,a._associatedResource=void 0===o||null===o?ae.parse("inmemory://model/"+Do):o,a._attachedEditorCount=0,a._buffer=Bo(n,i.defaultEOL),a._options=t.resolveOptions(a._buffer,i);var l=a._buffer.getLineCount(),u=a._buffer.getValueLengthInRange(new s(1,1,l,a._buffer.getLineLength(l)+1),je.TextDefined);return i.largeFileOptimizations?a._isTooLargeForTokenization=u>t.LARGE_FILE_SIZE_THRESHOLD||l>t.LARGE_FILE_LINE_COUNT_THRESHOLD:a._isTooLargeForTokenization=!1,a._isTooLargeForSyncing=u>t.MODEL_SYNC_LIMIT,a._setVersionId(1),a._isDisposed=!1,a._isDisposing=!1,a._languageIdentifier=r||Di,a._tokenizationListener=Ln.onDidChange(function(e){-1!==e.changedLanguages.indexOf(a._languageIdentifier.language)&&(a._resetTokenizationState(),a.emitModelTokensChangedEvent({ranges:[{fromLineNumber:1,toLineNumber:a.getLineCount()}]}),a._shouldAutoTokenize()&&a._warmUpTokens())}),a._revalidateTokensTimeout=-1,a._languageRegistryListener=tr.onDidChange(function(e){e.languageIdentifier.id===a._languageIdentifier.id&&a._onDidChangeLanguageConfiguration.fire({})}),a._resetTokenizationState(),a._instanceId=function(e){return(e%=52)<26?String.fromCharCode(97+e):String.fromCharCode(65+e-26)}(Do),a._lastDecorationId=0,a._decorations=Object.create(null),a._decorationsTree=new Ro,a._commandManager=new Un(a),a._isUndoing=!1,a._isRedoing=!1,a._trimAutoWhitespaceLines=null,a}return wo(t,e),t.createFromString=function(e,n,i,r){return void 0===n&&(n=t.DEFAULT_CREATION_OPTIONS),void 0===i&&(i=null),void 0===r&&(r=null),new t(e,n,i,r)},t.resolveOptions=function(e,t){if(t.detectIndentation){var n=dr(e,t.tabSize,t.insertSpaces);return new qe({tabSize:n.tabSize,insertSpaces:n.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})}return new qe({tabSize:t.tabSize,insertSpaces:t.insertSpaces,trimAutoWhitespace:t.trimAutoWhitespace,defaultEOL:t.defaultEOL})},t.prototype.onDidChangeRawContentFast=function(e){return this._eventEmitter.fastEvent(function(t){return e(t.rawContentChangedEvent)})},t.prototype.onDidChangeRawContent=function(e){return this._eventEmitter.slowEvent(function(t){return e(t.rawContentChangedEvent)})},t.prototype.onDidChangeContent=function(e){return this._eventEmitter.slowEvent(function(t){return e(t.contentChangedEvent)})},t.prototype.dispose=function(){this._isDisposing=!0,this._onWillDispose.fire(),this._commandManager=null,this._decorations=null,this._decorationsTree=null,this._tokenizationListener.dispose(),this._languageRegistryListener.dispose(),this._clearTimers(),this._tokens=null,this._isDisposed=!0,this._buffer=null,e.prototype.dispose.call(this),this._isDisposing=!1},t.prototype._assertNotDisposed=function(){if(this._isDisposed)throw new Error("Model is disposed!")},t.prototype._emitContentChangedEvent=function(e,t){this._isDisposing||this._eventEmitter.fire(new Xn(e,t))},t.prototype.setValue=function(e){if(this._assertNotDisposed(),null!==e){var t=Bo(e,this._options.defaultEOL);this.setValueFromTextBuffer(t)}},t.prototype._createContentChanged2=function(e,t,n,i,r,o,s){return{changes:[{range:e,rangeOffset:t,rangeLength:n,text:i}],eol:this._buffer.getEOL(),versionId:this.getVersionId(),isUndoing:r,isRedoing:o,isFlush:s}},t.prototype.setValueFromTextBuffer=function(e){if(this._assertNotDisposed(),null!==e){var t=this.getFullModelRange(),n=this.getValueLengthInRange(t),i=this.getLineCount(),r=this.getLineMaxColumn(i);this._buffer=e,this._increaseVersionId(),this._resetTokenizationState(),this._decorations=Object.create(null),this._decorationsTree=new Ro,this._commandManager=new Un(this),this._trimAutoWhitespaceLines=null,this._emitContentChangedEvent(new Qn([new Vn],this._versionId,!1,!1),this._createContentChanged2(new s(1,1,i,r),0,n,this.getValue(),!1,!1,!0))}},t.prototype.setEOL=function(e){this._assertNotDisposed();var t=e===Ge.CRLF?"\r\n":"\n";if(this._buffer.getEOL()!==t){var n=this.getFullModelRange(),i=this.getValueLengthInRange(n),r=this.getLineCount(),o=this.getLineMaxColumn(r);this._onBeforeEOLChange(),this._buffer.setEOL(t),this._increaseVersionId(),this._onAfterEOLChange(),this._emitContentChangedEvent(new Qn([new Zn],this._versionId,!1,!1),this._createContentChanged2(new s(1,1,r,o),0,i,this.getValue(),!1,!1,!1))}},t.prototype._onBeforeEOLChange=function(){var e=this.getVersionId(),t=this._decorationsTree.search(0,!1,!1,e);this._ensureNodesHaveRanges(t)},t.prototype._onAfterEOLChange=function(){for(var e=this.getVersionId(),t=this._decorationsTree.collectNodesPostOrder(),n=0,i=t.length;n0},t.prototype.getAttachedEditorCount=function(){return this._attachedEditorCount},t.prototype.isTooLargeForSyncing=function(){return this._isTooLargeForSyncing},t.prototype.isTooLargeForTokenization=function(){return this._isTooLargeForTokenization},t.prototype.isDisposed=function(){return this._isDisposed},t.prototype.isDominatedByLongLines=function(){if(this._assertNotDisposed(),this.isTooLargeForTokenization())return!1;for(var e=0,t=0,n=this._buffer.getLineCount(),i=1;i<=n;i++){var r=this._buffer.getLineLength(i);r>=1e4?t+=r:e+=r}return t>e},Object.defineProperty(t.prototype,"uri",{get:function(){return this._associatedResource},enumerable:!0,configurable:!0}),t.prototype.getOptions=function(){return this._assertNotDisposed(),this._options},t.prototype.updateOptions=function(e){this._assertNotDisposed();var t=void 0!==e.tabSize?e.tabSize:this._options.tabSize,n=void 0!==e.insertSpaces?e.insertSpaces:this._options.insertSpaces,i=void 0!==e.trimAutoWhitespace?e.trimAutoWhitespace:this._options.trimAutoWhitespace,r=new qe({tabSize:t,insertSpaces:n,defaultEOL:this._options.defaultEOL,trimAutoWhitespace:i});if(!this._options.equals(r)){var o=this._options.createChangeEvent(r);this._options=r,this._onDidChangeOptions.fire(o)}},t.prototype.detectIndentation=function(e,t){this._assertNotDisposed();var n=dr(this._buffer,t,e);this.updateOptions({insertSpaces:n.insertSpaces,tabSize:n.tabSize})},t._normalizeIndentationFromWhitespace=function(e,t,n){for(var i=0,r=0;rthis.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineContent(e)},t.prototype.getLineLength=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)},t.prototype.getLinesContent=function(){return this._assertNotDisposed(),this._buffer.getLinesContent()},t.prototype.getEOL=function(){return this._assertNotDisposed(),this._buffer.getEOL()},t.prototype.getLineMinColumn=function(e){return this._assertNotDisposed(),1},t.prototype.getLineMaxColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLength(e)+1},t.prototype.getLineFirstNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineFirstNonWhitespaceColumn(e)},t.prototype.getLineLastNonWhitespaceColumn=function(e){if(this._assertNotDisposed(),e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._buffer.getLineLastNonWhitespaceColumn(e)},t.prototype._validateRangeRelaxedNoAllocations=function(e){var t,n,i=this._buffer.getLineCount(),r=e.startLineNumber,o=e.startColumn;r<1?(t=1,n=1):r>i?(t=i,n=this.getLineMaxColumn(t)):(t=0|r,n=o<=1?1:o>=(c=this.getLineMaxColumn(t))?c:0|o);var a,l,u=e.endLineNumber,d=e.endColumn;if(u<1)a=1,l=1;else if(u>i)a=i,l=this.getLineMaxColumn(a);else{var c;a=0|u,l=d<=1?1:d>=(c=this.getLineMaxColumn(a))?c:0|d}return r===t&&o===n&&u===a&&d===l&&e instanceof s&&!(e instanceof Wn)?e:new s(t,n,a,l)},t.prototype._isValidPosition=function(e,t,n){return!isNaN(e)&&(!(e<1)&&(!(e>this._buffer.getLineCount())&&(!isNaN(t)&&(!(t<1)&&(!(t>this.getLineMaxColumn(e))&&!(n&&t>1&&k(this._buffer.getLineCharCode(e,t-2))))))))},t.prototype._validatePosition=function(e,t,n){var i=Math.floor("number"!=typeof e||isNaN(e)?1:e),r=Math.floor("number"!=typeof t||isNaN(t)?1:t),s=this._buffer.getLineCount();if(i<1)return new o(1,1);if(i>s)return new o(s,this.getLineMaxColumn(s));if(r<=1)return new o(i,1);var a=this.getLineMaxColumn(i);return r>=a?new o(i,a):n&&k(this._buffer.getLineCharCode(i,r-2))?new o(i,r-1):new o(i,r)},t.prototype.validatePosition=function(e){return this._assertNotDisposed(),e instanceof o&&this._isValidPosition(e.lineNumber,e.column,!0)?e:this._validatePosition(e.lineNumber,e.column,!0)},t.prototype._isValidRange=function(e,t){var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn;if(!this._isValidPosition(n,i,!1))return!1;if(!this._isValidPosition(r,o,!1))return!1;if(t){var s=i>1?this._buffer.getLineCharCode(n,i-2):0,a=o>1&&o<=this._buffer.getLineLength(r)?this._buffer.getLineCharCode(r,o-2):0,l=k(s),u=k(a);return!l&&!u}return!0},t.prototype.validateRange=function(e){if(this._assertNotDisposed(),e instanceof s&&!(e instanceof Wn)&&this._isValidRange(e,!0))return e;var t=this._validatePosition(e.startLineNumber,e.startColumn,!1),n=this._validatePosition(e.endLineNumber,e.endColumn,!1),i=t.lineNumber,r=t.column,o=n.lineNumber,a=n.column,l=r>1?this._buffer.getLineCharCode(i,r-2):0,u=a>1&&a<=this._buffer.getLineLength(o)?this._buffer.getLineCharCode(o,a-2):0,d=k(l),c=k(u);return d||c?i===o&&r===a?new s(i,r-1,o,a-1):d&&c?new s(i,r-1,o,a+1):d?new s(i,r-1,o,a):new s(i,r,o,a+1):new s(i,r,o,a)},t.prototype.modifyPosition=function(e,t){this._assertNotDisposed();var n=this.getOffsetAt(e)+t;return this.getPositionAt(Math.min(this._buffer.getLength(),Math.max(0,n)))},t.prototype.getFullModelRange=function(){this._assertNotDisposed();var e=this.getLineCount();return new s(1,1,e,this.getLineMaxColumn(e))},t.prototype.findMatchesLineByLine=function(e,t,n,i){return this._buffer.findMatchesLineByLine(e,t,n,i)},t.prototype.findMatches=function(e,t,n,i,r,o,a){var l;if(void 0===a&&(a=999),this._assertNotDisposed(),l=s.isIRange(t)?this.validateRange(t):this.getFullModelRange(),!n&&e.indexOf("\n")<0){var u=new Hr(e,n,i,r).parseSearchRequest();return u?this.findMatchesLineByLine(l,u,o,a):[]}return Jr.findMatches(this,new Hr(e,n,i,r),l,o,a)},t.prototype.findNextMatch=function(e,t,n,i,r,o){this._assertNotDisposed();var a=this.validatePosition(t);if(!n&&e.indexOf("\n")<0){var l=new Hr(e,n,i,r).parseSearchRequest(),u=this.getLineCount(),d=new s(a.lineNumber,a.column,u,this.getLineMaxColumn(u)),c=this.findMatchesLineByLine(d,l,o,1);return Jr.findNextMatch(this,new Hr(e,n,i,r),a,o),c.length>0?c[0]:(d=new s(1,1,a.lineNumber,this.getLineMaxColumn(a.lineNumber)),(c=this.findMatchesLineByLine(d,l,o,1)).length>0?c[0]:null)}return Jr.findNextMatch(this,new Hr(e,n,i,r),a,o)},t.prototype.findPreviousMatch=function(e,t,n,i,r,o){this._assertNotDisposed();var s=this.validatePosition(t);return Jr.findPreviousMatch(this,new Hr(e,n,i,r),s,o)},t.prototype.pushStackElement=function(){this._commandManager.pushStackElement()},t.prototype.pushEOL=function(e){if(("\n"===this.getEOL()?Ge.LF:Ge.CRLF)!==e)try{this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._commandManager.pushEOL(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},t.prototype.pushEditOperations=function(e,t,n){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._pushEditOperations(e,t,n)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},t.prototype._pushEditOperations=function(e,t,n){var i=this;if(this._options.trimAutoWhitespace&&this._trimAutoWhitespaceLines){for(var r=t.map(function(e){return{range:i.validateRange(e.range),text:e.text}}),o=!0,a=0,l=e.length;au.endLineNumber,h=u.startLineNumber>S.endLineNumber;if(!m&&!h){d=!0;break}}if(!d){o=!1;break}}if(o)for(a=0,l=this._trimAutoWhitespaceLines.length;aS.endLineNumber||p===S.startLineNumber&&S.startColumn===f&&S.isEmpty()&&b&&b.length>0&&"\n"===b.charAt(0)||p===S.startLineNumber&&1===S.startColumn&&S.isEmpty()&&b&&b.length>0&&"\n"===b.charAt(b.length-1))){y=!1;break}}y&&t.push({range:new s(p,1,p,f),text:null})}this._trimAutoWhitespaceLines=null}return this._commandManager.pushEditOperation(e,t,n)},t.prototype.applyEdits=function(e){try{return this._onDidChangeDecorations.beginDeferredEmit(),this._eventEmitter.beginDeferredEmit(),this._applyEdits(e)}finally{this._eventEmitter.endDeferredEmit(),this._onDidChangeDecorations.endDeferredEmit()}},t._eolCount=function(e){for(var t=0,n=0,i=0,r=e.length;i=0;I--){var C=h+I,_=s-u-b+C;l.push(new qn(C,this.getLineContent(_)))}if(Sthis.getLineCount()?[]:this.getLinesDecorations(e,e,t,n)},t.prototype.getLinesDecorations=function(e,t,n,i){void 0===n&&(n=0),void 0===i&&(i=!1);var r=this.getLineCount(),o=Math.min(r,Math.max(1,e)),a=Math.min(r,Math.max(1,t)),l=this.getLineMaxColumn(a);return this._getDecorationsInRange(new s(o,1,a,l),n,i)},t.prototype.getDecorationsInRange=function(e,t,n){void 0===t&&(t=0),void 0===n&&(n=!1);var i=this.validateRange(e);return this._getDecorationsInRange(i,t,n)},t.prototype.getOverviewRulerDecorations=function(e,t){void 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!0,n);return this._ensureNodesHaveRanges(i)},t.prototype.getAllDecorations=function(e,t){void 0===e&&(e=0),void 0===t&&(t=!1);var n=this.getVersionId(),i=this._decorationsTree.search(e,t,!1,n);return this._ensureNodesHaveRanges(i)},t.prototype._getDecorationsInRange=function(e,t,n){var i=this._buffer.getOffsetAt(e.startLineNumber,e.startColumn),r=this._buffer.getOffsetAt(e.endLineNumber,e.endColumn),o=this.getVersionId(),s=this._decorationsTree.intervalSearch(i,r,t,n,o);return this._ensureNodesHaveRanges(s)},t.prototype._ensureNodesHaveRanges=function(e){for(var t=0,n=e.length;t0)for(;r>0&&s>=1;){var l=this.getLineFirstNonWhitespaceColumn(s);if(0!==l){if(l=0;d--)u=(m=this._tokens._tokenizeText(this._buffer,o[d],u))?m.endState.clone():a.clone();var c=Math.floor(.4*this._tokens.inValidLineStartIndex);t=Math.min(this.getLineCount(),t+c);for(var g=e;g<=t;g++){var m,h=this.getLineContent(g);(m=this._tokens._tokenizeText(this._buffer,h,u))?(this._tokens._setTokens(this._tokens.languageIdentifier.id,g-1,h.length,m.tokens),this._tokens._setIsInvalid(g-1,!1),this._tokens._setState(g-1,u),u=m.endState.clone(),i.registerChangedTokens(g)):u=a.clone()}var p=i.build();p&&this._onDidChangeTokens.fire(p)}}},t.prototype.forceTokenization=function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");var t=new lr;this._tokens._updateTokensUntilLine(this._buffer,t,e);var n=t.build();n&&this._onDidChangeTokens.fire(n)},t.prototype.isCheapToTokenize=function(e){return this._tokens.isCheapToTokenize(e)},t.prototype.tokenizeIfCheap=function(e){this.isCheapToTokenize(e)&&this.forceTokenization(e)},t.prototype.getLineTokens=function(e){if(e<1||e>this.getLineCount())throw new Error("Illegal value for lineNumber");return this._getLineTokens(e)},t.prototype._getLineTokens=function(e){var t=this._buffer.getLineContent(e);return this._tokens.getTokens(this._languageIdentifier.id,e-1,t)},t.prototype.getLanguageIdentifier=function(){return this._languageIdentifier},t.prototype.getModeId=function(){return this._languageIdentifier.language},t.prototype.setMode=function(e){if(this._languageIdentifier.id!==e.id){var t={oldLanguage:this._languageIdentifier.language,newLanguage:e.language};this._languageIdentifier=e,this._resetTokenizationState(),this.emitModelTokensChangedEvent({ranges:[{fromLineNumber:1,toLineNumber:this.getLineCount()}]}),this._onDidChangeLanguage.fire(t),this._onDidChangeLanguageConfiguration.fire({})}},t.prototype.getLanguageIdAtPosition=function(e,t){if(!this._tokens.tokenizationSupport)return this._languageIdentifier.id;var n=this.validatePosition({lineNumber:e,column:t}),i=n.lineNumber,r=n.column,o=this._getLineTokens(i);return o.getLanguageId(o.findTokenIndexAtOffset(r-1))},t.prototype._beginBackgroundTokenization=function(){var e=this;this._shouldAutoTokenize()&&-1===this._revalidateTokensTimeout&&(this._revalidateTokensTimeout=setTimeout(function(){e._revalidateTokensTimeout=-1,e._revalidateTokensNow()},0))},t.prototype._warmUpTokens=function(){var e=Math.min(100,this.getLineCount());this._revalidateTokensNow(e),this._tokens.hasLinesToTokenize(this._buffer)&&this._beginBackgroundTokenization()},t.prototype._revalidateTokensNow=function(e){void 0===e&&(e=this._buffer.getLineCount());for(var t=new lr,n=vi.create(!1);this._tokens.hasLinesToTokenize(this._buffer)&&!(n.elapsed()>20)&&!(this._tokens._tokenizeOneLine(this._buffer,t)>=e););this._tokens.hasLinesToTokenize(this._buffer)&&this._beginBackgroundTokenization();var i=t.build();i&&this._onDidChangeTokens.fire(i)},t.prototype.emitModelTokensChangedEvent=function(e){this._isDisposing||this._onDidChangeTokens.fire(e)},t.prototype.getWordAtPosition=function(e){this._assertNotDisposed();var n=this.validatePosition(e),i=this.getLineContent(n.lineNumber),r=this._getLineTokens(n.lineNumber),o=r.findTokenIndexAtOffset(n.column-1),s=t._findLanguageBoundaries(r,o),a=s[0],l=s[1],u=Ji(n.column,tr.getWordDefinition(r.getLanguageId(o)),i.substring(a,l),a);if(u)return u;if(o>0&&a===n.column-1){var d=t._findLanguageBoundaries(r,o-1),c=d[0],g=d[1],m=Ji(n.column,tr.getWordDefinition(r.getLanguageId(o-1)),i.substring(c,g),c);if(m)return m}return null},t._findLanguageBoundaries=function(e,t){for(var n,i,r=e.getLanguageId(t),o=t;o>=0&&e.getLanguageId(o)===r;o--)n=e.getStartOffset(o);o=t;for(var s=e.getCount();o0&&n.getStartOffset(r)===e.column-1){a=n.getStartOffset(r),r--;var u,d,c,g=tr.getBracketsSupport(n.getLanguageId(r));if(g&&!Ki(n.getStandardTokenType(r)))if(s=Math.max(n.getStartOffset(r),e.column-1-g.maxBracketLength),(u=Gi.findPrevBracketInToken(g.reversedRegex,t,i,s,a))&&u.startColumn<=e.column&&e.column<=u.endColumn&&(d=(d=i.substring(u.startColumn-1,u.endColumn-1)).toLowerCase(),c=this._matchFoundBracket(u,g.textIsBracket[d],g.textIsOpenBracket[d])))return c}return null},t.prototype._matchFoundBracket=function(e,t,n){if(!t)return null;var i;if(n){if(i=this._findMatchingBracketDown(t,e.getEndPosition()))return[e,i]}else if(i=this._findMatchingBracketUp(t,e.getStartPosition()))return[e,i];return null},t.prototype._findMatchingBracketUp=function(e,t){for(var n=e.languageIdentifier.id,i=e.reversedRegex,r=-1,o=t.lineNumber;o>=1;o--){var s=this._getLineTokens(o),a=s.getCount(),l=this._buffer.getLineContent(o),u=a-1,d=-1;for(o===t.lineNumber&&(u=s.findTokenIndexAtOffset(t.column-1),d=t.column-1);u>=0;u--){var c=s.getLanguageId(u),g=s.getStandardTokenType(u),m=s.getStartOffset(u),h=s.getEndOffset(u);if(-1===d&&(d=h),c===n&&!Ki(g))for(;;){var p=Gi.findPrevBracketInToken(i,o,l,m,d);if(!p)break;var f=l.substring(p.startColumn-1,p.endColumn-1);if((f=f.toLowerCase())===e.open?r++:f===e.close&&r--,0===r)return p;d=p.startColumn-1}d=-1}}return null},t.prototype._findMatchingBracketDown=function(e,t){for(var n=e.languageIdentifier.id,i=e.forwardRegex,r=1,o=t.lineNumber,s=this.getLineCount();o<=s;o++){var a=this._getLineTokens(o),l=a.getCount(),u=this._buffer.getLineContent(o),d=0,c=0;for(o===t.lineNumber&&(d=a.findTokenIndexAtOffset(t.column-1),c=t.column-1);dr)throw new Error("Illegal value for lineNumber");for(var o=tr.getFoldingRules(this._languageIdentifier.id),s=o&&o.offSide,a=-2,l=-1,u=-2,d=-1,c=function(e){if(-1!==a&&(-2===a||a>e-1)){a=-1,l=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){a=t,l=n;break}}}if(-2===u)for(u=-1,d=-1,t=e;t=0){u=t,d=o;break}}},g=-2,m=-1,h=-2,p=-1,f=function(e){if(-2===g){g=-1,m=-1;for(var t=e-2;t>=0;t--){var n=i._computeIndentLevel(t);if(n>=0){g=t,m=n;break}}}if(-1!==h&&(-2===h||h=0){h=t,p=o;break}}},y=0,S=!0,b=0,I=!0,C=0,_=0;S||I;_++){var v=e-_,T=e+_;if(0!==_&&(v<1||vr||T>n)&&(I=!1),_>5e4&&(S=!1,I=!1),S){var x=void 0;if((w=this._computeIndentLevel(v-1))>=0?(u=v-1,d=w,x=Math.ceil(w/this._options.tabSize)):(c(v),x=this._getIndentLevelForWhitespaceLine(s,l,d)),0===_){if(y=v,b=T,0===(C=x))return{startLineNumber:y,endLineNumber:b,indent:C};continue}x>=C?y=v:S=!1}if(I){var w,B=void 0;(w=this._computeIndentLevel(T-1))>=0?(g=T-1,m=w,B=Math.ceil(w/this._options.tabSize)):(f(T),B=this._getIndentLevelForWhitespaceLine(s,m,p)),B>=C?b=T:I=!1}}return{startLineNumber:y,endLineNumber:b,indent:C}},t.prototype.getLinesIndentGuides=function(e,t){this._assertNotDisposed();var n=this.getLineCount();if(e<1||e>n)throw new Error("Illegal value for startLineNumber");if(t<1||t>n)throw new Error("Illegal value for endLineNumber");for(var i=tr.getFoldingRules(this._languageIdentifier.id),r=i&&i.offSide,o=new Array(t-e+1),s=-2,a=-1,l=-2,u=-1,d=e;d<=t;d++){var c=d-e,g=this._computeIndentLevel(d-1);if(g>=0)s=d-1,a=g,o[c]=Math.ceil(g/this._options.tabSize);else{if(-2===s){s=-1,a=-1;for(var m=d-2;m>=0;m--)if((h=this._computeIndentLevel(m))>=0){s=m,a=h;break}}if(-1!==l&&(-2===l||l=0){l=m,u=h;break}}o[c]=this._getIndentLevelForWhitespaceLine(r,a,u)}}return o},t.prototype._getIndentLevelForWhitespaceLine=function(e,t,n){return-1===t||-1===n?0:t0?this._deferredEvent?this._deferredEvent=this._deferredEvent.merge(e):this._deferredEvent=e:(this._fastEmitter.fire(e),this._slowEmitter.fire(e))},t}(Ae),Mo=function(){function e(t,n,i,r){this._languageIdentifier=t;var o=r.editor;this.readOnly=o.readOnly,this.tabSize=i.tabSize,this.insertSpaces=i.insertSpaces,this.oneIndent=n,this.pageSize=Math.max(1,Math.floor(o.layoutInfo.height/o.fontInfo.lineHeight)-2),this.lineHeight=o.lineHeight,this.useTabStops=o.useTabStops,this.wordSeparators=o.wordSeparators,this.emptySelectionClipboard=o.emptySelectionClipboard,this.multiCursorMergeOverlapping=o.multiCursorMergeOverlapping,this.autoClosingBrackets=o.autoClosingBrackets,this.autoIndent=o.autoIndent,this.autoClosingPairsOpen={},this.autoClosingPairsClose={},this.surroundingPairs={},this._electricChars=null;var s=e._getAutoClosingPairs(t);if(s)for(var a=0;a=i.length)&&L(i.charCodeAt(n))},e.isHighSurrogate=function(e,t,n){var i=e.getLineContent(t);return!(n<0||n>=i.length)&&k(i.charCodeAt(n))},e.isInsideSurrogatePair=function(e,t,n){return this.isHighSurrogate(e,t,n-2)},e.visibleColumnFromColumn=function(e,t,n){var i=e.length;i>t-1&&(i=t-1);for(var r=0,o=0;o=t)return s-ts?s:r},e.nextTabStop=function(e,t){return e+t-e%t},e.prevTabStop=function(e,t){return e-1-(e-1)%t},e}();!function(e){e[e.NotSet=0]="NotSet",e[e.ContentFlush=1]="ContentFlush",e[e.RecoverFromMarkers=2]="RecoverFromMarkers",e[e.Explicit=3]="Explicit",e[e.Paste=4]="Paste",e[e.Undo=5]="Undo",e[e.Redo=6]="Redo"}($o||($o={}));var Wo=function(e,t,n){this.lineNumber=e,this.column=t,this.leftoverVisibleColumns=n},Vo=function(){function e(){}return e.left=function(e,t,n,i){return i>t.getLineMinColumn(n)?Go.isLowSurrogate(t,n,i-2)?i-=2:i-=1:n>1&&(n-=1,i=t.getLineMaxColumn(n)),new Wo(n,i,0)},e.moveLeft=function(t,n,i,r,o){var s,a;if(i.hasSelection()&&!r)s=i.selection.startLineNumber,a=i.selection.startColumn;else{var l=e.left(t,n,i.position.lineNumber,i.position.column-(o-1));s=l.lineNumber,a=l.column}return i.move(r,s,a,0)},e.right=function(e,t,n,i){return il?(n=l,s?i=t.getLineMaxColumn(n):(i=Math.min(t.getLineMaxColumn(n),i),Go.isInsideSurrogatePair(t,n,i)&&(i-=1))):(i=Go.columnFromVisibleColumn2(e,t,n,a),Go.isInsideSurrogatePair(t,n,i)&&(i-=1)),r=a-Go.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new Wo(n,i,r)},e.moveDown=function(t,n,i,r,o){var s,a;i.hasSelection()&&!r?(s=i.selection.endLineNumber,a=i.selection.endColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.down(t,n,s,a,i.leftoverVisibleColumns,o,!0);return i.move(r,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateDown=function(t,n,i){var r=i.selection,a=e.down(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.down(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new Fo(new s(a.lineNumber,a.column,a.lineNumber,a.column),a.leftoverVisibleColumns,new o(l.lineNumber,l.column),l.leftoverVisibleColumns)},e.up=function(e,t,n,i,r,o,s){var a=Go.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize)+r;return(n-=o)<1?(n=1,s?i=t.getLineMinColumn(n):(i=Math.min(t.getLineMaxColumn(n),i),Go.isInsideSurrogatePair(t,n,i)&&(i-=1))):(i=Go.columnFromVisibleColumn2(e,t,n,a),Go.isInsideSurrogatePair(t,n,i)&&(i-=1)),r=a-Go.visibleColumnFromColumn(t.getLineContent(n),i,e.tabSize),new Wo(n,i,r)},e.moveUp=function(t,n,i,r,o){var s,a;i.hasSelection()&&!r?(s=i.selection.startLineNumber,a=i.selection.startColumn):(s=i.position.lineNumber,a=i.position.column);var l=e.up(t,n,s,a,i.leftoverVisibleColumns,o,!0);return i.move(r,l.lineNumber,l.column,l.leftoverVisibleColumns)},e.translateUp=function(t,n,i){var r=i.selection,a=e.up(t,n,r.selectionStartLineNumber,r.selectionStartColumn,i.selectionStartLeftoverVisibleColumns,1,!1),l=e.up(t,n,r.positionLineNumber,r.positionColumn,i.leftoverVisibleColumns,1,!1);return new Fo(new s(a.lineNumber,a.column,a.lineNumber,a.column),a.leftoverVisibleColumns,new o(l.lineNumber,l.column),l.leftoverVisibleColumns)},e.moveToBeginningOfLine=function(e,t,n,i){var r,o=n.position.lineNumber,s=t.getLineMinColumn(o),a=t.getLineFirstNonWhitespaceColumn(o)||s;return r=n.position.column===a?s:a,n.move(i,o,r,0)},e.moveToEndOfLine=function(e,t,n,i){var r=n.position.lineNumber,o=t.getLineMaxColumn(r);return n.move(i,r,o,0)},e.moveToBeginningOfBuffer=function(e,t,n,i){return n.move(i,1,1,0)},e.moveToEndOfBuffer=function(e,t,n,i){var r=t.getLineCount(),o=t.getLineMaxColumn(r);return n.move(i,r,o,0)},e}(),qo=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Yo=function(){function e(){}return e._createWord=function(e,t,n,i,r){return{start:i,end:r,wordType:t,nextCharClass:n}},e._findPreviousWordOnLine=function(e,t,n){var i=t.getLineContent(n.lineNumber);return this._doFindPreviousWordOnLine(i,e,n)},e._doFindPreviousWordOnLine=function(e,t,n){for(var i=0,r=n.column-2;r>=0;r--){var o=e.charCodeAt(r),s=t.get(o);if(0===s){if(2===i)return this._createWord(e,i,s,r+1,this._findEndOfWord(e,t,i,r+1));i=1}else if(2===s){if(1===i)return this._createWord(e,i,s,r+1,this._findEndOfWord(e,t,i,r+1));i=2}else if(1===s&&0!==i)return this._createWord(e,i,s,r+1,this._findEndOfWord(e,t,i,r+1))}return 0!==i?this._createWord(e,i,1,0,this._findEndOfWord(e,t,i,0)):null},e._findEndOfWord=function(e,t,n,i){for(var r=e.length,o=i;o=0;r--){var o=e.charCodeAt(r),s=t.get(o);if(1===s)return r+1;if(1===n&&2===s)return r+1;if(2===n&&0===s)return r+1}return 0},e.moveWordLeft=function(t,n,i,r){var s=i.lineNumber,a=i.column;1===a&&s>1&&(s-=1,a=n.getLineMaxColumn(s));var l=e._findPreviousWordOnLine(t,n,new o(s,a));return 0===r?(l&&2===l.wordType&&l.end-l.start==1&&0===l.nextCharClass&&(l=e._findPreviousWordOnLine(t,n,new o(s,l.start+1))),a=l?l.start+1:1):(l&&a<=l.end+1&&(l=e._findPreviousWordOnLine(t,n,new o(s,l.start+1))),a=l?l.end+1:1),new o(s,a)},e.moveWordRight=function(t,n,i,r){var s=i.lineNumber,a=i.column;a===n.getLineMaxColumn(s)&&s=l.start+1&&(l=e._findNextWordOnLine(t,n,new o(s,l.end+1))),a=l?l.start+1:n.getLineMaxColumn(s)),new o(s,a)},e._deleteWordLeftWhitespace=function(e,t){var n=e.getLineContent(t.lineNumber),i=t.column-2,r=w(n,i);return r+11?d=1:(u--,d=n.getLineMaxColumn(u)):(g&&d<=g.end+1&&(g=e._findPreviousWordOnLine(t,n,new o(u,g.start+1))),g?d=g.end+1:d>1?d=1:(u--,d=n.getLineMaxColumn(u))),new s(u,d,l.lineNumber,l.column)},e._findFirstNonWhitespaceChar=function(e,t){for(var n=e.length,i=t;i=h.start+1&&(h=e._findNextWordOnLine(t,n,new o(u,h.end+1))),h?d=h.start+1:d=0;i--){var r=e.charCodeAt(i);if(32===r||9===r||!n&&R(r)||95===r)return i-1;if(n&&i1?new o(r-1,t.getLineMaxColumn(r-1)):n;var a=Yo.moveWordLeft(e,t,n,i),l=Ho(t.getLineContent(r),s-2),u=new o(r,l+2);return u.isBeforeOrEqual(a)?a:u},t.moveWordPartRight=function(e,t,n,i){var r=n.lineNumber,s=n.column;if(s===t.getLineMaxColumn(r))return ru&&(d=u,c=e.model.getLineMaxColumn(d)),jo.fromModelState(new Fo(new s(a.lineNumber,1,d,c),0,new o(d,c),0))}var g=t.modelState.selectionStart.getStartPosition().lineNumber;if(a.lineNumberg){u=e.viewModel.getLineCount();var m=l.lineNumber+1,h=1;return m>u&&(m=u,h=e.viewModel.getLineMaxColumn(m)),jo.fromViewState(t.viewState.move(t.modelState.hasSelection(),m,h,0))}var p=t.modelState.selectionStart.getEndPosition();return jo.fromModelState(t.modelState.move(t.modelState.hasSelection(),p.lineNumber,p.column,0))},e.word=function(e,t,n,i){var r=e.model.validatePosition(i);return jo.fromModelState(Yo.word(e.config,e.model,t.modelState,n,r))},e.cancelSelection=function(e,t){if(!t.modelState.hasSelection())return new jo(t.modelState,t.viewState);var n=t.viewState.position.lineNumber,i=t.viewState.position.column;return jo.fromViewState(new Fo(new s(n,i,n,i),0,new o(n,i),0))},e.moveTo=function(e,t,n,i,r){var s=e.model.validatePosition(i),a=r?e.validateViewPosition(new o(r.lineNumber,r.column),s):e.convertModelPositionToViewPosition(s);return jo.fromViewState(t.viewState.move(n,a.lineNumber,a.column,0))},e.move=function(e,t,n){var i=n.select,r=n.value;switch(n.direction){case 0:return 4===n.unit?this._moveHalfLineLeft(e,t,i):this._moveLeft(e,t,i,r);case 1:return 4===n.unit?this._moveHalfLineRight(e,t,i):this._moveRight(e,t,i,r);case 2:return 2===n.unit?this._moveUpByViewLines(e,t,i,r):this._moveUpByModelLines(e,t,i,r);case 3:return 2===n.unit?this._moveDownByViewLines(e,t,i,r):this._moveDownByModelLines(e,t,i,r);case 4:return this._moveToViewMinColumn(e,t,i);case 5:return this._moveToViewFirstNonWhitespaceColumn(e,t,i);case 6:return this._moveToViewCenterColumn(e,t,i);case 7:return this._moveToViewMaxColumn(e,t,i);case 8:return this._moveToViewLastNonWhitespaceColumn(e,t,i);case 9:var o=t[0],s=e.getCompletelyVisibleModelRange(),a=this._firstLineNumberInRange(e.model,s,r),l=e.model.getLineFirstNonWhitespaceColumn(a);return[this._moveToModelPosition(e,o,i,a,l)];case 11:return o=t[0],s=e.getCompletelyVisibleModelRange(),a=this._lastLineNumberInRange(e.model,s,r),l=e.model.getLineFirstNonWhitespaceColumn(a),[this._moveToModelPosition(e,o,i,a,l)];case 10:return o=t[0],s=e.getCompletelyVisibleModelRange(),a=Math.round((s.startLineNumber+s.endLineNumber)/2),l=e.model.getLineFirstNonWhitespaceColumn(a),[this._moveToModelPosition(e,o,i,a,l)];case 12:for(var u=e.getCompletelyVisibleViewRange(),d=[],c=0,g=t.length;cn.endLineNumber-1&&(r=n.endLineNumber-1),r>>0)>>>0}function as(e,t){if(0===e)return null;var n=(65535&e)>>>0,i=(4294901760&e)>>>16;return 0!==i?new ds(ls(n,t),ls(i,t)):ls(n,t)}function ls(e,t){var n=!!(2048&e),i=!!(256&e);return new us(2===t?i:n,!!(1024&e),!!(512&e),2===t?n:i,255&e)}!function(){function e(e,t,n,i){void 0===n&&(n=t),void 0===i&&(i=n),is.define(e,t),rs.define(e,n),os.define(e,i)}e(0,"unknown"),e(1,"Backspace"),e(2,"Tab"),e(3,"Enter"),e(4,"Shift"),e(5,"Ctrl"),e(6,"Alt"),e(7,"PauseBreak"),e(8,"CapsLock"),e(9,"Escape"),e(10,"Space"),e(11,"PageUp"),e(12,"PageDown"),e(13,"End"),e(14,"Home"),e(15,"LeftArrow","Left"),e(16,"UpArrow","Up"),e(17,"RightArrow","Right"),e(18,"DownArrow","Down"),e(19,"Insert"),e(20,"Delete"),e(21,"0"),e(22,"1"),e(23,"2"),e(24,"3"),e(25,"4"),e(26,"5"),e(27,"6"),e(28,"7"),e(29,"8"),e(30,"9"),e(31,"A"),e(32,"B"),e(33,"C"),e(34,"D"),e(35,"E"),e(36,"F"),e(37,"G"),e(38,"H"),e(39,"I"),e(40,"J"),e(41,"K"),e(42,"L"),e(43,"M"),e(44,"N"),e(45,"O"),e(46,"P"),e(47,"Q"),e(48,"R"),e(49,"S"),e(50,"T"),e(51,"U"),e(52,"V"),e(53,"W"),e(54,"X"),e(55,"Y"),e(56,"Z"),e(57,"Meta"),e(58,"ContextMenu"),e(59,"F1"),e(60,"F2"),e(61,"F3"),e(62,"F4"),e(63,"F5"),e(64,"F6"),e(65,"F7"),e(66,"F8"),e(67,"F9"),e(68,"F10"),e(69,"F11"),e(70,"F12"),e(71,"F13"),e(72,"F14"),e(73,"F15"),e(74,"F16"),e(75,"F17"),e(76,"F18"),e(77,"F19"),e(78,"NumLock"),e(79,"ScrollLock"),e(80,";",";","OEM_1"),e(81,"=","=","OEM_PLUS"),e(82,",",",","OEM_COMMA"),e(83,"-","-","OEM_MINUS"),e(84,".",".","OEM_PERIOD"),e(85,"/","/","OEM_2"),e(86,"`","`","OEM_3"),e(110,"ABNT_C1"),e(111,"ABNT_C2"),e(87,"[","[","OEM_4"),e(88,"\\","\\","OEM_5"),e(89,"]","]","OEM_6"),e(90,"'","'","OEM_7"),e(91,"OEM_8"),e(92,"OEM_102"),e(93,"NumPad0"),e(94,"NumPad1"),e(95,"NumPad2"),e(96,"NumPad3"),e(97,"NumPad4"),e(98,"NumPad5"),e(99,"NumPad6"),e(100,"NumPad7"),e(101,"NumPad8"),e(102,"NumPad9"),e(103,"NumPad_Multiply"),e(104,"NumPad_Add"),e(105,"NumPad_Separator"),e(106,"NumPad_Subtract"),e(107,"NumPad_Decimal"),e(108,"NumPad_Divide")}(),function(e){e.toString=function(e){return is.keyCodeToStr(e)},e.fromString=function(e){return is.strToKeyCode(e)},e.toUserSettingsUS=function(e){return rs.keyCodeToStr(e)},e.toUserSettingsGeneral=function(e){return os.keyCodeToStr(e)},e.fromUserSettings=function(e){return rs.strToKeyCode(e)||os.strToKeyCode(e)}}(Jo||(Jo={}));var us=function(){function e(e,t,n,i,r){this.type=1,this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyCode=r}return e.prototype.equals=function(e){return 1===e.type&&this.ctrlKey===e.ctrlKey&&this.shiftKey===e.shiftKey&&this.altKey===e.altKey&&this.metaKey===e.metaKey&&this.keyCode===e.keyCode},e.prototype.isModifierKey=function(){return 0===this.keyCode||5===this.keyCode||57===this.keyCode||6===this.keyCode||4===this.keyCode},e.prototype.isDuplicateModifierCase=function(){return this.ctrlKey&&5===this.keyCode||this.shiftKey&&4===this.keyCode||this.altKey&&6===this.keyCode||this.metaKey&&57===this.keyCode},e}(),ds=function(e,t){this.type=2,this.firstPart=e,this.chordPart=t},cs=function(e,t,n,i,r,o){this.ctrlKey=e,this.shiftKey=t,this.altKey=n,this.metaKey=i,this.keyLabel=r,this.keyAriaLabel=o},gs=function(){};function ms(e,t){if(!e||null===e)throw new Error(t?"Assertion failed ("+t+")":"Assertion Failed")}var hs=new(function(){function e(){this.data={}}return e.prototype.add=function(e,t){ms(tn(e)),ms(nn(t)),ms(!this.data.hasOwnProperty(e),"There is already an extension with this id"),this.data[e]=t},e.prototype.as=function(e){return this.data[e]||null},e}()),ps=new(function(){function e(){this._keybindings=[],this._keybindingsSorted=!0}return e.bindToCurrentPlatform=function(e){if(1===X.a){if(e&&e.win)return e.win}else if(2===X.a){if(e&&e.mac)return e.mac}else if(e&&e.linux)return e.linux;return e},e.prototype.registerKeybindingRule=function(t,n){void 0===n&&(n=0);var i=e.bindToCurrentPlatform(t);if(i&&i.primary&&this._registerDefaultKeybinding(as(i.primary,X.a),t.id,t.weight,0,t.when,n),i&&Array.isArray(i.secondary))for(var r=0,o=i.secondary.length;r=21&&e<=30||e>=31&&e<=56||80===e||81===e||82===e||83===e||84===e||85===e||86===e||110===e||111===e||87===e||88===e||89===e||90===e||91===e||92===e},e.prototype._assertNoCtrlAlt=function(t,n){t.ctrlKey&&t.altKey&&!t.metaKey&&e._mightProduceChar(t.keyCode)&&console.warn("Ctrl+Alt+ keybindings should not be used by default under Windows. Offender: ",t," for ",n)},e.prototype._registerDefaultKeybinding=function(e,t,n,i,r,o){0===o&&1===X.a&&(2===e.type?this._assertNoCtrlAlt(e.firstPart,t):this._assertNoCtrlAlt(e,t)),this._keybindings.push({keybinding:e,command:t,commandArgs:void 0,when:r,weight1:n,weight2:i}),this._keybindingsSorted=!1},e.prototype.getDefaultKeybindings=function(){return this._keybindingsSorted||(this._keybindings.sort(fs),this._keybindingsSorted=!0),this._keybindings.slice(0)},e}());function fs(e,t){return e.weight1!==t.weight1?e.weight1-t.weight1:e.commandt.command?1:e.weight2-t.weight2}hs.add("platform.keybindingsRegistry",ps);var ys,Ss=Vt("telemetryService"),bs=function(){function e(e,t,n,i,r){void 0===t&&(t=""),void 0===n&&(n=""),void 0===i&&(i=!0),this._onDidChange=new Ne,this._id=e,this._label=t,this._cssClass=n,this._enabled=i,this._actionCallback=r}return e.prototype.dispose=function(){this._onDidChange.dispose()},Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._onDidChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"label",{get:function(){return this._label},set:function(e){this._setLabel(e)},enumerable:!0,configurable:!0}),e.prototype._setLabel=function(e){this._label!==e&&(this._label=e,this._onDidChange.fire({label:e}))},Object.defineProperty(e.prototype,"tooltip",{get:function(){return this._tooltip},set:function(e){this._setTooltip(e)},enumerable:!0,configurable:!0}),e.prototype._setTooltip=function(e){this._tooltip!==e&&(this._tooltip=e,this._onDidChange.fire({tooltip:e}))},Object.defineProperty(e.prototype,"class",{get:function(){return this._cssClass},set:function(e){this._setClass(e)},enumerable:!0,configurable:!0}),e.prototype._setClass=function(e){this._cssClass!==e&&(this._cssClass=e,this._onDidChange.fire({class:e}))},Object.defineProperty(e.prototype,"enabled",{get:function(){return this._enabled},set:function(e){this._setEnabled(e)},enumerable:!0,configurable:!0}),e.prototype._setEnabled=function(e){this._enabled!==e&&(this._enabled=e,this._onDidChange.fire({enabled:e}))},Object.defineProperty(e.prototype,"checked",{get:function(){return this._checked},set:function(e){this._setChecked(e)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"radio",{get:function(){return this._radio},set:function(e){this._setRadio(e)},enumerable:!0,configurable:!0}),e.prototype._setChecked=function(e){this._checked!==e&&(this._checked=e,this._onDidChange.fire({checked:e}))},e.prototype._setRadio=function(e){this._radio!==e&&(this._radio=e,this._onDidChange.fire({radio:e}))},Object.defineProperty(e.prototype,"order",{get:function(){return this._order},set:function(e){this._order=e},enumerable:!0,configurable:!0}),e.prototype.run=function(e,t){return void 0!==this._actionCallback?this._actionCallback(e):he.b.as(!0)},e}(),Is=function(){function e(){this._onDidBeforeRun=new Ne,this._onDidRun=new Ne}return Object.defineProperty(e.prototype,"onDidRun",{get:function(){return this._onDidRun.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDidBeforeRun",{get:function(){return this._onDidBeforeRun.event},enumerable:!0,configurable:!0}),e.prototype.run=function(e,t){var n=this;return e.enabled?(this._onDidBeforeRun.fire({action:e}),this.runAction(e,t).then(function(t){n._onDidRun.fire({action:e,result:t})},function(t){n._onDidRun.fire({action:e,error:t})})):he.b.as(null)},e.prototype.runAction=function(e,t){var n=t?e.run(t):e.run();return he.b.is(n)?n:he.b.wrap(n)},e.prototype.dispose=function(){this._onDidBeforeRun.dispose(),this._onDidRun.dispose()},e}(),Cs=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){e[e.Defined=1]="Defined",e[e.Not=2]="Not",e[e.Equals=3]="Equals",e[e.NotEquals=4]="NotEquals",e[e.And=5]="And",e[e.Regex=6]="Regex"}(ys||(ys={}));var _s=function(){function e(){}return e.has=function(e){return new Ts(e)},e.equals=function(e,t){return new xs(e,t)},e.regex=function(e,t){return new Ds(e,t)},e.not=function(e){return new Bs(e)},e.and=function(){for(var e=[],t=0;t=0){var t=e.split("!=");return new ws(t[0].trim(),this._deserializeValue(t[1]))}return e.indexOf("==")>=0?(t=e.split("=="),new xs(t[0].trim(),this._deserializeValue(t[1]))):e.indexOf("=~")>=0?(t=e.split("=~"),new Ds(t[0].trim(),this._deserializeRegexValue(t[1]))):/^\!\s*/.test(e)?new Bs(e.substr(1).trim()):new Ts(e)},e._deserializeValue=function(e){if("true"===(e=e.trim()))return!0;if("false"===e)return!1;var t=/^'([^']*)'$/.exec(e);return t?t[1].trim():e},e._deserializeRegexValue=function(e){if(d(e))return console.warn("missing regexp-value for =~-expression"),null;var t=e.indexOf("/"),n=e.lastIndexOf("/");if(t===n||t<0)return console.warn("bad regexp-value '"+e+"', missing /-enclosure"),null;var i=e.slice(t+1,n),r="i"===e[n+1]?"i":"";try{return new RegExp(i,r)}catch(t){return console.warn("bad regexp-value '"+e+"', parse error: "+t),null}},e}();function vs(e,t){var n=e.getType(),i=t.getType();if(n!==i)return n-i;switch(n){case ys.Defined:case ys.Not:case ys.Equals:case ys.NotEquals:case ys.Regex:return e.cmp(t);default:throw new Error("Unknown ContextKeyExpr!")}}var Ts=function(){function e(e){this.key=e}return e.prototype.getType=function(){return ys.Defined},e.prototype.cmp=function(e){return this.keye.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!!e.getValue(this.key)},e.prototype.normalize=function(){return this},e.prototype.keys=function(){return[this.key]},e}(),xs=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.getType=function(){return ys.Equals},e.prototype.cmp=function(e){return this.keye.key?1:this.valuee.value?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key&&this.value===t.value},e.prototype.evaluate=function(e){return e.getValue(this.key)==this.value},e.prototype.normalize=function(){return"boolean"==typeof this.value?this.value?new Ts(this.key):new Bs(this.key):this},e.prototype.keys=function(){return[this.key]},e}(),ws=function(){function e(e,t){this.key=e,this.value=t}return e.prototype.getType=function(){return ys.NotEquals},e.prototype.cmp=function(e){return this.keye.key?1:this.valuee.value?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key&&this.value===t.value},e.prototype.evaluate=function(e){return e.getValue(this.key)!=this.value},e.prototype.normalize=function(){return"boolean"==typeof this.value?this.value?new Bs(this.key):new Ts(this.key):this},e.prototype.keys=function(){return[this.key]},e}(),Bs=function(){function e(e){this.key=e}return e.prototype.getType=function(){return ys.Not},e.prototype.cmp=function(e){return this.keye.key?1:0},e.prototype.equals=function(t){return t instanceof e&&this.key===t.key},e.prototype.evaluate=function(e){return!e.getValue(this.key)},e.prototype.normalize=function(){return this},e.prototype.keys=function(){return[this.key]},e}(),Ds=function(){function e(e,t){this.key=e,this.regexp=t}return e.prototype.getType=function(){return ys.Regex},e.prototype.cmp=function(e){if(this.keye.key)return 1;var t=this.regexp?this.regexp.source:void 0;return te.regexp.source?1:0},e.prototype.equals=function(t){if(t instanceof e){var n=this.regexp?this.regexp.source:void 0;return this.key===t.key&&n===t.regexp.source}return!1},e.prototype.evaluate=function(e){return!!this.regexp&&this.regexp.test(e.getValue(this.key))},e.prototype.normalize=function(){return this},e.prototype.keys=function(){return[this.key]},e}(),As=function(){function e(t){this.expr=e._normalizeArr(t)}return e.prototype.getType=function(){return ys.And},e.prototype.equals=function(t){if(t instanceof e){if(this.expr.length!==t.expr.length)return!1;for(var n=0,i=this.expr.length;n=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Ps=function(e,t){return function(n,i){t(n,i,e)}};function Os(e){return void 0!==e.command}var $s,ks=function(){function e(){this.id=String(e.ID++)}return e.ID=1,e.EditorContext=new e,e.CommandPalette=new e,e.MenubarEditMenu=new e,e.MenubarSelectionMenu=new e,e}(),Ls=Vt("menuService"),Ms=new(function(){function e(){this._commands=Object.create(null),this._menuItems=Object.create(null)}return e.prototype.addCommand=function(e){var t=this._commands[e.id];return this._commands[e.id]=e,void 0!==t},e.prototype.getCommand=function(e){return this._commands[e]},e.prototype.appendMenuItem=function(e,t){var n=e.id,i=this._menuItems[n];return i?i.push(t):this._menuItems[n]=i=[t],{dispose:function(){var e=i.indexOf(t);e>=0&&i.splice(e,1)}}},e.prototype.getMenuItems=function(e){var t=e.id,n=this._menuItems[t]||[];return t===ks.CommandPalette.id&&this._appendImplicitItems(n),n},e.prototype._appendImplicitItems=function(e){for(var t=new Set,n=0,i=e.filter(function(e){return Os(e)});nr,d=i>a,c=ia)continue;if(Si)continue;if(y1&&r--,this.columnSelect(e,t,n.selection,i,r)},e.columnSelectRight=function(e,t,n,i,r){for(var s=0,a=Math.min(n.position.lineNumber,i),l=Math.max(n.position.lineNumber,i),u=a;u<=l;u++){var d=t.getLineMaxColumn(u),c=Go.visibleColumnFromColumn2(e,t,new o(u,d));s=Math.max(s,c)}return rt.getLineCount()&&(r=t.getLineCount()),this.columnSelect(e,t,n.selection,r,o)},e}();!function(e){e.editorTextFocus=new Rs("editorTextFocus",!1),e.focus=new Rs("editorFocus",!1),e.textInputFocus=new Rs("textInputFocus",!1),e.readOnly=new Rs("editorReadonly",!1),e.writable=e.readOnly.toNegated(),e.hasNonEmptySelection=new Rs("editorHasSelection",!1),e.hasOnlyEmptySelection=e.hasNonEmptySelection.toNegated(),e.hasMultipleSelections=new Rs("editorHasMultipleSelections",!1),e.hasSingleSelection=e.hasMultipleSelections.toNegated(),e.tabMovesFocus=new Rs("editorTabMovesFocus",!1),e.tabDoesNotMoveFocus=e.tabMovesFocus.toNegated(),e.isInEmbeddedEditor=new Rs("isInEmbeddedEditor",void 0),e.canUndo=new Rs("canUndo",!1),e.canRedo=new Rs("canRedo",!1),e.languageId=new Rs("editorLangId",void 0),e.hasCompletionItemProvider=new Rs("editorHasCompletionItemProvider",void 0),e.hasCodeActionsProvider=new Rs("editorHasCodeActionsProvider",void 0),e.hasCodeLensProvider=new Rs("editorHasCodeLensProvider",void 0),e.hasDefinitionProvider=new Rs("editorHasDefinitionProvider",void 0),e.hasImplementationProvider=new Rs("editorHasImplementationProvider",void 0),e.hasTypeDefinitionProvider=new Rs("editorHasTypeDefinitionProvider",void 0),e.hasHoverProvider=new Rs("editorHasHoverProvider",void 0),e.hasDocumentHighlightProvider=new Rs("editorHasDocumentHighlightProvider",void 0),e.hasDocumentSymbolProvider=new Rs("editorHasDocumentSymbolProvider",void 0),e.hasReferenceProvider=new Rs("editorHasReferenceProvider",void 0),e.hasRenameProvider=new Rs("editorHasRenameProvider",void 0),e.hasDocumentFormattingProvider=new Rs("editorHasDocumentFormattingProvider",void 0),e.hasDocumentSelectionFormattingProvider=new Rs("editorHasDocumentSelectionFormattingProvider",void 0),e.hasSignatureHelpProvider=new Rs("editorHasSignatureHelpProvider",void 0)}(na||(na={}));var ra,oa,sa,aa,la=function(){function e(e,t,n){void 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations()[0].range;return new Wn(n.endLineNumber,n.endColumn,n.endLineNumber,n.endColumn)},e}(),ua=function(){function e(e,t,n){void 0===n&&(n=!1),this._range=e,this._text=t,this.insertsAutoWhitespace=n}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations()[0].range;return new Wn(n.startLineNumber,n.startColumn,n.startLineNumber,n.startColumn)},e}(),da=function(){function e(e,t,n,i,r){void 0===r&&(r=!1),this._range=e,this._text=t,this._columnDeltaOffset=i,this._lineNumberDeltaOffset=n,this.insertsAutoWhitespace=r}return e.prototype.getEditOperations=function(e,t){t.addTrackedEditOperation(this._range,this._text)},e.prototype.computeCursorState=function(e,t){var n=t.getInverseEditOperations()[0].range;return new Wn(n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset,n.endLineNumber+this._lineNumberDeltaOffset,n.endColumn+this._columnDeltaOffset)},e}(),ca=function(){function e(e,t,n){this._range=e,this._text=t,this._initialSelection=n}return e.prototype.getEditOperations=function(e,t){t.addEditOperation(this._range,this._text),this._selectionId=t.trackSelection(this._initialSelection)},e.prototype.computeCursorState=function(e,t){return t.getTrackedSelection(this._selectionId)},e}(),ga=function(){function e(e,t){this._opts=t,this._selection=e,this._useLastEditRangeForCursorEndPosition=!1,this._selectionStartColumnStaysPut=!1}return e.unshiftIndentCount=function(e,t,n){var i=Go.visibleColumnFromColumn(e,t,n);return Go.prevTabStop(i,n)/n},e.shiftIndentCount=function(e,t,n){var i=Go.visibleColumnFromColumn(e,t,n);return Go.nextTabStop(i,n)/n},e.prototype._addEditOperation=function(e,t,n){this._useLastEditRangeForCursorEndPosition?e.addTrackedEditOperation(t,n):e.addEditOperation(t,n)},e.prototype.getEditOperations=function(t,n){var i=this._selection.startLineNumber,r=this._selection.endLineNumber;1===this._selection.endColumn&&i!==r&&(r-=1);var o=this._opts.tabSize,a=this._opts.oneIndent,l=i===r;if(this._selection.isEmpty()&&/^\s*$/.test(t.getLineContent(i))&&(this._useLastEditRangeForCursorEndPosition=!0),this._opts.useTabStops)for(var u=["",a],d=0,c=0,g=i;g<=r;g++,d=c){c=0;var m=T(S=t.getLineContent(g));if((!this._opts.isUnshift||0!==S.length&&0!==m)&&(l||this._opts.isUnshift||0!==S.length)){if(-1===m&&(m=S.length),g>1&&Go.visibleColumnFromColumn(S,m+1,o)%o!=0&&t.isCheapToTokenize(g-1)){var h=tr.getRawEnterActionAtPosition(t,g-1,t.getLineMaxColumn(g-1));if(h){if(c=d,h.appendText)for(var p=0,f=h.appendText.length;p1){var l=i-1;for(l=i-1;l>=1&&!(w(n.getLineContent(l))>=0);l--);if(l<1)return null;var u=n.getLineMaxColumn(l),d=tr.getEnterAction(n,new s(l,u,l,u));d&&(o=d.indentation,(r=d.enterAction)&&(o+=r.appendText))}return r&&(r===ji.Indent&&(o=e.shiftIndent(t,o)),r===ji.Outdent&&(o=e.unshiftIndent(t,o)),o=t.normalizeIndentation(o)),o||null},e._replaceJumpToNextIndent=function(e,t,n,i){var r="",o=n.getStartPosition();if(e.insertSpaces)for(var s=Go.visibleColumnFromColumn2(e,t,o),a=e.tabSize,l=a-s%a,u=0;u=0?r.setEndPosition(r.endLineNumber,Math.max(r.endColumn,C+1)):r.setEndPosition(r.endLineNumber,n.getLineMaxColumn(r.endLineNumber)),i)return new ua(r,I+t.normalizeIndentation(p.afterEnter),!0);var _=0;return b<=C+1&&(t.insertSpaces||(S=Math.ceil(S/t.tabSize)),_=Math.min(S+1-t.normalizeIndentation(p.afterEnter).length-1,0)),new da(r,I+t.normalizeIndentation(p.afterEnter),0,_,!0)}return e._typeCommand(r,"\n"+t.normalizeIndentation(y),i)},e._isAutoIndentType=function(e,t,n){if(!e.autoIndent)return!1;for(var i=0,r=n.length;i1){var d=Yr(t.wordSeparators),c=u.charCodeAt(l.column-2);if(0===d.get(c))return!1}var g=u.charAt(l.column-1);if(g&&!e._isBeforeClosingBrace(t,r,g)&&!/\s/.test(g))return!1;if(!n.isCheapToTokenize(l.lineNumber))return!1;n.forceTokenization(l.lineNumber);var m=n.getLineTokens(l.lineNumber),h=!1;try{h=tr.shouldAutoClosePair(r,m,l.column)}catch(e){ye(e)}if(!h)return!1}return!0},e._runAutoClosingOpenCharType=function(e,t,n,i,r){for(var o=[],s=0,a=i.length;s2){var c=Yr(n.wordSeparators),g=l.charCodeAt(a.column-3);if(0===c.get(g))continue}var m=l.charAt(a.column-1);if(m&&!e._isBeforeClosingBrace(n,u,m)&&!/\s/.test(m))continue;if(!i.isCheapToTokenize(a.lineNumber))continue;i.forceTokenization(a.lineNumber);var h=i.getLineTokens(a.lineNumber),p=!1;try{p=tr.shouldAutoClosePair(u,h,a.column-1)}catch(e){ye(e)}if(p){var f=n.autoClosingPairsOpen[u];o[s]=new da(r[s],f,0,-f.length)}}}return new Uo(1,o,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!1})},e.typeWithInterceptors=function(t,n,i,r,o){if("\n"===o){for(var s=[],a=0,l=r.length;a1){var g=n.getLineContent(c.lineNumber),m=T(g),h=-1===m?g.length+1:m+1;if(c.column<=h){var p=Go.visibleColumnFromColumn2(t,n,c),f=Go.prevTabStop(p,t.tabSize),y=Go.columnFromVisibleColumn2(t,n,c.lineNumber,f);d=new s(c.lineNumber,y,c.lineNumber,c.column)}else d=new s(c.lineNumber,c.column-1,c.lineNumber,c.column)}else{var S=Vo.left(t,n,c.lineNumber,c.column);d=new s(S.lineNumber,S.column,c.lineNumber,c.column)}}d.isEmpty()?r[a]=null:(d.startLineNumber!==d.endLineNumber&&(o=!0),r[a]=new la(d,""))}return[o,r]},e.cut=function(e,t,n){for(var i=[],r=0,o=n.length;r1?(u=l.lineNumber-1,d=t.getLineMaxColumn(l.lineNumber-1),c=l.lineNumber,g=t.getLineMaxColumn(l.lineNumber)):(u=l.lineNumber,d=1,c=l.lineNumber,g=t.getLineMaxColumn(l.lineNumber));var m=new s(u,d,c,g);m.isEmpty()?i[r]=null:i[r]=new la(m,"")}else i[r]=null;else i[r]=new la(a,"")}return new Uo(0,i,{shouldPushStackElementBefore:!0,shouldPushStackElementAfter:!0})},e}(),fa=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),ya=l,Sa=0,ba=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors();i&&this.runCoreEditorCommand(i,n||{})},t}(qs);function Ia(e){return e.get(Us).getFocusedCodeEditor()}function Ca(e){e.register()}!function(e){e.description={description:"Scroll editor in the given direction",args:[{name:"Editor scroll argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'to': A mandatory direction value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'up', 'down'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'by': Unit to move. Default is computed based on 'to' value.\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'line', 'wrappedLine', 'page', 'halfPage'\n\t\t\t\t\t\t```\n\t\t\t\t\t* 'value': Number of units to move. Default is '1'.\n\t\t\t\t\t* 'revealCursor': If 'true' reveals the cursor if it is outside view port.\n\t\t\t\t",constraint:function(e){if(!nn(e))return!1;var t=e;return!(!tn(t.to)||!sn(t.by)&&!tn(t.by)||!sn(t.value)&&!rn(t.value)||!sn(t.revealCursor)&&!on(t.revealCursor))}}]},e.RawDirection={Up:"up",Down:"down"},e.RawUnit={Line:"line",WrappedLine:"wrappedLine",Page:"page",HalfPage:"halfPage"},e.parse=function(t){var n,i;switch(t.to){case e.RawDirection.Up:n=1;break;case e.RawDirection.Down:n=2;break;default:return null}switch(t.by){case e.RawUnit.Line:i=1;break;case e.RawUnit.WrappedLine:i=2;break;case e.RawUnit.Page:i=3;break;case e.RawUnit.HalfPage:i=4;break;default:i=2}return{direction:n,unit:i,value:Math.floor(t.value||1),revealCursor:!!t.revealCursor,select:!!t.select}}}(ra||(ra={})),function(e){e.description={description:"Reveal the given line at the given logical position",args:[{name:"Reveal line argument object",description:"Property-value pairs that can be passed through this argument:\n\t\t\t\t\t* 'lineNumber': A mandatory line number value.\n\t\t\t\t\t* 'at': Logical position at which line has to be revealed .\n\t\t\t\t\t\t```\n\t\t\t\t\t\t'top', 'center', 'bottom'\n\t\t\t\t\t\t```\n\t\t\t\t",constraint:function(e){if(!nn(e))return!1;var t=e;return!(!rn(t.lineNumber)||!sn(t.at)&&!tn(t.at))}}]},e.RawAtArgument={Top:"top",Center:"center",Bottom:"bottom"}}(oa||(oa={})),function(e){var t=function(e){function t(t){var n=e.call(this,t)||this;return n._inSelectionMode=t.inSelectionMode,n}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,$o.Explicit,[Xo.moveTo(e.context,e.getPrimaryCursor(),this._inSelectionMode,t.position,t.viewPosition)]),e.reveal(!0,0,0)},t}(ba);e.MoveTo=Qs(new t({id:"_moveTo",inSelectionMode:!1,precondition:null})),e.MoveToSelect=Qs(new t({id:"_moveToSelect",inSelectionMode:!0,precondition:null}));var n=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement();var n=this._getColumnSelectResult(e.context,e.getPrimaryCursor(),e.getColumnSelectData(),t);e.setStates(t.source,$o.Explicit,n.viewStates.map(function(e){return jo.fromViewState(e)})),e.setColumnSelectData({toViewLineNumber:n.toLineNumber,toViewVisualColumn:n.toVisualColumn}),e.reveal(!0,n.reversed?1:2,0)},t}(ba);e.ColumnSelect=Qs(new(function(e){function t(){return e.call(this,{id:"columnSelect",precondition:null})||this}return fa(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){var r,s=e.model.validatePosition(i.position);return r=i.viewPosition?e.validateViewPosition(new o(i.viewPosition.lineNumber,i.viewPosition.column),s):e.convertModelPositionToViewPosition(s),ia.columnSelect(e.config,e.viewModel,t.viewState.selection,r.lineNumber,i.mouseColumn-1)},t}(n))),e.CursorColumnSelectLeft=Qs(new(function(e){function t(){return e.call(this,{id:"cursorColumnSelectLeft",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3599,linux:{primary:0}}})||this}return fa(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return ia.columnSelectLeft(e.config,e.viewModel,t.viewState,n.toViewLineNumber,n.toViewVisualColumn)},t}(n))),e.CursorColumnSelectRight=Qs(new(function(e){function t(){return e.call(this,{id:"cursorColumnSelectRight",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3601,linux:{primary:0}}})||this}return fa(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return ia.columnSelectRight(e.config,e.viewModel,t.viewState,n.toViewLineNumber,n.toViewVisualColumn)},t}(n)));var i=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return fa(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return ia.columnSelectUp(e.config,e.viewModel,t.viewState,this._isPaged,n.toViewLineNumber,n.toViewVisualColumn)},t}(n);e.CursorColumnSelectUp=Qs(new i({isPaged:!1,id:"cursorColumnSelectUp",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3600,linux:{primary:0}}})),e.CursorColumnSelectPageUp=Qs(new i({isPaged:!0,id:"cursorColumnSelectPageUp",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3595,linux:{primary:0}}}));var r=function(e){function t(t){var n=e.call(this,t)||this;return n._isPaged=t.isPaged,n}return fa(t,e),t.prototype._getColumnSelectResult=function(e,t,n,i){return ia.columnSelectDown(e.config,e.viewModel,t.viewState,this._isPaged,n.toViewLineNumber,n.toViewVisualColumn)},t}(n);e.CursorColumnSelectDown=Qs(new r({isPaged:!1,id:"cursorColumnSelectDown",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3602,linux:{primary:0}}})),e.CursorColumnSelectPageDown=Qs(new r({isPaged:!0,id:"cursorColumnSelectPageDown",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:3596,linux:{primary:0}}}));var a=function(e){function t(){return e.call(this,{id:"cursorMove",precondition:null,description:Qo.description})||this}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n=Qo.parse(t);n&&this._runCursorMove(e,t.source,n)},t.prototype._runCursorMove=function(e,t,n){e.context.model.pushStackElement(),e.setStates(t,$o.Explicit,Xo.move(e.context,e.getAll(),n)),e.reveal(!0,0,0)},t}(ba);e.CursorMoveImpl=a,e.CursorMove=Qs(new a);var l=function(t){function n(e){var n=t.call(this,e)||this;return n._staticArgs=e.args,n}return fa(n,t),n.prototype.runCoreEditorCommand=function(t,n){var i=this._staticArgs;-1===this._staticArgs.value&&(i={direction:this._staticArgs.direction,unit:this._staticArgs.unit,select:this._staticArgs.select,value:t.context.config.pageSize}),e.CursorMove._runCursorMove(t,n.source,i)},n}(ba);e.CursorLeft=Qs(new l({args:{direction:0,unit:0,select:!1,value:1},id:"cursorLeft",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:15,mac:{primary:15,secondary:[288]}}})),e.CursorLeftSelect=Qs(new l({args:{direction:0,unit:0,select:!0,value:1},id:"cursorLeftSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1039}})),e.CursorRight=Qs(new l({args:{direction:1,unit:0,select:!1,value:1},id:"cursorRight",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:17,mac:{primary:17,secondary:[292]}}})),e.CursorRightSelect=Qs(new l({args:{direction:1,unit:0,select:!0,value:1},id:"cursorRightSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1041}})),e.CursorUp=Qs(new l({args:{direction:2,unit:2,select:!1,value:1},id:"cursorUp",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:16,mac:{primary:16,secondary:[302]}}})),e.CursorUpSelect=Qs(new l({args:{direction:2,unit:2,select:!0,value:1},id:"cursorUpSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1040,secondary:[3088],mac:{primary:1040},linux:{primary:1040}}})),e.CursorPageUp=Qs(new l({args:{direction:2,unit:2,select:!1,value:-1},id:"cursorPageUp",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:11}})),e.CursorPageUpSelect=Qs(new l({args:{direction:2,unit:2,select:!0,value:-1},id:"cursorPageUpSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1035}})),e.CursorDown=Qs(new l({args:{direction:3,unit:2,select:!1,value:1},id:"cursorDown",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:18,mac:{primary:18,secondary:[300]}}})),e.CursorDownSelect=Qs(new l({args:{direction:3,unit:2,select:!0,value:1},id:"cursorDownSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1042,secondary:[3090],mac:{primary:1042},linux:{primary:1042}}})),e.CursorPageDown=Qs(new l({args:{direction:3,unit:2,select:!1,value:-1},id:"cursorPageDown",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:12}})),e.CursorPageDownSelect=Qs(new l({args:{direction:3,unit:2,select:!0,value:-1},id:"cursorPageDownSelect",precondition:null,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1036}})),e.CreateCursor=Qs(new(function(e){function t(){return e.call(this,{id:"createCursor",precondition:null})||this}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){var n,i=e.context;n=t.wholeLine?Xo.line(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition):Xo.moveTo(i,e.getPrimaryCursor(),!1,t.position,t.viewPosition);var r=e.getAll();if(r.length>1)for(var o=n.modelState?n.modelState.position:null,s=n.viewState?n.viewState.position:null,a=0,l=r.length;ar&&(i=r);var o=new s(i,1,i,e.context.model.getLineMaxColumn(i)),a=0;if(n.at)switch(n.at){case oa.RawAtArgument.Top:a=3;break;case oa.RawAtArgument.Center:a=1;break;case oa.RawAtArgument.Bottom:a=4}var l=e.context.convertModelRangeToViewRange(o);e.revealRange(!1,l,a,0)},t}(ba))),e.SelectAll=Qs(new(function(e){function t(){return e.call(this,{id:"selectAll",precondition:null})||this}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,$o.Explicit,[Xo.selectAll(e.context,e.getPrimaryCursor())])},t}(ba))),e.SetSelection=Qs(new(function(e){function t(){return e.call(this,{id:"setSelection",precondition:null})||this}return fa(t,e),t.prototype.runCoreEditorCommand=function(e,t){e.context.model.pushStackElement(),e.setStates(t.source,$o.Explicit,[jo.fromModelSelection(t.selection)])},t}(ba)))}(sa||(sa={})),function(e){e.LineBreakInsert=Qs(new(function(e){function t(){return e.call(this,{id:"lineBreakInsert",precondition:na.writable,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:null,mac:{primary:301}}})||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,ha.lineBreakInsert(t._getCursorConfiguration(),t.getModel(),t.getSelections()))},t}(qs))),e.Outdent=Qs(new(function(e){function t(){return e.call(this,{id:"outdent",precondition:na.writable,kbOpts:{weight:Sa,kbExpr:_s.and(na.editorTextFocus,na.tabDoesNotMoveFocus),primary:1026}})||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,ha.outdent(t._getCursorConfiguration(),t.getModel(),t.getSelections())),t.pushUndoStop()},t}(qs))),e.Tab=Qs(new(function(e){function t(){return e.call(this,{id:"tab",precondition:na.writable,kbOpts:{weight:Sa,kbExpr:_s.and(na.editorTextFocus,na.tabDoesNotMoveFocus),primary:2}})||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){t.pushUndoStop(),t.executeCommands(this.id,ha.tab(t._getCursorConfiguration(),t.getModel(),t.getSelections())),t.pushUndoStop()},t}(qs))),e.DeleteLeft=Qs(new(function(e){function t(){return e.call(this,{id:"deleteLeft",precondition:na.writable,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:1,secondary:[1025],mac:{primary:1,secondary:[1025,294,257]}}})||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors(),r=pa.deleteLeft(i.getPrevEditOperationType(),t._getCursorConfiguration(),t.getModel(),t.getSelections()),o=r[0],s=r[1];o&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(2)},t}(qs))),e.DeleteRight=Qs(new(function(e){function t(){return e.call(this,{id:"deleteRight",precondition:na.writable,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:20,mac:{primary:20,secondary:[290,276]}}})||this}return fa(t,e),t.prototype.runEditorCommand=function(e,t,n){var i=t._getCursors(),r=pa.deleteRight(i.getPrevEditOperationType(),t._getCursorConfiguration(),t.getModel(),t.getSelections()),o=r[0],s=r[1];o&&t.pushUndoStop(),t.executeCommands(this.id,s),i.setPrevEditOperationType(3)},t}(qs)))}(aa||(aa={}));var _a=function(e){function t(t){var n=e.call(this,t)||this;return n._editorHandler=t.editorHandler,n._inputHandler=t.inputHandler,n}return fa(t,e),t.prototype.runCommand=function(e,t){var n=Ia(e);if(n&&n.hasTextFocus())return this._runEditorHandler(n,t);var i=document.activeElement;if(!(i&&["input","textarea"].indexOf(i.tagName.toLowerCase())>=0)){var r=e.get(Us).getActiveCodeEditor();return r?(r.focus(),this._runEditorHandler(r,t)):void 0}document.execCommand(this._inputHandler)},t.prototype._runEditorHandler=function(e,t){var n=this._editorHandler;"string"==typeof n?e.trigger("keyboard",n,t):((t=t||{}).source="keyboard",n.runEditorCommand(null,e,t))},t}(Vs),va=function(e){function t(t,n){var i=e.call(this,{id:t,precondition:null})||this;return i._handlerId=n,i}return fa(t,e),t.prototype.runCommand=function(e,t){var n=Ia(e);n&&n.trigger("keyboard",this._handlerId,t)},t}(Vs);function Ta(e){Ca(new va("default:"+e,e)),Ca(new va(e,e))}Ca(new _a({editorHandler:sa.SelectAll,inputHandler:"selectAll",id:"editor.action.selectAll",precondition:na.textInputFocus,kbOpts:{weight:Sa,kbExpr:null,primary:2079},menubarOpts:{menuId:ks.MenubarSelectionMenu,group:"1_basic",title:r({key:"miSelectAll",comment:["&& denotes a mnemonic"]},"&&Select All"),order:1}})),Ca(new _a({editorHandler:ya.Undo,inputHandler:"undo",id:ya.Undo,precondition:na.writable,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:2104},menubarOpts:{menuId:ks.MenubarEditMenu,group:"1_do",title:r({key:"miUndo",comment:["&& denotes a mnemonic"]},"&&Undo"),order:1}})),Ca(new va("default:"+ya.Undo,ya.Undo)),Ca(new _a({editorHandler:ya.Redo,inputHandler:"redo",id:ya.Redo,precondition:na.writable,kbOpts:{weight:Sa,kbExpr:na.textInputFocus,primary:2103,secondary:[3128],mac:{primary:3128}},menubarOpts:{menuId:ks.MenubarEditMenu,group:"1_do",title:r({key:"miRedo",comment:["&& denotes a mnemonic"]},"&&Redo"),order:2}})),Ca(new va("default:"+ya.Redo,ya.Redo)),Ta(ya.Type),Ta(ya.ReplacePreviousChar),Ta(ya.CompositionStart),Ta(ya.CompositionEnd),Ta(ya.Paste),Ta(ya.Cut),n(12),n(15);var xa,wa=Object.freeze(function(e,t){var n=setTimeout(e.bind(t),0);return{dispose:function(){clearTimeout(n)}}});!function(e){e.None=Object.freeze({isCancellationRequested:!1,onCancellationRequested:De.None}),e.Cancelled=Object.freeze({isCancellationRequested:!0,onCancellationRequested:wa})}(xa||(xa={}));var Ba=function(){function e(){this._isCancelled=!1}return e.prototype.cancel=function(){this._isCancelled||(this._isCancelled=!0,this._emitter&&(this._emitter.fire(void 0),this.dispose()))},Object.defineProperty(e.prototype,"isCancellationRequested",{get:function(){return this._isCancelled},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onCancellationRequested",{get:function(){return this._isCancelled?wa:(this._emitter||(this._emitter=new Ne),this._emitter.event)},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._emitter&&(this._emitter.dispose(),this._emitter=void 0)},e}(),Da=function(){function e(){}return Object.defineProperty(e.prototype,"token",{get:function(){return this._token||(this._token=new Ba),this._token},enumerable:!0,configurable:!0}),e.prototype.cancel=function(){this._token?this._token instanceof Ba&&this._token.cancel():this._token=xa.Cancelled},e.prototype.dispose=function(){this._token?this._token instanceof Ba&&this._token.dispose():this._token=xa.None},e}(),Aa=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Ra(e){return e&&"function"==typeof e.then}function Ea(e){return Ra(e)?e:he.b.as(e)}function Ka(e){var t=new Da,n=e(t.token),i=new Promise(function(e,i){t.token.onCancellationRequested(function(){i(_e())}),Promise.resolve(n).then(function(n){t.dispose(),e(n)},function(e){t.dispose(),i(e)})});return new(function(){function e(){}return e.prototype.cancel=function(){t.cancel()},e.prototype.then=function(e,t){return i.then(e,t)},e.prototype.catch=function(e){return this.then(void 0,e)},e}())}function Na(e){var t=new Da;return new he.b(function(n,i,r){var o=e(t.token);o instanceof he.b?o.then(function(e){t.dispose(),n(e)},function(e){t.dispose(),i(e)},r):Ra(o)?o.then(function(e){t.dispose(),n(e)},function(e){t.dispose(),i(e)}):(t.dispose(),n(o))},function(){t.cancel()})}var Pa=function(){function e(e){this.defaultDelay=e,this.timeout=null,this.completionPromise=null,this.onSuccess=null,this.task=null}return e.prototype.trigger=function(e,t){var n=this;return void 0===t&&(t=this.defaultDelay),this.task=e,this.cancelTimeout(),this.completionPromise||(this.completionPromise=new he.b(function(e){n.onSuccess=e},function(){}).then(function(){n.completionPromise=null,n.onSuccess=null;var e=n.task;return n.task=null,e()})),this.timeout=setTimeout(function(){n.timeout=null,n.onSuccess(null)},t),this.completionPromise},e.prototype.cancel=function(){this.cancelTimeout(),this.completionPromise&&(this.completionPromise.cancel(),this.completionPromise=null)},e.prototype.cancelTimeout=function(){null!==this.timeout&&(clearTimeout(this.timeout),this.timeout=null)},e}(),Oa=function(e){function t(t){var n,i,r,o;return n=e.call(this,function(e,t,n){i=e,r=t,o=n},function(){r(_e())})||this,t.then(i,r,o),n}return Aa(t,e),t}(he.b);function $a(e,t,n){void 0===t&&(t=function(e){return!!e}),void 0===n&&(n=null);var i=0,r=e.length,o=function(){return i>=r?Promise.resolve(n):(0,e[i++])().then(function(e){return t(e)?Promise.resolve(e):o()})};return o()}function ka(e,t,n){void 0===t&&(t=function(e){return!!e}),void 0===n&&(n=null);var i=0,r=e.length,o=function(){return i>=r?he.b.as(n):(0,e[i++])().then(function(e){return t(e)?he.b.as(e):o()})};return o()}var La=function(e){function t(){var t=e.call(this)||this;return t._token=-1,t}return Aa(t,e),t.prototype.dispose=function(){this.cancel(),e.prototype.dispose.call(this)},t.prototype.cancel=function(){-1!==this._token&&(clearTimeout(this._token),this._token=-1)},t.prototype.cancelAndSet=function(e,t){var n=this;this.cancel(),this._token=setTimeout(function(){n._token=-1,e()},t)},t.prototype.setIfNotSet=function(e,t){var n=this;-1===this._token&&(this._token=setTimeout(function(){n._token=-1,e()},t))},t}(Ae),Ma=function(e){function t(){var t=e.call(this)||this;return t._token=-1,t}return Aa(t,e),t.prototype.dispose=function(){this.cancel(),e.prototype.dispose.call(this)},t.prototype.cancel=function(){-1!==this._token&&(clearInterval(this._token),this._token=-1)},t.prototype.cancelAndSet=function(e,t){this.cancel(),this._token=setInterval(function(){e()},t)},t}(Ae),Fa=function(){function e(e,t){this.timeoutToken=-1,this.runner=e,this.timeout=t,this.timeoutHandler=this.onTimeout.bind(this)}return e.prototype.dispose=function(){this.cancel(),this.runner=null},e.prototype.cancel=function(){this.isScheduled()&&(clearTimeout(this.timeoutToken),this.timeoutToken=-1)},e.prototype.schedule=function(e){void 0===e&&(e=this.timeout),this.cancel(),this.timeoutToken=setTimeout(this.timeoutHandler,e)},e.prototype.isScheduled=function(){return-1!==this.timeoutToken},e.prototype.onTimeout=function(){this.timeoutToken=-1,this.runner&&this.doRun()},e.prototype.doRun=function(){this.runner()},e}(),za=function(){function e(){this._zoomLevel=0,this._lastZoomLevelChangeTime=0,this._onDidChangeZoomLevel=new Ne,this.onDidChangeZoomLevel=this._onDidChangeZoomLevel.event,this._accessibilitySupport=0,this._onDidChangeAccessibilitySupport=new Ne,this.onDidChangeAccessibilitySupport=this._onDidChangeAccessibilitySupport.event}return e.prototype.getZoomLevel=function(){return this._zoomLevel},e.prototype.getTimeSinceLastZoomLevelChanged=function(){return Date.now()-this._lastZoomLevelChangeTime},e.prototype.getPixelRatio=function(){var e=document.createElement("canvas").getContext("2d");return(window.devicePixelRatio||1)/(e.webkitBackingStorePixelRatio||e.mozBackingStorePixelRatio||e.msBackingStorePixelRatio||e.oBackingStorePixelRatio||e.backingStorePixelRatio||1)},e.prototype.getAccessibilitySupport=function(){return this._accessibilitySupport},e.INSTANCE=new e,e}();function ja(){return za.INSTANCE.getZoomLevel()}var Ua=navigator.userAgent,Ga=Ua.indexOf("Trident")>=0,Wa=Ua.indexOf("Edge/")>=0,Va=Ga||Wa,qa=Ua.indexOf("Firefox")>=0,Ya=Ua.indexOf("AppleWebKit")>=0,Ha=Ua.indexOf("Chrome")>=0,Za=-1===Ua.indexOf("Chrome")&&Ua.indexOf("Safari")>=0,Qa=Ua.indexOf("iPad")>=0,Xa=Wa&&Ua.indexOf("WebView/")>=0,Ja=new Array(230),el=new Array(112);!function(){for(var e=0;e=0;){if(o=s+r,(0===s||32===n.charCodeAt(s-1))&&32===n.charCodeAt(o))return this._lastStart=s,void(this._lastEnd=o+1);if(s>0&&32===n.charCodeAt(s-1)&&o===i)return this._lastStart=s-1,void(this._lastEnd=o);if(0===s&&o===i)return this._lastStart=0,void(this._lastEnd=o)}this._lastStart=-1}else this._lastStart=-1}else this._lastStart=-1},e.prototype.hasClass=function(e,t){return this._findClassName(e,t),-1!==this._lastStart},e.prototype.addClasses=function(e){for(var t=this,n=[],i=1;i0;)t.sort(Rl.sort),t.shift().execute();i=!1};Dl=function(t,i){void 0===i&&(i=0);var o=new Rl(t,i);return e.push(o),n||(n=!0,function(e){Al||(Al=self.requestAnimationFrame||self.msRequestAnimationFrame||self.webkitRequestAnimationFrame||self.mozRequestAnimationFrame||self.oRequestAnimationFrame||function(e){return setTimeout(function(){return e((new Date).getTime())},0)}),Al.call(self,e)}(r)),o},Bl=function(e,n){if(i){var r=new Rl(e,n);return t.push(r),r}return Dl(e,n)}}();var El=16,Kl=function(e,t){return t},Nl=function(e){function t(t,n,i,r,o){void 0===r&&(r=Kl),void 0===o&&(o=El);var s=e.call(this)||this,a=null,l=0,u=s._register(new La),d=function(){l=(new Date).getTime(),i(a),a=null};return s._register(Tl(t,n,function(e){a=r(a,e);var t=(new Date).getTime()-l;t>=o?(u.cancel(),d()):u.setIfNotSet(d,o-t)})),s}return hl(t,e),t}(Ae);function Pl(e,t,n,i,r){return new Nl(e,t,n,i,r)}function Ol(e){return document.defaultView.getComputedStyle(e,null)}var $l=function(e,t){return parseFloat(t)||0};function kl(e,t,n){var i=Ol(e),r="0";return i&&(r=i.getPropertyValue?i.getPropertyValue(t):i.getAttribute(n)),$l(e,r)}var Ll={getBorderLeftWidth:function(e){return kl(e,"border-left-width","borderLeftWidth")},getBorderRightWidth:function(e){return kl(e,"border-right-width","borderRightWidth")},getBorderTopWidth:function(e){return kl(e,"border-top-width","borderTopWidth")},getBorderBottomWidth:function(e){return kl(e,"border-bottom-width","borderBottomWidth")},getPaddingLeft:function(e){return kl(e,"padding-left","paddingLeft")},getPaddingRight:function(e){return kl(e,"padding-right","paddingRight")},getPaddingTop:function(e){return kl(e,"padding-top","paddingTop")},getPaddingBottom:function(e){return kl(e,"padding-bottom","paddingBottom")},getMarginLeft:function(e){return kl(e,"margin-left","marginLeft")},getMarginTop:function(e){return kl(e,"margin-top","marginTop")},getMarginRight:function(e){return kl(e,"margin-right","marginRight")},getMarginBottom:function(e){return kl(e,"margin-bottom","marginBottom")},__commaSentinel:!1},Ml=function(e,t){this.width=e,this.height=t};function Fl(e){for(var t=e.offsetParent,n=e.offsetTop,i=e.offsetLeft;null!==(e=e.parentNode)&&e!==document.body&&e!==document.documentElement;){n-=e.scrollTop;var r=Ol(e);r&&(i-="rtl"!==r.direction?e.scrollLeft:-e.scrollLeft),e===t&&(i+=Ll.getBorderLeftWidth(e),n+=Ll.getBorderTopWidth(e),n+=e.offsetTop,i+=e.offsetLeft,t=e.offsetParent)}return{left:i,top:n}}function zl(e){var t=e.getBoundingClientRect();return{left:t.left+jl.scrollX,top:t.top+jl.scrollY,width:t.width,height:t.height}}var jl=new(function(){function e(){}return Object.defineProperty(e.prototype,"scrollX",{get:function(){return"number"==typeof window.scrollX?window.scrollX:document.body.scrollLeft+document.documentElement.scrollLeft},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"scrollY",{get:function(){return"number"==typeof window.scrollY?window.scrollY:document.body.scrollTop+document.documentElement.scrollTop},enumerable:!0,configurable:!0}),e}());function Ul(e){var t=Ll.getMarginLeft(e)+Ll.getMarginRight(e);return e.offsetWidth+t}function Gl(e){var t=Ll.getBorderLeftWidth(e)+Ll.getBorderRightWidth(e),n=Ll.getPaddingLeft(e)+Ll.getPaddingRight(e);return e.offsetWidth-t-n}function Wl(e){var t=Ll.getBorderTopWidth(e)+Ll.getBorderBottomWidth(e),n=Ll.getPaddingTop(e)+Ll.getPaddingBottom(e);return e.offsetHeight-t-n}function Vl(e){var t=Ll.getMarginTop(e)+Ll.getMarginBottom(e);return e.offsetHeight+t}function ql(e,t){for(;e;){if(e===t)return!0;e=e.parentNode}return!1}function Yl(e,t,n){for(;e;){if(bl(e,t))return e;if(n)if("string"==typeof n){if(bl(e,n))return null}else if(e===n)return null;e=e.parentNode}return null}function Hl(e){void 0===e&&(e=document.getElementsByTagName("head")[0]);var t=document.createElement("style");return t.type="text/css",t.media="screen",e.appendChild(t),t}var Zl=null;function Ql(e){return"object"==typeof HTMLElement?e instanceof HTMLElement:e&&"object"==typeof e&&1===e.nodeType&&"string"==typeof e.nodeName}var Xl={CLICK:"click",AUXCLICK:"auxclick",DBLCLICK:"dblclick",MOUSE_UP:"mouseup",MOUSE_DOWN:"mousedown",MOUSE_OVER:"mouseover",MOUSE_MOVE:"mousemove",MOUSE_OUT:"mouseout",MOUSE_ENTER:"mouseenter",MOUSE_LEAVE:"mouseleave",CONTEXT_MENU:"contextmenu",WHEEL:"wheel",KEY_DOWN:"keydown",KEY_PRESS:"keypress",KEY_UP:"keyup",LOAD:"load",UNLOAD:"unload",ABORT:"abort",ERROR:"error",RESIZE:"resize",SCROLL:"scroll",SELECT:"select",CHANGE:"change",SUBMIT:"submit",RESET:"reset",FOCUS:"focus",FOCUS_IN:"focusin",FOCUS_OUT:"focusout",BLUR:"blur",INPUT:"input",STORAGE:"storage",DRAG_START:"dragstart",DRAG:"drag",DRAG_ENTER:"dragenter",DRAG_LEAVE:"dragleave",DRAG_OVER:"dragover",DROP:"drop",DRAG_END:"dragend",ANIMATION_START:Ya?"webkitAnimationStart":"animationstart",ANIMATION_END:Ya?"webkitAnimationEnd":"animationend",ANIMATION_ITERATION:Ya?"webkitAnimationIteration":"animationiteration"},Jl={stop:function(e,t){e.preventDefault?e.preventDefault():e.returnValue=!1,t&&(e.stopPropagation?e.stopPropagation():e.cancelBubble=!0)}},eu=function(){function e(e){var t=this;this._onDidFocus=new Ne,this.onDidFocus=this._onDidFocus.event,this._onDidBlur=new Ne,this.onDidBlur=this._onDidBlur.event,this.disposables=[];var n=!1,i=!1;ml(e,Xl.FOCUS,!0)(function(){i=!1,n||(n=!0,t._onDidFocus.fire())},null,this.disposables),ml(e,Xl.BLUR,!0)(function(){n&&(i=!0,window.setTimeout(function(){i&&(i=!1,n=!1,t._onDidBlur.fire())},0))},null,this.disposables)}return e.prototype.dispose=function(){this.disposables=xe(this.disposables),this._onDidFocus.dispose(),this._onDidBlur.dispose()},e}();function tu(e){return new eu(e)}function nu(e){for(var t=[],n=1;n0&&"#"===e.charAt(e.length-1)?e.substring(0,e.length-1):e}(e)]=t,this._onDidChangeSchema.fire(e)},e}());hs.add(gu,mu);var hu,pu={Configuration:"base.contributions.configuration"};!function(e){e[e.APPLICATION=1]="APPLICATION",e[e.WINDOW=2]="WINDOW",e[e.RESOURCE=3]="RESOURCE"}(hu||(hu={}));var fu={properties:{},patternProperties:{}},yu={properties:{},patternProperties:{}},Su={properties:{},patternProperties:{}},bu={properties:{},patternProperties:{}},Iu="vscode://schemas/settings/editor",Cu=hs.as(gu),_u=function(){function e(){this.overrideIdentifiers=[],this._onDidSchemaChange=new Ne,this._onDidRegisterConfiguration=new Ne,this.configurationContributors=[],this.editorConfigurationSchema={properties:{},patternProperties:{},additionalProperties:!1,errorMessage:"Unknown editor configuration setting"},this.configurationProperties={},this.excludedConfigurationProperties={},this.computeOverridePropertyPattern(),Cu.registerSchema(Iu,this.editorConfigurationSchema)}return e.prototype.registerConfiguration=function(e,t){void 0===t&&(t=!0),this.registerConfigurations([e],[],t)},e.prototype.registerConfigurations=function(e,t,n){var i=this;void 0===n&&(n=!0);var r=this.toConfiguration(t);r&&e.push(r);var o=[];e.forEach(function(e){o.push.apply(o,i.validateAndRegisterProperties(e,n)),i.configurationContributors.push(e),i.registerJSONConfiguration(e),i.updateSchemaForOverrideSettingsConfiguration(e)}),this._onDidRegisterConfiguration.fire(o)},e.prototype.registerOverrideIdentifiers=function(e){var t;(t=this.overrideIdentifiers).push.apply(t,e),this.updateOverridePropertyPatternKey()},e.prototype.toConfiguration=function(e){for(var t={id:"defaultOverrides",title:r("defaultConfigurations.title","Default Configuration Overrides"),properties:{}},n=0,i=e;nn?n:e}function Ou(e,t){return"string"!=typeof e?t:e}var $u=function(){function e(e){this.zoomLevel=e.zoomLevel,this.fontFamily=String(e.fontFamily),this.fontWeight=String(e.fontWeight),this.fontSize=e.fontSize,this.lineHeight=0|e.lineHeight,this.letterSpacing=e.letterSpacing}return e.createFromRawSettings=function(t,n){var i=Ou(t.fontFamily,Lr.fontFamily),r=Ou(t.fontWeight,Lr.fontWeight),o=Nu(t.fontSize,Lr.fontSize);0===(o=Pu(o,0,100))?o=Lr.fontSize:o<8&&(o=8);var s=function(e,t){if("number"==typeof e)return Math.round(e);var n=parseInt(e);return isNaN(n)?0:n}(t.lineHeight);0===(s=Pu(s,0,150))?s=Math.round(Ku*o):s<8&&(s=8);var a=Nu(t.letterSpacing,0);a=Pu(a,-5,20);var l=1+.1*Ru.getZoomLevel();return new e({zoomLevel:n,fontFamily:i,fontWeight:r,fontSize:o*=l,lineHeight:s*=l,letterSpacing:a})},e.prototype.getId=function(){return this.zoomLevel+"-"+this.fontFamily+"-"+this.fontWeight+"-"+this.fontSize+"-"+this.lineHeight+"-"+this.letterSpacing},e}(),ku=function(e){function t(t,n){var i=e.call(this,t)||this;return i.isTrusted=n,i.isMonospace=t.isMonospace,i.typicalHalfwidthCharacterWidth=t.typicalHalfwidthCharacterWidth,i.typicalFullwidthCharacterWidth=t.typicalFullwidthCharacterWidth,i.spaceWidth=t.spaceWidth,i.maxDigitWidth=t.maxDigitWidth,i}return Eu(t,e),t.prototype.equals=function(e){return this.fontFamily===e.fontFamily&&this.fontWeight===e.fontWeight&&this.fontSize===e.fontSize&&this.lineHeight===e.lineHeight&&this.letterSpacing===e.letterSpacing&&this.typicalHalfwidthCharacterWidth===e.typicalHalfwidthCharacterWidth&&this.typicalFullwidthCharacterWidth===e.typicalFullwidthCharacterWidth&&this.spaceWidth===e.spaceWidth&&this.maxDigitWidth===e.maxDigitWidth},t}($u),Lu=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Mu=Fr,Fu=Lr,zu=Mr,ju=new(function(){function e(){this._tabFocus=!1,this._onDidChangeTabFocus=new Ne,this.onDidChangeTabFocus=this._onDidChangeTabFocus.event}return e.prototype.getTabFocusMode=function(){return this._tabFocus},e.prototype.setTabFocusMode=function(e){this._tabFocus!==e&&(this._tabFocus=e,this._onDidChangeTabFocus.fire(this._tabFocus))},e}()),Uu=Object.hasOwnProperty,Gu=function(e){function t(t){var n=e.call(this)||this;return n._onDidChange=n._register(new Ne),n.onDidChange=n._onDidChange.event,n._rawOptions=Ir({},t||{}),n._rawOptions.scrollbar=Ir({},n._rawOptions.scrollbar||{}),n._rawOptions.minimap=Ir({},n._rawOptions.minimap||{}),n._rawOptions.find=Ir({},n._rawOptions.find||{}),n._rawOptions.hover=Ir({},n._rawOptions.hover||{}),n._validatedOptions=Or.validate(n._rawOptions,Mu),n.editor=null,n._isDominatedByLongLines=!1,n._lineNumbersDigitCount=1,n._register(Ru.onDidChangeZoomLevel(function(e){return n._recomputeOptions()})),n._register(ju.onDidChangeTabFocus(function(e){return n._recomputeOptions()})),n}return Lu(t,e),t.prototype.observeReferenceElement=function(e){},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._recomputeOptions=function(){var e=this.editor,t=this._computeInternalOptions();e&&e.equals(t)||(this.editor=t,e&&this._onDidChange.fire(e.createChangeEvent(t)))},t.prototype.getRawOptions=function(){return this._rawOptions},t.prototype._computeInternalOptions=function(){var e=this._validatedOptions,t=this._getEnvConfiguration(),n=$u.createFromRawSettings(this._rawOptions,t.zoomLevel),i={outerWidth:t.outerWidth,outerHeight:t.outerHeight,fontInfo:this.readConfiguration(n),extraEditorClassName:t.extraEditorClassName,isDominatedByLongLines:this._isDominatedByLongLines,lineNumbersDigitCount:this._lineNumbersDigitCount,emptySelectionClipboard:t.emptySelectionClipboard,pixelRatio:t.pixelRatio,tabFocusMode:ju.getTabFocusMode(),accessibilitySupport:t.accessibilitySupport};return $r.createInternalEditorOptions(i,e)},t._primitiveArrayEquals=function(e,t){if(e.length!==t.length)return!1;for(var n=0;n console.log` because `log` has been completed recently."),r("suggestSelection.recentlyUsedByPrefix","Select suggestions based on previous prefixes that have completed those suggestions, e.g. `co -> console` and `con -> const`.")],default:"recentlyUsed",description:r("suggestSelection","Controls how suggestions are pre-selected when showing the suggest list.")},"editor.suggestFontSize":{type:"integer",default:0,minimum:0,description:r("suggestFontSize","Font size for the suggest widget.")},"editor.suggestLineHeight":{type:"integer",default:0,minimum:0,description:r("suggestLineHeight","Line height for the suggest widget.")},"editor.suggest.filterGraceful":{type:"boolean",default:!0,description:r("suggest.filterGraceful","Controls whether filtering and sorting suggestions accounts for small typos.")},"editor.suggest.snippetsPreventQuickSuggestions":{type:"boolean",default:!0,description:r("suggest.snippetsPreventQuickSuggestions","Control whether an active snippet prevents quick suggestions.")},"editor.selectionHighlight":{type:"boolean",default:Mu.contribInfo.selectionHighlight,description:r("selectionHighlight","Controls whether the editor should highlight matches similar to the selection")},"editor.occurrencesHighlight":{type:"boolean",default:Mu.contribInfo.occurrencesHighlight,description:r("occurrencesHighlight","Controls whether the editor should highlight semantic symbol occurrences.")},"editor.overviewRulerLanes":{type:"integer",default:3,description:r("overviewRulerLanes","Controls the number of decorations that can show up at the same position in the overview ruler.")},"editor.overviewRulerBorder":{type:"boolean",default:Mu.viewInfo.overviewRulerBorder,description:r("overviewRulerBorder","Controls whether a border should be drawn around the overview ruler.")},"editor.cursorBlinking":{type:"string",enum:["blink","smooth","phase","expand","solid"],default:function(e){if(e===wr.Blink)return"blink";if(e===wr.Expand)return"expand";if(e===wr.Phase)return"phase";if(e===wr.Smooth)return"smooth";if(e===wr.Solid)return"solid";throw new Error("blinkingStyleToString: Unknown blinkingStyle")}(Mu.viewInfo.cursorBlinking),description:r("cursorBlinking","Control the cursor animation style.")},"editor.mouseWheelZoom":{type:"boolean",default:Mu.viewInfo.mouseWheelZoom,description:r("mouseWheelZoom","Zoom the font of the editor when using mouse wheel and holding `Ctrl`.")},"editor.cursorStyle":{type:"string",enum:["block","block-outline","line","line-thin","underline","underline-thin"],default:function(e){if(e===Br.Line)return"line";if(e===Br.Block)return"block";if(e===Br.Underline)return"underline";if(e===Br.LineThin)return"line-thin";if(e===Br.BlockOutline)return"block-outline";if(e===Br.UnderlineThin)return"underline-thin";throw new Error("cursorStyleToString: Unknown cursorStyle")}(Mu.viewInfo.cursorStyle),description:r("cursorStyle","Controls the cursor style.")},"editor.cursorWidth":{type:"integer",default:Mu.viewInfo.cursorWidth,description:r("cursorWidth","Controls the width of the cursor when `#editor.cursorStyle#` is set to `line`.")},"editor.fontLigatures":{type:"boolean",default:Mu.viewInfo.fontLigatures,description:r("fontLigatures","Enables/Disables font ligatures.")},"editor.hideCursorInOverviewRuler":{type:"boolean",default:Mu.viewInfo.hideCursorInOverviewRuler,description:r("hideCursorInOverviewRuler","Controls whether the cursor should be hidden in the overview ruler.")},"editor.renderWhitespace":{type:"string",enum:["none","boundary","all"],enumDescriptions:["",r("renderWhiteSpace.boundary","Render whitespace characters except for single spaces between words."),""],default:Mu.viewInfo.renderWhitespace,description:r("renderWhitespace","Controls how the editor should render whitespace characters.")},"editor.renderControlCharacters":{type:"boolean",default:Mu.viewInfo.renderControlCharacters,description:r("renderControlCharacters","Controls whether the editor should render control characters.")},"editor.renderIndentGuides":{type:"boolean",default:Mu.viewInfo.renderIndentGuides,description:r("renderIndentGuides","Controls whether the editor should render indent guides.")},"editor.highlightActiveIndentGuide":{type:"boolean",default:Mu.viewInfo.highlightActiveIndentGuide,description:r("highlightActiveIndentGuide","Controls whether the editor should highlight the active indent guide.")},"editor.renderLineHighlight":{type:"string",enum:["none","gutter","line","all"],enumDescriptions:["","","",r("renderLineHighlight.all","Highlights both the gutter and the current line.")],default:Mu.viewInfo.renderLineHighlight,description:r("renderLineHighlight","Controls how the editor should render the current line highlight.")},"editor.codeLens":{type:"boolean",default:Mu.contribInfo.codeLens,description:r("codeLens","Controls whether the editor shows CodeLens")},"editor.folding":{type:"boolean",default:Mu.contribInfo.folding,description:r("folding","Controls whether the editor has code folding enabled")},"editor.foldingStrategy":{type:"string",enum:["auto","indentation"],default:Mu.contribInfo.foldingStrategy,description:r("foldingStrategy","Controls the strategy for computing folding ranges. `auto` uses a language specific folding strategy, if available. `indentation` uses the indentation based folding strategy.")},"editor.showFoldingControls":{type:"string",enum:["always","mouseover"],default:Mu.contribInfo.showFoldingControls,description:r("showFoldingControls","Controls whether the fold controls on the gutter are automatically hidden.")},"editor.matchBrackets":{type:"boolean",default:Mu.contribInfo.matchBrackets,description:r("matchBrackets","Highlight matching brackets when one of them is selected.")},"editor.glyphMargin":{type:"boolean",default:Mu.viewInfo.glyphMargin,description:r("glyphMargin","Controls whether the editor should render the vertical glyph margin. Glyph margin is mostly used for debugging.")},"editor.useTabStops":{type:"boolean",default:Mu.useTabStops,description:r("useTabStops","Inserting and deleting whitespace follows tab stops.")},"editor.trimAutoWhitespace":{type:"boolean",default:zu.trimAutoWhitespace,description:r("trimAutoWhitespace","Remove trailing auto inserted whitespace.")},"editor.stablePeek":{type:"boolean",default:!1,description:r("stablePeek","Keep peek editors open even when double clicking their content or when hitting `Escape`.")},"editor.dragAndDrop":{type:"boolean",default:Mu.dragAndDrop,description:r("dragAndDrop","Controls whether the editor should allow moving selections via drag and drop.")},"editor.accessibilitySupport":{type:"string",enum:["auto","on","off"],enumDescriptions:[r("accessibilitySupport.auto","The editor will use platform APIs to detect when a Screen Reader is attached."),r("accessibilitySupport.on","The editor will be permanently optimized for usage with a Screen Reader."),r("accessibilitySupport.off","The editor will never be optimized for usage with a Screen Reader.")],default:Mu.accessibilitySupport,description:r("accessibilitySupport","Controls whether the editor should run in a mode where it is optimized for screen readers.")},"editor.showUnused":{type:"boolean",default:Mu.showUnused,description:r("showUnused","Controls fading out of unused code.")},"editor.links":{type:"boolean",default:Mu.contribInfo.links,description:r("links","Controls whether the editor should detect links and make them clickable.")},"editor.colorDecorators":{type:"boolean",default:Mu.contribInfo.colorDecorators,description:r("colorDecorators","Controls whether the editor should render the inline color decorators and color picker.")},"editor.lightbulb.enabled":{type:"boolean",default:Mu.contribInfo.lightbulbEnabled,description:r("codeActions","Enables the code action lightbulb in the editor.")},"editor.codeActionsOnSave":{type:"object",properties:{"source.organizeImports":{type:"boolean",description:r("codeActionsOnSave.organizeImports","Controls whether organize imports action should be run on file save.")}},additionalProperties:{type:"boolean"},default:Mu.contribInfo.codeActionsOnSave,description:r("codeActionsOnSave","Code action kinds to be run on save.")},"editor.codeActionsOnSaveTimeout":{type:"number",default:Mu.contribInfo.codeActionsOnSaveTimeout,description:r("codeActionsOnSaveTimeout","Timeout in milliseconds after which the code actions that are run on save are cancelled.")},"editor.selectionClipboard":{type:"boolean",default:Mu.contribInfo.selectionClipboard,description:r("selectionClipboard","Controls whether the Linux primary clipboard should be supported."),included:X.c},"diffEditor.renderSideBySide":{type:"boolean",default:!0,description:r("sideBySide","Controls whether the diff editor shows the diff side by side or inline.")},"diffEditor.ignoreTrimWhitespace":{type:"boolean",default:!0,description:r("ignoreTrimWhitespace","Controls whether the diff editor shows changes in leading or trailing whitespace as diffs.")},"editor.largeFileOptimizations":{type:"boolean",default:zu.largeFileOptimizations,description:r("largeFileOptimizations","Special handling for large files to disable certain memory intensive features.")},"diffEditor.renderIndicators":{type:"boolean",default:!0,description:r("renderIndicators","Controls whether the diff editor shows +/- indicators for added/removed changes.")}}},qu=null;function Yu(){return null===qu&&(qu=Object.create(null),Object.keys(Vu.properties).forEach(function(e){qu[e]=!0})),qu}Wu.registerConfiguration(Vu);var Hu=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Zu=function(e){function t(t,n){var i=e.call(this)||this;return i.referenceDomElement=t,i.changeCallback=n,i.measureReferenceDomElementToken=-1,i.width=-1,i.height=-1,i.measureReferenceDomElement(!1),i}return Hu(t,e),t.prototype.dispose=function(){this.stopObserving(),e.prototype.dispose.call(this)},t.prototype.getWidth=function(){return this.width},t.prototype.getHeight=function(){return this.height},t.prototype.startObserving=function(){var e=this;-1===this.measureReferenceDomElementToken&&(this.measureReferenceDomElementToken=setInterval(function(){return e.measureReferenceDomElement(!0)},100))},t.prototype.stopObserving=function(){-1!==this.measureReferenceDomElementToken&&(clearInterval(this.measureReferenceDomElementToken),this.measureReferenceDomElementToken=-1)},t.prototype.observe=function(e){this.measureReferenceDomElement(!0,e)},t.prototype.measureReferenceDomElement=function(e,t){var n=0,i=0;t?(n=t.width,i=t.height):this.referenceDomElement&&(n=this.referenceDomElement.clientWidth,i=this.referenceDomElement.clientHeight),n=Math.max(5,n),i=Math.max(5,i),this.width===n&&this.height===i||(this.width=n,this.height=i,e&&this.changeCallback())},t}(Ae),Qu=function(){function e(e,t){this.chr=e,this.type=t,this.width=0}return e.prototype.fulfill=function(e){this.width=e},e}(),Xu=function(){function e(e,t){this._bareFontInfo=e,this._requests=t,this._container=null,this._testElements=null}return e.prototype.read=function(){this._createDomElements(),document.body.appendChild(this._container),this._readFromDomElements(),document.body.removeChild(this._container),this._container=null,this._testElements=null},e.prototype._createDomElements=function(){var t=document.createElement("div");t.style.position="absolute",t.style.top="-50000px",t.style.width="50000px";var n=document.createElement("div");n.style.fontFamily=this._bareFontInfo.fontFamily,n.style.fontWeight=this._bareFontInfo.fontWeight,n.style.fontSize=this._bareFontInfo.fontSize+"px",n.style.lineHeight=this._bareFontInfo.lineHeight+"px",n.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(n);var i=document.createElement("div");i.style.fontFamily=this._bareFontInfo.fontFamily,i.style.fontWeight="bold",i.style.fontSize=this._bareFontInfo.fontSize+"px",i.style.lineHeight=this._bareFontInfo.lineHeight+"px",i.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",t.appendChild(i);var r=document.createElement("div");r.style.fontFamily=this._bareFontInfo.fontFamily,r.style.fontWeight=this._bareFontInfo.fontWeight,r.style.fontSize=this._bareFontInfo.fontSize+"px",r.style.lineHeight=this._bareFontInfo.lineHeight+"px",r.style.letterSpacing=this._bareFontInfo.letterSpacing+"px",r.style.fontStyle="italic",t.appendChild(r);for(var o=[],s=0,a=this._requests.length;s.001){y=!1;break}}var _=za.INSTANCE.getTimeSinceLastZoomLevelChanged()>2e3;return new ku({zoomLevel:ja(),fontFamily:e.fontFamily,fontWeight:e.fontWeight,fontSize:e.fontSize,lineHeight:e.lineHeight,letterSpacing:e.letterSpacing,isMonospace:y,typicalHalfwidthCharacterWidth:i.width,typicalFullwidthCharacterWidth:r.width,spaceWidth:o.width,maxDigitWidth:f},_)},t.INSTANCE=new t,t}(Ae),nd=function(e){function t(t,n){void 0===n&&(n=null);var i=e.call(this,t)||this;return i._elementSizeObserver=i._register(new Zu(n,function(){return i._onReferenceDomElementSizeChanged()})),i._register(td.INSTANCE.onDidChange(function(){return i._onCSSBasedConfigurationChanged()})),i._validatedOptions.automaticLayout&&i._elementSizeObserver.startObserving(),i._register(za.INSTANCE.onDidChangeZoomLevel(function(e){return i._recomputeOptions()})),i._register(za.INSTANCE.onDidChangeAccessibilitySupport(function(){return i._recomputeOptions()})),i._recomputeOptions(),i}return Ju(t,e),t._massageFontFamily=function(e){return/[,"']/.test(e)?e:/[+ ]/.test(e)?'"'+e+'"':e},t.applyFontInfoSlow=function(e,n){e.style.fontFamily=t._massageFontFamily(n.fontFamily),e.style.fontWeight=n.fontWeight,e.style.fontSize=n.fontSize+"px",e.style.lineHeight=n.lineHeight+"px",e.style.letterSpacing=n.letterSpacing+"px"},t.applyFontInfo=function(e,n){e.setFontFamily(t._massageFontFamily(n.fontFamily)),e.setFontWeight(n.fontWeight),e.setFontSize(n.fontSize),e.setLineHeight(n.lineHeight),e.setLetterSpacing(n.letterSpacing)},t.prototype._onReferenceDomElementSizeChanged=function(){this._recomputeOptions()},t.prototype._onCSSBasedConfigurationChanged=function(){this._recomputeOptions()},t.prototype.observeReferenceElement=function(e){this._elementSizeObserver.observe(e)},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getExtraEditorClassName=function(){var e="";return Ga?e+="ie ":qa?e+="ff ":Wa?e+="edge ":Za&&(e+="safari "),X.d&&(e+="mac "),e},t.prototype._getEnvConfiguration=function(){return{extraEditorClassName:this._getExtraEditorClassName(),outerWidth:this._elementSizeObserver.getWidth(),outerHeight:this._elementSizeObserver.getHeight(),emptySelectionClipboard:Ya||qa,pixelRatio:za.INSTANCE.getPixelRatio(),zoomLevel:ja(),accessibilitySupport:za.INSTANCE.getAccessibilitySupport()}},t.prototype.readConfiguration=function(e){return td.INSTANCE.readConfiguration(e)},t}(Gu),id=function(){function e(e){this.modelState=null,this.viewState=null,this._selTrackedRange=null,this._trackSelection=!0,this._setState(e,new Fo(new s(1,1,1,1),0,new o(1,1),0),new Fo(new s(1,1,1,1),0,new o(1,1),0))}return e.prototype.dispose=function(e){this._removeTrackedRange(e)},e.prototype.startTrackingSelection=function(e){this._trackSelection=!0,this._updateTrackedRange(e)},e.prototype.stopTrackingSelection=function(e){this._trackSelection=!1,this._removeTrackedRange(e)},e.prototype._updateTrackedRange=function(e){this._trackSelection&&(this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,this.modelState.selection,Ve.AlwaysGrowsWhenTypingAtEdges))},e.prototype._removeTrackedRange=function(e){this._selTrackedRange=e.model._setTrackedRange(this._selTrackedRange,null,Ve.AlwaysGrowsWhenTypingAtEdges)},e.prototype.asCursorState=function(){return new jo(this.modelState,this.viewState)},e.prototype.readSelectionFromMarkers=function(e){var t=e.model._getTrackedRange(this._selTrackedRange);return this.modelState.selection.getDirection()===zn.LTR?new Wn(t.startLineNumber,t.startColumn,t.endLineNumber,t.endColumn):new Wn(t.endLineNumber,t.endColumn,t.startLineNumber,t.startColumn)},e.prototype.ensureValidState=function(e){this._setState(e,this.modelState,this.viewState)},e.prototype.setState=function(e,t,n){this._setState(e,t,n)},e.prototype._setState=function(e,t,n){if(t){a=e.model.validateRange(t.selectionStart);var i=t.selectionStart.equalsRange(a)?t.selectionStartLeftoverVisibleColumns:0,r=(l=e.model.validatePosition(t.position),t.position.equals(l)?t.leftoverVisibleColumns:0);t=new Fo(a,i,l,r)}else{var a=e.model.validateRange(e.convertViewRangeToModelRange(n.selectionStart)),l=e.model.validatePosition(e.convertViewPositionToModelPosition(n.position.lineNumber,n.position.column));t=new Fo(a,n.selectionStartLeftoverVisibleColumns,l,n.leftoverVisibleColumns)}if(n)c=e.validateViewRange(n.selectionStart,t.selectionStart),g=e.validateViewPosition(n.position,t.position),n=new Fo(c,t.selectionStartLeftoverVisibleColumns,g,t.leftoverVisibleColumns);else{var u=e.convertModelPositionToViewPosition(new o(t.selectionStart.startLineNumber,t.selectionStart.startColumn)),d=e.convertModelPositionToViewPosition(new o(t.selectionStart.endLineNumber,t.selectionStart.endColumn)),c=new s(u.lineNumber,u.column,d.lineNumber,d.column),g=e.convertModelPositionToViewPosition(t.position);n=new Fo(c,t.selectionStartLeftoverVisibleColumns,g,t.leftoverVisibleColumns)}this.modelState=t,this.viewState=n,this._updateTrackedRange(e)},e}(),rd=function(){function e(e){this.context=e,this.primaryCursor=new id(e),this.secondaryCursors=[],this.lastAddedCursorIndex=0}return e.prototype.dispose=function(){this.primaryCursor.dispose(this.context),this.killSecondaryCursors()},e.prototype.startTrackingSelections=function(){this.primaryCursor.startTrackingSelection(this.context);for(var e=0,t=this.secondaryCursors.length;en){var o=t-n;for(r=0;r=e+1&&this.lastAddedCursorIndex--,this.secondaryCursors[e].dispose(this.context),this.secondaryCursors.splice(e,1)},e.prototype._getAll=function(){var e=[];e[0]=this.primaryCursor;for(var t=0,n=this.secondaryCursors.length;tc&&t[C].index--;e.splice(c,1),t.splice(d,1),this._removeSecondaryCursor(c-1),r--}}}},e}(),od=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),sd=function(e){this.type=1,this.canUseLayerHinting=e.canUseLayerHinting,this.pixelRatio=e.pixelRatio,this.editorClassName=e.editorClassName,this.lineHeight=e.lineHeight,this.readOnly=e.readOnly,this.accessibilitySupport=e.accessibilitySupport,this.emptySelectionClipboard=e.emptySelectionClipboard,this.layoutInfo=e.layoutInfo,this.fontInfo=e.fontInfo,this.viewInfo=e.viewInfo,this.wrappingInfo=e.wrappingInfo},ad=function(e){this.type=2,this.selections=e},ld=function(){this.type=3},ud=function(){this.type=4},dd=function(e){this.type=5,this.isFocused=e},cd=function(){this.type=6},gd=function(e,t){this.type=7,this.fromLineNumber=e,this.toLineNumber=t},md=function(e,t){this.type=8,this.fromLineNumber=e,this.toLineNumber=t},hd=function(e,t){this.type=9,this.fromLineNumber=e,this.toLineNumber=t},pd=function(e,t,n,i){this.type=10,this.range=e,this.verticalType=t,this.revealHorizontal=n,this.scrollType=i},fd=function(e){this.type=11,this.scrollWidth=e.scrollWidth,this.scrollLeft=e.scrollLeft,this.scrollHeight=e.scrollHeight,this.scrollTop=e.scrollTop,this.scrollWidthChanged=e.scrollWidthChanged,this.scrollLeftChanged=e.scrollLeftChanged,this.scrollHeightChanged=e.scrollHeightChanged,this.scrollTopChanged=e.scrollTopChanged},yd=function(e){this.type=12,this.ranges=e},Sd=function(){this.type=15},bd=function(){this.type=13},Id=function(){this.type=14},Cd=function(){this.type=16},_d=function(e){function t(){var t=e.call(this)||this;return t._listeners=[],t._collector=null,t._collectorCnt=0,t}return od(t,e),t.prototype.dispose=function(){this._listeners=[],e.prototype.dispose.call(this)},t.prototype._beginEmit=function(){return this._collectorCnt++,1===this._collectorCnt&&(this._collector=new vd),this._collector},t.prototype._endEmit=function(){if(this._collectorCnt--,0===this._collectorCnt){var e=this._collector.finalize();this._collector=null,e.length>0&&this._emit(e)}},t.prototype._emit=function(e){for(var t=this._listeners.slice(0),n=0,i=t.length;nt.MAX_CURSOR_COUNT&&(i=i.slice(0,t.MAX_CURSOR_COUNT),this._onDidReachMaxCursorCount.fire(void 0));var r=new Bd(this._model,this);this._cursors.setStates(i),this._cursors.normalize(),this._columnSelectData=null,this._emitStateChangedIfNecessary(e,n,r)},t.prototype.setColumnSelectData=function(e){this._columnSelectData=e},t.prototype.reveal=function(e,t,n){this._revealRange(t,0,e,n)},t.prototype.revealRange=function(e,t,n,i){this.emitCursorRevealRange(t,n,e,i)},t.prototype.scrollTo=function(e){this._viewModel.viewLayout.setScrollPositionSmooth({scrollTop:e})},t.prototype.saveState=function(){for(var e=[],t=this._cursors.getSelections(),n=0,i=t.length;n1)return;var l=new s(o.lineNumber,o.column,o.lineNumber,o.column);this.emitCursorRevealRange(l,t,n,i)},t.prototype.emitCursorRevealRange=function(e,t,n,i){try{this._beginEmit().emit(new pd(e,t,n,i))}finally{this._endEmit()}},t.prototype.trigger=function(e,t,n){var i=l;if(t!==i.CompositionStart)if(t===i.CompositionEnd&&(this._isDoingComposition=!1),this._configuration.editor.readOnly)this._onDidAttemptReadOnlyEdit.fire(void 0);else{var r=new Bd(this._model,this),o=$o.NotSet;t!==i.Undo&&t!==i.Redo&&this._cursors.stopTrackingSelections(),this._cursors.ensureValidState(),this._isHandling=!0;try{switch(t){case i.Type:this._type(e,n.text);break;case i.ReplacePreviousChar:this._replacePreviousChar(n.text,n.replaceCharCnt);break;case i.Paste:o=$o.Paste,this._paste(n.text,n.pasteOnNewLine,n.multicursorText);break;case i.Cut:this._cut();break;case i.Undo:o=$o.Undo,this._interpretCommandResult(this._model.undo());break;case i.Redo:o=$o.Redo,this._interpretCommandResult(this._model.redo());break;case i.ExecuteCommand:this._externalExecuteCommand(n);break;case i.ExecuteCommands:this._externalExecuteCommands(n);break;case i.CompositionEnd:this._interpretCompositionEnd(e)}}catch(e){ye(e)}this._isHandling=!1,t!==i.Undo&&t!==i.Redo&&this._cursors.startTrackingSelections(),this._emitStateChangedIfNecessary(e,o,r)&&this._revealRange(0,0,!0,0)}else this._isDoingComposition=!0},t.prototype._interpretCompositionEnd=function(e){this._isDoingComposition||"keyboard"!==e||this._executeEditOperation(ha.compositionEndWithInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections()))},t.prototype._type=function(e,t){if(this._isDoingComposition||"keyboard"!==e)this._executeEditOperation(ha.typeWithoutInterceptors(this._prevEditOperationType,this.context.config,this.context.model,this.getSelections(),t));else for(var n=0,i=t.length;n0&&(o[0]._isTracked=!0);var l=e.model.pushEditOperations(e.selectionsBefore,o,function(n){for(var i=[],r=0;r0?(i[n].sort(s),a[n]=t[n].computeCursorState(e.model,{getInverseEditOperations:function(){return i[n]},getTrackedSelection:function(t){var n=parseInt(t,10),i=e.model._getTrackedRange(e.trackedRanges[n]);return e.trackedRangesDirection[n]===zn.LTR?new Wn(i.startLineNumber,i.startColumn,i.endLineNumber,i.endColumn):new Wn(i.endLineNumber,i.endColumn,i.startLineNumber,i.startColumn)}})):a[n]=e.selectionsBefore[n]};for(r=0;rr.identifier.major?i.identifier.major:r.identifier.major).toString()]=!0;for(var a=0;a0&&n--}}return t},e}();function Rd(e,t,n,i,r,o){for(var s="
",a=i,l=0,u=0,d=t.getCount();u0;)g+=" ",h--;break;case 60:g+="<";break;case 62:g+=">";break;case 38:g+="&";break;case 0:g+="�";break;case 65279:case 8232:g+="�";break;case 13:g+="​";break;default:g+=String.fromCharCode(m)}}if(s+=''+g+"",c>r||a>=r)break}}return s+"
"}var Ed=function(e,t,n,i){this.top=0|e,this.left=0|t,this.width=0|n,this.height=0|i},Kd=function(e,t){this.tabSize=e,this.data=t},Nd=function(e,t,n,i,r){this.content=e,this.continuesWithWrappedLine=t,this.minColumn=n,this.maxColumn=i,this.tokens=r},Pd=function(){function e(t,n,i,r,o,s,a,l,u){this.minColumn=t,this.maxColumn=n,this.content=i,this.continuesWithWrappedLine=r,this.isBasicASCII=e.isBasicASCII(i,s),this.containsRTL=e.containsRTL(i,this.isBasicASCII,o),this.tokens=a,this.inlineDecorations=l,this.tabSize=u}return e.isBasicASCII=function(e,t){return!t||G(e)},e.containsRTL=function(e,t,n){return!(t||!n)&&F(e)},e}(),Od=function(e,t,n){this.range=e,this.inlineClassName=t,this.type=n},$d=function(e,t){this.range=e,this.options=t},kd=function(){function e(e,t,n,i,r){this.editorId=e,this.model=t,this.configuration=n,this._linesCollection=i,this._coordinatesConverter=r,this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()}return e.prototype._clearCachedModelDecorationsResolver=function(){this._cachedModelDecorationsResolver=null,this._cachedModelDecorationsResolverViewRange=null},e.prototype.dispose=function(){this._decorationsCache=null,this._clearCachedModelDecorationsResolver()},e.prototype.reset=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onModelDecorationsChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype.onLineMappingChanged=function(){this._decorationsCache=Object.create(null),this._clearCachedModelDecorationsResolver()},e.prototype._getOrCreateViewModelDecoration=function(e){var t=e.id,n=this._decorationsCache[t];if(!n){var i=e.range,r=e.options,a=void 0;if(r.isWholeLine){var l=this._coordinatesConverter.convertModelPositionToViewPosition(new o(i.startLineNumber,1)),u=this._coordinatesConverter.convertModelPositionToViewPosition(new o(i.endLineNumber,this.model.getLineMaxColumn(i.endLineNumber)));a=new s(l.lineNumber,l.column,u.lineNumber,u.column)}else a=this._coordinatesConverter.convertModelRangeToViewRange(i);n=new $d(a,r),this._decorationsCache[t]=n}return n},e.prototype.getDecorationsViewportData=function(e){var t=!0;return(t=(t=t&&null!==this._cachedModelDecorationsResolver)&&e.equalsRange(this._cachedModelDecorationsResolverViewRange))||(this._cachedModelDecorationsResolver=this._getDecorationsViewportData(e),this._cachedModelDecorationsResolverViewRange=e),this._cachedModelDecorationsResolver},e.prototype._getDecorationsViewportData=function(e){for(var t=this._linesCollection.getDecorationsInRange(e,this.editorId,this.configuration.editor.readOnly),n=e.startLineNumber,i=e.endLineNumber,r=[],o=0,a=[],l=n;l<=i;l++)a[l-n]=[];for(var u=0,d=t.length;u=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.changeValue=function(e,t){return e=Ur(e),t=Ur(t),this.values[e]!==t&&(this.values[e]=t,e-1=n.length)return!1;var r=n.length-e;return t>=r&&(t=r),0!==t&&(this.values=new Uint32Array(n.length-t),this.values.set(n.subarray(0,e),0),this.values.set(n.subarray(e+t),e),this.prefixSum=new Uint32Array(this.values.length),e-1=0&&this.prefixSum.set(i.subarray(0,this.prefixSumValidIndex[0]+1)),!0)},e.prototype.getTotalValue=function(){return 0===this.values.length?0:this._getAccumulatedValue(this.values.length-1)},e.prototype.getAccumulatedValue=function(e){return e<0?0:(e=Ur(e),this._getAccumulatedValue(e))},e.prototype._getAccumulatedValue=function(e){if(e<=this.prefixSumValidIndex[0])return this.prefixSum[e];var t=this.prefixSumValidIndex[0]+1;0===t&&(this.prefixSum[0]=this.values[0],t++),e>=this.values.length&&(e=this.values.length-1);for(var n=t;n<=e;n++)this.prefixSum[n]=this.prefixSum[n-1]+this.values[n];return this.prefixSumValidIndex[0]=Math.max(this.prefixSumValidIndex[0],e),this.prefixSum[e]},e.prototype.getIndexOf=function(e){e=Math.floor(e),this.getTotalValue();for(var t,n,i,r=0,o=this.values.length-1;r<=o;)if(t=r+(o-r)/2|0,e<(i=(n=this.prefixSum[t])-this.values[t]))o=t-1;else{if(!(e>=n))break;r=t+1}return new Ld(t,e-i)},e}(),Fd=function(){function e(e){this._cacheAccumulatedValueStart=0,this._cache=null,this._actual=new Md(e),this._bustCache()}return e.prototype._bustCache=function(){this._cacheAccumulatedValueStart=0,this._cache=null},e.prototype.insertValues=function(e,t){this._actual.insertValues(e,t)&&this._bustCache()},e.prototype.changeValue=function(e,t){this._actual.changeValue(e,t)&&this._bustCache()},e.prototype.removeValues=function(e,t){this._actual.removeValues(e,t)&&this._bustCache()},e.prototype.getTotalValue=function(){return this._actual.getTotalValue()},e.prototype.getAccumulatedValue=function(e){return this._actual.getAccumulatedValue(e)},e.prototype.getIndexOf=function(e){if(e=Math.floor(e),null!==this._cache){var t=e-this._cacheAccumulatedValueStart;if(t>=0&&t0){switch(u=Math.min(d<=.5?c/(2*d):c/(2-2*d),1),s){case n:l=(i-r)/c+(i1&&(n-=1),n<1/6?e+6*(t-e)*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},e.toRGBA=function(t){var n,i,r,o=t.h/360,s=t.s,a=t.l,l=t.a;if(0===s)n=i=r=a;else{var u=a<.5?a*(1+s):a+s-a*s,d=2*a-u;n=e._hue2rgb(d,u,o+1/3),i=e._hue2rgb(d,u,o),r=e._hue2rgb(d,u,o-1/3)}return new jd(Math.round(255*n),Math.round(255*i),Math.round(255*r),l)},e}(),Gd=function(){function e(e,t,n,i){this.h=0|Math.max(Math.min(360,e),0),this.s=zd(Math.max(Math.min(1,t),0),3),this.v=zd(Math.max(Math.min(1,n),0),3),this.a=zd(Math.max(Math.min(1,i),0),3)}return e.equals=function(e,t){return e.h===t.h&&e.s===t.s&&e.v===t.v&&e.a===t.a},e.fromRGBA=function(t){var n,i=t.r/255,r=t.g/255,o=t.b/255,s=Math.max(i,r,o),a=s-Math.min(i,r,o),l=0===s?0:a/s;return n=0===a?0:s===i?((r-o)/a%6+6)%6:s===r?(o-i)/a+2:(i-r)/a+4,new e(Math.round(60*n),l,s,t.a)},e.toRGBA=function(e){var t=e.h,n=e.s,i=e.v,r=e.a,o=i*n,s=o*(1-Math.abs(t/60%2-1)),a=i-o,l=[0,0,0],u=l[0],d=l[1],c=l[2];return t<60?(u=o,d=s):t<120?(u=s,d=o):t<180?(d=o,c=s):t<240?(d=s,c=o):t<300?(u=s,c=o):t<360&&(u=o,c=s),u=Math.round(255*(u+a)),d=Math.round(255*(d+a)),c=Math.round(255*(c+a)),new jd(u,d,c,r)},e}(),Wd=function(){function e(e){if(!e)throw new Error("Color needs a value");if(e instanceof jd)this.rgba=e;else if(e instanceof Ud)this._hsla=e,this.rgba=Ud.toRGBA(e);else{if(!(e instanceof Gd))throw new Error("Invalid color ctor argument");this._hsva=e,this.rgba=Gd.toRGBA(e)}}return e.fromHex=function(t){return e.Format.CSS.parseHex(t)||e.red},Object.defineProperty(e.prototype,"hsla",{get:function(){return this._hsla?this._hsla:Ud.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hsva",{get:function(){return this._hsva?this._hsva:Gd.fromRGBA(this.rgba)},enumerable:!0,configurable:!0}),e.prototype.equals=function(e){return!!e&&jd.equals(this.rgba,e.rgba)&&Ud.equals(this.hsla,e.hsla)&&Gd.equals(this.hsva,e.hsva)},e.prototype.getRelativeLuminance=function(){return zd(.2126*e._relativeLuminanceForComponent(this.rgba.r)+.7152*e._relativeLuminanceForComponent(this.rgba.g)+.0722*e._relativeLuminanceForComponent(this.rgba.b),4)},e._relativeLuminanceForComponent=function(e){var t=e/255;return t<=.03928?t/12.92:Math.pow((t+.055)/1.055,2.4)},e.prototype.isLighter=function(){return(299*this.rgba.r+587*this.rgba.g+114*this.rgba.b)/1e3>=128},e.prototype.isLighterThan=function(e){return this.getRelativeLuminance()>e.getRelativeLuminance()},e.prototype.isDarkerThan=function(e){return this.getRelativeLuminance()=a&&g<=l,h=Xd(this.linePositionMapperFactory,n[c],this.tabSize,this.wrappingColumn,this.columnsForFullWidthChar,this.wrappingIndent,!m);r[c]=h.getViewLineCount(),this.lines[c]=h}this._validModelVersionId=this.model.getVersionId(),this.prefixSumComputer=new Fd(r)},e.prototype.getHiddenAreas=function(){var e=this;return this.hiddenAreasIds.map(function(t){return e.model.getDecorationRange(t)})},e.prototype._reduceRanges=function(e){var t=this;if(0===e.length)return[];for(var n=e.map(function(e){return t.model.validateRange(e)}).sort(s.compareRangesUsingStarts),i=[],r=n[0].startLineNumber,o=n[0].endLineNumber,a=1,l=n.length;ao+1?(i.push(new s(r,1,o,1)),r=u.startLineNumber,o=u.endLineNumber):u.endLineNumber>o&&(o=u.endLineNumber)}return i.push(new s(r,1,o,1)),i},e.prototype.setHiddenAreas=function(e){var t=this,n=this._reduceRanges(e),i=this.hiddenAreasIds.map(function(e){return t.model.getDecorationRange(e)}).sort(s.compareRangesUsingStarts);if(n.length===i.length){for(var r=!1,o=0;o=u&&h<=d?this.lines[o].isVisible()&&(this.lines[o]=this.lines[o].setVisible(!1),p=!0):(m=!0,this.lines[o].isVisible()||(this.lines[o]=this.lines[o].setVisible(!0),p=!0)),p){var f=this.lines[o].getViewLineCount();this.prefixSumComputer.changeValue(o,f)}}return m||this.setHiddenAreas([]),!0},e.prototype.modelPositionIsVisible=function(e,t){return!(e<1||e>this.lines.length)&&this.lines[e-1].isVisible()},e.prototype.setTabSize=function(e){return this.tabSize!==e&&(this.tabSize=e,this._constructLines(!1),!0)},e.prototype.setWrappingSettings=function(e,t,n){return(this.wrappingIndent!==e||this.wrappingColumn!==t||this.columnsForFullWidthChar!==n)&&(this.wrappingIndent=e,this.wrappingColumn=t,this.columnsForFullWidthChar=n,this._constructLines(!1),!0)},e.prototype.onModelFlushed=function(){this._constructLines(!0)},e.prototype.onModelLinesDeleted=function(e,t,n){if(e<=this._validModelVersionId)return null;var i=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1,r=this.prefixSumComputer.getAccumulatedValue(n-1);return this.lines.splice(t-1,n-t+1),this.prefixSumComputer.removeValues(t-1,n-t+1),new md(i,r)},e.prototype.onModelLinesInserted=function(e,t,n,i){if(e<=this._validModelVersionId)return null;for(var r=this.getHiddenAreas(),s=!1,a=new o(t,1),l=0;la?(h=(m=1+(d=(u=1===t?1:this.prefixSumComputer.getAccumulatedValue(t-2)+1)+a-1))+(r-a)-1,l=!0):rt?t:e},e.prototype.warmUpLookupCache=function(e,t){this.prefixSumComputer.warmUpCache(e-1,t-1)},e.prototype.getActiveIndentGuide=function(e,t,n){this._ensureValidState(),e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t),n=this._toValidViewLineNumber(n);var i=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),r=this.convertViewPositionToModelPosition(t,this.getViewLineMinColumn(t)),o=this.convertViewPositionToModelPosition(n,this.getViewLineMinColumn(n)),s=this.model.getActiveIndentGuide(i.lineNumber,r.lineNumber,o.lineNumber),a=this.convertModelPositionToViewPosition(s.startLineNumber,1),l=this.convertModelPositionToViewPosition(s.endLineNumber,1);return{startLineNumber:a.lineNumber,endLineNumber:l.lineNumber,indent:s.indent}},e.prototype.getViewLinesIndentGuides=function(e,t){this._ensureValidState(),e=this._toValidViewLineNumber(e),t=this._toValidViewLineNumber(t);for(var n=this.convertViewPositionToModelPosition(e,this.getViewLineMinColumn(e)),i=this.convertViewPositionToModelPosition(t,this.getViewLineMaxColumn(t)),r=[],s=[],a=[],l=n.lineNumber-1,u=i.lineNumber-1,d=null,c=l;c<=u;c++){var g=this.lines[c];if(g.isVisible()){var m=g.getViewLineNumberOfModelPosition(0,c===l?n.column:1),h=g.getViewLineNumberOfModelPosition(0,this.model.getLineMaxColumn(c+1)),p=0;(v=h-m+1)>1&&1===g.getViewLineMinColumn(this.model,c+1,h)&&(p=0===m?1:2),s.push(v),a.push(p),null===d&&(d=new o(c+1,0))}else null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,c)),d=null)}null!==d&&(r=r.concat(this.model.getLinesIndentGuides(d.lineNumber,i.lineNumber)),d=null);for(var f=t-e+1,y=new Array(f),S=0,b=0,I=r.length;bt&&(m=!0,g=t-r+1);var h=c+g;if(d.getViewLinesData(this.model,l+1,c,h,r-e,n,a),r+=g,m)break}}return a},e.prototype.validateViewPosition=function(e,t,n){this._ensureValidState(),e=this._toValidViewLineNumber(e);var i=this.prefixSumComputer.getIndexOf(e-1),r=i.index,s=i.remainder,a=this.lines[r],l=a.getViewLineMinColumn(this.model,r+1,s),u=a.getViewLineMaxColumn(this.model,r+1,s);tu&&(t=u);var d=a.getModelColumnOfViewPosition(s,t);return this.model.validatePosition(new o(r+1,d)).equals(n)?new o(e,t):this.convertModelPositionToViewPosition(n.lineNumber,n.column)},e.prototype.convertViewPositionToModelPosition=function(e,t){this._ensureValidState(),e=this._toValidViewLineNumber(e);var n=this.prefixSumComputer.getIndexOf(e-1),i=n.index,r=n.remainder,s=this.lines[i].getModelColumnOfViewPosition(r,t);return this.model.validatePosition(new o(i+1,s))},e.prototype.convertModelPositionToViewPosition=function(e,t){this._ensureValidState();for(var n=this.model.validatePosition(new o(e,t)),i=n.lineNumber,r=n.column,s=i-1,a=!1;s>0&&!this.lines[s].isVisible();)s--,a=!0;if(0===s&&!this.lines[s].isVisible())return new o(1,1);var l=1+(0===s?0:this.prefixSumComputer.getAccumulatedValue(s-1));return a?this.lines[s].getViewPositionOfModelPosition(l,this.model.getLineMaxColumn(s+1)):this.lines[i-1].getViewPositionOfModelPosition(l,r)},e.prototype._getViewLineNumberForModelPosition=function(e,t){var n=e-1;if(this.lines[n].isVisible()){var i=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(i,t)}for(;n>0&&!this.lines[n].isVisible();)n--;if(0===n&&!this.lines[n].isVisible())return 1;var r=1+(0===n?0:this.prefixSumComputer.getAccumulatedValue(n-1));return this.lines[n].getViewLineNumberOfModelPosition(r,this.model.getLineMaxColumn(n+1))},e.prototype.getAllOverviewRulerDecorations=function(e,t,n){for(var i=this.model.getOverviewRulerDecorations(e,t),r=new tc,o=0,s=i.length;o0&&(o=this.wrappedIndent+o),o},e.prototype.getViewLineLength=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n)-i;return n>0&&(r=this.wrappedIndent.length+r),r},e.prototype.getViewLineMinColumn=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return n>0?this.wrappedIndentLength+1:1},e.prototype.getViewLineMaxColumn=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");return this.getViewLineContent(e,t,n).length+1},e.prototype.getViewLineData=function(e,t,n){if(!this._isVisible)throw new Error("Not supported");var i=this.getInputStartOffsetOfOutputLineIndex(n),r=this.getInputEndOffsetOfOutputLineIndex(e,t,n),o=e.getValueInRange({startLineNumber:t,startColumn:i+1,endLineNumber:t,endColumn:r+1});n>0&&(o=this.wrappedIndent+o);var s=n>0?this.wrappedIndentLength+1:1,a=o.length+1,l=n+10&&(u=this.wrappedIndentLength);var d=e.getLineTokens(t);return new Nd(o,l,s,a,d.sliceAndInflate(i,r,u))},e.prototype.getViewLinesData=function(e,t,n,i,r,o,s){if(!this._isVisible)throw new Error("Not supported");for(var a=n;a0&&(n0&&(r+=this.wrappedIndentLength),new o(e+i,r)},e.prototype.getViewLineNumberOfModelPosition=function(e,t){if(!this._isVisible)throw new Error("Not supported");return e+this.positionMapper.getOutputPositionOfInputOffset(t-1).outputLineIndex},e}();function Xd(e,t,n,i,r,o,s){var a=e.createLineMapping(t,n,i,r,o);return null===a?s?Hd.INSTANCE:Zd.INSTANCE:new Qd(a,s)}var Jd=function(){function e(e){this._lines=e}return e.prototype._validPosition=function(e){return this._lines.model.validatePosition(e)},e.prototype._validRange=function(e){return this._lines.model.validateRange(e)},e.prototype.convertViewPositionToModelPosition=function(e){return this._validPosition(e)},e.prototype.convertViewRangeToModelRange=function(e){return this._validRange(e)},e.prototype.validateViewPosition=function(e,t){return this._validPosition(t)},e.prototype.validateViewRange=function(e,t){return this._validRange(t)},e.prototype.convertModelPositionToViewPosition=function(e){return this._validPosition(e)},e.prototype.convertModelRangeToViewRange=function(e){return this._validRange(e)},e.prototype.modelPositionIsVisible=function(e){var t=this._lines.model.getLineCount();return!(e.lineNumber<1||e.lineNumber>t)},e}(),ec=function(){function e(e){this.model=e}return e.prototype.dispose=function(){},e.prototype.createCoordinatesConverter=function(){return new Jd(this)},e.prototype.getHiddenAreas=function(){return[]},e.prototype.setHiddenAreas=function(e){return!1},e.prototype.setTabSize=function(e){return!1},e.prototype.setWrappingSettings=function(e,t,n){return!1},e.prototype.onModelFlushed=function(){},e.prototype.onModelLinesDeleted=function(e,t,n){return new md(t,n)},e.prototype.onModelLinesInserted=function(e,t,n,i){return new hd(t,n)},e.prototype.onModelLineChanged=function(e,t,n){return[!1,new gd(t,t),null,null]},e.prototype.acceptVersionId=function(e){},e.prototype.getViewLineCount=function(){return this.model.getLineCount()},e.prototype.warmUpLookupCache=function(e,t){},e.prototype.getActiveIndentGuide=function(e,t,n){return{startLineNumber:e,endLineNumber:e,indent:0}},e.prototype.getViewLinesIndentGuides=function(e,t){for(var n=t-e+1,i=new Array(n),r=0;r=t)return void(n>s&&(r[r.length-1]=n));r.push(i,t,n)}else this.result[e]=[i,t,n]},e}();function nc(e,t){if(!e._resolvedColor){var n=t.type,i="dark"===n?e.darkColor:"light"===n?e.color:e.hcColor;e._resolvedColor=function(e,t){if("string"==typeof e)return e;var n=e?t.getColor(e.id):null;return n||(n=Wd.transparent),n.toString()}(i,t)}return e._resolvedColor}var ic,rc,oc=function(){function e(t,n,i,r){this.r=e._clamp(t),this.g=e._clamp(n),this.b=e._clamp(i),this.a=e._clamp(r)}return e._clamp=function(e){return e<0?0:e>255?255:0|e},e}(),sc=function(){function e(){var e=this;this._onDidChange=new Ne,this.onDidChange=this._onDidChange.event,this._updateColorMap(),Ln.onDidChange(function(t){t.changedColorMap&&e._updateColorMap()})}return e.getInstance=function(){return this._INSTANCE||(this._INSTANCE=new e),this._INSTANCE},e.prototype._updateColorMap=function(){var e=Ln.getColorMap();if(!e)return this._colors=[null],void(this._backgroundIsLight=!0);this._colors=[null];for(var t=1;t=.5,this._onDidChange.fire(void 0)},e.prototype.getColor=function(e){return(e<1||e>=this._colors.length)&&(e=2),this._colors[e]},e.prototype.backgroundIsLight=function(){return this._backgroundIsLight},e._INSTANCE=null,e}(),ac=function(){function e(t,n){if(760!==t.length)throw new Error("Invalid x2CharData");if(190!==n.length)throw new Error("Invalid x1CharData");this.x2charData=t,this.x1charData=n,this.x2charDataLight=e.soften(t,.8),this.x1charDataLight=e.soften(n,50/60)}return e.soften=function(e,t){for(var n=new Uint8ClampedArray(e.length),i=0,r=e.length;it.width||i+4>t.height)console.warn("bad render request outside image data");else{var l=a?this.x2charDataLight:this.x2charData,u=e._getChIndex(r),d=4*t.width,c=s.r,g=s.g,m=s.b,h=o.r-c,p=o.g-g,f=o.b-m,y=t.data,S=4*u*2,b=i*d+4*n,I=l[S]/255;y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I,I=l[S+1]/255,y[b+4]=c+h*I,y[b+5]=g+p*I,y[b+6]=m+f*I,b+=d,I=l[S+2]/255,y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I,I=l[S+3]/255,y[b+4]=c+h*I,y[b+5]=g+p*I,y[b+6]=m+f*I,b+=d,I=l[S+4]/255,y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I,I=l[S+5]/255,y[b+4]=c+h*I,y[b+5]=g+p*I,y[b+6]=m+f*I,b+=d,I=l[S+6]/255,y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I,I=l[S+7]/255,y[b+4]=c+h*I,y[b+5]=g+p*I,y[b+6]=m+f*I}},e.prototype.x1RenderChar=function(t,n,i,r,o,s,a){if(n+1>t.width||i+2>t.height)console.warn("bad render request outside image data");else{var l=a?this.x1charDataLight:this.x1charData,u=e._getChIndex(r),d=4*t.width,c=s.r,g=s.g,m=s.b,h=o.r-c,p=o.g-g,f=o.b-m,y=t.data,S=2*u*1,b=i*d+4*n,I=l[S]/255;y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I,b+=d,I=l[S+1]/255,y[b+0]=c+h*I,y[b+1]=g+p*I,y[b+2]=m+f*I}},e.prototype.x2BlockRenderChar=function(e,t,n,i,r,o){if(t+2>e.width||n+4>e.height)console.warn("bad render request outside image data");else{var s=4*e.width,a=r.r,l=r.g,u=r.b,d=a+.5*(i.r-a),c=l+.5*(i.g-l),g=u+.5*(i.b-u),m=e.data,h=n*s+4*t;m[h+0]=d,m[h+1]=c,m[h+2]=g,m[h+4]=d,m[h+5]=c,m[h+6]=g,m[(h+=s)+0]=d,m[h+1]=c,m[h+2]=g,m[h+4]=d,m[h+5]=c,m[h+6]=g,m[(h+=s)+0]=d,m[h+1]=c,m[h+2]=g,m[h+4]=d,m[h+5]=c,m[h+6]=g,m[(h+=s)+0]=d,m[h+1]=c,m[h+2]=g,m[h+4]=d,m[h+5]=c,m[h+6]=g}},e.prototype.x1BlockRenderChar=function(e,t,n,i,r,o){if(t+1>e.width||n+2>e.height)console.warn("bad render request outside image data");else{var s=4*e.width,a=r.r,l=r.g,u=r.b,d=a+.5*(i.r-a),c=l+.5*(i.g-l),g=u+.5*(i.b-u),m=e.data,h=n*s+4*t;m[h+0]=d,m[h+1]=c,m[h+2]=g,m[(h+=s)+0]=d,m[h+1]=c,m[h+2]=g}},e}(),lc=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),uc=function(e){function t(t,n,i){for(var r=e.call(this,0)||this,o=0;o=12352&&t<=12543||t>=13312&&t<=19903||t>=19968&&t<=40959?4:e.prototype.get.call(this,t)},t}(Gr),dc=function(){function e(e,t,n){this.classifier=new uc(e,t,n)}return e.nextVisibleColumn=function(e,t,n,i){return e=+e,t=+t,i=+i,n?e+(t-e%t):e+i},e.prototype.createLineMapping=function(t,n,i,r,o){if(-1===i)return null;n=+n,i=+i,r=+r;var s=0,a="",l=-1;if((o=+o)!==xr.None&&-1!==(l=T(t))){a=t.substring(0,l);for(var u=0;ui&&(a="",s=0)}var c=this.classifier,g=0,m=[],h=0,p=0,f=-1,y=0,S=-1,b=0,I=t.length;for(u=0;u0){var x=t.charCodeAt(u-1);1!==c.get(x)&&(f=u,y=s)}var w=1;if(V(C)&&(w=r),(p=e.nextVisibleColumn(p,n,_,w))>i&&0!==u){var B=void 0,D=void 0;-1!==f&&y<=i?(B=f,D=y):-1!==S&&b<=i?(B=S,D=b):(B=u,D=s),m[h++]=B-g,g=B,p=e.nextVisibleColumn(D,n,_,w),f=-1,y=0,S=-1,b=0}if(-1!==f&&(y=e.nextVisibleColumn(y,n,_,w)),-1!==S&&(b=e.nextVisibleColumn(b,n,_,w)),2===v&&(o===xr.None||u>=l)&&(f=u+1,y=s),4===v&&u>>1;t===e[s]?i=t&&(this._whitespaceId2Index[u]=d+1)}this._whitespaceId2Index[e.toString()]=t,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,t-1)},e.prototype.changeWhitespace=function(e,t,n){e|=0,t|=0,n|=0;var i=!1;return i=this.changeWhitespaceHeight(e,n)||i,this.changeWhitespaceAfterLineNumber(e,t)||i},e.prototype.changeWhitespaceHeight=function(e,t){t|=0;var n=(e|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(n)){var i=this._whitespaceId2Index[n];if(this._heights[i]!==t)return this._heights[i]=t,this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,i-1),!0}return!1},e.prototype.changeWhitespaceAfterLineNumber=function(t,n){n|=0;var i=(t|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(i)){var r=this._whitespaceId2Index[i];if(this._afterLineNumbers[r]!==n){var o=this._ordinals[r],s=this._heights[r],a=this._minWidths[r];this.removeWhitespace(t);var l=e.findInsertionIndex(this._afterLineNumbers,n,this._ordinals,o);return this._insertWhitespaceAtIndex(t,l,n,o,s,a),!0}}return!1},e.prototype.removeWhitespace=function(e){var t=(e|=0).toString();if(this._whitespaceId2Index.hasOwnProperty(t)){var n=this._whitespaceId2Index[t];return delete this._whitespaceId2Index[t],this._removeWhitespaceAtIndex(n),this._minWidth=-1,!0}return!1},e.prototype._removeWhitespaceAtIndex=function(e){e|=0,this._heights.splice(e,1),this._minWidths.splice(e,1),this._ids.splice(e,1),this._afterLineNumbers.splice(e,1),this._ordinals.splice(e,1),this._prefixSum.splice(e,1),this._prefixSumValidIndex=Math.min(this._prefixSumValidIndex,e-1);for(var t=Object.keys(this._whitespaceId2Index),n=0,i=t.length;n=e&&(this._whitespaceId2Index[r]=o-1)}},e.prototype.onLinesDeleted=function(e,t){e|=0,t|=0;for(var n=0,i=this._afterLineNumbers.length;nt&&(this._afterLineNumbers[n]-=t-e+1)}},e.prototype.onLinesInserted=function(e,t){e|=0,t|=0;for(var n=0,i=this._afterLineNumbers.length;n=t.length||t[r+1]>=e)return r;n=r+1|0}else i=r-1|0}return-1},e.prototype._findFirstWhitespaceAfterLineNumber=function(e){e|=0;var t=this._findLastWhitespaceBeforeLineNumber(e)+1;return t1?this._lineHeight*(e-1):0)+this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)},e.prototype.getWhitespaceAccumulatedHeightBeforeLineNumber=function(e){return this._whitespaces.getAccumulatedHeightBeforeLineNumber(e)},e.prototype.getWhitespaceMinWidth=function(){return this._whitespaces.getMinWidth()},e.prototype.isAfterLines=function(e){return e>this.getLinesTotalHeight()},e.prototype.getLineNumberAtOrAfterVerticalOffset=function(e){if((e|=0)<0)return 1;for(var t=0|this._lineCount,n=this._lineHeight,i=1,r=t;i=s+n)i=o+1;else{if(e>=s)return o;r=o}}return i>t?t:i},e.prototype.getLinesViewportData=function(e,t){e|=0,t|=0;var n,i,r=this._lineHeight,o=0|this.getLineNumberAtOrAfterVerticalOffset(e),s=0|this.getVerticalOffsetForLineNumber(o),a=0|this._lineCount,l=0|this._whitespaces.getFirstWhitespaceIndexAfterLineNumber(o),u=0|this._whitespaces.getCount();-1===l?(l=u,i=a+1,n=0):(i=0|this._whitespaces.getAfterLineNumberForWhitespaceIndex(l),n=0|this._whitespaces.getHeightForWhitespaceIndex(l));var d=s,c=d,g=0;s>=5e5&&(g=5e5*Math.floor(s/5e5),c-=g=Math.floor(g/r)*r);for(var m=[],h=e+(t-e)/2,p=-1,f=o;f<=a;f++){for(-1===p&&(d<=h&&hh)&&(p=f),d+=r,m[f-o]=c,c+=r;i===f;)c+=n,d+=n,++l>=u?i=a+1:(i=0|this._whitespaces.getAfterLineNumberForWhitespaceIndex(l),n=0|this._whitespaces.getHeightForWhitespaceIndex(l));if(d>=t){a=f;break}}-1===p&&(p=a);var y=0|this.getVerticalOffsetForLineNumber(a),S=o,b=a;return St&&b--,{bigNumbersDelta:g,startLineNumber:o,endLineNumber:a,relativeVerticalOffset:m,centeredLineNumber:p,completelyVisibleStartLineNumber:S,completelyVisibleEndLineNumber:b}},e.prototype.getVerticalOffsetForWhitespaceIndex=function(e){e|=0;var t=this._whitespaces.getAfterLineNumberForWhitespaceIndex(e);return(t>=1?this._lineHeight*t:0)+(e>0?this._whitespaces.getAccumulatedHeight(e-1):0)},e.prototype.getWhitespaceIndexAtOrAfterVerticallOffset=function(e){e|=0;var t,n,i=0,r=this._whitespaces.getCount()-1;if(r<0)return-1;if(e>=this.getVerticalOffsetForWhitespaceIndex(r)+this._whitespaces.getHeightForWhitespaceIndex(r))return-1;for(;i=(n=this.getVerticalOffsetForWhitespaceIndex(t))+this._whitespaces.getHeightForWhitespaceIndex(t))i=t+1;else{if(e>=n)return t;r=t}return i},e.prototype.getWhitespaceAtVerticalOffset=function(e){e|=0;var t=this.getWhitespaceIndexAtOrAfterVerticallOffset(e);if(t<0)return null;if(t>=this._whitespaces.getCount())return null;var n=this.getVerticalOffsetForWhitespaceIndex(t);if(n>e)return null;var i=this._whitespaces.getHeightForWhitespaceIndex(t);return{id:this._whitespaces.getIdForWhitespaceIndex(t),afterLineNumber:this._whitespaces.getAfterLineNumberForWhitespaceIndex(t),verticalOffset:n,height:i}},e.prototype.getWhitespaceViewportData=function(e,t){e|=0,t|=0;var n=this.getWhitespaceIndexAtOrAfterVerticallOffset(e),i=this._whitespaces.getCount()-1;if(n<0)return[];for(var r=[],o=n;o<=i;o++){var s=this.getVerticalOffsetForWhitespaceIndex(o),a=this._whitespaces.getHeightForWhitespaceIndex(o);if(s>=t)break;r.push({id:this._whitespaces.getIdForWhitespaceIndex(o),afterLineNumber:this._whitespaces.getAfterLineNumberForWhitespaceIndex(o),verticalOffset:s,height:a})}return r},e.prototype.getWhitespaces=function(){return this._whitespaces.getWhitespaces(this._lineHeight)},e}(),hc=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),pc=function(e){function t(t,n,i){var r=e.call(this)||this;return r._configuration=t,r._linesLayout=new mc(n,r._configuration.editor.lineHeight),r.scrollable=r._register(new hr(0,i)),r._configureSmoothScrollDuration(),r.scrollable.setScrollDimensions({width:t.editor.layoutInfo.contentWidth,height:t.editor.layoutInfo.contentHeight}),r.onDidScroll=r.scrollable.onScroll,r._updateHeight(),r}return hc(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onHeightMaybeChanged=function(){this._updateHeight()},t.prototype._configureSmoothScrollDuration=function(){this.scrollable.setSmoothScrollDuration(this._configuration.editor.viewInfo.smoothScrolling?125:0)},t.prototype.onConfigurationChanged=function(e){e.lineHeight&&this._linesLayout.setLineHeight(this._configuration.editor.lineHeight),e.layoutInfo&&this.scrollable.setScrollDimensions({width:this._configuration.editor.layoutInfo.contentWidth,height:this._configuration.editor.layoutInfo.contentHeight}),e.viewInfo&&this._configureSmoothScrollDuration(),this._updateHeight()},t.prototype.onFlushed=function(e){this._linesLayout.onFlushed(e)},t.prototype.onLinesDeleted=function(e,t){this._linesLayout.onLinesDeleted(e,t)},t.prototype.onLinesInserted=function(e,t){this._linesLayout.onLinesInserted(e,t)},t.prototype._getHorizontalScrollbarHeight=function(e){return this._configuration.editor.viewInfo.scrollbar.horizontal===cr.Hidden?0:e.width>=e.scrollWidth?0:this._configuration.editor.viewInfo.scrollbar.horizontalScrollbarSize},t.prototype._getTotalHeight=function(){var e=this.scrollable.getScrollDimensions(),t=this._linesLayout.getLinesTotalHeight();return this._configuration.editor.viewInfo.scrollBeyondLastLine?t+=e.height-this._configuration.editor.lineHeight:t+=this._getHorizontalScrollbarHeight(e),Math.max(e.height,t)},t.prototype._updateHeight=function(){this.scrollable.setScrollDimensions({scrollHeight:this._getTotalHeight()})},t.prototype.getCurrentViewport=function(){var e=this.scrollable.getScrollDimensions(),t=this.scrollable.getCurrentScrollPosition();return new Ed(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype.getFutureViewport=function(){var e=this.scrollable.getScrollDimensions(),t=this.scrollable.getFutureScrollPosition();return new Ed(t.scrollTop,t.scrollLeft,e.width,e.height)},t.prototype._computeScrollWidth=function(e,t){if(!this._configuration.editor.wrappingInfo.isViewportWrapping){var n=this._configuration.editor.viewInfo.scrollBeyondLastColumn*this._configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,i=this._linesLayout.getWhitespaceMinWidth();return Math.max(e+n,t,i)}return Math.max(e,t)},t.prototype.onMaxLineWidthChanged=function(e){var t=this._computeScrollWidth(e,this.getCurrentViewport().width);this.scrollable.setScrollDimensions({scrollWidth:t}),this._updateHeight()},t.prototype.saveState=function(){var e=this.scrollable.getFutureScrollPosition(),t=e.scrollTop,n=this._linesLayout.getLineNumberAtOrAfterVerticalOffset(t);return{scrollTop:t,scrollTopWithoutViewZones:t-this._linesLayout.getWhitespaceAccumulatedHeightBeforeLineNumber(n),scrollLeft:e.scrollLeft}},t.prototype.addWhitespace=function(e,t,n,i){return this._linesLayout.insertWhitespace(e,t,n,i)},t.prototype.changeWhitespace=function(e,t,n){return this._linesLayout.changeWhitespace(e,t,n)},t.prototype.removeWhitespace=function(e){return this._linesLayout.removeWhitespace(e)},t.prototype.getVerticalOffsetForLineNumber=function(e){return this._linesLayout.getVerticalOffsetForLineNumber(e)},t.prototype.isAfterLines=function(e){return this._linesLayout.isAfterLines(e)},t.prototype.getLineNumberAtVerticalOffset=function(e){return this._linesLayout.getLineNumberAtOrAfterVerticalOffset(e)},t.prototype.getWhitespaceAtVerticalOffset=function(e){return this._linesLayout.getWhitespaceAtVerticalOffset(e)},t.prototype.getLinesViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getLinesViewportData(e.top,e.top+e.height)},t.prototype.getLinesViewportDataAtScrollTop=function(e){var t=this.scrollable.getScrollDimensions();return e+t.height>t.scrollHeight&&(e=t.scrollHeight-t.height),e<0&&(e=0),this._linesLayout.getLinesViewportData(e,e+t.height)},t.prototype.getWhitespaceViewportData=function(){var e=this.getCurrentViewport();return this._linesLayout.getWhitespaceViewportData(e.top,e.top+e.height)},t.prototype.getWhitespaces=function(){return this._linesLayout.getWhitespaces()},t.prototype.getScrollWidth=function(){return this.scrollable.getScrollDimensions().scrollWidth},t.prototype.getScrollHeight=function(){return this.scrollable.getScrollDimensions().scrollHeight},t.prototype.getCurrentScrollLeft=function(){return this.scrollable.getCurrentScrollPosition().scrollLeft},t.prototype.getCurrentScrollTop=function(){return this.scrollable.getCurrentScrollPosition().scrollTop},t.prototype.validateScrollPosition=function(e){return this.scrollable.validateScrollPosition(e)},t.prototype.setScrollPositionNow=function(e){this.scrollable.setScrollPositionNow(e)},t.prototype.setScrollPositionSmooth=function(e){this.scrollable.setScrollPositionSmooth(e)},t.prototype.deltaScrollNow=function(e,t){var n=this.scrollable.getCurrentScrollPosition();this.scrollable.setScrollPositionNow({scrollLeft:n.scrollLeft+e,scrollTop:n.scrollTop+t})},t}(Ae),fc=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),yc=!0,Sc=function(e){function t(t,n,i,r){var o=e.call(this)||this;if(o.editorId=t,o.configuration=n,o.model=i,o.hasFocus=!1,o.viewportStartLine=-1,o.viewportStartLineTrackedRange=null,o.viewportStartLineTop=0,yc&&o.model.isTooLargeForTokenization())o.lines=new ec(o.model);else{var s=o.configuration.editor,a=new dc(s.wrappingInfo.wordWrapBreakBeforeCharacters,s.wrappingInfo.wordWrapBreakAfterCharacters,s.wrappingInfo.wordWrapBreakObtrusiveCharacters);o.lines=new Yd(o.model,a,o.model.getOptions().tabSize,s.wrappingInfo.wrappingColumn,s.fontInfo.typicalFullwidthCharacterWidth/s.fontInfo.typicalHalfwidthCharacterWidth,s.wrappingInfo.wrappingIndent)}return o.coordinatesConverter=o.lines.createCoordinatesConverter(),o.viewLayout=o._register(new pc(o.configuration,o.getLineCount(),r)),o._register(o.viewLayout.onDidScroll(function(e){try{o._beginEmit().emit(new fd(e))}finally{o._endEmit()}})),o.decorations=new kd(o.editorId,o.model,o.configuration,o.lines,o.coordinatesConverter),o._registerModelEvents(),o._register(o.configuration.onDidChange(function(e){try{var t=o._beginEmit();o._onConfigurationChanged(t,e)}finally{o._endEmit()}})),o._register(sc.getInstance().onDidChange(function(){try{o._beginEmit().emit(new bd)}finally{o._endEmit()}})),o}return fc(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this.decorations.dispose(),this.lines.dispose(),this.viewportStartLineTrackedRange=this.model._setTrackedRange(this.viewportStartLineTrackedRange,null,Ve.NeverGrowsWhenTypingAtEdges)},t.prototype.setHasFocus=function(e){this.hasFocus=e},t.prototype._onConfigurationChanged=function(e,t){var n=null;if(-1!==this.viewportStartLine){var i=new o(this.viewportStartLine,this.getLineMinColumn(this.viewportStartLine));n=this.coordinatesConverter.convertViewPositionToModelPosition(i)}var r=!1,s=this.configuration.editor;if(this.lines.setWrappingSettings(s.wrappingInfo.wrappingIndent,s.wrappingInfo.wrappingColumn,s.fontInfo.typicalFullwidthCharacterWidth/s.fontInfo.typicalHalfwidthCharacterWidth)&&(e.emit(new ud),e.emit(new cd),e.emit(new ld),this.decorations.onLineMappingChanged(),this.viewLayout.onFlushed(this.getLineCount()),0!==this.viewLayout.getCurrentScrollTop()&&(r=!0)),t.readOnly&&(this.decorations.reset(),e.emit(new ld)),e.emit(new sd(t)),this.viewLayout.onConfigurationChanged(t),r&&n){var a=this.coordinatesConverter.convertModelPositionToViewPosition(n),l=this.viewLayout.getVerticalOffsetForLineNumber(a.lineNumber);this.viewLayout.deltaScrollNow(0,l-this.viewportStartLineTop)}},t.prototype._registerModelEvents=function(){var e=this;this._register(this.model.onDidChangeRawContentFast(function(t){try{for(var n=e._beginEmit(),i=!1,r=!1,o=t.changes,s=t.versionId,a=0,l=o.length;a=2&&e.viewportStartLineTrackedRange){var p=e.model._getTrackedRange(e.viewportStartLineTrackedRange);if(p){var f=e.coordinatesConverter.convertModelPositionToViewPosition(p.getStartPosition()),y=e.viewLayout.getVerticalOffsetForLineNumber(f.lineNumber);e.viewLayout.deltaScrollNow(0,y-e.viewportStartLineTop)}}})),this._register(this.model.onDidChangeTokens(function(t){for(var n=[],i=0,r=t.ranges.length;il||(o0&&l[d-1]===l[d]||(u+=this.model.getLineContent(l[d])+r);return u}var c=[];for(d=0;d'+this._getHTMLToCopy(n,o)+""},t.prototype._getHTMLToCopy=function(e,t){for(var n=e.startLineNumber,i=e.startColumn,r=e.endLineNumber,o=e.endColumn,s=this.getTabSize(),a="",l=n;l<=r;l++){var u=this.model.getLineTokens(l),d=u.getLineContent(),c=l===n?i-1:0,g=l===r?o-1:d.length;a+=""===d?"
":Rd(d,u.inflate(),t,c,g,s)}return a},t.prototype._getColorMap=function(){for(var e=Ln.getColorMap(),t=[null],n=1,i=e.length;n, selectionStart: "+this.selectionStart+", selectionEnd: "+this.selectionEnd+"]"},e.readFromTextArea=function(t){return new e(t.getValue(),t.getSelectionStart(),t.getSelectionEnd(),null,null)},e.prototype.collapseSelection=function(){return new e(this.value,this.value.length,this.value.length,null,null)},e.prototype.writeToTextArea=function(e,t,n){t.setValue(e,this.value),n&&t.setSelectionRange(e,this.selectionStart,this.selectionEnd)},e.prototype.deduceEditorPosition=function(e){if(e<=this.selectionStart){var t=this.value.substring(e,this.selectionStart);return this._finishDeduceEditorPosition(this.selectionStartPosition,t,-1)}if(e>=this.selectionEnd)return t=this.value.substring(this.selectionEnd,e),this._finishDeduceEditorPosition(this.selectionEndPosition,t,1);var n=this.value.substring(this.selectionStart,e);if(-1===n.indexOf(String.fromCharCode(8230)))return this._finishDeduceEditorPosition(this.selectionStartPosition,n,1);var i=this.value.substring(e,this.selectionEnd);return this._finishDeduceEditorPosition(this.selectionEndPosition,i,-1)},e.prototype._finishDeduceEditorPosition=function(e,t,n){for(var i=0,r=-1;-1!==(r=t.indexOf("\n",r+1));)i++;return[e,n*t.length,i]},e.selectedText=function(t){return new e(t,0,t.length,null,null)},e.deduceInput=function(e,t,n,i){if(!e)return{text:"",replaceCharCnt:0};var r=e.value,o=e.selectionStart,s=e.selectionEnd,a=t.value,l=t.selectionStart,u=t.selectionEnd;i&&r.length>0&&o===s&&l===u&&!I(a,r)&&C(a,r)&&(o=0,s=0);var d=$(r.substring(s),a.substring(u));a=a.substring(0,a.length-d);var c=(r=r.substring(0,r.length-d)).substring(0,o),g=O(c,a.substring(0,l));if(a=a.substring(g),r=r.substring(g),l-=g,o-=g,u-=g,s-=g,n&&l===u&&r.length>0){var m=null;if(l===a.length?I(a,r)&&(m=a.substring(r.length)):C(a,r)&&(m=a.substring(0,a.length-r.length)),null!==m&&m.length>0&&(/\uFE0F/.test(m)||j(m)))return{text:m,replaceCharCnt:0}}return l===u?r===a&&0===o&&s===r.length&&l===a.length&&-1===a.indexOf("\n")&&W(a)?{text:"",replaceCharCnt:0}:{text:a,replaceCharCnt:c.length-g}:{text:a,replaceCharCnt:s-o}},e.EMPTY=new e("",0,0,null,null),e}()),Oc=function(){function e(){}return e._getPageOfLine=function(t){return Math.floor((t-1)/e._LINES_PER_PAGE)},e._getRangeForPage=function(t){var n=t*e._LINES_PER_PAGE,i=n+1,r=n+e._LINES_PER_PAGE;return new s(i,1,r+1,1)},e.fromEditorSelection=function(t,n,i,r){var a=e._getPageOfLine(i.startLineNumber),l=e._getRangeForPage(a),u=e._getPageOfLine(i.endLineNumber),d=e._getRangeForPage(u),c=l.intersectRanges(new s(1,1,i.startLineNumber,i.startColumn)),g=n.getValueInRange(c,je.LF),m=n.getLineCount(),h=n.getLineMaxColumn(m),p=d.intersectRanges(new s(i.endLineNumber,i.endColumn,m,h)),f=n.getValueInRange(p,je.LF),y=null;if(a===u||a+1===u)y=n.getValueInRange(i,je.LF);else{var S=l.intersectRanges(i),b=d.intersectRanges(i);y=n.getValueInRange(S,je.LF)+String.fromCharCode(8230)+n.getValueInRange(b,je.LF)}return r&&(g.length>500&&(g=g.substring(g.length-500,g.length)),f.length>500&&(f=f.substring(0,500)),y.length>1e3&&(y=y.substring(0,500)+String.fromCharCode(8230)+y.substring(y.length-500,y.length))),new Pc(g+y+f,g.length,g.length+y.length,new o(i.startLineNumber,i.startColumn),new o(i.endLineNumber,i.endColumn))},e._LINES_PER_PAGE=10,e}(),$c=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),kc=function(e){function t(t,n){var i=e.call(this)||this;i._onFocus=i._register(new Ne),i.onFocus=i._onFocus.event,i._onBlur=i._register(new Ne),i.onBlur=i._onBlur.event,i._onKeyDown=i._register(new Ne),i.onKeyDown=i._onKeyDown.event,i._onKeyUp=i._register(new Ne),i.onKeyUp=i._onKeyUp.event,i._onCut=i._register(new Ne),i.onCut=i._onCut.event,i._onPaste=i._register(new Ne),i.onPaste=i._onPaste.event,i._onType=i._register(new Ne),i.onType=i._onType.event,i._onCompositionStart=i._register(new Ne),i.onCompositionStart=i._onCompositionStart.event,i._onCompositionUpdate=i._register(new Ne),i.onCompositionUpdate=i._onCompositionUpdate.event,i._onCompositionEnd=i._register(new Ne),i.onCompositionEnd=i._onCompositionEnd.event,i._onSelectionChangeRequest=i._register(new Ne),i.onSelectionChangeRequest=i._onSelectionChangeRequest.event,i._host=t,i._textArea=i._register(new Mc(n)),i._lastTextAreaEvent=0,i._asyncTriggerCut=i._register(new Fa(function(){return i._onCut.fire()},0)),i._textAreaState=Pc.EMPTY,i.writeScreenReaderContent("ctor"),i._hasFocus=!1,i._isDoingComposition=!1,i._nextCommand=0,i._register(xl(n.domNode,"keydown",function(e){!i._isDoingComposition||109!==e.keyCode&&1!==e.keyCode||e.stopPropagation(),e.equals(9)&&e.preventDefault(),i._onKeyDown.fire(e)})),i._register(xl(n.domNode,"keyup",function(e){i._onKeyUp.fire(e)})),i._register(Tl(n.domNode,"compositionstart",function(e){i._lastTextAreaEvent=1,i._isDoingComposition||(i._isDoingComposition=!0,Va||i._setAndWriteTextAreaState("compositionstart",Pc.EMPTY),i._onCompositionStart.fire())}));var r=function(e,t){var n=i._textAreaState,r=Pc.readFromTextArea(i._textArea);return[r,Pc.deduceInput(n,r,e,t)]},o=function(e){var t=i._textAreaState,n=Pc.selectedText(e);return[n,{text:n.value,replaceCharCnt:t.selectionEnd-t.selectionStart}]},s=function(e){return!(!Va||"ja"!==e)||!(!Ga||0!==e.indexOf("zh-Han"))};i._register(Tl(n.domNode,"compositionupdate",function(e){if(i._lastTextAreaEvent=2,s(e.locale)){var t=r(!1,!1),n=t[0],a=t[1];return i._textAreaState=n,i._onType.fire(a),void i._onCompositionUpdate.fire(e)}var l=o(e.data),u=l[0],d=l[1];i._textAreaState=u,i._onType.fire(d),i._onCompositionUpdate.fire(e)})),i._register(Tl(n.domNode,"compositionend",function(e){if(i._lastTextAreaEvent=3,s(e.locale)){var t=r(!1,!1),n=t[0],a=t[1];i._textAreaState=n,i._onType.fire(a)}else{var l=o(e.data);n=l[0],a=l[1],i._textAreaState=n,i._onType.fire(a)}(Va||Ha)&&(i._textAreaState=Pc.readFromTextArea(i._textArea)),i._isDoingComposition&&(i._isDoingComposition=!1,i._onCompositionEnd.fire())})),i._register(Tl(n.domNode,"input",function(){var e=8===i._lastTextAreaEvent;if(i._lastTextAreaEvent=4,i._textArea.setIgnoreSelectionChangeTime("received input event"),!i._isDoingComposition){var t=r(X.d,e&&X.d),n=t[0],o=t[1];0===o.replaceCharCnt&&1===o.text.length&&k(o.text.charCodeAt(0))||(i._textAreaState=n,0===i._nextCommand?""!==o.text&&i._onType.fire(o):(""!==o.text&&i._onPaste.fire({text:o.text}),i._nextCommand=0))}})),i._register(Tl(n.domNode,"cut",function(e){i._lastTextAreaEvent=5,i._textArea.setIgnoreSelectionChangeTime("received cut event"),i._ensureClipboardGetsEditorSelection(e),i._asyncTriggerCut.schedule()})),i._register(Tl(n.domNode,"copy",function(e){i._lastTextAreaEvent=6,i._ensureClipboardGetsEditorSelection(e)})),i._register(Tl(n.domNode,"paste",function(e){if(i._lastTextAreaEvent=7,i._textArea.setIgnoreSelectionChangeTime("received paste event"),Lc.canUseTextData(e)){var t=Lc.getTextData(e);""!==t&&i._onPaste.fire({text:t})}else i._textArea.getSelectionStart()!==i._textArea.getSelectionEnd()&&i._setAndWriteTextAreaState("paste",Pc.EMPTY),i._nextCommand=1})),i._register(Tl(n.domNode,"focus",function(){i._lastTextAreaEvent=8,i._setHasFocus(!0)})),i._register(Tl(n.domNode,"blur",function(){i._lastTextAreaEvent=9,i._setHasFocus(!1)}));var a=0;return i._register(Tl(document,"selectionchange",function(e){if(i._hasFocus&&!i._isDoingComposition&&Ha&&X.g){var t=Date.now(),n=t-a;if(a=t,!(n<5)){var r=t-i._textArea.getIgnoreSelectionChangeTime();if(i._textArea.resetSelectionChangeTime(),!(r<100)&&i._textAreaState.selectionStartPosition&&i._textAreaState.selectionEndPosition){var o=i._textArea.getValue();if(i._textAreaState.value===o){var s=i._textArea.getSelectionStart(),l=i._textArea.getSelectionEnd();if(i._textAreaState.selectionStart!==s||i._textAreaState.selectionEnd!==l){var u=i._textAreaState.deduceEditorPosition(s),d=i._host.deduceModelPosition(u[0],u[1],u[2]),c=i._textAreaState.deduceEditorPosition(l),g=i._host.deduceModelPosition(c[0],c[1],c[2]),m=new Wn(d.lineNumber,d.column,g.lineNumber,g.column);i._onSelectionChangeRequest.fire(m)}}}}}})),i}return $c(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.focusTextArea=function(){this._setHasFocus(!0)},t.prototype.isFocused=function(){return this._hasFocus},t.prototype._setHasFocus=function(e){this._hasFocus!==e&&(this._hasFocus=e,this._hasFocus&&(Wa?this._setAndWriteTextAreaState("focusgain",Pc.EMPTY):this.writeScreenReaderContent("focusgain")),this._hasFocus?this._onFocus.fire():this._onBlur.fire())},t.prototype._setAndWriteTextAreaState=function(e,t){this._hasFocus||(t=t.collapseSelection()),t.writeToTextArea(e,this._textArea,this._hasFocus),this._textAreaState=t},t.prototype.writeScreenReaderContent=function(e){this._isDoingComposition||this._setAndWriteTextAreaState(e,this._host.getScreenReaderContent(this._textAreaState))},t.prototype._ensureClipboardGetsEditorSelection=function(e){var t=this._host.getPlainTextToCopy();if(Lc.canUseTextData(e)){var n=null;(function(){if(Ga)return!1;if(Wa){var e=Ua.indexOf("Edge/"),t=parseInt(Ua.substring(e+5,Ua.indexOf(".",e)),10);if(!t||t>=12&&t<=16)return!1}return!0})()&&(t.length<65536||!1)&&(n=this._host.getHTMLToCopy()),Lc.setTextData(e,t,n)}else this._setAndWriteTextAreaState("copy or cut",Pc.selectedText(t))},t}(Ae),Lc=function(){function e(){}return e.canUseTextData=function(e){return!!e.clipboardData||!!window.clipboardData},e.getTextData=function(e){if(e.clipboardData)return e.preventDefault(),e.clipboardData.getData("text/plain");if(window.clipboardData)return e.preventDefault(),window.clipboardData.getData("Text");throw new Error("ClipboardEventUtils.getTextData: Cannot use text data!")},e.setTextData=function(e,t,n){if(e.clipboardData)return e.clipboardData.setData("text/plain",t),null!==n&&e.clipboardData.setData("text/html",n),void e.preventDefault();if(window.clipboardData)return window.clipboardData.setData("Text",t),void e.preventDefault();throw new Error("ClipboardEventUtils.setTextData: Cannot use text data!")},e}(),Mc=function(e){function t(t){var n=e.call(this)||this;return n._actual=t,n._ignoreSelectionChangeTime=0,n}return $c(t,e),t.prototype.setIgnoreSelectionChangeTime=function(e){this._ignoreSelectionChangeTime=Date.now()},t.prototype.getIgnoreSelectionChangeTime=function(){return this._ignoreSelectionChangeTime},t.prototype.resetSelectionChangeTime=function(){this._ignoreSelectionChangeTime=0},t.prototype.getValue=function(){return this._actual.domNode.value},t.prototype.setValue=function(e,t){var n=this._actual.domNode;n.value!==t&&(this.setIgnoreSelectionChangeTime("setValue"),n.value=t)},t.prototype.getSelectionStart=function(){return this._actual.domNode.selectionStart},t.prototype.getSelectionEnd=function(){return this._actual.domNode.selectionEnd},t.prototype.setSelectionRange=function(e,t,n){var i=this._actual.domNode,r=document.activeElement===i,o=i.selectionStart,s=i.selectionEnd;if(r&&o===t&&s===n)qa&&window.parent!==window&&i.focus();else{if(r)return this.setIgnoreSelectionChangeTime("setSelectionRange"),i.setSelectionRange(t,n),void(qa&&window.parent!==window&&i.focus());try{var a=function(e){for(var t=[],n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)t[n]=e.scrollTop,e=e.parentNode;return t}(i);this.setIgnoreSelectionChangeTime("setSelectionRange"),i.focus(),i.setSelectionRange(t,n),function(e,t){for(var n=0;e&&e.nodeType===e.ELEMENT_NODE;n++)e.scrollTop!==t[n]&&(e.scrollTop=t[n]),e=e.parentNode}(i,a)}catch(e){}}},t}(Ae),Fc=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),zc=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._context.addEventHandler(n),n}return Fc(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,e.prototype.dispose.call(this)},t}(Nc),jc=function(){function e(){}return e.write=function(e,t){e.setAttribute("data-mprt",String(t))},e.read=function(e){var t=e.getAttribute("data-mprt");return null===t?0:parseInt(t,10)},e.collect=function(e,t){for(var n=[],i=0;e&&e!==document.body&&e!==t;)e.nodeType===e.ELEMENT_NODE&&(n[i++]=this.read(e)),e=e.parentElement;for(var r=new Uint8Array(i),o=0;o'+n+"":String(i)}return 3===this._renderLineNumbers?this._lastCursorModelPosition.lineNumber===n?String(n):n%10==0?String(n):"":String(n)},t.prototype.prepareRender=function(e){if(0!==this._renderLineNumbers){for(var n=X.c?this._lineHeight%2==0?" lh-even":" lh-odd":"",i=e.visibleRange.startLineNumber,r=e.visibleRange.endLineNumber,o='
',s=[],a=i;a<=r;a++){var l=a-i,u=this._getLineRenderLineNumber(a);s[l]=u?o+u+"
":""}this._renderResult=s}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]},t.CLASS_NAME="line-numbers",t}(Em);Ac(function(e,t){var n=e.getColor(cm);n&&t.addRule(".monaco-editor .line-numbers { color: "+n+"; }");var i=e.getColor(mm);i&&t.addRule(".monaco-editor .current-line ~ .line-numbers { color: "+i+"; }")});var Pm=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Om=function(){function e(e,t,n){this.top=e,this.left=t,this.width=n}return e.prototype.setWidth=function(t){return new e(this.top,this.left,t)},e}(),$m=Va||qa,km=function(){function e(){this._lastState=null}return e.prototype.set=function(e){this._lastState=e},e.prototype.get=function(e){return this._lastState&&this._lastState.lastCopiedValue===e?this._lastState:(this._lastState=null,null)},e.INSTANCE=new e,e}(),Lm=function(e){function t(t,n,i){var r=e.call(this,t)||this;r._primaryCursorVisibleRange=null,r._viewController=n,r._viewHelper=i;var o=r._context.configuration.editor;r._accessibilitySupport=o.accessibilitySupport,r._contentLeft=o.layoutInfo.contentLeft,r._contentWidth=o.layoutInfo.contentWidth,r._contentHeight=o.layoutInfo.contentHeight,r._scrollLeft=0,r._scrollTop=0,r._fontInfo=o.fontInfo,r._lineHeight=o.lineHeight,r._emptySelectionClipboard=o.emptySelectionClipboard,r._visibleTextArea=null,r._selections=[new Wn(1,1,1,1)],r.textArea=Ec(document.createElement("textarea")),jc.write(r.textArea,6),r.textArea.setClassName("inputarea"),r.textArea.setAttribute("wrap","off"),r.textArea.setAttribute("autocorrect","off"),r.textArea.setAttribute("autocapitalize","off"),r.textArea.setAttribute("autocomplete","off"),r.textArea.setAttribute("spellcheck","false"),r.textArea.setAttribute("aria-label",o.viewInfo.ariaLabel),r.textArea.setAttribute("role","textbox"),r.textArea.setAttribute("aria-multiline","true"),r.textArea.setAttribute("aria-haspopup","false"),r.textArea.setAttribute("aria-autocomplete","both"),r.textAreaCover=Ec(document.createElement("div")),r.textAreaCover.setPosition("absolute");var a={getLineCount:function(){return r._context.model.getLineCount()},getLineMaxColumn:function(e){return r._context.model.getLineMaxColumn(e)},getValueInRange:function(e,t){return r._context.model.getValueInRange(e,t)}},l={getPlainTextToCopy:function(){var e=r._context.model.getPlainTextToCopy(r._selections,r._emptySelectionClipboard,X.g),t=r._context.model.getEOL(),n=r._emptySelectionClipboard&&1===r._selections.length&&r._selections[0].isEmpty(),i=Array.isArray(e)?e:null,o=Array.isArray(e)?e.join(t):e,s=null;return(n||i)&&(s={lastCopiedValue:qa?o.replace(/\r\n/g,"\n"):o,isFromEmptySelection:r._emptySelectionClipboard&&1===r._selections.length&&r._selections[0].isEmpty(),multicursorText:i}),km.INSTANCE.set(s),o},getHTMLToCopy:function(){return r._context.model.getHTMLToCopy(r._selections,r._emptySelectionClipboard)},getScreenReaderContent:function(e){if(Qa)return Pc.EMPTY;if(1===r._accessibilitySupport){if(X.d){var t=r._selections[0];if(t.isEmpty()){var n=t.getStartPosition(),i=r._getWordBeforePosition(n);if(0===i.length&&(i=r._getCharacterBeforePosition(n)),i.length>0)return new Pc(i,i.length,i.length,n,n)}}return Pc.EMPTY}return Oc.fromEditorSelection(e,a,r._selections[0],0===r._accessibilitySupport)},deduceModelPosition:function(e,t,n){return r._context.model.deduceModelPositionRelativeToViewPosition(e,t,n)}};return r._textAreaInput=r._register(new kc(l,r.textArea)),r._register(r._textAreaInput.onKeyDown(function(e){r._viewController.emitKeyDown(e)})),r._register(r._textAreaInput.onKeyUp(function(e){r._viewController.emitKeyUp(e)})),r._register(r._textAreaInput.onPaste(function(e){var t=km.INSTANCE.get(e.text),n=!1,i=null;t&&(n=r._emptySelectionClipboard&&t.isFromEmptySelection,i=t.multicursorText),r._viewController.paste("keyboard",e.text,n,i)})),r._register(r._textAreaInput.onCut(function(){r._viewController.cut("keyboard")})),r._register(r._textAreaInput.onType(function(e){e.replaceCharCnt?r._viewController.replacePreviousChar("keyboard",e.text,e.replaceCharCnt):r._viewController.type("keyboard",e.text)})),r._register(r._textAreaInput.onSelectionChangeRequest(function(e){r._viewController.setSelection("keyboard",e)})),r._register(r._textAreaInput.onCompositionStart(function(){var e=r._selections[0].startLineNumber,t=r._selections[0].startColumn;r._context.privateViewEventBus.emit(new pd(new s(e,t,e,t),0,!0,1));var n=r._viewHelper.visibleRangeForPositionRelativeToEditor(e,t);n&&(r._visibleTextArea=new Om(r._context.viewLayout.getVerticalOffsetForLineNumber(e),n.left,$m?0:1),r._render()),r.textArea.setClassName("inputarea ime-input"),r._viewController.compositionStart("keyboard")})),r._register(r._textAreaInput.onCompositionUpdate(function(e){r._visibleTextArea=Va?r._visibleTextArea.setWidth(0):r._visibleTextArea.setWidth(function(e,t){var n=document.createElement("canvas").getContext("2d");n.font=function(e){return function(e,t,n,i,r){return"normal normal "+t+" "+n+"px / "+i+"px "+r}(0,e.fontWeight,e.fontSize,e.lineHeight,e.fontFamily)}(t);var i=n.measureText(e);return qa?i.width+2:i.width}(e.data,r._fontInfo)),r._render()})),r._register(r._textAreaInput.onCompositionEnd(function(){r._visibleTextArea=null,r._render(),r.textArea.setClassName("inputarea"),r._viewController.compositionEnd("keyboard")})),r._register(r._textAreaInput.onFocus(function(){r._context.privateViewEventBus.emit(new dd(!0))})),r._register(r._textAreaInput.onBlur(function(){r._context.privateViewEventBus.emit(new dd(!1))})),r}return Pm(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._getWordBeforePosition=function(e){for(var t=this._context.model.getLineContent(e.lineNumber),n=Yr(this._context.configuration.editor.wordSeparators),i=e.column,r=0;i>1;){var o=t.charCodeAt(i-2);if(0!==n.get(o)||r>50)return t.substring(i-1,e.column-1);r++,i--}return t.substring(0,e.column-1)},t.prototype._getCharacterBeforePosition=function(e){if(e.column>1){var t=this._context.model.getLineContent(e.lineNumber).charAt(e.column-2);if(!k(t.charCodeAt(0)))return t}return""},t.prototype.onConfigurationChanged=function(e){var t=this._context.configuration.editor;return e.fontInfo&&(this._fontInfo=t.fontInfo),e.viewInfo&&this.textArea.setAttribute("aria-label",t.viewInfo.ariaLabel),e.layoutInfo&&(this._contentLeft=t.layoutInfo.contentLeft,this._contentWidth=t.layoutInfo.contentWidth,this._contentHeight=t.layoutInfo.contentHeight),e.lineHeight&&(this._lineHeight=t.lineHeight),e.accessibilitySupport&&(this._accessibilitySupport=t.accessibilitySupport,this._textAreaInput.writeScreenReaderContent("strategy changed")),e.emptySelectionClipboard&&(this._emptySelectionClipboard=t.emptySelectionClipboard),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),this._textAreaInput.writeScreenReaderContent("selection changed"),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return this._scrollLeft=e.scrollLeft,this._scrollTop=e.scrollTop,!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.isFocused=function(){return this._textAreaInput.isFocused()},t.prototype.focusTextArea=function(){this._textAreaInput.focusTextArea()},t.prototype.prepareRender=function(e){if(2===this._accessibilitySupport)this._primaryCursorVisibleRange=null;else{var t=new o(this._selections[0].positionLineNumber,this._selections[0].positionColumn);this._primaryCursorVisibleRange=e.visibleRangeForPosition(t)}},t.prototype.render=function(e){this._textAreaInput.writeScreenReaderContent("render"),this._render()},t.prototype._render=function(){if(this._visibleTextArea)this._renderInsideEditor(this._visibleTextArea.top-this._scrollTop,this._contentLeft+this._visibleTextArea.left-this._scrollLeft,this._visibleTextArea.width,this._lineHeight,!0);else if(this._primaryCursorVisibleRange){var e=this._contentLeft+this._primaryCursorVisibleRange.left-this._scrollLeft;if(ethis._contentLeft+this._contentWidth)this._renderAtTopLeft();else{var t=this._context.viewLayout.getVerticalOffsetForLineNumber(this._selections[0].positionLineNumber)-this._scrollTop;t<0||t>this._contentHeight?this._renderAtTopLeft():this._renderInsideEditor(t,e,$m?0:1,$m?0:1,!1)}}else this._renderAtTopLeft()},t.prototype._renderInsideEditor=function(e,t,n,i,r){var o=this.textArea,s=this.textAreaCover;r?nd.applyFontInfo(o,this._fontInfo):(o.setFontSize(1),o.setLineHeight(this._fontInfo.lineHeight)),o.setTop(e),o.setLeft(t),o.setWidth(n),o.setHeight(i),s.setTop(0),s.setLeft(0),s.setWidth(0),s.setHeight(0)},t.prototype._renderAtTopLeft=function(){var e=this.textArea,t=this.textAreaCover;if(nd.applyFontInfo(e,this._fontInfo),e.setTop(0),e.setLeft(0),t.setTop(0),t.setLeft(0),$m)return e.setWidth(0),e.setHeight(0),t.setWidth(0),void t.setHeight(0);e.setWidth(1),e.setHeight(1),t.setWidth(1),t.setHeight(1),this._context.configuration.editor.viewInfo.glyphMargin?t.setClassName("monaco-editor-background textAreaCover "+Gc.OUTER_CLASS_NAME):0!==this._context.configuration.editor.viewInfo.renderLineNumbers?t.setClassName("monaco-editor-background textAreaCover "+Nm.CLASS_NAME):t.setClassName("monaco-editor-background textAreaCover")},t}(zc);function Mm(e,t,n){var i=null,r=null;if("function"==typeof n.value?(i="value",0!==(r=n.value).length&&console.warn("Memoize should only be used in functions with zero parameters")):"function"==typeof n.get&&(i="get",r=n.get),!r)throw new Error("not supported");var o="$memoize$"+t;n[i]=function(){for(var e=[],t=0;t0||window.navigator.msMaxTouchPoints>0},e.prototype.dispose=function(){this.handle&&(this.handle.dispose(),xe(this.toDispose),this.handle=null)},e.prototype.onTouchStart=function(e){var t=Date.now();this.handle&&(this.handle.dispose(),this.handle=null);for(var n=0,i=e.targetTouches.length;n=e.HOLD_DELAY&&Math.abs(l.initialPageX-Ze(l.rollingPageX))<30&&Math.abs(l.initialPageY-Ze(l.rollingPageY))<30){var d;(d=o.newGestureEvent(Fm.Contextmenu,l.initialTarget)).pageX=Ze(l.rollingPageX),d.pageY=Ze(l.rollingPageY),o.dispatchEvent(d)}else if(1===i){var c=Ze(l.rollingPageX),g=Ze(l.rollingPageY),m=Ze(l.rollingTimestamps)-l.rollingTimestamps[0],h=c-l.rollingPageX[0],p=g-l.rollingPageY[0],f=o.targets.filter(function(e){return l.initialTarget instanceof Node&&e.contains(l.initialTarget)});o.inertia(f,n,Math.abs(h)/m,h>0?1:-1,c,Math.abs(p)/m,p>0?1:-1,g)}o.dispatchEvent(o.newGestureEvent(Fm.End,l.initialTarget)),delete o.activeTouches[a.identifier]},o=this,s=0,a=t.changedTouches.length;s0&&(h=!1,g=r*i*c),s>0&&(h=!1,m=a*s*c);var p=u.newGestureEvent(Fm.Change);p.translationX=g,p.translationY=m,t.forEach(function(e){return e.dispatchEvent(p)}),h||u.inertia(t,d,i,r,o+g,s,a,l+m)})},e.prototype.onTouchMove=function(e){for(var t=Date.now(),n=0,i=e.changedTouches.length;n3&&(o.rollingPageX.shift(),o.rollingPageY.shift(),o.rollingTimestamps.shift()),o.rollingPageX.push(r.pageX),o.rollingPageY.push(r.pageY),o.rollingTimestamps.push(t)}else console.warn("end of an UNKNOWN touch",r)}this.dispatched&&(e.preventDefault(),e.stopPropagation(),this.dispatched=!1)},e.SCROLL_FRICTION=-.005,e.HOLD_DELAY=700,function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);o>3&&s&&Object.defineProperty(t,n,s)}([Mm],e,"isTouchDevice",null),e}();!function(e){e[e.EXACT=0]="EXACT",e[e.ABOVE=1]="ABOVE",e[e.BELOW=2]="BELOW"}(zm||(zm={})),function(e){e[e.TOP_RIGHT_CORNER=0]="TOP_RIGHT_CORNER",e[e.BOTTOM_RIGHT_CORNER=1]="BOTTOM_RIGHT_CORNER",e[e.TOP_CENTER=2]="TOP_CENTER"}(jm||(jm={})),function(e){e[e.UNKNOWN=0]="UNKNOWN",e[e.TEXTAREA=1]="TEXTAREA",e[e.GUTTER_GLYPH_MARGIN=2]="GUTTER_GLYPH_MARGIN",e[e.GUTTER_LINE_NUMBERS=3]="GUTTER_LINE_NUMBERS",e[e.GUTTER_LINE_DECORATIONS=4]="GUTTER_LINE_DECORATIONS",e[e.GUTTER_VIEW_ZONE=5]="GUTTER_VIEW_ZONE",e[e.CONTENT_TEXT=6]="CONTENT_TEXT",e[e.CONTENT_EMPTY=7]="CONTENT_EMPTY",e[e.CONTENT_VIEW_ZONE=8]="CONTENT_VIEW_ZONE",e[e.CONTENT_WIDGET=9]="CONTENT_WIDGET",e[e.OVERVIEW_RULER=10]="OVERVIEW_RULER",e[e.SCROLLBAR=11]="SCROLLBAR",e[e.OVERLAY_WIDGET=12]="OVERLAY_WIDGET",e[e.OUTSIDE_EDITOR=13]="OUTSIDE_EDITOR"}(Um||(Um={}));var Wm=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function Vm(e,t){var n=new dl(t);return n.preventDefault(),{leftButton:n.leftButton,posx:n.posx,posy:n.posy}}var qm=function(e){function t(){var t=e.call(this)||this;return t.hooks=[],t.mouseMoveEventMerger=null,t.mouseMoveCallback=null,t.onStopCallback=null,t}return Wm(t,e),t.prototype.dispose=function(){this.stopMonitoring(!1),e.prototype.dispose.call(this)},t.prototype.stopMonitoring=function(e){if(this.isMonitoring()){this.hooks=xe(this.hooks),this.mouseMoveEventMerger=null,this.mouseMoveCallback=null;var t=this.onStopCallback;this.onStopCallback=null,e&&t()}},t.prototype.isMonitoring=function(){return this.hooks.length>0},t.prototype.startMonitoring=function(e,t,n){var i=this;if(!this.isMonitoring()){this.mouseMoveEventMerger=e,this.mouseMoveCallback=t,this.onStopCallback=n;for(var r=ll.getSameOriginWindowChain(),o=0;on||d.isEmpty()&&(0===u.type||3===u.type))){var c=d.startLineNumber===n?d.startColumn:i,g=d.endLineNumber===n?d.endColumn:r;o[s++]=new e(c,g,u.inlineClassName,u.type)}}return o},e.compare=function(e,t){return e.startColumn===t.startColumn?e.endColumn===t.endColumn?e.classNamet.className?1:0:e.endColumn-t.endColumn:e.startColumn-t.startColumn},e}(),rh=function(e,t,n){this.startOffset=e,this.endOffset=t,this.className=n},oh=function(){function e(){this.stopOffsets=[],this.classNames=[],this.count=0}return e.prototype.consumeLowerThan=function(e,t,n){for(;this.count>0&&this.stopOffsets[0]0&&t=e){this.stopOffsets.splice(n,0,e),this.classNames.splice(n,0,t);break}this.count++},e}(),sh=function(){function e(){}return e.normalize=function(e,t){if(0===t.length)return[];for(var n=[],i=new oh,r=0,o=0,s=t.length;o1&&k(e.charCodeAt(l-2))&&l--,u>1&&k(e.charCodeAt(u-2))&&u--;var c=l-1,g=u-2;r=i.consumeLowerThan(c,r,n),0===i.count&&(r=c),i.insert(g,d)}return i.consumeLowerThan(1073741824,r,n),n},e}();Jm="undefined"!=typeof TextDecoder?function(e){return new ah(e)}:function(e){return new lh};var ah=function(){function e(e){this._decoder=new TextDecoder("UTF-16LE"),this._capacity=0|e,this._buffer=new Uint16Array(this._capacity),this._completedStrings=null,this._bufferLength=0}return e.prototype.reset=function(){this._completedStrings=null,this._bufferLength=0},e.prototype.build=function(){return null!==this._completedStrings?(this._flushBuffer(),this._completedStrings.join("")):this._buildBuffer()},e.prototype._buildBuffer=function(){if(0===this._bufferLength)return"";var e=new Uint16Array(this._buffer.buffer,0,this._bufferLength);return this._decoder.decode(e)},e.prototype._flushBuffer=function(){var e=this._buildBuffer();this._bufferLength=0,null===this._completedStrings?this._completedStrings=[e]:this._completedStrings[this._completedStrings.length]=e},e.prototype.write1=function(e){var t=this._capacity-this._bufferLength;t<=1&&(0===t||k(e))&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCII=function(e){this._bufferLength===this._capacity&&this._flushBuffer(),this._buffer[this._bufferLength++]=e},e.prototype.appendASCIIString=function(e){var t=e.length;if(this._bufferLength+t>=this._capacity)return this._flushBuffer(),void(this._completedStrings[this._completedStrings.length]=e);for(var n=0;n>>16},e.getCharIndex=function(e){return(65535&e)>>>0},e.prototype.setPartData=function(e,t,n,i){var r=(t<<16|n<<0)>>>0;this._data[e]=r,this._absoluteOffsets[e]=i+n},e.prototype.getAbsoluteOffsets=function(){return this._absoluteOffsets},e.prototype.charOffsetToPartData=function(e){return 0===this.length?0:e<0?this._data[0]:e>=this.length?this._data[this.length-1]:this._data[e]},e.prototype.partDataToCharOffset=function(t,n,i){if(0===this.length)return 0;for(var r=(t<<16|i<<0)>>>0,o=0,s=this.length-1;o+1>>1,l=this._data[a];if(l===r)return a;l>r?s=a:o=a}if(o===s)return o;var u=this._data[o],d=this._data[s];if(u===r)return o;if(d===r)return s;var c=e.getPartIndex(u);return i-e.getCharIndex(u)<=(c!==e.getPartIndex(d)?n:e.getCharIndex(d))-i?o:s},e}(),gh=function(e,t,n){this.characterMapping=e,this.containsRTL=t,this.containsForeignElements=n};function mh(e,t){if(0===e.lineContent.length){var n=0,i=" ";if(e.lineDecorations.length>0){for(var r=[],o=0,s=e.lineDecorations.length;o')}return t.appendASCIIString(i),new gh(new ch(0,0),!1,n)}return function(e,t){var n=e.fontIsMonospace,i=e.containsForeignElements,r=e.lineContent,o=e.len,s=e.isOverflowing,a=e.parts,l=e.tabSize,u=e.containsRTL,d=e.spaceWidth,c=e.renderWhitespace,g=e.renderControlCharacters,m=new ch(o+1,a.length),h=0,p=0,f=0,y=0,S=0;t.appendASCIIString("");for(var b=0,I=a.length;b=0;if(f=0,t.appendASCIIString('0&&(A>1?t.write1(8594):t.write1(65515),A--);A>0;)t.write1(160),A--;else t.write1(183);f++}y=x}else{x=0;for(u&&t.appendASCIIString(' dir="ltr"'),t.appendASCII(62);h<_;h++){var D;switch(m.setPartData(h,b,f,S),D=r.charCodeAt(h)){case 9:var A;for(p+=(A=l-(h+p)%l)-1,f+=A-1;A>0;)t.write1(160),x++,A--;break;case 32:t.write1(160),x++;break;case 60:t.appendASCIIString("<"),x++;break;case 62:t.appendASCIIString(">"),x++;break;case 38:t.appendASCIIString("&"),x++;break;case 0:t.appendASCIIString("�"),x++;break;case 65279:case 8232:t.write1(65533),x++;break;default:V(D)&&p++,g&&D<32?(t.write1(9216+D),x++):(t.write1(D),x++)}f++}y=x}t.appendASCIIString("")}return m.setPartData(o,a.length-1,f,S),s&&t.appendASCIIString(""),t.appendASCIIString(""),new gh(m,u,i)}(function(e){var t,n,i=e.useMonospaceOptimizations,r=e.lineContent;-1!==e.stopRenderingLineAfter&&e.stopRenderingLineAfter0&&(i[r++]=new uh(t,""));for(var o=0,s=e.getCount();o=n){i[r++]=new uh(n,l);break}i[r++]=new uh(a,l)}}return i}(e.lineTokens,e.fauxIndentLength,n);2!==e.renderWhitespace&&1!==e.renderWhitespace||(o=function(e,t,n,i,r,o,s,a){var l,u=[],d=0,c=0,g=i[c].type,m=i[c].endIndex,h=T(e);-1===h?(h=t,l=t):l=w(e);for(var p=0,f=0;fl)b=!0;else if(9===S)b=!0;else if(32===S)if(a)if(y)b=!0;else{var I=f+1=o)&&(u[d++]=new uh(f,"vs-whitespace"),p%=o):(f===m||b&&f>r)&&(u[d++]=new uh(f,g),p%=o),9===S?p=o:V(S)?p+=2:p++,y=b,f===m&&(g=i[++c].type,m=i[c].endIndex)}var C=!1;if(y)if(n&&a){var _=t>0?e.charCodeAt(t-1):0,v=t>1?e.charCodeAt(t-2):0;32===_&&32!==v&&9!==v||(C=!0)}else C=!0;return u[d++]=new uh(t,C?"vs-whitespace":g),u}(r,n,e.continuesWithWrappedLine,o,e.fauxIndentLength,e.tabSize,i,1===e.renderWhitespace));var s=0;if(e.lineDecorations.length>0){for(var a=0,l=e.lineDecorations.length;au&&(u=p.startOffset,a[l++]=new uh(u,h)),!(p.endOffset+1<=m)){u=m,a[l++]=new uh(u,h+" "+p.className);break}u=p.endOffset+1,a[l++]=new uh(u,h+" "+p.className),s++}m>u&&(u=m,a[l++]=new uh(u,h))}var f=n[n.length-1].endIndex;if(s50){for(var d=a.type,c=Math.ceil(u/50),g=1;g=l?r=Math.max(r,l+u-i):(t[n++]=new Ih(i,r),i=l,r=u)}return t[n++]=new Ih(i,r),t},e._createHorizontalRangesFromClientRects=function(e,t){if(!e||0===e.length)return null;for(var n=[],i=0,r=e.length;ia)return null;(t=Math.min(a,Math.max(0,t)))!==(i=Math.min(a,Math.max(0,i)))&&i>0&&0===r&&(i--,r=Number.MAX_VALUE);var l=e.children[t].firstChild,u=e.children[i].firstChild;if(l&&u||(!l&&0===n&&t>0&&(l=e.children[t-1].firstChild,n=1073741824),!u&&0===r&&i>0&&(u=e.children[i-1].firstChild,r=1073741824)),!l||!u)return null;n=Math.min(l.textContent.length,Math.max(0,n)),r=Math.min(u.textContent.length,Math.max(0,r));var d=this._readClientRects(l,n,u,r,s);return this._createHorizontalRangesFromClientRects(d,o)},e}(),vh=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Th=!!X.e||!(X.c||qa||Za),xh=Va,wh=function(){function e(e,t){this._domNode=e,this._clientRectDeltaLeft=0,this._clientRectDeltaLeftRead=!1,this.endNode=t}return Object.defineProperty(e.prototype,"clientRectDeltaLeft",{get:function(){return this._clientRectDeltaLeftRead||(this._clientRectDeltaLeftRead=!0,this._clientRectDeltaLeft=this._domNode.getBoundingClientRect().left),this._clientRectDeltaLeft},enumerable:!0,configurable:!0}),e}(),Bh=function(){function e(e,t){this.themeType=t,this.renderWhitespace=e.editor.viewInfo.renderWhitespace,this.renderControlCharacters=e.editor.viewInfo.renderControlCharacters,this.spaceWidth=e.editor.fontInfo.spaceWidth,this.useMonospaceOptimizations=e.editor.fontInfo.isMonospace&&!e.editor.viewInfo.disableMonospaceOptimizations,this.lineHeight=e.editor.lineHeight,this.stopRenderingLineAfter=e.editor.viewInfo.stopRenderingLineAfter,this.fontLigatures=e.editor.viewInfo.fontLigatures}return e.prototype.equals=function(e){return this.themeType===e.themeType&&this.renderWhitespace===e.renderWhitespace&&this.renderControlCharacters===e.renderControlCharacters&&this.spaceWidth===e.spaceWidth&&this.useMonospaceOptimizations===e.useMonospaceOptimizations&&this.lineHeight===e.lineHeight&&this.stopRenderingLineAfter===e.stopRenderingLineAfter&&this.fontLigatures===e.fontLigatures},e}(),Dh=function(){function e(e){this._options=e,this._isMaybeInvalid=!0,this._renderedViewLine=null}return e.prototype.getDomNode=function(){return this._renderedViewLine&&this._renderedViewLine.domNode?this._renderedViewLine.domNode.domNode:null},e.prototype.setDomNode=function(e){if(!this._renderedViewLine)throw new Error("I have no rendered view line to set the dom node to...");this._renderedViewLine.domNode=Ec(e)},e.prototype.onContentChanged=function(){this._isMaybeInvalid=!0},e.prototype.onTokensChanged=function(){this._isMaybeInvalid=!0},e.prototype.onDecorationsChanged=function(){this._isMaybeInvalid=!0},e.prototype.onOptionsChanged=function(e){this._isMaybeInvalid=!0,this._options=e},e.prototype.onSelectionChanged=function(){return!(!xh&&this._options.themeType!==xc||(this._isMaybeInvalid=!0,0))},e.prototype.renderLine=function(t,n,i,r){if(!1===this._isMaybeInvalid)return!1;this._isMaybeInvalid=!1;var o=i.getViewLineRenderingData(t),s=this._options,a=ih.filter(o.inlineDecorations,t,o.minColumn,o.maxColumn);if(xh||s.themeType===xc)for(var l=i.selections,u=0,d=l.length;ut)){var g=c.startLineNumber===t?c.startColumn:o.minColumn,m=c.endLineNumber===t?c.endColumn:o.maxColumn;g');var p=mh(h,r);r.appendASCIIString("");var f=null;return Th&&o.isBasicASCII&&s.useMonospaceOptimizations&&0===p.containsForeignElements&&o.content.length<300&&h.lineTokens.getCount()<100&&(f=new Ah(this._renderedViewLine?this._renderedViewLine.domNode:null,h,p.characterMapping)),f||(f=Kh(this._renderedViewLine?this._renderedViewLine.domNode:null,h,p.characterMapping,p.containsRTL,p.containsForeignElements)),this._renderedViewLine=f,!0},e.prototype.layoutLine=function(e,t){this._renderedViewLine&&this._renderedViewLine.domNode&&(this._renderedViewLine.domNode.setTop(t),this._renderedViewLine.domNode.setHeight(this._options.lineHeight))},e.prototype.getWidth=function(){return this._renderedViewLine?this._renderedViewLine.getWidth():0},e.prototype.getWidthIsFast=function(){return!this._renderedViewLine||this._renderedViewLine.getWidthIsFast()},e.prototype.getVisibleRangesForRange=function(e,t,n){e|=0,t|=0,e=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,e)),t=Math.min(this._renderedViewLine.input.lineContent.length+1,Math.max(1,t));var i=0|this._renderedViewLine.input.stopRenderingLineAfter;return-1!==i&&e>i&&t>i?null:(-1!==i&&e>i&&(e=i),-1!==i&&t>i&&(t=i),this._renderedViewLine.getVisibleRangesForRange(e,t,n))},e.prototype.getColumnOfNodeOffset=function(e,t,n){return this._renderedViewLine.getColumnOfNodeOffset(e,t,n)},e.CLASS_NAME="view-line",e}(),Ah=function(){function e(e,t,n){this.domNode=e,this.input=t,this._characterMapping=n,this._charWidth=t.spaceWidth}return e.prototype.getWidth=function(){return this._getCharPosition(this._characterMapping.length)},e.prototype.getWidthIsFast=function(){return!0},e.prototype.getVisibleRangesForRange=function(e,t,n){var i=this._getCharPosition(e),r=this._getCharPosition(t);return[new Ih(i,r-i)]},e.prototype._getCharPosition=function(e){var t=this._characterMapping.getAbsoluteOffsets();return 0===t.length?0:Math.round(this._charWidth*t[e-1])},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1},e}(),Rh=function(){function e(e,t,n,i,r){if(this.domNode=e,this.input=t,this._characterMapping=n,this._isWhitespaceOnly=/^\s*$/.test(t.lineContent),this._containsForeignElements=r,this._cachedWidth=-1,this._pixelOffsetCache=null,!i||0===this._characterMapping.length){this._pixelOffsetCache=new Int32Array(Math.max(2,this._characterMapping.length+1));for(var o=0,s=this._characterMapping.length;o<=s;o++)this._pixelOffsetCache[o]=-1}}return e.prototype._getReadingTarget=function(){return this.domNode.domNode.firstChild},e.prototype.getWidth=function(){return-1===this._cachedWidth&&(this._cachedWidth=this._getReadingTarget().offsetWidth),this._cachedWidth},e.prototype.getWidthIsFast=function(){return-1!==this._cachedWidth},e.prototype.getVisibleRangesForRange=function(e,t,n){if(null!==this._pixelOffsetCache){var i=this._readPixelOffset(e,n);if(-1===i)return null;var r=this._readPixelOffset(t,n);return-1===r?null:[new Ih(i,r-i)]}return this._readVisibleRangesForRange(e,t,n)},e.prototype._readVisibleRangesForRange=function(e,t,n){if(e===t){var i=this._readPixelOffset(e,n);return-1===i?null:[new Ih(i,0)]}return this._readRawVisibleRangesForRange(e,t,n)},e.prototype._readPixelOffset=function(e,t){if(0===this._characterMapping.length){if(0===this._containsForeignElements)return 0;if(2===this._containsForeignElements)return 0;if(1===this._containsForeignElements)return this.getWidth()}if(null!==this._pixelOffsetCache){var n=this._pixelOffsetCache[e];if(-1!==n)return n;var i=this._actualReadPixelOffset(e,t);return this._pixelOffsetCache[e]=i,i}return this._actualReadPixelOffset(e,t)},e.prototype._actualReadPixelOffset=function(e,t){if(0===this._characterMapping.length){var n=_h.readHorizontalRanges(this._getReadingTarget(),0,0,0,0,t.clientRectDeltaLeft,t.endNode);return n&&0!==n.length?n[0].left:-1}if(e===this._characterMapping.length&&this._isWhitespaceOnly&&0===this._containsForeignElements)return this.getWidth();var i=this._characterMapping.charOffsetToPartData(e-1),r=ch.getPartIndex(i),o=ch.getCharIndex(i),s=_h.readHorizontalRanges(this._getReadingTarget(),r,o,r,o,t.clientRectDeltaLeft,t.endNode);return s&&0!==s.length?s[0].left:-1},e.prototype._readRawVisibleRangesForRange=function(e,t,n){if(1===e&&t===this._characterMapping.length)return[new Ih(0,this.getWidth())];var i=this._characterMapping.charOffsetToPartData(e-1),r=ch.getPartIndex(i),o=ch.getCharIndex(i),s=this._characterMapping.charOffsetToPartData(t-1),a=ch.getPartIndex(s),l=ch.getCharIndex(s);return _h.readHorizontalRanges(this._getReadingTarget(),r,o,a,l,n.clientRectDeltaLeft,n.endNode)},e.prototype.getColumnOfNodeOffset=function(e,t,n){for(var i=t.textContent.length,r=-1;t;)t=t.previousSibling,r++;return this._characterMapping.partDataToCharOffset(r,i,n)+1},e}(),Eh=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return vh(t,e),t.prototype._readVisibleRangesForRange=function(t,n,i){var r=e.prototype._readVisibleRangesForRange.call(this,t,n,i);if(!r||0===r.length||t===n||1===t&&n===this._characterMapping.length)return r;var o=this._readPixelOffset(n-1,i),s=this._readPixelOffset(n,i);if(-1!==o&&-1!==s){var a=o<=s,l=r[r.length-1];a&&l.left=4&&3===e[0]&&7===e[3]},e.isStrictChildOfViewLines=function(e){return e.length>4&&3===e[0]&&7===e[3]},e.isChildOfScrollableElement=function(e){return e.length>=2&&3===e[0]&&5===e[1]},e.isChildOfMinimap=function(e){return e.length>=2&&3===e[0]&&8===e[1]},e.isChildOfContentWidgets=function(e){return e.length>=4&&3===e[0]&&1===e[3]},e.isChildOfOverflowingContentWidgets=function(e){return e.length>=1&&2===e[0]},e.isChildOfOverlayWidgets=function(e){return e.length>=2&&3===e[0]&&4===e[1]},e}(),$h=function(){function e(e,t,n){this.model=e.model,this.layoutInfo=e.configuration.editor.layoutInfo,this.viewDomNode=t.viewDomNode,this.lineHeight=e.configuration.editor.lineHeight,this.typicalHalfwidthCharacterWidth=e.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,this.lastViewCursorsRenderData=n,this._context=e,this._viewHelper=t}return e.prototype.getZoneAtCoord=function(t){return e.getZoneAtCoord(this._context,t)},e.getZoneAtCoord=function(e,t){var n=e.viewLayout.getWhitespaceAtVerticalOffset(t);if(n){var i,r=n.verticalOffset+n.height/2,s=e.model.getLineCount(),a=null,l=null;return n.afterLineNumber!==s&&(l=new o(n.afterLineNumber+1,1)),n.afterLineNumber>0&&(a=new o(n.afterLineNumber,e.model.getLineMaxColumn(n.afterLineNumber))),i=null===l?a:null===a?l:t=e.layoutInfo.glyphMarginLeft,this.isInContentArea=!this.isInMarginArea,this.mouseColumn=Math.max(0,Fh._getMouseColumn(this.mouseContentHorizontalOffset,e.typicalHalfwidthCharacterWidth))}),Lh={isAfterLines:!0};function Mh(e){return{isAfterLines:!1,horizontalDistanceToText:e}}var Fh=function(){function e(e,t){this._context=e,this._viewHelper=t}return e.prototype.mouseTargetIsWidget=function(e){var t=e.target,n=jc.collect(t,this._viewHelper.viewDomNode);return!(!Oh.isChildOfContentWidgets(n)&&!Oh.isChildOfOverflowingContentWidgets(n)&&!Oh.isChildOfOverlayWidgets(n))},e.prototype.createMouseTarget=function(t,n,i,r){var o=new $h(this._context,this._viewHelper,t),s=new kh(o,n,i,r);try{return e._createMouseTarget(o,s,!1)}catch(e){return s.fulfill(Um.UNKNOWN)}},e._createMouseTarget=function(t,n,i){if(null===n.target){if(i)return n.fulfill(Um.UNKNOWN);var r=e._doHitTest(t,n);return r.position?e.createMouseTargetFromHitTestPosition(t,n,r.position.lineNumber,r.position.column):this._createMouseTarget(t,n.withTarget(r.hitTarget),!0)}var o=null;return(o=(o=(o=(o=(o=(o=(o=(o=(o=(o=o||e._hitTestContentWidget(t,n))||e._hitTestOverlayWidget(t,n))||e._hitTestMinimap(t,n))||e._hitTestScrollbarSlider(t,n))||e._hitTestViewZone(t,n))||e._hitTestMargin(t,n))||e._hitTestViewCursor(t,n))||e._hitTestTextArea(t,n))||e._hitTestViewLines(t,n,i))||e._hitTestScrollbar(t,n))||n.fulfill(Um.UNKNOWN)},e._hitTestContentWidget=function(e,t){if(Oh.isChildOfContentWidgets(t.targetPath)||Oh.isChildOfOverflowingContentWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(Um.CONTENT_WIDGET,null,null,n):t.fulfill(Um.UNKNOWN)}return null},e._hitTestOverlayWidget=function(e,t){if(Oh.isChildOfOverlayWidgets(t.targetPath)){var n=e.findAttribute(t.target,"widgetId");return n?t.fulfill(Um.OVERLAY_WIDGET,null,null,n):t.fulfill(Um.UNKNOWN)}return null},e._hitTestViewCursor=function(e,t){if(t.target)for(var n=0,i=(o=e.lastViewCursorsRenderData).length;nr.contentLeft+r.width)){var l=e.getVerticalOffsetForLineNumber(r.position.lineNumber);if(l<=a&&a<=l+r.height)return t.fulfill(Um.CONTENT_TEXT,r.position)}}return null},e._hitTestViewZone=function(e,t){var n=e.getZoneAtCoord(t.mouseVerticalOffset);if(n){var i=t.isInContentArea?Um.CONTENT_VIEW_ZONE:Um.GUTTER_VIEW_ZONE;return t.fulfill(i,n.position,null,n)}return null},e._hitTestTextArea=function(e,t){return Oh.isTextArea(t.targetPath)?t.fulfill(Um.TEXTAREA):null},e._hitTestMargin=function(e,t){if(t.isInMarginArea){var n=e.getFullLineRangeAtCoord(t.mouseVerticalOffset),i=n.range.getStartPosition(),r=Math.abs(t.pos.x-t.editorPos.x),o={isAfterLines:n.isAfterLines,glyphMarginLeft:e.layoutInfo.glyphMarginLeft,glyphMarginWidth:e.layoutInfo.glyphMarginWidth,lineNumbersWidth:e.layoutInfo.lineNumbersWidth,offsetX:r};return(r-=e.layoutInfo.glyphMarginLeft)<=e.layoutInfo.glyphMarginWidth?t.fulfill(Um.GUTTER_GLYPH_MARGIN,i,n.range,o):(r-=e.layoutInfo.glyphMarginWidth)<=e.layoutInfo.lineNumbersWidth?t.fulfill(Um.GUTTER_LINE_NUMBERS,i,n.range,o):(r-=e.layoutInfo.lineNumbersWidth,t.fulfill(Um.GUTTER_LINE_DECORATIONS,i,n.range,o))}return null},e._hitTestViewLines=function(t,n,i){if(!Oh.isChildOfViewLines(n.targetPath))return null;if(t.isAfterLines(n.mouseVerticalOffset)){var r=t.model.getLineCount(),s=t.model.getLineMaxColumn(r);return n.fulfill(Um.CONTENT_EMPTY,new o(r,s),void 0,Lh)}if(i){if(Oh.isStrictChildOfViewLines(n.targetPath)){var a=t.getLineNumberAtVerticalOffset(n.mouseVerticalOffset);if(0===t.model.getLineLength(a)){var l=t.getLineWidth(a),u=Mh(n.mouseContentHorizontalOffset-l);return n.fulfill(Um.CONTENT_EMPTY,new o(a,1),void 0,u)}}return n.fulfill(Um.UNKNOWN)}var d=e._doHitTest(t,n);return d.position?e.createMouseTargetFromHitTestPosition(t,n,d.position.lineNumber,d.position.column):this._createMouseTarget(t,n.withTarget(d.hitTarget),!0)},e._hitTestMinimap=function(e,t){if(Oh.isChildOfMinimap(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(Um.SCROLLBAR,new o(n,i))}return null},e._hitTestScrollbarSlider=function(e,t){if(Oh.isChildOfScrollableElement(t.targetPath)&&t.target&&1===t.target.nodeType){var n=t.target.className;if(n&&/\b(slider|scrollbar)\b/.test(n)){var i=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),r=e.model.getLineMaxColumn(i);return t.fulfill(Um.SCROLLBAR,new o(i,r))}}return null},e._hitTestScrollbar=function(e,t){if(Oh.isChildOfScrollableElement(t.targetPath)){var n=e.getLineNumberAtVerticalOffset(t.mouseVerticalOffset),i=e.model.getLineMaxColumn(n);return t.fulfill(Um.SCROLLBAR,new o(n,i))}return null},e.prototype.getMouseColumn=function(t,n){var i=this._context.configuration.editor.layoutInfo,r=this._context.viewLayout.getCurrentScrollLeft()+n.x-t.x-i.contentLeft;return e._getMouseColumn(r,this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth)},e._getMouseColumn=function(e,t){return e<0?1:Math.round(e/t)+1},e.createMouseTargetFromHitTestPosition=function(e,t,n,i){var r=new o(n,i),a=e.getLineWidth(n);if(t.mouseContentHorizontalOffset>a){if(Wa&&1===r.column){var l=Mh(t.mouseContentHorizontalOffset-a);return t.fulfill(Um.CONTENT_EMPTY,new o(n,e.model.getLineMaxColumn(n)),void 0,l)}var u=Mh(t.mouseContentHorizontalOffset-a);return t.fulfill(Um.CONTENT_EMPTY,r,void 0,u)}var d=e.visibleRangeForPosition2(n,i);if(!d)return t.fulfill(Um.UNKNOWN,r);var c=d.left;if(t.mouseContentHorizontalOffset===c)return t.fulfill(Um.CONTENT_TEXT,r);var g=[];if(g.push({offset:d.left,column:i}),i>1){var m=e.visibleRangeForPosition2(n,i-1);m&&g.push({offset:m.left,column:i-1})}if(i=t.editorPos.y+e.layoutInfo.height&&(r=t.editorPos.y+e.layoutInfo.height-1);var o=new Hm(t.pos.x,r),s=this._actualDoHitTestWithCaretRangeFromPoint(e,o.toClientCoordinates());return s.position?s:this._actualDoHitTestWithCaretRangeFromPoint(e,t.pos.toClientCoordinates())},e._actualDoHitTestWithCaretRangeFromPoint=function(e,t){var n=document.caretRangeFromPoint(t.clientX,t.clientY);if(!n||!n.startContainer)return{position:null,hitTarget:null};var i,r=n.startContainer;if(r.nodeType===r.TEXT_NODE){var o=(a=(s=r.parentNode)?s.parentNode:null)?a.parentNode:null;if((o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===Dh.CLASS_NAME)return{position:e.getPositionFromDOMInfo(s,n.startOffset),hitTarget:null};i=r.parentNode}else if(r.nodeType===r.ELEMENT_NODE){var s,a;if(((a=(s=r.parentNode)?s.parentNode:null)&&a.nodeType===a.ELEMENT_NODE?a.className:null)===Dh.CLASS_NAME)return{position:e.getPositionFromDOMInfo(r,r.textContent.length),hitTarget:null};i=r}return{position:null,hitTarget:i}},e._doHitTestWithCaretPositionFromPoint=function(e,t){var n=document.caretPositionFromPoint(t.clientX,t.clientY);if(n.offsetNode.nodeType===n.offsetNode.TEXT_NODE){var i=n.offsetNode.parentNode,r=i?i.parentNode:null,o=r?r.parentNode:null;return(o&&o.nodeType===o.ELEMENT_NODE?o.className:null)===Dh.CLASS_NAME?{position:e.getPositionFromDOMInfo(n.offsetNode.parentNode,n.offset),hitTarget:null}:{position:null,hitTarget:n.offsetNode.parentNode}}return{position:null,hitTarget:n.offsetNode}},e._doHitTestWithMoveToPoint=function(e,t){var n=null,i=null,r=document.body.createTextRange();try{r.moveToPoint(t.clientX,t.clientY)}catch(e){return{position:null,hitTarget:null}}r.collapse(!0);var o=r?r.parentElement():null,s=o?o.parentNode:null,a=s?s.parentNode:null;if((a&&a.nodeType===a.ELEMENT_NODE?a.className:"")===Dh.CLASS_NAME){var l=r.duplicate();l.moveToElementText(o),l.setEndPoint("EndToStart",r),n=e.getPositionFromDOMInfo(o,l.text.length),l.moveToElementText(e.viewDomNode)}else i=o;return r.moveToElementText(e.viewDomNode),{position:n,hitTarget:i}},e._doHitTest=function(e,t){return document.caretRangeFromPoint?this._doHitTestWithCaretRangeFromPoint(e,t):document.caretPositionFromPoint?this._doHitTestWithCaretPositionFromPoint(e,t.pos.toClientCoordinates()):document.body.createTextRange?this._doHitTestWithMoveToPoint(e,t.pos.toClientCoordinates()):{position:null,hitTarget:null}},e}(),zh=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function jh(e){return function(t,n){var i=!1;return e&&(i=e.mouseTargetIsWidget(n)),i||n.preventDefault(),n}}var Uh=function(e){function t(n,i,r){var o=e.call(this)||this;o._isFocused=!1,o._context=n,o.viewController=i,o.viewHelper=r,o.mouseTargetFactory=new Fh(o._context,r),o._mouseDownOperation=o._register(new Gh(o._context,o.viewController,o.viewHelper,function(e,t){return o._createMouseTarget(e,t)},function(e){return o._getMouseColumn(e)})),o._asyncFocus=o._register(new Fa(function(){return o.viewHelper.focusTextArea()},0)),o.lastMouseLeaveTime=-1;var s=new th(o.viewHelper.viewDomNode);o._register(s.onContextMenu(o.viewHelper.viewDomNode,function(e){return o._onContextMenu(e,!0)})),o._register(s.onMouseMoveThrottled(o.viewHelper.viewDomNode,function(e){return o._onMouseMove(e)},jh(o.mouseTargetFactory),t.MOUSE_MOVE_MINIMUM_TIME)),o._register(s.onMouseUp(o.viewHelper.viewDomNode,function(e){return o._onMouseUp(e)})),o._register(s.onMouseLeave(o.viewHelper.viewDomNode,function(e){return o._onMouseLeave(e)})),o._register(s.onMouseDown(o.viewHelper.viewDomNode,function(e){return o._onMouseDown(e)}));var a=function(e){if(o._context.configuration.editor.viewInfo.mouseWheelZoom){var t=new gl(e);if(t.browserEvent.ctrlKey||t.browserEvent.metaKey){var n=Ru.getZoomLevel(),i=t.deltaY>0?1:-1;Ru.setZoomLevel(n+i),t.preventDefault(),t.stopPropagation()}}};return o._register(Tl(o.viewHelper.viewDomNode,"mousewheel",a,!0)),o._register(Tl(o.viewHelper.viewDomNode,"DOMMouseScroll",a,!0)),o._context.addEventHandler(o),o}return zh(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),e.prototype.dispose.call(this)},t.prototype.onCursorStateChanged=function(e){return this._mouseDownOperation.onCursorStateChanged(e),!1},t.prototype.onFocusChanged=function(e){return this._isFocused=e.isFocused,!1},t.prototype.onScrollChanged=function(e){return this._mouseDownOperation.onScrollChanged(),!1},t.prototype.getTargetAtClientPoint=function(e,t){var n=new Zm(e,t).toPageCoordinates(),i=Xm(this.viewHelper.viewDomNode);if(n.yi.y+i.height||n.xi.x+i.width)return null;var r=this.viewHelper.getLastViewCursorsRenderData();return this.mouseTargetFactory.createMouseTarget(r,i,n,null)},t.prototype._createMouseTarget=function(e,t){var n=this.viewHelper.getLastViewCursorsRenderData();return this.mouseTargetFactory.createMouseTarget(n,e.editorPos,e.pos,t?e.target:null)},t.prototype._getMouseColumn=function(e){return this.mouseTargetFactory.getMouseColumn(e.editorPos,e.pos)},t.prototype._onContextMenu=function(e,t){this.viewController.emitContextMenu({event:e,target:this._createMouseTarget(e,t)})},t.prototype._onMouseMove=function(e){this._mouseDownOperation.isActive()||e.timestampt.y+t.height){var l,u;if(s=i.getCurrentScrollTop()+(e.posy-t.y),(l=$h.getZoneAtCoord(this._context,s))&&(u=this._helpPositionJumpOverViewZone(l)))return new Ph(null,Um.OUTSIDE_EDITOR,r,u);var d=i.getLineNumberAtVerticalOffset(s);return new Ph(null,Um.OUTSIDE_EDITOR,r,new o(d,n.getLineMaxColumn(d)))}var c=i.getLineNumberAtVerticalOffset(i.getCurrentScrollTop()+(e.posy-t.y));return e.posxt.x+t.width?new Ph(null,Um.OUTSIDE_EDITOR,r,new o(c,n.getLineMaxColumn(c))):null},t.prototype._findMousePosition=function(e,t){var n=this._getPositionOutsideEditor(e);if(n)return n;var i=this._createMouseTarget(e,t);if(!i.position)return null;if(i.type===Um.CONTENT_VIEW_ZONE||i.type===Um.GUTTER_VIEW_ZONE){var r=this._helpPositionJumpOverViewZone(i.detail);if(r)return new Ph(i.element,i.type,i.mouseColumn,r,null,i.detail)}return i},t.prototype._helpPositionJumpOverViewZone=function(e){var t=new o(this._currentSelection.selectionStartLineNumber,this._currentSelection.selectionStartColumn),n=e.positionBefore,i=e.positionAfter;return n&&i?n.isBefore(t)?n:i:null},t.prototype._dispatchMouse=function(e,t){this._viewController.dispatchMouse({position:e.position,mouseColumn:e.mouseColumn,startedOnLineNumbers:this._mouseState.startedOnLineNumbers,inSelectionMode:t,mouseDownCount:this._mouseState.count,altKey:this._mouseState.altKey,ctrlKey:this._mouseState.ctrlKey,metaKey:this._mouseState.metaKey,shiftKey:this._mouseState.shiftKey,leftButton:this._mouseState.leftButton,middleButton:this._mouseState.middleButton})},t}(Ae),Wh=function(){function e(){this._altKey=!1,this._ctrlKey=!1,this._metaKey=!1,this._shiftKey=!1,this._leftButton=!1,this._middleButton=!1,this._startedOnLineNumbers=!1,this._lastMouseDownPosition=null,this._lastMouseDownPositionEqualCount=0,this._lastMouseDownCount=0,this._lastSetMouseDownCountTime=0,this.isDragAndDrop=!1}return Object.defineProperty(e.prototype,"altKey",{get:function(){return this._altKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"ctrlKey",{get:function(){return this._ctrlKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"metaKey",{get:function(){return this._metaKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"shiftKey",{get:function(){return this._shiftKey},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"leftButton",{get:function(){return this._leftButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"middleButton",{get:function(){return this._middleButton},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"startedOnLineNumbers",{get:function(){return this._startedOnLineNumbers},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"count",{get:function(){return this._lastMouseDownCount},enumerable:!0,configurable:!0}),e.prototype.setModifiers=function(e){this._altKey=e.altKey,this._ctrlKey=e.ctrlKey,this._metaKey=e.metaKey,this._shiftKey=e.shiftKey},e.prototype.setStartButtons=function(e){this._leftButton=e.leftButton,this._middleButton=e.middleButton},e.prototype.setStartedOnLineNumbers=function(e){this._startedOnLineNumbers=e},e.prototype.trySetCount=function(t,n){var i=(new Date).getTime();i-this._lastSetMouseDownCountTime>e.CLEAR_MOUSE_DOWN_COUNT_TIME&&(t=1),this._lastSetMouseDownCountTime=i,t>this._lastMouseDownCount+1&&(t=this._lastMouseDownCount+1),this._lastMouseDownPosition&&this._lastMouseDownPosition.equals(n)?this._lastMouseDownPositionEqualCount++:this._lastMouseDownPositionEqualCount=1,this._lastMouseDownPosition=n,this._lastMouseDownCount=Math.min(t,this._lastMouseDownPositionEqualCount)},e.CLEAR_MOUSE_DOWN_COUNT_TIME=400,e}(),Vh=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();function qh(e,t){var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n}var Yh=function(e){function t(t,n,i){var r=e.call(this,t,n,i)||this;return r.viewHelper.linesContentDomNode.style.msTouchAction="none",r.viewHelper.linesContentDomNode.style.msContentZooming="none",r._installGestureHandlerTimeout=window.setTimeout(function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener("MSPointerDown",function(n){var i=n.pointerType;i!==(n.MSPOINTER_TYPE_MOUSE||"mouse")?i===(n.MSPOINTER_TYPE_TOUCH||"touch")?(r._lastPointerType="touch",e.addPointer(n.pointerId)):(r._lastPointerType="pen",t.addPointer(n.pointerId)):r._lastPointerType="mouse"}),r._register(Pl(r.viewHelper.linesContentDomNode,"MSGestureChange",function(e){return r._onGestureChange(e)},qh)),r._register(Tl(r.viewHelper.linesContentDomNode,"MSGestureTap",function(e){return r._onCaptureGestureTap(e)},!0))}},100),r._lastPointerType="mouse",r}return Vh(t,e),t.prototype._onMouseDown=function(t){"mouse"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new eh(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout(function(){t.viewHelper.focusTextArea()})},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(Uh),Hh=function(e){function t(t,n,i){var r=e.call(this,t,n,i)||this;return r.viewHelper.linesContentDomNode.style.touchAction="none",r._installGestureHandlerTimeout=window.setTimeout(function(){if(r._installGestureHandlerTimeout=-1,window.MSGesture){var e=new MSGesture,t=new MSGesture;e.target=r.viewHelper.linesContentDomNode,t.target=r.viewHelper.linesContentDomNode,r.viewHelper.linesContentDomNode.addEventListener("pointerdown",function(n){var i=n.pointerType;"mouse"!==i?"touch"===i?(r._lastPointerType="touch",e.addPointer(n.pointerId)):(r._lastPointerType="pen",t.addPointer(n.pointerId)):r._lastPointerType="mouse"}),r._register(Pl(r.viewHelper.linesContentDomNode,"MSGestureChange",function(e){return r._onGestureChange(e)},qh)),r._register(Tl(r.viewHelper.linesContentDomNode,"MSGestureTap",function(e){return r._onCaptureGestureTap(e)},!0))}},100),r._lastPointerType="mouse",r}return Vh(t,e),t.prototype._onMouseDown=function(t){"mouse"===this._lastPointerType&&e.prototype._onMouseDown.call(this,t)},t.prototype._onCaptureGestureTap=function(e){var t=this,n=new eh(e,this.viewHelper.viewDomNode),i=this._createMouseTarget(n,!1);i.position&&this.viewController.moveTo(i.position),n.browserEvent.fromElement?(n.preventDefault(),this.viewHelper.focusTextArea()):setTimeout(function(){t.viewHelper.focusTextArea()})},t.prototype._onGestureChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t.prototype.dispose=function(){window.clearTimeout(this._installGestureHandlerTimeout),e.prototype.dispose.call(this)},t}(Uh),Zh=function(e){function t(t,n,i){var r=e.call(this,t,n,i)||this;return Gm.addTarget(r.viewHelper.linesContentDomNode),r._register(Tl(r.viewHelper.linesContentDomNode,Fm.Tap,function(e){return r.onTap(e)})),r._register(Tl(r.viewHelper.linesContentDomNode,Fm.Change,function(e){return r.onChange(e)})),r._register(Tl(r.viewHelper.linesContentDomNode,Fm.Contextmenu,function(e){return r._onContextMenu(new eh(e,r.viewHelper.viewDomNode),!1)})),r}return Vh(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onTap=function(e){e.preventDefault(),this.viewHelper.focusTextArea();var t=this._createMouseTarget(new eh(e,this.viewHelper.viewDomNode),!1);t.position&&this.viewController.moveTo(t.position)},t.prototype.onChange=function(e){this._context.viewLayout.deltaScrollNow(-e.translationX,-e.translationY)},t}(Uh),Qh=function(){function e(e,t,n){window.navigator.msPointerEnabled?this.handler=new Yh(e,t,n):window.TouchEvent?this.handler=new Zh(e,t,n):window.navigator.pointerEnabled||window.PointerEvent?this.handler=new Hh(e,t,n):this.handler=new Uh(e,t,n)}return e.prototype.getTargetAtClientPoint=function(e,t){return this.handler.getTargetAtClientPoint(e,t)},e.prototype.dispose=function(){this.handler.dispose()},e}(),Xh=function(){function e(e,t,n,i,r){this.configuration=e,this.viewModel=t,this._execCoreEditorCommandFunc=n,this.outgoingEvents=i,this.commandDelegate=r}return e.prototype._execMouseCommand=function(e,t){t.source="mouse",this._execCoreEditorCommandFunc(e,t)},e.prototype.paste=function(e,t,n,i){this.commandDelegate.paste(e,t,n,i)},e.prototype.type=function(e,t){this.commandDelegate.type(e,t)},e.prototype.replacePreviousChar=function(e,t,n){this.commandDelegate.replacePreviousChar(e,t,n)},e.prototype.compositionStart=function(e){this.commandDelegate.compositionStart(e)},e.prototype.compositionEnd=function(e){this.commandDelegate.compositionEnd(e)},e.prototype.cut=function(e){this.commandDelegate.cut(e)},e.prototype.setSelection=function(e,t){this._execCoreEditorCommandFunc(sa.SetSelection,{source:e,selection:t})},e.prototype._validateViewColumn=function(e){var t=this.viewModel.getLineMinColumn(e.lineNumber);return e.column=4?this.selectAll():3===e.mouseDownCount?this._hasMulticursorModifier(e)?e.inSelectionMode?this.lastCursorLineSelectDrag(e.position):this.lastCursorLineSelect(e.position):e.inSelectionMode?this.lineSelectDrag(e.position):this.lineSelect(e.position):2===e.mouseDownCount?this._hasMulticursorModifier(e)?this.lastCursorWordSelect(e.position):e.inSelectionMode?this.wordSelectDrag(e.position):this.wordSelect(e.position):this._hasMulticursorModifier(e)?this._hasNonMulticursorModifier(e)||(e.shiftKey?this.columnSelect(e.position,e.mouseColumn):e.inSelectionMode?this.lastCursorMoveToSelect(e.position):this.createCursor(e.position,!1)):e.inSelectionMode?this.moveToSelect(e.position):this.moveTo(e.position)},e.prototype._usualArgs=function(e){return e=this._validateViewColumn(e),{position:this.convertViewToModelPosition(e),viewPosition:e}},e.prototype.moveTo=function(e){this._execMouseCommand(sa.MoveTo,this._usualArgs(e))},e.prototype.moveToSelect=function(e){this._execMouseCommand(sa.MoveToSelect,this._usualArgs(e))},e.prototype.columnSelect=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(sa.ColumnSelect,{position:this.convertViewToModelPosition(e),viewPosition:e,mouseColumn:t})},e.prototype.createCursor=function(e,t){e=this._validateViewColumn(e),this._execMouseCommand(sa.CreateCursor,{position:this.convertViewToModelPosition(e),viewPosition:e,wholeLine:t})},e.prototype.lastCursorMoveToSelect=function(e){this._execMouseCommand(sa.LastCursorMoveToSelect,this._usualArgs(e))},e.prototype.wordSelect=function(e){this._execMouseCommand(sa.WordSelect,this._usualArgs(e))},e.prototype.wordSelectDrag=function(e){this._execMouseCommand(sa.WordSelectDrag,this._usualArgs(e))},e.prototype.lastCursorWordSelect=function(e){this._execMouseCommand(sa.LastCursorWordSelect,this._usualArgs(e))},e.prototype.lineSelect=function(e){this._execMouseCommand(sa.LineSelect,this._usualArgs(e))},e.prototype.lineSelectDrag=function(e){this._execMouseCommand(sa.LineSelectDrag,this._usualArgs(e))},e.prototype.lastCursorLineSelect=function(e){this._execMouseCommand(sa.LastCursorLineSelect,this._usualArgs(e))},e.prototype.lastCursorLineSelectDrag=function(e){this._execMouseCommand(sa.LastCursorLineSelectDrag,this._usualArgs(e))},e.prototype.selectAll=function(){this._execMouseCommand(sa.SelectAll,{})},e.prototype.convertViewToModelPosition=function(e){return this.viewModel.coordinatesConverter.convertViewPositionToModelPosition(e)},e.prototype.emitKeyDown=function(e){this.outgoingEvents.emitKeyDown(e)},e.prototype.emitKeyUp=function(e){this.outgoingEvents.emitKeyUp(e)},e.prototype.emitContextMenu=function(e){this.outgoingEvents.emitContextMenu(e)},e.prototype.emitMouseMove=function(e){this.outgoingEvents.emitMouseMove(e)},e.prototype.emitMouseLeave=function(e){this.outgoingEvents.emitMouseLeave(e)},e.prototype.emitMouseUp=function(e){this.outgoingEvents.emitMouseUp(e)},e.prototype.emitMouseDown=function(e){this.outgoingEvents.emitMouseDown(e)},e.prototype.emitMouseDrag=function(e){this.outgoingEvents.emitMouseDrag(e)},e.prototype.emitMouseDrop=function(e){this.outgoingEvents.emitMouseDrop(e)},e}(),Jh=function(){function e(e){this._eventHandlerGateKeeper=e,this._eventHandlers=[],this._eventQueue=null,this._isConsumingQueue=!1}return e.prototype.addEventHandler=function(e){for(var t=0,n=this._eventHandlers.length;t=this._lines.length)throw new Error("Illegal value for lineNumber");return this._lines[t]},e.prototype.onLinesDeleted=function(e,t){if(0===this.getCount())return null;var n=this.getStartLineNumber(),i=this.getEndLineNumber();if(ti)return null;for(var o=0,s=0,a=n;a<=i;a++){var l=a-this._rendLineNumberStart;e<=a&&a<=t&&(0===s?(o=l,s=1):s++)}if(e=n&&o<=i&&(this._lines[o-this._rendLineNumberStart].onContentChanged(),r=!0);return r},e.prototype.onLinesInserted=function(e,t){if(0===this.getCount())return null;var n=t-e+1,i=this.getStartLineNumber(),r=this.getEndLineNumber();if(e<=i)return this._rendLineNumberStart+=n,null;if(e>r)return null;if(n+e>r)return this._lines.splice(e-this._rendLineNumberStart,r-e+1);for(var o=[],s=0;sn))for(var a=Math.max(t,s.fromLineNumber),l=Math.min(n,s.toLineNumber),u=a;u<=l;u++){var d=u-this._rendLineNumberStart;this._lines[d].onTokensChanged(),i=!0}}return i},e}(),tp=function(){function e(e){var t=this;this._host=e,this.domNode=this._createDomNode(),this._linesCollection=new ep(function(){return t._host.createVisibleLine()})}return e.prototype._createDomNode=function(){var e=Ec(document.createElement("div"));return e.setClassName("view-layer"),e.setPosition("absolute"),e.domNode.setAttribute("role","presentation"),e.domNode.setAttribute("aria-hidden","true"),e},e.prototype.onConfigurationChanged=function(e){return e.layoutInfo},e.prototype.onFlushed=function(e){return this._linesCollection.flush(),!0},e.prototype.onLinesChanged=function(e){return this._linesCollection.onLinesChanged(e.fromLineNumber,e.toLineNumber)},e.prototype.onLinesDeleted=function(e){var t=this._linesCollection.onLinesDeleted(e.fromLineNumber,e.toLineNumber);if(t)for(var n=0,i=t.length;nt?(l=t)<=(s=Math.min(n,r.rendLineNumberStart-1))&&(this._insertLinesBefore(r,l,s,i,t),r.linesLength+=s-l+1):r.rendLineNumberStart0&&(this._removeLinesBefore(r,a),r.linesLength-=a),r.rendLineNumberStart=t,r.rendLineNumberStart+r.linesLength-1n){var s,a,l=Math.max(0,n-r.rendLineNumberStart+1);(a=(s=r.linesLength-1)-l+1)>0&&(this._removeLinesAfter(r,a),r.linesLength-=a)}return this._finishRendering(r,!1,i),r},e.prototype._renderUntouchedLines=function(e,t,n,i,r){for(var o=e.rendLineNumberStart,s=e.lines,a=t;a<=n;a++){var l=o+a;s[a].layoutLine(l,i[l-r])}},e.prototype._insertLinesBefore=function(e,t,n,i,r){for(var o=[],s=0,a=t;a<=n;a++)o[s++]=this.host.createVisibleLine();e.lines=o.concat(e.lines)},e.prototype._removeLinesBefore=function(e,t){for(var n=0;n=0;s--){var a=e.lines[s];i[s]&&(a.setDomNode(o),o=o.previousSibling)}},e.prototype._finishRenderingInvalidLines=function(e,t,n){var i=document.createElement("div");i.innerHTML=t;for(var r=0;r'),i.appendASCIIString(r),i.appendASCIIString(""),!0)},e.prototype.layoutLine=function(e,t){this._domNode&&(this._domNode.setTop(t),this._domNode.setHeight(this._lineHeight))},e}(),sp=function(e){function t(t){var n=e.call(this,t)||this;return n._contentWidth=n._context.configuration.editor.layoutInfo.contentWidth,n.domNode.setHeight(0),n}return ip(t,e),t.prototype.onConfigurationChanged=function(t){return t.layoutInfo&&(this._contentWidth=this._context.configuration.editor.layoutInfo.contentWidth),e.prototype.onConfigurationChanged.call(this,t)},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollWidthChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t),this.domNode.setWidth(Math.max(t.scrollWidth,this._contentWidth))},t}(rp),ap=function(e){function t(t){var n=e.call(this,t)||this;return n._contentLeft=n._context.configuration.editor.layoutInfo.contentLeft,n.domNode.setClassName("margin-view-overlays"),n.domNode.setWidth(1),nd.applyFontInfo(n.domNode,n._context.configuration.editor.fontInfo),n}return ip(t,e),t.prototype.onConfigurationChanged=function(t){var n=!1;return t.fontInfo&&(nd.applyFontInfo(this.domNode,this._context.configuration.editor.fontInfo),n=!0),t.layoutInfo&&(this._contentLeft=this._context.configuration.editor.layoutInfo.contentLeft,n=!0),e.prototype.onConfigurationChanged.call(this,t)||n},t.prototype.onScrollChanged=function(t){return e.prototype.onScrollChanged.call(this,t)||t.scrollHeightChanged},t.prototype._viewOverlaysRender=function(t){e.prototype._viewOverlaysRender.call(this,t);var n=Math.min(t.scrollHeight,1e6);this.domNode.setHeight(n),this.domNode.setWidth(this._contentLeft)},t}(rp),lp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),up=function(e,t){this.top=e,this.left=t},dp=function(e){function t(t,n){var i=e.call(this,t)||this;return i._viewDomNode=n,i._widgets={},i.domNode=Ec(document.createElement("div")),jc.write(i.domNode,1),i.domNode.setClassName("contentWidgets"),i.domNode.setPosition("absolute"),i.domNode.setTop(0),i.overflowingContentWidgetsDomNode=Ec(document.createElement("div")),jc.write(i.overflowingContentWidgetsDomNode,2),i.overflowingContentWidgetsDomNode.setClassName("overflowingContentWidgets"),i}return lp(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets=null,this.domNode=null},t.prototype.onConfigurationChanged=function(e){for(var t=Object.keys(this._widgets),n=0,i=t.length;n=n,u=s,d=i.viewportHeight-s>=n,c=e.left;return c+t>i.scrollLeft+i.viewportWidth&&(c=i.scrollLeft+i.viewportWidth-t),cthis._contentWidth)return null;var o,s=e.top-n,a=e.top+this._lineHeight,l=r+this._contentLeft,u=zl(this._viewDomNode.domNode),d=u.top+s-jl.scrollY,c=u.top+a-jl.scrollY,g=u.left+l-jl.scrollX,m=window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,h=d>=22,p=c+n<=(window.innerHeight||document.documentElement.clientHeight||document.body.clientHeight)-22;return g+t+20>m&&(g-=o=g-(m-t-20),l-=o),g<0&&(g-=o=g,l-=o),this._fixedOverflowWidgets&&(s=d,a=c,l=g),{aboveTop:s,fitsAbove:h,belowTop:a,fitsBelow:p,left:l}},e.prototype._prepareRenderWidgetAtExactPositionOverflowing=function(e){return new up(e.top,e.left+this._contentLeft)},e.prototype._getTopLeft=function(e){if(!this._viewPosition)return null;var t=e.visibleRangeForPosition(this._viewPosition);if(!t)return null;var n=e.getVerticalOffsetForLineNumber(this._viewPosition.lineNumber)-e.scrollTop;return new up(n,t.left)},e.prototype._prepareRenderWidget=function(e,t){var n=this;if(!e)return null;for(var i=null,r=function(){if(!i){if(-1===n._cachedDomNodeClientWidth||-1===n._cachedDomNodeClientHeight){var r=n.domNode.domNode;n._cachedDomNodeClientWidth=r.clientWidth,n._cachedDomNodeClientHeight=r.clientHeight}i=n.allowEditorOverflow?n._layoutBoxInPage(e,n._cachedDomNodeClientWidth,n._cachedDomNodeClientHeight,t):n._layoutBoxInViewport(e,n._cachedDomNodeClientWidth,n._cachedDomNodeClientHeight,t)}},o=1;o<=2;o++)for(var s=0;se.endLineNumber||this.domNode.setMaxWidth(this._maxWidth))},e.prototype.prepareRender=function(e){var t=this._getTopLeft(e);this._renderData=this._prepareRenderWidget(t,e)},e.prototype.render=function(e){this._renderData?(this.allowEditorOverflow?(this.domNode.setTop(this._renderData.top),this.domNode.setLeft(this._renderData.left)):(this.domNode.setTop(this._renderData.top+e.scrollTop-e.bigNumbersDelta),this.domNode.setLeft(this._renderData.left)),this._isVisible||(this.domNode.setVisibility("inherit"),this.domNode.setAttribute("monaco-visible-content-widget","true"),this._isVisible=!0)):this._isVisible&&(this.domNode.removeAttribute("monaco-visible-content-widget"),this._isVisible=!1,this.domNode.setVisibility("hidden"))},e}(),gp=(n(21),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),mp=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._renderLineHighlight=n._context.configuration.editor.viewInfo.renderLineHighlight,n._selectionIsEmpty=!0,n._primaryCursorLineNumber=1,n._scrollWidth=0,n._contentWidth=n._context.configuration.editor.layoutInfo.contentWidth,n._context.addEventHandler(n),n}return gp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._renderLineHighlight=this._context.configuration.editor.viewInfo.renderLineHighlight),e.layoutInfo&&(this._contentWidth=this._context.configuration.editor.layoutInfo.contentWidth),!0},t.prototype.onCursorStateChanged=function(e){var t=!1,n=e.selections[0].positionLineNumber;this._primaryCursorLineNumber!==n&&(this._primaryCursorLineNumber=n,t=!0);var i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i?(this._selectionIsEmpty=i,t=!0,!0):t},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){this._scrollWidth=e.scrollWidth},t.prototype.render=function(e,t){return t===this._primaryCursorLineNumber&&this._shouldShowCurrentLine()?'
':""},t.prototype._shouldShowCurrentLine=function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty},t.prototype._willRenderMarginCurrentLine=function(){return"gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight},t}(Em);Ac(function(e,t){var n=e.getColor(nm);if(n&&t.addRule(".monaco-editor .view-overlays .current-line { background-color: "+n+"; }"),!n||n.isTransparent()||e.defines(im)){var i=e.getColor(im);i&&(t.addRule(".monaco-editor .view-overlays .current-line { border: 2px solid "+i+"; }"),"hc"===e.type&&t.addRule(".monaco-editor .view-overlays .current-line { border-width: 1px; }"))}}),n(23);var hp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),pp=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._renderLineHighlight=n._context.configuration.editor.viewInfo.renderLineHighlight,n._selectionIsEmpty=!0,n._primaryCursorLineNumber=1,n._contentLeft=n._context.configuration.editor.layoutInfo.contentLeft,n._context.addEventHandler(n),n}return hp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._renderLineHighlight=this._context.configuration.editor.viewInfo.renderLineHighlight),e.layoutInfo&&(this._contentLeft=this._context.configuration.editor.layoutInfo.contentLeft),!0},t.prototype.onCursorStateChanged=function(e){var t=!1,n=e.selections[0].positionLineNumber;this._primaryCursorLineNumber!==n&&(this._primaryCursorLineNumber=n,t=!0);var i=e.selections[0].isEmpty();return this._selectionIsEmpty!==i?(this._selectionIsEmpty=i,t=!0,!0):t},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e,t){if(t===this._primaryCursorLineNumber){var n="current-line";return this._shouldShowCurrentLine()&&(n="current-line current-line-margin"+(this._willRenderContentCurrentLine()?" current-line-margin-both":"")),'
'}return""},t.prototype._shouldShowCurrentLine=function(){return"gutter"===this._renderLineHighlight||"all"===this._renderLineHighlight},t.prototype._willRenderContentCurrentLine=function(){return("line"===this._renderLineHighlight||"all"===this._renderLineHighlight)&&this._selectionIsEmpty},t}(Em);Ac(function(e,t){var n=e.getColor(nm);if(n)t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { background-color: "+n+"; border: none; }");else{var i=e.getColor(im);i&&t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border: 2px solid "+i+"; }"),"hc"===e.type&&t.addRule(".monaco-editor .margin-view-overlays .current-line-margin { border-width: 1px; }")}}),n(25);var fp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),yp=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._typicalHalfwidthCharacterWidth=n._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,n._renderResult=null,n._context.addEventHandler(n),n}return fp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.fontInfo&&(this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged||e.scrollWidthChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.prepareRender=function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;rt.options.zIndex)return 1;var n=e.options.className,i=t.options.className;return ni?1:s.compareRangesUsingStarts(e.range,t.range)});for(var l=e.visibleRange.startLineNumber,u=e.visibleRange.endLineNumber,d=[],c=l;c<=u;c++)d[c-l]="";this._renderWholeLineDecorations(e,n,d),this._renderNormalDecorations(e,n,d),this._renderResult=d},t.prototype._renderWholeLineDecorations=function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=e.visibleRange.endLineNumber,s=0,a=t.length;s',d=Math.max(l.range.startLineNumber,r),c=Math.min(l.range.endLineNumber,o),g=d;g<=c;g++)n[g-r]+=u}},t.prototype._renderNormalDecorations=function(e,t,n){for(var i=String(this._lineHeight),r=e.visibleRange.startLineNumber,o=null,a=!1,l=null,u=0,d=t.length;u';s[c]+=f}}},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]},t}(Em),Sp=(n(27),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),bp=function(e,t,n){this.startLineNumber=+e,this.endLineNumber=+t,this.className=String(n)},Ip=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Sp(t,e),t.prototype._render=function(e,t,n){for(var i=[],r=e;r<=t;r++)i[r-e]=[];if(0===n.length)return i;n.sort(function(e,t){return e.className===t.className?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.className',s=[],a=t;a<=n;a++){var l=a-t,u=i[l];0===u.length?s[l]="":s[l]='
=this._renderResult.length?"":this._renderResult[n]},t}(Ip),_p=(n(29),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),vp=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._primaryLineNumber=0,n._lineHeight=n._context.configuration.editor.lineHeight,n._spaceWidth=n._context.configuration.editor.fontInfo.spaceWidth,n._enabled=n._context.configuration.editor.viewInfo.renderIndentGuides,n._activeIndentEnabled=n._context.configuration.editor.viewInfo.highlightActiveIndentGuide,n._renderResult=null,n._context.addEventHandler(n),n}return _p(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.fontInfo&&(this._spaceWidth=this._context.configuration.editor.fontInfo.spaceWidth),e.viewInfo&&(this._enabled=this._context.configuration.editor.viewInfo.renderIndentGuides,this._activeIndentEnabled=this._context.configuration.editor.viewInfo.highlightActiveIndentGuide),!0},t.prototype.onCursorStateChanged=function(e){var t=e.selections[0],n=t.isEmpty()?t.positionLineNumber:0;return this._primaryLineNumber!==n&&(this._primaryLineNumber=n,!0)},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype.onLanguageConfigurationChanged=function(e){return!0},t.prototype.prepareRender=function(e){if(this._enabled){var t=e.visibleRange.startLineNumber,n=e.visibleRange.endLineNumber,i=this._context.model.getTabSize()*this._spaceWidth,r=e.scrollWidth,s=this._lineHeight,a=i,l=this._context.model.getLinesIndentGuides(t,n),u=0,d=0,c=0;if(this._activeIndentEnabled&&this._primaryLineNumber){var g=this._context.model.getActiveIndentGuide(this._primaryLineNumber,t,n);u=g.startLineNumber,d=g.endLineNumber,c=g.indent}for(var m=[],h=t;h<=n;h++){for(var p=u<=h&&h<=d,f=h-t,y=l[f],S="",b=e.visibleRangeForPosition(new o(h,1)),I=b?b.left:0,C=1;C<=y&&(S+='
',!((I+=i)>r));C++);m[f]=S}this._renderResult=m}else this._renderResult=null},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]},t}(Em);Ac(function(e,t){var n=e.getColor(um);n&&t.addRule(".monaco-editor .lines-content .cigr { box-shadow: 1px 0 0 0 "+n+" inset; }");var i=e.getColor(dm)||n;i&&t.addRule(".monaco-editor .lines-content .cigra { box-shadow: 1px 0 0 0 "+i+" inset; }")}),n(31);var Tp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),xp=function(){function e(){this._currentVisibleRange=new s(1,1,1,1)}return e.prototype.getCurrentVisibleRange=function(){return this._currentVisibleRange},e.prototype.setCurrentVisibleRange=function(e){this._currentVisibleRange=e},e}(),wp=function(e,t,n,i,r,o){this.lineNumber=e,this.startColumn=t,this.endColumn=n,this.startScrollTop=i,this.stopScrollTop=r,this.scrollType=o},Bp=function(e){function t(t,n){var i=e.call(this,t)||this;i._linesContent=n,i._textRangeRestingSpot=document.createElement("div"),i._visibleLines=new tp(i),i.domNode=i._visibleLines.domNode;var r=i._context.configuration;return i._lineHeight=r.editor.lineHeight,i._typicalHalfwidthCharacterWidth=r.editor.fontInfo.typicalHalfwidthCharacterWidth,i._isViewportWrapping=r.editor.wrappingInfo.isViewportWrapping,i._revealHorizontalRightPadding=r.editor.viewInfo.revealHorizontalRightPadding,i._canUseLayerHinting=r.editor.canUseLayerHinting,i._viewLineOptions=new Bh(r,i._context.theme.type),jc.write(i.domNode,7),i.domNode.setClassName("view-lines"),nd.applyFontInfo(i.domNode,r.editor.fontInfo),i._maxLineWidth=0,i._asyncUpdateLineWidths=new Fa(function(){i._updateLineWidthsSlow()},200),i._lastRenderedData=new xp,i._horizontalRevealRequest=null,i}return Tp(t,e),t.prototype.dispose=function(){this._asyncUpdateLineWidths.dispose(),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this.domNode},t.prototype.createVisibleLine=function(){return new Dh(this._viewLineOptions)},t.prototype.onConfigurationChanged=function(e){this._visibleLines.onConfigurationChanged(e),e.wrappingInfo&&(this._maxLineWidth=0);var t=this._context.configuration;return e.lineHeight&&(this._lineHeight=t.editor.lineHeight),e.fontInfo&&(this._typicalHalfwidthCharacterWidth=t.editor.fontInfo.typicalHalfwidthCharacterWidth),e.wrappingInfo&&(this._isViewportWrapping=t.editor.wrappingInfo.isViewportWrapping),e.viewInfo&&(this._revealHorizontalRightPadding=t.editor.viewInfo.revealHorizontalRightPadding),e.canUseLayerHinting&&(this._canUseLayerHinting=t.editor.canUseLayerHinting),e.fontInfo&&nd.applyFontInfo(this.domNode,t.editor.fontInfo),this._onOptionsMaybeChanged(),e.layoutInfo&&(this._maxLineWidth=0),!0},t.prototype._onOptionsMaybeChanged=function(){var e=this._context.configuration,t=new Bh(e,this._context.theme.type);if(!this._viewLineOptions.equals(t)){this._viewLineOptions=t;for(var n=this._visibleLines.getStartLineNumber(),i=this._visibleLines.getEndLineNumber(),r=n;r<=i;r++)this._visibleLines.getVisibleLine(r).onOptionsChanged(this._viewLineOptions);return!0}return!1},t.prototype.onCursorStateChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=!1,r=t;r<=n;r++)i=this._visibleLines.getVisibleLine(r).onSelectionChanged()||i;return i},t.prototype.onDecorationsChanged=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=t;i<=n;i++)this._visibleLines.getVisibleLine(i).onDecorationsChanged();return!0},t.prototype.onFlushed=function(e){var t=this._visibleLines.onFlushed(e);return this._maxLineWidth=0,t},t.prototype.onLinesChanged=function(e){return this._visibleLines.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._visibleLines.onLinesDeleted(e)},t.prototype.onLinesInserted=function(e){return this._visibleLines.onLinesInserted(e)},t.prototype.onRevealRangeRequest=function(e){var t=this._computeScrollTopToRevealRange(this._context.viewLayout.getFutureViewport(),e.range,e.verticalType),n=this._context.viewLayout.validateScrollPosition({scrollTop:t});e.revealHorizontal?e.range.startLineNumber!==e.range.endLineNumber?n={scrollTop:n.scrollTop,scrollLeft:0}:this._horizontalRevealRequest=new wp(e.range.startLineNumber,e.range.startColumn,e.range.endColumn,this._context.viewLayout.getCurrentScrollTop(),n.scrollTop,e.scrollType):this._horizontalRevealRequest=null;var i=Math.abs(this._context.viewLayout.getCurrentScrollTop()-n.scrollTop);return 0===e.scrollType&&i>this._lineHeight?this._context.viewLayout.setScrollPositionSmooth(n):this._context.viewLayout.setScrollPositionNow(n),!0},t.prototype.onScrollChanged=function(e){if(this._horizontalRevealRequest&&e.scrollLeftChanged&&(this._horizontalRevealRequest=null),this._horizontalRevealRequest&&e.scrollTopChanged){var t=Math.min(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop),n=Math.max(this._horizontalRevealRequest.startScrollTop,this._horizontalRevealRequest.stopScrollTop);(e.scrollTopn)&&(this._horizontalRevealRequest=null)}return this.domNode.setWidth(e.scrollWidth),this._visibleLines.onScrollChanged(e)||!0},t.prototype.onTokensChanged=function(e){return this._visibleLines.onTokensChanged(e)},t.prototype.onZonesChanged=function(e){return this._context.viewLayout.onMaxLineWidthChanged(this._maxLineWidth),this._visibleLines.onZonesChanged(e)},t.prototype.onThemeChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.getPositionFromDOMInfo=function(e,t){var n=this._getViewLineDomNode(e);if(null===n)return null;var i=this._getLineNumberFor(n);if(-1===i)return null;if(i<1||i>this._context.model.getLineCount())return null;if(1===this._context.model.getLineMaxColumn(i))return new o(i,1);var r=this._visibleLines.getStartLineNumber(),s=this._visibleLines.getEndLineNumber();if(is)return null;var a=this._visibleLines.getVisibleLine(i).getColumnOfNodeOffset(i,e,t),l=this._context.model.getLineMinColumn(i);return an?-1:this._visibleLines.getVisibleLine(e).getWidth()},t.prototype.linesVisibleRangesForRange=function(e,t){if(this.shouldRender())return null;var n=e.endLineNumber;if(!(e=s.intersectRanges(e,this._lastRenderedData.getCurrentVisibleRange())))return null;var i,r=[],a=0,l=new wh(this.domNode.domNode,this._textRangeRestingSpot);t&&(i=this._context.model.coordinatesConverter.convertViewPositionToModelPosition(new o(e.startLineNumber,1)).lineNumber);for(var u=this._visibleLines.getStartLineNumber(),d=this._visibleLines.getEndLineNumber(),c=e.startLineNumber;c<=e.endLineNumber;c++)if(!(cd)){var g=c===e.startLineNumber?e.startColumn:1,m=c===e.endLineNumber?e.endColumn:this._context.model.getLineMaxColumn(c),h=this._visibleLines.getVisibleLine(c).getVisibleRangesForRange(g,m,l);h&&0!==h.length&&(t&&cr)){var a=o===e.startLineNumber?e.startColumn:1,l=o===e.endLineNumber?e.endColumn:this._context.model.getLineMaxColumn(o),u=this._visibleLines.getVisibleLine(o).getVisibleRangesForRange(a,l,n);u&&0!==u.length&&(t=t.concat(u))}return 0===t.length?null:t},t.prototype.updateLineWidths=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidthsFast=function(){return this._updateLineWidths(!0)},t.prototype._updateLineWidthsSlow=function(){this._updateLineWidths(!1)},t.prototype._updateLineWidths=function(e){for(var t=this._visibleLines.getStartLineNumber(),n=this._visibleLines.getEndLineNumber(),i=1,r=!0,o=t;o<=n;o++){var s=this._visibleLines.getVisibleLine(o);!e||s.getWidthIsFast()?i=Math.max(i,s.getWidth()):r=!1}return r&&1===t&&n===this._context.model.getLineCount()&&(this._maxLineWidth=0),this._ensureMaxLineWidth(i),r},t.prototype.prepareRender=function(){throw new Error("Not supported")},t.prototype.render=function(){throw new Error("Not supported")},t.prototype.renderText=function(e){if(this._visibleLines.renderLines(e),this._lastRenderedData.setCurrentVisibleRange(e.visibleRange),this.domNode.setWidth(this._context.viewLayout.getScrollWidth()),this.domNode.setHeight(Math.min(this._context.viewLayout.getScrollHeight(),1e6)),this._horizontalRevealRequest){var t=this._horizontalRevealRequest.lineNumber,n=this._horizontalRevealRequest.startColumn,i=this._horizontalRevealRequest.endColumn,r=this._horizontalRevealRequest.scrollType;if(e.startLineNumber<=t&&t<=e.endLineNumber){this._horizontalRevealRequest=null,this.onDidRender();var o=this._computeScrollLeftToRevealRange(t,n,i);this._isViewportWrapping||this._ensureMaxLineWidth(o.maxHorizontalOffset),0===r?this._context.viewLayout.setScrollPositionSmooth({scrollLeft:o.scrollLeft}):this._context.viewLayout.setScrollPositionNow({scrollLeft:o.scrollLeft})}}this._updateLineWidthsFast()||this._asyncUpdateLineWidths.schedule(),this._linesContent.setLayerHinting(this._canUseLayerHinting);var s=this._context.viewLayout.getCurrentScrollTop()-e.bigNumbersDelta;this._linesContent.setTop(-s),this._linesContent.setLeft(-this._context.viewLayout.getCurrentScrollLeft())},t.prototype._ensureMaxLineWidth=function(e){var t=Math.ceil(e);this._maxLineWidthc&&(c=m.left+m.width)}return r=c,d=Math.max(0,d-t.HORIZONTAL_EXTRA_PX),c+=this._revealHorizontalRightPadding,{scrollLeft:this._computeMinimumScrolling(a,l,d,c),maxHorizontalOffset:r}},t.prototype._computeMinimumScrolling=function(e,t,n,i,r,o){r=!!r,o=!!o;var s=(t|=0)-(e|=0);return(i|=0)-(n|=0)t?Math.max(0,i-s):e:n},t.HORIZONTAL_EXTRA_PX=30,t}(zc),Dp=(n(33),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),Ap=function(e){function t(t){var n=e.call(this)||this;return n._context=t,n._decorationsLeft=n._context.configuration.editor.layoutInfo.decorationsLeft,n._decorationsWidth=n._context.configuration.editor.layoutInfo.decorationsWidth,n._renderResult=null,n._context.addEventHandler(n),n}return Dp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.layoutInfo&&(this._decorationsLeft=this._context.configuration.editor.layoutInfo.decorationsLeft,this._decorationsWidth=this._context.configuration.editor.layoutInfo.decorationsWidth),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._getDecorations=function(e){for(var t=e.getDecorationsInViewport(),n=[],i=0,r=0,o=t.length;r
',o=[],s=t;s<=n;s++){for(var a=s-t,l=i[a],u="",d=0,c=l.length;d';r[s]=l}this._renderResult=r},t.prototype.render=function(e,t){return this._renderResult?this._renderResult[t-e]:""},t}(Ip),Kp=(n(37),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),Np=function(e){function t(t){var n=e.call(this,t)||this;return n._widgets={},n._verticalScrollbarWidth=n._context.configuration.editor.layoutInfo.verticalScrollbarWidth,n._minimapWidth=n._context.configuration.editor.layoutInfo.minimapWidth,n._horizontalScrollbarHeight=n._context.configuration.editor.layoutInfo.horizontalScrollbarHeight,n._editorHeight=n._context.configuration.editor.layoutInfo.height,n._editorWidth=n._context.configuration.editor.layoutInfo.width,n._domNode=Ec(document.createElement("div")),jc.write(n._domNode,4),n._domNode.setClassName("overlayWidgets"),n}return Kp(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._widgets=null},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){return!!e.layoutInfo&&(this._verticalScrollbarWidth=this._context.configuration.editor.layoutInfo.verticalScrollbarWidth,this._minimapWidth=this._context.configuration.editor.layoutInfo.minimapWidth,this._horizontalScrollbarHeight=this._context.configuration.editor.layoutInfo.horizontalScrollbarHeight,this._editorHeight=this._context.configuration.editor.layoutInfo.height,this._editorWidth=this._context.configuration.editor.layoutInfo.width,!0)},t.prototype.addWidget=function(e){var t=Ec(e.getDomNode());this._widgets[e.getId()]={widget:e,preference:null,domNode:t},t.setPosition("absolute"),t.setAttribute("widgetId",e.getId()),this._domNode.appendChild(t),this.setShouldRender()},t.prototype.setWidgetPosition=function(e,t){var n=this._widgets[e.getId()];return n.preference!==t&&(n.preference=t,this.setShouldRender(),!0)},t.prototype.removeWidget=function(e){var t=e.getId();if(this._widgets.hasOwnProperty(t)){var n=this._widgets[t].domNode.domNode;delete this._widgets[t],n.parentNode.removeChild(n),this.setShouldRender()}},t.prototype._renderWidget=function(e){var t=e.domNode;if(null!==e.preference)if(e.preference===jm.TOP_RIGHT_CORNER)t.setTop(0),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth);else if(e.preference===jm.BOTTOM_RIGHT_CORNER){var n=t.domNode.clientHeight;t.setTop(this._editorHeight-n-2*this._horizontalScrollbarHeight),t.setRight(2*this._verticalScrollbarWidth+this._minimapWidth)}else e.preference===jm.TOP_CENTER&&(t.setTop(0),t.domNode.style.right="50%");else t.unsetTop()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._editorWidth);for(var t=Object.keys(this._widgets),n=0,i=t.length;n=3){var r,o,s,a=i-(r=Math.floor(i/3))-(o=Math.floor(i/3)),l=(s=e)+r;return[[0,s,l,s,s+r+a,s,l,s],[0,r,a,r+a,o,r+a+o,a+o,r+a+o]]}return 2===n?[[0,s=e,s,s,s+(r=Math.floor(i/2)),s,s,s],[0,r,r,r,o=i-r,r+o,r+o,r+o]]:[[0,e,e,e,e,e,e,e],[0,i,i,i,i,i,i,i]]},e.prototype.equals=function(e){return this.lineHeight===e.lineHeight&&this.pixelRatio===e.pixelRatio&&this.overviewRulerLanes===e.overviewRulerLanes&&this.renderBorder===e.renderBorder&&this.borderColor===e.borderColor&&this.hideCursor===e.hideCursor&&this.cursorColor===e.cursorColor&&this.themeType===e.themeType&&this.backgroundColor===e.backgroundColor&&this.top===e.top&&this.right===e.right&&this.domWidth===e.domWidth&&this.domHeight===e.domHeight&&this.canvasWidth===e.canvasWidth&&this.canvasHeight===e.canvasHeight},e}(),$p=function(e){function t(t){var n=e.call(this,t)||this;return n._domNode=Ec(document.createElement("canvas")),n._domNode.setClassName("decorationsOverviewRuler"),n._domNode.setPosition("absolute"),n._domNode.setLayerHinting(!0),n._domNode.setAttribute("aria-hidden","true"),n._settings=null,n._updateSettings(!1),n._tokensColorTrackerListener=Ln.onDidChange(function(e){e.changedColorMap&&n._updateSettings(!0)}),n._cursorPositions=[],n}return Pp(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._tokensColorTrackerListener.dispose()},t.prototype._updateSettings=function(e){var t=new Op(this._context.configuration,this._context.theme);return!(null!==this._settings&&this._settings.equals(t)||(this._settings=t,this._domNode.setTop(this._settings.top),this._domNode.setRight(this._settings.right),this._domNode.setWidth(this._settings.domWidth),this._domNode.setHeight(this._settings.domHeight),this._domNode.domNode.width=this._settings.canvasWidth,this._domNode.domNode.height=this._settings.canvasHeight,e&&this._render(),0))},t.prototype.onConfigurationChanged=function(e){return this._updateSettings(!1)},t.prototype.onCursorStateChanged=function(e){this._cursorPositions=[];for(var t=0,n=e.selections.length;tt&&(A=t-a),T=A-a,E=A+a),T>S+1||C!==f?(0!==b&&l.fillRect(u[f],y,d[f],S-y),f=C,y=T,S=E):E>S&&(S=E)}l.fillRect(u[f],y,d[f],S-y)}if(!this._settings.hideCursor){var x=2*this._settings.pixelRatio|0,w=x/2|0,B=this._settings.x[7],D=this._settings.w[7];for(l.fillStyle=this._settings.cursorColor,y=-100,S=-100,b=0,I=this._cursorPositions.length;bt&&(A=t-w);var E=(T=A-w)+x;T>S+1?(0!==b&&l.fillRect(B,y,D,S-y),y=T,S=E):E>S&&(S=E)}l.fillRect(B,y,D,S-y)}this._settings.renderBorder&&this._settings.borderColor&&this._settings.overviewRulerLanes>0&&(l.beginPath(),l.lineWidth=1,l.strokeStyle=this._settings.borderColor,l.moveTo(0,0),l.lineTo(0,t),l.stroke(),l.moveTo(0,0),l.lineTo(e,0),l.stroke())},t}(zc),kp=function(){function e(e,t,n){this.from=0|e,this.to=0|t,this.colorId=0|n}return e.compare=function(e,t){return e.colorId===t.colorId?e.from===t.from?e.to-t.to:e.from-t.from:e.colorId-t.colorId},e}(),Lp=function(){function e(e,t,n){this.startLineNumber=e,this.endLineNumber=t,this.color=n,this._colorZone=null}return e.compare=function(e,t){return e.color===t.color?e.startLineNumber===t.startLineNumber?e.endLineNumber-t.endLineNumber:e.startLineNumber-t.startLineNumber:e.colorn&&(g=n-m);var h=l.color,p=this._color2Id[h];p||(p=++this._lastAssignedId,this._color2Id[h]=p,this._id2Color[p]=h);var f=new kp(g-m,g+m,p);l.setColorZone(f),o.push(f)}return this._colorZonesInvalid=!1,o.sort(kp.compare),o},e}(),Fp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),zp=function(e){function t(t,n){var i=e.call(this)||this;return i._context=t,i._domNode=Ec(document.createElement("canvas")),i._domNode.setClassName(n),i._domNode.setPosition("absolute"),i._domNode.setLayerHinting(!0),i._zoneManager=new Mp(function(e){return i._context.viewLayout.getVerticalOffsetForLineNumber(e)}),i._zoneManager.setDOMWidth(0),i._zoneManager.setDOMHeight(0),i._zoneManager.setOuterHeight(i._context.viewLayout.getScrollHeight()),i._zoneManager.setLineHeight(i._context.configuration.editor.lineHeight),i._zoneManager.setPixelRatio(i._context.configuration.editor.pixelRatio),i._context.addEventHandler(i),i}return Fp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._zoneManager=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._zoneManager.setLineHeight(this._context.configuration.editor.lineHeight),this._render()),e.pixelRatio&&(this._zoneManager.setPixelRatio(this._context.configuration.editor.pixelRatio),this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render()),!0},t.prototype.onFlushed=function(e){return this._render(),!0},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged&&(this._zoneManager.setOuterHeight(e.scrollHeight),this._render()),!0},t.prototype.onZonesChanged=function(e){return this._render(),!0},t.prototype.getDomNode=function(){return this._domNode.domNode},t.prototype.setLayout=function(e){this._domNode.setTop(e.top),this._domNode.setRight(e.right);var t=!1;t=this._zoneManager.setDOMWidth(e.width)||t,(t=this._zoneManager.setDOMHeight(e.height)||t)&&(this._domNode.setWidth(this._zoneManager.getDOMWidth()),this._domNode.setHeight(this._zoneManager.getDOMHeight()),this._domNode.domNode.width=this._zoneManager.getCanvasWidth(),this._domNode.domNode.height=this._zoneManager.getCanvasHeight(),this._render())},t.prototype.setZones=function(e){this._zoneManager.setZones(e),this._render()},t.prototype._render=function(){if(0===this._zoneManager.getOuterHeight())return!1;var e=this._zoneManager.getCanvasWidth(),t=this._zoneManager.getCanvasHeight(),n=this._zoneManager.resolveColorZones(),i=this._zoneManager.getId2Color(),r=this._domNode.domNode.getContext("2d");return r.clearRect(0,0,e,t),n.length>0&&this._renderOneLane(r,n,i,e),!0},t.prototype._renderOneLane=function(e,t,n,i){for(var r=0,o=0,s=0,a=0,l=t.length;a=c?s=Math.max(s,g):(e.fillRect(0,o,i,s-o),o=c,s=g)}e.fillRect(0,o,i,s-o)},t}(Nc),jp=(n(39),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),Up=function(e){function t(t){var n=e.call(this,t)||this;return n.domNode=Ec(document.createElement("div")),n.domNode.setAttribute("role","presentation"),n.domNode.setAttribute("aria-hidden","true"),n.domNode.setClassName("view-rulers"),n._renderedRulers=[],n._rulers=n._context.configuration.editor.viewInfo.rulers,n._typicalHalfwidthCharacterWidth=n._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,n}return jp(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return!!(e.viewInfo||e.layoutInfo||e.fontInfo)&&(this._rulers=this._context.configuration.editor.viewInfo.rulers,this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,!0)},t.prototype.onScrollChanged=function(e){return e.scrollHeightChanged},t.prototype.prepareRender=function(e){},t.prototype._ensureRulersCount=function(){var e=this._renderedRulers.length,t=this._rulers.length;if(e!==t)if(e0;)(o=Ec(document.createElement("div"))).setClassName("view-ruler"),o.setWidth(n),this.domNode.appendChild(o),this._renderedRulers.push(o),i--;else for(var r=e-t;r>0;){var o=this._renderedRulers.pop();this.domNode.removeChild(o),r--}},t.prototype.render=function(e){this._ensureRulersCount();for(var t=0,n=this._rulers.length;t0;return this._shouldShow!==e&&(this._shouldShow=e,!0)},t.prototype.getDomNode=function(){return this._domNode},t.prototype._updateWidth=function(){var e,t=this._context.configuration.editor.layoutInfo;return e=0===t.renderMinimap||t.minimapWidth>0&&0===t.minimapLeft?t.width:t.width-t.minimapWidth-t.verticalScrollbarWidth,this._width!==e&&(this._width=e,!0)},t.prototype.onConfigurationChanged=function(e){var t=!1;return e.viewInfo&&(this._useShadows=this._context.configuration.editor.viewInfo.scrollbar.useShadows),e.layoutInfo&&(t=this._updateWidth()),this._updateShouldShow()||t},t.prototype.onScrollChanged=function(e){return this._scrollTop=e.scrollTop,this._updateShouldShow()},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this._domNode.setWidth(this._width),this._domNode.setClassName(this._shouldShow?"scroll-decoration":"")},t}(zc);Ac(function(e,t){var n=e.getColor(vg);n&&t.addRule(".monaco-editor .scroll-decoration { box-shadow: "+n+" 0 6px 6px -6px inset; }")}),n(43);var Vp=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),qp=function(e){this.left=e.left,this.width=e.width,this.startStyle=null,this.endStyle=null},Yp=function(e,t){this.lineNumber=e,this.ranges=t};function Hp(e){return new qp(e)}function Zp(e){return new Yp(e.lineNumber,e.ranges.map(Hp))}var Qp=Va,Xp=function(e){function t(t){var n=e.call(this)||this;return n._previousFrameVisibleRangesWithStyle=[],n._context=t,n._lineHeight=n._context.configuration.editor.lineHeight,n._roundedSelection=n._context.configuration.editor.viewInfo.roundedSelection,n._typicalHalfwidthCharacterWidth=n._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,n._selections=[],n._renderResult=null,n._context.addEventHandler(n),n}return Vp(t,e),t.prototype.dispose=function(){this._context.removeEventHandler(this),this._context=null,this._selections=null,this._renderResult=null,e.prototype.dispose.call(this)},t.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.viewInfo&&(this._roundedSelection=this._context.configuration.editor.viewInfo.roundedSelection),e.fontInfo&&(this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth),!0},t.prototype.onCursorStateChanged=function(e){return this._selections=e.selections.slice(0),!0},t.prototype.onDecorationsChanged=function(e){return!0},t.prototype.onFlushed=function(e){return!0},t.prototype.onLinesChanged=function(e){return!0},t.prototype.onLinesDeleted=function(e){return!0},t.prototype.onLinesInserted=function(e){return!0},t.prototype.onScrollChanged=function(e){return e.scrollTopChanged},t.prototype.onZonesChanged=function(e){return!0},t.prototype._visibleRangesHaveGaps=function(e){for(var t=0,n=e.length;t1)return!0;return!1},t.prototype._enrichVisibleRangesWithStyle=function(e,t,n){var i=this._typicalHalfwidthCharacterWidth/4,r=null,o=null;if(n&&n.length>0&&t.length>0){var s=t[0].lineNumber;if(s===e.startLineNumber)for(var a=0;!r&&a=0;a--)n[a].lineNumber===l&&(o=n[a].ranges[0]);r&&!r.startStyle&&(r=null),o&&!o.startStyle&&(o=null)}a=0;for(var u=t.length;a0){var p=t[a-1].ranges[0].left,f=t[a-1].ranges[0].left+t[a-1].ranges[0].width;Jp(c-p)p&&(m.top=1),Jp(g-f)'},t.prototype._actualRenderOneSelection=function(e,n,i,r){for(var o=r.length>0&&r[0].ranges[0].startStyle,s=this._lineHeight.toString(),a=(this._lineHeight-1).toString(),l=r.length>0?r[0].lineNumber:0,u=r.length>0?r[r.length-1].lineNumber:0,d=0,c=r.length;d1,u)}}this._previousFrameVisibleRangesWithStyle=o,this._renderResult=t},t.prototype.render=function(e,t){if(!this._renderResult)return"";var n=t-e;return n<0||n>=this._renderResult.length?"":this._renderResult[n]},t.SELECTION_CLASS_NAME="selected-text",t.SELECTION_TOP_LEFT="top-left-radius",t.SELECTION_BOTTOM_LEFT="bottom-left-radius",t.SELECTION_TOP_RIGHT="top-right-radius",t.SELECTION_BOTTOM_RIGHT="bottom-right-radius",t.EDITOR_BACKGROUND_CLASS_NAME="monaco-editor-background",t.ROUNDED_PIECE_WIDTH=10,t}(Em);function Jp(e){return e<0?-e:e}Ac(function(e,t){var n=e.getColor(Kg);n&&t.addRule(".monaco-editor .focused .selected-text { background-color: "+n+"; }");var i=e.getColor(Pg);i&&t.addRule(".monaco-editor .selected-text { background-color: "+i+"; }");var r=e.getColor(Ng);r&&t.addRule(".monaco-editor .view-line span.inline-selected-text { color: "+r+"; }")}),n(45);var ef=function(e,t,n,i,r,o){this.top=e,this.left=t,this.width=n,this.height=i,this.textContent=r,this.textContentClassName=o},tf=function(){function e(e){this._context=e,this._cursorStyle=this._context.configuration.editor.viewInfo.cursorStyle,this._lineHeight=this._context.configuration.editor.lineHeight,this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth,this._lineCursorWidth=Math.min(this._context.configuration.editor.viewInfo.cursorWidth,this._typicalHalfwidthCharacterWidth),this._isVisible=!0,this._domNode=Ec(document.createElement("div")),this._domNode.setClassName("cursor"),this._domNode.setHeight(this._lineHeight),this._domNode.setTop(0),this._domNode.setLeft(0),nd.applyFontInfo(this._domNode,this._context.configuration.editor.fontInfo),this._domNode.setDisplay("none"),this.updatePosition(new o(1,1)),this._lastRenderedContent="",this._renderData=null}return e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return this._position},e.prototype.show=function(){this._isVisible||(this._domNode.setVisibility("inherit"),this._isVisible=!0)},e.prototype.hide=function(){this._isVisible&&(this._domNode.setVisibility("hidden"),this._isVisible=!1)},e.prototype.onConfigurationChanged=function(e){return e.lineHeight&&(this._lineHeight=this._context.configuration.editor.lineHeight),e.fontInfo&&(nd.applyFontInfo(this._domNode,this._context.configuration.editor.fontInfo),this._typicalHalfwidthCharacterWidth=this._context.configuration.editor.fontInfo.typicalHalfwidthCharacterWidth),e.viewInfo&&(this._cursorStyle=this._context.configuration.editor.viewInfo.cursorStyle,this._lineCursorWidth=Math.min(this._context.configuration.editor.viewInfo.cursorWidth,this._typicalHalfwidthCharacterWidth)),!0},e.prototype.onCursorPositionChanged=function(e){return this.updatePosition(e),!0},e.prototype._prepareRender=function(e){var t="",n="";if(this._cursorStyle===Br.Line||this._cursorStyle===Br.LineThin){var i,r=e.visibleRangeForPosition(this._position);if(!r)return null;this._cursorStyle===Br.Line?(i=uu(this._lineCursorWidth>0?this._lineCursorWidth:2))>2&&(t=this._context.model.getLineContent(this._position.lineNumber).charAt(this._position.column-1)):i=uu(1);var o=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta;return new ef(o,r.left,i,this._lineHeight,t,n)}var a=e.linesVisibleRangesForRange(new s(this._position.lineNumber,this._position.column,this._position.lineNumber,this._position.column+1),!1);if(!a||0===a.length||0===a[0].ranges.length)return null;var l=a[0].ranges[0],u=l.width<1?this._typicalHalfwidthCharacterWidth:l.width;if(this._cursorStyle===Br.Block){var d=this._context.model.getViewLineData(this._position.lineNumber);t=d.content.charAt(this._position.column-1),k(d.content.charCodeAt(this._position.column-1))&&(t+=d.content.charAt(this._position.column));var c=d.tokens.findTokenIndexAtOffset(this._position.column-1);n=d.tokens.getClassName(c)}var g=e.getVerticalOffsetForLineNumber(this._position.lineNumber)-e.bigNumbersDelta,m=this._lineHeight;return this._cursorStyle!==Br.Underline&&this._cursorStyle!==Br.UnderlineThin||(g+=this._lineHeight-2,m=2),new ef(g,l.left,u,m,t,n)},e.prototype.prepareRender=function(e){this._renderData=this._prepareRender(e)},e.prototype.render=function(e){return this._renderData?(this._lastRenderedContent!==this._renderData.textContent&&(this._lastRenderedContent=this._renderData.textContent,this._domNode.domNode.textContent=this._lastRenderedContent),this._domNode.setClassName("cursor "+this._renderData.textContentClassName),this._domNode.setDisplay("block"),this._domNode.setTop(this._renderData.top),this._domNode.setLeft(this._renderData.left),this._domNode.setWidth(this._renderData.width),this._domNode.setLineHeight(this._renderData.height),this._domNode.setHeight(this._renderData.height),{domNode:this._domNode.domNode,position:this._position,contentLeft:this._renderData.left,height:this._renderData.height,width:2}):(this._domNode.setDisplay("none"),null)},e.prototype.updatePosition=function(e){this._position=e},e}(),nf=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),rf=function(e){function t(t){var n=e.call(this,t)||this;return n._readOnly=n._context.configuration.editor.readOnly,n._cursorBlinking=n._context.configuration.editor.viewInfo.cursorBlinking,n._cursorStyle=n._context.configuration.editor.viewInfo.cursorStyle,n._selectionIsEmpty=!0,n._primaryCursor=new tf(n._context),n._secondaryCursors=[],n._renderData=[],n._domNode=Ec(document.createElement("div")),n._domNode.setAttribute("role","presentation"),n._domNode.setAttribute("aria-hidden","true"),n._updateDomClassName(),n._domNode.appendChild(n._primaryCursor.getDomNode()),n._startCursorBlinkAnimation=new La,n._cursorFlatBlinkInterval=new Ma,n._blinkingEnabled=!1,n._editorHasFocus=!1,n._updateBlinking(),n}return nf(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this._startCursorBlinkAnimation.dispose(),this._cursorFlatBlinkInterval.dispose()},t.prototype.getDomNode=function(){return this._domNode},t.prototype.onConfigurationChanged=function(e){e.readOnly&&(this._readOnly=this._context.configuration.editor.readOnly),e.viewInfo&&(this._cursorBlinking=this._context.configuration.editor.viewInfo.cursorBlinking,this._cursorStyle=this._context.configuration.editor.viewInfo.cursorStyle),this._primaryCursor.onConfigurationChanged(e),this._updateBlinking(),e.viewInfo&&this._updateDomClassName();for(var t=0,n=this._secondaryCursors.length;tt.length){var o=this._secondaryCursors.length-t.length;for(i=0;i140)n._setDesiredScrollPositionNow(o.getScrollPosition());else{var a=n._sliderMousePosition(e)-i;n._setDesiredScrollPositionNow(o.getDesiredScrollPositionFromDelta(a))}},function(){n.slider.toggleClassName("active",!1),n._host.onDragEnd(),t()}),this._host.onDragStart()},t.prototype._setDesiredScrollPositionNow=function(e){var t={};this.writeScrollPosition(t,e),this._scrollable.setScrollPositionNow(t)},t}(mf),Cf=function(){function e(e,t,n){this._scrollbarSize=Math.round(t),this._oppositeScrollbarSize=Math.round(n),this._arrowSize=Math.round(e),this._visibleSize=0,this._scrollSize=0,this._scrollPosition=0,this._computedAvailableSize=0,this._computedIsNeeded=!1,this._computedSliderSize=0,this._computedSliderRatio=0,this._computedSliderPosition=0,this._refreshComputedValues()}return e.prototype.clone=function(){var t=new e(this._arrowSize,this._scrollbarSize,this._oppositeScrollbarSize);return t.setVisibleSize(this._visibleSize),t.setScrollSize(this._scrollSize),t.setScrollPosition(this._scrollPosition),t},e.prototype.setVisibleSize=function(e){var t=Math.round(e);return this._visibleSize!==t&&(this._visibleSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollSize=function(e){var t=Math.round(e);return this._scrollSize!==t&&(this._scrollSize=t,this._refreshComputedValues(),!0)},e.prototype.setScrollPosition=function(e){var t=Math.round(e);return this._scrollPosition!==t&&(this._scrollPosition=t,this._refreshComputedValues(),!0)},e._computeValues=function(e,t,n,i,r){var o=Math.max(0,n-e),s=Math.max(0,o-2*t),a=i>0&&i>n;if(!a)return{computedAvailableSize:Math.round(o),computedIsNeeded:a,computedSliderSize:Math.round(s),computedSliderRatio:0,computedSliderPosition:0};var l=Math.round(Math.max(20,Math.floor(n*s/i))),u=(s-l)/(i-n),d=r*u;return{computedAvailableSize:Math.round(o),computedIsNeeded:a,computedSliderSize:Math.round(l),computedSliderRatio:u,computedSliderPosition:Math.round(d)}},e.prototype._refreshComputedValues=function(){var t=e._computeValues(this._oppositeScrollbarSize,this._arrowSize,this._visibleSize,this._scrollSize,this._scrollPosition);this._computedAvailableSize=t.computedAvailableSize,this._computedIsNeeded=t.computedIsNeeded,this._computedSliderSize=t.computedSliderSize,this._computedSliderRatio=t.computedSliderRatio,this._computedSliderPosition=t.computedSliderPosition},e.prototype.getArrowSize=function(){return this._arrowSize},e.prototype.getScrollPosition=function(){return this._scrollPosition},e.prototype.getRectangleLargeSize=function(){return this._computedAvailableSize},e.prototype.getRectangleSmallSize=function(){return this._scrollbarSize},e.prototype.isNeeded=function(){return this._computedIsNeeded},e.prototype.getSliderSize=function(){return this._computedSliderSize},e.prototype.getSliderPosition=function(){return this._computedSliderPosition},e.prototype.getDesiredScrollPositionFromOffset=function(e){if(!this._computedIsNeeded)return 0;var t=e-this._arrowSize-this._computedSliderSize/2;return Math.round(t/this._computedSliderRatio)},e.prototype.getDesiredScrollPositionFromDelta=function(e){if(!this._computedIsNeeded)return 0;var t=this._computedSliderPosition+e;return Math.round(t/this._computedSliderRatio)},e}(),_f=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),vf=function(e){function t(t,n,i){var r=e.call(this,{lazyRender:n.lazyRender,host:i,scrollbarState:new Cf(n.horizontalHasArrows?n.arrowSize:0,n.horizontal===cr.Hidden?0:n.horizontalScrollbarSize,n.vertical===cr.Hidden?0:n.verticalScrollbarSize),visibility:n.horizontal,extraScrollbarClassName:"horizontal",scrollable:t})||this;if(n.horizontalHasArrows){var o=(n.arrowSize-pf)/2,s=(n.horizontalScrollbarSize-pf)/2;r._createArrow({className:"left-arrow",top:s,left:o,bottom:void 0,right:void 0,bgWidth:n.arrowSize,bgHeight:n.horizontalScrollbarSize,onActivate:function(){return r._host.onMouseWheel(new gl(null,1,0))}}),r._createArrow({className:"right-arrow",top:s,left:void 0,bottom:void 0,right:o,bgWidth:n.arrowSize,bgHeight:n.horizontalScrollbarSize,onActivate:function(){return r._host.onMouseWheel(new gl(null,-1,0))}})}return r._createSlider(Math.floor((n.horizontalScrollbarSize-n.horizontalSliderSize)/2),0,null,n.horizontalSliderSize),r}return _f(t,e),t.prototype._updateSlider=function(e,t){this.slider.setWidth(e),this.slider.setLeft(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(e),this.domNode.setHeight(t),this.domNode.setLeft(0),this.domNode.setBottom(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollWidth)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollLeft)||this._shouldRender,this._shouldRender=this._onElementSize(e.width)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return e},t.prototype._sliderMousePosition=function(e){return e.posx},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posy},t.prototype.writeScrollPosition=function(e,t){e.scrollLeft=t},t}(If),Tf=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),xf=function(e){function t(t,n,i){var r=e.call(this,{lazyRender:n.lazyRender,host:i,scrollbarState:new Cf(n.verticalHasArrows?n.arrowSize:0,n.vertical===cr.Hidden?0:n.verticalScrollbarSize,0),visibility:n.vertical,extraScrollbarClassName:"vertical",scrollable:t})||this;if(n.verticalHasArrows){var o=(n.arrowSize-pf)/2,s=(n.verticalScrollbarSize-pf)/2;r._createArrow({className:"up-arrow",top:o,left:s,bottom:void 0,right:void 0,bgWidth:n.verticalScrollbarSize,bgHeight:n.arrowSize,onActivate:function(){return r._host.onMouseWheel(new gl(null,0,1))}}),r._createArrow({className:"down-arrow",top:void 0,left:s,bottom:o,right:void 0,bgWidth:n.verticalScrollbarSize,bgHeight:n.arrowSize,onActivate:function(){return r._host.onMouseWheel(new gl(null,0,-1))}})}return r._createSlider(0,Math.floor((n.verticalScrollbarSize-n.verticalSliderSize)/2),n.verticalSliderSize,null),r}return Tf(t,e),t.prototype._updateSlider=function(e,t){this.slider.setHeight(e),this.slider.setTop(t)},t.prototype._renderDomNode=function(e,t){this.domNode.setWidth(t),this.domNode.setHeight(e),this.domNode.setRight(0),this.domNode.setTop(0)},t.prototype.onDidScroll=function(e){return this._shouldRender=this._onElementScrollSize(e.scrollHeight)||this._shouldRender,this._shouldRender=this._onElementScrollPosition(e.scrollTop)||this._shouldRender,this._shouldRender=this._onElementSize(e.height)||this._shouldRender,this._shouldRender},t.prototype._mouseDownRelativePosition=function(e,t){return t},t.prototype._sliderMousePosition=function(e){return e.posy},t.prototype._sliderOrthogonalMousePosition=function(e){return e.posx},t.prototype.writeScrollPosition=function(e,t){e.scrollTop=t},t}(If),wf=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Bf=function(e,t,n){this.timestamp=e,this.deltaX=t,this.deltaY=n,this.score=0},Df=function(){function e(){this._capacity=5,this._memory=[],this._front=-1,this._rear=-1}return e.prototype.isPhysicalMouseWheel=function(){if(-1===this._front&&-1===this._rear)return!1;for(var e=1,t=0,n=1,i=this._rear;;){var r=i===this._front?e:Math.pow(2,-n);if(e-=r,t+=this._memory[i].score*r,i===this._front)break;i=(this._capacity+i-1)%this._capacity,n++}return t<=.5},e.prototype.accept=function(e,t,n){var i=new Bf(e,t,n);i.score=this._computeScore(i),-1===this._front&&-1===this._rear?(this._memory[0]=i,this._front=0,this._rear=0):(this._rear=(this._rear+1)%this._capacity,this._rear===this._front&&(this._front=(this._front+1)%this._capacity),this._memory[this._rear]=i)},e.prototype._computeScore=function(e){if(Math.abs(e.deltaX)>0&&Math.abs(e.deltaY)>0)return 1;var t=.5;return-1===this._front&&-1===this._rear||this._memory[this._rear],(Math.abs(e.deltaX-Math.round(e.deltaX))>0||Math.abs(e.deltaY-Math.round(e.deltaY))>0)&&(t+=.25),Math.min(Math.max(t,0),1)},e.INSTANCE=new e,e}(),Af=function(e){function t(t,n,i){var r=e.call(this)||this;r._onScroll=r._register(new Ne),r.onScroll=r._onScroll.event,t.style.overflow="hidden",r._options=Nf(n),r._scrollable=i,r._register(r._scrollable.onScroll(function(e){r._onDidScroll(e),r._onScroll.fire(e)}));var o={onMouseWheel:function(e){return r._onMouseWheel(e)},onDragStart:function(){return r._onDragStart()},onDragEnd:function(){return r._onDragEnd()}};return r._verticalScrollbar=r._register(new xf(r._scrollable,r._options,o)),r._horizontalScrollbar=r._register(new vf(r._scrollable,r._options,o)),r._domNode=document.createElement("div"),r._domNode.className="monaco-scrollable-element "+r._options.className,r._domNode.setAttribute("role","presentation"),r._domNode.style.position="relative",r._domNode.style.overflow="hidden",r._domNode.appendChild(t),r._domNode.appendChild(r._horizontalScrollbar.domNode.domNode),r._domNode.appendChild(r._verticalScrollbar.domNode.domNode),r._options.useShadows&&(r._leftShadowDomNode=Ec(document.createElement("div")),r._leftShadowDomNode.setClassName("shadow"),r._domNode.appendChild(r._leftShadowDomNode.domNode),r._topShadowDomNode=Ec(document.createElement("div")),r._topShadowDomNode.setClassName("shadow"),r._domNode.appendChild(r._topShadowDomNode.domNode),r._topLeftShadowDomNode=Ec(document.createElement("div")),r._topLeftShadowDomNode.setClassName("shadow top-left-corner"),r._domNode.appendChild(r._topLeftShadowDomNode.domNode)),r._listenOnDomNode=r._options.listenOnDomNode||r._domNode,r._mouseWheelToDispose=[],r._setListeningToMouseWheel(r._options.handleMouseWheel),r.onmouseover(r._listenOnDomNode,function(e){return r._onMouseOver(e)}),r.onnonbubblingmouseout(r._listenOnDomNode,function(e){return r._onMouseOut(e)}),r._hideTimeout=r._register(new La),r._isDragging=!1,r._mouseIsOver=!1,r._shouldRender=!0,r._revealOnScroll=!0,r}return wf(t,e),t.prototype.dispose=function(){this._mouseWheelToDispose=xe(this._mouseWheelToDispose),e.prototype.dispose.call(this)},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getOverviewRulerLayoutInfo=function(){return{parent:this._domNode,insertBefore:this._verticalScrollbar.domNode.domNode}},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this._verticalScrollbar.delegateMouseDown(e)},t.prototype.getScrollDimensions=function(){return this._scrollable.getScrollDimensions()},t.prototype.setScrollDimensions=function(e){this._scrollable.setScrollDimensions(e)},t.prototype.updateClassName=function(e){this._options.className=e,X.d&&(this._options.className+=" mac"),this._domNode.className="monaco-scrollable-element "+this._options.className},t.prototype.updateOptions=function(e){var t=Nf(e);this._options.handleMouseWheel=t.handleMouseWheel,this._options.mouseWheelScrollSensitivity=t.mouseWheelScrollSensitivity,this._setListeningToMouseWheel(this._options.handleMouseWheel),this._options.lazyRender||this._render()},t.prototype._setListeningToMouseWheel=function(e){var t=this;if(this._mouseWheelToDispose.length>0!==e&&(this._mouseWheelToDispose=xe(this._mouseWheelToDispose),e)){var n=function(e){var n=new gl(e);t._onMouseWheel(n)};this._mouseWheelToDispose.push(Tl(this._listenOnDomNode,"mousewheel",n)),this._mouseWheelToDispose.push(Tl(this._listenOnDomNode,"DOMMouseScroll",n))}},t.prototype._onMouseWheel=function(e){var t,n=Df.INSTANCE;if(n.accept(Date.now(),e.deltaX,e.deltaY),e.deltaY||e.deltaX){var i=e.deltaY*this._options.mouseWheelScrollSensitivity,r=e.deltaX*this._options.mouseWheelScrollSensitivity;this._options.flipAxes&&(i=(t=[r,i])[0],r=t[1]);var o=!X.d&&e.browserEvent&&e.browserEvent.shiftKey;!this._options.scrollYToX&&!o||r||(r=i,i=0);var s=this._scrollable.getFutureScrollPosition(),a={};if(i){var l=s.scrollTop-50*i;this._verticalScrollbar.writeScrollPosition(a,l)}if(r){var u=s.scrollLeft-50*r;this._horizontalScrollbar.writeScrollPosition(a,u)}a=this._scrollable.validateScrollPosition(a),(s.scrollLeft!==a.scrollLeft||s.scrollTop!==a.scrollTop)&&(this._options.mouseWheelSmoothScroll&&n.isPhysicalMouseWheel()?this._scrollable.setScrollPositionSmooth(a):this._scrollable.setScrollPositionNow(a),this._shouldRender=!0)}(this._options.alwaysConsumeMouseWheel||this._shouldRender)&&(e.preventDefault(),e.stopPropagation())},t.prototype._onDidScroll=function(e){this._shouldRender=this._horizontalScrollbar.onDidScroll(e)||this._shouldRender,this._shouldRender=this._verticalScrollbar.onDidScroll(e)||this._shouldRender,this._options.useShadows&&(this._shouldRender=!0),this._revealOnScroll&&this._reveal(),this._options.lazyRender||this._render()},t.prototype.renderNow=function(){if(!this._options.lazyRender)throw new Error("Please use `lazyRender` together with `renderNow`!");this._render()},t.prototype._render=function(){if(this._shouldRender&&(this._shouldRender=!1,this._horizontalScrollbar.render(),this._verticalScrollbar.render(),this._options.useShadows)){var e=this._scrollable.getCurrentScrollPosition(),t=e.scrollTop>0,n=e.scrollLeft>0;this._leftShadowDomNode.setClassName("shadow"+(n?" left":"")),this._topShadowDomNode.setClassName("shadow"+(t?" top":"")),this._topLeftShadowDomNode.setClassName("shadow top-left-corner"+(t?" top":"")+(n?" left":""))}},t.prototype._onDragStart=function(){this._isDragging=!0,this._reveal()},t.prototype._onDragEnd=function(){this._isDragging=!1,this._hide()},t.prototype._onMouseOut=function(e){this._mouseIsOver=!1,this._hide()},t.prototype._onMouseOver=function(e){this._mouseIsOver=!0,this._reveal()},t.prototype._reveal=function(){this._verticalScrollbar.beginReveal(),this._horizontalScrollbar.beginReveal(),this._scheduleHide()},t.prototype._hide=function(){this._mouseIsOver||this._isDragging||(this._verticalScrollbar.beginHide(),this._horizontalScrollbar.beginHide())},t.prototype._scheduleHide=function(){var e=this;this._mouseIsOver||this._isDragging||this._hideTimeout.cancelAndSet(function(){return e._hide()},500)},t}(mf),Rf=function(e){function t(t,n){var i;(n=n||{}).mouseWheelSmoothScroll=!1;var r=new hr(0,function(e){return Dl(e)});return(i=e.call(this,t,n,r)||this)._register(r),i}return wf(t,e),t.prototype.setScrollPosition=function(e){this._scrollable.setScrollPositionNow(e)},t.prototype.getScrollPosition=function(){return this._scrollable.getCurrentScrollPosition()},t}(Af),Ef=function(e){function t(t,n,i){return e.call(this,t,n,i)||this}return wf(t,e),t}(Af),Kf=function(e){function t(t,n){var i=e.call(this,t,n)||this;return i._element=t,i.onScroll(function(e){e.scrollTopChanged&&(i._element.scrollTop=e.scrollTop),e.scrollLeftChanged&&(i._element.scrollLeft=e.scrollLeft)}),i.scanDomNode(),i}return wf(t,e),t.prototype.scanDomNode=function(){this.setScrollDimensions({width:this._element.clientWidth,scrollWidth:this._element.scrollWidth,height:this._element.clientHeight,scrollHeight:this._element.scrollHeight}),this.setScrollPosition({scrollLeft:this._element.scrollLeft,scrollTop:this._element.scrollTop})},t}(Rf);function Nf(e){var t={lazyRender:void 0!==e.lazyRender&&e.lazyRender,className:void 0!==e.className?e.className:"",useShadows:void 0===e.useShadows||e.useShadows,handleMouseWheel:void 0===e.handleMouseWheel||e.handleMouseWheel,flipAxes:void 0!==e.flipAxes&&e.flipAxes,alwaysConsumeMouseWheel:void 0!==e.alwaysConsumeMouseWheel&&e.alwaysConsumeMouseWheel,scrollYToX:void 0!==e.scrollYToX&&e.scrollYToX,mouseWheelScrollSensitivity:void 0!==e.mouseWheelScrollSensitivity?e.mouseWheelScrollSensitivity:1,mouseWheelSmoothScroll:void 0===e.mouseWheelSmoothScroll||e.mouseWheelSmoothScroll,arrowSize:void 0!==e.arrowSize?e.arrowSize:11,listenOnDomNode:void 0!==e.listenOnDomNode?e.listenOnDomNode:null,horizontal:void 0!==e.horizontal?e.horizontal:cr.Auto,horizontalScrollbarSize:void 0!==e.horizontalScrollbarSize?e.horizontalScrollbarSize:10,horizontalSliderSize:void 0!==e.horizontalSliderSize?e.horizontalSliderSize:0,horizontalHasArrows:void 0!==e.horizontalHasArrows&&e.horizontalHasArrows,vertical:void 0!==e.vertical?e.vertical:cr.Auto,verticalScrollbarSize:void 0!==e.verticalScrollbarSize?e.verticalScrollbarSize:10,verticalHasArrows:void 0!==e.verticalHasArrows&&e.verticalHasArrows,verticalSliderSize:void 0!==e.verticalSliderSize?e.verticalSliderSize:0};return t.horizontalSliderSize=void 0!==e.horizontalSliderSize?e.horizontalSliderSize:t.horizontalScrollbarSize,t.verticalSliderSize=void 0!==e.verticalSliderSize?e.verticalSliderSize:t.verticalScrollbarSize,X.d&&(t.className+=" mac"),t}var Pf=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Of=function(e){function t(t,n,i,r){var o=e.call(this,t)||this,s=o._context.configuration.editor.viewInfo.scrollbar,a={listenOnDomNode:i.domNode,className:"editor-scrollable "+wc(t.theme.type),useShadows:!1,lazyRender:!0,vertical:s.vertical,horizontal:s.horizontal,verticalHasArrows:s.verticalHasArrows,horizontalHasArrows:s.horizontalHasArrows,verticalScrollbarSize:s.verticalScrollbarSize,verticalSliderSize:s.verticalSliderSize,horizontalScrollbarSize:s.horizontalScrollbarSize,horizontalSliderSize:s.horizontalSliderSize,handleMouseWheel:s.handleMouseWheel,arrowSize:s.arrowSize,mouseWheelScrollSensitivity:s.mouseWheelScrollSensitivity};o.scrollbar=o._register(new Ef(n.domNode,a,o._context.viewLayout.scrollable)),jc.write(o.scrollbar.getDomNode(),5),o.scrollbarDomNode=Ec(o.scrollbar.getDomNode()),o.scrollbarDomNode.setPosition("absolute"),o._setLayout();var l=function(e,t,n){var i={};if(t){var r=e.scrollTop;r&&(i.scrollTop=o._context.viewLayout.getCurrentScrollTop()+r,e.scrollTop=0)}if(n){var s=e.scrollLeft;s&&(i.scrollLeft=o._context.viewLayout.getCurrentScrollLeft()+s,e.scrollLeft=0)}o._context.viewLayout.setScrollPositionNow(i)};return o._register(Tl(i.domNode,"scroll",function(e){return l(i.domNode,!0,!0)})),o._register(Tl(n.domNode,"scroll",function(e){return l(n.domNode,!0,!1)})),o._register(Tl(r.domNode,"scroll",function(e){return l(r.domNode,!0,!1)})),o._register(Tl(o.scrollbarDomNode.domNode,"scroll",function(e){return l(o.scrollbarDomNode.domNode,!0,!1)})),o}return Pf(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype._setLayout=function(){var e=this._context.configuration.editor.layoutInfo;this.scrollbarDomNode.setLeft(e.contentLeft),"right"===this._context.configuration.editor.viewInfo.minimap.side?this.scrollbarDomNode.setWidth(e.contentWidth+e.minimapWidth):this.scrollbarDomNode.setWidth(e.contentWidth),this.scrollbarDomNode.setHeight(e.contentHeight)},t.prototype.getOverviewRulerLayoutInfo=function(){return this.scrollbar.getOverviewRulerLayoutInfo()},t.prototype.getDomNode=function(){return this.scrollbarDomNode},t.prototype.delegateVerticalScrollbarMouseDown=function(e){this.scrollbar.delegateVerticalScrollbarMouseDown(e)},t.prototype.onConfigurationChanged=function(e){if(e.viewInfo){var t=this._context.configuration.editor,n={handleMouseWheel:t.viewInfo.scrollbar.handleMouseWheel,mouseWheelScrollSensitivity:t.viewInfo.scrollbar.mouseWheelScrollSensitivity};this.scrollbar.updateOptions(n)}return e.layoutInfo&&this._setLayout(),!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onThemeChanged=function(e){return this.scrollbar.updateClassName("editor-scrollable "+wc(this._context.theme.type)),!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){this.scrollbar.renderNow()},t}(zc);function $f(e){for(var t=new Uint8ClampedArray(e.length),n=0,i=e.length;n=s)return new e(a,l,S,b,d,I=1,s);var I=Math.max(1,Math.floor(n-b*g/m));return u&&u.scrollHeight===l&&(u.scrollTop>a&&(I=Math.min(I,u.startLineNumber)),u.scrollTopGf)n._context.viewLayout.setScrollPositionNow({scrollTop:r.scrollTop});else{var s=e.posy-t;n._context.viewLayout.setScrollPositionNow({scrollTop:r.getDesiredScrollTopFromDelta(s)})}},function(){n._slider.toggleClassName("active",!1)})}}),n}return zf(t,e),t.prototype.dispose=function(){this._mouseDownListener.dispose(),this._sliderMouseMoveMonitor.dispose(),this._sliderMouseDownListener.dispose(),e.prototype.dispose.call(this)},t.prototype._getMinimapDomNodeClassName=function(){return"always"===this._options.showSlider?"minimap slider-always":"minimap slider-mouseover"},t.prototype.getDomNode=function(){return this._domNode},t.prototype._applyLayout=function(){this._domNode.setLeft(this._options.minimapLeft),this._domNode.setWidth(this._options.minimapWidth),this._domNode.setHeight(this._options.minimapHeight),this._shadow.setHeight(this._options.minimapHeight),this._canvas.setWidth(this._options.canvasOuterWidth),this._canvas.setHeight(this._options.canvasOuterHeight),this._canvas.domNode.width=this._options.canvasInnerWidth,this._canvas.domNode.height=this._options.canvasInnerHeight,this._slider.setWidth(this._options.minimapWidth)},t.prototype._getBuffer=function(){return this._buffers||(this._buffers=new Hf(this._canvas.domNode.getContext("2d"),this._options.canvasInnerWidth,this._options.canvasInnerHeight,this._tokensColorTracker.getColor(2))),this._buffers.getBuffer()},t.prototype._onOptionsMaybeChanged=function(){var e=new Wf(this._context.configuration);return!this._options.equals(e)&&(this._options=e,this._lastRenderData=null,this._buffers=null,this._applyLayout(),this._domNode.setClassName(this._getMinimapDomNodeClassName()),!0)},t.prototype.onConfigurationChanged=function(e){return this._onOptionsMaybeChanged()},t.prototype.onFlushed=function(e){return this._lastRenderData=null,!0},t.prototype.onLinesChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onLinesChanged(e)},t.prototype.onLinesDeleted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesDeleted(e),!0},t.prototype.onLinesInserted=function(e){return this._lastRenderData&&this._lastRenderData.onLinesInserted(e),!0},t.prototype.onScrollChanged=function(e){return!0},t.prototype.onTokensChanged=function(e){return!!this._lastRenderData&&this._lastRenderData.onTokensChanged(e)},t.prototype.onTokensColorsChanged=function(e){return this._lastRenderData=null,this._buffers=null,!0},t.prototype.onZonesChanged=function(e){return this._lastRenderData=null,!0},t.prototype.prepareRender=function(e){},t.prototype.render=function(e){if(0===this._options.renderMinimap)return this._shadow.setClassName("minimap-shadow-hidden"),this._sliderHorizontal.setWidth(0),void this._sliderHorizontal.setHeight(0);e.scrollLeft+e.viewportWidth>=e.scrollWidth?this._shadow.setClassName("minimap-shadow-hidden"):this._shadow.setClassName("minimap-shadow-visible");var t=Vf.create(this._options,e.visibleRange.startLineNumber,e.visibleRange.endLineNumber,e.viewportHeight,e.viewportData.whitespaceViewportData.length>0,this._context.model.getLineCount(),e.scrollTop,e.scrollHeight,this._lastRenderData?this._lastRenderData.renderedLayout:null);this._slider.setTop(t.sliderTop),this._slider.setHeight(t.sliderHeight);var n=e.scrollLeft/this._options.typicalHalfwidthCharacterWidth,i=Math.min(this._options.minimapWidth,Math.round(n*Uf(this._options.renderMinimap)/this._options.pixelRatio));this._sliderHorizontal.setLeft(i),this._sliderHorizontal.setWidth(this._options.minimapWidth-i),this._sliderHorizontal.setTop(0),this._sliderHorizontal.setHeight(t.sliderHeight),this._lastRenderData=this.renderLines(t)},t.prototype.renderLines=function(e){var n=this._options.renderMinimap,i=e.startLineNumber,r=e.endLineNumber,o=jf(n);if(this._lastRenderData&&this._lastRenderData.linesEquals(e)){var s=this._lastRenderData._get();return new Yf(e,s.imageData,s.lines)}for(var a=this._getBuffer(),l=t._renderUntouchedLines(a,i,r,o,this._lastRenderData),u=l[0],d=l[1],c=l[2],g=this._context.model.getMinimapLinesRenderingData(i,r,c),m=g.tabSize,h=this._tokensColorTracker.getColor(2),p=this._tokensColorTracker.backgroundIsLight(),f=0,y=[],S=0,b=r-i+1;S=0&&xg)return;var C=u.charCodeAt(h);if(9===C){var _=a-(h+p)%a;p+=_-1,m+=_*c}else if(32===C)m+=c;else for(var v=V(C)?2:1,T=0;Tg)return}},t}(zc);Ac(function(e,t){var n=e.getColor(Tg);if(n){var i=n.transparent(.5);t.addRule(".monaco-editor .minimap-slider, .monaco-editor .minimap-slider .minimap-slider-horizontal { background: "+i+"; }")}var r=e.getColor(xg);if(r){var o=r.transparent(.5);t.addRule(".monaco-editor .minimap-slider:hover, .monaco-editor .minimap-slider:hover .minimap-slider-horizontal { background: "+o+"; }")}var s=e.getColor(wg);if(s){var a=s.transparent(.5);t.addRule(".monaco-editor .minimap-slider.active, .monaco-editor .minimap-slider.active .minimap-slider-horizontal { background: "+a+"; }")}var l=e.getColor(vg);l&&t.addRule(".monaco-editor .minimap-shadow-visible { box-shadow: "+l+" -6px 0 6px -6px inset; }")});var Qf=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Xf=function(e){function t(t,n,i,r,o,s){var a=e.call(this)||this;a._cursor=o,a._renderAnimationFrame=null,a.outgoingEvents=new uf(r);var l=new Xh(n,r,s,a.outgoingEvents,t);return a.eventDispatcher=new Jh(function(e){return a._renderOnce(e)}),a.eventDispatcher.addEventHandler(a),a._context=new af(n,i.getTheme(),r,a.eventDispatcher),a._register(i.onThemeChange(function(e){a._context.theme=e,a.eventDispatcher.emit(new Sd),a.render(!0,!1)})),a.viewParts=[],a._textAreaHandler=new Lm(a._context,l,a.createTextAreaHandlerHelper()),a.viewParts.push(a._textAreaHandler),a.createViewParts(),a._setLayout(),a.pointerHandler=new Qh(a._context,l,a.createPointerHandlerHelper()),a._register(r.addEventListener(function(e){a.eventDispatcher.emitMany(e)})),a._register(a._cursor.addEventListener(function(e){a.eventDispatcher.emitMany(e)})),a}return Qf(t,e),t.prototype.createViewParts=function(){this.linesContent=Ec(document.createElement("div")),this.linesContent.setClassName("lines-content monaco-editor-background"),this.linesContent.setPosition("absolute"),this.domNode=Ec(document.createElement("div")),this.domNode.setClassName(this.getEditorClassName()),this.overflowGuardContainer=Ec(document.createElement("div")),jc.write(this.overflowGuardContainer,3),this.overflowGuardContainer.setClassName("overflow-guard"),this._scrollbar=new Of(this._context,this.linesContent,this.domNode,this.overflowGuardContainer),this.viewParts.push(this._scrollbar),this.viewLines=new Bp(this._context,this.linesContent),this.viewZones=new sf(this._context),this.viewParts.push(this.viewZones);var e=new $p(this._context);this.viewParts.push(e);var t=new Wp(this._context);this.viewParts.push(t);var n=new sp(this._context);this.viewParts.push(n),n.addDynamicOverlay(new mp(this._context)),n.addDynamicOverlay(new Xp(this._context)),n.addDynamicOverlay(new vp(this._context)),n.addDynamicOverlay(new yp(this._context));var i=new ap(this._context);this.viewParts.push(i),i.addDynamicOverlay(new pp(this._context)),i.addDynamicOverlay(new Cp(this._context)),i.addDynamicOverlay(new Ep(this._context)),i.addDynamicOverlay(new Ap(this._context)),i.addDynamicOverlay(new Nm(this._context));var r=new Gc(this._context);r.getDomNode().appendChild(this.viewZones.marginDomNode),r.getDomNode().appendChild(i.getDomNode()),this.viewParts.push(r),this.contentWidgets=new dp(this._context,this.domNode),this.viewParts.push(this.contentWidgets),this.viewCursors=new rf(this._context),this.viewParts.push(this.viewCursors),this.overlayWidgets=new Np(this._context),this.viewParts.push(this.overlayWidgets);var o=new Up(this._context);this.viewParts.push(o);var s=new Zf(this._context);if(this.viewParts.push(s),e){var a=this._scrollbar.getOverviewRulerLayoutInfo();a.parent.insertBefore(e.getDomNode(),a.insertBefore)}this.linesContent.appendChild(n.getDomNode()),this.linesContent.appendChild(o.domNode),this.linesContent.appendChild(this.viewZones.domNode),this.linesContent.appendChild(this.viewLines.getDomNode()),this.linesContent.appendChild(this.contentWidgets.domNode),this.linesContent.appendChild(this.viewCursors.getDomNode()),this.overflowGuardContainer.appendChild(r.getDomNode()),this.overflowGuardContainer.appendChild(this._scrollbar.getDomNode()),this.overflowGuardContainer.appendChild(t.getDomNode()),this.overflowGuardContainer.appendChild(this._textAreaHandler.textArea),this.overflowGuardContainer.appendChild(this._textAreaHandler.textAreaCover),this.overflowGuardContainer.appendChild(this.overlayWidgets.getDomNode()),this.overflowGuardContainer.appendChild(s.getDomNode()),this.domNode.appendChild(this.overflowGuardContainer),this.domNode.appendChild(this.contentWidgets.overflowingContentWidgetsDomNode)},t.prototype._flushAccumulatedAndRenderNow=function(){this._renderNow()},t.prototype.createPointerHandlerHelper=function(){var e=this;return{viewDomNode:this.domNode.domNode,linesContentDomNode:this.linesContent.domNode,focusTextArea:function(){e.focus()},getLastViewCursorsRenderData:function(){return e.viewCursors.getLastRenderData()||[]},shouldSuppressMouseDownOnViewZone:function(t){return e.viewZones.shouldSuppressMouseDownOnViewZone(t)},shouldSuppressMouseDownOnWidget:function(t){return e.contentWidgets.shouldSuppressMouseDownOnWidget(t)},getPositionFromDOMInfo:function(t,n){return e._flushAccumulatedAndRenderNow(),e.viewLines.getPositionFromDOMInfo(t,n)},visibleRangeForPosition2:function(t,n){e._flushAccumulatedAndRenderNow();var i=e.viewLines.visibleRangesForRange2(new s(t,n,t,n));return i?i[0]:null},getLineWidth:function(t){return e._flushAccumulatedAndRenderNow(),e.viewLines.getLineWidth(t)}}},t.prototype.createTextAreaHandlerHelper=function(){var e=this;return{visibleRangeForPositionRelativeToEditor:function(t,n){e._flushAccumulatedAndRenderNow();var i=e.viewLines.visibleRangesForRange2(new s(t,n,t,n));return i?i[0]:null}}},t.prototype._setLayout=function(){var e=this._context.configuration.editor.layoutInfo;this.domNode.setWidth(e.width),this.domNode.setHeight(e.height),this.overflowGuardContainer.setWidth(e.width),this.overflowGuardContainer.setHeight(e.height),this.linesContent.setWidth(1e6),this.linesContent.setHeight(1e6)},t.prototype.getEditorClassName=function(){var e=this._textAreaHandler.isFocused()?" focused":"";return this._context.configuration.editor.editorClassName+" "+wc(this._context.theme.type)+e},t.prototype.onConfigurationChanged=function(e){return e.editorClassName&&this.domNode.setClassName(this.getEditorClassName()),e.layoutInfo&&this._setLayout(),!1},t.prototype.onFocusChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),this._context.model.setHasFocus(e.isFocused),e.isFocused?this.outgoingEvents.emitViewFocusGained():this.outgoingEvents.emitViewFocusLost(),!1},t.prototype.onScrollChanged=function(e){return this.outgoingEvents.emitScrollChanged(e),!1},t.prototype.onThemeChanged=function(e){return this.domNode.setClassName(this.getEditorClassName()),!1},t.prototype.dispose=function(){null!==this._renderAnimationFrame&&(this._renderAnimationFrame.dispose(),this._renderAnimationFrame=null),this.eventDispatcher.removeEventHandler(this),this.outgoingEvents.dispose(),this.pointerHandler.dispose(),this.viewLines.dispose();for(var t=0,n=this.viewParts.length;t=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([ny(3,Gt),ny(4,Us),ny(5,es),ny(6,Es),ny(7,_c),ny(8,Ic)],t)}(Ae),sy=function(e){function t(){var t=e.call(this)||this;return t._onDidChangeToTrue=t._register(new Ne),t.onDidChangeToTrue=t._onDidChangeToTrue.event,t._onDidChangeToFalse=t._register(new Ne),t.onDidChangeToFalse=t._onDidChangeToFalse.event,t._value=0,t}return ty(t,e),t.prototype.setValue=function(e){var t=e?2:1;this._value!==t&&(this._value=t,2===this._value?this._onDidChangeToTrue.fire():1===this._value&&this._onDidChangeToFalse.fire())},t}(Ae),ay=function(e){function t(t,n){var i=e.call(this)||this;return i._editor=t,n.createKey("editorId",t.getId()),i._editorFocus=na.focus.bindTo(n),i._textInputFocus=na.textInputFocus.bindTo(n),i._editorTextFocus=na.editorTextFocus.bindTo(n),i._editorTabMovesFocus=na.tabMovesFocus.bindTo(n),i._editorReadonly=na.readOnly.bindTo(n),i._hasMultipleSelections=na.hasMultipleSelections.bindTo(n),i._hasNonEmptySelection=na.hasNonEmptySelection.bindTo(n),i._canUndo=na.canUndo.bindTo(n),i._canRedo=na.canRedo.bindTo(n),i._register(i._editor.onDidChangeConfiguration(function(){return i._updateFromConfig()})),i._register(i._editor.onDidChangeCursorSelection(function(){return i._updateFromSelection()})),i._register(i._editor.onDidFocusEditorWidget(function(){return i._updateFromFocus()})),i._register(i._editor.onDidBlurEditorWidget(function(){return i._updateFromFocus()})),i._register(i._editor.onDidFocusEditorText(function(){return i._updateFromFocus()})),i._register(i._editor.onDidBlurEditorText(function(){return i._updateFromFocus()})),i._register(i._editor.onDidChangeModel(function(){return i._updateFromModel()})),i._register(i._editor.onDidChangeConfiguration(function(){return i._updateFromModel()})),i._updateFromConfig(),i._updateFromSelection(),i._updateFromFocus(),i._updateFromModel(),i}return ty(t,e),t.prototype._updateFromConfig=function(){var e=this._editor.getConfiguration();this._editorTabMovesFocus.set(e.tabFocusMode),this._editorReadonly.set(e.readOnly)},t.prototype._updateFromSelection=function(){var e=this._editor.getSelections();e?(this._hasMultipleSelections.set(e.length>1),this._hasNonEmptySelection.set(e.some(function(e){return!e.isEmpty()}))):(this._hasMultipleSelections.reset(),this._hasNonEmptySelection.reset())},t.prototype._updateFromFocus=function(){this._editorFocus.set(this._editor.hasWidgetFocus()&&!this._editor.isSimpleWidget),this._editorTextFocus.set(this._editor.hasTextFocus()&&!this._editor.isSimpleWidget),this._textInputFocus.set(this._editor.hasTextFocus())},t.prototype._updateFromModel=function(){var e=this._editor.getModel();this._canUndo.set(e&&e.canUndo()),this._canRedo.set(e&&e.canRedo())},t}(Ae),ly=function(e){function t(t,n){var i=e.call(this)||this;i._editor=t,i._langId=na.languageId.bindTo(n),i._hasCompletionItemProvider=na.hasCompletionItemProvider.bindTo(n),i._hasCodeActionsProvider=na.hasCodeActionsProvider.bindTo(n),i._hasCodeLensProvider=na.hasCodeLensProvider.bindTo(n),i._hasDefinitionProvider=na.hasDefinitionProvider.bindTo(n),i._hasImplementationProvider=na.hasImplementationProvider.bindTo(n),i._hasTypeDefinitionProvider=na.hasTypeDefinitionProvider.bindTo(n),i._hasHoverProvider=na.hasHoverProvider.bindTo(n),i._hasDocumentHighlightProvider=na.hasDocumentHighlightProvider.bindTo(n),i._hasDocumentSymbolProvider=na.hasDocumentSymbolProvider.bindTo(n),i._hasReferenceProvider=na.hasReferenceProvider.bindTo(n),i._hasRenameProvider=na.hasRenameProvider.bindTo(n),i._hasDocumentFormattingProvider=na.hasDocumentFormattingProvider.bindTo(n),i._hasDocumentSelectionFormattingProvider=na.hasDocumentSelectionFormattingProvider.bindTo(n),i._hasSignatureHelpProvider=na.hasSignatureHelpProvider.bindTo(n),i._isInWalkThrough=na.isInEmbeddedEditor.bindTo(n);var r=function(){return i._update()};return i._register(t.onDidChangeModel(r)),i._register(t.onDidChangeModelLanguage(r)),i._register(_n.onDidChange(r)),i._register(En.onDidChange(r)),i._register(Rn.onDidChange(r)),i._register(Bn.onDidChange(r)),i._register(Dn.onDidChange(r)),i._register(An.onDidChange(r)),i._register(Tn.onDidChange(r)),i._register(wn.onDidChange(r)),i._register(xn.onDidChange(r)),i._register(In.onDidChange(r)),i._register(Cn.onDidChange(r)),i._register(Kn.onDidChange(r)),i._register(Nn.onDidChange(r)),i._register(vn.onDidChange(r)),r(),i}return ty(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.reset=function(){this._langId.reset(),this._hasCompletionItemProvider.reset(),this._hasCodeActionsProvider.reset(),this._hasCodeLensProvider.reset(),this._hasDefinitionProvider.reset(),this._hasImplementationProvider.reset(),this._hasTypeDefinitionProvider.reset(),this._hasHoverProvider.reset(),this._hasDocumentHighlightProvider.reset(),this._hasDocumentSymbolProvider.reset(),this._hasReferenceProvider.reset(),this._hasRenameProvider.reset(),this._hasDocumentFormattingProvider.reset(),this._hasDocumentSelectionFormattingProvider.reset(),this._hasSignatureHelpProvider.reset(),this._isInWalkThrough.reset()},t.prototype._update=function(){var e=this._editor.getModel();e?(this._langId.set(e.getLanguageIdentifier().language),this._hasCompletionItemProvider.set(_n.has(e)),this._hasCodeActionsProvider.set(En.has(e)),this._hasCodeLensProvider.set(Rn.has(e)),this._hasDefinitionProvider.set(Bn.has(e)),this._hasImplementationProvider.set(Dn.has(e)),this._hasTypeDefinitionProvider.set(An.has(e)),this._hasHoverProvider.set(Tn.has(e)),this._hasDocumentHighlightProvider.set(wn.has(e)),this._hasDocumentSymbolProvider.set(xn.has(e)),this._hasReferenceProvider.set(In.has(e)),this._hasRenameProvider.set(Cn.has(e)),this._hasSignatureHelpProvider.set(vn.has(e)),this._hasDocumentFormattingProvider.set(Kn.has(e)||Nn.has(e)),this._hasDocumentSelectionFormattingProvider.set(Nn.has(e)),this._isInWalkThrough.set(e.uri.scheme===ic.walkThroughSnippet)):this.reset()},t}(Ae),uy=function(e){function t(t){var n=e.call(this)||this;return n._onChange=n._register(new Ne),n.onChange=n._onChange.event,n._hasFocus=!1,n._domFocusTracker=n._register(tu(t)),n._register(n._domFocusTracker.onDidFocus(function(){n._hasFocus=!0,n._onChange.fire(void 0)})),n._register(n._domFocusTracker.onDidBlur(function(){n._hasFocus=!1,n._onChange.fire(void 0)})),n}return ty(t,e),t.prototype.hasFocus=function(){return this._hasFocus},t}(Ae),dy=encodeURIComponent("");function gy(e){return dy+encodeURIComponent(e.toString())+cy}var my=encodeURIComponent('');Ac(function(e,t){var n=e.getColor(Sm);n&&t.addRule(".monaco-editor .squiggly-error { border-bottom: 4px double "+n+"; }");var i=e.getColor(ym);i&&t.addRule('.monaco-editor .squiggly-error { background: url("data:image/svg+xml,'+gy(i)+'") repeat-x bottom left; }');var r=e.getColor(Im);r&&t.addRule(".monaco-editor .squiggly-warning { border-bottom: 4px double "+r+"; }");var o=e.getColor(bm);o&&t.addRule('.monaco-editor .squiggly-warning { background: url("data:image/svg+xml,'+gy(o)+'") repeat-x bottom left; }');var s=e.getColor(_m);s&&t.addRule(".monaco-editor .squiggly-info { border-bottom: 4px double "+s+"; }");var a=e.getColor(Cm);a&&t.addRule('.monaco-editor .squiggly-info { background: url("data:image/svg+xml,'+gy(a)+'") repeat-x bottom left; }');var l=e.getColor(Tm);l&&t.addRule(".monaco-editor .squiggly-hint { border-bottom: 2px dotted "+l+"; }");var u=e.getColor(vm);u&&t.addRule('.monaco-editor .squiggly-hint { background: url("data:image/svg+xml,'+(my+encodeURIComponent(u.toString())+hy)+'") no-repeat bottom left; }');var d=e.getColor(wm);d&&t.addRule("."+ry+" .monaco-editor .squiggly-inline-unnecessary { opacity: "+d.rgba.a+"; will-change: opacity; }");var c=e.getColor(xm);c&&t.addRule("."+ry+" .monaco-editor .squiggly-unnecessary { border-bottom: 2px dashed "+c+"; }")}),n(51),n(53);var py=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),fy="_msDataKey";function yy(e){return e[fy]||(e[fy]={}),e[fy]}function Sy(e){return!!e[fy]}var by=function(){function e(e,t){this.offdom=t,this.container=e,this.currentElement=e,this.createdElements=[],this.toDispose={},this.captureToDispose={}}return e.prototype.clone=function(){var t=new e(this.container,this.offdom);return t.currentElement=this.currentElement,t.createdElements=this.createdElements,t.captureToDispose=this.captureToDispose,t.toDispose=this.toDispose,t},e.prototype.build=function(t,n){ms(this.offdom,"This builder was not created off-dom, so build() can not be called."),t?t instanceof e&&(t=t.getHTMLElement()):t=this.container,ms(t,"Builder can only be build() with a container provided."),ms(Ql(t),"The container must either be a HTMLElement or a Builder.");var i,r,o=t,s=o.childNodes;if(rn(n)&&n=0){var n=e.split("-");e=n[0];for(var i=1;i=0){var t=e.split("-");e=t[0];for(var n=1;n=n.actionsList.children.length?(n.actionsList.appendChild(i),n.items.push(o)):(n.actionsList.insertBefore(i,n.actionsList.children[r]),n.items.splice(r,0,o),r++)})},e.prototype.clear=function(){this.items=xe(this.items),xy(this.actionsList).empty()},e.prototype.isEmpty=function(){return 0===this.items.length},e.prototype.focus=function(e){e&&void 0===this.focusedItem?(this.focusedItem=this.items.length-1,this.focusNext()):this.updateFocus()},e.prototype.focusNext=function(){void 0===this.focusedItem&&(this.focusedItem=this.items.length-1);var e,t=this.focusedItem;do{this.focusedItem=(this.focusedItem+1)%this.items.length,e=this.items[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled());this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus()},e.prototype.focusPrevious=function(){void 0===this.focusedItem&&(this.focusedItem=0);var e,t=this.focusedItem;do{this.focusedItem=this.focusedItem-1,this.focusedItem<0&&(this.focusedItem=this.items.length-1),e=this.items[this.focusedItem]}while(this.focusedItem!==t&&!e.isEnabled());this.focusedItem!==t||e.isEnabled()||(this.focusedItem=void 0),this.updateFocus(!0)},e.prototype.updateFocus=function(e){void 0===this.focusedItem&&this.domNode.focus();for(var t=0;t0&&s._contextViewService.hideContextView()})),this._toDispose.push(this._editor.onKeyDown(function(e){58===e.keyCode&&(e.preventDefault(),e.stopPropagation(),s.showContextMenu())}))}return e.get=function(t){return t.getContribution(e.ID)},e.prototype._onContextMenu=function(e){if(!this._editor.getConfiguration().contribInfo.contextmenu)return this._editor.focus(),void(e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position));var t;e.target.type!==Um.OVERLAY_WIDGET&&(e.event.preventDefault(),(e.target.type===Um.CONTENT_TEXT||e.target.type===Um.CONTENT_EMPTY||e.target.type===Um.TEXTAREA)&&(this._editor.focus(),e.target.position&&!this._editor.getSelection().containsPosition(e.target.position)&&this._editor.setPosition(e.target.position),e.target.type!==Um.TEXTAREA&&(t={x:e.event.posx,y:e.event.posy+1}),this.showContextMenu(t)))},e.prototype.showContextMenu=function(e){if(this._editor.getConfiguration().contribInfo.contextmenu)if(this._contextMenuService){var t=this._getMenuActions();t.length>0&&this._doShowContextMenu(t,e)}else this._editor.focus()},e.prototype._getMenuActions=function(){var e=[],t=this._menuService.createMenu(ks.EditorContext,this._contextKeyService),n=t.getActions({arg:this._editor.getModel().uri});t.dispose();for(var i=0,r=n;i0&&this._contextViewService.hideContextView(),this._toDispose=xe(this._toDispose)},e.ID="editor.contrib.contextmenu",e=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([ky(1,Py),ky(2,Ny),ky(3,Es),ky(4,Oy),ky(5,Ls)],e)}(),My=function(e){function t(){return e.call(this,{id:"editor.action.showContextMenu",label:r("action.showContextMenu.label","Show Editor Context Menu"),alias:"Show Editor Context Menu",precondition:null,kbOpts:{kbExpr:na.textInputFocus,primary:1092,weight:100}})||this}return $y(t,e),t.prototype.run=function(e,t){Ly.get(t).showContextMenu()},t}(Ys);ea(Ly),Xs(My);var Fy=function(){function e(e){e&&0!==e.length?1===e.length&&null!==e[0].staticValue?(this._staticValue=e[0].staticValue,this._pieces=null):(this._staticValue=null,this._pieces=e):(this._staticValue="",this._pieces=null)}return e.fromStaticValue=function(t){return new e([zy.staticValue(t)])},Object.defineProperty(e.prototype,"hasReplacementPatterns",{get:function(){return null===this._staticValue},enumerable:!0,configurable:!0}),e.prototype.buildReplaceString=function(t){if(null!==this._staticValue)return this._staticValue;for(var n="",i=0,r=this._pieces.length;i0;){if(e=0?t+1:1},e.prototype.getCurrentMatchesPosition=function(t){for(var n=this._editor.getModel().getDecorationsInRange(t),i=0,r=n.length;i1e3){o=e._FIND_MATCH_NO_OVERVIEW_DECORATION;for(var l=i._editor.getModel().getLineCount(),u=i._editor.getLayoutInfo().height/l,d=Math.max(2,Math.ceil(3/u)),c=t[0].range.startLineNumber,g=t[0].range.endLineNumber,m=1,h=t.length;m=p.startLineNumber?p.endLineNumber>g&&(g=p.endLineNumber):(a.push({range:new s(c,1,g,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION}),c=p.startLineNumber,g=p.endLineNumber)}a.push({range:new s(c,1,g,1),options:e._FIND_MATCH_ONLY_OVERVIEW_DECORATION})}var f=new Array(t.length);for(m=0,h=t.length;m=0;t--){var n=this._decorations[t],i=this._editor.getModel().getDecorationRange(n);if(i&&!(i.endLineNumber>e.lineNumber)){if(i.endLineNumbere.column))return i}}return this._editor.getModel().getDecorationRange(this._decorations[this._decorations.length-1])},e.prototype.matchAfterPosition=function(e){if(0===this._decorations.length)return null;for(var t=0,n=this._decorations.length;te.lineNumber)return r;if(!(r.startColumn0){for(var n=[],i=0;i0},e.prototype._cannotFind=function(){if(!this._hasMatches()){var e=this._decorations.getFindScope();return e&&this._editor.revealRangeInCenterIfOutsideViewport(e,0),!0}return!1},e.prototype._setCurrentFindMatch=function(e){var t=this._decorations.setCurrentFindMatch(e);this._state.changeMatchInfo(t,this._decorations.getCount(),e),this._editor.setSelection(e),this._editor.revealRangeInCenterIfOutsideViewport(e,0)},e.prototype._prevSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||1===i?(1===n?n=r.getLineCount():n--,i=r.getLineMaxColumn(n)):i--,new o(n,i)},e.prototype._moveToPrevMatch=function(t,n){if(void 0===n&&(n=!1),this._decorations.getCount()<19999){var i=this._decorations.matchBeforePosition(t);return i&&i.isEmpty()&&i.getStartPosition().equals(t)&&(t=this._prevSearchPosition(t),i=this._decorations.matchBeforePosition(t)),void(i&&this._setCurrentFindMatch(i))}if(!this._cannotFind()){var r=this._decorations.getFindScope(),s=e._getSearchRange(this._editor.getModel(),r);s.getEndPosition().isBefore(t)&&(t=s.getEndPosition()),t.isBefore(s.getStartPosition())&&(t=s.getEndPosition());var a=t.lineNumber,l=t.column,u=this._editor.getModel(),d=new o(a,l),c=u.findPreviousMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1);return c&&c.range.isEmpty()&&c.range.getStartPosition().equals(d)&&(d=this._prevSearchPosition(d),c=u.findPreviousMatch(this._state.searchString,d,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1)),c?n||s.containsRange(c.range)?void this._setCurrentFindMatch(c.range):this._moveToPrevMatch(c.range.getStartPosition(),!0):null}},e.prototype.moveToPrevMatch=function(){this._moveToPrevMatch(this._editor.getSelection().getStartPosition())},e.prototype._nextSearchPosition=function(e){var t=this._state.isRegex&&(this._state.searchString.indexOf("^")>=0||this._state.searchString.indexOf("$")>=0),n=e.lineNumber,i=e.column,r=this._editor.getModel();return t||i===r.getLineMaxColumn(n)?(n===r.getLineCount()?n=1:n++,i=1):i++,new o(n,i)},e.prototype._moveToNextMatch=function(e){if(this._decorations.getCount()<19999){var t=this._decorations.matchAfterPosition(e);return t&&t.isEmpty()&&t.getStartPosition().equals(e)&&(e=this._nextSearchPosition(e),t=this._decorations.matchAfterPosition(e)),void(t&&this._setCurrentFindMatch(t))}var n=this._getNextMatch(e,!1,!0);n&&this._setCurrentFindMatch(n.range)},e.prototype._getNextMatch=function(t,n,i,r){if(void 0===r&&(r=!1),this._cannotFind())return null;var s=this._decorations.getFindScope(),a=e._getSearchRange(this._editor.getModel(),s);a.getEndPosition().isBefore(t)&&(t=a.getStartPosition()),t.isBefore(a.getStartPosition())&&(t=a.getStartPosition());var l=t.lineNumber,u=t.column,d=this._editor.getModel(),c=new o(l,u),g=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n);return i&&g&&g.range.isEmpty()&&g.range.getStartPosition().equals(c)&&(c=this._nextSearchPosition(c),g=d.findNextMatch(this._state.searchString,c,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n)),g?r||a.containsRange(g.range)?g:this._getNextMatch(g.range.getEndPosition(),n,i,!0):null},e.prototype.moveToNextMatch=function(){this._moveToNextMatch(this._editor.getSelection().getEndPosition())},e.prototype._getReplacePattern=function(){return this._state.isRegex?function(e){if(!e||0===e.length)return new Fy(null);for(var t=new jy(e),n=0,i=e.length;n=i)break;if(36===(a=e.charCodeAt(n))){t.emitUnchanged(n-1),t.emitStatic("$",n+1);continue}if(48===a||38===a){t.emitUnchanged(n-1),t.emitMatchIndex(0,n+1);continue}if(49<=a&&a<=57){var o=a-48;if(n+1=i)break;var a;switch(a=e.charCodeAt(n)){case 92:t.emitUnchanged(n-1),t.emitStatic("\\",n+1);break;case 110:t.emitUnchanged(n-1),t.emitStatic("\n",n+1);break;case 116:t.emitUnchanged(n-1),t.emitStatic("\t",n+1)}}}return t.finalize()}(this._state.replaceString):Fy.fromStaticValue(this._state.replaceString)},e.prototype.replace=function(){if(this._hasMatches()){var e=this._getReplacePattern(),t=this._editor.getSelection(),n=this._getNextMatch(t.getStartPosition(),e.hasReplacementPatterns,!1);if(n)if(t.equalsRange(n.range)){var i=e.buildReplaceString(n.matches),r=new la(t,i);this._executeEditorCommand("replace",r),this._decorations.setStartPosition(new o(t.startLineNumber,t.startColumn+i.length)),this.research(!0)}else this._decorations.setStartPosition(this._editor.getPosition()),this._setCurrentFindMatch(n.range)}},e.prototype._findMatches=function(t,n,i){var r=e._getSearchRange(this._editor.getModel(),t);return this._editor.getModel().findMatches(this._state.searchString,r,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null,n,i)},e.prototype.replaceAll=function(){if(this._hasMatches()){var e=this._decorations.getFindScope();null===e&&this._state.matchesCount>=19999?this._largeReplaceAll():this._regularReplaceAll(e),this.research(!1)}},e.prototype._largeReplaceAll=function(){var e=new Hr(this._state.searchString,this._state.isRegex,this._state.matchCase,this._state.wholeWord?this._editor.getConfiguration().wordSeparators:null).parseSearchRequest();if(e){var t=e.regex;if(!t.multiline){var n="m";t.ignoreCase&&(n+="i"),t.global&&(n+="g"),t=new RegExp(t.source,n)}var i,r=this._editor.getModel(),o=r.getValue(je.LF),s=r.getFullModelRange(),a=this._getReplacePattern();i=a.hasReplacementPatterns?o.replace(t,function(){return a.buildReplaceString(arguments)}):o.replace(t,a.buildReplaceString(null));var l=new ca(s,i,this._editor.getSelection());this._executeEditorCommand("replaceAll",l)}},e.prototype._regularReplaceAll=function(e){for(var t=this._getReplacePattern(),n=this._findMatches(e,t.hasReplacementPatterns,1073741824),i=[],r=0,o=n.length;rt&&(e=t),this._matchesPosition!==e&&(this._matchesPosition=e,i.matchesPosition=!0,r=!0),this._matchesCount!==t&&(this._matchesCount=t,i.matchesCount=!0,r=!0),void 0!==n&&(s.equalsRange(this._currentMatch,n)||(this._currentMatch=n,i.currentMatch=!0,r=!0)),r&&this._onFindReplaceStateChange.fire(i)},e.prototype.change=function(e,t,n){void 0===n&&(n=!0);var i={moveCursor:t,updateHistory:n,searchString:!1,replaceString:!1,isRevealed:!1,isReplaceRevealed:!1,isRegex:!1,wholeWord:!1,matchCase:!1,searchScope:!1,matchesPosition:!1,matchesCount:!1,currentMatch:!1},r=!1,o=this.isRegex,a=this.wholeWord,l=this.matchCase;void 0!==e.searchString&&this._searchString!==e.searchString&&(this._searchString=e.searchString,i.searchString=!0,r=!0),void 0!==e.replaceString&&this._replaceString!==e.replaceString&&(this._replaceString=e.replaceString,i.replaceString=!0,r=!0),void 0!==e.isRevealed&&this._isRevealed!==e.isRevealed&&(this._isRevealed=e.isRevealed,i.isRevealed=!0,r=!0),void 0!==e.isReplaceRevealed&&this._isReplaceRevealed!==e.isReplaceRevealed&&(this._isReplaceRevealed=e.isReplaceRevealed,i.isReplaceRevealed=!0,r=!0),void 0!==e.isRegex&&(this._isRegex=e.isRegex),void 0!==e.wholeWord&&(this._wholeWord=e.wholeWord),void 0!==e.matchCase&&(this._matchCase=e.matchCase),void 0!==e.searchScope&&(s.equalsRange(this._searchScope,e.searchScope)||(this._searchScope=e.searchScope,i.searchScope=!0,r=!0)),this._isRegexOverride=void 0!==e.isRegexOverride?e.isRegexOverride:0,this._wholeWordOverride=void 0!==e.wholeWordOverride?e.wholeWordOverride:0,this._matchCaseOverride=void 0!==e.matchCaseOverride?e.matchCaseOverride:0,o!==this.isRegex&&(r=!0,i.isRegex=!0),a!==this.wholeWord&&(r=!0,i.wholeWord=!0),l!==this.matchCase&&(r=!0,i.matchCase=!0),r&&this._onFindReplaceStateChange.fire(i)},e}(),iS=Vt("storageService");!function(e){e[e.GLOBAL=0]="GLOBAL",e[e.WORKSPACE=1]="WORKSPACE"}(tS||(tS={}));var rS,oS,sS={_serviceBrand:void 0,store:function(){},remove:function(){},get:function(e,t,n){return n},getInteger:function(e,t,n){return n},getBoolean:function(e,t,n){return n}},aS=Vt("clipboardService"),lS=(n(55),n(57),!1);!function(e){e[e.VERTICAL=0]="VERTICAL",e[e.HORIZONTAL=1]="HORIZONTAL"}(rS||(rS={})),function(e){e[e.Disabled=0]="Disabled",e[e.Minimum=1]="Minimum",e[e.Maximum=2]="Maximum",e[e.Enabled=3]="Enabled"}(oS||(oS={}));var uS,dS=function(){function e(e,t,n){void 0===n&&(n={}),this.disposables=[],this._state=oS.Enabled,this._onDidEnablementChange=new Ne,this.onDidEnablementChange=this._onDidEnablementChange.event,this._onDidStart=new Ne,this.onDidStart=this._onDidStart.event,this._onDidChange=new Ne,this.onDidChange=this._onDidChange.event,this._onDidReset=new Ne,this.onDidReset=this._onDidReset.event,this._onDidEnd=new Ne,this.onDidEnd=this._onDidEnd.event,this.linkedSash=void 0,this.orthogonalStartSashDisposables=[],this.orthogonalEndSashDisposables=[],this.el=nu(e,ru(".monaco-sash")),X.d&&Il(this.el,"mac"),ml(this.el,"mousedown")(this.onMouseDown,this,this.disposables),ml(this.el,"dblclick")(this.onMouseDoubleClick,this,this.disposables),Gm.addTarget(this.el),ml(this.el,Fm.Start)(this.onTouchStart,this,this.disposables),Qa&&Il(this.el,"touch"),this.setOrientation(n.orientation||rS.VERTICAL),this.hidden=!1,this.layoutProvider=t,this.orthogonalStartSash=n.orthogonalStartSash,this.orthogonalEndSash=n.orthogonalEndSash,_l(this.el,"debug",lS)}return Object.defineProperty(e.prototype,"state",{get:function(){return this._state},set:function(e){this._state!==e&&(_l(this.el,"disabled",e===oS.Disabled),_l(this.el,"minimum",e===oS.Minimum),_l(this.el,"maximum",e===oS.Maximum),this._state=e,this._onDidEnablementChange.fire(e))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orthogonalStartSash",{get:function(){return this._orthogonalStartSash},set:function(e){this.orthogonalStartSashDisposables=xe(this.orthogonalStartSashDisposables),e?(e.onDidEnablementChange(this.onOrthogonalStartSashEnablementChange,this,this.orthogonalStartSashDisposables),this.onOrthogonalStartSashEnablementChange(e.state)):this.onOrthogonalStartSashEnablementChange(oS.Disabled),this._orthogonalStartSash=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"orthogonalEndSash",{get:function(){return this._orthogonalEndSash},set:function(e){this.orthogonalEndSashDisposables=xe(this.orthogonalEndSashDisposables),e?(e.onDidEnablementChange(this.onOrthogonalEndSashEnablementChange,this,this.orthogonalEndSashDisposables),this.onOrthogonalEndSashEnablementChange(e.state)):this.onOrthogonalEndSashEnablementChange(oS.Disabled),this._orthogonalEndSash=e},enumerable:!0,configurable:!0}),e.prototype.setOrientation=function(e){this.orientation=e,this.orientation===rS.HORIZONTAL?(Il(this.el,"horizontal"),Cl(this.el,"vertical")):(Cl(this.el,"horizontal"),Il(this.el,"vertical")),this.layoutProvider&&this.layout()},e.prototype.onMouseDown=function(e){var t=this;Jl.stop(e,!1);var n=!1;if(this.linkedSash&&!e.__linkedSashEvent&&(e.__linkedSashEvent=!0,this.linkedSash.onMouseDown(e)),!e.__orthogonalSashEvent){var i=void 0;this.orientation===rS.VERTICAL?e.offsetY<=4?i=this.orthogonalStartSash:e.offsetY>=this.el.clientHeight-4&&(i=this.orthogonalEndSash):e.offsetX<=4?i=this.orthogonalStartSash:e.offsetX>=this.el.clientWidth-4&&(i=this.orthogonalEndSash),i&&(n=!0,e.__orthogonalSashEvent=!0,i.onMouseDown(e))}if(this.state){for(var r=0,o=lu("iframe");r ?(paragraph|[^\n]*)(?:\n|$))+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:"^ {0,3}(?:<(script|pre|style)[\\s>][\\s\\S]*?(?:[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?\\?>\\n*|\\n*|\\n*|)[\\s\\S]*?(?:\\n{2,}|$)|<(?!script|pre|style)([a-z][\\w-]*)(?:attribute)*? */?>(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$)|(?=\\h*\\n)[\\s\\S]*?(?:\\n{2,}|$))",def:/^ {0,3}\[(label)\]: *\n? *]+)>?(?:(?: +\n? *| *\n *)(title))? *(?:\n+|$)/,table:h,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,paragraph:/^([^\n]+(?:\n(?!hr|heading|lheading| {0,3}>|<\/?(?:tag)(?: +|\n|\/?>)|<(?:script|pre|style|!--))[^\n]+)*)/,text:/^[^\n]+/};function n(e){this.tokens=[],this.tokens.links={},this.options=e||S.defaults,this.rules=t.normal,this.options.pedantic?this.rules=t.pedantic:this.options.gfm&&(this.options.tables?this.rules=t.tables:this.rules=t.gfm)}t._label=/(?!\s*\])(?:\\[\[\]]|[^\[\]])+/,t._title=/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/,t.def=d(t.def).replace("label",t._label).replace("title",t._title).getRegex(),t.bullet=/(?:[*+-]|\d+\.)/,t.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,t.item=d(t.item,"gm").replace(/bull/g,t.bullet).getRegex(),t.list=d(t.list).replace(/bull/g,t.bullet).replace("hr","\\n+(?=\\1?(?:(?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$))").replace("def","\\n+(?="+t.def.source+")").getRegex(),t._tag="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|section|source|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",t._comment=//,t.html=d(t.html,"i").replace("comment",t._comment).replace("tag",t._tag).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),t.paragraph=d(t.paragraph).replace("hr",t.hr).replace("heading",t.heading).replace("lheading",t.lheading).replace("tag",t._tag).getRegex(),t.blockquote=d(t.blockquote).replace("paragraph",t.paragraph).getRegex(),t.normal=p({},t),t.gfm=p({},t.normal,{fences:/^ *(`{3,}|~{3,})[ \.]*(\S+)? *\n([\s\S]*?)\n? *\1 *(?:\n+|$)/,paragraph:/^/,heading:/^ *(#{1,6}) +([^\n]+?) *#* *(?:\n+|$)/}),t.gfm.paragraph=d(t.paragraph).replace("(?!","(?!"+t.gfm.fences.source.replace("\\1","\\2")+"|"+t.list.source.replace("\\1","\\3")+"|").getRegex(),t.tables=p({},t.gfm,{nptable:/^ *([^|\n ].*\|.*)\n *([-:]+ *\|[-| :]*)(?:\n((?:.*[^>\n ].*(?:\n|$))*)\n*|$)/,table:/^ *\|(.+)\n *\|?( *[-:]+[-| :]*)(?:\n((?: *[^>\n ].*(?:\n|$))*)\n*|$)/}),t.pedantic=p({},t.normal,{html:d("^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+? *(?:\\n{2,}|\\s*$)|\\s]*)*?/?> *(?:\\n{2,}|\\s*$))").replace("comment",t._comment).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/}),n.rules=t,n.lex=function(e,t){return new n(t).lex(e)},n.prototype.lex=function(e){return e=e.replace(/\r\n|\r/g,"\n").replace(/\t/g," ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n"),this.token(e,!0)},n.prototype.token=function(e,n){var i,r,o,s,a,l,u,d,c,g,m,h,p;for(e=e.replace(/^ +$/gm,"");e;)if((o=this.rules.newline.exec(e))&&(e=e.substring(o[0].length),o[0].length>1&&this.tokens.push({type:"space"})),o=this.rules.code.exec(e))e=e.substring(o[0].length),o=o[0].replace(/^ {4}/gm,""),this.tokens.push({type:"code",text:this.options.pedantic?o:y(o,"\n")});else if(o=this.rules.fences.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"code",lang:o[2],text:o[3]||""});else if(o=this.rules.heading.exec(e))e=e.substring(o[0].length),this.tokens.push({type:"heading",depth:o[1].length,text:o[2]});else if(n&&(o=this.rules.nptable.exec(e))&&(l={type:"table",header:f(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/\n$/,"").split("\n"):[]}).header.length===l.align.length){for(e=e.substring(o[0].length),d=0;d ?/gm,""),this.token(o,n),this.tokens.push({type:"blockquote_end"});else if(o=this.rules.list.exec(e)){for(e=e.substring(o[0].length),m=(s=o[2]).length>1,this.tokens.push({type:"list_start",ordered:m,start:m?+s:""}),i=!1,g=(o=o[0].match(this.rules.item)).length,d=0;d1&&a.length>1||(e=o.slice(d+1).join("\n")+e,d=g-1)),r=i||/\n\n(?!\s*$)/.test(l),d!==g-1&&(i="\n"===l.charAt(l.length-1),r||(r=i)),p=void 0,(h=/^\[[ xX]\] /.test(l))&&(p=" "!==l[1],l=l.replace(/^\[[ xX]\] +/,"")),this.tokens.push({type:r?"loose_item_start":"list_item_start",task:h,checked:p}),this.token(l,!1),this.tokens.push({type:"list_item_end"});this.tokens.push({type:"list_end"})}else if(o=this.rules.html.exec(e))e=e.substring(o[0].length),this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:!this.options.sanitizer&&("pre"===o[1]||"script"===o[1]||"style"===o[1]),text:o[0]});else if(n&&(o=this.rules.def.exec(e)))e=e.substring(o[0].length),o[3]&&(o[3]=o[3].substring(1,o[3].length-1)),c=o[1].toLowerCase().replace(/\s+/g," "),this.tokens.links[c]||(this.tokens.links[c]={href:o[2],title:o[3]});else if(n&&(o=this.rules.table.exec(e))&&(l={type:"table",header:f(o[1].replace(/^ *| *\| *$/g,"")),align:o[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:o[3]?o[3].replace(/(?: *\| *)?\n$/,"").split("\n"):[]}).header.length===l.align.length){for(e=e.substring(o[0].length),d=0;d?@\[\]\\^_`{|}~])/,autolink:/^<(scheme:[^\s\x00-\x1f<>]*|email)>/,url:h,tag:"^comment|^|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^|^",link:/^!?\[(label)\]\(href(?:\s+(title))?\s*\)/,reflink:/^!?\[(label)\]\[(?!\s*\])((?:\\[\[\]]?|[^\[\]\\])+)\]/,nolink:/^!?\[(?!\s*\])((?:\[[^\[\]]*\]|\\[\[\]]|[^\[\]])*)\](?:\[\])?/,strong:/^__([^\s][\s\S]*?[^\s])__(?!_)|^\*\*([^\s][\s\S]*?[^\s])\*\*(?!\*)|^__([^\s])__(?!_)|^\*\*([^\s])\*\*(?!\*)/,em:/^_([^\s][\s\S]*?[^\s_])_(?!_)|^_([^\s_][\s\S]*?[^\s])_(?!_)|^\*([^\s][\s\S]*?[^\s*])\*(?!\*)|^\*([^\s*][\s\S]*?[^\s])\*(?!\*)|^_([^\s_])_(?!_)|^\*([^\s*])\*(?!\*)/,code:/^(`+)\s*([\s\S]*?[^`]?)\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:h,text:/^[\s\S]+?(?=[\\/g,">").replace(/"/g,""").replace(/'/g,"'")}function u(e){return e.replace(/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/gi,function(e,t){return"colon"===(t=t.toLowerCase())?":":"#"===t.charAt(0)?"x"===t.charAt(1)?String.fromCharCode(parseInt(t.substring(2),16)):String.fromCharCode(+t.substring(1)):""})}function d(e,t){return e=e.source||e,t=t||"",{replace:function(t,n){return n=(n=n.source||n).replace(/(^|[^\[])\^/g,"$1"),e=e.replace(t,n),this},getRegex:function(){return new RegExp(e,t)}}}function c(e,t){return g[" "+e]||(/^[^:]+:\/*[^/]*$/.test(e)?g[" "+e]=e+"/":g[" "+e]=y(e,"/",!0)),e=g[" "+e],"//"===t.slice(0,2)?e.replace(/:[\s\S]*/,":")+t:"/"===t.charAt(0)?e.replace(/(:\/*[^/]*)[\s\S]*/,"$1")+t:e+t}i._escapes=/\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/g,i._scheme=/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/,i._email=/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/,i.autolink=d(i.autolink).replace("scheme",i._scheme).replace("email",i._email).getRegex(),i._attribute=/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/,i.tag=d(i.tag).replace("comment",t._comment).replace("attribute",i._attribute).getRegex(),i._label=/(?:\[[^\[\]]*\]|\\[\[\]]?|`[^`]*`|[^\[\]\\])*?/,i._href=/\s*(<(?:\\[<>]?|[^\s<>\\])*>|(?:\\[()]?|\([^\s\x00-\x1f()\\]*\)|[^\s\x00-\x1f()\\])*?)/,i._title=/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/,i.link=d(i.link).replace("label",i._label).replace("href",i._href).replace("title",i._title).getRegex(),i.reflink=d(i.reflink).replace("label",i._label).getRegex(),i.normal=p({},i),i.pedantic=p({},i.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/,link:d(/^!?\[(label)\]\((.*?)\)/).replace("label",i._label).getRegex(),reflink:d(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",i._label).getRegex()}),i.gfm=p({},i.normal,{escape:d(i.escape).replace("])","~|])").getRegex(),url:d(/^((?:ftp|https?):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("email",i._email).getRegex(),_backpedal:/(?:[^?!.,:;*_~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_~)]+(?!$))+/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:d(i.text).replace("]|","~]|").replace("|","|https?://|ftp://|www\\.|[a-zA-Z0-9.!#$%&'*+/=?^_`{\\|}~-]+@|").getRegex()}),i.breaks=p({},i.gfm,{br:d(i.br).replace("{2,}","*").getRegex(),text:d(i.gfm.text).replace("{2,}","*").getRegex()}),r.rules=i,r.output=function(e,t,n){return new r(t,n).output(e)},r.prototype.output=function(e){for(var t,n,i,o,s,a="";e;)if(s=this.rules.escape.exec(e))e=e.substring(s[0].length),a+=s[1];else if(s=this.rules.autolink.exec(e))e=e.substring(s[0].length),i="@"===s[2]?"mailto:"+(n=l(this.mangle(s[1]))):n=l(s[1]),a+=this.renderer.link(i,null,n);else if(this.inLink||!(s=this.rules.url.exec(e))){if(s=this.rules.tag.exec(e))!this.inLink&&/^/i.test(s[0])&&(this.inLink=!1),e=e.substring(s[0].length),a+=this.options.sanitize?this.options.sanitizer?this.options.sanitizer(s[0]):l(s[0]):s[0];else if(s=this.rules.link.exec(e))e=e.substring(s[0].length),this.inLink=!0,i=s[2],this.options.pedantic?(t=/^([^'"]*[^\s])\s+(['"])(.*)\2/.exec(i))?(i=t[1],o=t[3]):o="":o=s[3]?s[3].slice(1,-1):"",i=i.trim().replace(/^<([\s\S]*)>$/,"$1"),a+=this.outputLink(s,{href:r.escapes(i),title:r.escapes(o)}),this.inLink=!1;else if((s=this.rules.reflink.exec(e))||(s=this.rules.nolink.exec(e))){if(e=e.substring(s[0].length),t=(s[2]||s[1]).replace(/\s+/g," "),!(t=this.links[t.toLowerCase()])||!t.href){a+=s[0].charAt(0),e=s[0].substring(1)+e;continue}this.inLink=!0,a+=this.outputLink(s,t),this.inLink=!1}else if(s=this.rules.strong.exec(e))e=e.substring(s[0].length),a+=this.renderer.strong(this.output(s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.em.exec(e))e=e.substring(s[0].length),a+=this.renderer.em(this.output(s[6]||s[5]||s[4]||s[3]||s[2]||s[1]));else if(s=this.rules.code.exec(e))e=e.substring(s[0].length),a+=this.renderer.codespan(l(s[2].trim(),!0));else if(s=this.rules.br.exec(e))e=e.substring(s[0].length),a+=this.renderer.br();else if(s=this.rules.del.exec(e))e=e.substring(s[0].length),a+=this.renderer.del(this.output(s[1]));else if(s=this.rules.text.exec(e))e=e.substring(s[0].length),a+=this.renderer.text(l(this.smartypants(s[0])));else if(e)throw new Error("Infinite loop on byte: "+e.charCodeAt(0))}else s[0]=this.rules._backpedal.exec(s[0])[0],e=e.substring(s[0].length),"@"===s[2]?i="mailto:"+(n=l(s[0])):(n=l(s[0]),i="www."===s[1]?"http://"+n:n),a+=this.renderer.link(i,null,n);return a},r.escapes=function(e){return e?e.replace(r.rules._escapes,"$1"):e},r.prototype.outputLink=function(e,t){var n=t.href,i=t.title?l(t.title):null;return"!"!==e[0].charAt(0)?this.renderer.link(n,i,this.output(e[1])):this.renderer.image(n,i,l(e[1]))},r.prototype.smartypants=function(e){return this.options.smartypants?e.replace(/---/g,"—").replace(/--/g,"–").replace(/(^|[-\u2014/(\[{"\s])'/g,"$1‘").replace(/'/g,"’").replace(/(^|[-\u2014/(\[{\u2018\s])"/g,"$1“").replace(/"/g,"”").replace(/\.{3}/g,"…"):e},r.prototype.mangle=function(e){if(!this.options.mangle)return e;for(var t,n="",i=e.length,r=0;r.5&&(t="x"+t.toString(16)),n+="&#"+t+";";return n},o.prototype.code=function(e,t,n){if(this.options.highlight){var i=this.options.highlight(e,t);null!=i&&i!==e&&(n=!0,e=i)}return t?'
'+(n?e:l(e,!0))+"
\n":"
"+(n?e:l(e,!0))+"
"},o.prototype.blockquote=function(e){return"
\n"+e+"
\n"},o.prototype.html=function(e){return e},o.prototype.heading=function(e,t,n){return this.options.headerIds?"'+e+"\n":""+e+"\n"},o.prototype.hr=function(){return this.options.xhtml?"
\n":"
\n"},o.prototype.list=function(e,t,n){var i=t?"ol":"ul";return"<"+i+(t&&1!==n?' start="'+n+'"':"")+">\n"+e+"\n"},o.prototype.listitem=function(e){return"
  • "+e+"
  • \n"},o.prototype.checkbox=function(e){return" "},o.prototype.paragraph=function(e){return"

    "+e+"

    \n"},o.prototype.table=function(e,t){return t&&(t=""+t+""),"\n\n"+e+"\n"+t+"
    \n"},o.prototype.tablerow=function(e){return"\n"+e+"\n"},o.prototype.tablecell=function(e,t){var n=t.header?"th":"td";return(t.align?"<"+n+' align="'+t.align+'">':"<"+n+">")+e+"\n"},o.prototype.strong=function(e){return""+e+""},o.prototype.em=function(e){return""+e+""},o.prototype.codespan=function(e){return""+e+""},o.prototype.br=function(){return this.options.xhtml?"
    ":"
    "},o.prototype.del=function(e){return""+e+""},o.prototype.link=function(e,t,n){if(this.options.sanitize){try{var i=decodeURIComponent(u(e)).replace(/[^\w:]/g,"").toLowerCase()}catch(e){return n}if(0===i.indexOf("javascript:")||0===i.indexOf("vbscript:")||0===i.indexOf("data:"))return n}this.options.baseUrl&&!m.test(e)&&(e=c(this.options.baseUrl,e));try{e=encodeURI(e).replace(/%25/g,"%")}catch(e){return n}var r='
    "+n+""},o.prototype.image=function(e,t,n){this.options.baseUrl&&!m.test(e)&&(e=c(this.options.baseUrl,e));var i=''+n+'":">")},o.prototype.text=function(e){return e},s.prototype.strong=s.prototype.em=s.prototype.codespan=s.prototype.del=s.prototype.text=function(e){return e},s.prototype.link=s.prototype.image=function(e,t,n){return""+n},s.prototype.br=function(){return""},a.parse=function(e,t){return new a(t).parse(e)},a.prototype.parse=function(e){this.inline=new r(e.links,this.options),this.inlineText=new r(e.links,p({},this.options,{renderer:new s})),this.tokens=e.reverse();for(var t="";this.next();)t+=this.tok();return t},a.prototype.next=function(){return this.token=this.tokens.pop()},a.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0},a.prototype.parseText=function(){for(var e=this.token.text;"text"===this.peek().type;)e+="\n"+this.next().text;return this.inline.output(e)},a.prototype.tok=function(){switch(this.token.type){case"space":return"";case"hr":return this.renderer.hr();case"heading":return this.renderer.heading(this.inline.output(this.token.text),this.token.depth,u(this.inlineText.output(this.token.text)));case"code":return this.renderer.code(this.token.text,this.token.lang,this.token.escaped);case"table":var e,t,n,i,r="",o="";for(n="",e=0;e=0&&"\\"===n[r];)i=!i;return i?"|":" |"}).split(/ \|/),i=0;if(n.length>t)n.splice(t);else for(;n.lengthAn error occurred:

    "+l(e.message+"",!0)+"
    ";throw e}}h.exec=h,S.options=S.setOptions=function(e){return p(S.defaults,e),S},S.getDefaults=function(){return{baseUrl:null,breaks:!1,gfm:!0,headerIds:!0,headerPrefix:"",highlight:null,langPrefix:"language-",mangle:!0,pedantic:!1,renderer:new o,sanitize:!1,sanitizer:null,silent:!1,smartLists:!1,smartypants:!1,tables:!0,xhtml:!1}},S.defaults=S.getDefaults(),S.Parser=a,S.parser=a.parse,S.Renderer=o,S.TextRenderer=s,S.Lexer=n,S.lexer=n.lex,S.InlineLexer=r,S.inlineLexer=r.output,S.parse=S,uS=S}).call(void 0);var hS=uS;function pS(e){var t=e.inline?"span":"div",n=document.createElement(t);return e.className&&(n.className=e.className),n}uS.Parser,uS.parser,uS.Renderer,uS.TextRenderer,uS.Lexer,uS.lexer,uS.InlineLexer,uS.inlineLexer,uS.parse;var fS,yS,SS,bS=function(){function e(e){this.source=e,this.index=0}return e.prototype.eos=function(){return this.index>=this.source.length},e.prototype.next=function(){var e=this.peek();return this.advance(),e},e.prototype.peek=function(){return this.source[this.index]},e.prototype.advance=function(){this.index++},e}();function IS(e){return 0!==CS(e)}function CS(e){switch(e){case"*":return 3;case"_":return 4;case"[":return 5;case"]":return 6;default:return 0}}function _S(e){AS(yS,e)}function vS(e){X.d?_S(e):AS(SS,e)}n(61);var TS,xS,wS,BS=0,DS=void 0;function AS(e,t){if(fS){switch(DS===t?BS++:(DS=t,BS=0),BS){case 0:break;case 1:t=r("repeated","{0} (occurred again)",t);break;default:t=r("repeatedNtimes","{0} (occurred {1} times)",t,BS)}pl(e),e.textContent=t,e.style.visibility="hidden",e.style.visibility="visible"}}function RS(e,t,n){var i=n.offset+n.size;return n.position===wS.Before?t<=e-i?i:t<=n.offset?n.offset-t:Math.max(e-t,0):t<=n.offset?n.offset-t:t<=e-i?i:0}n(63),function(e){e[e.LEFT=0]="LEFT",e[e.RIGHT=1]="RIGHT"}(TS||(TS={})),function(e){e[e.BELOW=0]="BELOW",e[e.ABOVE=1]="ABOVE"}(xS||(xS={})),function(e){e[e.Before=0]="Before",e[e.After=1]="After"}(wS||(wS={}));var ES,KS=function(){function e(e){var t=this;this.$view=xy(".context-view").hide(),this.setContainer(e),this.toDispose=[Be(function(){t.setContainer(null)})],this.toDisposeOnClean=null}return e.prototype.setContainer=function(t){var n=this;this.$container&&(this.$container.getHTMLElement().removeChild(this.$view.getHTMLElement()),this.$container.off(e.BUBBLE_UP_EVENTS),this.$container.off(e.BUBBLE_DOWN_EVENTS,!0),this.$container=null),t&&(this.$container=xy(t),this.$view.appendTo(this.$container),this.$container.on(e.BUBBLE_UP_EVENTS,function(e){n.onDOMEvent(e,document.activeElement,!1)}),this.$container.on(e.BUBBLE_DOWN_EVENTS,function(e){n.onDOMEvent(e,document.activeElement,!0)},null,!0))},e.prototype.show=function(e){this.isVisible()&&this.hide(),this.$view.setClass("context-view").empty().style({top:"0px",left:"0px"}).show(),this.toDisposeOnClean=e.render(this.$view.getHTMLElement()),this.delegate=e,this.doLayout()},e.prototype.layout=function(){this.isVisible()&&(!1!==this.delegate.canRelayout?(this.delegate.layout&&this.delegate.layout(),this.doLayout()):this.hide())},e.prototype.doLayout=function(){var e,t=this.delegate.getAnchor();if(Ql(t)){var n=zl(t);e={top:n.top,left:n.left,width:n.width,height:n.height}}else{var i=t;e={top:i.y,left:i.x,width:i.width||0,height:i.height||0}}var r,o=this.$view.getTotalSize(),s=this.delegate.anchorPosition||xS.BELOW,a=this.delegate.anchorAlignment||TS.LEFT,l={offset:e.top,size:e.height,position:s===xS.BELOW?wS.Before:wS.After};r=a===TS.LEFT?{offset:e.left,size:0,position:wS.Before}:{offset:e.left+e.width,size:0,position:wS.After};var u=zl(this.$container.getHTMLElement()),d=RS(window.innerHeight,o.height,l)-u.top,c=RS(window.innerWidth,o.width,r)-u.left;this.$view.removeClass("top","bottom","left","right"),this.$view.addClass(s===xS.BELOW?"bottom":"top"),this.$view.addClass(a===TS.LEFT?"left":"right"),this.$view.style({top:d+"px",left:c+"px",width:"initial"})},e.prototype.hide=function(e){this.delegate&&this.delegate.onHide&&this.delegate.onHide(e),this.delegate=null,this.toDisposeOnClean&&(this.toDisposeOnClean.dispose(),this.toDisposeOnClean=null),this.$view.hide()},e.prototype.isVisible=function(){return!!this.delegate},e.prototype.onDOMEvent=function(e,t,n){this.delegate&&(this.delegate.onDOMEvent?this.delegate.onDOMEvent(e,document.activeElement):n&&!ql(e.target,this.$container.getHTMLElement())&&this.hide())},e.prototype.dispose=function(){this.hide(),this.toDispose=xe(this.toDispose)},e.BUBBLE_UP_EVENTS=["click","keydown","focus","blur"],e.BUBBLE_DOWN_EVENTS=["click"],e}(),NS=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){var t={next:function(){return{done:!0,value:void 0}}};function n(e,t){for(var n=e.next();!n.done;n=e.next())t(n.value)}e.empty=function(){return t},e.iterate=function(e,t,n){return void 0===t&&(t=0),void 0===n&&(n=e.length),{next:function(){return t>=n?{done:!0,value:void 0}:{done:!1,value:e[t++]}}}},e.map=function(e,t){return{next:function(){var n=e.next(),i=n.done,r=n.value;return{done:i,value:i?void 0:t(r)}}}},e.filter=function(e,t){return{next:function(){for(;;){var n=e.next(),i=n.done,r=n.value;if(i)return{done:i,value:void 0};if(t(r))return{done:i,value:r}}}}},e.forEach=n,e.collect=function(e){var t=[];return n(e,function(e){return t.push(e)}),t}}(ES||(ES={}));var PS,OS=function(){function e(e,t,n,i){void 0===t&&(t=0),void 0===n&&(n=e.length),void 0===i&&(i=t-1),this.items=e,this.start=t,this.end=n,this.index=i}return e.prototype.next=function(){return this.index=Math.min(this.index+1,this.end),this.current()},e.prototype.current=function(){return this.index===this.start-1||this.index===this.end?null:this.items[this.index]},e}(),$S=function(e){function t(t,n,i,r){return void 0===n&&(n=0),void 0===i&&(i=t.length),void 0===r&&(r=n-1),e.call(this,t,n,i,r)||this}return NS(t,e),t.prototype.current=function(){return e.prototype.current.call(this)},t.prototype.previous=function(){return this.index=Math.max(this.index-1,this.start-1),this.current()},t.prototype.first=function(){return this.index=this.start,this.current()},t.prototype.last=function(){return this.index=this.end-1,this.current()},t.prototype.parent=function(){return null},t}(OS),kS=function(){function e(e,t){this.iterator=e,this.fn=t}return e.prototype.next=function(){return this.fn(this.iterator.next())},e}(),LS=function(){function e(e,t){void 0===e&&(e=[]),void 0===t&&(t=10),this._initialize(e),this._limit=t,this._onChange()}return e.prototype.add=function(e){this._history.delete(e),this._history.add(e),this._onChange()},e.prototype.next=function(){return this._navigator.next()},e.prototype.previous=function(){return this._navigator.previous()},e.prototype.current=function(){return this._navigator.current()},e.prototype.parent=function(){return null},e.prototype.first=function(){return this._navigator.first()},e.prototype.last=function(){return this._navigator.last()},e.prototype.has=function(e){return this._history.has(e)},e.prototype._onChange=function(){this._reduceToLimit(),this._navigator=new $S(this._elements,0,this._elements.length,this._elements.length)},e.prototype._reduceToLimit=function(){var e=this._elements;e.length>this._limit&&this._initialize(e.slice(e.length-this._limit))},e.prototype._initialize=function(e){this._history=new Set;for(var t=0,n=e;t=0){var n=void 0;e.equals(17)?n=(t+1)%o.length:e.equals(15)&&(n=0===t?o.length-1:t-1),e.equals(9)?o[t].blur():n>=0&&o[n].focus(),Jl.stop(e,!0)}}}),this.setInputWidth();var s=document.createElement("div");s.className="controls",s.appendChild(this.caseSensitive.domNode),s.appendChild(this.wholeWords.domNode),s.appendChild(this.regex.domNode),this.domNode.appendChild(s)},t.prototype.validate=function(){this.inputBox.validate()},t.prototype.dispose=function(){e.prototype.dispose.call(this)},t}(mf);function nb(e,t){return e.getContext(document.activeElement).getValue(t)}var ib=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),rb=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},ob=function(e,t){return function(n,i){t(n,i,e)}},sb="historyNavigationWidget",ab="historyNavigationEnabled";function lb(e,t){var n=function(e,t){return e.createScoped(t.target)}(e,t);return function(e,t,n){new Rs(sb,t).bindTo(e)}(n,t),{scopedContextKeyService:n,historyNavigationEnablement:new Rs(ab,!0).bindTo(n)}}var ub=function(e){function t(t,n,i,r){var o=e.call(this,t,n,i)||this;return o._register(lb(r,{target:o.element,historyNavigator:o}).scopedContextKeyService),o}return ib(t,e),rb([ob(3,Es)],t)}(jS),db=function(e){function t(t,n,i,r){var o=e.call(this,t,n,i)||this;return o._register(lb(r,{target:o.inputBox.element,historyNavigator:o.inputBox}).scopedContextKeyService),o}return ib(t,e),rb([ob(3,Es)],t)}(tb);ps.registerCommandAndKeybindingRule({id:"history.showPrevious",weight:200,when:_s.and(new Ts(sb),new xs(ab,!0)),primary:16,secondary:[528],handler:function(e,t){nb(e.get(Es),sb).historyNavigator.showPreviousValue()}}),ps.registerCommandAndKeybindingRule({id:"history.showNext",weight:200,when:new As([new Ts(sb),new xs(ab,!0)]),primary:18,secondary:[530],handler:function(e,t){nb(e.get(Es),sb).historyNavigator.showNextValue()}});var cb=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),gb=r("label.find","Find"),mb=r("placeholder.find","Find"),hb=r("label.previousMatchButton","Previous match"),pb=r("label.nextMatchButton","Next match"),fb=r("label.toggleSelectionFind","Find in selection"),yb=r("label.closeButton","Close"),Sb=r("label.replace","Replace"),bb=r("placeholder.replace","Replace"),Ib=r("label.replaceButton","Replace"),Cb=r("label.replaceAllButton","Replace All"),_b=r("label.toggleReplaceButton","Toggle Replace mode"),vb=r("title.matchesCountLimit","Only the first {0} results are highlighted, but all find operations work on the entire text.",19999),Tb=r("label.matchesLocation","{0} of {1}"),xb=r("label.noResults","No Results"),wb=69,Bb=17+(wb+3+1)+92+2,Db=function(e){this.afterLineNumber=e,this.heightInPx=34,this.suppressMouseDown=!1,this.domNode=document.createElement("div"),this.domNode.className="dock-find-viewzone"},Ab=function(e){function t(t,n,i,r,o,s,a){var l=e.call(this)||this;return l._codeEditor=t,l._controller=n,l._state=i,l._contextViewProvider=r,l._keybindingService=o,l._contextKeyService=s,l._isVisible=!1,l._isReplaceVisible=!1,l._updateHistoryDelayer=new Pa(500),l._register(l._state.onFindReplaceStateChange(function(e){return l._onStateChanged(e)})),l._buildDomNode(),l._updateButtons(),l._tryUpdateWidgetWidth(),l._register(l._codeEditor.onDidChangeConfiguration(function(e){e.readOnly&&(l._codeEditor.getConfiguration().readOnly&&l._state.change({isReplaceRevealed:!1},!1),l._updateButtons()),e.layoutInfo&&l._tryUpdateWidgetWidth()})),l._register(l._codeEditor.onDidChangeCursorSelection(function(){l._isVisible&&l._updateToggleSelectionFindButton()})),l._register(l._codeEditor.onDidFocusEditorWidget(function(){if(l._isVisible){var e=l._controller.getGlobalBufferTerm();e&&e!==l._state.searchString&&(l._state.change({searchString:e},!0),l._findInput.select())}})),l._findInputFocused=Vy.bindTo(s),l._findFocusTracker=l._register(tu(l._findInput.inputBox.inputElement)),l._register(l._findFocusTracker.onDidFocus(function(){l._findInputFocused.set(!0),l._updateSearchScope()})),l._register(l._findFocusTracker.onDidBlur(function(){l._findInputFocused.set(!1)})),l._replaceInputFocused=qy.bindTo(s),l._replaceFocusTracker=l._register(tu(l._replaceInputBox.inputElement)),l._register(l._replaceFocusTracker.onDidFocus(function(){l._replaceInputFocused.set(!0),l._updateSearchScope()})),l._register(l._replaceFocusTracker.onDidBlur(function(){l._replaceInputFocused.set(!1)})),l._codeEditor.addOverlayWidget(l),l._viewZone=new Db(0),l._applyTheme(a.getTheme()),l._register(a.onThemeChange(l._applyTheme.bind(l))),l._register(l._codeEditor.onDidChangeModel(function(e){l._isVisible&&void 0!==l._viewZoneId&&l._codeEditor.changeViewZones(function(e){e.removeZone(l._viewZoneId),l._viewZoneId=void 0})})),l._register(l._codeEditor.onDidScrollChange(function(e){e.scrollTopChanged?l._layoutViewZone():setTimeout(function(){l._layoutViewZone()},0)})),l}return cb(t,e),t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return this._isVisible?{preference:jm.TOP_RIGHT_CORNER}:null},t.prototype._onStateChanged=function(e){if(e.searchString&&(this._findInput.setValue(this._state.searchString),this._updateButtons()),e.replaceString&&(this._replaceInputBox.value=this._state.replaceString),e.isRevealed&&(this._state.isRevealed?this._reveal(!0):this._hide(!0)),e.isReplaceRevealed&&(this._state.isReplaceRevealed?this._codeEditor.getConfiguration().readOnly||this._isReplaceVisible||(this._isReplaceVisible=!0,this._replaceInputBox.width=this._findInput.inputBox.width,this._updateButtons()):this._isReplaceVisible&&(this._isReplaceVisible=!1,this._updateButtons())),e.isRegex&&this._findInput.setRegex(this._state.isRegex),e.wholeWord&&this._findInput.setWholeWords(this._state.wholeWord),e.matchCase&&this._findInput.setCaseSensitive(this._state.matchCase),e.searchScope&&(this._state.searchScope?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._updateToggleSelectionFindButton()),e.searchString||e.matchesCount||e.matchesPosition){var t=this._state.searchString.length>0&&0===this._state.matchesCount;_l(this._domNode,"no-results",t),this._updateMatchesCount()}(e.searchString||e.currentMatch)&&this._layoutViewZone(),e.updateHistory&&this._delayedUpdateHistory()},t.prototype._delayedUpdateHistory=function(){this._updateHistoryDelayer.trigger(this._updateHistory.bind(this))},t.prototype._updateHistory=function(){this._state.searchString&&this._findInput.inputBox.addToHistory(),this._state.replaceString&&this._replaceInputBox.addToHistory()},t.prototype._updateMatchesCount=function(){var e;if(this._matchesCount.style.minWidth=wb+"px",this._state.matchesCount>=19999?this._matchesCount.title=vb:this._matchesCount.title="",this._matchesCount.firstChild&&this._matchesCount.removeChild(this._matchesCount.firstChild),this._state.matchesCount>0){var t=String(this._state.matchesCount);this._state.matchesCount>=19999&&(t+="+");var n=String(this._state.matchesPosition);"0"===n&&(n="?"),e=m(Tb,n,t)}else e=xb;this._matchesCount.appendChild(document.createTextNode(e)),wb=Math.max(wb,this._matchesCount.clientWidth)},t.prototype._updateToggleSelectionFindButton=function(){var e=this._codeEditor.getSelection(),t=!!e&&(e.startLineNumber!==e.endLineNumber||e.startColumn!==e.endColumn),n=this._toggleSelectionFind.checked;this._toggleSelectionFind.setEnabled(this._isVisible&&(n||t))},t.prototype._updateButtons=function(){this._findInput.setEnabled(this._isVisible),this._replaceInputBox.setEnabled(this._isVisible&&this._isReplaceVisible),this._updateToggleSelectionFindButton(),this._closeBtn.setEnabled(this._isVisible);var e=this._state.searchString.length>0;this._prevBtn.setEnabled(this._isVisible&&e),this._nextBtn.setEnabled(this._isVisible&&e),this._replaceBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),this._replaceAllBtn.setEnabled(this._isVisible&&this._isReplaceVisible&&e),_l(this._domNode,"replaceToggled",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("collapse",!this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("expand",this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible);var t=!this._codeEditor.getConfiguration().readOnly;this._toggleReplaceBtn.setEnabled(this._isVisible&&t)},t.prototype._reveal=function(e){var t=this;if(!this._isVisible){this._isVisible=!0;var n=this._codeEditor.getSelection();n&&(n.startLineNumber!==n.endLineNumber||n.startColumn!==n.endColumn)&&this._codeEditor.getConfiguration().contribInfo.find.autoFindInSelection?this._toggleSelectionFind.checked=!0:this._toggleSelectionFind.checked=!1,this._tryUpdateWidgetWidth(),this._updateButtons(),setTimeout(function(){Il(t._domNode,"visible"),t._domNode.setAttribute("aria-hidden","false")},0),this._codeEditor.layoutOverlayWidget(this);var i=!0;if(this._codeEditor.getConfiguration().contribInfo.find.seedSearchStringFromSelection&&n){var r=zl(this._codeEditor.getDomNode()),o=this._codeEditor.getScrolledVisiblePosition(n.getStartPosition()),s=r.left+o.left;if(o.topn.startLineNumber&&(i=!1);var a=Fl(this._domNode).left;s>a&&(i=!1);var l=this._codeEditor.getScrolledVisiblePosition(n.getEndPosition());r.left+l.left>a&&(i=!1)}}this._showViewZone(i)}},t.prototype._hide=function(e){var t=this;this._isVisible&&(this._isVisible=!1,this._updateButtons(),Cl(this._domNode,"visible"),this._domNode.setAttribute("aria-hidden","true"),e&&this._codeEditor.focus(),this._codeEditor.layoutOverlayWidget(this),this._codeEditor.changeViewZones(function(e){void 0!==t._viewZoneId&&(e.removeZone(t._viewZoneId),t._viewZoneId=void 0,t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()-t._viewZone.heightInPx))}))},t.prototype._layoutViewZone=function(){var e=this;this._isVisible&&void 0===this._viewZoneId&&this._codeEditor.changeViewZones(function(t){e._state.isReplaceRevealed?e._viewZone.heightInPx=64:e._viewZone.heightInPx=34,e._viewZoneId=t.addZone(e._viewZone),e._codeEditor.setScrollTop(e._codeEditor.getScrollTop()+e._viewZone.heightInPx)})},t.prototype._showViewZone=function(e){var t=this;void 0===e&&(e=!0),this._isVisible&&this._codeEditor.changeViewZones(function(n){var i=34;void 0!==t._viewZoneId?(t._state.isReplaceRevealed?(t._viewZone.heightInPx=64,i=30):(t._viewZone.heightInPx=34,i=-30),n.removeZone(t._viewZoneId)):t._viewZone.heightInPx=34,t._viewZoneId=n.addZone(t._viewZone),e&&t._codeEditor.setScrollTop(t._codeEditor.getScrollTop()+i)})},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(og),inputBackground:e.getColor(ng),inputForeground:e.getColor(ig),inputBorder:e.getColor(rg),inputValidationInfoBackground:e.getColor(sg),inputValidationInfoBorder:e.getColor(ag),inputValidationWarningBackground:e.getColor(lg),inputValidationWarningBorder:e.getColor(ug),inputValidationErrorBackground:e.getColor(dg),inputValidationErrorBorder:e.getColor(cg)};this._findInput.style(t),this._replaceInputBox.style(t)},t.prototype._tryUpdateWidgetWidth=function(){if(this._isVisible){var e=this._codeEditor.getConfiguration().layoutInfo.width,t=this._codeEditor.getConfiguration().layoutInfo.minimapWidth,n=!1,i=!1,r=!1;if(this._resized&&Ul(this._domNode)>411)return this._domNode.style.maxWidth=e-28-t-15+"px",void(this._replaceInputBox.inputElement.style.width=Ul(this._findInput.inputBox.inputElement)+"px");if(439+t>=e&&(i=!0),439+t-wb>=e&&(r=!0),439+t-wb>=e+50&&(n=!0),_l(this._domNode,"collapsed-find-widget",n),_l(this._domNode,"narrow-find-widget",r),_l(this._domNode,"reduced-find-widget",i),r||n||(this._domNode.style.maxWidth=e-28-t-15+"px"),this._resized){var o=Ul(this._findInput.inputBox.inputElement);o>0&&(this._replaceInputBox.inputElement.style.width=o+"px")}}},t.prototype.focusFindInput=function(){this._findInput.select(),this._findInput.focus()},t.prototype.focusReplaceInput=function(){this._replaceInputBox.select(),this._replaceInputBox.focus()},t.prototype.highlightFindOptions=function(){this._findInput.highlightFindOptions()},t.prototype._updateSearchScope=function(){if(this._toggleSelectionFind.checked){var e=this._codeEditor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,1));var t=this._state.currentMatch;e.startLineNumber!==e.endLineNumber&&(s.equalsRange(e,t)||this._state.change({searchScope:e},!0))}},t.prototype._onFindInputMouseDown=function(e){e.middleButton&&e.stopPropagation()},t.prototype._onFindInputKeyDown=function(e){return e.equals(3)?(this._codeEditor.getAction(Xy.NextMatchFindAction).run().done(null,ye),void e.preventDefault()):e.equals(1027)?(this._codeEditor.getAction(Xy.PreviousMatchFindAction).run().done(null,ye),void e.preventDefault()):e.equals(2)?(this._isReplaceVisible?this._replaceInputBox.focus():this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):void 0},t.prototype._onReplaceInputKeyDown=function(e){return e.equals(3)?(this._controller.replace(),void e.preventDefault()):e.equals(2051)?(this._controller.replaceAll(),void e.preventDefault()):e.equals(2)?(this._findInput.focusOnCaseSensitive(),void e.preventDefault()):e.equals(1026)?(this._findInput.focus(),void e.preventDefault()):e.equals(2066)?(this._codeEditor.focus(),void e.preventDefault()):void 0},t.prototype.getHorizontalSashTop=function(e){return 0},t.prototype.getHorizontalSashLeft=function(e){return 0},t.prototype.getHorizontalSashWidth=function(e){return 500},t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" ("+t.getLabel()+")":""},t.prototype._buildFindPart=function(){var e=this;this._findInput=this._register(new db(null,this._contextViewProvider,{width:221,label:gb,placeholder:mb,appendCaseSensitiveLabel:this._keybindingLabelFor(Xy.ToggleCaseSensitiveCommand),appendWholeWordsLabel:this._keybindingLabelFor(Xy.ToggleWholeWordCommand),appendRegexLabel:this._keybindingLabelFor(Xy.ToggleRegexCommand),validation:function(t){if(0===t.length)return null;if(!e._findInput.getRegex())return null;try{return new RegExp(t),null}catch(e){return{content:e.message}}}},this._contextKeyService)),this._findInput.setRegex(!!this._state.isRegex),this._findInput.setCaseSensitive(!!this._state.matchCase),this._findInput.setWholeWords(!!this._state.wholeWord),this._register(this._findInput.onKeyDown(function(t){return e._onFindInputKeyDown(t)})),this._register(this._findInput.inputBox.onDidChange(function(){e._state.change({searchString:e._findInput.getValue()},!0)})),this._register(this._findInput.onDidOptionChange(function(){e._state.change({isRegex:e._findInput.getRegex(),wholeWord:e._findInput.getWholeWords(),matchCase:e._findInput.getCaseSensitive()},!0)})),this._register(this._findInput.onCaseSensitiveKeyDown(function(t){t.equals(1026)&&e._isReplaceVisible&&(e._replaceInputBox.focus(),t.preventDefault())})),X.c&&this._register(this._findInput.onMouseDown(function(t){return e._onFindInputMouseDown(t)})),this._matchesCount=document.createElement("div"),this._matchesCount.className="matchesCount",this._updateMatchesCount(),this._prevBtn=this._register(new Eb({label:hb+this._keybindingLabelFor(Xy.PreviousMatchFindAction),className:"previous",onTrigger:function(){e._codeEditor.getAction(Xy.PreviousMatchFindAction).run().done(null,ye)}})),this._nextBtn=this._register(new Eb({label:pb+this._keybindingLabelFor(Xy.NextMatchFindAction),className:"next",onTrigger:function(){e._codeEditor.getAction(Xy.NextMatchFindAction).run().done(null,ye)}}));var t=document.createElement("div");return t.className="find-part",t.appendChild(this._findInput.domNode),t.appendChild(this._matchesCount),t.appendChild(this._prevBtn.domNode),t.appendChild(this._nextBtn.domNode),this._toggleSelectionFind=this._register(new Rb({parent:t,title:fb+this._keybindingLabelFor(Xy.ToggleSearchScopeCommand),onChange:function(){if(e._toggleSelectionFind.checked){var t=e._codeEditor.getSelection();1===t.endColumn&&t.endLineNumber>t.startLineNumber&&(t=t.setEndPosition(t.endLineNumber-1,1)),t.isEmpty()||e._state.change({searchScope:t},!0)}else e._state.change({searchScope:null},!0)}})),this._closeBtn=this._register(new Eb({label:yb+this._keybindingLabelFor(Xy.CloseFindWidgetCommand),className:"close-fw",onTrigger:function(){e._state.change({isRevealed:!1,searchScope:null},!1)},onKeyDown:function(t){t.equals(2)&&e._isReplaceVisible&&(e._replaceBtn.isEnabled()?e._replaceBtn.focus():e._codeEditor.focus(),t.preventDefault())}})),t.appendChild(this._closeBtn.domNode),t},t.prototype._buildReplacePart=function(){var e=this,t=document.createElement("div");t.className="replace-input",t.style.width="221px",this._replaceInputBox=this._register(new ub(t,null,{ariaLabel:Sb,placeholder:bb,history:[]},this._contextKeyService)),this._register(xl(this._replaceInputBox.inputElement,"keydown",function(t){return e._onReplaceInputKeyDown(t)})),this._register(xl(this._replaceInputBox.inputElement,"input",function(t){e._state.change({replaceString:e._replaceInputBox.value},!1)})),this._replaceBtn=this._register(new Eb({label:Ib+this._keybindingLabelFor(Xy.ReplaceOneAction),className:"replace",onTrigger:function(){e._controller.replace()},onKeyDown:function(t){t.equals(1026)&&(e._closeBtn.focus(),t.preventDefault())}})),this._replaceAllBtn=this._register(new Eb({label:Cb+this._keybindingLabelFor(Xy.ReplaceAllAction),className:"replace-all",onTrigger:function(){e._controller.replaceAll()}}));var n=document.createElement("div");return n.className="replace-part",n.appendChild(t),n.appendChild(this._replaceBtn.domNode),n.appendChild(this._replaceAllBtn.domNode),n},t.prototype._buildDomNode=function(){var e=this,t=this._buildFindPart(),n=this._buildReplacePart();this._toggleReplaceBtn=this._register(new Eb({label:_b,className:"toggle left",onTrigger:function(){e._state.change({isReplaceRevealed:!e._isReplaceVisible},!1),e._isReplaceVisible&&(e._replaceInputBox.width=e._findInput.inputBox.width),e._showViewZone()}})),this._toggleReplaceBtn.toggleClass("expand",this._isReplaceVisible),this._toggleReplaceBtn.toggleClass("collapse",!this._isReplaceVisible),this._toggleReplaceBtn.setExpanded(this._isReplaceVisible),this._domNode=document.createElement("div"),this._domNode.className="editor-widget find-widget",this._domNode.setAttribute("aria-hidden","true"),this._domNode.style.width="411px",this._domNode.appendChild(this._toggleReplaceBtn.domNode),this._domNode.appendChild(t),this._domNode.appendChild(n),this._buildSash()},t.prototype._buildSash=function(){var e=this;this._resizeSash=new dS(this._domNode,this,{orientation:rS.VERTICAL}),this._resized=!1;var t=411;this._register(this._resizeSash.onDidStart(function(n){t=Ul(e._domNode)})),this._register(this._resizeSash.onDidChange(function(n){e._resized=!0;var i=t+n.startX-n.currentX;if(!(i<411)){var r=i-Bb;i>(parseFloat(Ol(e._domNode).maxWidth)||0)||(e._domNode.style.width=i+"px",e._isReplaceVisible&&(e._replaceInputBox.width=r))}}))},t.ID="editor.contrib.findWidget",t}(mf),Rb=function(e){function t(n){var i=e.call(this)||this;return i._opts=n,i._domNode=document.createElement("div"),i._domNode.className="monaco-checkbox",i._domNode.title=i._opts.title,i._domNode.tabIndex=0,i._checkbox=document.createElement("input"),i._checkbox.type="checkbox",i._checkbox.className="checkbox",i._checkbox.id="checkbox-"+t._COUNTER++,i._checkbox.tabIndex=-1,i._label=document.createElement("label"),i._label.className="label",i._label.htmlFor=i._checkbox.id,i._label.tabIndex=-1,i._domNode.appendChild(i._checkbox),i._domNode.appendChild(i._label),i._opts.parent.appendChild(i._domNode),i.onchange(i._checkbox,function(e){i._opts.onChange()}),i}return cb(t,e),Object.defineProperty(t.prototype,"domNode",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"checked",{get:function(){return this._checkbox.checked},set:function(e){this._checkbox.checked=e},enumerable:!0,configurable:!0}),t.prototype.enable=function(){this._checkbox.removeAttribute("disabled")},t.prototype.disable=function(){this._checkbox.disabled=!0},t.prototype.setEnabled=function(e){e?(this.enable(),this.domNode.tabIndex=0):(this.disable(),this.domNode.tabIndex=-1)},t._COUNTER=0,t}(mf),Eb=function(e){function t(t){var n=e.call(this)||this;return n._opts=t,n._domNode=document.createElement("div"),n._domNode.title=n._opts.label,n._domNode.tabIndex=0,n._domNode.className="button "+n._opts.className,n._domNode.setAttribute("role","button"),n._domNode.setAttribute("aria-label",n._opts.label),n.onclick(n._domNode,function(e){n._opts.onTrigger(),e.preventDefault()}),n.onkeydown(n._domNode,function(e){if(e.equals(10)||e.equals(3))return n._opts.onTrigger(),void e.preventDefault();n._opts.onKeyDown&&n._opts.onKeyDown(e)}),n}return cb(t,e),Object.defineProperty(t.prototype,"domNode",{get:function(){return this._domNode},enumerable:!0,configurable:!0}),t.prototype.isEnabled=function(){return this._domNode.tabIndex>=0},t.prototype.focus=function(){this._domNode.focus()},t.prototype.setEnabled=function(e){_l(this._domNode,"disabled",!e),this._domNode.setAttribute("aria-disabled",String(!e)),this._domNode.tabIndex=e?0:-1},t.prototype.setExpanded=function(e){this._domNode.setAttribute("aria-expanded",String(!!e))},t.prototype.toggleClass=function(e,t){_l(this._domNode,e,t)},t}(mf);Ac(function(e,t){var n=function(e,n){n&&t.addRule(".monaco-editor "+e+" { background-color: "+n+"; }")};n(".findMatch",e.getColor(Lg)),n(".currentFindMatch",e.getColor(kg)),n(".findScope",e.getColor(Mg)),n(".find-widget",e.getColor(Ag));var i=e.getColor(tg);i&&t.addRule(".monaco-editor .find-widget { box-shadow: 0 2px 8px "+i+"; }");var r=e.getColor(zg);r&&t.addRule(".monaco-editor .findMatch { border: 1px "+("hc"===e.type?"dotted":"solid")+" "+r+"; box-sizing: border-box; }");var o=e.getColor(Fg);o&&t.addRule(".monaco-editor .currentFindMatch { border: 2px solid "+o+"; padding: 1px; box-sizing: border-box; }");var s=e.getColor(jg);s&&t.addRule(".monaco-editor .findScope { border: 1px "+("hc"===e.type?"dashed":"solid")+" "+s+"; }");var a=e.getColor(Qc);a&&t.addRule(".monaco-editor .find-widget { border: 2px solid "+a+"; }");var l=e.getColor(Hc);l&&t.addRule(".monaco-editor .find-widget.no-results .matchesCount { color: "+l+"; }");var u=e.getColor(Eg);if(u)t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: "+u+"; width: 3px !important; margin-left: -4px;}");else{var d=e.getColor(Rg);d&&t.addRule(".monaco-editor .find-widget .monaco-sash { background-color: "+d+"; width: 3px !important; margin-left: -4px;}")}});var Kb=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Nb=function(e){function t(t,n,i,r){var o=e.call(this)||this;o._hideSoon=o._register(new Fa(function(){return o._hide()},2e3)),o._isVisible=!1,o._editor=t,o._state=n,o._keybindingService=i,o._domNode=document.createElement("div"),o._domNode.className="findOptionsWidget",o._domNode.style.display="none",o._domNode.style.top="10px",o._domNode.setAttribute("role","presentation"),o._domNode.setAttribute("aria-hidden","true");var s=r.getTheme().getColor(og);return o.caseSensitive=o._register(new ZS({appendTitle:o._keybindingLabelFor(Xy.ToggleCaseSensitiveCommand),isChecked:o._state.matchCase,inputActiveOptionBorder:s})),o._domNode.appendChild(o.caseSensitive.domNode),o._register(o.caseSensitive.onChange(function(){o._state.change({matchCase:o.caseSensitive.checked},!1)})),o.wholeWords=o._register(new QS({appendTitle:o._keybindingLabelFor(Xy.ToggleWholeWordCommand),isChecked:o._state.wholeWord,inputActiveOptionBorder:s})),o._domNode.appendChild(o.wholeWords.domNode),o._register(o.wholeWords.onChange(function(){o._state.change({wholeWord:o.wholeWords.checked},!1)})),o.regex=o._register(new XS({appendTitle:o._keybindingLabelFor(Xy.ToggleRegexCommand),isChecked:o._state.isRegex,inputActiveOptionBorder:s})),o._domNode.appendChild(o.regex.domNode),o._register(o.regex.onChange(function(){o._state.change({isRegex:o.regex.checked},!1)})),o._editor.addOverlayWidget(o),o._register(o._state.onFindReplaceStateChange(function(e){var t=!1;e.isRegex&&(o.regex.checked=o._state.isRegex,t=!0),e.wholeWord&&(o.wholeWords.checked=o._state.wholeWord,t=!0),e.matchCase&&(o.caseSensitive.checked=o._state.matchCase,t=!0),!o._state.isRevealed&&t&&o._revealTemporarily()})),o._register(wl(o._domNode,function(e){return o._onMouseOut()})),o._register(Tl(o._domNode,"mouseover",function(e){return o._onMouseOver()})),o._applyTheme(r.getTheme()),o._register(r.onThemeChange(o._applyTheme.bind(o))),o}return Kb(t,e),t.prototype._keybindingLabelFor=function(e){var t=this._keybindingService.lookupKeybinding(e);return t?" ("+t.getLabel()+")":""},t.prototype.dispose=function(){this._editor.removeOverlayWidget(this),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype.getDomNode=function(){return this._domNode},t.prototype.getPosition=function(){return{preference:jm.TOP_RIGHT_CORNER}},t.prototype.highlightFindOptions=function(){this._revealTemporarily()},t.prototype._revealTemporarily=function(){this._show(),this._hideSoon.schedule()},t.prototype._onMouseOut=function(){this._hideSoon.schedule()},t.prototype._onMouseOver=function(){this._hideSoon.cancel()},t.prototype._show=function(){this._isVisible||(this._isVisible=!0,this._domNode.style.display="block")},t.prototype._hide=function(){this._isVisible&&(this._isVisible=!1,this._domNode.style.display="none")},t.prototype._applyTheme=function(e){var t={inputActiveOptionBorder:e.getColor(og)};this.caseSensitive.style(t),this.wholeWords.style(t),this.regex.style(t)},t.ID="editor.contrib.findOptionsWidget",t}(mf);Ac(function(e,t){var n=e.getColor(Ag);n&&t.addRule(".monaco-editor .findOptionsWidget { background-color: "+n+"; }");var i=e.getColor(tg);i&&t.addRule(".monaco-editor .findOptionsWidget { box-shadow: 0 2px 8px "+i+"; }");var r=e.getColor(Qc);r&&t.addRule(".monaco-editor .findOptionsWidget { border: 2px solid "+r+"; }")});var Pb=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Ob=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},$b=function(e,t){return function(n,i){t(n,i,e)}};function kb(e){var t=e.getSelection();if(t.startLineNumber===t.endLineNumber){if(!t.isEmpty())return e.getModel().getValueInRange(t);var n=e.getModel().getWordAtPosition(t.getStartPosition());if(n)return n.word}return null}var Lb=function(e){function t(t,n,i,r){var o=e.call(this)||this;return o._editor=t,o._findWidgetVisible=Wy.bindTo(n),o._storageService=i,o._clipboardService=r,o._updateHistoryDelayer=new Pa(500),o._state=o._register(new nS),o.loadQueryState(),o._register(o._state.onFindReplaceStateChange(function(e){return o._onStateChanged(e)})),o._model=null,o._register(o._editor.onDidChangeModel(function(){var e=o._editor.getModel()&&o._state.isRevealed;o.disposeModel(),o._state.change({searchScope:null,matchCase:o._storageService.getBoolean("editor.matchCase",tS.WORKSPACE,!1),wholeWord:o._storageService.getBoolean("editor.wholeWord",tS.WORKSPACE,!1),isRegex:o._storageService.getBoolean("editor.isRegex",tS.WORKSPACE,!1)},!1),e&&o._start({forceRevealReplace:!1,seedSearchStringFromSelection:!1,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!1})})),o}return Pb(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this.disposeModel(),e.prototype.dispose.call(this)},t.prototype.disposeModel=function(){this._model&&(this._model.dispose(),this._model=null)},t.prototype.getId=function(){return t.ID},t.prototype._onStateChanged=function(e){this.saveQueryState(e),e.isRevealed&&(this._state.isRevealed?this._findWidgetVisible.set(!0):(this._findWidgetVisible.reset(),this.disposeModel())),e.searchString&&this.setGlobalBufferTerm(this._state.searchString)},t.prototype.saveQueryState=function(e){e.isRegex&&this._storageService.store("editor.isRegex",this._state.actualIsRegex,tS.WORKSPACE),e.wholeWord&&this._storageService.store("editor.wholeWord",this._state.actualWholeWord,tS.WORKSPACE),e.matchCase&&this._storageService.store("editor.matchCase",this._state.actualMatchCase,tS.WORKSPACE)},t.prototype.loadQueryState=function(){this._state.change({matchCase:this._storageService.getBoolean("editor.matchCase",tS.WORKSPACE,this._state.matchCase),wholeWord:this._storageService.getBoolean("editor.wholeWord",tS.WORKSPACE,this._state.wholeWord),isRegex:this._storageService.getBoolean("editor.isRegex",tS.WORKSPACE,this._state.isRegex)},!1)},t.prototype.getState=function(){return this._state},t.prototype.closeFindWidget=function(){this._state.change({isRevealed:!1,searchScope:null},!1),this._editor.focus()},t.prototype.toggleCaseSensitive=function(){this._state.change({matchCase:!this._state.matchCase},!1)},t.prototype.toggleWholeWords=function(){this._state.change({wholeWord:!this._state.wholeWord},!1)},t.prototype.toggleRegex=function(){this._state.change({isRegex:!this._state.isRegex},!1)},t.prototype.toggleSearchScope=function(){if(this._state.searchScope)this._state.change({searchScope:null},!0);else{var e=this._editor.getSelection();1===e.endColumn&&e.endLineNumber>e.startLineNumber&&(e=e.setEndPosition(e.endLineNumber-1,1)),e.isEmpty()||this._state.change({searchScope:e},!0)}},t.prototype.setSearchString=function(e){this._state.isRegex&&(e=p(e)),this._state.change({searchString:e},!1)},t.prototype.highlightFindOptions=function(){},t.prototype._start=function(e){if(this.disposeModel(),this._editor.getModel()){var t,n={isRevealed:!0};e.seedSearchStringFromSelection&&(t=kb(this._editor))&&(this._state.isRegex?n.searchString=p(t):n.searchString=t),!n.searchString&&e.seedSearchStringFromGlobalClipboard&&(t=this.getGlobalBufferTerm())&&(n.searchString=t),e.forceRevealReplace?n.isReplaceRevealed=!0:this._findWidgetVisible.get()||(n.isReplaceRevealed=!1),this._state.change(n,!1),this._model||(this._model=new Jy(this._editor,this._state))}},t.prototype.start=function(e){this._start(e)},t.prototype.moveToNextMatch=function(){return!!this._model&&(this._model.moveToNextMatch(),!0)},t.prototype.moveToPrevMatch=function(){return!!this._model&&(this._model.moveToPrevMatch(),!0)},t.prototype.replace=function(){return!!this._model&&(this._model.replace(),!0)},t.prototype.replaceAll=function(){return!!this._model&&(this._model.replaceAll(),!0)},t.prototype.selectAllMatches=function(){return!!this._model&&(this._model.selectAllMatches(),this._editor.focus(),!0)},t.prototype.getGlobalBufferTerm=function(){return this._editor.getConfiguration().contribInfo.find.globalFindClipboard&&this._clipboardService&&!this._editor.getModel().isTooLargeForSyncing()?this._clipboardService.readFindText():""},t.prototype.setGlobalBufferTerm=function(e){this._editor.getConfiguration().contribInfo.find.globalFindClipboard&&this._clipboardService&&!this._editor.getModel().isTooLargeForSyncing()&&this._clipboardService.writeFindText(e)},t.ID="editor.contrib.findController",t=Ob([$b(1,Es),$b(2,iS),$b(3,aS)],t)}(Ae),Mb=function(e){function t(t,n,i,r,o,s,a){var l=e.call(this,t,i,s,a)||this;return l._contextViewService=n,l._contextKeyService=i,l._keybindingService=r,l._themeService=o,l}return Pb(t,e),t.prototype._start=function(t){this._widget||this._createFindWidget(),e.prototype._start.call(this,t),2===t.shouldFocus?this._widget.focusReplaceInput():1===t.shouldFocus&&this._widget.focusFindInput()},t.prototype.highlightFindOptions=function(){this._widget||this._createFindWidget(),this._state.isRevealed?this._widget.highlightFindOptions():this._findOptionsWidget.highlightFindOptions()},t.prototype._createFindWidget=function(){this._widget=this._register(new Ab(this._editor,this,this._state,this._contextViewService,this._keybindingService,this._contextKeyService,this._themeService)),this._findOptionsWidget=this._register(new Nb(this._editor,this._state,this._keybindingService,this._themeService))},Ob([$b(1,Ny),$b(2,Es),$b(3,Oy),$b(4,_c),$b(5,iS),$b(6,qt(aS))],t)}(Lb),Fb=function(e){function t(){return e.call(this,{id:Xy.StartFindAction,label:r("startFindAction","Find"),alias:"Find",precondition:null,kbOpts:{kbExpr:null,primary:2084,weight:100},menubarOpts:{menuId:ks.MenubarEditMenu,group:"3_find",title:r({key:"miFind",comment:["&& denotes a mnemonic"]},"&&Find"),order:1}})||this}return Pb(t,e),t.prototype.run=function(e,t){var n=Lb.get(t);n&&n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getConfiguration().contribInfo.find.seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:t.getConfiguration().contribInfo.find.globalFindClipboard,shouldFocus:1,shouldAnimate:!0})},t}(Ys),zb=function(e){function t(){return e.call(this,{id:Xy.StartFindWithSelection,label:r("startFindWithSelectionAction","Find With Selection"),alias:"Find With Selection",precondition:null,kbOpts:{kbExpr:null,primary:null,mac:{primary:2083},weight:100}})||this}return Pb(t,e),t.prototype.run=function(e,t){var n=Lb.get(t);n&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:!0,seedSearchStringFromGlobalClipboard:!1,shouldFocus:1,shouldAnimate:!0}),n.setGlobalBufferTerm(n.getState().searchString))},t}(Ys),jb=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Pb(t,e),t.prototype.run=function(e,t){var n=Lb.get(t);n&&!this._run(n)&&(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:0===n.getState().searchString.length&&t.getConfiguration().contribInfo.find.seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!0,shouldFocus:0,shouldAnimate:!0}),this._run(n))},t}(Ys),Ub=function(e){function t(){return e.call(this,{id:Xy.NextMatchFindAction,label:r("findNextMatchAction","Find Next"),alias:"Find Next",precondition:null,kbOpts:{kbExpr:na.focus,primary:61,mac:{primary:2085,secondary:[61]},weight:100}})||this}return Pb(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(jb),Gb=function(e){function t(){return e.call(this,{id:Xy.PreviousMatchFindAction,label:r("findPreviousMatchAction","Find Previous"),alias:"Find Previous",precondition:null,kbOpts:{kbExpr:na.focus,primary:1085,mac:{primary:3109,secondary:[1085]},weight:100}})||this}return Pb(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(jb),Wb=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return Pb(t,e),t.prototype.run=function(e,t){var n=Lb.get(t);if(n){var i=kb(t);i&&n.setSearchString(i),this._run(n)||(n.start({forceRevealReplace:!1,seedSearchStringFromSelection:t.getConfiguration().contribInfo.find.seedSearchStringFromSelection,seedSearchStringFromGlobalClipboard:!1,shouldFocus:0,shouldAnimate:!0}),this._run(n))}},t}(Ys),Vb=function(e){function t(){return e.call(this,{id:Xy.NextSelectionMatchFindAction,label:r("nextSelectionMatchFindAction","Find Next Selection"),alias:"Find Next Selection",precondition:null,kbOpts:{kbExpr:na.focus,primary:2109,weight:100}})||this}return Pb(t,e),t.prototype._run=function(e){return e.moveToNextMatch()},t}(Wb),qb=function(e){function t(){return e.call(this,{id:Xy.PreviousSelectionMatchFindAction,label:r("previousSelectionMatchFindAction","Find Previous Selection"),alias:"Find Previous Selection",precondition:null,kbOpts:{kbExpr:na.focus,primary:3133,weight:100}})||this}return Pb(t,e),t.prototype._run=function(e){return e.moveToPrevMatch()},t}(Wb),Yb=function(e){function t(){return e.call(this,{id:Xy.StartFindReplaceAction,label:r("startReplace","Replace"),alias:"Replace",precondition:null,kbOpts:{kbExpr:null,primary:2086,mac:{primary:2596},weight:100},menubarOpts:{menuId:ks.MenubarEditMenu,group:"3_find",title:r({key:"miReplace",comment:["&& denotes a mnemonic"]},"&&Replace"),order:2}})||this}return Pb(t,e),t.prototype.run=function(e,t){if(!t.getConfiguration().readOnly){var n=Lb.get(t),i=t.getSelection(),r=!i.isEmpty()&&i.startLineNumber===i.endLineNumber&&t.getConfiguration().contribInfo.find.seedSearchStringFromSelection,o=n.getState().searchString||r?2:1;n&&n.start({forceRevealReplace:!0,seedSearchStringFromSelection:r,seedSearchStringFromGlobalClipboard:t.getConfiguration().contribInfo.find.seedSearchStringFromSelection,shouldFocus:o,shouldAnimate:!0})}},t}(Ys);ea(Mb),Xs(Fb),Xs(zb),Xs(Ub),Xs(Gb),Xs(Vb),Xs(qb),Xs(Yb);var Hb=qs.bindToContribution(Lb.get);Qs(new Hb({id:Xy.CloseFindWidgetCommand,precondition:Wy,handler:function(e){return e.closeFindWidget()},kbOpts:{weight:105,kbExpr:na.focus,primary:9,secondary:[1033]}})),Qs(new Hb({id:Xy.ToggleCaseSensitiveCommand,precondition:null,handler:function(e){return e.toggleCaseSensitive()},kbOpts:{weight:105,kbExpr:na.focus,primary:Yy.primary,mac:Yy.mac,win:Yy.win,linux:Yy.linux}})),Qs(new Hb({id:Xy.ToggleWholeWordCommand,precondition:null,handler:function(e){return e.toggleWholeWords()},kbOpts:{weight:105,kbExpr:na.focus,primary:Hy.primary,mac:Hy.mac,win:Hy.win,linux:Hy.linux}})),Qs(new Hb({id:Xy.ToggleRegexCommand,precondition:null,handler:function(e){return e.toggleRegex()},kbOpts:{weight:105,kbExpr:na.focus,primary:Zy.primary,mac:Zy.mac,win:Zy.win,linux:Zy.linux}})),Qs(new Hb({id:Xy.ToggleSearchScopeCommand,precondition:null,handler:function(e){return e.toggleSearchScope()},kbOpts:{weight:105,kbExpr:na.focus,primary:Qy.primary,mac:Qy.mac,win:Qy.win,linux:Qy.linux}})),Qs(new Hb({id:Xy.ReplaceOneAction,precondition:Wy,handler:function(e){return e.replace()},kbOpts:{weight:105,kbExpr:na.focus,primary:3094}})),Qs(new Hb({id:Xy.ReplaceAllAction,precondition:Wy,handler:function(e){return e.replaceAll()},kbOpts:{weight:105,kbExpr:na.focus,primary:2563}})),Qs(new Hb({id:Xy.SelectAllMatchesAction,precondition:Wy,handler:function(e){return e.selectAllMatches()},kbOpts:{weight:105,kbExpr:na.focus,primary:515}})),n(71);var Zb=65535,Qb=function(){function e(e,t,n){if(e.length!==t.length||e.length>Zb)throw new Error("invalid startIndexes or endIndexes size");this._startIndexes=e,this._endIndexes=t,this._collapseStates=new Uint32Array(Math.ceil(e.length/32)),this._types=n}return e.prototype.ensureParentIndices=function(){var e=this;if(!this._parentsComputed){this._parentsComputed=!0;for(var t=[],n=function(n,i){var r=t[t.length-1];return e.getStartLineNumber(r)<=n&&e.getEndLineNumber(r)>=i},i=0,r=this._startIndexes.length;i16777215||s>16777215)throw new Error("startLineNumber or endLineNumber must not exceed 16777215");for(;t.length>0&&!n(o,s);)t.pop();var a=t.length>0?t[t.length-1]:-1;t.push(i),this._startIndexes[i]=o+((255&a)<<24),this._endIndexes[i]=s+((65280&a)<<16)}}},Object.defineProperty(e.prototype,"length",{get:function(){return this._startIndexes.length},enumerable:!0,configurable:!0}),e.prototype.getStartLineNumber=function(e){return 16777215&this._startIndexes[e]},e.prototype.getEndLineNumber=function(e){return 16777215&this._endIndexes[e]},e.prototype.getType=function(e){return this._types?this._types[e]:void 0},e.prototype.hasTypes=function(){return!!this._types},e.prototype.isCollapsed=function(e){var t=e/32|0,n=e%32;return 0!=(this._collapseStates[t]&1<>>24)+((4278190080&this._endIndexes[e])>>>16);return t===Zb?-1:t},e.prototype.contains=function(e,t){return this.getStartLineNumber(e)<=t&&this.getEndLineNumber(e)>=t},e.prototype.findIndex=function(e){var t=0,n=this._startIndexes.length;if(0===n)return-1;for(;t=0){if(this.getEndLineNumber(t)>=e)return t;for(t=this.getParentIndex(t);-1!==t;){if(this.contains(t,e))return t;t=this.getParentIndex(t)}}return-1},e.prototype.toString=function(){for(var e=[],t=0;t=this.endLineNumber},e.prototype.containsLine=function(e){return this.startLineNumber<=e&&e<=this.endLineNumber},e}(),Jb=function(){function e(e,t){this._updateEventEmitter=new Ne,this._textModel=e,this._decorationProvider=t,this._regions=new Qb(new Uint32Array(0),new Uint32Array(0)),this._editorDecorationIds=[],this._isInitialized=!1}return Object.defineProperty(e.prototype,"regions",{get:function(){return this._regions},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._updateEventEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"textModel",{get:function(){return this._textModel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"isInitialized",{get:function(){return this._isInitialized},enumerable:!0,configurable:!0}),e.prototype.toggleCollapseState=function(e){var t=this;if(e.length){var n={};this._decorationProvider.changeDecorations(function(i){for(var r=0,o=e;r=c))break;r(a,d===c),a++}}l=s()}for(;a0?e:null},e.prototype.applyMemento=function(e){if(Array.isArray(e)){for(var t=[],n=0,i=e;n=0;){var o=this._regions.toRegion(i);t&&!t(o,r)||n.push(o),r++,i=o.parentIndex}return n},e.prototype.getRegionAtLine=function(e){if(this._regions){var t=this._regions.findRange(e);if(t>=0)return this._regions.toRegion(t)}return null},e.prototype.getRegionsInside=function(e,t){for(var n=[],i=t&&2===t.length,r=i?[]:null,o=e?e.regionIndex+1:0,s=e?e.endLineNumber:Number.MAX_VALUE,a=o,l=this._regions.length;a0&&!u.containedBy(r[r.length-1]);)r.pop();r.push(u),t(u,r.length)&&n.push(u)}else t&&!t(u)||n.push(u)}return n},e}();function eI(e,t,n,i){void 0===n&&(n=Number.MAX_VALUE);var r=[];if(i&&i.length>0)for(var o=0,s=i;o1)){var u=e.getRegionsInside(l,function(e,i){return e.isCollapsed!==t&&i=0;s--)if(n!==r.isCollapsed(s)){var a=r.getStartLineNumber(s);t.test(i.getLineContent(a))&&o.push(r.toRegion(s))}e.toggleCollapseState(o)}function iI(e,t,n){for(var i=e.regions,r=[],o=i.length-1;o>=0;o--)n!==i.isCollapsed(o)&&t===i.getType(o)&&r.push(i.toRegion(o));e.toggleCollapseState(r)}var rI=function(){function e(e){this.editor=e,this.autoHideFoldingControls=!0}return e.prototype.getDecorationOption=function(t){return t?e.COLLAPSED_VISUAL_DECORATION:this.autoHideFoldingControls?e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION:e.EXPANDED_VISUAL_DECORATION},e.prototype.deltaDecorations=function(e,t){return this.editor.deltaDecorations(e,t)},e.prototype.changeDecorations=function(e){return this.editor.changeDecorations(e)},e.COLLAPSED_VISUAL_DECORATION=No.register({stickiness:Ve.NeverGrowsWhenTypingAtEdges,afterContentClassName:"inline-folded",linesDecorationsClassName:"folding collapsed"}),e.EXPANDED_AUTO_HIDE_VISUAL_DECORATION=No.register({stickiness:Ve.NeverGrowsWhenTypingAtEdges,linesDecorationsClassName:"folding"}),e.EXPANDED_VISUAL_DECORATION=No.register({stickiness:Ve.NeverGrowsWhenTypingAtEdges,linesDecorationsClassName:"folding alwaysShowFoldIcons"}),e}(),oI=function(){function e(e){var t=this;this._updateEventEmitter=new Ne,this._foldingModel=e,this._foldingModelListener=e.onDidChange(function(e){return t.updateHiddenRanges()}),this._hiddenRanges=[],e.regions.length&&this.updateHiddenRanges()}return Object.defineProperty(e.prototype,"onDidChange",{get:function(){return this._updateEventEmitter.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hiddenRanges",{get:function(){return this._hiddenRanges},enumerable:!0,configurable:!0}),e.prototype.updateHiddenRanges=function(){for(var e=!1,t=[],n=0,i=0,r=Number.MAX_VALUE,o=-1,a=this._foldingModel.regions;n0},e.prototype.isHidden=function(e){return null!==sI(this._hiddenRanges,e)},e.prototype.adjustSelections=function(e){for(var t=this,n=!1,i=this._foldingModel.textModel,r=null,o=function(e){return r&&function(e,t){return e>=t.startLineNumber&&e<=t.endLineNumber}(e,r)||(r=sI(t._hiddenRanges,e)),r?r.startLineNumber-1:null},s=0,a=e.length;s0&&(this._hiddenRanges=[],this._updateEventEmitter.fire(this._hiddenRanges)),this._foldingModelListener&&(this._foldingModelListener.dispose(),this._foldingModelListener=null)},e}();function sI(e,t){var n=function(e,t){var n=0,i=e.length;if(0===i)return 0;for(;n=0&&e[n].endLineNumber>=t?e[n]:null}var aI="indent",lI=function(){function e(e){this.editorModel=e,this.id=aI}return e.prototype.dispose=function(){},e.prototype.compute=function(e){var t=tr.getFoldingRules(this.editorModel.getLanguageIdentifier().id),n=t&&t.offSide,i=t&&t.markers;return he.b.as(function(e,t,n,i){void 0===i&&(i=5e3);var r=e.getOptions().tabSize,o=new uI(i),s=void 0;n&&(s=new RegExp("("+n.start.source+")|(?:"+n.end.source+")"));var a=[];a.push({indent:-1,line:e.getLineCount()+1,marker:!1});for(var l=e.getLineCount();l>0;l--){var u=e.getLineContent(l),d=Ao.computeIndentLevel(u,r),c=a[a.length-1];if(-1!==d){var g=void 0;if(s&&(g=u.match(s))){if(!g[1]){a.push({indent:-2,line:l,marker:!0});continue}for(var m=a.length-1;m>0&&!a[m].marker;)m--;if(m>0){a.length=m+1,c=a[m],o.insertFirst(l,c.line,d),c.marker=!1,c.indent=d,c.line=l;continue}}if(c.indent>d){do{a.pop(),c=a[a.length-1]}while(c.indent>d);var h=c.line-1;h-l>=1&&o.insertFirst(l,h,d)}c.indent===d?c.line=l:a.push({indent:d,line:l,marker:!1})}else t&&!c.marker&&(c.line=l)}return o.toIndentRanges(e)}(this.editorModel,n,i))},e}(),uI=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._indentOccurrences=[],this._length=0,this._foldingRangesLimit=e}return e.prototype.insertFirst=function(e,t,n){if(!(e>16777215||t>16777215)){var i=this._length;this._startIndexes[i]=e,this._endIndexes[i]=t,this._length++,n<1e3&&(this._indentOccurrences[n]=(this._indentOccurrences[n]||0)+1)}},e.prototype.toIndentRanges=function(e){if(this._length<=this._foldingRangesLimit){for(var t=new Uint32Array(this._length),n=new Uint32Array(this._length),i=this._length-1,r=0;i>=0;i--,r++)t[r]=this._startIndexes[i],n[r]=this._endIndexes[i];return new Qb(t,n)}var o=0,s=this._indentOccurrences.length;for(i=0;ithis._foldingRangesLimit){s=i;break}o+=a}}var l=e.getOptions().tabSize;for(t=new Uint32Array(this._foldingRangesLimit),n=new Uint32Array(this._foldingRangesLimit),i=this._length-1,r=0;i>=0;i--){var u=this._startIndexes[i],d=e.getLineContent(u),c=Ao.computeIndentLevel(d,l);(c0&&l.end>l.start&&l.end<=o&&i.push({start:l.start,end:l.end,rank:r,kind:l.kind})}}},Se)});return he.b.join(r).then(function(e){return i})}(this.providers,this.editorModel,e).then(function(e){return e?pI(e,t.limit):null})},e.prototype.dispose=function(){},e}(),hI=function(){function e(e){this._startIndexes=[],this._endIndexes=[],this._nestingLevels=[],this._nestingLevelCounts=[],this._types=[],this._length=0,this._foldingRangesLimit=e}return e.prototype.add=function(e,t,n,i){if(!(e>16777215||t>16777215)){var r=this._length;this._startIndexes[r]=e,this._endIndexes[r]=t,this._nestingLevels[r]=i,this._types[r]=n,this._length++,i<30&&(this._nestingLevelCounts[i]=(this._nestingLevelCounts[i]||0)+1)}},e.prototype.toIndentRanges=function(){if(this._length<=this._foldingRangesLimit){for(var e=new Uint32Array(this._length),t=new Uint32Array(this._length),n=0;nthis._foldingRangesLimit){r=n;break}i+=o}}e=new Uint32Array(this._foldingRangesLimit),t=new Uint32Array(this._foldingRangesLimit);for(var s=[],a=(n=0,0);nr.start)if(l.end<=r.end)o.push(r),r=l,i.add(l.start,l.end,l.kind&&l.kind.value,o.length);else{if(l.start>r.end){do{r=o.pop()}while(r&&l.start>r.end);r&&o.push(r),r=l}i.add(l.start,l.end,l.kind&&l.kind.value,o.length)}}else r=l,i.add(l.start,l.end,l.kind&&l.kind.value,o.length)}return i.toIndentRanges()}var fI="init",yI=function(){function e(e,t,n,i){this.editorModel=e,this.id=fI,t.length&&(this.decorationIds=e.deltaDecorations([],t.map(function(t){return{range:{startLineNumber:t.startLineNumber,startColumn:0,endLineNumber:t.endLineNumber,endColumn:e.getLineLength(t.endLineNumber)},options:{stickiness:Ve.NeverGrowsWhenTypingAtEdges}}})),this.timeout=setTimeout(n,i))}return e.prototype.dispose=function(){this.decorationIds&&(this.editorModel.deltaDecorations(this.decorationIds,[]),this.decorationIds=void 0),"number"==typeof this.timeout&&(clearTimeout(this.timeout),this.timeout=void 0)},e.prototype.compute=function(e){var t=[];if(this.decorationIds)for(var n=0,i=this.decorationIds;n0&&(this.rangeProvider=new mI(e,n))}return this.foldingStateMemento=null,this.rangeProvider},e.prototype.getFoldingModel=function(){return this.foldingModelPromise},e.prototype.onModelContentChanged=function(){var e=this;this.updateScheduler&&(this.foldingRegionPromise&&(this.foldingRegionPromise.cancel(),this.foldingRegionPromise=null),this.foldingModelPromise=this.updateScheduler.trigger(function(){if(!e.foldingModel)return null;var t=e.foldingRegionPromise=Ka(function(t){return e.getRangeProvider(e.foldingModel.textModel).compute(t)});return he.b.wrap(t.then(function(n){if(n&&t===e.foldingRegionPromise){var i=e.editor.getSelections(),r=i?i.map(function(e){return e.startLineNumber}):[];e.foldingModel.update(n,r)}return e.foldingModel}))}))},e.prototype.onHiddenRangesChanges=function(e){if(e.length){var t=this.editor.getSelections();t&&this.hiddenRangeModel.adjustSelections(t)&&this.editor.setSelections(t)}this.editor.setHiddenAreas(e)},e.prototype.onCursorPositionChanged=function(){this.hiddenRangeModel.hasRanges()&&this.cursorChangedScheduler.schedule()},e.prototype.revealCursor=function(){var e=this;this.getFoldingModel().then(function(t){if(t){var n=e.editor.getSelections();if(n&&n.length>0){for(var i=[],r=function(n){var r=n.selectionStartLineNumber;e.hiddenRangeModel.isHidden(r)&&i.push.apply(i,t.getAllRegionsAtLine(r,function(e){return e.isCollapsed&&r>e.startLineNumber}))},o=0,s=n;o0){n=r[0].getStartPosition();var o=t.getTopForPosition(n.lineNumber,n.column);i=t.getScrollTop()-o}}return new e(n,i)},e.prototype.restore=function(e){if(this._visiblePosition){var t=e.getTopForPosition(this._visiblePosition.lineNumber,this._visiblePosition.column);e.setScrollTop(t+this._visiblePositionScrollDelta)}},e}(),UI=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),GI=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},WI=function(e,t){return function(n,i){t(n,i,e)}};function VI(e){if((e=e.filter(function(e){return e.range})).length){for(var t=e[0].range,n=1;n1)){var n=this.editor.getModel(),i=this.editor.getPosition(),r=!1,o=this.editor.onDidChangeModelContent(function(e){if(e.isFlush)return r=!0,void o.dispose();for(var t=0,n=e.changes.length;t1)){var n=this.editor.getModel(),i=n.getOptions(),r=i.tabSize,o=i.insertSpaces,s=new zI(this.editor,5);OI(n,e,{tabSize:r,insertSpaces:o}).then(function(e){return t.workerService.computeMoreMinimalEdits(n.uri,e)}).then(function(e){s.validate(t.editor)&&!Je(e)&&(MI.execute(t.editor,e),VI(e))})}},e.prototype.getId=function(){return e.ID},e.prototype.dispose=function(){this.callOnDispose=xe(this.callOnDispose),this.callOnModel=xe(this.callOnModel)},e.ID="editor.contrib.formatOnPaste",e=GI([WI(1,FI)],e)}(),HI=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return UI(t,e),t.prototype.run=function(e,t){var n=this,i=e.get(FI),r=e.get(Ic),o=this._getFormattingEdits(t);if(!o)return he.b.as(void 0);var s=new zI(t,5);return o.then(function(e){return i.computeMoreMinimalEdits(t.getModel().uri,e)}).then(function(e){s.validate(t)&&!Je(e)&&(MI.execute(t,e),VI(e),t.focus())},function(e){if(!(e instanceof Error&&e.name===PI.Name))throw e;n._notifyNoProviderError(r,t.getModel().getLanguageIdentifier().language)})},t.prototype._notifyNoProviderError=function(e,t){e.info(r("no.provider","There is no formatter for '{0}'-files installed.",t))},t}(Ys),ZI=function(e){function t(){return e.call(this,{id:"editor.action.formatDocument",label:r("formatDocument.label","Format Document"),alias:"Format Document",precondition:na.writable,kbOpts:{kbExpr:na.editorTextFocus,primary:1572,linux:{primary:3111},weight:100},menuOpts:{when:na.hasDocumentFormattingProvider,group:"1_modification",order:1.3}})||this}return UI(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=t.getOptions();return $I(t,{tabSize:n.tabSize,insertSpaces:n.insertSpaces})},t.prototype._notifyNoProviderError=function(e,t){e.info(r("no.documentprovider","There is no document formatter for '{0}'-files installed.",t))},t}(HI),QI=function(e){function t(){return e.call(this,{id:"editor.action.formatSelection",label:r("formatSelection.label","Format Selection"),alias:"Format Code",precondition:_s.and(na.writable,na.hasNonEmptySelection),kbOpts:{kbExpr:na.editorTextFocus,primary:ss(2089,2084),weight:100},menuOpts:{when:_s.and(na.hasDocumentSelectionFormattingProvider,na.hasNonEmptySelection),group:"1_modification",order:1.31}})||this}return UI(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=t.getOptions(),i=n.tabSize,r=n.insertSpaces;return OI(t,e.getSelection(),{tabSize:i,insertSpaces:r})},t.prototype._notifyNoProviderError=function(e,t){e.info(r("no.selectionprovider","There is no selection formatter for '{0}'-files installed.",t))},t}(HI);ea(qI),ea(YI),Xs(ZI),Xs(QI),ts.registerCommand("editor.action.format",function(e){var t=e.get(Us).getFocusedCodeEditor();if(t)return(new(function(e){function t(){return e.call(this,{})||this}return UI(t,e),t.prototype._getFormattingEdits=function(e){var t=e.getModel(),n=e.getSelection(),i=t.getOptions(),r=i.tabSize,o=i.insertSpaces;return n.isEmpty()?$I(t,{tabSize:r,insertSpaces:o}):OI(t,n,{tabSize:r,insertSpaces:o})},t}(HI))).run(e,t)});var XI=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),JI=function(e){function t(){return e.call(this,{id:"editor.action.insertCursorAbove",label:r("mutlicursor.insertAbove","Add Cursor Above"),alias:"Add Cursor Above",precondition:null,kbOpts:{kbExpr:na.editorTextFocus,primary:2576,linux:{primary:1552,secondary:[3088]},weight:100},menubarOpts:{menuId:ks.MenubarSelectionMenu,group:"3_multi",title:r({key:"miInsertCursorAbove",comment:["&& denotes a mnemonic"]},"&&Add Cursor Above"),order:2}})||this}return XI(t,e),t.prototype.run=function(e,t,n){var i=n&&!0===n.logicalLine,r=t._getCursors(),o=r.context;o.config.readOnly||(o.model.pushStackElement(),r.setStates(n.source,$o.Explicit,Xo.addCursorUp(o,r.getAll(),i)),r.reveal(!0,1,0))},t}(Ys),eC=function(e){function t(){return e.call(this,{id:"editor.action.insertCursorBelow",label:r("mutlicursor.insertBelow","Add Cursor Below"),alias:"Add Cursor Below",precondition:null,kbOpts:{kbExpr:na.editorTextFocus,primary:2578,linux:{primary:1554,secondary:[3090]},weight:100},menubarOpts:{menuId:ks.MenubarSelectionMenu,group:"3_multi",title:r({key:"miInsertCursorBelow",comment:["&& denotes a mnemonic"]},"A&&dd Cursor Below"),order:3}})||this}return XI(t,e),t.prototype.run=function(e,t,n){var i=n&&!0===n.logicalLine,r=t._getCursors(),o=r.context;o.config.readOnly||(o.model.pushStackElement(),r.setStates(n.source,$o.Explicit,Xo.addCursorDown(o,r.getAll(),i)),r.reveal(!0,2,0))},t}(Ys),tC=function(e){function t(){return e.call(this,{id:"editor.action.insertCursorAtEndOfEachLineSelected",label:r("mutlicursor.insertAtEndOfEachLineSelected","Add Cursors to Line Ends"),alias:"Add Cursors to Line Ends",precondition:null,kbOpts:{kbExpr:na.editorTextFocus,primary:1575,weight:100},menubarOpts:{menuId:ks.MenubarSelectionMenu,group:"3_multi",title:r({key:"miInsertCursorAtEndOfEachLineSelected",comment:["&& denotes a mnemonic"]},"Add C&&ursors to Line Ends"),order:4}})||this}return XI(t,e),t.prototype.getCursorsForSelection=function(e,t,n){if(!e.isEmpty()){for(var i=e.startLineNumber;i1&&n.push(new Wn(e.endLineNumber,e.endColumn,e.endLineNumber,e.endColumn))}},t.prototype.run=function(e,t){var n=this,i=t.getModel(),r=[];t.getSelections().forEach(function(e){return n.getCursorsForSelection(e,i,r)}),r.length>0&&t.setSelections(r)},t}(Ys),nC=function(e,t,n){this.selections=e,this.revealRange=t,this.revealScrollType=n},iC=function(){function e(e,t,n,i,r,o,s){this._editor=e,this.findController=t,this.isDisconnectedFromFindController=n,this.searchText=i,this.wholeWord=r,this.matchCase=o,this.currentMatch=s}return e.create=function(t,n){var i=n.getState();if(!t.hasTextFocus()&&i.isRevealed&&i.searchString.length>0)return new e(t,n,!1,i.searchString,i.wholeWord,i.matchCase,null);var r,o,s=!1,a=t.getSelections();1===a.length&&a[0].isEmpty()?(s=!0,r=!0,o=!0):(r=i.wholeWord,o=i.matchCase);var l,u=t.getSelection(),d=null;if(u.isEmpty()){var c=t.getModel().getWordAtPosition(u.getStartPosition());if(!c)return null;l=c.word,d=new Wn(u.startLineNumber,c.startColumn,u.startLineNumber,c.endColumn)}else l=t.getModel().getValueInRange(u).replace(/\r\n/g,"\n");return new e(t,n,s,l,r,o,d)},e.prototype.addSelectionToNextFindMatch=function(){var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new nC(t.concat(e),e,0)},e.prototype.moveSelectionToNextFindMatch=function(){var e=this._getNextMatch();if(!e)return null;var t=this._editor.getSelections();return new nC(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getNextMatch=function(){if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findNextMatch(this.searchText,n.getEndPosition(),!1,this.matchCase,this.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1);return i?new Wn(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.addSelectionToPreviousFindMatch=function(){var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new nC(t.concat(e),e,0)},e.prototype.moveSelectionToPreviousFindMatch=function(){var e=this._getPreviousMatch();if(!e)return null;var t=this._editor.getSelections();return new nC(t.slice(0,t.length-1).concat(e),e,0)},e.prototype._getPreviousMatch=function(){if(this.currentMatch){var e=this.currentMatch;return this.currentMatch=null,e}this.findController.highlightFindOptions();var t=this._editor.getSelections(),n=t[t.length-1],i=this._editor.getModel().findPreviousMatch(this.searchText,n.getStartPosition(),!1,this.matchCase,this.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1);return i?new Wn(i.range.startLineNumber,i.range.startColumn,i.range.endLineNumber,i.range.endColumn):null},e.prototype.selectAll=function(){return this.findController.highlightFindOptions(),this._editor.getModel().findMatches(this.searchText,!0,!1,this.matchCase,this.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1,1073741824)},e}(),rC=function(e){function t(t){var n=e.call(this)||this;return n._editor=t,n._ignoreSelectionChange=!1,n._session=null,n._sessionDispose=[],n}return XI(t,e),t.get=function(e){return e.getContribution(t.ID)},t.prototype.dispose=function(){this._endSession(),e.prototype.dispose.call(this)},t.prototype.getId=function(){return t.ID},t.prototype._beginSessionIfNeeded=function(e){var t=this;if(!this._session){var n=iC.create(this._editor,e);if(!n)return;this._session=n;var i={searchString:this._session.searchText};this._session.isDisconnectedFromFindController&&(i.wholeWordOverride=1,i.matchCaseOverride=1,i.isRegexOverride=2),e.getState().change(i,!1),this._sessionDispose=[this._editor.onDidChangeCursorSelection(function(e){t._ignoreSelectionChange||t._endSession()}),this._editor.onDidBlurEditorText(function(){t._endSession()}),e.getState().onFindReplaceStateChange(function(e){(e.matchCase||e.wholeWord)&&t._endSession()})]}},t.prototype._endSession=function(){this._sessionDispose=xe(this._sessionDispose),this._session&&this._session.isDisconnectedFromFindController&&this._session.findController.getState().change({wholeWordOverride:0,matchCaseOverride:0,isRegexOverride:0},!1),this._session=null},t.prototype._setSelections=function(e){this._ignoreSelectionChange=!0,this._editor.setSelections(e),this._ignoreSelectionChange=!1},t.prototype._expandEmptyToWord=function(e,t){if(!t.isEmpty())return t;var n=e.getWordAtPosition(t.getStartPosition());return n?new Wn(t.startLineNumber,n.startColumn,t.startLineNumber,n.endColumn):t},t.prototype._applySessionResult=function(e){e&&(this._setSelections(e.selections),e.revealRange&&this._editor.revealRangeInCenterIfOutsideViewport(e.revealRange,e.revealScrollType))},t.prototype.getSession=function(e){return this._session},t.prototype.addSelectionToNextFindMatch=function(e){if(!this._session){var t=this._editor.getSelections();if(t.length>1){var n=e.getState().matchCase;if(!hC(this._editor.getModel(),t,n)){for(var i=this._editor.getModel(),r=[],o=0,s=t.length;o0&&n.isRegex)t=this._editor.getModel().findMatches(n.searchString,!0,n.isRegex,n.matchCase,n.wholeWord?this._editor.getConfiguration().wordSeparators:null,!1,1073741824);else{if(this._beginSessionIfNeeded(e),!this._session)return;t=this._session.selectAll()}if(t.length>0){for(var i=this._editor.getSelection(),r=0,o=t.length;r1){var l=o.getState().matchCase;if(!hC(t.getModel(),a,l))return null}s=iC.create(t,o)}if(!s)return null;var u=null,d=wn.has(n);if(s.currentMatch){if(d)return null;if(!t.getConfiguration().contribInfo.occurrencesHighlight)return null;u=s.currentMatch}if(/^[ \t]+$/.test(s.searchText))return null;if(s.searchText.length>200)return null;var c=o.getState(),g=c.matchCase;if(c.isRevealed){var m=c.searchString;g||(m=m.toLowerCase());var h=s.searchText;if(g||(h=h.toLowerCase()),m===h&&s.matchCase===c.matchCase&&s.wholeWord===c.wholeWord&&!c.isRegex)return null}return new gC(u,s.searchText,s.matchCase,s.wholeWord?t.getConfiguration().wordSeparators:null)},t.prototype._setState=function(e){if(gC.softEquals(this.state,e))this.state=e;else if(this.state=e,this.state){var n=this.editor.getModel();if(!n.isTooLargeForTokenization()){var i=wn.has(n),r=n.findMatches(this.state.searchText,!0,!1,this.state.matchCase,this.state.wordSeparators,!1).map(function(e){return e.range});r.sort(s.compareRangesUsingStarts);var o=this.editor.getSelections();o.sort(s.compareRangesUsingStarts);for(var a=[],l=0,u=0,d=r.length,c=o.length;l=c)a.push(g),l++;else{var m=s.compareRangesUsingStarts(g,o[u]);m<0?(!o[u].isEmpty()&&s.areIntersecting(g,o[u])||a.push(g),l++):m>0?u++:(l++,u++)}}var h=a.map(function(e){return{range:e,options:i?t._SELECTION_HIGHLIGHT:t._SELECTION_HIGHLIGHT_OVERVIEW}});this.decorations=this.editor.deltaDecorations(this.decorations,h)}}else this.decorations=this.editor.deltaDecorations(this.decorations,[])},t.prototype.dispose=function(){this._setState(null),e.prototype.dispose.call(this)},t.ID="editor.contrib.selectionHighlighter",t._SELECTION_HIGHLIGHT_OVERVIEW=No.register({stickiness:Ve.NeverGrowsWhenTypingAtEdges,className:"selectionHighlight",overviewRuler:{color:vc(Xg),darkColor:vc(Xg),position:ze.Center}}),t._SELECTION_HIGHLIGHT=No.register({stickiness:Ve.NeverGrowsWhenTypingAtEdges,className:"selectionHighlight"}),t}(Ae);function hC(e,t,n){for(var i=pC(e,t[0],!n),r=1,o=t.length;r=48&&e<=57},e.isVariableCharacter=function(e){return 95===e||e>=97&&e<=122||e>=65&&e<=90},e.prototype.text=function(e){this.value=e,this.pos=0},e.prototype.tokenText=function(e){return this.value.substr(e.pos,e.len)},e.prototype.next=function(){if(this.pos>=this.value.length)return{type:14,pos:this.pos,len:0};var t,n=this.pos,i=0,r=this.value.charCodeAt(n);if("number"==typeof(t=e._table[r]))return this.pos+=1,{type:t,pos:n,len:1};if(e.isDigitCharacter(r)){t=8;do{i+=1,r=this.value.charCodeAt(n+i)}while(e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}if(e.isVariableCharacter(r)){t=9;do{r=this.value.charCodeAt(n+ ++i)}while(e.isVariableCharacter(r)||e.isDigitCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}}t=10;do{i+=1,r=this.value.charCodeAt(n+i)}while(!isNaN(r)&&void 0===e._table[r]&&!e.isDigitCharacter(r)&&!e.isVariableCharacter(r));return this.pos+=i,{type:t,pos:n,len:i}},e._table=((fC={})[36]=0,fC[58]=1,fC[44]=2,fC[123]=3,fC[125]=4,fC[92]=5,fC[47]=6,fC[124]=7,fC[43]=11,fC[45]=12,fC[63]=13,fC),e}(),bC=function(){function e(){this._children=[]}return e.prototype.appendChild=function(e){return e instanceof IC&&this._children[this._children.length-1]instanceof IC?this._children[this._children.length-1].value+=e.value:(e.parent=this,this._children.push(e)),this},e.prototype.replace=function(e,t){var n=e.parent,i=n.children.indexOf(e),r=n.children.slice(0);r.splice.apply(r,[i,1].concat(t)),n._children=r,t.forEach(function(e){return e.parent=n})},Object.defineProperty(e.prototype,"children",{get:function(){return this._children},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"snippet",{get:function(){for(var e=this;;){if(!e)return;if(e instanceof AC)return e;e=e.parent}},enumerable:!0,configurable:!0}),e.prototype.toString=function(){return this.children.reduce(function(e,t){return e+t.toString()},"")},e.prototype.len=function(){return 0},e}(),IC=function(e){function t(t){var n=e.call(this)||this;return n.value=t,n}return yC(t,e),t.prototype.toString=function(){return this.value},t.prototype.len=function(){return this.value.length},t.prototype.clone=function(){return new t(this.value)},t}(bC),CC=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return yC(t,e),t}(bC),_C=function(e){function t(t){var n=e.call(this)||this;return n.index=t,n}return yC(t,e),t.compareByIndex=function(e,t){return e.index===t.index?0:e.isFinalTabstop?1:t.isFinalTabstop?-1:e.indext.index?1:0},Object.defineProperty(t.prototype,"isFinalTabstop",{get:function(){return 0===this.index},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"choice",{get:function(){return 1===this._children.length&&this._children[0]instanceof vC?this._children[0]:void 0},enumerable:!0,configurable:!0}),t.prototype.clone=function(){var e=new t(this.index);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(function(e){return e.clone()}),e},t}(CC),vC=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.options=[],t}return yC(t,e),t.prototype.appendChild=function(e){return e instanceof IC&&(e.parent=this,this.options.push(e)),this},t.prototype.toString=function(){return this.options[0].value},t.prototype.len=function(){return this.options[0].len()},t.prototype.clone=function(){var e=new t;return this.options.forEach(e.appendChild,e),e},t}(bC),TC=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return yC(t,e),t.prototype.resolve=function(e){var t=this;return e.replace(this.regexp,function(){for(var e="",n=0,i=t._children;nr.index?arguments[r.index]:"";e+=o=r.resolve(o)}else e+=r.toString()}return e})},t.prototype.toString=function(){return""},t.prototype.clone=function(){var e=new t;return e.regexp=new RegExp(this.regexp.source,(this.regexp.ignoreCase?"i":"")+(this.regexp.global?"g":"")),e._children=this.children.map(function(e){return e.clone()}),e},t}(bC),xC=function(e){function t(t,n,i,r){var o=e.call(this)||this;return o.index=t,o.shorthandName=n,o.ifValue=i,o.elseValue=r,o}return yC(t,e),t.prototype.resolve=function(e){return"upcase"===this.shorthandName?e?e.toLocaleUpperCase():"":"downcase"===this.shorthandName?e?e.toLocaleLowerCase():"":"capitalize"===this.shorthandName?e?e[0].toLocaleUpperCase()+e.substr(1):"":Boolean(e)&&"string"==typeof this.ifValue?this.ifValue:Boolean(e)||"string"!=typeof this.elseValue?e||"":this.elseValue},t.prototype.clone=function(){return new t(this.index,this.shorthandName,this.ifValue,this.elseValue)},t}(bC),wC=function(e){function t(t){var n=e.call(this)||this;return n.name=t,n}return yC(t,e),t.prototype.resolve=function(e){var t=e.resolve(this);return this.transform&&(t=this.transform.resolve(t||"")),void 0!==t&&(this._children=[new IC(t)],!0)},t.prototype.clone=function(){var e=new t(this.name);return this.transform&&(e.transform=this.transform.clone()),e._children=this.children.map(function(e){return e.clone()}),e},t}(CC);function BC(e,t){for(var n=e.slice();n.length>0;){var i=n.shift();if(!t(i))break;n.unshift.apply(n,i.children)}}var DC,AC=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return yC(t,e),Object.defineProperty(t.prototype,"placeholderInfo",{get:function(){if(!this._placeholders){var e,t=[];this.walk(function(n){return n instanceof _C&&(t.push(n),e=!e||e.index0?r.set(e.index,e.children):o.push(e)),!0});for(var a=0,l=o;a0&&t),!r.has(0)&&n&&i.appendChild(new _C(0)),i},e.prototype._accept=function(e,t){if(void 0===e||this._token.type===e){var n=!t||this._scanner.tokenText(this._token);return this._token=this._scanner.next(),n}return!1},e.prototype._backTo=function(e){return this._scanner.pos=e.pos+e.len,this._token=e,!1},e.prototype._until=function(e){if(14===this._token.type)return!1;for(var t=this._token;this._token.type!==e;)if(this._token=this._scanner.next(),14===this._token.type)return!1;var n=this._scanner.value.substring(t.pos,this._token.pos);return this._token=this._scanner.next(),n},e.prototype._parse=function(e){return this._parseEscaped(e)||this._parseTabstopOrVariableName(e)||this._parseComplexPlaceholder(e)||this._parseComplexVariable(e)||this._parseAnything(e)},e.prototype._parseEscaped=function(e){var t;return!!(t=this._accept(5,!0))&&(t=this._accept(0,!0)||this._accept(4,!0)||this._accept(5,!0)||t,e.appendChild(new IC(t)),!0)},e.prototype._parseTabstopOrVariableName=function(e){var t,n=this._token;return this._accept(0)&&(t=this._accept(9,!0)||this._accept(8,!0))?(e.appendChild(/^\d+$/.test(t)?new _C(Number(t)):new wC(t)),!0):this._backTo(n)},e.prototype._parseComplexPlaceholder=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(8,!0))))return this._backTo(n);var i=new _C(Number(t));if(this._accept(1))for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new IC("${"+t+":")),i.children.forEach(e.appendChild,e),!0}else{if(!(i.index>0&&this._accept(7)))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(var r=new vC;;){if(this._parseChoiceElement(r)){if(this._accept(2))continue;if(this._accept(7)&&(i.appendChild(r),this._accept(4)))return e.appendChild(i),!0}return this._backTo(n),!1}}},e.prototype._parseChoiceElement=function(e){for(var t=this._token,n=[];2!==this._token.type&&7!==this._token.type;){var i=void 0;if(!(i=(i=this._accept(5,!0))?this._accept(2,!0)||this._accept(7,!0)||i:this._accept(void 0,!0)))return this._backTo(t),!1;n.push(i)}return 0===n.length?(this._backTo(t),!1):(e.appendChild(new IC(n.join(""))),!0)},e.prototype._parseComplexVariable=function(e){var t,n=this._token;if(!(this._accept(0)&&this._accept(3)&&(t=this._accept(9,!0))))return this._backTo(n);var i=new wC(t);if(!this._accept(1))return this._accept(6)?this._parseTransform(i)?(e.appendChild(i),!0):(this._backTo(n),!1):this._accept(4)?(e.appendChild(i),!0):this._backTo(n);for(;;){if(this._accept(4))return e.appendChild(i),!0;if(!this._parse(i))return e.appendChild(new IC("${"+t+":")),i.children.forEach(e.appendChild,e),!0}},e.prototype._parseTransform=function(e){for(var t=new TC,n="",i="";!this._accept(6);){var r=void 0;if(r=this._accept(5,!0))n+=r=this._accept(6,!0)||r;else{if(14===this._token.type)return!1;n+=this._accept(void 0,!0)}}for(;!this._accept(6);)if(r=void 0,r=this._accept(5,!0))r=this._accept(6,!0)||r,t.appendChild(new IC(r));else if(!this._parseFormatString(t)&&!this._parseAnything(t))return!1;for(;!this._accept(4);){if(14===this._token.type)return!1;i+=this._accept(void 0,!0)}try{t.regexp=new RegExp(n,i)}catch(e){return!1}return e.transform=t,!0},e.prototype._parseFormatString=function(e){var t=this._token;if(!this._accept(0))return!1;var n=!1;this._accept(3)&&(n=!0);var i=this._accept(8,!0);if(!i)return this._backTo(t),!1;if(!n)return e.appendChild(new xC(Number(i))),!0;if(this._accept(4))return e.appendChild(new xC(Number(i))),!0;if(!this._accept(1))return this._backTo(t),!1;if(this._accept(6)){var r=this._accept(9,!0);return r&&this._accept(4)?(e.appendChild(new xC(Number(i),r)),!0):(this._backTo(t),!1)}if(this._accept(11)){if(o=this._until(4))return e.appendChild(new xC(Number(i),void 0,o,void 0)),!0}else if(this._accept(12)){if(s=this._until(4))return e.appendChild(new xC(Number(i),void 0,void 0,s)),!0}else if(this._accept(13)){var o;if((o=this._until(1))&&(s=this._until(4)))return e.appendChild(new xC(Number(i),void 0,o,s)),!0}else{var s;if(s=this._until(4))return e.appendChild(new xC(Number(i),void 0,void 0,s)),!0}return this._backTo(t),!1},e.prototype._parseAnything=function(e){return 14!==this._token.type&&(e.appendChild(new IC(this._scanner.tokenText(this._token))),this._accept(void 0),!0)},e}(),EC=(n(73),function(){function e(e){this._delegates=e}return e.prototype.resolve=function(e){for(var t=0,n=this._delegates;t=0){for(var i=[],r=0,o=this._placeholderGroups[this._placeholderGroupsIdx];r0&&this._editor.executeEdits("snippet.placeholderTransform",i)}return!0===t&&this._placeholderGroupsIdx0&&(this._placeholderGroupsIdx-=1),this._editor.getModel().changeDecorations(function(t){for(var i=new Set,r=[],o=0,s=n._placeholderGroups[n._placeholderGroupsIdx];o0},enumerable:!0,configurable:!0}),e.prototype.computePossibleSelections=function(){for(var e=new Map,t=0,n=this._placeholderGroups;t ")+'"'},e.prototype.insert=function(){var t=this,n=this._editor.getModel(),i=e.createEditsAndSnippets(this._editor,this._template,this._overwriteBefore,this._overwriteAfter,!1),r=i.edits,o=i.snippets;this._snippets=o;var s=n.pushEditOperations(this._editor.getSelections(),r,function(e){return t._snippets[0].hasPlaceholder?t._move(!0):e.map(function(e){return Wn.fromPositions(e.range.getEndPosition())})});this._editor.setSelections(s),this._editor.revealRange(s[0])},e.prototype.merge=function(t,n,i){var r=this;void 0===n&&(n=0),void 0===i&&(i=0),this._templateMerges.push([this._snippets[0]._nestingLevel,this._snippets[0]._placeholderGroupsIdx,t]);var o=e.createEditsAndSnippets(this._editor,t,n,i,!0),s=o.edits,a=o.snippets;this._editor.setSelections(this._editor.getModel().pushEditOperations(this._editor.getSelections(),s,function(e){for(var t=0,n=r._snippets;t0},e}(),LC={Visible:new Rs("suggestWidgetVisible",!1),MultipleSuggestions:new Rs("suggestWidgetMultipleSuggestions",!1),MakesTextEdit:new Rs("suggestionMakesTextEdit",!0),AcceptOnKey:new Rs("suggestionSupportsAcceptOnKey",!0),AcceptSuggestionsOnEnter:new Rs("acceptSuggestionOnEnter",!0)};function MC(e,t,n,i,r,o){void 0===n&&(n="bottom"),void 0===o&&(o=xa.None);var s=[],a="none"===n?function(e){return"snippet"!==e.type}:function(){return!0};t=t.clone();var l=_n.orderedGroups(e);"none"!==n&&DC&&l.unshift([DC]);var u=r||{triggerKind:gn.Invoke},d=!1;return $a(l.map(function(n){return function(){return Promise.all(n.map(function(n){if(Je(i)||!(i.indexOf(n)<0))return Promise.resolve(n.provideCompletionItems(e,t,u,o)).then(function(i){var r=s.length;if(i&&!Je(i.suggestions))for(var o=0,l=i.suggestions;o")}},e.prototype._doInsert=function(e,t,n,i,r){var o=this;void 0===t&&(t=0),void 0===n&&(n=0),void 0===i&&(i=!0),void 0===r&&(r=!0),this._snippetListener=xe(this._snippetListener),i&&this._editor.getModel().pushStackElement(),this._session?this._session.merge(e,t,n):(this._modelVersionId=this._editor.getModel().getAlternativeVersionId(),this._session=new kC(this._editor,e,t,n),this._session.insert()),r&&this._editor.getModel().pushStackElement(),this._updateState(),this._snippetListener=[this._editor.onDidChangeModelContent(function(e){return e.isFlush&&o.cancel()}),this._editor.onDidChangeModel(function(){return o.cancel()}),this._editor.onDidChangeCursorSelection(function(){return o._updateState()})]},e.prototype._updateState=function(){if(this._session){if(this._modelVersionId===this._editor.getModel().getAlternativeVersionId())return this.cancel();if(!this._session.hasPlaceholder)return this.cancel();if(this._session.isAtLastPlaceholder||!this._session.isSelectionWithinPlaceholders())return this.cancel();this._inSnippet.set(!0),this._hasPrevTabstop.set(!this._session.isAtFirstPlaceholder),this._hasNextTabstop.set(!this._session.isAtLastPlaceholder),this._handleChoice()}},e.prototype._handleChoice=function(){var e=this._session.choice;if(e){if(this._currentChoice!==e){this._currentChoice=e,this._editor.setSelections(this._editor.getSelections().map(function(e){return Wn.fromPositions(e.getStartPosition())}));var t=e.options[0];!function(e,t){setTimeout(function(){var n;(n=VC.onlyOnceSuggestions).push.apply(n,t),e.getContribution("editor.contrib.suggestController").triggerSuggest([VC])},0)}(this._editor,e.options.map(function(e,n){return{type:"value",label:e.value,insertText:e.value,sortText:Z("a",n),overwriteAfter:t.value.length}}))}}else this._currentChoice=void 0},e.prototype.finish=function(){for(;this._inSnippet.get();)this.next()},e.prototype.cancel=function(){this._inSnippet.reset(),this._hasPrevTabstop.reset(),this._hasNextTabstop.reset(),xe(this._snippetListener),xe(this._session),this._session=void 0,this._modelVersionId=-1},e.prototype.prev=function(){this._session.prev(),this._updateState()},e.prototype.next=function(){this._session.next(),this._updateState()},e.prototype.isInSnippet=function(){return this._inSnippet.get()},e.InSnippetMode=new Rs("inSnippetMode",!1),e.HasNextTabstop=new Rs("hasNextTabstop",!1),e.HasPrevTabstop=new Rs("hasPrevTabstop",!1),e=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([HC(1,qC),HC(2,Es)],e)}();ea(ZC);var QC=qs.bindToContribution(ZC.get);function XC(){for(var e=[],t=0;t0?[{start:0,end:t.length}]:[]:null}.bind(void 0,!0);function e_(e){return 97<=e&&e<=122}function t_(e){return 65<=e&&e<=90}function n_(e){return 48<=e&&e<=57}function i_(e){return 32===e||9===e||10===e||13===e}function r_(e){return e_(e)||t_(e)||n_(e)}function o_(e,t){return 0===t.length?t=[e]:e.end===t[0].start?t[0].start=e.start:t.unshift(e),t}function s_(e,t){for(var n=t;n0&&!r_(e.charCodeAt(n-1)))return n}return e.length}function a_(e,t,n,i){if(n===e.length)return[];if(i===t.length)return null;if(e[n]!==t[i].toLowerCase())return null;var r=null,o=i+1;for(r=a_(e,t,n+1,i+1);!r&&(o=s_(t,o))60)return null;var n=function(e){for(var t=0,n=0,i=0,r=0,o=0,s=0;s.2&&t<.8&&i>.6&&r<.2}(n)){if(!function(e){var t=e.upperPercent;return 0===e.lowerPercent&&t>.6}(n))return null;t=t.toLowerCase()}var i=null,r=0;for(e=e.toLowerCase();r=0&&(i.push(s),r=s+1)}return[i.length,i]}function d_(){for(var e=[],t=[0],n=1;n<=100;n++)t.push(-n);for(n=0;n<=100;n++){var i=t.slice(0);i[0]=-n,e.push(i)}return e}XC(JC,l_,function(e,t){var n=t.toLowerCase().indexOf(e.toLowerCase());return-1===n?null:[{start:n,end:n+e.length}]}),XC(JC,l_,function(e,t){return function e(t,n,i,r){if(i===t.length)return[];if(r===n.length)return null;if(t[i]===n[r]){var o;return(o=e(t,n,i+1,r+1))?o_({start:r,end:r+1},o):null}return e(t,n,i,r+1)}(e.toLowerCase(),t.toLowerCase(),0,0)}),new bt(1e4);var c_=d_(),g_=d_(),m_=d_(),h_=!1;function p_(e,t,n,i,r){function o(e,t,n){for(void 0===n&&(n=" ");e.length=e.length)return!1;switch(e.charCodeAt(t)){case 95:case 45:case 46:case 32:case 47:case 92:case 39:case 34:case 58:return!0;default:return!1}}function y_(e,t){if(t<0||t>=e.length)return!1;switch(e.charCodeAt(t)){case 32:case 9:return!0;default:return!1}}function S_(e,t,n,i){var r=e.length>100?100:e.length,o=t.length>100?100:t.length,s=0;for(void 0===n&&(n=r);so)){for(var a=e.toLowerCase(),l=t.toLowerCase(),u=s,d=0;u1?1:c),h=c_[u-1][d]+-1,p=c_[u][d-1]+-1;p>=h?p>m?(c_[u][d]=p,m_[u][d]=4):p===m?(c_[u][d]=p,m_[u][d]=6):(c_[u][d]=m,m_[u][d]=2):h>m?(c_[u][d]=h,m_[u][d]=1):h===m?(c_[u][d]=h,m_[u][d]=3):(c_[u][d]=m,m_[u][d]=2)}if(h_&&(console.log(p_(c_,e,r,t,o)),console.log(p_(m_,e,r,t,o)),console.log(p_(g_,e,r,t,o))),I_=0,C_=-100,__=s,v_=i,function e(t,n,i,r,o){if(!(I_>=10||i<-25)){for(var s=0;t>__&&n>0;){var a=g_[t][n],l=m_[t][n];if(4===l)n-=1,o?i-=5:r.isEmpty()||(i-=1),o=!1,s=0;else{if(!(2&l))return;if(4&l&&e(t,n-1,r.isEmpty()?i:i-1,r.slice(),o),i+=a,t-=1,n-=1,r.unshift(n),o=!0,1===a){if(s+=1,t===__&&!v_)return}else i+=1+s*(a-1),s=0}}I_+=1,(i-=n>=3?9:3*n)>C_&&(C_=i,b_=r)}}(r,o,r===o?1:0,new T_,!1),0!==I_)return[C_,b_.toArray()]}}}var b_,I_=0,C_=0,__=0,v_=!1,T_=function(){function e(){}return e.prototype.isEmpty=function(){return!this._data&&(!this._parent||this._parent.isEmpty())},e.prototype.unshift=function(e){this._data?this._data.unshift(e):this._data=[e]},e.prototype.slice=function(){var t=new e;return t._parent=this,t._parentLen=this._data?this._data.length:0,t},e.prototype.toArray=function(){if(!this._data)return this._parent.toArray();for(var e=[],t=this;t;)t._parent&&t._parent._data&&e.push(t._parent._data.slice(t._parent._data.length-t._parentLen)),t=t._parent;return Array.prototype.concat.apply(this._data,e)},e}();function x_(e,t,n){return function(e,t,n,i){var r=S_(e,t,i);if(e.length>=3)for(var o=Math.min(7,e.length-1),s=1;sr[0])&&(r=l))}}return r}(e,t,0,n)}function w_(e,t){if(!(t+1>=e.length)){var n=e[t],i=e[t+1];if(n!==i)return e.slice(0,t)+i+n+e.slice(t+2)}}var B_=function(){function e(t,n,i,r){void 0===r&&(r=Fr.contribInfo.suggest),this._snippetCompareFn=e._compareCompletionItems,this._items=t,this._column=n,this._options=r,this._refilterKind=1,this._lineContext=i,"top"===r.snippets?this._snippetCompareFn=e._compareCompletionItemsSnippetsUp:"bottom"===r.snippets&&(this._snippetCompareFn=e._compareCompletionItemsSnippetsDown)}return e.prototype.dispose=function(){for(var e=new Set,t=0,n=this._items;t2e3?S_:x_,a=0;at.score?-1:e.scoret.idx?1:0},e._compareCompletionItemsSnippetsDown=function(t,n){if(t.suggestion.type!==n.suggestion.type){if("snippet"===t.suggestion.type)return 1;if("snippet"===n.suggestion.type)return-1}return e._compareCompletionItems(t,n)},e._compareCompletionItemsSnippetsUp=function(t,n){if(t.suggestion.type!==n.suggestion.type){if("snippet"===t.suggestion.type)return-1;if("snippet"===n.suggestion.type)return 1}return e._compareCompletionItems(t,n)},e}(),D_=function(){function e(e,t,n){this.leadingLineContent=e.getLineContent(t.lineNumber).substr(0,t.column-1),this.leadingWord=e.getWordUntilPosition(t),this.lineNumber=t.lineNumber,this.column=t.column,this.auto=n}return e.shouldAutoTrigger=function(e){var t=e.getModel();if(!t)return!1;var n=e.getPosition();t.tokenizeIfCheap(n.lineNumber);var i=t.getWordAtPosition(n);return!!i&&i.endColumn===n.column&&!!isNaN(Number(i.word))},e}(),A_=function(){function e(e){var t=this;this._toDispose=[],this._triggerQuickSuggest=new La,this._triggerRefilter=new La,this._onDidCancel=new Ne,this._onDidTrigger=new Ne,this._onDidSuggest=new Ne,this.onDidCancel=this._onDidCancel.event,this.onDidTrigger=this._onDidTrigger.event,this.onDidSuggest=this._onDidSuggest.event,this._editor=e,this._state=0,this._requestPromise=null,this._completionModel=null,this._context=null,this._currentSelection=this._editor.getSelection()||new Wn(1,1,1,1),this._toDispose.push(this._editor.onDidChangeModel(function(){t._updateTriggerCharacters(),t.cancel()})),this._toDispose.push(this._editor.onDidChangeModelLanguage(function(){t._updateTriggerCharacters(),t.cancel()})),this._toDispose.push(this._editor.onDidChangeConfiguration(function(){t._updateTriggerCharacters(),t._updateQuickSuggest()})),this._toDispose.push(_n.onDidChange(function(){t._updateTriggerCharacters(),t._updateActiveSuggestSession()})),this._toDispose.push(this._editor.onDidChangeCursorSelection(function(e){t._onCursorChange(e)})),this._toDispose.push(this._editor.onDidChangeModelContent(function(e){t._refilterCompletionItems()})),this._updateTriggerCharacters(),this._updateQuickSuggest()}return e.prototype.dispose=function(){xe([this._onDidCancel,this._onDidSuggest,this._onDidTrigger,this._triggerCharacterListener,this._triggerQuickSuggest,this._triggerRefilter]),this._toDispose=xe(this._toDispose),xe(this._completionModel),this.cancel()},e.prototype._updateQuickSuggest=function(){this._quickSuggestDelay=this._editor.getConfiguration().contribInfo.quickSuggestionsDelay,(isNaN(this._quickSuggestDelay)||!this._quickSuggestDelay&&0!==this._quickSuggestDelay||this._quickSuggestDelay<0)&&(this._quickSuggestDelay=10)},e.prototype._updateTriggerCharacters=function(){var e=this;if(xe(this._triggerCharacterListener),!this._editor.getConfiguration().readOnly&&this._editor.getModel()&&this._editor.getConfiguration().contribInfo.suggestOnTriggerCharacters){for(var t=Object.create(null),n=0,i=_n.all(this._editor.getModel());nthis._context.column&&this._completionModel.incomplete.size>0&&0!==e.leadingWord.word.length){var t=this._completionModel.incomplete,n=this._completionModel.adopt(t);this.trigger({auto:2===this._state},!0,gt(t),n)}else{var i=this._completionModel.lineContext,r=!1;if(this._completionModel.lineContext={leadingLineContent:e.leadingLineContent,characterCountDelta:e.column-this._context.column},0===this._completionModel.items.length){if(D_.shouldAutoTrigger(this._editor)&&this._context.leadingWord.endColumn0)&&0===e.leadingWord.word.length)return void this.cancel()}this._onDidSuggest.fire({completionModel:this._completionModel,auto:this._context.auto,isFrozen:r})}}else this.cancel()},e}();function R_(e){return h(e)}n(75);var E_=function(){function e(e){this.domNode=document.createElement("span"),this.domNode.className="monaco-highlighted-label",this.didEverRender=!1,e.appendChild(this.domNode)}return Object.defineProperty(e.prototype,"element",{get:function(){return this.domNode},enumerable:!0,configurable:!0}),e.prototype.set=function(t,n,i,r){void 0===n&&(n=[]),void 0===i&&(i=""),t||(t=""),r&&(t=e.escapeNewLines(t,n)),this.didEverRender&&this.text===t&&this.title===i&&Cr(this.highlights,n)||(Array.isArray(n)||(n=[]),this.text=t,this.title=i,this.highlights=n,this.render())},e.prototype.render=function(){pl(this.domNode);for(var e,t=[],n=0,i=0;i"),t.push(R_(this.text.substring(n,e.start))),t.push(""),n=e.end),t.push(''),t.push(R_(this.text.substring(e.start,e.end))),t.push(""),n=e.end);n"),t.push(R_(this.text.substring(n))),t.push("")),this.domNode.innerHTML=t.join(""),this.domNode.title=this.title,this.didEverRender=!0},e.prototype.dispose=function(){this.text=null,this.highlights=null},e.escapeNewLines=function(e,t){var n=0,i=0;return e.replace(/\r\n|\r|\n/,function(e,r){i="\r\n"===e?-1:0,r+=n;for(var o=0,s=t;o=r&&(a.start+=i),a.end>=r&&(a.end+=i))}return n+=i,"⏎"})},e}();function K_(e,t){if(e.start>=t.end||t.start>=e.end)return{start:0,end:0};var n=Math.max(e.start,t.start),i=Math.min(e.end,t.end);return i-n<=0?{start:0,end:0}:{start:n,end:i}}function N_(e){return e.end-e.start<=0}function P_(e,t){var n=[],i={start:e.start,end:Math.min(t.start,e.end)},r={start:Math.max(t.end,e.start),end:e.end};return N_(i)||n.push(i),N_(r)||n.push(r),n}function O_(e,t){for(var n=[],i=0,r=t;i=o.range.end)){if(e.end=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},F_={useShadows:!0,verticalScrollMode:cr.Auto},z_=function(){function e(e,t,n,i){void 0===i&&(i=F_),this.virtualDelegate=t,this.renderers=new Map,this.splicing=!1,this.items=[],this.itemId=0,this.rangeMap=new k_;for(var r=0,o=n;r=0})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onMouseDblClick",{get:function(){var e=this;return Le(ke(ml(this.domNode,"dblclick"),function(t){return e.toMouseEvent(t)}),function(e){return e.index>=0})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onMouseDown",{get:function(){var e=this;return Le(ke(ml(this.domNode,"mousedown"),function(t){return e.toMouseEvent(t)}),function(e){return e.index>=0})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onContextMenu",{get:function(){var e=this;return Le(ke(ml(this.domNode,"contextmenu"),function(t){return e.toMouseEvent(t)}),function(e){return e.index>=0})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTouchStart",{get:function(){var e=this;return Le(ke(ml(this.domNode,"touchstart"),function(t){return e.toTouchEvent(t)}),function(e){return e.index>=0})},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onTap",{get:function(){var e=this;return Le(ke(ml(this.rowsContainer,Fm.Tap),function(t){return e.toGestureEvent(t)}),function(e){return e.index>=0})},enumerable:!0,configurable:!0}),e.prototype.toMouseEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target),n=t<0?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toTouchEvent=function(e){var t=this.getItemIndexFromEventTarget(e.target),n=t<0?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.toGestureEvent=function(e){var t=this.getItemIndexFromEventTarget(e.initialTarget),n=t<0?void 0:this.items[t];return{browserEvent:e,index:t,element:n&&n.element}},e.prototype.onScroll=function(e){try{this.render(e.scrollTop,e.height)}catch(t){throw console.log("Got bad scroll event:",e),t}},e.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},e.prototype.onDragOver=function(e){this.setupDragAndDropScrollInterval(),this.dragAndDropMouseY=e.posy},e.prototype.setupDragAndDropScrollInterval=function(){var e=this,t=Fl(this._domNode).top;this.dragAndDropScrollInterval||(this.dragAndDropScrollInterval=window.setInterval(function(){if(void 0!==e.dragAndDropMouseY){var n=e.dragAndDropMouseY-t,i=0,r=e.renderHeight-35;n<35?i=Math.max(-14,.2*(n-35)):n>r&&(i=Math.min(14,.2*(n-r))),e.scrollTop+=i}},10),this.cancelDragAndDropScrollTimeout(),this.dragAndDropScrollTimeout=window.setTimeout(function(){e.cancelDragAndDropScrollInterval(),e.dragAndDropScrollTimeout=null},1e3))},e.prototype.cancelDragAndDropScrollInterval=function(){this.dragAndDropScrollInterval&&(window.clearInterval(this.dragAndDropScrollInterval),this.dragAndDropScrollInterval=null),this.cancelDragAndDropScrollTimeout()},e.prototype.cancelDragAndDropScrollTimeout=function(){this.dragAndDropScrollTimeout&&(window.clearTimeout(this.dragAndDropScrollTimeout),this.dragAndDropScrollTimeout=null)},e.prototype.getItemIndexFromEventTarget=function(e){for(;e instanceof HTMLElement&&e!==this.rowsContainer;){var t=e,n=t.getAttribute("data-index");if(n){var i=Number(n);if(!isNaN(i))return i}e=t.parentElement}return-1},e.prototype.getRenderRange=function(e,t){return{start:this.rangeMap.indexAt(e),end:this.rangeMap.indexAfter(e+t-1)}},e.prototype.getNextToLastElement=function(e){var t=e[e.length-1];if(!t)return null;var n=this.items[t.end];return n&&n.row?n.row.domNode:null},e.prototype.dispose=function(){if(this.items){for(var e=0,t=this.items;e=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},W_=function(){function e(e){this.trait=e,this.renderedElements=[]}return Object.defineProperty(e.prototype,"templateId",{get:function(){return"template:"+this.trait.trait},enumerable:!0,configurable:!0}),e.prototype.renderTemplate=function(e){return e},e.prototype.renderElement=function(e,t,n){var i=et(this.renderedElements,function(e){return e.templateData===n});if(i>=0){var r=this.renderedElements[i];this.trait.unrender(n),r.index=t}else r={index:t,templateData:n},this.renderedElements.push(r);this.trait.renderIndex(t,n)},e.prototype.disposeElement=function(){},e.prototype.splice=function(e,t,n){for(var i=[],r=0;r=e+t&&i.push({index:o.index+n-t,templateData:o.templateData})}this.renderedElements=i},e.prototype.renderIndexes=function(e){for(var t=0,n=this.renderedElements;t-1&&this.trait.renderIndex(r,o)}},e.prototype.disposeTemplate=function(e){var t=et(this.renderedElements,function(t){return t.templateData===e});t<0||this.renderedElements.splice(t,1)},e}(),V_=function(){function e(e){this._trait=e,this._onChange=new Ne,this.indexes=[]}return Object.defineProperty(e.prototype,"onChange",{get:function(){return this._onChange.event},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"trait",{get:function(){return this._trait},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"renderer",{get:function(){return new W_(this)},enumerable:!0,configurable:!0}),e.prototype.splice=function(e,t,n){var i=n.length-t,r=e+t,o=this.indexes.filter(function(t){return t=r}).map(function(e){return e+i}));this.renderer.splice(e,t,n.length),this.set(o)},e.prototype.renderIndex=function(e,t){_l(t,this._trait,this.contains(e))},e.prototype.unrender=function(e){Cl(e,this._trait)},e.prototype.set=function(e){var t=this.indexes;this.indexes=e;var n=ov(t,e);return this.renderer.renderIndexes(n),this._onChange.fire({indexes:e}),t},e.prototype.get=function(){return this.indexes},e.prototype.contains=function(e){return this.indexes.some(function(t){return t===e})},e.prototype.dispose=function(){this.indexes=null,this._onChange=xe(this._onChange)},G_([Mm],e.prototype,"renderer",null),e}(),q_=function(e){function t(t){var n=e.call(this,"focused")||this;return n.getDomId=t,n}return U_(t,e),t.prototype.renderIndex=function(t,n){e.prototype.renderIndex.call(this,t,n),n.setAttribute("role","treeitem"),n.setAttribute("id",this.getDomId(t))},t}(V_),Y_=function(){function e(e,t,n){this.trait=e,this.view=t,this.getId=n}return e.prototype.splice=function(e,t,n){var i=this;if(!this.getId)return this.trait.splice(e,t,n.map(function(e){return!1}));var r=this.trait.get().map(function(e){return i.getId(i.view.element(e))}),o=n.map(function(e){return r.indexOf(i.getId(e))>-1});this.trait.splice(e,t,o)},e}();function H_(e){return"INPUT"===e.tagName||"TEXTAREA"===e.tagName}var Z_=function(){function e(e,t,n){this.list=e,this.view=t;var i=!(!1===n.multipleSelectionSupport);this.disposables=[],this.openController=n.openController||ev;var r=Fe(ml(t.domNode,"keydown")).filter(function(e){return!H_(e.target)}).map(function(e){return new il(e)});r.filter(function(e){return 3===e.keyCode}).on(this.onEnter,this,this.disposables),r.filter(function(e){return 16===e.keyCode}).on(this.onUpArrow,this,this.disposables),r.filter(function(e){return 18===e.keyCode}).on(this.onDownArrow,this,this.disposables),r.filter(function(e){return 11===e.keyCode}).on(this.onPageUpArrow,this,this.disposables),r.filter(function(e){return 12===e.keyCode}).on(this.onPageDownArrow,this,this.disposables),r.filter(function(e){return 9===e.keyCode}).on(this.onEscape,this,this.disposables),i&&r.filter(function(e){return(X.d?e.metaKey:e.ctrlKey)&&31===e.keyCode}).on(this.onCtrlA,this,this.disposables)}return e.prototype.onEnter=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(this.list.getFocus()),this.openController.shouldOpen(e.browserEvent)&&this.list.open(this.list.getFocus(),e.browserEvent)},e.prototype.onUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPrevious(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNext(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageUpArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusPreviousPage(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onPageDownArrow=function(e){e.preventDefault(),e.stopPropagation(),this.list.focusNextPage(),this.list.reveal(this.list.getFocus()[0]),this.view.domNode.focus()},e.prototype.onCtrlA=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection(nt(this.list.length)),this.view.domNode.focus()},e.prototype.onEscape=function(e){e.preventDefault(),e.stopPropagation(),this.list.setSelection([]),this.view.domNode.focus()},e.prototype.dispose=function(){this.disposables=xe(this.disposables)},e}(),Q_=function(){function e(e,t){this.list=e,this.view=t,this.disposables=[],this.disposables=[],Fe(ml(t.domNode,"keydown")).filter(function(e){return!H_(e.target)}).map(function(e){return new il(e)}).filter(function(e){return!(2!==e.keyCode||e.ctrlKey||e.metaKey||e.shiftKey||e.altKey)}).on(this.onTab,this,this.disposables)}return e.prototype.onTab=function(e){if(e.target===this.view.domNode){var t=this.list.getFocus();if(0!==t.length){var n=this.view.domElement(t[0]).querySelector("[tabIndex]");if(n&&n instanceof HTMLElement){var i=window.getComputedStyle(n);"hidden"!==i.visibility&&"none"!==i.display&&(e.preventDefault(),e.stopPropagation(),n.focus())}}}},e.prototype.dispose=function(){this.disposables=xe(this.disposables)},e}();function X_(e){return e instanceof MouseEvent&&2===e.button}var J_={isSelectionSingleChangeEvent:function(e){return X.d?e.browserEvent.metaKey:e.browserEvent.ctrlKey},isSelectionRangeChangeEvent:function(e){return e.browserEvent.shiftKey}},ev={shouldOpen:function(e){return!(e instanceof MouseEvent&&X_(e))}},tv=function(){function e(e,t,n){void 0===n&&(n={}),this.list=e,this.view=t,this.options=n,this.didJustPressContextMenuKey=!1,this.disposables=[],this.multipleSelectionSupport=!(!1===n.multipleSelectionSupport),this.multipleSelectionSupport&&(this.multipleSelectionController=n.multipleSelectionController||J_),this.openController=n.openController||ev,t.onMouseDown(this.onMouseDown,this,this.disposables),t.onMouseClick(this.onPointer,this,this.disposables),t.onMouseDblClick(this.onDoubleClick,this,this.disposables),t.onTouchStart(this.onMouseDown,this,this.disposables),t.onTap(this.onPointer,this,this.disposables),Gm.addTarget(t.domNode)}return Object.defineProperty(e.prototype,"onContextMenu",{get:function(){var e=this;return function(){for(var e=[],t=0;t0}).map(function(){var t=e.list.getFocus()[0];return{index:t,element:e.view.element(t),anchor:e.view.domElement(t)}}).filter(function(e){return!!e.anchor}).event,Fe(this.view.onContextMenu).filter(function(){return!e.didJustPressContextMenuKey}).map(function(e){var t=e.element,n=e.index,i=e.browserEvent;return{element:t,index:n,anchor:{x:i.clientX+1,y:i.clientY}}}).event)},enumerable:!0,configurable:!0}),e.prototype.isSelectionSingleChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionSingleChangeEvent(e):X.d?e.browserEvent.metaKey:e.browserEvent.ctrlKey},e.prototype.isSelectionRangeChangeEvent=function(e){return this.multipleSelectionController?this.multipleSelectionController.isSelectionRangeChangeEvent(e):e.browserEvent.shiftKey},e.prototype.isSelectionChangeEvent=function(e){return this.isSelectionSingleChangeEvent(e)||this.isSelectionRangeChangeEvent(e)},e.prototype.onMouseDown=function(e){!1===this.options.focusOnMouseDown?(e.browserEvent.preventDefault(),e.browserEvent.stopPropagation()):document.activeElement!==e.browserEvent.target&&this.view.domNode.focus();var t=this.list.getFocus()[0],n=this.list.getSelection();if(t=void 0===t?n[0]:t,this.multipleSelectionSupport&&this.isSelectionRangeChangeEvent(e))return this.changeSelection(e,t);var i=e.index;if(n.every(function(e){return e!==i})&&this.list.setFocus([i]),this.multipleSelectionSupport&&this.isSelectionChangeEvent(e))return this.changeSelection(e,t);this.options.selectOnMouseDown&&!X_(e.browserEvent)&&(this.list.setSelection([i]),this.openController.shouldOpen(e.browserEvent)&&this.list.open([i],e.browserEvent))},e.prototype.onPointer=function(e){if(!(this.multipleSelectionSupport&&this.isSelectionChangeEvent(e)||this.options.selectOnMouseDown)){var t=this.list.getFocus();this.list.setSelection(t),this.openController.shouldOpen(e.browserEvent)&&this.list.open(t,e.browserEvent)}},e.prototype.onDoubleClick=function(e){if(!this.multipleSelectionSupport||!this.isSelectionChangeEvent(e)){var t=this.list.getFocus();this.list.setSelection(t),this.list.pin(t)}},e.prototype.changeSelection=function(e,t){var n=e.index;if(this.isSelectionRangeChangeEvent(e)&&void 0!==t){var i=nt(Math.min(t,n),Math.max(t,n)+1),r=function(e,t){var n=e.indexOf(t);if(-1===n)return[];for(var i=[],r=n-1;r>=0&&e[r]===t-(n-r);)i.push(e[r--]);for(i.reverse(),r=n;r=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){i++,r++;continue}e[i]=e.length)n.push(t[r++]);else if(r>=t.length)n.push(e[i++]);else{if(e[i]===t[r]){n.push(e[i]),i++,r++;continue}e[i]this.view.length)throw new Error("Invalid start index: "+e);if(t<0)throw new Error("Invalid delete count: "+t);0===t&&0===n.length||this.eventBufferer.bufferEvents(function(){return i.spliceable.splice(e,t,n)})},Object.defineProperty(e.prototype,"length",{get:function(){return this.view.length},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"contentHeight",{get:function(){return this.view.getContentHeight()},enumerable:!0,configurable:!0}),e.prototype.layout=function(e){this.view.layout(e)},e.prototype.setSelection=function(e){for(var t=0,n=e;t=this.length)throw new Error("Invalid index "+i)}e=e.sort(sv),this.selection.set(e)},e.prototype.getSelection=function(){return this.selection.get()},e.prototype.setFocus=function(e){for(var t=0,n=e;t=this.length)throw new Error("Invalid index "+i)}e=e.sort(sv),this.focus.set(e)},e.prototype.focusNext=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.focus.get(),i=n.length>0?n[0]+e:0;this.setFocus(t?[i%this.length]:[Math.min(i,this.length-1)])}},e.prototype.focusPrevious=function(e,t){if(void 0===e&&(e=1),void 0===t&&(t=!1),0!==this.length){var n=this.focus.get(),i=n.length>0?n[0]-e:0;t&&i<0&&(i=(this.length+i%this.length)%this.length),this.setFocus([Math.max(i,0)])}},e.prototype.focusNextPage=function(){var e=this,t=this.view.indexAt(this.view.getScrollTop()+this.view.renderHeight);t=0===t?0:t-1;var n=this.view.element(t);if(this.getFocusedElements()[0]!==n)this.setFocus([t]);else{var i=this.view.getScrollTop();this.view.setScrollTop(i+this.view.renderHeight-this.view.elementHeight(t)),this.view.getScrollTop()!==i&&setTimeout(function(){return e.focusNextPage()},0)}},e.prototype.focusPreviousPage=function(){var e,t=this,n=this.view.getScrollTop();e=0===n?this.view.indexAt(n):this.view.indexAfter(n-1);var i=this.view.element(e);if(this.getFocusedElements()[0]!==i)this.setFocus([e]);else{var r=n;this.view.setScrollTop(n-this.view.renderHeight),this.view.getScrollTop()!==r&&setTimeout(function(){return t.focusPreviousPage()},0)}},e.prototype.focusLast=function(){0!==this.length&&this.setFocus([this.length-1])},e.prototype.focusFirst=function(){0!==this.length&&this.setFocus([0])},e.prototype.getFocus=function(){return this.focus.get()},e.prototype.getFocusedElements=function(){var e=this;return this.getFocus().map(function(t){return e.view.element(t)})},e.prototype.reveal=function(e,t){if(e<0||e>=this.length)throw new Error("Invalid index "+e);var n=this.view.getScrollTop(),i=this.view.elementTop(e),r=this.view.elementHeight(e);if(rn(t)){var o=r-this.view.renderHeight;this.view.setScrollTop(o*function(e,t,n){return Math.min(Math.max(e,0),1)}(t)+i)}else{var s=i+r,a=n+this.view.renderHeight;i=a&&this.view.setScrollTop(s-this.view.renderHeight)}},e.prototype.getElementDomId=function(e){return this.idPrefix+"_"+e},e.prototype.isDOMFocused=function(){return this.view.domNode===document.activeElement},e.prototype.getHTMLElement=function(){return this.view.domNode},e.prototype.open=function(e,t){for(var n=this,i=0,r=e;i=this.length)throw new Error("Invalid index "+o)}this._onOpen.fire({indexes:e,elements:e.map(function(e){return n.view.element(e)}),browserEvent:t})},e.prototype.pin=function(e){for(var t=0,n=e;t=this.length)throw new Error("Invalid index "+i)}this._onPin.fire(e)},e.prototype.style=function(e){this.styleController.style(e)},e.prototype.toListEvent=function(e){var t=this,n=e.indexes;return{indexes:n,elements:n.map(function(e){return t.view.element(e)})}},e.prototype._onFocusChange=function(){var e=this.focus.get();e.length>0?this.view.domNode.setAttribute("aria-activedescendant",this.getElementDomId(e[0])):this.view.domNode.removeAttribute("aria-activedescendant"),this.view.domNode.setAttribute("role","tree"),_l(this.view.domNode,"element-focused",e.length>0)},e.prototype._onSelectionChange=function(){var e=this.selection.get();_l(this.view.domNode,"selection-none",0===e.length),_l(this.view.domNode,"selection-single",1===e.length),_l(this.view.domNode,"selection-multiple",e.length>1)},e.prototype.dispose=function(){this._onDidDispose.fire(),this.disposables=xe(this.disposables)},e.InstanceCount=0,G_([Mm],e.prototype,"onFocusChange",null),G_([Mm],e.prototype,"onSelectionChange",null),e}();function uv(e,t){var n=Object.create(null);for(var i in t){var r=t[i];"string"==typeof r?n[i]=e.getColor(r):"function"==typeof r&&(n[i]=r(e))}return n}function dv(e,t,n){return function(e,t,n){function i(i){var r=uv(e.getTheme(),t);"function"==typeof n?n(r):n.style(r)}return i(e.getTheme()),e.onThemeChange(i)}(t,Ir(n||Object.create(null),cv,!1),e)}var cv={listFocusBackground:gg,listFocusForeground:mg,listActiveSelectionBackground:hg,listActiveSelectionForeground:pg,listFocusAndSelectionBackground:hg,listFocusAndSelectionForeground:pg,listInactiveSelectionBackground:fg,listInactiveSelectionForeground:yg,listInactiveFocusBackground:Sg,listHoverBackground:bg,listHoverForeground:Ig,listDropBackground:Cg,listFocusOutline:Xc,listSelectionOutline:Xc,listHoverOutline:Xc},gv=Vt("openerService"),mv=Object.freeze({_serviceBrand:void 0,open:function(){return he.b.as(void 0)}}),hv=Vt("modeService"),pv=function(e,t){return function(n,i){t(n,i,e)}},fv=function(){function e(e,t,n){void 0===n&&(n=mv),this._editor=e,this._modeService=t,this._openerService=n,this._onDidRenderCodeBlock=new Ne,this.onDidRenderCodeBlock=this._onDidRenderCodeBlock.event}return e.prototype.getOptions=function(e){var t=this;return{codeBlockRenderer:function(e,n){var i=e?t._modeService.getModeIdForLanguageName(e):t._editor.getModel().getLanguageIdentifier().language;return t._modeService.getOrCreateMode(i).then(function(e){return function(e,t){return function(e,t){for(var n='
    ',i=e.split(/\r\n|\r|\n/),r=t.getInitialState(),o=0,s=i.length;o0&&(n+="
    ");var l=t.tokenize2(a,r,0);nr.convertToEndOffset(l.tokens,a.length);for(var u=new nr(l.tokens,a).inflate(),d=0,c=0,g=u.getCount();c'+h(a.substring(d,p))+"",d=p}r=l.endState}return n+"
    "}(e,function(e){var t=Ln.get(e);return t||{getInitialState:function(){return Bi},tokenize:void 0,tokenize2:function(e,t,n){return Ai(0,0,t,n)}}}(t))}(n,i)}).then(function(e){return''+e+""})},codeBlockRenderCallback:function(){return t._onDidRenderCodeBlock.fire()},actionHandler:{callback:function(e){t._openerService.open(ae.parse(e)).then(void 0,ye)},disposeables:e}}},e.prototype.render=function(e){var t=[];return{element:e?function(e,t){void 0===t&&(t={});var n,i=pS(t),r=new Promise(function(e){return n=e}),o=new hS.Renderer;o.image=function(e,t,n){var i=[];if(e){var r=e.split("|").map(function(e){return e.trim()});e=r[0];var o=r[1];if(o){var s=/height=(\d+)/.exec(o),a=/width=(\d+)/.exec(o),l=s&&s[1],u=a&&a[1],d=isFinite(parseInt(u)),c=isFinite(parseInt(l));d&&i.push('width="'+u+'"'),c&&i.push('height="'+l+'"')}}var g=[];return e&&g.push('src="'+e+'"'),n&&g.push('alt="'+n+'"'),t&&g.push('title="'+t+'"'),i.length&&(g=g.concat(i)),""},o.link=function(t,n,i){return t===i&&(i=mS(i)),n=mS(n),!(t=mS(t))||t.match(/^data:|javascript:/i)||t.match(/^command:/i)&&!e.isTrusted?i:''+i+""},o.paragraph=function(e){return"

    "+e+"

    "},t.codeBlockRenderer&&(o.code=function(e,n){var o=t.codeBlockRenderer(n,e),s=cS.nextId(),a=Promise.all([o,r]).then(function(e){var t=e[0],n=i.querySelector('div[data-code="'+s+'"]');n&&(n.innerHTML=t)}).catch(function(e){});return t.codeBlockRenderCallback&&a.then(t.codeBlockRenderCallback),'
    '+h(e)+"
    "}),t.actionHandler&&t.actionHandler.disposeables.push(xl(i,"click",function(e){var n=e.target;if("A"===n.tagName||(n=n.parentElement)&&"A"===n.tagName){var i=n.dataset.href;i&&t.actionHandler.callback(i,e)}}));var s={sanitize:!0,renderer:o};return i.innerHTML=hS(e.value,s),n(),i}(e,this.getOptions(t)):document.createElement("span"),dispose:function(){return xe(t)}}},function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([pv(1,hv),pv(2,qt(gv))],e)}(),yv=Object.assign||function(e){for(var t,n=1,i=arguments.length;n1),o)i?this.setState(0):this.setState(2),this.completionModel=null;else{var s=this.completionModel.stats;s.wasAutomaticallyTriggered=!!i,this.telemetryService.publicLog("suggestWidget",yv({},s,this.editor.getTelemetryData())),this.list.splice(0,this.list.length,this.completionModel.items),n?this.setState(4):this.setState(3),this.list.reveal(t,t),this.list.setFocus([t]),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)}}},e.prototype.selectNextPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageDown(),!0;case 1:return!this.isAuto;default:return this.list.focusNextPage(),!0}},e.prototype.selectNext=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusNext(1,!0),!0}},e.prototype.selectLast=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollBottom(),!0;case 1:return!this.isAuto;default:return this.list.focusLast(),!0}},e.prototype.selectPreviousPage=function(){switch(this.state){case 0:return!1;case 5:return this.details.pageUp(),!0;case 1:return!this.isAuto;default:return this.list.focusPreviousPage(),!0}},e.prototype.selectPrevious=function(){switch(this.state){case 0:return!1;case 1:return!this.isAuto;default:return this.list.focusPrevious(1,!0),!1}},e.prototype.selectFirst=function(){switch(this.state){case 0:return!1;case 5:return this.details.scrollTop(),!0;case 1:return!this.isAuto;default:return this.list.focusFirst(),!0}},e.prototype.getFocusedItem=function(){if(0!==this.state&&2!==this.state&&1!==this.state)return{item:this.list.getFocusedElements()[0],index:this.list.getFocus()[0],model:this.completionModel}},e.prototype.toggleDetailsFocus=function(){5===this.state?(this.setState(3),this.detailsBorderColor&&(this.details.element.style.borderColor=this.detailsBorderColor)):3===this.state&&this.expandDocsSettingFromStorage()&&(this.setState(5),this.detailsFocusBorderColor&&(this.details.element.style.borderColor=this.detailsFocusBorderColor)),this.telemetryService.publicLog("suggestWidget:toggleDetailsFocus",this.editor.getTelemetryData())},e.prototype.toggleDetails=function(){if(Bv(this.list.getFocusedElements()[0]))if(this.expandDocsSettingFromStorage())this.updateExpandDocsSetting(!1),su(this.details.element),Cl(this.element,"docs-side"),Cl(this.element,"docs-below"),this.editor.layoutContentWidget(this),this.telemetryService.publicLog("suggestWidget:collapseDetails",this.editor.getTelemetryData());else{if(3!==this.state&&5!==this.state&&4!==this.state)return;this.updateExpandDocsSetting(!0),this.showDetails(),this.telemetryService.publicLog("suggestWidget:expandDetails",this.editor.getTelemetryData())}},e.prototype.showDetails=function(){this.expandSideOrBelow(),ou(this.details.element),this.details.render(this.list.getFocusedElements()[0]),this.details.element.style.maxHeight=this.maxWidgetHeight+"px",this.listElement.style.marginTop="0px",this.editor.layoutContentWidget(this),this.adjustDocsPosition(),this.editor.focus(),this._ariaAlert(this.details.getAriaLabel())},e.prototype.show=function(){var e=this,t=this.updateListHeight();t!==this.listHeight&&(this.editor.layoutContentWidget(this),this.listHeight=t),this.suggestWidgetVisible.set(!0),this.showTimeout.cancelAndSet(function(){Il(e.element,"visible"),e.onDidShowEmitter.fire(e)},100)},e.prototype.hide=function(){this.suggestWidgetVisible.reset(),this.suggestWidgetMultipleSuggestions.reset(),Cl(this.element,"visible")},e.prototype.hideWidget=function(){clearTimeout(this.loadingTimeout),this.setState(0),this.onDidHideEmitter.fire(this)},e.prototype.getPosition=function(){return 0===this.state?null:{position:this.editor.getPosition(),preference:[zm.BELOW,zm.ABOVE]}},e.prototype.getDomNode=function(){return this.element},e.prototype.getId=function(){return e.ID},e.prototype.updateListHeight=function(){var e=0;if(2===this.state||1===this.state)e=this.unfocusedHeight;else{var t=this.list.contentHeight/this.unfocusedHeight;e=Math.min(t,12)*this.unfocusedHeight}return this.element.style.lineHeight=this.unfocusedHeight+"px",this.listElement.style.height=e+"px",this.list.layout(e),e},e.prototype.adjustDocsPosition=function(){var e=this.editor.getConfiguration().fontInfo.lineHeight,t=this.editor.getScrolledVisiblePosition(this.editor.getPosition()),n=zl(this.editor.getDomNode()),i=n.left+t.left,r=n.top+t.top+t.height,o=zl(this.element),s=o.left,a=o.top;sa&&this.details.element.offsetHeight>this.listElement.offsetHeight&&(this.listElement.style.marginTop=this.details.element.offsetHeight-this.listElement.offsetHeight+"px")},e.prototype.expandSideOrBelow=function(){if(!Bv(this.focusedItem)&&this.firstFocusInCurrentList)return Cl(this.element,"docs-side"),void Cl(this.element,"docs-below");var e=this.element.style.maxWidth.match(/(\d+)px/);!e||Number(e[1])=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([Sv(1,Ss),Sv(2,Es),Sv(3,_c),Sv(4,iS),Sv(5,Oy),Sv(6,hv),Sv(7,gv)],e)}();Ac(function(e,t){var n=e.getColor(Tv);n&&t.addRule(".monaco-editor .suggest-widget .monaco-list .monaco-list-row .monaco-highlighted-label .highlight { color: "+n+"; }");var i=e.getColor(_v);i&&t.addRule(".monaco-editor .suggest-widget { color: "+i+"; }");var r=e.getColor(Jc);r&&t.addRule(".monaco-editor .suggest-widget a { color: "+r+"; }");var o=e.getColor(eg);o&&t.addRule(".monaco-editor .suggest-widget code { background-color: "+o+"; }")});var Ev=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Kv=function(){function e(){}return e.prototype.select=function(e,t,n){if(0===n.length)return 0;for(var i=n[0].score,r=1;rs&&d.type===l.type&&d.insertText===l.insertText&&(s=d.touch,o=a)}return-1===o?e.prototype.select.call(this,t,n,i):o},t.prototype.toJSON=function(){var e=[];return this._cache.forEach(function(t,n){e.push([n,t])}),e},t.prototype.fromJSON=function(e){this._cache.clear();for(var t=0,n=e;t0){this._seq=e[0][1].touch+1;for(var t=0,n=e;t=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([function(e,t){return function(n,i){t(n,i,e)}}(1,iS)],e)}(),kv=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Lv=function(e,t){return function(n,i){t(n,i,e)}},Mv=function(){function e(e,t,n){var i=this;this._disposables=[],this._activeAcceptCharacters=new Set,this._disposables.push(t.onDidShow(function(){return i._onItem(t.getFocusedItem())})),this._disposables.push(t.onDidFocus(this._onItem,this)),this._disposables.push(t.onDidHide(this.reset,this)),this._disposables.push(e.onWillType(function(t){if(i._activeItem){var r=t[t.length-1];i._activeAcceptCharacters.has(r)&&e.getConfiguration().contribInfo.acceptSuggestionOnCommitCharacter&&n(i._activeItem)}}))}return e.prototype._onItem=function(e){if(e&&!Je(e.item.suggestion.commitCharacters)){this._activeItem=e,this._activeAcceptCharacters.clear();for(var t=0,n=e.item.suggestion.commitCharacters;t0&&this._activeAcceptCharacters.add(i[0])}}else this.reset()},e.prototype.reset=function(){this._activeItem=void 0},e.prototype.dispose=function(){xe(this._disposables)},e}(),Fv=function(){function e(e,t,n,i){var r=this;this._editor=e,this._commandService=t,this._contextKeyService=n,this._instantiationService=i,this._toDispose=[],this._model=new A_(this._editor),this._memory=i.createInstance($v,this._editor.getConfiguration().contribInfo.suggestSelection),this._toDispose.push(this._model.onDidTrigger(function(e){r._widget||r._createSuggestWidget(),r._widget.showTriggered(e.auto)})),this._toDispose.push(this._model.onDidSuggest(function(e){var t=r._memory.select(r._editor.getModel(),r._editor.getPosition(),e.completionModel.items);r._widget.showSuggestions(e.completionModel,t,e.isFrozen,e.auto)})),this._toDispose.push(this._model.onDidCancel(function(e){r._widget&&!e.retrigger&&r._widget.hideWidget()}));var o=LC.AcceptSuggestionsOnEnter.bindTo(n),s=function(){var e=r._editor.getConfiguration().contribInfo,t=e.acceptSuggestionOnEnter,n=e.suggestSelection;o.set("on"===t||"smart"===t),r._memory.setMode(n)};this._toDispose.push(this._editor.onDidChangeConfiguration(function(e){return s()})),s()}return e.get=function(t){return t.getContribution(e.ID)},e.prototype._createSuggestWidget=function(){var e=this;this._widget=this._instantiationService.createInstance(Rv,this._editor),this._toDispose.push(this._widget.onDidSelect(this._onDidSelectItem,this));var t=new Mv(this._editor,this._widget,function(t){return e._onDidSelectItem(t)});this._toDispose.push(t,this._model.onDidSuggest(function(e){0===e.completionModel.items.length&&t.reset()}));var n=LC.MakesTextEdit.bindTo(this._contextKeyService);this._toDispose.push(this._widget.onDidFocus(function(t){var i=t.item,r=e._editor.getPosition(),o=i.position.column-i.suggestion.overwriteBefore,s=r.column,a=!0;"smart"!==e._editor.getConfiguration().contribInfo.acceptSuggestionOnEnter||2!==e._model.state||i.suggestion.command||i.suggestion.additionalTextEdits||"textmate"===i.suggestion.snippetType||s-o!==i.suggestion.insertText.length||(a=e._editor.getModel().getValueInRange({startLineNumber:r.lineNumber,startColumn:o,endLineNumber:r.lineNumber,endColumn:s})!==i.suggestion.insertText),n.set(a)})),this._toDispose.push({dispose:function(){n.reset()}})},e.prototype.getId=function(){return e.ID},e.prototype.dispose=function(){this._toDispose=xe(this._toDispose),this._widget&&(this._widget.dispose(),this._widget=null),this._model&&(this._model.dispose(),this._model=null)},e.prototype._onDidSelectItem=function(e){var t;if(e&&e.item){var n=e.item,i=n.suggestion,r=n.position,o=this._editor.getPosition().column-r.column;this._editor.pushUndoStop(),Array.isArray(i.additionalTextEdits)&&this._editor.executeEdits("suggestController.additionalTextEdits",i.additionalTextEdits.map(function(e){return LI.replace(s.lift(e.range),e.text)})),this._memory.memorize(this._editor.getModel(),this._editor.getPosition(),e.item);var a=i.insertText;"textmate"!==i.snippetType&&(a=RC.escape(a)),ZC.get(this._editor).insert(a,i.overwriteBefore+o,i.overwriteAfter,!1,!1),this._editor.pushUndoStop(),i.command?i.command.id===zv.id?this._model.trigger({auto:!0},!0):((t=this._commandService).executeCommand.apply(t,[i.command.id].concat(i.command.arguments)).done(void 0,ye),this._model.cancel()):this._model.cancel(),this._alertCompletionItem(e.item)}else this._model.cancel()},e.prototype._alertCompletionItem=function(e){var t=e.suggestion;_S(r("arai.alert.snippet","Accepting '{0}' did insert the following text: {1}",t.label,t.insertText))},e.prototype.triggerSuggest=function(e){this._model.trigger({auto:!1},!1,e),this._editor.revealLine(this._editor.getPosition().lineNumber,0),this._editor.focus()},e.prototype.acceptSelectedSuggestion=function(){if(this._widget){var e=this._widget.getFocusedItem();this._onDidSelectItem(e)}},e.prototype.cancelSuggestWidget=function(){this._widget&&(this._model.cancel(),this._widget.hideWidget())},e.prototype.selectNextSuggestion=function(){this._widget&&this._widget.selectNext()},e.prototype.selectNextPageSuggestion=function(){this._widget&&this._widget.selectNextPage()},e.prototype.selectLastSuggestion=function(){this._widget&&this._widget.selectLast()},e.prototype.selectPrevSuggestion=function(){this._widget&&this._widget.selectPrevious()},e.prototype.selectPrevPageSuggestion=function(){this._widget&&this._widget.selectPreviousPage()},e.prototype.selectFirstSuggestion=function(){this._widget&&this._widget.selectFirst()},e.prototype.toggleSuggestionDetails=function(){this._widget&&this._widget.toggleDetails()},e.prototype.toggleSuggestionFocus=function(){this._widget&&this._widget.toggleDetailsFocus()},e.ID="editor.contrib.suggestController",e=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([Lv(1,es),Lv(2,Es),Lv(3,Gt)],e)}(),zv=function(e){function t(){return e.call(this,{id:t.id,label:r("suggest.trigger.label","Trigger Suggest"),alias:"Trigger Suggest",precondition:_s.and(na.writable,na.hasCompletionItemProvider),kbOpts:{kbExpr:na.textInputFocus,primary:2058,mac:{primary:266},weight:100}})||this}return kv(t,e),t.prototype.run=function(e,t){var n=Fv.get(t);n&&n.triggerSuggest()},t.id="editor.action.triggerSuggest",t}(Ys);ea(Fv),Xs(zv);var jv=qs.bindToContribution(Fv.get);Qs(new jv({id:"acceptSelectedSuggestion",precondition:LC.Visible,handler:function(e){return e.acceptSelectedSuggestion()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:2}})),Qs(new jv({id:"acceptSelectedSuggestionOnEnter",precondition:LC.Visible,handler:function(e){return e.acceptSelectedSuggestion()},kbOpts:{weight:190,kbExpr:_s.and(na.textInputFocus,LC.AcceptSuggestionsOnEnter,LC.MakesTextEdit),primary:3}})),Qs(new jv({id:"hideSuggestWidget",precondition:LC.Visible,handler:function(e){return e.cancelSuggestWidget()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:9,secondary:[1033]}})),Qs(new jv({id:"selectNextSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectNextSuggestion()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:18,secondary:[2066],mac:{primary:18,secondary:[2066,300]}}})),Qs(new jv({id:"selectNextPageSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectNextPageSuggestion()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:12,secondary:[2060]}})),Qs(new jv({id:"selectLastSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectLastSuggestion()}})),Qs(new jv({id:"selectPrevSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectPrevSuggestion()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:16,secondary:[2064],mac:{primary:16,secondary:[2064,302]}}})),Qs(new jv({id:"selectPrevPageSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectPrevPageSuggestion()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:11,secondary:[2059]}})),Qs(new jv({id:"selectFirstSuggestion",precondition:_s.and(LC.Visible,LC.MultipleSuggestions),handler:function(e){return e.selectFirstSuggestion()}})),Qs(new jv({id:"toggleSuggestionDetails",precondition:LC.Visible,handler:function(e){return e.toggleSuggestionDetails()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:2058,mac:{primary:266}}})),Qs(new jv({id:"toggleSuggestionFocus",precondition:LC.Visible,handler:function(e){return e.toggleSuggestionFocus()},kbOpts:{weight:190,kbExpr:na.textInputFocus,primary:2570,mac:{primary:778}}}));var Uv=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Gv=qc("editor.wordHighlightBackground",{dark:"#575757B8",light:"#57575740",hc:null},r("wordHighlight","Background color of a symbol during read-access, like reading a variable. The color must not be opaque to not hide underlying decorations."),!0),Wv=qc("editor.wordHighlightStrongBackground",{dark:"#004972B8",light:"#0e639c40",hc:null},r("wordHighlightStrong","Background color of a symbol during write-access, like writing to a variable. The color must not be opaque to not hide underlying decorations."),!0),Vv=qc("editor.wordHighlightBorder",{light:null,dark:null,hc:Xc},r("wordHighlightBorder","Border color of a symbol during read-access, like reading a variable.")),qv=qc("editor.wordHighlightStrongBorder",{light:null,dark:null,hc:Xc},r("wordHighlightStrongBorder","Border color of a symbol during write-access, like writing to a variable.")),Yv=qc("editorOverviewRuler.wordHighlightForeground",{dark:"#A0A0A0CC",light:"#A0A0A0CC",hc:"#A0A0A0CC"},r("overviewRulerWordHighlightForeground","Overview ruler marker color for symbol highlights. The color must not be opaque to not hide underlying decorations."),!0),Hv=qc("editorOverviewRuler.wordHighlightStrongForeground",{dark:"#C0A0C0CC",light:"#C0A0C0CC",hc:"#C0A0C0CC"},r("overviewRulerWordHighlightStrongForeground","Overview ruler marker color for write-access symbol highlights. The color must not be opaque to not hide underlying decorations."),!0),Zv=new Rs("hasWordHighlights",!1);function Qv(e,t,n){return $a(wn.ordered(e).map(function(i){return function(){return Promise.resolve(i.provideDocumentHighlights(e,t,n)).then(void 0,Se)}}),function(e){return!Je(e)})}Zs("_executeDocumentHighlights",function(e,t){return Qv(e,t,xa.None)});var Xv=function(){function e(e,t){var n=this;this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.workerRequestValue=[],this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1,this.editor=e,this._hasWordHighlights=Zv.bindTo(t),this._ignorePositionChangeEvent=!1,this.occurrencesHighlight=this.editor.getConfiguration().contribInfo.occurrencesHighlight,this.model=this.editor.getModel(),this.toUnhook=[],this.toUnhook.push(e.onDidChangeCursorPosition(function(e){n._ignorePositionChangeEvent||n.occurrencesHighlight&&n._onPositionChanged(e)})),this.toUnhook.push(e.onDidChangeModel(function(e){n._stopAll(),n.model=n.editor.getModel()})),this.toUnhook.push(e.onDidChangeModelContent(function(e){n._stopAll()})),this.toUnhook.push(e.onDidChangeConfiguration(function(e){var t=n.editor.getConfiguration().contribInfo.occurrencesHighlight;n.occurrencesHighlight!==t&&(n.occurrencesHighlight=t,n._stopAll())})),this._lastWordRange=null,this._decorationIds=[],this.workerRequestTokenId=0,this.workerRequest=null,this.workerRequestCompleted=!1,this.lastCursorPositionChangeTime=0,this.renderDecorationsTimer=-1}return e.prototype.hasDecorations=function(){return this._decorationIds.length>0},e.prototype.restore=function(){this.occurrencesHighlight&&this._run()},e.prototype._getSortedHighlights=function(){var e=this;return this._decorationIds.map(function(t){return e.model.getDecorationRange(t)}).sort(s.compareRangesUsingStarts)},e.prototype.moveNext=function(){var e=this,t=this._getSortedHighlights(),n=t[(et(t,function(t){return t.containsPosition(e.editor.getPosition())})+1)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype.moveBack=function(){var e=this,t=this._getSortedHighlights(),n=t[(et(t,function(t){return t.containsPosition(e.editor.getPosition())})-1+t.length)%t.length];try{this._ignorePositionChangeEvent=!0,this.editor.setPosition(n.getStartPosition()),this.editor.revealRangeInCenterIfOutsideViewport(n)}finally{this._ignorePositionChangeEvent=!1}},e.prototype._removeDecorations=function(){this._decorationIds.length>0&&(this._decorationIds=this.editor.deltaDecorations(this._decorationIds,[]),this._hasWordHighlights.set(!1))},e.prototype._stopAll=function(){this._lastWordRange=null,this._removeDecorations(),-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1),null!==this.workerRequest&&(this.workerRequest.cancel(),this.workerRequest=null),this.workerRequestCompleted||(this.workerRequestTokenId++,this.workerRequestCompleted=!0)},e.prototype._onPositionChanged=function(e){this.occurrencesHighlight&&e.reason===$o.Explicit?this._run():this._stopAll()},e.prototype._run=function(){var e=this;if(wn.has(this.model)){var t=this.editor.getSelection();if(t.startLineNumber===t.endLineNumber){var n=t.startLineNumber,i=t.startColumn,r=t.endColumn,o=this.model.getWordAtPosition({lineNumber:n,column:i});if(!o||o.startColumn>i||o.endColumn=r&&(l=!0)}if(this.lastCursorPositionChangeTime=(new Date).getTime(),l)this.workerRequestCompleted&&-1!==this.renderDecorationsTimer&&(clearTimeout(this.renderDecorationsTimer),this.renderDecorationsTimer=-1,this._beginRenderDecorations());else{this._stopAll();var g=++this.workerRequestTokenId;this.workerRequestCompleted=!1,this.workerRequest=Ka(function(t){return Qv(e.model,e.editor.getPosition(),t)}),this.workerRequest.then(function(t){g===e.workerRequestTokenId&&(e.workerRequestCompleted=!0,e.workerRequestValue=t||[],e._beginRenderDecorations())},ye)}this._lastWordRange=a}}else this._stopAll()}else this._stopAll()},e.prototype._beginRenderDecorations=function(){var e=this,t=(new Date).getTime(),n=this.lastCursorPositionChangeTime+250;t>=n?(this.renderDecorationsTimer=-1,this.renderDecorations()):this.renderDecorationsTimer=setTimeout(function(){e.renderDecorations()},n-t)},e.prototype.renderDecorations=function(){this.renderDecorationsTimer=-1;for(var t=[],n=0,i=this.workerRequestValue.length;n=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([function(e,t){return function(n,i){t(n,i,e)}}(1,Es)],e)}(),eT=function(e){function t(t,n){var i=e.call(this,n)||this;return i._isNext=t,i}return Uv(t,e),t.prototype.run=function(e,t){var n=Jv.get(t);n&&(this._isNext?n.moveNext():n.moveBack())},t}(Ys),tT=function(e){function t(){return e.call(this,!0,{id:"editor.action.wordHighlight.next",label:r("wordHighlight.next.label","Go to Next Symbol Highlight"),alias:"Go to Next Symbol Highlight",precondition:Zv,kbOpts:{kbExpr:na.editorTextFocus,primary:65,weight:100}})||this}return Uv(t,e),t}(eT),nT=function(e){function t(){return e.call(this,!1,{id:"editor.action.wordHighlight.prev",label:r("wordHighlight.previous.label","Go to Previous Symbol Highlight"),alias:"Go to Previous Symbol Highlight",precondition:Zv,kbOpts:{kbExpr:na.editorTextFocus,primary:1089,weight:100}})||this}return Uv(t,e),t}(eT);ea(Jv),Xs(tT),Xs(nT),Ac(function(e,t){var n=e.getColor(Og);n&&(t.addRule(".monaco-editor .focused .selectionHighlight { background-color: "+n+"; }"),t.addRule(".monaco-editor .selectionHighlight { background-color: "+n.transparent(.5)+"; }"));var i=e.getColor(Gv);i&&t.addRule(".monaco-editor .wordHighlight { background-color: "+i+"; }");var r=e.getColor(Wv);r&&t.addRule(".monaco-editor .wordHighlightStrong { background-color: "+r+"; }");var o=e.getColor($g);o&&t.addRule(".monaco-editor .selectionHighlight { border: 1px "+("hc"===e.type?"dotted":"solid")+" "+o+"; box-sizing: border-box; }");var s=e.getColor(Vv);s&&t.addRule(".monaco-editor .wordHighlight { border: 1px "+("hc"===e.type?"dashed":"solid")+" "+s+"; box-sizing: border-box; }");var a=e.getColor(qv);a&&t.addRule(".monaco-editor .wordHighlightStrong { border: 1px "+("hc"===e.type?"dashed":"solid")+" "+a+"; box-sizing: border-box; }")}),n(79);var iT,rT,oT=function(){function e(e){var t=this;this.editor=e,this.toDispose=[],Qa&&(this.toDispose.push(e.onDidChangeConfiguration(function(){return t.update()})),this.update())}return e.prototype.update=function(){var e=!!this.widget,t=!this.editor.getConfiguration().readOnly;!e&&t?this.widget=new sT(this.editor):e&&!t&&(this.widget.dispose(),this.widget=null)},e.prototype.getId=function(){return e.ID},e.prototype.dispose=function(){this.toDispose=xe(this.toDispose),this.widget&&(this.widget.dispose(),this.widget=null)},e.ID="editor.contrib.iPadShowKeyboard",e}(),sT=function(){function e(e){var t=this;this.editor=e,this._domNode=document.createElement("textarea"),this._domNode.className="iPadShowKeyboard",this._toDispose=[],this._toDispose.push(Tl(this._domNode,"touchstart",function(e){t.editor.focus()})),this._toDispose.push(Tl(this._domNode,"focus",function(e){t.editor.focus()})),this.editor.addOverlayWidget(this)}return e.prototype.dispose=function(){this.editor.removeOverlayWidget(this),this._toDispose=xe(this._toDispose)},e.prototype.getId=function(){return e.ID},e.prototype.getDomNode=function(){return this._domNode},e.prototype.getPosition=function(){return{preference:jm.BOTTOM_RIGHT_CORNER}},e.ID="editor.contrib.ShowKeyboardWidget",e}();ea(oT),function(e){e[e.Unnecessary=1]="Unnecessary"}(iT||(iT={})),function(e){e[e.Hint=1]="Hint",e[e.Info=2]="Info",e[e.Warning=4]="Warning",e[e.Error=8]="Error"}(rT||(rT={}));var aT,lT=function(){function e(){}return e.chord=function(e,t){return ss(e,t)},e.CtrlCmd=2048,e.Shift=1024,e.Alt=512,e.WinCtrl=256,e}();function uT(){return{editor:void 0,languages:void 0,CancellationTokenSource:Da,Emitter:Ne,KeyCode:aT,KeyMod:lT,Position:o,Range:s,Selection:Wn,SelectionDirection:zn,MarkerSeverity:rT,MarkerTag:iT,Promise:he.b,Uri:ae,Token:Ti}}!function(e){e[e.Unknown=0]="Unknown",e[e.Backspace=1]="Backspace",e[e.Tab=2]="Tab",e[e.Enter=3]="Enter",e[e.Shift=4]="Shift",e[e.Ctrl=5]="Ctrl",e[e.Alt=6]="Alt",e[e.PauseBreak=7]="PauseBreak",e[e.CapsLock=8]="CapsLock",e[e.Escape=9]="Escape",e[e.Space=10]="Space",e[e.PageUp=11]="PageUp",e[e.PageDown=12]="PageDown",e[e.End=13]="End",e[e.Home=14]="Home",e[e.LeftArrow=15]="LeftArrow",e[e.UpArrow=16]="UpArrow",e[e.RightArrow=17]="RightArrow",e[e.DownArrow=18]="DownArrow",e[e.Insert=19]="Insert",e[e.Delete=20]="Delete",e[e.KEY_0=21]="KEY_0",e[e.KEY_1=22]="KEY_1",e[e.KEY_2=23]="KEY_2",e[e.KEY_3=24]="KEY_3",e[e.KEY_4=25]="KEY_4",e[e.KEY_5=26]="KEY_5",e[e.KEY_6=27]="KEY_6",e[e.KEY_7=28]="KEY_7",e[e.KEY_8=29]="KEY_8",e[e.KEY_9=30]="KEY_9",e[e.KEY_A=31]="KEY_A",e[e.KEY_B=32]="KEY_B",e[e.KEY_C=33]="KEY_C",e[e.KEY_D=34]="KEY_D",e[e.KEY_E=35]="KEY_E",e[e.KEY_F=36]="KEY_F",e[e.KEY_G=37]="KEY_G",e[e.KEY_H=38]="KEY_H",e[e.KEY_I=39]="KEY_I",e[e.KEY_J=40]="KEY_J",e[e.KEY_K=41]="KEY_K",e[e.KEY_L=42]="KEY_L",e[e.KEY_M=43]="KEY_M",e[e.KEY_N=44]="KEY_N",e[e.KEY_O=45]="KEY_O",e[e.KEY_P=46]="KEY_P",e[e.KEY_Q=47]="KEY_Q",e[e.KEY_R=48]="KEY_R",e[e.KEY_S=49]="KEY_S",e[e.KEY_T=50]="KEY_T",e[e.KEY_U=51]="KEY_U",e[e.KEY_V=52]="KEY_V",e[e.KEY_W=53]="KEY_W",e[e.KEY_X=54]="KEY_X",e[e.KEY_Y=55]="KEY_Y",e[e.KEY_Z=56]="KEY_Z",e[e.Meta=57]="Meta",e[e.ContextMenu=58]="ContextMenu",e[e.F1=59]="F1",e[e.F2=60]="F2",e[e.F3=61]="F3",e[e.F4=62]="F4",e[e.F5=63]="F5",e[e.F6=64]="F6",e[e.F7=65]="F7",e[e.F8=66]="F8",e[e.F9=67]="F9",e[e.F10=68]="F10",e[e.F11=69]="F11",e[e.F12=70]="F12",e[e.F13=71]="F13",e[e.F14=72]="F14",e[e.F15=73]="F15",e[e.F16=74]="F16",e[e.F17=75]="F17",e[e.F18=76]="F18",e[e.F19=77]="F19",e[e.NumLock=78]="NumLock",e[e.ScrollLock=79]="ScrollLock",e[e.US_SEMICOLON=80]="US_SEMICOLON",e[e.US_EQUAL=81]="US_EQUAL",e[e.US_COMMA=82]="US_COMMA",e[e.US_MINUS=83]="US_MINUS",e[e.US_DOT=84]="US_DOT",e[e.US_SLASH=85]="US_SLASH",e[e.US_BACKTICK=86]="US_BACKTICK",e[e.US_OPEN_SQUARE_BRACKET=87]="US_OPEN_SQUARE_BRACKET",e[e.US_BACKSLASH=88]="US_BACKSLASH",e[e.US_CLOSE_SQUARE_BRACKET=89]="US_CLOSE_SQUARE_BRACKET",e[e.US_QUOTE=90]="US_QUOTE",e[e.OEM_8=91]="OEM_8",e[e.OEM_102=92]="OEM_102",e[e.NUMPAD_0=93]="NUMPAD_0",e[e.NUMPAD_1=94]="NUMPAD_1",e[e.NUMPAD_2=95]="NUMPAD_2",e[e.NUMPAD_3=96]="NUMPAD_3",e[e.NUMPAD_4=97]="NUMPAD_4",e[e.NUMPAD_5=98]="NUMPAD_5",e[e.NUMPAD_6=99]="NUMPAD_6",e[e.NUMPAD_7=100]="NUMPAD_7",e[e.NUMPAD_8=101]="NUMPAD_8",e[e.NUMPAD_9=102]="NUMPAD_9",e[e.NUMPAD_MULTIPLY=103]="NUMPAD_MULTIPLY",e[e.NUMPAD_ADD=104]="NUMPAD_ADD",e[e.NUMPAD_SEPARATOR=105]="NUMPAD_SEPARATOR",e[e.NUMPAD_SUBTRACT=106]="NUMPAD_SUBTRACT",e[e.NUMPAD_DECIMAL=107]="NUMPAD_DECIMAL",e[e.NUMPAD_DIVIDE=108]="NUMPAD_DIVIDE",e[e.KEY_IN_COMPOSITION=109]="KEY_IN_COMPOSITION",e[e.ABNT_C1=110]="ABNT_C1",e[e.ABNT_C2=111]="ABNT_C2",e[e.MAX_VALUE=112]="MAX_VALUE"}(aT||(aT={})),n(81);var dT=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),cT=function(e){function t(t,n,i,r,o){var s=e.call(this)||this;return s._contextKeyService=t,s._commandService=n,s._telemetryService=i,s._statusService=o,s._notificationService=r,s._currentChord=null,s._currentChordChecker=new Ma,s._currentChordStatusMessage=null,s._onDidUpdateKeybindings=s._register(new Ne),s}return dT(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},Object.defineProperty(t.prototype,"onDidUpdateKeybindings",{get:function(){return this._onDidUpdateKeybindings?this._onDidUpdateKeybindings.event:De.None},enumerable:!0,configurable:!0}),t.prototype.lookupKeybinding=function(e){var t=this._getResolver().lookupPrimaryKeybinding(e);return t?t.resolvedKeybinding:null},t.prototype._enterChordMode=function(e,t){var n=this;this._currentChord={keypress:e,label:t},this._statusService&&(this._currentChordStatusMessage=this._statusService.setStatusMessage(r("first.chord","({0}) was pressed. Waiting for second key of chord...",t)));var i=Date.now();this._currentChordChecker.cancelAndSet(function(){n._documentHasFocus()?Date.now()-i>5e3&&n._leaveChordMode():n._leaveChordMode()},500)},t.prototype._leaveChordMode=function(){this._currentChordStatusMessage&&(this._currentChordStatusMessage.dispose(),this._currentChordStatusMessage=null),this._currentChordChecker.cancel(),this._currentChord=null},t.prototype._dispatch=function(e,t){var n=this,i=!1,o=this.resolveKeyboardEvent(e);if(o.isChord())return console.warn("Unexpected keyboard event mapped to a chord"),null;var s=o.getDispatchParts()[0];if(null===s)return i;var a=this._contextKeyService.getContext(t),l=this._currentChord?this._currentChord.keypress:null,u=o.getLabel(),d=this._getResolver().resolve(a,l,s);return d&&d.enterChord?(i=!0,this._enterChordMode(s,u),i):(this._statusService&&this._currentChord&&(d&&d.commandId||(this._statusService.setStatusMessage(r("missing.chord","The key combination ({0}, {1}) is not a command.",this._currentChord.label,u),1e4),i=!0)),this._leaveChordMode(),d&&d.commandId&&(d.bubble||(i=!0),void 0===d.commandArgs?this._commandService.executeCommand(d.commandId).done(void 0,function(e){return n._notificationService.warn(e)}):this._commandService.executeCommand(d.commandId,d.commandArgs).done(void 0,function(e){return n._notificationService.warn(e)}),this._telemetryService.publicLog("workbenchActionExecuted",{id:d.commandId,from:"keybinding"})),i)},t}(Ae),gT=function(){function e(e,t,n){void 0===n&&(n=t),this.modifierLabels=[null],this.modifierLabels[2]=e,this.modifierLabels[1]=t,this.modifierLabels[3]=n}return e.prototype.toLabel=function(e,t,n,i,r){return null===t&&null===i?null:function(e,t,n,i,r){var o=pT(e,t,r);return null!==i&&(o+=" ",o+=pT(n,i,r)),o}(e,t,n,i,this.modifierLabels[r])},e}(),mT=new gT({ctrlKey:"⌃",shiftKey:"⇧",altKey:"⌥",metaKey:"⌘",separator:""},{ctrlKey:r({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:r({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:r({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:r({key:"windowsKey",comment:["This is the short form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:r({key:"ctrlKey",comment:["This is the short form for the Control key on the keyboard"]},"Ctrl"),shiftKey:r({key:"shiftKey",comment:["This is the short form for the Shift key on the keyboard"]},"Shift"),altKey:r({key:"altKey",comment:["This is the short form for the Alt key on the keyboard"]},"Alt"),metaKey:r({key:"superKey",comment:["This is the short form for the Super key on the keyboard"]},"Super"),separator:"+"}),hT=new gT({ctrlKey:r({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:r({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:r({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:r({key:"cmdKey.long",comment:["This is the long form for the Command key on the keyboard"]},"Command"),separator:"+"},{ctrlKey:r({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:r({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:r({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:r({key:"windowsKey.long",comment:["This is the long form for the Windows key on the keyboard"]},"Windows"),separator:"+"},{ctrlKey:r({key:"ctrlKey.long",comment:["This is the long form for the Control key on the keyboard"]},"Control"),shiftKey:r({key:"shiftKey.long",comment:["This is the long form for the Shift key on the keyboard"]},"Shift"),altKey:r({key:"altKey.long",comment:["This is the long form for the Alt key on the keyboard"]},"Alt"),metaKey:r({key:"superKey.long",comment:["This is the long form for the Super key on the keyboard"]},"Super"),separator:"+"});function pT(e,t,n){if(null===t)return"";var i=[];return e.ctrlKey&&i.push(n.ctrlKey),e.shiftKey&&i.push(n.shiftKey),e.altKey&&i.push(n.altKey),e.metaKey&&i.push(n.metaKey),i.push(t),i.join(n.separator)}var fT,yT,ST=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),bT=function(e){function t(t,n){var i=e.call(this)||this;if(i._os=n,null===t)throw new Error("Invalid USLayoutResolvedKeybinding");return 2===t.type?(i._firstPart=t.firstPart,i._chordPart=t.chordPart):(i._firstPart=t,i._chordPart=null),i}return ST(t,e),t.prototype._keyCodeToUILabel=function(e){if(2===this._os)switch(e){case 15:return"←";case 16:return"↑";case 17:return"→";case 18:return"↓"}return Jo.toString(e)},t.prototype._getUILabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?"":this._keyCodeToUILabel(e.keyCode):null},t.prototype.getLabel=function(){var e=this._getUILabelForKeybinding(this._firstPart),t=this._getUILabelForKeybinding(this._chordPart);return mT.toLabel(this._firstPart,e,this._chordPart,t,this._os)},t.prototype._getAriaLabelForKeybinding=function(e){return e?e.isDuplicateModifierCase()?"":Jo.toString(e.keyCode):null},t.prototype.getAriaLabel=function(){var e=this._getAriaLabelForKeybinding(this._firstPart),t=this._getAriaLabelForKeybinding(this._chordPart);return hT.toLabel(this._firstPart,e,this._chordPart,t,this._os)},t.prototype.isChord=function(){return!!this._chordPart},t.prototype.getParts=function(){return[this._toResolvedKeybindingPart(this._firstPart),this._toResolvedKeybindingPart(this._chordPart)]},t.prototype._toResolvedKeybindingPart=function(e){return e?new cs(e.ctrlKey,e.shiftKey,e.altKey,e.metaKey,this._getUILabelForKeybinding(e),this._getAriaLabelForKeybinding(e)):null},t.prototype.getDispatchParts=function(){return[this._firstPart?t.getDispatchStr(this._firstPart):null,this._chordPart?t.getDispatchStr(this._chordPart):null]},t.getDispatchStr=function(e){if(e.isModifierKey())return null;var t="";return e.ctrlKey&&(t+="ctrl+"),e.shiftKey&&(t+="shift+"),e.altKey&&(t+="alt+"),e.metaKey&&(t+="meta+"),t+Jo.toString(e.keyCode)},t}(gs),IT=function(){function e(t,n){this._defaultKeybindings=t,this._defaultBoundCommands=new Map;for(var i=0,r=t.length;i=0;d--)this._isTargetedForRemoval(e[d],a,l,s,u)&&e.splice(d,1);else n.push(o)}return e.concat(n)},e.prototype._addKeyPress=function(t,n){var i=this._map.get(t);if(void 0===i)return this._map.set(t,[n]),void this._addToLookupMap(n);for(var r=i.length-1;r>=0;r--){var o=i[r];if(o.command!==n.command){var s=null!==o.keypressChordPart,a=null!==n.keypressChordPart;s&&a&&o.keypressChordPart!==n.keypressChordPart||e.whenIsEntirelyIncluded(o.when,n.when)&&this._removeFromLookupMap(o)}}i.push(n),this._addToLookupMap(n)},e.prototype._addToLookupMap=function(e){if(e.command){var t=this._lookupMap.get(e.command);void 0===t?(t=[e],this._lookupMap.set(e.command,t)):t.push(e)}},e.prototype._removeFromLookupMap=function(e){var t=this._lookupMap.get(e.command);if(void 0!==t)for(var n=0,i=t.length;n=0;i--){var r=n[i];if(e.contextMatchesRules(t,r.when))return r}return null},e.contextMatchesRules=function(e,t){return!t||t.evaluate(e)},e}(),CT=Vt("contextService");(fT||(fT={})).isIWorkspace=function(e){return e&&"object"==typeof e&&"string"==typeof e.id&&"string"==typeof e.name&&Array.isArray(e.folders)},(yT||(yT={})).isIWorkspaceFolder=function(e){return e&&"object"==typeof e&&ae.isUri(e.uri)&&"string"==typeof e.name&&"function"==typeof e.toResource},function(){function e(e,t,n,i,r){void 0===t&&(t=""),void 0===n&&(n=[]),void 0===i&&(i=null),this._id=e,this._name=t,this._configuration=i,this._ctime=r,this._foldersMap=yt.forPaths(),this.folders=n}Object.defineProperty(e.prototype,"folders",{get:function(){return this._folders},set:function(e){this._folders=e,this.updateFoldersMap()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"id",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"name",{get:function(){return this._name},set:function(e){this._name=e},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"configuration",{get:function(){return this._configuration},set:function(e){this._configuration=e},enumerable:!0,configurable:!0}),e.prototype.getFolder=function(e){return e?this._foldersMap.findSubstr(e.toString()):null},e.prototype.updateFoldersMap=function(){this._foldersMap=yt.forPaths();for(var e=0,t=this.folders;e0){var i=e.charCodeAt(e.length-1);if(47!==i&&92!==i){var r=n.charCodeAt(0);47!==r&&92!==r&&(e+=it)}}e+=n}return ut(e)}(this.uri.path,e)})},e.prototype.toJSON=function(){return{uri:this.uri,name:this.name,index:this.index}},e}(),TT=Vt("configurationService");function xT(e,t){var n=Object.create(null);for(var i in e)wT(n,i,e[i],t);return n}function wT(e,t,n,i){for(var r=t.split("."),o=r.pop(),s=e,a=0;a0;){var n=t.shift();for(var i in Object.freeze(n),n)if(br.call(n,i)){var r=n[i];"object"!=typeof r||Object.isFrozen(r)||t.push(r)}}return e}(e):e},e.prototype.getContentsForOverrideIdentifer=function(e){for(var t=0,n=this.overrides;t0&&t.push([o,s])}return t},e._fillInKbExprKeys=function(e,t){if(e)for(var n=0,i=e.keys();ns)return 1;var a="string"==typeof e.command.title?e.command.title:e.command.title.value,l="string"==typeof t.command.title?t.command.title:t.command.title.value;return a.localeCompare(l)},e=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([KT(2,es),KT(3,Es)],e)}(),PT=function(e,t,n,i,r){if(this.resolvedKeybinding=e,e){var o=e.getDispatchParts(),s=o[0],a=o[1];this.keypressFirstPart=s,this.keypressChordPart=a}else this.keypressFirstPart=null,this.keypressChordPart=null;this.bubble=!!t&&94===t.charCodeAt(0),this.command=this.bubble?t.substr(1):t,this.commandArgs=n,this.when=i,this.isDefault=r},OT=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),$T=function(){function e(e){this.model=e,this._onDispose=new Ne}return Object.defineProperty(e.prototype,"textEditorModel",{get:function(){return this.model},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose.fire()},e}();var kT=function(){function e(){}return e.prototype.setEditor=function(e){this.editor=e},e.prototype.createModelReference=function(e){var t,n=this;return(t=function(e,t,n){return function(e){return!(!e||"function"!=typeof e.getEditorType)&&e.getEditorType()===a.ICodeEditor}(e)?t(e):n(e)}(this.editor,function(t){return n.findModel(t,e)},function(t){return n.findModel(t.getOriginalEditor(),e)||n.findModel(t.getModifiedEditor(),e)}))?he.b.as(new Re(new $T(t))):he.b.as(new Re(null))},e.prototype.findModel=function(e,t){var n=e.getModel();return n.uri.toString()!==t.toString()?null:n},e}(),LT=function(){function e(){}return e.prototype.showWhile=function(e,t){return null},e}(),MT=function(){},FT=function(){function e(){}return e.prototype.info=function(e){return this.notify({severity:bc.Info,message:e})},e.prototype.warn=function(e){return this.notify({severity:bc.Warning,message:e})},e.prototype.error=function(e){return this.notify({severity:bc.Error,message:e})},e.prototype.notify=function(t){switch(t.severity){case bc.Error:console.error(t.message);break;case bc.Warning:console.warn(t.message);break;default:console.log(t.message)}return e.NO_OP},e.NO_OP=new Cc,e}(),zT=function(){function e(e){this._onWillExecuteCommand=new Ne,this._instantiationService=e,this._dynamicCommands=Object.create(null)}return e.prototype.addCommand=function(e){var t=this,n=e.id;return this._dynamicCommands[n]=e,Be(function(){delete t._dynamicCommands[n]})},e.prototype.executeCommand=function(e){for(var t=[],n=1;n0){var S=e[o-1];f=0===S.originalEndLineNumber?S.originalStartLineNumber+1:S.originalEndLineNumber+1,y=0===S.modifiedEndLineNumber?S.modifiedStartLineNumber+1:S.modifiedEndLineNumber+1}var b=h-3+1,I=p-3+1;bv&&(B+=w=v-B,D+=w),D>T&&(B+=w=T-D,D+=w),g[m++]=new JT(C,B,_,D),i[r++]=new ex(g)}var A=i[0].entries,R=[],E=0;for(o=1,s=i.length;om)&&(m=b),0!==I&&(0===h||Ip)&&(p=C)}var _=document.createElement("div");_.className="diff-review-row";var v=document.createElement("div");v.className="diff-review-cell diff-review-summary";var T=m-g+1,x=p-h+1;v.appendChild(document.createTextNode(u+1+"/"+this._diffs.length+": @@ -"+g+","+T+" +"+h+","+x+" @@")),_.setAttribute("data-line",String(h));var w=function(e){return 0===e?r("no_lines","no lines"):1===e?r("one_line","1 line"):r("more_lines","{0} lines",e)},B=w(T),D=w(x);_.setAttribute("aria-label",r({key:"header",comment:["This is the ARIA label for a git diff header.","A git diff header looks like this: @@ -154,12 +159,39 @@.","That encodes that at original line 154 (which is now line 159), 12 lines were removed/changed with 39 lines.","Variables 0 and 1 refer to the diff index out of total number of diffs.","Variables 2 and 4 will be numbers (a line number).",'Variables 3 and 5 will be "no lines", "1 line" or "X lines", localized separately.']},"Difference {0} of {1}: original {2}, {3}, modified {4}, {5}",u+1,this._diffs.length,g,B,h,D)),_.appendChild(v),_.setAttribute("role","listitem"),c.appendChild(_);var A=h;for(f=0,y=d.length;f0&&e.changeViewZones(function(e){for(var n=0,i=t._zones.length;n0?r/n:0;return{height:Math.max(0,Math.floor(e.contentHeight*o)),top:Math.floor(t*o)}},t.prototype._createDataSource=function(){var e=this;return{getWidth:function(){return e._width},getHeight:function(){return e._height-e._reviewHeight},getContainerDomNode:function(){return e._containerDomElement},relayoutEditors:function(){e._doLayout()},getOriginalEditor:function(){return e.originalEditor},getModifiedEditor:function(){return e.modifiedEditor}}},t.prototype._setStrategy=function(e){this._strategy&&this._strategy.dispose(),this._strategy=e,e.applyColors(this._themeService.getTheme()),this._lineChanges&&this._updateDecorations(),this._measureDomElement(!0)},t.prototype._getLineChangeAtOrBeforeLineNumber=function(e,t){if(0===this._lineChanges.length||e=s?n=r+1:(n=r,i=r)}return this._lineChanges[n]},t.prototype._getEquivalentLineForOriginalLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,function(e){return e.originalStartLineNumber});if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-n;return s<=r?i+Math.min(s,o):i+o-r+s},t.prototype._getEquivalentLineForModifiedLineNumber=function(e){var t=this._getLineChangeAtOrBeforeLineNumber(e,function(e){return e.modifiedStartLineNumber});if(!t)return e;var n=t.originalStartLineNumber+(t.originalEndLineNumber>0?-1:0),i=t.modifiedStartLineNumber+(t.modifiedEndLineNumber>0?-1:0),r=t.originalEndLineNumber>0?t.originalEndLineNumber-t.originalStartLineNumber+1:0,o=t.modifiedEndLineNumber>0?t.modifiedEndLineNumber-t.modifiedStartLineNumber+1:0,s=e-i;return s<=o?n+Math.min(s,r):n+r-o+s},t.prototype.getDiffLineInformationForOriginal=function(e){return this._lineChanges?{equivalentLineNumber:this._getEquivalentLineForOriginalLineNumber(e)}:null},t.prototype.getDiffLineInformationForModified=function(e){return this._lineChanges?{equivalentLineNumber:this._getEquivalentLineForModifiedLineNumber(e)}:null},t.ONE_OVERVIEW_WIDTH=15,t.ENTIRE_DIFF_OVERVIEW_WIDTH=30,t.UPDATE_DIFF_DECORATIONS_DELAY=200,t=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([sx(2,FI),sx(3,Es),sx(4,Gt),sx(5,Us),sx(6,_c),sx(7,Ic)],t)}(Ae),dx=function(e){function t(t){var n=e.call(this)||this;return n._dataSource=t,n}return ox(t,e),t.prototype.applyColors=function(e){var t=(e.getColor(Wg)||Ug).transparent(2),n=(e.getColor(Vg)||Gg).transparent(2),i=!t.equals(this._insertColor)||!n.equals(this._removeColor);return this._insertColor=t,this._removeColor=n,i},t.prototype.getEditorsDiffDecorations=function(e,t,n,i,r,o,s){r=r.sort(function(e,t){return e.afterLineNumber-t.afterLineNumber}),i=i.sort(function(e,t){return e.afterLineNumber-t.afterLineNumber});var a=this._getViewZones(e,i,r,o,s,n),l=this._getOriginalEditorDecorations(e,t,n,o,s),u=this._getModifiedEditorDecorations(e,t,n,o,s);return{original:{decorations:l.decorations,overviewZones:l.overviewZones,zones:a.original},modified:{decorations:u.decorations,overviewZones:u.overviewZones,zones:a.modified}}},t}(Ae),cx=function(){function e(e){this._source=e,this._index=-1,this.advance()}return e.prototype.advance=function(){this._index++,this._index0){var n=e[e.length-1];if(n.afterLineNumber===t.afterLineNumber&&null===n.domNode)return void(n.heightInLines+=t.heightInLines)}e.push(t)},u=new cx(this.modifiedForeignVZ),d=new cx(this.originalForeignVZ),c=0,g=this.lineChanges.length;c<=g;c++){var m=c0?-1:0),r=m.modifiedStartLineNumber+(m.modifiedEndLineNumber>0?-1:0),n=m.originalEndLineNumber>0?m.originalEndLineNumber-m.originalStartLineNumber+1:0,t=m.modifiedEndLineNumber>0?m.modifiedEndLineNumber-m.modifiedStartLineNumber+1:0,o=Math.max(m.originalStartLineNumber,m.originalEndLineNumber),s=Math.max(m.modifiedStartLineNumber,m.modifiedEndLineNumber)):(o=i+=1e7+n,s=r+=1e7+t);for(var h,p=[],f=[];u.current&&u.current.afterLineNumber<=s;){var y=void 0;y=u.current.afterLineNumber<=r?i-r+u.current.afterLineNumber:o,p.push({afterLineNumber:y,heightInLines:u.current.heightInLines,domNode:null}),u.advance()}for(;d.current&&d.current.afterLineNumber<=o;)y=void 0,y=d.current.afterLineNumber<=i?r-i+d.current.afterLineNumber:s,f.push({afterLineNumber:y,heightInLines:d.current.heightInLines,domNode:null}),d.advance();null!==m&&bx(m)&&(h=this._produceOriginalFromDiff(m,n,t))&&p.push(h),null!==m&&Ix(m)&&(h=this._produceModifiedFromDiff(m,n,t))&&f.push(h);var S=0,b=0;for(p=p.sort(a),f=f.sort(a);S=C.heightInLines?(I.heightInLines-=C.heightInLines,b++):(C.heightInLines-=I.heightInLines,S++)}for(;S2*t.MINIMUM_EDITOR_WIDTH?(in-t.MINIMUM_EDITOR_WIDTH&&(i=n-t.MINIMUM_EDITOR_WIDTH)):i=r,this._sashPosition!==i&&(this._sashPosition=i,this._sash.layout()),this._sashPosition},t.prototype.onSashDragStart=function(){this._startSashPosition=this._sashPosition},t.prototype.onSashDrag=function(e){var t=this._dataSource.getWidth()-ux.ENTIRE_DIFF_OVERVIEW_WIDTH,n=this.layout((this._startSashPosition+(e.currentX-e.startX))/t);this._sashRatio=n/t,this._dataSource.relayoutEditors()},t.prototype.onSashDragEnd=function(){this._sash.layout()},t.prototype.onSashReset=function(){this._sashRatio=.5,this._dataSource.relayoutEditors(),this._sash.layout()},t.prototype.getVerticalSashTop=function(e){return 0},t.prototype.getVerticalSashLeft=function(e){return this._sashPosition},t.prototype.getVerticalSashHeight=function(e){return this._dataSource.getHeight()},t.prototype._getViewZones=function(e,t,n,i,r){return new fx(e,t,n).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,r){for(var o=this._removeColor.toString(),a={decorations:[],overviewZones:[]},l=i.getModel(),u=0,d=e.length;ut?{afterLineNumber:Math.max(e.originalStartLineNumber,e.originalEndLineNumber),heightInLines:n-t,domNode:null}:null},t.prototype._produceModifiedFromDiff=function(e,t,n){return t>n?{afterLineNumber:Math.max(e.modifiedStartLineNumber,e.modifiedEndLineNumber),heightInLines:t-n,domNode:null}:null},t}(gx),yx=function(e){function t(t,n){var i=e.call(this,t)||this;return i.decorationsLeft=t.getOriginalEditor().getLayoutInfo().decorationsLeft,i._register(t.getOriginalEditor().onDidLayoutChange(function(e){i.decorationsLeft!==e.decorationsLeft&&(i.decorationsLeft=e.decorationsLeft,t.relayoutEditors())})),i}return ox(t,e),t.prototype.setEnableSplitViewResizing=function(e){},t.prototype._getViewZones=function(e,t,n,i,r,o){return new Sx(e,t,n,i,r,o).getViewZones()},t.prototype._getOriginalEditorDecorations=function(e,t,n,i,r){for(var o=this._removeColor.toString(),a={decorations:[],overviewZones:[]},l=0,u=e.length;l'])}m+=this.modifiedEditorConfiguration.viewInfo.scrollBeyondLastColumn;var f=document.createElement("div");f.className="view-lines line-delete",f.innerHTML=l.build(),nd.applyFontInfoSlow(f,this.modifiedEditorConfiguration.fontInfo);var y=document.createElement("div");return y.className="inline-deleted-margin-view-zone",y.innerHTML=u.join(""),nd.applyFontInfoSlow(y,this.modifiedEditorConfiguration.fontInfo),{shouldNotShrink:!0,afterLineNumber:0===e.modifiedEndLineNumber?e.modifiedStartLineNumber:e.modifiedStartLineNumber-1,heightInLines:t,minWidthInPx:m*g,domNode:f,marginDomNode:y}},t.prototype._renderOriginalLine=function(e,t,n,i,r,o,s){var a=t.getLineTokens(r),l=a.getLineContent(),u=ih.filter(o,r,1,l.length+1);s.appendASCIIString('
    ');var d=Pd.isBasicASCII(l,t.mightContainNonBasicASCII()),c=Pd.containsRTL(l,d,t.mightContainRTL()),g=mh(new dh(n.fontInfo.isMonospace&&!n.viewInfo.disableMonospaceOptimizations,l,!1,d,c,0,a,u,i,n.fontInfo.spaceWidth,n.viewInfo.stopRenderingLineAfter,n.viewInfo.renderWhitespace,n.viewInfo.renderControlCharacters,n.viewInfo.fontLigatures),s);s.appendASCIIString("
    ");var m=g.characterMapping.getAbsoluteOffsets();return m.length>0?m[m.length-1]:0},t}(gx);function bx(e){return e.modifiedEndLineNumber>0}function Ix(e){return e.originalEndLineNumber>0}Ac(function(e,t){var n=e.getColor(Wg);n&&(t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { background-color: "+n+"; }"),t.addRule(".monaco-diff-editor .line-insert, .monaco-diff-editor .char-insert { background-color: "+n+"; }"),t.addRule(".monaco-editor .inline-added-margin-view-zone { background-color: "+n+"; }"));var i=e.getColor(Vg);i&&(t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { background-color: "+i+"; }"),t.addRule(".monaco-diff-editor .line-delete, .monaco-diff-editor .char-delete { background-color: "+i+"; }"),t.addRule(".monaco-editor .inline-deleted-margin-view-zone { background-color: "+i+"; }"));var r=e.getColor(qg);r&&t.addRule(".monaco-editor .line-insert, .monaco-editor .char-insert { border: 1px "+("hc"===e.type?"dashed":"solid")+" "+r+"; }");var o=e.getColor(Yg);o&&t.addRule(".monaco-editor .line-delete, .monaco-editor .char-delete { border: 1px "+("hc"===e.type?"dashed":"solid")+" "+o+"; }");var s=e.getColor(vg);s&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { box-shadow: -6px 0 5px -5px "+s+"; }");var a=e.getColor(Hg);a&&t.addRule(".monaco-diff-editor.side-by-side .editor.modified { border-left: 1px solid "+a+"; }")});var Cx=Vt("themeService"),_x=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),vx=function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},Tx=function(e,t){return function(n,i){t(n,i,e)}},xx=0,wx=!1;var Bx=function(e){function t(t,n,i,o,s,a,l,u,d){var c=this;return(n=n||{}).ariaLabel=n.ariaLabel||r("editorViewAccessibleLabel","Editor content"),n.ariaLabel=n.ariaLabel+";"+(Ga?r("accessibilityHelpMessageIE","Press Ctrl+F1 for Accessibility Options."):r("accessibilityHelpMessage","Press Alt+F1 for Accessibility Options.")),c=e.call(this,t,n,{},i,o,s,a,u,d)||this,l instanceof jT&&(c._standaloneKeybindingService=l),wx||(wx=!0,function(e){(fS=document.createElement("div")).className="monaco-aria-container",(yS=document.createElement("div")).className="monaco-alert",yS.setAttribute("role","alert"),yS.setAttribute("aria-atomic","true"),fS.appendChild(yS),(SS=document.createElement("div")).className="monaco-status",SS.setAttribute("role","status"),SS.setAttribute("aria-atomic","true"),fS.appendChild(SS),e.appendChild(fS)}(document.body)),c}return _x(t,e),t.prototype.addCommand=function(e,t,n){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;var i="DYNAMIC_"+ ++xx,r=_s.deserialize(n);return this._standaloneKeybindingService.addDynamicKeybinding(i,e,t,r),i},t.prototype.createContextKey=function(e,t){return this._contextKeyService.createKey(e,t)},t.prototype.addAction=function(e){var t=this;if("string"!=typeof e.id||"string"!=typeof e.label||"function"!=typeof e.run)throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),Ae.None;var n=e.id,i=e.label,r=_s.and(_s.equals("editorId",this.getId()),_s.deserialize(e.precondition)),o=e.keybindings,s=_s.and(r,_s.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,u=function(){return e.run(t)||he.b.as(void 0)},d=[],c=this.getId()+":"+n;if(d.push(ts.registerCommand(c,u)),a){var g={command:{id:c,title:i},when:r,group:a,order:l};d.push(Ms.appendMenuItem(ks.EditorContext,g))}Array.isArray(o)&&(d=d.concat(o.map(function(e){return t._standaloneKeybindingService.addDynamicKeybinding(c,e,u,s)})));var m=new ey(c,i,i,r,u,this._contextKeyService);return this._actions[n]=m,d.push(Be(function(){delete t._actions[n]})),we(d)},vx([Tx(2,Gt),Tx(3,Us),Tx(4,es),Tx(5,Es),Tx(6,Oy),Tx(7,_c),Tx(8,Ic)],t)}(oy),Dx=function(e){function t(t,n,i,r,o,s,a,l,u,d,c,g){var m=this;HT(g,n,!1),"string"==typeof(n=n||{}).theme&&d.setTheme(n.theme);var h=n.model;if(delete n.model,(m=e.call(this,t,n,r,o,s,a,l,d,c)||this)._contextViewService=u,m._configurationService=g,m._register(i),void 0===h?(h=self.monaco.editor.createModel(n.value||"",n.language||"text/plain"),m._ownsModel=!0):m._ownsModel=!1,m._attachModel(h),h){var p={oldModelUrl:null,newModelUrl:h.uri};m._onDidChangeModel.fire(p)}return m}return _x(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){HT(this._configurationService,t,!1),e.prototype.updateOptions.call(this,t)},t.prototype._attachModel=function(t){e.prototype._attachModel.call(this,t),this._view&&this._contextViewService.setContainer(this._view.domNode.domNode)},t.prototype._postDetachModelCleanup=function(t){e.prototype._postDetachModelCleanup.call(this,t),t&&this._ownsModel&&(t.dispose(),this._ownsModel=!1)},vx([Tx(3,Gt),Tx(4,Us),Tx(5,es),Tx(6,Es),Tx(7,Oy),Tx(8,Ny),Tx(9,Cx),Tx(10,Ic),Tx(11,TT)],t)}(Bx),Ax=function(e){function t(t,n,i,r,o,s,a,l,u,d,c,g){var m=this;return HT(g,n,!0),"string"==typeof(n=n||{}).theme&&(n.theme=d.setTheme(n.theme)),(m=e.call(this,t,n,l,o,r,u,d,c)||this)._contextViewService=a,m._configurationService=g,m._register(i),m._contextViewService.setContainer(m._containerDomElement),m}return _x(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this)},t.prototype.updateOptions=function(t){HT(this._configurationService,t,!0),e.prototype.updateOptions.call(this,t)},t.prototype._createInnerEditor=function(e,t,n){return e.createInstance(Bx,t,n)},t.prototype.getOriginalEditor=function(){return e.prototype.getOriginalEditor.call(this)},t.prototype.getModifiedEditor=function(){return e.prototype.getModifiedEditor.call(this)},t.prototype.addCommand=function(e,t,n){return this.getModifiedEditor().addCommand(e,t,n)},t.prototype.createContextKey=function(e,t){return this.getModifiedEditor().createContextKey(e,t)},t.prototype.addAction=function(e){return this.getModifiedEditor().addAction(e)},vx([Tx(3,Gt),Tx(4,Es),Tx(5,Oy),Tx(6,Ny),Tx(7,FI),Tx(8,Us),Tx(9,Cx),Tx(10,Ic),Tx(11,TT)],t)}(ux),Rx=(n(87),n(89),function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}()),Ex=function(e){function t(t,n,i){var r=e.call(this,i||"submenu",t,"",!0)||this;return r.entries=n,r}return Rx(t,e),t}(bs),Kx=function(){function e(e,t,n){void 0===n&&(n={});var i=this;Il(e,"monaco-menu-container"),e.setAttribute("role","presentation");var r=document.createElement("div");Il(r,"monaco-menu"),r.setAttribute("role","presentation"),e.appendChild(r);var o={parent:this};this.actionBar=new Ky(r,{orientation:vy.VERTICAL,actionItemProvider:function(e){return i.doGetActionItem(e,n,o)},context:n.context,actionRunner:n.actionRunner,isMenu:!0,ariaLabel:n.ariaLabel}),this.actionBar.push(t,{icon:!0,label:!0,isMenu:!0})}return e.prototype.doGetActionItem=function(e,t,n){if(e instanceof Dy)return new Ay(t.context,e,{icon:!0});if(e instanceof Ex)return new Px(e,e.entries,n,t);var i={};if(t.getKeyBinding){var r=t.getKeyBinding(e);r&&(i.keybinding=r.getLabel())}return new Nx(t.context,e,i)},Object.defineProperty(e.prototype,"onDidCancel",{get:function(){return this.actionBar.onDidCancel},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"onDidBlur",{get:function(){return this.actionBar.onDidBlur},enumerable:!0,configurable:!0}),e.prototype.focus=function(e){void 0===e&&(e=!0),this.actionBar&&this.actionBar.focus(e)},e.prototype.dispose=function(){this.actionBar&&(this.actionBar.dispose(),this.actionBar=null),this.listener&&(this.listener.dispose(),this.listener=null)},e}(),Nx=function(e){function t(t,n,i){void 0===i&&(i={});var r=this;return i.isMenu=!0,(r=e.call(this,n,n,i)||this).options=i,r.options.icon=void 0!==i.icon&&i.icon,r.options.label=void 0===i.label||i.label,r.cssClass="",r}return Rx(t,e),t.prototype.render=function(t){e.prototype.render.call(this,t),this.$e=xy("a.action-menu-item").appendTo(this.builder),this._action.id===Dy.ID?this.$e.attr({role:"presentation"}):this.$e.attr({role:"menuitem"}),this.$label=xy("span.action-label").appendTo(this.$e),this.options.label&&this.options.keybinding&&xy("span.keybinding").text(this.options.keybinding).appendTo(this.$e),this._updateClass(),this._updateLabel(),this._updateTooltip(),this._updateEnabled(),this._updateChecked()},t.prototype._updateLabel=function(){if(this.options.label){var e=this.getAction().label;if(e){var n=t.MNEMONIC_REGEX.exec(e);if(n&&2===n.length){var i=n[1],r=e.replace(t.MNEMONIC_REGEX,i);this.$e.getHTMLElement().accessKey=i.toLocaleLowerCase(),this.$label.attr("aria-label",r)}else this.$label.attr("aria-label",e);e=e.replace(t.MNEMONIC_REGEX,"$1̲")}this.$label.text(e)}},t.prototype._updateTooltip=function(){var e=null;this.getAction().tooltip?e=this.getAction().tooltip:!this.options.label&&this.getAction().label&&this.options.icon&&(e=this.getAction().label,this.options.keybinding&&(e=r({key:"titleLabel",comment:["action title","action keybinding"]},"{0} ({1})",e,this.options.keybinding))),e&&this.$e.attr({title:e})},t.prototype._updateClass=function(){this.cssClass&&this.$e.removeClass(this.cssClass),this.options.icon?(this.cssClass=this.getAction().class,this.$label.addClass("icon"),this.cssClass&&this.$label.addClass(this.cssClass),this._updateEnabled()):this.$label.removeClass("icon")},t.prototype._updateEnabled=function(){this.getAction().enabled?(this.builder.removeClass("disabled"),this.$e.removeClass("disabled"),this.$e.attr({tabindex:0})):(this.builder.addClass("disabled"),this.$e.addClass("disabled"),au(this.$e.getHTMLElement()))},t.prototype._updateChecked=function(){this.getAction().checked?this.$label.addClass("checked"):this.$label.removeClass("checked")},t.MNEMONIC_REGEX=/&&(.)/g,t}(By),Px=function(e){function t(t,n,i,r){var o=e.call(this,t,t,{label:!0,isMenu:!0})||this;return o.submenuActions=n,o.parentData=i,o.submenuOptions=r,o.showScheduler=new Fa(function(){o.mouseOver&&(o.cleanupExistingSubmenu(!1),o.createSubmenu(!1))},250),o.hideScheduler=new Fa(function(){ql(document.activeElement,o.builder.getHTMLElement())||o.parentData.submenu!==o.mysubmenu||(o.parentData.parent.focus(!1),o.cleanupExistingSubmenu(!0))},750),o}return Rx(t,e),t.prototype.render=function(t){var n=this;e.prototype.render.call(this,t),this.$e.addClass("monaco-submenu-item"),this.$e.attr("aria-haspopup","true"),xy("span.submenu-indicator").text("▶").appendTo(this.$e),xy(this.builder).on(Xl.KEY_UP,function(e){new il(e).equals(17)&&(Jl.stop(e,!0),n.createSubmenu(!0))}),xy(this.builder).on(Xl.KEY_DOWN,function(e){new il(e).equals(17)&&Jl.stop(e,!0)}),xy(this.builder).on(Xl.MOUSE_OVER,function(e){n.mouseOver||(n.mouseOver=!0,n.showScheduler.schedule())}),xy(this.builder).on(Xl.MOUSE_LEAVE,function(e){n.mouseOver=!1}),xy(this.builder).on(Xl.FOCUS_OUT,function(e){ql(document.activeElement,n.builder.getHTMLElement())||n.hideScheduler.schedule()})},t.prototype.onClick=function(e){Jl.stop(e,!0),this.createSubmenu(!1)},t.prototype.cleanupExistingSubmenu=function(e){this.parentData.submenu&&(e||this.parentData.submenu!==this.mysubmenu)&&(this.parentData.submenu.dispose(),this.parentData.submenu=null,this.submenuContainer&&(this.submenuContainer.dispose(),this.submenuContainer=null))},t.prototype.createSubmenu=function(e){var t=this;void 0===e&&(e=!0),this.parentData.submenu?this.parentData.submenu.focus(!1):(this.submenuContainer=xy(this.builder).div({class:"monaco-submenu menubar-menu-items-holder context-view"}),xy(this.submenuContainer).style({left:xy(this.builder).getClientArea().width+"px"}),xy(this.submenuContainer).on(Xl.KEY_UP,function(e){new il(e).equals(15)&&(Jl.stop(e,!0),t.parentData.parent.focus(),t.parentData.submenu.dispose(),t.parentData.submenu=null,t.submenuContainer.dispose(),t.submenuContainer=null)}),xy(this.submenuContainer).on(Xl.KEY_DOWN,function(e){new il(e).equals(15)&&Jl.stop(e,!0)}),this.parentData.submenu=new Kx(this.submenuContainer.getHTMLElement(),this.submenuActions,this.submenuOptions),this.parentData.submenu.focus(e),this.mysubmenu=this.parentData.submenu)},t.prototype.dispose=function(){e.prototype.dispose.call(this),this.hideScheduler.dispose(),this.mysubmenu&&(this.mysubmenu.dispose(),this.mysubmenu=null),this.submenuContainer&&(this.submenuContainer.dispose(),this.submenuContainer=null)},t}(Nx),Ox=function(){function e(e,t,n,i){this.setContainer(e),this.contextViewService=t,this.telemetryService=n,this.notificationService=i,this.menuContainerElement=null}return e.prototype.setContainer=function(e){var t=this;this.$el&&(this.$el.off(["click","mousedown"]),this.$el=null),e&&(this.$el=xy(e),this.$el.on("mousedown",function(e){return t.onMouseDown(e)}))},e.prototype.showContextMenu=function(e){var t=this;e.getActions().done(function(n){n.length&&t.contextViewService.showContextView({getAnchor:function(){return e.getAnchor()},canRelayout:!1,render:function(i){t.menuContainerElement=i;var r=e.getMenuClassName?e.getMenuClassName():"";r&&(i.className+=" "+r);var o=[],s=e.actionRunner||new Is;s.onDidBeforeRun(t.onActionRun,t,o),s.onDidRun(t.onDidActionRun,t,o);var a=new Kx(i,n,{actionItemProvider:e.getActionItem,context:e.getActionsContext?e.getActionsContext():null,actionRunner:s,getKeyBinding:e.getKeyBinding});return a.onDidCancel(function(){return t.contextViewService.hideContextView(!0)},null,o),a.onDidBlur(function(){return t.contextViewService.hideContextView(!0)},null,o),a.focus(!!e.autoSelectFirstItem),we(o.concat([a]))},onHide:function(n){e.onHide&&e.onHide(n),t.menuContainerElement=null}})})},e.prototype.onActionRun=function(e){this.telemetryService&&this.telemetryService.publicLog("workbenchActionExecuted",{id:e.action.id,from:"contextMenu"}),this.contextViewService.hideContextView(!1)},e.prototype.onDidActionRun=function(e){e.error&&this.notificationService&&this.notificationService.error(e.error)},e.prototype.onMouseDown=function(e){if(this.menuContainerElement){for(var t=new dl(e).target;t;){if(t===this.menuContainerElement)return;t=t.parentElement}this.contextViewService.hideContextView()}},e.prototype.dispose=function(){this.setContainer(null)},e}(),$x=function(){function e(e,t,n,i){this._onDidContextMenu=new Ne,this.contextMenuHandler=new Ox(e,i,t,n)}return e.prototype.dispose=function(){this.contextMenuHandler.dispose()},e.prototype.showContextMenu=function(e){this.contextMenuHandler.showContextMenu(e),this._onDidContextMenu.fire()},e}(),kx=function(e,t){return function(n,i){t(n,i,e)}},Lx=function(){function e(e,t,n){this.logService=n,this.contextView=new KS(e)}return e.prototype.dispose=function(){this.contextView.dispose()},e.prototype.setContainer=function(e){this.logService.trace("ContextViewService#setContainer"),this.contextView.setContainer(e)},e.prototype.showContextView=function(e){this.logService.trace("ContextViewService#showContextView"),this.contextView.show(e)},e.prototype.layout=function(){this.contextView.layout()},e.prototype.hideContextView=function(e){this.logService.trace("ContextViewService#hideContextView"),this.contextView.hide(e)},function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([kx(1,Ss),kx(2,qC)],e)}(),Mx=Object.prototype.hasOwnProperty;function Fx(e,t){var n=function(n){if(Mx.call(e,n)&&!1===t({key:n,value:e[n]},function(){delete e[n]}))return{value:void 0}};for(var i in e){var r=n(i);if("object"==typeof r)return r.value}}var zx,jx,Ux,Gx=function(){function e(e){this._hashFn=e,this._nodes=Object.create(null)}return e.prototype.roots=function(){var e=[];return Fx(this._nodes,function(t){un(t.value.outgoing)&&e.push(t.value)}),e},e.prototype.insertEdge=function(e,t){var n=this.lookupOrInsertNode(e),i=this.lookupOrInsertNode(t);n.outgoing[this._hashFn(t)]=i,i.incoming[this._hashFn(e)]=n},e.prototype.removeNode=function(e){var t=this._hashFn(e);delete this._nodes[t],Fx(this._nodes,function(e){delete e.value.outgoing[t],delete e.value.incoming[t]})},e.prototype.lookupOrInsertNode=function(e){var t=this._hashFn(e),n=this._nodes[t];return n||(n=function(e){return{data:e,incoming:Object.create(null),outgoing:Object.create(null)}}(e),this._nodes[t]=n),n},Object.defineProperty(e.prototype,"length",{get:function(){return Object.keys(this._nodes).length},enumerable:!0,configurable:!0}),e.prototype.toString=function(){var e=[];return Fx(this._nodes,function(t){e.push(t.key+", (incoming)["+Object.keys(t.value.incoming).join(", ")+"], (outgoing)["+Object.keys(t.value.outgoing).join(",")+"]")}),e.join("\n")},e}(),Wx=function(e){for(var t=[],n=1;n0?i[0].index:n.length;if(n.length!==u){console.warn("[createInstance] First service dependency of "+e.ctor.name+" at position "+(u+1)+" conflicts with "+n.length+" static arguments");var d=u-n.length;n=d>0?n.concat(new Array(d)):n.slice(0,u)}var c=[e.ctor];return c.push.apply(c,n),c.push.apply(c,r),function(e){for(var t=[],n=1;n100&&i();for(var a=0,l=Bt.getServiceDependencies(s.desc.ctor);a0?a:1,startColumn:l=l>0?l:1,endLineNumber:u=u>=a?u:a,endColumn:d=d>0?d:l,relatedInformation:c,tags:g}},e.prototype.read=function(t){void 0===t&&(t=Object.create(null));var n=t.owner,i=t.resource,r=t.severities,o=t.take;if((!o||o<0)&&(o=-1),n&&i){if(b=qx.get(this._byResource,i.toString(),n)){for(var s=[],a=0,l=b;a0&&d===o)break}}return s}return[]}if(n||i){var c=n?this._byOwner[n]:this._byResource[i.toString()];if(!c)return[];for(var g in s=[],c)for(var m=0,h=c[g];m0&&d===o))return s;return s}s=[];for(var p in this._byResource)for(var f in this._byResource[p])for(var y=0,S=this._byResource[p][f];y0&&d===o)return s}}return s},e._accept=function(e,t){return void 0===t||(t&e.severity)===e.severity},e._debouncer=function(t,n){t||(e._dedupeMap=Object.create(null),t=[]);for(var i=0,r=n;i0||this.m_modifiedCount>0)&&this.m_changes.push(new sw(this.m_originalStart,this.m_originalCount,this.m_modifiedStart,this.m_modifiedCount)),this.m_originalCount=0,this.m_modifiedCount=0,this.m_originalStart=Number.MAX_VALUE,this.m_modifiedStart=Number.MAX_VALUE},e.prototype.AddOriginalElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_originalCount++},e.prototype.AddModifiedElement=function(e,t){this.m_originalStart=Math.min(this.m_originalStart,e),this.m_modifiedStart=Math.min(this.m_modifiedStart,t),this.m_modifiedCount++},e.prototype.getChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes},e.prototype.getReverseChanges=function(){return(this.m_originalCount>0||this.m_modifiedCount>0)&&this.MarkNextChange(),this.m_changes.reverse(),this.m_changes},e}(),gw=function(){function e(e,t,n){void 0===n&&(n=null),this.OriginalSequence=e,this.ModifiedSequence=t,this.ContinueProcessingPredicate=n,this.m_forwardHistory=[],this.m_reverseHistory=[]}return e.prototype.ElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.OriginalElementsAreEqual=function(e,t){return this.OriginalSequence.getElementAtIndex(e)===this.OriginalSequence.getElementAtIndex(t)},e.prototype.ModifiedElementsAreEqual=function(e,t){return this.ModifiedSequence.getElementAtIndex(e)===this.ModifiedSequence.getElementAtIndex(t)},e.prototype.ComputeDiff=function(e){return this._ComputeDiff(0,this.OriginalSequence.getLength()-1,0,this.ModifiedSequence.getLength()-1,e)},e.prototype._ComputeDiff=function(e,t,n,i,r){var o=this.ComputeDiffRecursive(e,t,n,i,[!1]);return r?this.ShiftChanges(o):o},e.prototype.ComputeDiffRecursive=function(e,t,n,i,r){for(r[0]=!1;e<=t&&n<=i&&this.ElementsAreEqual(e,n);)e++,n++;for(;t>=e&&i>=n&&this.ElementsAreEqual(t,i);)t--,i--;if(e>t||n>i){var o=void 0;return n<=i?(uw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),o=[new sw(e,0,n,i-n+1)]):e<=t?(uw.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[new sw(e,t-e+1,n,0)]):(uw.Assert(e===t+1,"originalStart should only be one more than originalEnd"),uw.Assert(n===i+1,"modifiedStart should only be one more than modifiedEnd"),o=[]),o}var s=[0],a=[0],l=this.ComputeRecursionPoint(e,t,n,i,s,a,r),u=s[0],d=a[0];if(null!==l)return l;if(!r[0]){var c,g=this.ComputeDiffRecursive(e,u,n,d,r);return c=r[0]?[new sw(u+1,t-(u+1)+1,d+1,i-(d+1)+1)]:this.ComputeDiffRecursive(u+1,t,d+1,i,r),this.ConcatenateChanges(g,c)}return[new sw(e,t-e+1,n,i-n+1)]},e.prototype.WALKTRACE=function(e,t,n,i,r,o,s,a,l,u,d,c,g,m,h,p,f,y){var S,b,I=null,C=new cw,_=t,v=n,T=g[0]-p[0]-i,x=Number.MIN_VALUE,w=this.m_forwardHistory.length-1;do{(b=T+e)===_||b=0&&(e=(l=this.m_forwardHistory[w])[0],_=1,v=l.length-1)}while(--w>=-1);if(S=C.getReverseChanges(),y[0]){var B=g[0]+1,D=p[0]+1;if(null!==S&&S.length>0){var A=S[S.length-1];B=Math.max(B,A.getOriginalEnd()),D=Math.max(D,A.getModifiedEnd())}I=[new sw(B,c-B+1,D,h-D+1)]}else{C=new cw,_=o,v=s,T=g[0]-p[0]-a,x=Number.MAX_VALUE,w=f?this.m_reverseHistory.length-1:this.m_reverseHistory.length-2;do{(b=T+r)===_||b=u[b+1]?(m=(d=u[b+1]-1)-T-a,d>x&&C.MarkNextChange(),x=d+1,C.AddOriginalElement(d+1,m+1),T=b+1-r):(m=(d=u[b-1])-T-a,d>x&&C.MarkNextChange(),x=d,C.AddModifiedElement(d+1,m+1),T=b-1-r),w>=0&&(r=(u=this.m_reverseHistory[w])[0],_=1,v=u.length-1)}while(--w>=-1);I=C.getChanges()}return this.ConcatenateChanges(S,I)},e.prototype.ComputeRecursionPoint=function(e,t,n,i,r,o,s){var a,l,u,d=0,c=0,g=0,m=0;e--,n--,r[0]=0,o[0]=0,this.m_forwardHistory=[],this.m_reverseHistory=[];var h,p,f=t-e+(i-n),y=f+1,S=new Array(y),b=new Array(y),I=i-n,C=t-e,_=e-n,v=t-i,T=(C-I)%2==0;for(S[I]=e,b[C]=t,s[0]=!1,u=1;u<=f/2+1;u++){var x=0,w=0;for(d=this.ClipDiagonalBound(I-u,u,I,y),c=this.ClipDiagonalBound(I+u,u,I,y),h=d;h<=c;h+=2){for(l=(a=h===d||hx+w&&(x=a,w=l),!T&&Math.abs(h-C)<=u-1&&a>=b[h])return r[0]=a,o[0]=l,p<=b[h]&&u<=1448?this.WALKTRACE(I,d,c,_,C,g,m,v,S,b,a,t,r,l,i,o,T,s):null}var B=(x-e+(w-n)-u)/2;if(null!==this.ContinueProcessingPredicate&&!this.ContinueProcessingPredicate(x,this.OriginalSequence,B))return s[0]=!0,r[0]=x,o[0]=w,B>0&&u<=1448?this.WALKTRACE(I,d,c,_,C,g,m,v,S,b,a,t,r,l,i,o,T,s):[new sw(++e,t-e+1,++n,i-n+1)];for(g=this.ClipDiagonalBound(C-u,u,C,y),m=this.ClipDiagonalBound(C+u,u,C,y),h=g;h<=m;h+=2){for(l=(a=h===g||h=b[h+1]?b[h+1]-1:b[h-1])-(h-C)-v,p=a;a>e&&l>n&&this.ElementsAreEqual(a,l);)a--,l--;if(b[h]=a,T&&Math.abs(h-I)<=u&&a<=S[h])return r[0]=a,o[0]=l,p>=S[h]&&u<=1448?this.WALKTRACE(I,d,c,_,C,g,m,v,S,b,a,t,r,l,i,o,T,s):null}if(u<=1447){var D=new Array(c-d+2);D[0]=I-d+1,dw.Copy(S,d,D,1,c-d+1),this.m_forwardHistory.push(D),(D=new Array(m-g+2))[0]=C-g+1,dw.Copy(b,g,D,1,m-g+1),this.m_reverseHistory.push(D)}}return this.WALKTRACE(I,d,c,_,C,g,m,v,S,b,a,t,r,l,i,o,T,s)},e.prototype.ShiftChanges=function(e){var t;do{t=!1;for(var n=0;n0,a=i.modifiedLength>0;i.originalStart+i.originalLength=0;n--){if(i=e[n],r=0,o=0,n>0){var d=e[n-1];d.originalLength>0&&(r=d.originalStart+d.originalLength),d.modifiedLength>0&&(o=d.modifiedStart+d.modifiedLength)}s=i.originalLength>0,a=i.modifiedLength>0;for(var c=0,g=this._boundaryScore(i.originalStart,i.originalLength,i.modifiedStart,i.modifiedLength),m=1;;m++){var h=i.originalStart-m,p=i.modifiedStart-m;if(hg&&(g=f,c=m)}i.originalStart-=c,i.modifiedStart-=c}return e},e.prototype._OriginalIsBoundary=function(e){if(e<=0||e>=this.OriginalSequence.getLength()-1)return!0;var t=this.OriginalSequence.getElementAtIndex(e);return"string"==typeof t&&/^\s*$/.test(t)},e.prototype._OriginalRegionIsBoundary=function(e,t){if(this._OriginalIsBoundary(e)||this._OriginalIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._OriginalIsBoundary(n-1)||this._OriginalIsBoundary(n))return!0}return!1},e.prototype._ModifiedIsBoundary=function(e){if(e<=0||e>=this.ModifiedSequence.getLength()-1)return!0;var t=this.ModifiedSequence.getElementAtIndex(e);return"string"==typeof t&&/^\s*$/.test(t)},e.prototype._ModifiedRegionIsBoundary=function(e,t){if(this._ModifiedIsBoundary(e)||this._ModifiedIsBoundary(e-1))return!0;if(t>0){var n=e+t;if(this._ModifiedIsBoundary(n-1)||this._ModifiedIsBoundary(n))return!0}return!1},e.prototype._boundaryScore=function(e,t,n,i){return(this._OriginalRegionIsBoundary(e,t)?1:0)+(this._ModifiedRegionIsBoundary(n,i)?1:0)},e.prototype.ConcatenateChanges=function(e,t){var n=[],i=null;return 0===e.length||0===t.length?t.length>0?t:e:this.ChangesOverlap(e[e.length-1],t[0],n)?(i=new Array(e.length+t.length-1),dw.Copy(e,0,i,0,e.length-1),i[e.length-1]=n[0],dw.Copy(t,1,i,e.length,t.length-1),i):(i=new Array(e.length+t.length),dw.Copy(e,0,i,0,e.length),dw.Copy(t,0,i,e.length,t.length),i)},e.prototype.ChangesOverlap=function(e,t,n){if(uw.Assert(e.originalStart<=t.originalStart,"Left change is not less than or equal to right change"),uw.Assert(e.modifiedStart<=t.modifiedStart,"Left change is not less than or equal to right change"),e.originalStart+e.originalLength>=t.originalStart||e.modifiedStart+e.modifiedLength>=t.modifiedStart){var i=e.originalStart,r=e.originalLength,o=e.modifiedStart,s=e.modifiedLength;return e.originalStart+e.originalLength>=t.originalStart&&(r=t.originalStart+t.originalLength-e.originalStart),e.modifiedStart+e.modifiedLength>=t.modifiedStart&&(s=t.modifiedStart+t.modifiedLength-e.modifiedStart),n[0]=new sw(i,r,o,s),!0}return n[0]=null,!1},e.prototype.ClipDiagonalBound=function(e,t,n,i){if(e>=0&&e1&&h>1&&c.charCodeAt(m-2)===g.charCodeAt(h-2);)m--,h--;(m>1||h>1)&&this._pushTrimWhitespaceCharChange(r,o+1,1,m,s+1,1,h);for(var p=pw._getLastNonBlankColumn(c,1),f=pw._getLastNonBlankColumn(g,1),y=c.length+1,S=g.length+1;pt&&(t=a),s>n&&(n=s),l>n&&(n=l)}var u=new zr(++n,++t,0);for(i=0,r=e.length;i=this._maxCharCode?0:this._states.get(e,t)},e}(),_w=null,vw=null,Tw=function(){function e(){}return e._createLink=function(e,t,n,i,r){var o=r-1;do{var s=t.charCodeAt(o);if(2!==e.get(s))break;o--}while(o>i);if(i>0){var a=t.charCodeAt(i-1),l=t.charCodeAt(o);(40===a&&41===l||91===a&&93===l||123===a&&125===l)&&o--}return{range:{startLineNumber:n,startColumn:i+1,endLineNumber:n,endColumn:o+2},url:t.substring(i,o+1)}},e.computeLinks=function(t){for(var n=(null===_w&&(_w=new Cw([[1,104,2],[1,72,2],[1,102,6],[1,70,6],[2,116,3],[2,84,3],[3,116,4],[3,84,4],[4,112,5],[4,80,5],[5,115,9],[5,83,9],[5,58,10],[6,105,7],[6,73,7],[7,108,8],[7,76,8],[8,101,9],[8,69,9],[9,58,10],[10,47,11],[11,47,12]])),_w),i=function(){if(null===vw){vw=new Gr(0);for(var e=0;e<" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".length;e++)vw.set(" \t<>'\"、。。、,.:;?!@#$%&*‘“〈《「『【〔([{「」}])〕】』」》〉”’`~…".charCodeAt(e),1);for(e=0;e<".,;".length;e++)vw.set(".,;".charCodeAt(e),2)}return vw}(),r=[],o=1,s=t.getLineCount();o<=s;o++){for(var a=t.getLineContent(o),l=a.length,u=0,d=0,c=0,g=1,m=!1,h=!1,p=!1;u=0?((i+=n?1:-1)<0?i=e.length-1:i%=e.length,e[i]):null},e.INSTANCE=new e,e}(),ww=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),Bw=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return ww(t,e),Object.defineProperty(t.prototype,"uri",{get:function(){return this._uri},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"version",{get:function(){return this._versionId},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"eol",{get:function(){return this._eol},enumerable:!0,configurable:!0}),t.prototype.getValue=function(){return this.getText()},t.prototype.getLinesContent=function(){return this._lines.slice(0)},t.prototype.getLineCount=function(){return this._lines.length},t.prototype.getLineContent=function(e){return this._lines[e-1]},t.prototype.getWordAtPosition=function(e,t){var n=Ji(e.column,Xi(t),this._lines[e.lineNumber-1],0);return n?new s(e.lineNumber,n.startColumn,e.lineNumber,n.endColumn):null},t.prototype.getWordUntilPosition=function(e,t){var n=this.getWordAtPosition(e,t);return n?{word:this._lines[e.lineNumber-1].substring(n.startColumn-1,e.column-1),startColumn:n.startColumn,endColumn:e.column}:{word:"",startColumn:e.column,endColumn:e.column}},t.prototype.createWordIterator=function(e){var t,n=this,i={done:!1,value:""},r=0,o=0,s=[],a=function(){if(o=n._lines.length))return t=n._lines[r],s=n._wordenize(t,e),o=0,r+=1,a();i.done=!0,i.value=void 0}return i};return{next:a}},t.prototype._wordenize=function(e,t){var n,i=[];for(t.lastIndex=0;(n=t.exec(e))&&0!==n[0].length;)i.push({start:n.index,end:n.index+n[0].length});return i},t.prototype.getValueInRange=function(e){if((e=this._validateRange(e)).startLineNumber===e.endLineNumber)return this._lines[e.startLineNumber-1].substring(e.startColumn-1,e.endColumn-1);var t=this._eol,n=e.startLineNumber-1,i=e.endLineNumber-1,r=[];r.push(this._lines[n].substring(e.startColumn-1));for(var o=n+1;othis._lines.length)t=this._lines.length,n=this._lines[t-1].length+1,i=!0;else{var r=this._lines[t-1].length+1;n<1?(n=1,i=!0):n>r&&(n=r,i=!0)}return i?{lineNumber:t,column:n}:e},t}(Iw),Dw=function(e){function t(t){var n=e.call(this,t)||this;return n._models=Object.create(null),n}return ww(t,e),t.prototype.dispose=function(){this._models=Object.create(null)},t.prototype._getModel=function(e){return this._models[e]},t.prototype._getModels=function(){var e=this,t=[];return Object.keys(this._models).forEach(function(n){return t.push(e._models[n])}),t},t.prototype.acceptNewModel=function(e){this._models[e.url]=new Bw(ae.parse(e.url),e.lines,e.EOL,e.versionId)},t.prototype.acceptModelChanged=function(e,t){this._models[e]&&this._models[e].onEvents(t)},t.prototype.acceptRemovedModel=function(e){this._models[e]&&delete this._models[e]},t}(function(){function e(e){this._foreignModuleFactory=e,this._foreignModule=null}return e.prototype.computeDiff=function(e,t,n){var i=this._getModel(e),r=this._getModel(t);if(!i||!r)return null;var o=i.getLinesContent(),s=r.getLinesContent(),a=new bw(o,s,{shouldComputeCharChanges:!0,shouldPostProcessCharChanges:!0,shouldIgnoreTrimWhitespace:n,shouldMakePrettyDiff:!0});return he.b.as(a.computeDiff())},e.prototype.computeMoreMinimalEdits=function(t,n){var i=this._getModel(t);if(!i)return he.b.as(n);for(var r,o=[],a=0,l=n;ae._diffLimit)o.push({range:d,text:c});else for(var h=lw(m,c,!1),p=i.offsetAt(s.lift(d).getStartPosition()),f=0,y=h;f=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([Ew(0,Yt),Ew(1,Aw)],t)}(Ae),$w=function(){function e(e,t,n){this._workerManager=e,this._configurationService=t,this._modelService=n}return e.prototype.provideCompletionItems=function(e,t){if(this._configurationService.getValue(e.uri,t,"editor").wordBasedSuggestions&&Pw(this._modelService,e.uri))return this._workerManager.withWorker().then(function(n){return n.textualSuggest(e.uri,t)})},e}(),kw=function(e){function t(t){var n=e.call(this)||this;return n._modelService=t,n._editorWorkerClient=null,n._register(new Ma).cancelAndSet(function(){return n._checkStopIdleWorker()},Math.round(Nw/2)),n._register(n._modelService.onModelRemoved(function(e){return n._checkStopEmptyWorker()})),n}return Rw(t,e),t.prototype.dispose=function(){this._editorWorkerClient&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null),e.prototype.dispose.call(this)},t.prototype._checkStopEmptyWorker=function(){this._editorWorkerClient&&0===this._modelService.getModels().length&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)},t.prototype._checkStopIdleWorker=function(){this._editorWorkerClient&&(new Date).getTime()-this._lastWorkerUsedTime>Nw&&(this._editorWorkerClient.dispose(),this._editorWorkerClient=null)},t.prototype.withWorker=function(){return this._lastWorkerUsedTime=(new Date).getTime(),this._editorWorkerClient||(this._editorWorkerClient=new Fw(this._modelService,"editorWorkerService")),he.b.as(this._editorWorkerClient)},t}(Ae),Lw=function(e){function t(t,n,i){var r=e.call(this)||this;if(r._syncedModels=Object.create(null),r._syncedModelsLastUsedTime=Object.create(null),r._proxy=t,r._modelService=n,!i){var o=new Ma;o.cancelAndSet(function(){return r._checkStopModelSync()},Math.round(Kw/2)),r._register(o)}return r}return Rw(t,e),t.prototype.dispose=function(){for(var t in this._syncedModels)xe(this._syncedModels[t]);this._syncedModels=Object.create(null),this._syncedModelsLastUsedTime=Object.create(null),e.prototype.dispose.call(this)},t.prototype.esureSyncedResources=function(e){for(var t=0;tKw&&t.push(n);for(var i=0;i=0}}(e);Gw.push(n),n.userConfigured?Vw.push(n):Ww.push(n),t&&!n.userConfigured&&Gw.forEach(function(e){e.mime===n.mime||e.userConfigured||(n.extension&&e.extension===n.extension&&console.warn("Overwriting extension <<"+n.extension+">> to now point to mime <<"+n.mime+">>"),n.filename&&e.filename===n.filename&&console.warn("Overwriting filename <<"+n.filename+">> to now point to mime <<"+n.mime+">>"),n.filepattern&&e.filepattern===n.filepattern&&console.warn("Overwriting filepattern <<"+n.filepattern+">> to now point to mime <<"+n.mime+">>"),n.firstline&&e.firstline===n.firstline&&console.warn("Overwriting firstline <<"+n.firstline+">> to now point to mime <<"+n.mime+">>"))})}function Yw(e,t,n){for(var i,r,o,s=n.length-1;s>=0;s--){var a=n[s];if(t===a.filenameLowercase){i=a;break}if(a.filepattern&&(!r||a.filepattern.length>r.filepattern.length)){var l=a.filepatternOnPath?e:t;zt(a.filepatternLowercase,l)&&(r=a)}a.extension&&(!o||a.extension.length>o.extension.length)&&C(t,a.extensionLowercase)&&(o=a)}return i?i.mime:r?r.mime:o?o.mime:null}var Hw=new(function(){function e(){this._onDidAddLanguages=new Ne,this.onDidAddLanguages=this._onDidAddLanguages.event,this._languages=[]}return e.prototype.registerLanguage=function(e){this._languages.push(e),this._onDidAddLanguages.fire([e])},e.prototype.getLanguages=function(){return this._languages.slice(0)},e}());hs.add("editor.modesRegistry",Hw);var Zw=new fn("plaintext",1);Hw.registerLanguage({id:"plaintext",extensions:[".txt",".gitignore"],aliases:[r("plainText.alias","Plain Text"),"text"],mimetypes:["text/plain"]}),tr.register(Zw,{brackets:[["(",")"],["[","]"],["{","}"]]});var Qw=Object.prototype.hasOwnProperty,Xw=function(){function e(e,t){void 0===e&&(e=!0),void 0===t&&(t=!1);var n=this;this._nextLanguageId=1,this._languages={},this._mimeTypesMap={},this._nameMap={},this._lowercaseNameMap={},this._languageIds=[],this._warnOnOverwrite=t,e&&(this._registerLanguages(Hw.getLanguages()),Hw.onDidAddLanguages(function(e){return n._registerLanguages(e)}))}return e.prototype._registerLanguages=function(e){var t=this;if(0!==e.length){for(var n=0;n0&&((n=e.mimetypes).push.apply(n,t.mimetypes),r=t.mimetypes[0]),r||(r="text/x-"+i,e.mimetypes.push(r)),Array.isArray(t.extensions))for(var o=0,s=t.extensions;o0){var m=t.firstLine;"^"!==m.charAt(0)&&(m="^"+m);try{var h=new RegExp(m);v(h)||qw({id:i,mime:r,firstline:h},this._warnOnOverwrite)}catch(e){ye(e)}}e.aliases.push(i);var p=null;if(void 0!==t.aliases&&Array.isArray(t.aliases)&&(p=0===t.aliases.length?[null]:t.aliases),null!==p)for(var f=0;f0;if(y&&null===p[0]);else{var S=(y?p[0]:null)||i;!y&&e.name||(e.name=S)}t.configuration&&e.configurationFiles.push(t.configuration)},e.prototype.isRegisteredMode=function(e){return!!Qw.call(this._mimeTypesMap,e)||Qw.call(this._languages,e)},e.prototype.getModeIdForLanguageNameLowercase=function(e){return Qw.call(this._lowercaseNameMap,e)?this._lowercaseNameMap[e].language:null},e.prototype.extractModeIds=function(e){var t=this;return e?e.split(",").map(function(e){return e.trim()}).map(function(e){return Qw.call(t._mimeTypesMap,e)?t._mimeTypesMap[e].language:e}).filter(function(e){return Qw.call(t._languages,e)}):[]},e.prototype.getLanguageIdentifier=function(e){if("vs.editor.nullMode"===e||0===e)return Di;var t;if("string"==typeof e)t=e;else if(!(t=this._languageIds[e]))return null;return Qw.call(this._languages,t)?this._languages[t].identifier:null},e.prototype.getModeIdsFromFilenameOrFirstLine=function(e,t){if(!e&&!t)return[];var n=function(e,t){if(!e)return[Uw];var n=ot(e=e.toLowerCase()),i=Yw(e,n,Vw);if(i)return[i,jw];var r=Yw(e,n,Ww);if(r)return[r,jw];if(t){var o=function(e){if(Y(e)&&(e=e.substr(1)),e.length>0)for(var t=0;t0)return n.mime}}return null}(t);if(o)return[o,jw]}return[Uw]}(e,t);return this.extractModeIds(n.join(","))},e}(),Jw=function(){function e(e){void 0===e&&(e=!1),this._onDidCreateMode=new Ne,this.onDidCreateMode=this._onDidCreateMode.event,this._instantiatedModes={},this._registry=new Xw(!0,e)}return e.prototype._onReady=function(){return he.b.as(!0)},e.prototype.isRegisteredMode=function(e){return this._registry.isRegisteredMode(e)},e.prototype.getModeIdForLanguageName=function(e){return this._registry.getModeIdForLanguageNameLowercase(e)},e.prototype.getModeIdByFilenameOrFirstLine=function(e,t){var n=this._registry.getModeIdsFromFilenameOrFirstLine(e,t);return n.length>0?n[0]:null},e.prototype.getModeId=function(e){var t=this._registry.extractModeIds(e);return t.length>0?t[0]:null},e.prototype.getLanguageIdentifier=function(e){return this._registry.getLanguageIdentifier(e)},e.prototype.getMode=function(e){for(var t=this._registry.extractModeIds(e),n=!1,i=0;i=r?new s(n.startLineNumber,r-1,n.endLineNumber,r):new s(n.startLineNumber,n.startColumn,n.endLineNumber,n.endColumn+1))}}else if(t.endColumn===Number.MAX_VALUE&&1===t.startColumn&&n.startLineNumber===n.endLineNumber){var o=e.getLineFirstNonWhitespaceColumn(t.startLineNumber);o=0?"squiggly-unnecessary":"squiggly-hint",o=0;break;case jx.Warning:t="squiggly-warning",n=vc(Dm),i=vc(Dm),o=20;break;case jx.Info:t="squiggly-info",n=vc(Am),i=vc(Am),o=10;break;case jx.Error:default:t="squiggly-error",n=vc(Bm),i=vc(Bm),o=30}e.tags&&-1!==e.tags.indexOf(zx.Unnecessary)&&(s="squiggly-inline-unnecessary");var a=null,l=e.message,u=e.source,d=e.relatedInformation;if("string"==typeof l&&(l=l.trim(),u&&(l=/\n/g.test(l)?r("diagAndSourceMultiline","[{0}]\n{1}",u,l):r("diagAndSource","[{0}] {1}",u,l)),a=(new gS).appendCodeblock("_",l),!Je(d))){a.appendMarkdown("\n");for(var c=0,g=d;c=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([eB(0,Yx),eB(1,TT)],e)}(),sB=function(){function e(){this._codeEditors=Object.create(null),this._diffEditors=Object.create(null),this._onCodeEditorAdd=new Ne,this._onCodeEditorRemove=new Ne,this._onDiffEditorAdd=new Ne,this._onDiffEditorRemove=new Ne}return e.prototype.addCodeEditor=function(e){this._codeEditors[e.getId()]=e,this._onCodeEditorAdd.fire(e)},Object.defineProperty(e.prototype,"onCodeEditorAdd",{get:function(){return this._onCodeEditorAdd.event},enumerable:!0,configurable:!0}),e.prototype.removeCodeEditor=function(e){delete this._codeEditors[e.getId()]&&this._onCodeEditorRemove.fire(e)},e.prototype.listCodeEditors=function(){var e=this;return Object.keys(this._codeEditors).map(function(t){return e._codeEditors[t]})},e.prototype.addDiffEditor=function(e){this._diffEditors[e.getId()]=e,this._onDiffEditorAdd.fire(e)},e.prototype.removeDiffEditor=function(e){delete this._diffEditors[e.getId()]&&this._onDiffEditorRemove.fire(e)},e.prototype.listDiffEditors=function(){var e=this;return Object.keys(this._diffEditors).map(function(t){return e._diffEditors[t]})},e.prototype.getFocusedCodeEditor=function(){for(var e=null,t=this.listCodeEditors(),n=0;n=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([function(e,t){return function(n,i){t(n,i,e)}}(0,_c)],t)}(sB),uB=function(){function e(e,t){this._parentTypeKey=t.parentTypeKey,this.refCount=0,this._beforeContentRules=new gB(3,t,e),this._afterContentRules=new gB(4,t,e)}return e.prototype.getOptions=function(e,t){var n=e.resolveDecorationOptions(this._parentTypeKey,!0);return this._beforeContentRules&&(n.beforeContentClassName=this._beforeContentRules.className),this._afterContentRules&&(n.afterContentClassName=this._afterContentRules.className),n},e.prototype.dispose=function(){this._beforeContentRules&&(this._beforeContentRules.dispose(),this._beforeContentRules=null),this._afterContentRules&&(this._afterContentRules.dispose(),this._afterContentRules=null)},e}(),dB=function(){function e(e,t){var n=this;this.refCount=0,this._disposables=[];var i=function(i){var r=new gB(i,t,e);if(r.hasContent)return n._disposables.push(r),r.className};this.className=i(0);var r=function(i){var r=new gB(1,t,e);return r.hasContent?(n._disposables.push(r),{className:r.className,hasLetterSpacing:r.hasLetterSpacing}):null}();r&&(this.inlineClassName=r.className,this.inlineClassNameAffectsLetterSpacing=r.hasLetterSpacing),this.beforeContentClassName=i(3),this.afterContentClassName=i(4),this.glyphMarginClassName=i(2);var o=t.options;this.isWholeLine=Boolean(o.isWholeLine),this.stickiness=o.rangeBehavior;var s=o.light&&o.light.overviewRulerColor||o.overviewRulerColor,a=o.dark&&o.dark.overviewRulerColor||o.overviewRulerColor;void 0===s&&void 0===a||(this.overviewRuler={color:s||a,darkColor:a||s,position:o.overviewRulerLane||ze.Center})}return e.prototype.getOptions=function(e,t){return t?{inlineClassName:this.inlineClassName,beforeContentClassName:this.beforeContentClassName,afterContentClassName:this.afterContentClassName,className:this.className,glyphMarginClassName:this.glyphMarginClassName,isWholeLine:this.isWholeLine,overviewRuler:this.overviewRuler,stickiness:this.stickiness}:this},e.prototype.dispose=function(){this._disposables=xe(this._disposables)},e}(),cB={color:"color:{0} !important;",opacity:"opacity:{0}; will-change: opacity;",backgroundColor:"background-color:{0};",outline:"outline:{0};",outlineColor:"outline-color:{0};",outlineStyle:"outline-style:{0};",outlineWidth:"outline-width:{0};",border:"border:{0};",borderColor:"border-color:{0};",borderRadius:"border-radius:{0};",borderSpacing:"border-spacing:{0};",borderStyle:"border-style:{0};",borderWidth:"border-width:{0};",fontStyle:"font-style:{0};",fontWeight:"font-weight:{0};",textDecoration:"text-decoration:{0};",cursor:"cursor:{0};",letterSpacing:"letter-spacing:{0};",gutterIconPath:"background:url('{0}') center center no-repeat;",gutterIconSize:"background-size:{0};",contentText:"content:'{0}';",contentIconPath:"content:url('{0}');",margin:"margin:{0};",width:"width:{0};",height:"height:{0};"},gB=function(){function e(e,t,n){var i=this;this._theme=n.getTheme(),this._ruleType=e,this._providerArgs=t,this._usesThemeColors=!1,this._hasContent=!1,this._hasLetterSpacing=!1;var r=mB.getClassName(this._providerArgs.key,e);this._providerArgs.parentTypeKey&&(r=r+" "+mB.getClassName(this._providerArgs.parentTypeKey,e)),this._className=r,this._unThemedSelector=mB.getSelector(this._providerArgs.key,this._providerArgs.parentTypeKey,e),this._buildCSS(),this._usesThemeColors&&(this._themeListener=n.onThemeChange(function(e){i._theme=n.getTheme(),i._removeCSS(),i._buildCSS()}))}return e.prototype.dispose=function(){this._hasContent&&(this._removeCSS(),this._hasContent=!1),this._themeListener&&(this._themeListener.dispose(),this._themeListener=null)},Object.defineProperty(e.prototype,"hasContent",{get:function(){return this._hasContent},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"hasLetterSpacing",{get:function(){return this._hasLetterSpacing},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"className",{get:function(){return this._className},enumerable:!0,configurable:!0}),e.prototype._buildCSS=function(){var e,t,n,i=this._providerArgs.options;switch(this._ruleType){case 0:e=this.getCSSTextForModelDecorationClassName(i),t=this.getCSSTextForModelDecorationClassName(i.light),n=this.getCSSTextForModelDecorationClassName(i.dark);break;case 1:e=this.getCSSTextForModelDecorationInlineClassName(i),t=this.getCSSTextForModelDecorationInlineClassName(i.light),n=this.getCSSTextForModelDecorationInlineClassName(i.dark);break;case 2:e=this.getCSSTextForModelDecorationGlyphMarginClassName(i),t=this.getCSSTextForModelDecorationGlyphMarginClassName(i.light),n=this.getCSSTextForModelDecorationGlyphMarginClassName(i.dark);break;case 3:e=this.getCSSTextForModelDecorationContentClassName(i.before),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.before),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.before);break;case 4:e=this.getCSSTextForModelDecorationContentClassName(i.after),t=this.getCSSTextForModelDecorationContentClassName(i.light&&i.light.after),n=this.getCSSTextForModelDecorationContentClassName(i.dark&&i.dark.after);break;default:throw new Error("Unknown rule type: "+this._ruleType)}var r=this._providerArgs.styleSheet.sheet,o=!1;e.length>0&&(r.insertRule(this._unThemedSelector+" {"+e+"}",0),o=!0),t.length>0&&(r.insertRule(".vs"+this._unThemedSelector+" {"+t+"}",0),o=!0),n.length>0&&(r.insertRule(".vs-dark"+this._unThemedSelector+", .hc-black"+this._unThemedSelector+" {"+n+"}",0),o=!0),this._hasContent=o},e.prototype._removeCSS=function(){!function(e,t){if(void 0===t&&(Zl||(Zl=Hl()),t=Zl),t){for(var n=function(e){return e&&e.sheet&&e.sheet.rules?e.sheet.rules:e&&e.sheet&&e.sheet.cssRules?e.sheet.cssRules:[]}(t),i=[],r=0;r=0;r--)t.sheet.deleteRule(i[r])}}(this._unThemedSelector,this._providerArgs.styleSheet)},e.prototype.getCSSTextForModelDecorationClassName=function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["backgroundColor"],t),this.collectCSSText(e,["outline","outlineColor","outlineStyle","outlineWidth"],t),this.collectBorderSettingsCSSText(e,t),t.join("")},e.prototype.getCSSTextForModelDecorationInlineClassName=function(e){if(!e)return"";var t=[];return this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","cursor","color","opacity","letterSpacing"],t),e.letterSpacing&&(this._hasLetterSpacing=!0),t.join("")},e.prototype.getCSSTextForModelDecorationContentClassName=function(e){if(!e)return"";var t=[];if(void 0!==e){if(this.collectBorderSettingsCSSText(e,t),void 0!==e.contentIconPath&&("string"==typeof e.contentIconPath?t.push(m(cB.contentIconPath,ae.file(e.contentIconPath).toString().replace(/'/g,"%27"))):t.push(m(cB.contentIconPath,ae.revive(e.contentIconPath).toString(!0).replace(/'/g,"%27")))),"string"==typeof e.contentText){var n=e.contentText.match(/^.*$/m)[0].replace(/['\\]/g,"\\$&");t.push(m(cB.contentText,n))}this.collectCSSText(e,["fontStyle","fontWeight","textDecoration","color","opacity","backgroundColor","margin"],t),this.collectCSSText(e,["width","height"],t)&&t.push("display:inline-block;")}return t.join("")},e.prototype.getCSSTextForModelDecorationGlyphMarginClassName=function(e){if(!e)return"";var t=[];return void 0!==e.gutterIconPath&&("string"==typeof e.gutterIconPath?t.push(m(cB.gutterIconPath,ae.file(e.gutterIconPath).toString())):t.push(m(cB.gutterIconPath,ae.revive(e.gutterIconPath).toString(!0).replace(/'/g,"%27"))),void 0!==e.gutterIconSize&&t.push(m(cB.gutterIconSize,e.gutterIconSize))),t.join("")},e.prototype.collectBorderSettingsCSSText=function(e,t){return!!this.collectCSSText(e,["border","borderColor","borderRadius","borderSpacing","borderStyle","borderWidth"],t)&&(t.push(m("box-sizing: border-box;")),!0)},e.prototype.collectCSSText=function(e,t,n){for(var i=n.length,r=0,o=t;r=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([function(e,t){return function(n,i){t(n,i,e)}}(0,TT)],t)}(_B),TB=function(e){function t(t,n,i){var r=e.call(this,t.createChildContext())||this;return r._parent=t,r._onDidChangeContextKey=n,i&&(r._domNode=i,r._domNode.setAttribute(yB,String(r._myContextId))),r}return fB(t,e),t.prototype.dispose=function(){this._parent.disposeContext(this._myContextId),this._domNode&&(this._domNode.removeAttribute(yB),this._domNode=void 0)},Object.defineProperty(t.prototype,"onDidChangeContext",{get:function(){return this._parent.onDidChangeContext},enumerable:!0,configurable:!0}),t.prototype.getContextValuesContainer=function(e){return this._parent.getContextValuesContainer(e)},t.prototype.createChildContext=function(e){return void 0===e&&(e=this._myContextId),this._parent.createChildContext(e)},t.prototype.disposeContext=function(e){this._parent.disposeContext(e)},t}(_B);ts.registerCommand("setContext",function(e,t,n){e.get(Es).createKey(String(t),n)});var xB=function(e,t,n,i,r){this.token=e,this.index=t,this.fontStyle=n,this.foreground=i,this.background=r};var wB,BB,DB,AB=/^#?([0-9A-Fa-f]{6})([0-9A-Fa-f]{2})?$/,RB=function(){function e(){this._lastColorId=0,this._id2color=[],this._color2id=new Map}return e.prototype.getId=function(e){if(null===e)return 0;var t=e.match(AB);if(!t)throw new Error("Illegal value for token color: "+e);e=t[1].toUpperCase();var n=this._color2id.get(e);return n||(n=++this._lastColorId,this._color2id.set(e,n),this._id2color[n]=Wd.fromHex("#"+e),n)},e.prototype.getColorMap=function(){return this._id2color.slice(0)},e}(),EB=function(){function e(e,t){this._colorMap=e,this._root=t,this._cache=new Map}return e.createFromRawTokenTheme=function(e,t){return this.createFromParsedTokenTheme(function(e){if(!e||!Array.isArray(e))return[];for(var t=[],n=0,i=0,r=e.length;it?1:0}(e.token,t.token);return 0!==n?n:e.index-t.index});for(var n=0,i="000000",r="ffffff";e.length>=1&&""===e[0].token;){var o=e.shift();-1!==o.fontStyle&&(n=o.fontStyle),null!==o.foreground&&(i=o.foreground),null!==o.background&&(r=o.background)}for(var s=new RB,a=0,l=t;a>>0,this._cache.set(t,n)}return(n|e<<0)>>>0},e}(),KB=/\b(comment|string|regex)\b/,NB=function(){function e(e,t,n){this._fontStyle=e,this._foreground=t,this._background=n,this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0}return e.prototype.clone=function(){return new e(this._fontStyle,this._foreground,this._background)},e.prototype.acceptOverwrite=function(e,t,n){-1!==e&&(this._fontStyle=e),0!==t&&(this._foreground=t),0!==n&&(this._background=n),this.metadata=(this._fontStyle<<11|this._foreground<<14|this._background<<23)>>>0},e}(),PB=function(){function e(e){this._mainRule=e,this._children=new Map}return e.prototype.match=function(e){if(""===e)return this._mainRule;var t,n,i=e.indexOf(".");-1===i?(t=e,n=""):(t=e.substring(0,i),n=e.substring(i+1));var r=this._children.get(t);return void 0!==r?r.match(n):this._mainRule},e.prototype.insert=function(t,n,i,r){if(""!==t){var o,s,a=t.indexOf(".");-1===a?(o=t,s=""):(o=t.substring(0,a),s=t.substring(a+1));var l=this._children.get(o);void 0===l&&(l=new e(this._mainRule.clone()),this._children.set(o,l)),l.insert(s,n,i,r)}else this._mainRule.acceptOverwrite(n,i,r)},e}(),OB={base:"vs",inherit:!1,rules:[{token:"",foreground:"000000",background:"fffffe"},{token:"invalid",foreground:"cd3131"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"001188"},{token:"variable.predefined",foreground:"4864AA"},{token:"constant",foreground:"dd0000"},{token:"comment",foreground:"008000"},{token:"number",foreground:"09885A"},{token:"number.hex",foreground:"3030c0"},{token:"regexp",foreground:"800000"},{token:"annotation",foreground:"808080"},{token:"type",foreground:"008080"},{token:"delimiter",foreground:"000000"},{token:"delimiter.html",foreground:"383838"},{token:"delimiter.xml",foreground:"0000FF"},{token:"tag",foreground:"800000"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"800000"},{token:"metatag",foreground:"e00000"},{token:"metatag.content.html",foreground:"FF0000"},{token:"metatag.html",foreground:"808080"},{token:"metatag.xml",foreground:"808080"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"863B00"},{token:"string.key.json",foreground:"A31515"},{token:"string.value.json",foreground:"0451A5"},{token:"attribute.name",foreground:"FF0000"},{token:"attribute.value",foreground:"0451A5"},{token:"attribute.value.number",foreground:"09885A"},{token:"attribute.value.unit",foreground:"09885A"},{token:"attribute.value.html",foreground:"0000FF"},{token:"attribute.value.xml",foreground:"0000FF"},{token:"string",foreground:"A31515"},{token:"string.html",foreground:"0000FF"},{token:"string.sql",foreground:"FF0000"},{token:"string.yaml",foreground:"0451A5"},{token:"keyword",foreground:"0000FF"},{token:"keyword.json",foreground:"0451A5"},{token:"keyword.flow",foreground:"AF00DB"},{token:"keyword.flow.scss",foreground:"0000FF"},{token:"operator.scss",foreground:"666666"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"666666"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(wB={},wB[Bg]="#FFFFFE",wB[Dg]="#000000",wB[Pg]="#E5EBF1",wB[um]="#D3D3D3",wB[dm]="#939393",wB[Og]="#ADD6FF4D",wB)},$B={base:"vs-dark",inherit:!1,rules:[{token:"",foreground:"D4D4D4",background:"1E1E1E"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"74B0DF"},{token:"variable.predefined",foreground:"4864AA"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"B5CEA8"},{token:"number.hex",foreground:"5BB498"},{token:"regexp",foreground:"B46695"},{token:"annotation",foreground:"cc6666"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"DCDCDC"},{token:"delimiter.html",foreground:"808080"},{token:"delimiter.xml",foreground:"808080"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta.scss",foreground:"A79873"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"DD6A6F"},{token:"metatag.content.html",foreground:"9CDCFE"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key.json",foreground:"9CDCFE"},{token:"string.value.json",foreground:"CE9178"},{token:"attribute.name",foreground:"9CDCFE"},{token:"attribute.value",foreground:"CE9178"},{token:"attribute.value.number.css",foreground:"B5CEA8"},{token:"attribute.value.unit.css",foreground:"B5CEA8"},{token:"attribute.value.hex.css",foreground:"D4D4D4"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"keyword.json",foreground:"CE9178"},{token:"keyword.flow.scss",foreground:"569CD6"},{token:"operator.scss",foreground:"909090"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(BB={},BB[Bg]="#1E1E1E",BB[Dg]="#D4D4D4",BB[Pg]="#3A3D41",BB[um]="#404040",BB[dm]="#707070",BB[Og]="#ADD6FF26",BB)},kB={base:"hc-black",inherit:!1,rules:[{token:"",foreground:"FFFFFF",background:"000000"},{token:"invalid",foreground:"f44747"},{token:"emphasis",fontStyle:"italic"},{token:"strong",fontStyle:"bold"},{token:"variable",foreground:"1AEBFF"},{token:"variable.parameter",foreground:"9CDCFE"},{token:"constant",foreground:"569CD6"},{token:"comment",foreground:"608B4E"},{token:"number",foreground:"FFFFFF"},{token:"regexp",foreground:"C0C0C0"},{token:"annotation",foreground:"569CD6"},{token:"type",foreground:"3DC9B0"},{token:"delimiter",foreground:"FFFF00"},{token:"delimiter.html",foreground:"FFFF00"},{token:"tag",foreground:"569CD6"},{token:"tag.id.pug",foreground:"4F76AC"},{token:"tag.class.pug",foreground:"4F76AC"},{token:"meta",foreground:"D4D4D4"},{token:"meta.tag",foreground:"CE9178"},{token:"metatag",foreground:"569CD6"},{token:"metatag.content.html",foreground:"1AEBFF"},{token:"metatag.html",foreground:"569CD6"},{token:"metatag.xml",foreground:"569CD6"},{token:"metatag.php",fontStyle:"bold"},{token:"key",foreground:"9CDCFE"},{token:"string.key",foreground:"9CDCFE"},{token:"string.value",foreground:"CE9178"},{token:"attribute.name",foreground:"569CD6"},{token:"attribute.value",foreground:"3FF23F"},{token:"string",foreground:"CE9178"},{token:"string.sql",foreground:"FF0000"},{token:"keyword",foreground:"569CD6"},{token:"keyword.flow",foreground:"C586C0"},{token:"operator.sql",foreground:"778899"},{token:"operator.swift",foreground:"909090"},{token:"predefined.sql",foreground:"FF00FF"}],colors:(DB={},DB[Bg]="#000000",DB[Dg]="#FFFFFF",DB[um]="#FFFFFF",DB[dm]="#FFFFFF",DB)},LB="vs",MB="vs-dark",FB="hc-black",zB=hs.as(Wc),jB=hs.as(Bc),UB=function(){function e(e,t){this.themeData=t;var n=t.base;e.length>0?(this.id=n+" "+e,this.themeName=e):(this.id=n,this.themeName=n),this.colors=null,this.defaultColors=Object.create(null),this._tokenTheme=null}return Object.defineProperty(e.prototype,"base",{get:function(){return this.themeData.base},enumerable:!0,configurable:!0}),e.prototype.notifyBaseUpdated=function(){this.themeData.inherit&&(this.colors=null,this._tokenTheme=null)},e.prototype.getColors=function(){if(!this.colors){var e=Object.create(null);for(var t in this.themeData.colors)e[t]=Wd.fromHex(this.themeData.colors[t]);if(this.themeData.inherit){var n=WB(this.themeData.base);for(var t in n.colors)e[t]||(e[t]=Wd.fromHex(n.colors[t]))}this.colors=e}return this.colors},e.prototype.getColor=function(e,t){return this.getColors()[e]||(!1!==t?this.getDefault(e):null)},e.prototype.getDefault=function(e){var t=this.defaultColors[e];return t||(t=zB.resolveDefaultColor(e,this),this.defaultColors[e]=t,t)},e.prototype.defines=function(e){return Object.prototype.hasOwnProperty.call(this.getColors(),e)},Object.defineProperty(e.prototype,"type",{get:function(){switch(this.base){case LB:return"light";case FB:return"hc";default:return"dark"}},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"tokenTheme",{get:function(){if(!this._tokenTheme){var e=[],t=[];if(this.themeData.inherit){var n=WB(this.themeData.base);e=n.rules,n.encodedTokensColors&&(t=n.encodedTokensColors)}e=e.concat(this.themeData.rules),this.themeData.encodedTokensColors&&(t=this.themeData.encodedTokensColors),this._tokenTheme=EB.createFromRawTokenTheme(e,t)}return this._tokenTheme},enumerable:!0,configurable:!0}),e}();function GB(e){return e===LB||e===MB||e===FB}function WB(e){switch(e){case LB:return OB;case MB:return $B;case FB:return kB}}function VB(e){var t=WB(e);return new UB(e,t)}var qB,YB,HB=function(){function e(){this.environment=Object.create(null),this._onThemeChange=new Ne,this._knownThemes=new Map,this._knownThemes.set(LB,VB(LB)),this._knownThemes.set(MB,VB(MB)),this._knownThemes.set(FB,VB(FB)),this._styleElement=Hl(),this._styleElement.className="monaco-colors",this.setTheme(LB)}return Object.defineProperty(e.prototype,"onThemeChange",{get:function(){return this._onThemeChange.event},enumerable:!0,configurable:!0}),e.prototype.defineTheme=function(e,t){if(!/^[a-z0-9\-]+$/i.test(e))throw new Error("Illegal theme name!");if(!GB(t.base)&&!GB(e))throw new Error("Illegal theme base!");this._knownThemes.set(e,new UB(e,t)),GB(e)&&this._knownThemes.forEach(function(t){t.base===e&&t.notifyBaseUpdated()}),this._theme&&this._theme.themeName===e&&this.setTheme(e)},e.prototype.getTheme=function(){return this._theme},e.prototype.setTheme=function(e){var t,n=this;t=this._knownThemes.has(e)?this._knownThemes.get(e):this._knownThemes.get(LB),this._theme=t;var i=[],r={},o={addRule:function(e){r[e]||(i.push(e),r[e]=!0)}};jB.getThemingParticipants().forEach(function(e){return e(t,o,n.environment)});var s=t.tokenTheme.getColorMap();return o.addRule(function(e){for(var t=[],n=1,i=e.length;n=0;t--){var n=this._arr[t];if(e.equals(n.keybinding))return n.callback}return null},e}(),eD=function(){function e(e){void 0===e&&(e={clickBehavior:qB.ON_MOUSE_DOWN,keyboardSupport:!0,openMode:YB.SINGLE_CLICK});var t=this;this.options=e,this.downKeyBindingDispatcher=new JB,this.upKeyBindingDispatcher=new JB,("boolean"!=typeof e.keyboardSupport||e.keyboardSupport)&&(this.downKeyBindingDispatcher.set(16,function(e,n){return t.onUp(e,n)}),this.downKeyBindingDispatcher.set(18,function(e,n){return t.onDown(e,n)}),this.downKeyBindingDispatcher.set(15,function(e,n){return t.onLeft(e,n)}),this.downKeyBindingDispatcher.set(17,function(e,n){return t.onRight(e,n)}),X.d&&(this.downKeyBindingDispatcher.set(2064,function(e,n){return t.onLeft(e,n)}),this.downKeyBindingDispatcher.set(300,function(e,n){return t.onDown(e,n)}),this.downKeyBindingDispatcher.set(302,function(e,n){return t.onUp(e,n)})),this.downKeyBindingDispatcher.set(11,function(e,n){return t.onPageUp(e,n)}),this.downKeyBindingDispatcher.set(12,function(e,n){return t.onPageDown(e,n)}),this.downKeyBindingDispatcher.set(14,function(e,n){return t.onHome(e,n)}),this.downKeyBindingDispatcher.set(13,function(e,n){return t.onEnd(e,n)}),this.downKeyBindingDispatcher.set(10,function(e,n){return t.onSpace(e,n)}),this.downKeyBindingDispatcher.set(9,function(e,n){return t.onEscape(e,n)}),this.upKeyBindingDispatcher.set(3,this.onEnter.bind(this)),this.upKeyBindingDispatcher.set(2051,this.onEnter.bind(this)))}return e.prototype.onMouseDown=function(e,t,n,i){if(void 0===i&&(i="mouse"),this.options.clickBehavior===qB.ON_MOUSE_DOWN&&(n.leftButton||n.middleButton)){if(n.target){if(n.target.tagName&&"input"===n.target.tagName.toLowerCase())return!1;if(Yl(n.target,"scrollbar","monaco-tree"))return!1;if(Yl(n.target,"monaco-action-bar","row"))return!1}return this.onLeftClick(e,t,n,i)}return!1},e.prototype.onClick=function(e,t,n){return X.d&&n.ctrlKey?(n.preventDefault(),n.stopPropagation(),!1):(!n.target||!n.target.tagName||"input"!==n.target.tagName.toLowerCase())&&(this.options.clickBehavior!==qB.ON_MOUSE_DOWN||!n.leftButton&&!n.middleButton)&&this.onLeftClick(e,t,n)},e.prototype.onLeftClick=function(e,t,n,i){void 0===i&&(i="mouse");var r=n,o={origin:i,originalEvent:n,didClickOnTwistie:this.isClickOnTwistie(r)};return e.getInput()===t?(e.clearFocus(o),e.clearSelection(o)):(n&&r.browserEvent&&"mousedown"===r.browserEvent.type&&1===r.browserEvent.detail||n.preventDefault(),n.stopPropagation(),e.domFocus(),e.setSelection([t],o),e.setFocus(t,o),this.shouldToggleExpansion(t,r,i)&&(e.isExpanded(t)?e.collapse(t).done(null,ye):e.expand(t).done(null,ye))),!0},e.prototype.shouldToggleExpansion=function(e,t,n){var i="mouse"===n&&2===t.detail;return this.openOnSingleClick||i||this.isClickOnTwistie(t)},e.prototype.setOpenMode=function(e){this.options.openMode=e},Object.defineProperty(e.prototype,"openOnSingleClick",{get:function(){return this.options.openMode===YB.SINGLE_CLICK},enumerable:!0,configurable:!0}),e.prototype.isClickOnTwistie=function(e){var t=e.target;if(!bl(t,"content"))return!1;var n=window.getComputedStyle(t,":before");if("none"===n.backgroundImage||"none"===n.display)return!1;var i=parseInt(n.width)+parseInt(n.paddingRight);return e.browserEvent.offsetX<=i},e.prototype.onContextMenu=function(e,t,n){return!(n.target&&n.target.tagName&&"input"===n.target.tagName.toLowerCase()||(n&&(n.preventDefault(),n.stopPropagation()),1))},e.prototype.onTap=function(e,t,n){var i=n.initialTarget;return(!i||!i.tagName||"input"!==i.tagName.toLowerCase())&&this.onLeftClick(e,t,n,"touch")},e.prototype.onKeyDown=function(e,t){return this.onKey(this.downKeyBindingDispatcher,e,t)},e.prototype.onKeyUp=function(e,t){return this.onKey(this.upKeyBindingDispatcher,e,t)},e.prototype.onKey=function(e,t,n){var i=e.dispatch(n.toKeybinding());return!(!i||!i(t,n)||(n.preventDefault(),n.stopPropagation(),0))},e.prototype.onUp=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPrevious(1,n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onPageUp=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusPreviousPage(n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onDown=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNext(1,n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onPageDown=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusNextPage(n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onHome=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusFirst(n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onEnd=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?e.clearHighlight(n):(e.focusLast(n),e.reveal(e.getFocus()).done(null,ye)),!0},e.prototype.onLeft=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var i=e.getFocus();e.collapse(i).then(function(t){if(i&&!t)return e.focusParent(n),e.reveal(e.getFocus())}).done(null,ye)}return!0},e.prototype.onRight=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())e.clearHighlight(n);else{var i=e.getFocus();e.expand(i).then(function(t){if(i&&!t)return e.focusFirstChild(n),e.reveal(e.getFocus())}).done(null,ye)}return!0},e.prototype.onEnter=function(e,t){var n={origin:"keyboard",originalEvent:t};if(e.getHighlight())return!1;var i=e.getFocus();return i&&e.setSelection([i],n),!0},e.prototype.onSpace=function(e,t){if(e.getHighlight())return!1;var n=e.getFocus();return n&&e.toggleExpansion(n),!0},e.prototype.onEscape=function(e,t){var n={origin:"keyboard",originalEvent:t};return e.getHighlight()?(e.clearHighlight(n),!0):e.getSelection().length?(e.clearSelection(n),!0):!!e.getFocus()&&(e.clearFocus(n),!0)},e}(),tD=function(){function e(){}return e.prototype.getDragURI=function(e,t){return null},e.prototype.onDragStart=function(e,t,n){},e.prototype.onDragOver=function(e,t,n,i){return null},e.prototype.drop=function(e,t,n,i){},e}(),nD=function(){function e(){}return e.prototype.isVisible=function(e,t){return!0},e}(),iD=function(){function e(){}return e.prototype.getAriaLabel=function(e,t){return null},e}(),rD=function(){function e(e,t){this.styleElement=e,this.selectorSuffix=t}return e.prototype.style=function(e){var t=this.selectorSuffix?"."+this.selectorSuffix:"",n=[];e.listFocusBackground&&n.push(".monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { background-color: "+e.listFocusBackground+"; }"),e.listFocusForeground&&n.push(".monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) { color: "+e.listFocusForeground+"; }"),e.listActiveSelectionBackground&&n.push(".monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "+e.listActiveSelectionBackground+"; }"),e.listActiveSelectionForeground&&n.push(".monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "+e.listActiveSelectionForeground+"; }"),e.listFocusAndSelectionBackground&&n.push("\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { background-color: "+e.listFocusAndSelectionBackground+"; }\n\t\t\t"),e.listFocusAndSelectionForeground&&n.push("\n\t\t\t\t.monaco-tree-drag-image,\n\t\t\t\t.monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.focused.selected:not(.highlighted) { color: "+e.listFocusAndSelectionForeground+"; }\n\t\t\t"),e.listInactiveSelectionBackground&&n.push(".monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { background-color: "+e.listInactiveSelectionBackground+"; }"),e.listInactiveSelectionForeground&&n.push(".monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) { color: "+e.listInactiveSelectionForeground+"; }"),e.listHoverBackground&&n.push(".monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { background-color: "+e.listHoverBackground+"; }"),e.listHoverForeground&&n.push(".monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) { color: "+e.listHoverForeground+"; }"),e.listDropBackground&&n.push("\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row.drop-target { background-color: "+e.listDropBackground+" !important; color: inherit !important; }\n\t\t\t"),e.listFocusOutline&&n.push("\n\t\t\t\t.monaco-tree-drag-image\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; background: #000; }\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row \t\t\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px solid transparent; }\n\t\t\t\t.monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.focused:not(.highlighted) \t\t\t\t\t\t{ border: 1px dotted "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree"+t+".focused .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row.selected:not(.highlighted) \t\t\t\t\t\t\t{ border: 1px solid "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row:hover:not(.highlighted):not(.selected):not(.focused) \t{ border: 1px dashed "+e.listFocusOutline+"; }\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-wrapper.drop-target,\n\t\t\t\t.monaco-tree"+t+" .monaco-tree-rows > .monaco-tree-row.drop-target\t\t\t\t\t\t\t\t\t\t\t\t{ border: 1px dashed "+e.listFocusOutline+"; }\n\t\t\t");var i=n.join("\n");i!==this.styleElement.innerHTML&&(this.styleElement.innerHTML=i)},e}(),oD=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),sD=function(){function e(e){this._onDispose=new Ne,this.onDispose=this._onDispose.event,this._item=e}return Object.defineProperty(e.prototype,"item",{get:function(){return this._item},enumerable:!0,configurable:!0}),e.prototype.dispose=function(){this._onDispose&&(this._onDispose.fire(),this._onDispose.dispose(),this._onDispose=null)},e}(),aD=function(){function e(){this.locks=Object.create({})}return e.prototype.isLocked=function(e){return!!this.locks[e.id]},e.prototype.run=function(e,t){var n,i,r=this,o=this.getLock(e);return o?new he.b(function(i,s){n=function(e){return function(t,n,i){void 0===n&&(n=null);var r=e(function(e){return r.dispose(),t.call(n,e)},null,i);return r}}(o.onDispose)(function(){return r.run(e,t).then(i,s)})},function(){n.dispose()}):new he.b(function(n,o){if(e.isDisposed())return o(new Error("Item is disposed."));var s=r.locks[e.id]=new sD(e);return i=t().then(function(t){return delete r.locks[e.id],s.dispose(),t}).then(n,o)},function(){return i.cancel()})},e.prototype.getLock=function(e){var t;for(t in this.locks){var n=this.locks[t];if(e.intersects(n.item))return n}return null},e}(),lD=function(){function e(){this._isDisposed=!1,this._onDidRevealItem=new Pe,this.onDidRevealItem=this._onDidRevealItem.event,this._onExpandItem=new Pe,this.onExpandItem=this._onExpandItem.event,this._onDidExpandItem=new Pe,this.onDidExpandItem=this._onDidExpandItem.event,this._onCollapseItem=new Pe,this.onCollapseItem=this._onCollapseItem.event,this._onDidCollapseItem=new Pe,this.onDidCollapseItem=this._onDidCollapseItem.event,this._onDidAddTraitItem=new Pe,this.onDidAddTraitItem=this._onDidAddTraitItem.event,this._onDidRemoveTraitItem=new Pe,this.onDidRemoveTraitItem=this._onDidRemoveTraitItem.event,this._onDidRefreshItem=new Pe,this.onDidRefreshItem=this._onDidRefreshItem.event,this._onRefreshItemChildren=new Pe,this.onRefreshItemChildren=this._onRefreshItemChildren.event,this._onDidRefreshItemChildren=new Pe,this.onDidRefreshItemChildren=this._onDidRefreshItemChildren.event,this._onDidDisposeItem=new Pe,this.onDidDisposeItem=this._onDidDisposeItem.event,this.items={}}return e.prototype.register=function(e){ms(!this.isRegistered(e.id),"item already registered: "+e.id);var t=we([this._onDidRevealItem.add(e.onDidReveal),this._onExpandItem.add(e.onExpand),this._onDidExpandItem.add(e.onDidExpand),this._onCollapseItem.add(e.onCollapse),this._onDidCollapseItem.add(e.onDidCollapse),this._onDidAddTraitItem.add(e.onDidAddTrait),this._onDidRemoveTraitItem.add(e.onDidRemoveTrait),this._onDidRefreshItem.add(e.onDidRefresh),this._onRefreshItemChildren.add(e.onRefreshChildren),this._onDidRefreshItemChildren.add(e.onDidRefreshChildren),this._onDidDisposeItem.add(e.onDidDispose)]);this.items[e.id]={item:e,disposable:t}},e.prototype.deregister=function(e){ms(this.isRegistered(e.id),"item not registered: "+e.id),this.items[e.id].disposable.dispose(),delete this.items[e.id]},e.prototype.isRegistered=function(e){return this.items.hasOwnProperty(e)},e.prototype.getItem=function(e){var t=this.items[e];return t?t.item:null},e.prototype.dispose=function(){this.items=null,this._onDidRevealItem.dispose(),this._onExpandItem.dispose(),this._onDidExpandItem.dispose(),this._onCollapseItem.dispose(),this._onDidCollapseItem.dispose(),this._onDidAddTraitItem.dispose(),this._onDidRemoveTraitItem.dispose(),this._onDidRefreshItem.dispose(),this._onRefreshItemChildren.dispose(),this._onDidRefreshItemChildren.dispose(),this._isDisposed=!0},e.prototype.isDisposed=function(){return this._isDisposed},e}(),uD=function(){function e(e,t,n,i,r){this._onDidCreate=new Ne,this._onDidReveal=new Ne,this.onDidReveal=this._onDidReveal.event,this._onExpand=new Ne,this.onExpand=this._onExpand.event,this._onDidExpand=new Ne,this.onDidExpand=this._onDidExpand.event,this._onCollapse=new Ne,this.onCollapse=this._onCollapse.event,this._onDidCollapse=new Ne,this.onDidCollapse=this._onDidCollapse.event,this._onDidAddTrait=new Ne,this.onDidAddTrait=this._onDidAddTrait.event,this._onDidRemoveTrait=new Ne,this.onDidRemoveTrait=this._onDidRemoveTrait.event,this._onDidRefresh=new Ne,this.onDidRefresh=this._onDidRefresh.event,this._onRefreshChildren=new Ne,this.onRefreshChildren=this._onRefreshChildren.event,this._onDidRefreshChildren=new Ne,this.onDidRefreshChildren=this._onDidRefreshChildren.event,this._onDidDispose=new Ne,this.onDidDispose=this._onDidDispose.event,this.registry=t,this.context=n,this.lock=i,this.element=r,this.id=e,this.registry.register(this),this.doesHaveChildren=this.context.dataSource.hasChildren(this.context.tree,this.element),this.needsChildrenRefresh=!0,this.parent=null,this.previous=null,this.next=null,this.firstChild=null,this.lastChild=null,this.traits={},this.depth=0,this.expanded=this.context.dataSource.shouldAutoexpand&&this.context.dataSource.shouldAutoexpand(this.context.tree,r),this._onDidCreate.fire(this),this.visible=this._isVisible(),this.height=this._getHeight(),this._isDisposed=!1}return e.prototype.getElement=function(){return this.element},e.prototype.hasChildren=function(){return this.doesHaveChildren},e.prototype.getDepth=function(){return this.depth},e.prototype.isVisible=function(){return this.visible},e.prototype.setVisible=function(e){this.visible=e},e.prototype.isExpanded=function(){return this.expanded},e.prototype._setExpanded=function(e){this.expanded=e},e.prototype.reveal=function(e){void 0===e&&(e=null);var t={item:this,relativeTop:e};this._onDidReveal.fire(t)},e.prototype.expand=function(){var e=this;return this.isExpanded()||!this.doesHaveChildren||this.lock.isLocked(this)?he.b.as(!1):this.lock.run(this,function(){var t={item:e};return e._onExpand.fire(t),(e.needsChildrenRefresh?e.refreshChildren(!1,!0,!0):he.b.as(null)).then(function(){return e._setExpanded(!0),e._onDidExpand.fire(t),!0})}).then(function(t){return!e.isDisposed()&&(e.context.options.autoExpandSingleChildren&&t&&null!==e.firstChild&&e.firstChild===e.lastChild&&e.firstChild.isVisible()?e.firstChild.expand().then(function(){return!0}):t)})},e.prototype.collapse=function(e){var t=this;if(void 0===e&&(e=!1),e){var n=he.b.as(null);return this.forEachChild(function(e){n=n.then(function(){return e.collapse(!0)})}),n.then(function(){return t.collapse(!1)})}return!this.isExpanded()||this.lock.isLocked(this)?he.b.as(!1):this.lock.run(this,function(){var e={item:t};return t._onCollapse.fire(e),t._setExpanded(!1),t._onDidCollapse.fire(e),he.b.as(!0)})},e.prototype.addTrait=function(e){var t={item:this,trait:e};this.traits[e]=!0,this._onDidAddTrait.fire(t)},e.prototype.removeTrait=function(e){var t={item:this,trait:e};delete this.traits[e],this._onDidRemoveTrait.fire(t)},e.prototype.hasTrait=function(e){return this.traits[e]||!1},e.prototype.getAllTraits=function(){var e,t=[];for(e in this.traits)this.traits.hasOwnProperty(e)&&this.traits[e]&&t.push(e);return t},e.prototype.getHeight=function(){return this.height},e.prototype.refreshChildren=function(t,n,i){var r=this;if(void 0===n&&(n=!1),void 0===i&&(i=!1),!i&&!this.isExpanded())return this.needsChildrenRefresh=!0,he.b.as(this);this.needsChildrenRefresh=!1;var o=function(){var i={item:r,isNested:n};return r._onRefreshChildren.fire(i),(r.doesHaveChildren?r.context.dataSource.getChildren(r.context.tree,r.element):he.b.as([])).then(function(n){if(r.isDisposed()||r.registry.isDisposed())return he.b.as(null);if(!Array.isArray(n))return he.b.wrapError(new Error("Please return an array of children."));n=n?n.slice(0):[],n=r.sort(n);for(var i={};null!==r.firstChild;)i[r.firstChild.id]=r.firstChild,r.removeChild(r.firstChild);for(var o=0,s=n.length;o=0;o--)this.onInsertItem(u[o]);for(o=this.heightMap.length-1;o>=r;o--)this.onRefreshItem(this.heightMap[o]);return a},e.prototype.onInsertItem=function(e){},e.prototype.onRemoveItems=function(e){for(var t,n,i,r=null,o=0;t=e.next();){if(i=this.indexes[t],!(n=this.heightMap[i]))return void console.error("view item doesnt exist");o-=n.height,delete this.indexes[t],this.onRemoveItem(n),null===r&&(r=i)}if(0!==o)for(this.heightMap.splice(r,i-r+1),i=r;i=n.top+n.height))return t;if(i===t)break;i=t}return this.heightMap.length},e.prototype.indexAfter=function(e){return Math.min(this.indexAt(e)+1,this.heightMap.length)},e.prototype.itemAtIndex=function(e){return this.heightMap[e]},e.prototype.itemAfter=function(e){return this.heightMap[this.indexes[e.model.id]+1]||null},e.prototype.createViewItem=function(e){throw new Error("not implemented")},e.prototype.dispose=function(){this.heightMap=null,this.indexes=null},e}(),yD=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),SD=function(){function e(e,t,n){this._posx=e,this._posy=t,this._target=n}return e.prototype.preventDefault=function(){},e.prototype.stopPropagation=function(){},Object.defineProperty(e.prototype,"target",{get:function(){return this._target},enumerable:!0,configurable:!0}),e}(),bD=function(e){function t(t){var n=e.call(this,t.posx,t.posy,t.target)||this;return n.originalEvent=t,n}return yD(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(SD),ID=function(e){function t(t,n,i){var r=e.call(this,t,n,i.target)||this;return r.originalEvent=i,r}return yD(t,e),t.prototype.preventDefault=function(){this.originalEvent.preventDefault()},t.prototype.stopPropagation=function(){this.originalEvent.stopPropagation()},t}(SD);!function(e){e[e.COPY=0]="COPY",e[e.MOVE=1]="MOVE"}(QB||(QB={})),function(e){e[e.BUBBLE_DOWN=0]="BUBBLE_DOWN",e[e.BUBBLE_UP=1]="BUBBLE_UP"}(XB||(XB={}));var CD,_D,vD=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),TD=function(){function e(e){this.context=e,this._cache={"":[]}}return e.prototype.alloc=function(e){var t=this.cache(e).pop();if(!t){var n=document.createElement("div");n.className="content";var i=document.createElement("div");i.appendChild(n),t={element:i,templateId:e,templateData:this.context.renderer.renderTemplate(this.context.tree,e,n)}}return t},e.prototype.release=function(e,t){!function(e){try{e.parentElement.removeChild(e)}catch(e){}}(t.element),this.cache(e).push(t)},e.prototype.cache=function(e){return this._cache[e]||(this._cache[e]=[])},e.prototype.garbageCollect=function(){var e=this;this._cache&&Object.keys(this._cache).forEach(function(t){e._cache[t].forEach(function(n){e.context.renderer.disposeTemplate(e.context.tree,t,n.templateData),n.element=null,n.templateData=null}),delete e._cache[t]})},e.prototype.dispose=function(){this.garbageCollect(),this._cache=null,this.context=null},e}(),xD=function(){function e(e,t){var n=this;this.width=0,this.context=e,this.model=t,this.id=this.model.id,this.row=null,this.top=0,this.height=t.getHeight(),this._styles={},t.getAllTraits().forEach(function(e){return n._styles[e]=!0}),t.isExpanded()&&this.addClass("expanded")}return Object.defineProperty(e.prototype,"expanded",{set:function(e){e?this.addClass("expanded"):this.removeClass("expanded")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"loading",{set:function(e){e?this.addClass("loading"):this.removeClass("loading")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"draggable",{get:function(){return this._draggable},set:function(e){this._draggable=e,this.render(!0)},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"dropTarget",{set:function(e){e?this.addClass("drop-target"):this.removeClass("drop-target")},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"element",{get:function(){return this.row&&this.row.element},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"templateId",{get:function(){return this._templateId||(this._templateId=this.context.renderer.getTemplateId&&this.context.renderer.getTemplateId(this.context.tree,this.model.getElement()))},enumerable:!0,configurable:!0}),e.prototype.addClass=function(e){this._styles[e]=!0,this.render(!0)},e.prototype.removeClass=function(e){delete this._styles[e],this.render(!0)},e.prototype.render=function(e){var t=this;if(void 0===e&&(e=!1),this.model&&this.element){var n=["monaco-tree-row"];n.push.apply(n,Object.keys(this._styles)),this.model.hasChildren()&&n.push("has-children"),this.element.className=n.join(" "),this.element.draggable=this.draggable,this.element.style.height=this.height+"px",this.element.setAttribute("role","treeitem");var i=this.context.accessibilityProvider,r=i.getAriaLabel(this.context.tree,this.model.getElement());if(r&&this.element.setAttribute("aria-label",r),i.getPosInSet&&i.getSetSize&&(this.element.setAttribute("aria-setsize",i.getSetSize()),this.element.setAttribute("aria-posinset",i.getPosInSet(this.context.tree,this.model.getElement()))),this.model.hasTrait("focused")){var o=H(this.model.id);this.element.setAttribute("aria-selected","true"),this.element.setAttribute("id",o)}else this.element.setAttribute("aria-selected","false"),this.element.removeAttribute("id");this.model.hasChildren()?this.element.setAttribute("aria-expanded",String(!!this._styles.expanded)):this.element.removeAttribute("aria-expanded"),this.element.setAttribute("aria-level",String(this.model.getDepth())),this.context.options.paddingOnRow?this.element.style.paddingLeft=this.context.options.twistiePixels+(this.model.getDepth()-1)*this.context.options.indentPixels+"px":(this.element.style.paddingLeft=(this.model.getDepth()-1)*this.context.options.indentPixels+"px",this.row.element.firstElementChild.style.paddingLeft=this.context.options.twistiePixels+"px");var s=this.context.dnd.getDragURI(this.context.tree,this.model.getElement());if(s!==this.uri&&(this.unbindDragStart&&(this.unbindDragStart.dispose(),this.unbindDragStart=null),s?(this.uri=s,this.draggable=!0,this.unbindDragStart=Tl(this.element,"dragstart",function(e){t.onDragStart(e)})):this.uri=null),!e&&this.element){var a=window.getComputedStyle(this.element),l=parseFloat(a.paddingLeft);this.context.horizontalScrolling&&(this.element.style.width="fit-content"),this.context.renderer.renderElement(this.context.tree,this.model.getElement(),this.templateId,this.row.templateData),this.context.horizontalScrolling&&(this.width=Gl(this.element)+l,this.element.style.width="")}}},e.prototype.insertInDOM=function(e,t){if(this.row||(this.row=this.context.cache.alloc(this.templateId),this.element[BD.BINDING]=this),!this.element.parentElement){if(null===t)e.appendChild(this.element);else try{e.insertBefore(this.element,t)}catch(t){console.warn("Failed to locate previous tree element"),e.appendChild(this.element)}this.render()}},e.prototype.removeFromDOM=function(){this.row&&(this.unbindDragStart&&(this.unbindDragStart.dispose(),this.unbindDragStart=null),this.uri=null,this.element[BD.BINDING]=null,this.context.cache.release(this.templateId,this.row),this.row=null)},e.prototype.dispose=function(){this.row=null,this.model=null},e}(),wD=function(e){function t(t,n,i){var r=e.call(this,t,n)||this;return r.row={element:i,templateData:null,templateId:null},r}return vD(t,e),t.prototype.render=function(){if(this.model&&this.element){var e=["monaco-tree-wrapper"];e.push.apply(e,Object.keys(this._styles)),this.model.hasChildren()&&e.push("has-children"),this.element.className=e.join(" ")}},t.prototype.insertInDOM=function(e,t){},t.prototype.removeFromDOM=function(){},t}(xD),BD=function(e){function t(n,i){var r=e.call(this)||this;r.lastClickTimeStamp=0,r.contentWidthUpdateDelayer=new Pa(50),r.isRefreshing=!1,r.refreshingPreviousChildrenIds={},r._onDOMFocus=new Ne,r._onDOMBlur=new Ne,r._onDidScroll=new Ne,t.counter++,r.instance=t.counter;var o=void 0===n.options.horizontalScrollMode?cr.Hidden:n.options.horizontalScrollMode;r.horizontalScrolling=o!==cr.Hidden,r.context={dataSource:n.dataSource,renderer:n.renderer,controller:n.controller,dnd:n.dnd,filter:n.filter,sorter:n.sorter,tree:n.tree,accessibilityProvider:n.accessibilityProvider,options:n.options,cache:new TD(n),horizontalScrolling:r.horizontalScrolling},r.modelListeners=[],r.viewListeners=[],r.model=null,r.items={},r.domNode=document.createElement("div"),r.domNode.className="monaco-tree no-focused-item monaco-tree-instance-"+r.instance,r.domNode.tabIndex=n.options.preventRootFocus?-1:0,r.styleElement=Hl(r.domNode),r.treeStyler=n.styler,r.treeStyler||(r.treeStyler=new rD(r.styleElement,"monaco-tree-instance-"+r.instance)),r.domNode.setAttribute("role","tree"),r.context.options.ariaLabel&&r.domNode.setAttribute("aria-label",r.context.options.ariaLabel),r.context.options.alwaysFocused&&Il(r.domNode,"focused"),r.context.options.paddingOnRow||Il(r.domNode,"no-row-padding"),r.wrapper=document.createElement("div"),r.wrapper.className="monaco-tree-wrapper",r.scrollableElement=new Rf(r.wrapper,{alwaysConsumeMouseWheel:!0,horizontal:o,vertical:void 0!==n.options.verticalScrollMode?n.options.verticalScrollMode:cr.Auto,useShadows:n.options.useShadows}),r.scrollableElement.onScroll(function(e){r.render(e.scrollTop,e.height,e.scrollLeft,e.width,e.scrollWidth),r._onDidScroll.fire()}),Ga?(r.wrapper.style.msTouchAction="none",r.wrapper.style.msContentZooming="none"):Gm.addTarget(r.wrapper),r.rowsContainer=document.createElement("div"),r.rowsContainer.className="monaco-tree-rows",n.options.showTwistie&&(r.rowsContainer.className+=" show-twisties");var s=tu(r.domNode);return r.viewListeners.push(s.onDidFocus(function(){return r.onFocus()})),r.viewListeners.push(s.onDidBlur(function(){return r.onBlur()})),r.viewListeners.push(s),r.viewListeners.push(Tl(r.domNode,"keydown",function(e){return r.onKeyDown(e)})),r.viewListeners.push(Tl(r.domNode,"keyup",function(e){return r.onKeyUp(e)})),r.viewListeners.push(Tl(r.domNode,"mousedown",function(e){return r.onMouseDown(e)})),r.viewListeners.push(Tl(r.domNode,"mouseup",function(e){return r.onMouseUp(e)})),r.viewListeners.push(Tl(r.wrapper,"click",function(e){return r.onClick(e)})),r.viewListeners.push(Tl(r.wrapper,"auxclick",function(e){return r.onClick(e)})),r.viewListeners.push(Tl(r.domNode,"contextmenu",function(e){return r.onContextMenu(e)})),r.viewListeners.push(Tl(r.wrapper,Fm.Tap,function(e){return r.onTap(e)})),r.viewListeners.push(Tl(r.wrapper,Fm.Change,function(e){return r.onTouchChange(e)})),Ga&&(r.viewListeners.push(Tl(r.wrapper,"MSPointerDown",function(e){return r.onMsPointerDown(e)})),r.viewListeners.push(Tl(r.wrapper,"MSGestureTap",function(e){return r.onMsGestureTap(e)})),r.viewListeners.push(Pl(r.wrapper,"MSGestureChange",function(e){return r.onThrottledMsGestureChange(e)},function(e,t){t.stopPropagation(),t.preventDefault();var n={translationY:t.translationY,translationX:t.translationX};return e&&(n.translationY+=e.translationY,n.translationX+=e.translationX),n}))),r.viewListeners.push(Tl(window,"dragover",function(e){return r.onDragOver(e)})),r.viewListeners.push(Tl(r.wrapper,"drop",function(e){return r.onDrop(e)})),r.viewListeners.push(Tl(window,"dragend",function(e){return r.onDragEnd(e)})),r.viewListeners.push(Tl(window,"dragleave",function(e){return r.onDragOver(e)})),r.wrapper.appendChild(r.rowsContainer),r.domNode.appendChild(r.scrollableElement.getDomNode()),i.appendChild(r.domNode),r.lastRenderTop=0,r.lastRenderHeight=0,r.didJustPressContextMenuKey=!1,r.currentDropTarget=null,r.currentDropTargets=[],r.shouldInvalidateDropReaction=!1,r.dragAndDropScrollInterval=null,r.dragAndDropScrollTimeout=null,r.onHiddenScrollTop=null,r.onRowsChanged(),r.layout(),r.setupMSGesture(),r.applyStyles(n.options),r}return vD(t,e),Object.defineProperty(t.prototype,"onDOMFocus",{get:function(){return this._onDOMFocus.event},enumerable:!0,configurable:!0}),t.prototype.applyStyles=function(e){this.treeStyler.style(e)},t.prototype.createViewItem=function(e){return new xD(this.context,e)},t.prototype.getHTMLElement=function(){return this.domNode},t.prototype.focus=function(){this.domNode.focus()},t.prototype.isFocused=function(){return document.activeElement===this.domNode},t.prototype.blur=function(){this.domNode.blur()},t.prototype.setupMSGesture=function(){var e=this;window.MSGesture&&(this.msGesture=new MSGesture,setTimeout(function(){return e.msGesture.target=e.wrapper},100))},t.prototype.isTreeVisible=function(){return null===this.onHiddenScrollTop},t.prototype.layout=function(e,t){this.isTreeVisible()&&(this.viewHeight=e||Wl(this.wrapper),this.scrollHeight=this.getContentHeight(),this.horizontalScrolling&&(this.viewWidth=t||Gl(this.wrapper)))},t.prototype.render=function(e,t,n,i,r){var o,s,a=e,l=e+t,u=this.lastRenderTop+this.lastRenderHeight;for(o=this.indexAfter(l)-1,s=this.indexAt(Math.max(u,a));o>=s;o--)this.insertItemInDOM(this.itemAtIndex(o));for(o=Math.min(this.indexAt(this.lastRenderTop),this.indexAfter(l))-1,s=this.indexAt(a);o>=s;o--)this.insertItemInDOM(this.itemAtIndex(o));for(o=this.indexAt(this.lastRenderTop),s=Math.min(this.indexAt(a),this.indexAfter(u));o1e3,u=void 0,d=void 0;if(l||(d=(u=new gw({getLength:function(){return o.length},getElementAtIndex:function(e){return o[e]}},{getLength:function(){return s.length},getElementAtIndex:function(e){return s[e].id}},null).ComputeDiff(!1)).some(function(e){if(e.modifiedLength>0)for(var n=e.modifiedStart,i=e.modifiedStart+e.modifiedLength;n0&&this.onRemoveItems(new OS(o,m.originalStart,m.originalStart+m.originalLength)),m.modifiedLength>0){var h=s[m.modifiedStart-1]||n;h=h.getDepth()>0?h:null,this.onInsertItems(new OS(s,m.modifiedStart,m.modifiedStart+m.modifiedLength),h?h.id:null)}}else(l||u.length)&&(this.onRemoveItems(new OS(o)),this.onInsertItems(new OS(s),n.getDepth()>0?n.id:null));(l||u.length)&&this.onRowsChanged()}},t.prototype.onItemRefresh=function(e){this.onItemsRefresh([e])},t.prototype.onItemsRefresh=function(e){var t=this;this.onRefreshItemSet(e.filter(function(e){return t.items.hasOwnProperty(e.id)})),this.onRowsChanged()},t.prototype.onItemExpanding=function(e){var t=this.items[e.item.id];t&&(t.expanded=!0)},t.prototype.onItemExpanded=function(e){var t=e.item,n=this.items[t.id];if(n){n.expanded=!0;var i=this.onInsertItems(t.getNavigator(),t.id),r=this.scrollTop;n.top+n.height<=this.scrollTop&&(r+=i),this.onRowsChanged(r)}},t.prototype.onItemCollapsing=function(e){var t=e.item,n=this.items[t.id];n&&(n.expanded=!1,this.onRemoveItems(new kS(t.getNavigator(),function(e){return e&&e.id})),this.onRowsChanged())},t.prototype.onItemReveal=function(e){var t=e.item,n=e.relativeTop,i=this.items[t.id];if(i)if(null!==n){n=(n=n<0?0:n)>1?1:n;var r=i.height-this.viewHeight;this.scrollTop=r*n+i.top}else{var o=i.top+i.height,s=this.scrollTop+this.viewHeight;i.top=s&&(this.scrollTop=o-this.viewHeight)}},t.prototype.onItemAddTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.addClass(n),"highlighted"===n&&(Il(this.domNode,n),i&&(this.highlightedItemWasDraggable=!!i.draggable,i.draggable&&(i.draggable=!1)))},t.prototype.onItemRemoveTrait=function(e){var t=e.item,n=e.trait,i=this.items[t.id];i&&i.removeClass(n),"highlighted"===n&&(Cl(this.domNode,n),this.highlightedItemWasDraggable&&(i.draggable=!0),this.highlightedItemWasDraggable=!1)},t.prototype.onModelFocusChange=function(){var e=this.model&&this.model.getFocus();_l(this.domNode,"no-focused-item",!e),e?this.domNode.setAttribute("aria-activedescendant",H(this.context.dataSource.getId(this.context.tree,e))):this.domNode.removeAttribute("aria-activedescendant")},t.prototype.onInsertItem=function(e){var t=this;e.onDragStart=function(n){t.onDragStart(e,n)},e.needsRender=!0,this.refreshViewItem(e),this.items[e.id]=e},t.prototype.onRefreshItem=function(e,t){void 0===t&&(t=!1),e.needsRender=e.needsRender||t,this.refreshViewItem(e)},t.prototype.onRemoveItem=function(e){this.removeItemFromDOM(e),e.dispose(),delete this.items[e.id]},t.prototype.refreshViewItem=function(e){e.render(),this.shouldBeRendered(e)?this.insertItemInDOM(e):this.removeItemFromDOM(e)},t.prototype.onClick=function(e){if(!this.lastPointerType||"mouse"===this.lastPointerType){var t=new dl(e),n=this.getItemAround(t.target);n&&(Ga&&Date.now()-this.lastClickTimeStamp<300&&(t.detail=2),this.lastClickTimeStamp=Date.now(),this.context.controller.onClick(this.context.tree,n.model.getElement(),t))}},t.prototype.onMouseDown=function(e){if(this.didJustPressContextMenuKey=!1,this.context.controller.onMouseDown&&(!this.lastPointerType||"mouse"===this.lastPointerType)){var t=new dl(e);if(!(t.ctrlKey&&X.e&&X.d)){var n=this.getItemAround(t.target);n&&this.context.controller.onMouseDown(this.context.tree,n.model.getElement(),t)}}},t.prototype.onMouseUp=function(e){if(this.context.controller.onMouseUp&&(!this.lastPointerType||"mouse"===this.lastPointerType)){var t=new dl(e);if(!(t.ctrlKey&&X.e&&X.d)){var n=this.getItemAround(t.target);n&&this.context.controller.onMouseUp(this.context.tree,n.model.getElement(),t)}}},t.prototype.onTap=function(e){var t=this.getItemAround(e.initialTarget);t&&this.context.controller.onTap(this.context.tree,t.model.getElement(),e)},t.prototype.onTouchChange=function(e){e.preventDefault(),e.stopPropagation(),this.scrollTop-=e.translationY},t.prototype.onContextMenu=function(e){var t,n;if(e instanceof KeyboardEvent||this.didJustPressContextMenuKey){this.didJustPressContextMenuKey=!1;var i,r=new il(e);if(n=this.model.getFocus()){var o=this.context.dataSource.getId(this.context.tree,n);i=zl(this.items[o].element)}else n=this.model.getInput(),i=zl(this.inputItem.element);t=new ID(i.left+i.width,i.top,r)}else{var s=new dl(e),a=this.getItemAround(s.target);if(!a)return;n=a.model.getElement(),t=new bD(s)}this.context.controller.onContextMenu(this.context.tree,n,t)},t.prototype.onKeyDown=function(e){var t=new il(e);this.didJustPressContextMenuKey=58===t.keyCode||t.shiftKey&&68===t.keyCode,this.didJustPressContextMenuKey&&(t.preventDefault(),t.stopPropagation()),t.target&&t.target.tagName&&"input"===t.target.tagName.toLowerCase()||this.context.controller.onKeyDown(this.context.tree,t)},t.prototype.onKeyUp=function(e){this.didJustPressContextMenuKey&&this.onContextMenu(e),this.didJustPressContextMenuKey=!1,this.context.controller.onKeyUp(this.context.tree,new il(e))},t.prototype.onDragStart=function(e,n){if(!this.model.getHighlight()){var i,r=e.model.getElement(),o=this.model.getSelection();if(i=o.indexOf(r)>-1?o:[r],n.dataTransfer.effectAllowed="copyMove",n.dataTransfer.setData("ResourceURLs",JSON.stringify([e.uri])),n.dataTransfer.setDragImage){var s;s=this.context.dnd.getDragLabel?this.context.dnd.getDragLabel(this.context.tree,i):String(i.length);var a=document.createElement("div");a.className="monaco-tree-drag-image",a.textContent=s,document.body.appendChild(a),n.dataTransfer.setDragImage(a,-10,-10),setTimeout(function(){return document.body.removeChild(a)},0)}this.currentDragAndDropData=new mD(i),t.currentExternalDragAndDropData=new hD(i),this.context.dnd.onDragStart(this.context.tree,this.currentDragAndDropData,new cl(n))}},t.prototype.setupDragAndDropScrollInterval=function(){var e=this,t=Fl(this.wrapper).top;this.dragAndDropScrollInterval||(this.dragAndDropScrollInterval=window.setInterval(function(){if(void 0!==e.dragAndDropMouseY){var n=e.dragAndDropMouseY-t,i=0,r=e.viewHeight-35;n<35?i=Math.max(-14,.2*(n-35)):n>r&&(i=Math.min(14,.2*(n-r))),e.scrollTop+=i}},10),this.cancelDragAndDropScrollTimeout(),this.dragAndDropScrollTimeout=window.setTimeout(function(){e.cancelDragAndDropScrollInterval(),e.dragAndDropScrollTimeout=null},1e3))},t.prototype.cancelDragAndDropScrollInterval=function(){this.dragAndDropScrollInterval&&(window.clearInterval(this.dragAndDropScrollInterval),this.dragAndDropScrollInterval=null),this.cancelDragAndDropScrollTimeout()},t.prototype.cancelDragAndDropScrollTimeout=function(){this.dragAndDropScrollTimeout&&(window.clearTimeout(this.dragAndDropScrollTimeout),this.dragAndDropScrollTimeout=null)},t.prototype.onDragOver=function(e){var n,i=this,r=new cl(e),o=this.getItemAround(r.target);if(!o||0===r.posx&&0===r.posy&&r.browserEvent.type===Xl.DRAG_LEAVE)return this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[],this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null)),this.cancelDragAndDropScrollInterval(),this.currentDropTarget=null,this.currentDropElement=null,this.dragAndDropMouseY=null,!1;if(this.setupDragAndDropScrollInterval(),this.dragAndDropMouseY=r.posy,!this.currentDragAndDropData)if(t.currentExternalDragAndDropData)this.currentDragAndDropData=t.currentExternalDragAndDropData;else{if(!r.dataTransfer.types)return!1;this.currentDragAndDropData=new pD}this.currentDragAndDropData.update(r);var s,a=o.model;do{if(n=a?a.getElement():this.model.getInput(),!(s=this.context.dnd.onDragOver(this.context.tree,this.currentDragAndDropData,n,r))||s.bubble!==XB.BUBBLE_UP)break;a=a&&a.parent}while(a);if(!a)return this.currentDropElement=null,!1;var l=s&&s.accept;l?(this.currentDropElement=a.getElement(),r.preventDefault(),r.dataTransfer.dropEffect=s.effect===QB.COPY?"copy":"move"):this.currentDropElement=null;var u=a.id===this.inputItem.id?this.inputItem:this.items[a.id];if((this.shouldInvalidateDropReaction||this.currentDropTarget!==u||!function(e,t){return!e&&!t||!(!e||!t)&&e.accept===t.accept&&e.bubble===t.bubble&&e.effect===t.effect}(this.currentDropElementReaction,s))&&(this.shouldInvalidateDropReaction=!1,this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[],this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null)),this.currentDropTarget=u,this.currentDropElementReaction=s,l)){if(this.currentDropTarget&&(this.currentDropTarget.dropTarget=!0,this.currentDropTargets.push(this.currentDropTarget)),s.bubble===XB.BUBBLE_DOWN)for(var d,c=a.getNavigator();d=c.next();)(o=this.items[d.id])&&(o.dropTarget=!0,this.currentDropTargets.push(o));s.autoExpand&&(this.currentDropPromise=he.b.timeout(500).then(function(){return i.context.tree.expand(i.currentDropElement)}).then(function(){return i.shouldInvalidateDropReaction=!0}))}return!0},t.prototype.onDrop=function(e){if(this.currentDropElement){var t=new cl(e);t.preventDefault(),this.currentDragAndDropData.update(t),this.context.dnd.drop(this.context.tree,this.currentDragAndDropData,this.currentDropElement,t),this.onDragEnd(e)}this.cancelDragAndDropScrollInterval()},t.prototype.onDragEnd=function(e){this.currentDropTarget&&(this.currentDropTargets.forEach(function(e){return e.dropTarget=!1}),this.currentDropTargets=[]),this.currentDropPromise&&(this.currentDropPromise.cancel(),this.currentDropPromise=null),this.cancelDragAndDropScrollInterval(),this.currentDragAndDropData=null,t.currentExternalDragAndDropData=null,this.currentDropElement=null,this.currentDropTarget=null,this.dragAndDropMouseY=null},t.prototype.onFocus=function(){this.context.options.alwaysFocused||Il(this.domNode,"focused"),this._onDOMFocus.fire()},t.prototype.onBlur=function(){this.context.options.alwaysFocused||Cl(this.domNode,"focused"),this.domNode.removeAttribute("aria-activedescendant"),this._onDOMBlur.fire()},t.prototype.onMsPointerDown=function(e){if(this.msGesture){var t=e.pointerType;t!==(e.MSPOINTER_TYPE_MOUSE||"mouse")?t===(e.MSPOINTER_TYPE_TOUCH||"touch")&&(this.lastPointerType="touch",e.stopPropagation(),e.preventDefault(),this.msGesture.addPointer(e.pointerId)):this.lastPointerType="mouse"}},t.prototype.onThrottledMsGestureChange=function(e){this.scrollTop-=e.translationY},t.prototype.onMsGestureTap=function(e){e.initialTarget=document.elementFromPoint(e.clientX,e.clientY),this.onTap(e)},t.prototype.insertItemInDOM=function(e){var t=null,n=this.itemAfter(e);n&&n.element&&(t=n.element),e.insertInDOM(this.rowsContainer,t)},t.prototype.removeItemFromDOM=function(e){e&&e.removeFromDOM()},t.prototype.shouldBeRendered=function(e){return e.topthis.lastRenderTop},t.prototype.getItemAround=function(e){var n=this.inputItem;do{if(e[t.BINDING]&&(n=e[t.BINDING]),e===this.wrapper||e===this.domNode)return n;if(e===document.body)return null}while(e=e.parentElement)},t.prototype.releaseModel=function(){this.model&&(this.modelListeners=xe(this.modelListeners),this.model=null)},t.prototype.dispose=function(){var t=this;this.scrollableElement.dispose(),this.releaseModel(),this.modelListeners=null,this.viewListeners=xe(this.viewListeners),this._onDOMFocus.dispose(),this._onDOMBlur.dispose(),this.domNode.parentNode&&this.domNode.parentNode.removeChild(this.domNode),this.domNode=null,this.items&&(Object.keys(this.items).forEach(function(e){return t.items[e].removeFromDOM()}),this.items=null),this.context.cache&&(this.context.cache.dispose(),this.context.cache=null),e.prototype.dispose.call(this)},t.BINDING="monaco-tree-row",t.LOADING_DECORATION_DELAY=800,t.counter=0,t.currentExternalDragAndDropData=null,t}(fD),DD=function(e,t,n){if(void 0===n&&(n={}),this.tree=e,this.configuration=t,this.options=n,!t.dataSource)throw new Error("You must provide a Data Source to the tree.");this.dataSource=t.dataSource,this.renderer=t.renderer,this.controller=t.controller||new eD({clickBehavior:qB.ON_MOUSE_UP,keyboardSupport:"boolean"!=typeof n.keyboardSupport||n.keyboardSupport}),this.dnd=t.dnd||new tD,this.filter=t.filter||new nD,this.sorter=t.sorter||null,this.accessibilityProvider=t.accessibilityProvider||new iD,this.styler=t.styler||null},AD={listFocusBackground:Wd.fromHex("#073655"),listActiveSelectionBackground:Wd.fromHex("#0E639C"),listActiveSelectionForeground:Wd.fromHex("#FFFFFF"),listFocusAndSelectionBackground:Wd.fromHex("#094771"),listFocusAndSelectionForeground:Wd.fromHex("#FFFFFF"),listInactiveSelectionBackground:Wd.fromHex("#3F3F46"),listHoverBackground:Wd.fromHex("#2A2D2E"),listDropBackground:Wd.fromHex("#383B3D")},RD=function(){function e(e,t,n){void 0===n&&(n={}),this._onDidChangeFocus=new We,this.onDidChangeFocus=this._onDidChangeFocus.event,this._onDidChangeSelection=new We,this.onDidChangeSelection=this._onDidChangeSelection.event,this._onHighlightChange=new We,this._onDidExpandItem=new We,this._onDidCollapseItem=new We,this._onDispose=new Ne,this.onDidDispose=this._onDispose.event,this.container=e,Ir(n,AD,!1),n.twistiePixels="number"==typeof n.twistiePixels?n.twistiePixels:32,n.showTwistie=!1!==n.showTwistie,n.indentPixels="number"==typeof n.indentPixels?n.indentPixels:12,n.alwaysFocused=!0===n.alwaysFocused,n.useShadows=!1!==n.useShadows,n.paddingOnRow=!1!==n.paddingOnRow,n.showLoading=!1!==n.showLoading,this.context=new DD(this,t,n),this.model=new gD(this.context),this.view=new BD(this.context,this.container),this.view.setModel(this.model),this._onDidChangeFocus.input=this.model.onDidFocus,this._onDidChangeSelection.input=this.model.onDidSelect,this._onHighlightChange.input=this.model.onDidHighlight,this._onDidExpandItem.input=this.model.onDidExpandItem,this._onDidCollapseItem.input=this.model.onDidCollapseItem}return e.prototype.style=function(e){this.view.applyStyles(e)},Object.defineProperty(e.prototype,"onDidFocus",{get:function(){return this.view&&this.view.onDOMFocus},enumerable:!0,configurable:!0}),e.prototype.getHTMLElement=function(){return this.view.getHTMLElement()},e.prototype.layout=function(e,t){this.view.layout(e,t)},e.prototype.domFocus=function(){this.view.focus()},e.prototype.isDOMFocused=function(){return this.view.isFocused()},e.prototype.domBlur=function(){this.view.blur()},e.prototype.setInput=function(e){return this.model.setInput(e)},e.prototype.getInput=function(){return this.model.getInput()},e.prototype.refresh=function(e,t){return void 0===e&&(e=null),void 0===t&&(t=!0),this.model.refresh(e,t)},e.prototype.expand=function(e){return this.model.expand(e)},e.prototype.collapse=function(e,t){return void 0===t&&(t=!1),this.model.collapse(e,t)},e.prototype.toggleExpansion=function(e,t){return void 0===t&&(t=!1),this.model.toggleExpansion(e,t)},e.prototype.isExpanded=function(e){return this.model.isExpanded(e)},e.prototype.reveal=function(e,t){return void 0===t&&(t=null),this.model.reveal(e,t)},e.prototype.getHighlight=function(){return this.model.getHighlight()},e.prototype.clearHighlight=function(e){this.model.setHighlight(null,e)},e.prototype.setSelection=function(e,t){this.model.setSelection(e,t)},e.prototype.getSelection=function(){return this.model.getSelection()},e.prototype.clearSelection=function(e){this.model.setSelection([],e)},e.prototype.setFocus=function(e,t){this.model.setFocus(e,t)},e.prototype.getFocus=function(){return this.model.getFocus()},e.prototype.focusNext=function(e,t){this.model.focusNext(e,t)},e.prototype.focusPrevious=function(e,t){this.model.focusPrevious(e,t)},e.prototype.focusParent=function(e){this.model.focusParent(e)},e.prototype.focusFirstChild=function(e){this.model.focusFirstChild(e)},e.prototype.focusFirst=function(e,t){this.model.focusFirst(e,t)},e.prototype.focusNth=function(e,t){this.model.focusNth(e,t)},e.prototype.focusLast=function(e,t){this.model.focusLast(e,t)},e.prototype.focusNextPage=function(e){this.view.focusNextPage(e)},e.prototype.focusPreviousPage=function(e){this.view.focusPreviousPage(e)},e.prototype.clearFocus=function(e){this.model.setFocus(null,e)},e.prototype.dispose=function(){this._onDispose.fire(),null!==this.model&&(this.model.dispose(),this.model=null),null!==this.view&&(this.view.dispose(),this.view=null),this._onDidChangeFocus.dispose(),this._onDidChangeSelection.dispose(),this._onHighlightChange.dispose(),this._onDidExpandItem.dispose(),this._onDidCollapseItem.dispose(),this._onDispose.dispose()},e}(),ED=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),KD=Object.assign||function(e){for(var t,n=1,i=arguments.length;n=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s},PD=function(e,t){return function(n,i){t(n,i,e)}},OD=Vt("listService"),$D=function(){function e(e){this.lists=[],this._lastFocusedWidget=void 0}return Object.defineProperty(e.prototype,"lastFocusedList",{get:function(){return this._lastFocusedWidget},enumerable:!0,configurable:!0}),e.prototype.register=function(e,t){var n=this;if(this.lists.some(function(t){return t.widget===e}))throw new Error("Cannot register the same widget multiple times");var i={widget:e,extraContextKeys:t};return this.lists.push(i),e.isDOMFocused()&&(this._lastFocusedWidget=e),we([e.onDidFocus(function(){return n._lastFocusedWidget=e}),Be(function(){return n.lists.splice(n.lists.indexOf(i),1)}),e.onDidDispose(function(){n.lists=n.lists.filter(function(e){return e!==i}),n._lastFocusedWidget===e&&(n._lastFocusedWidget=void 0)})])},ND([PD(0,Es)],e)}(),kD=new Rs("listFocus",!0),LD=new Rs("listSupportsMultiselect",!0),MD=new Rs("listHasSelectionOrFocus",!1),FD=new Rs("listDoubleSelection",!1),zD=new Rs("listMultiSelection",!1),jD="workbench.list.multiSelectModifier",UD="workbench.list.openMode",GD="workbench.tree.horizontalScrolling";function WD(e){return"alt"===e.getValue(jD)}function VD(e){return"doubleClick"!==e.getValue(UD)}!function(e){function t(t,n,i,r,o,s,a,l){var u=this,d=function(e,t){return e.controller||(e.controller=t.createInstance(qD,{})),e.styler||(e.styler=new rD((_D||(_D=Hl()),_D))),e}(n,a),c=l.getValue(GD)?cr.Auto:cr.Hidden,g=KD({horizontalScrollMode:c,keyboardSupport:!1},uv(s.getTheme(),cv),i);return(u=e.call(this,t,d,g)||this).disposables=[],u.contextKeyService=function(e,t){var n=r.createScoped(t.getHTMLElement());return kD.bindTo(n),n}(0,u),LD.bindTo(u.contextKeyService),u.listHasSelectionOrFocus=MD.bindTo(u.contextKeyService),u.listDoubleSelection=FD.bindTo(u.contextKeyService),u.listMultiSelection=zD.bindTo(u.contextKeyService),u._openOnSingleClick=VD(l),u._useAltAsMultipleSelectionModifier=WD(l),u.disposables.push(u.contextKeyService,o.register(u),dv(u,s)),u.disposables.push(u.onDidChangeSelection(function(){var e=u.getSelection(),t=u.getFocus();u.listHasSelectionOrFocus.set(e&&e.length>0||!!t),u.listDoubleSelection.set(e&&2===e.length),u.listMultiSelection.set(e&&e.length>1)})),u.disposables.push(u.onDidChangeFocus(function(){var e=u.getSelection(),t=u.getFocus();u.listHasSelectionOrFocus.set(e&&e.length>0||!!t)})),u.disposables.push(l.onDidChangeConfiguration(function(e){e.affectsConfiguration(UD)&&(u._openOnSingleClick=VD(l)),e.affectsConfiguration(jD)&&(u._useAltAsMultipleSelectionModifier=WD(l))})),u}ED(t,e),t.prototype.dispose=function(){e.prototype.dispose.call(this),this.disposables=xe(this.disposables)},t=ND([PD(3,Es),PD(4,OD),PD(5,_c),PD(6,Gt),PD(7,TT)],t)}(RD);var qD=function(e){function t(t,n){var i=e.call(this,function(e){return"boolean"!=typeof e.keyboardSupport&&(e.keyboardSupport=!1),"number"!=typeof e.clickBehavior&&(e.clickBehavior=qB.ON_MOUSE_DOWN),e}(t))||this;return i.configurationService=n,i.disposables=[],an(t.openMode)&&(i.setOpenMode(i.getOpenModeSetting()),i.registerListeners()),i}return ED(t,e),t.prototype.registerListeners=function(){var e=this;this.disposables.push(this.configurationService.onDidChangeConfiguration(function(t){t.affectsConfiguration(UD)&&e.setOpenMode(e.getOpenModeSetting())}))},t.prototype.getOpenModeSetting=function(){return VD(this.configurationService)?YB.SINGLE_CLICK:YB.DOUBLE_CLICK},t.prototype.dispose=function(){this.disposables=xe(this.disposables)},ND([PD(1,TT)],t)}(eD);hs.as(pu.Configuration).registerConfiguration({id:"workbench",order:7,title:r("workbenchConfigurationTitle","Workbench"),type:"object",properties:(CD={},CD[jD]={type:"string",enum:["ctrlCmd","alt"],enumDescriptions:[r("multiSelectModifier.ctrlCmd","Maps to `Control` on Windows and Linux and to `Command` on macOS."),r("multiSelectModifier.alt","Maps to `Alt` on Windows and Linux and to `Option` on macOS.")],default:"ctrlCmd",description:r({key:"multiSelectModifier",comment:["- `ctrlCmd` refers to a value the setting can take and should not be localized.","- `Control` and `Command` refer to the modifier keys Ctrl or Cmd on the keyboard and can be localized."]},"The modifier to be used to add an item in trees and lists to a multi-selection with the mouse (for example in the explorer, open editors and scm view). The 'Open to Side' mouse gestures - if supported - will adapt such that they do not conflict with the multiselect modifier.")},CD[UD]={type:"string",enum:["singleClick","doubleClick"],default:"singleClick",description:r({key:"openModeModifier",comment:["`singleClick` and `doubleClick` refers to a value the setting can take and should not be localized."]},"Controls how to open items in trees and lists using the mouse (if supported). For parents with children in trees, this setting will control if a single click expands the parent or a double click. Note that some trees and lists might choose to ignore this setting if it is not applicable. ")},CD[GD]={type:"boolean",default:!1,description:r("horizontalScrolling setting","Controls whether trees support horizontal scrolling in the workbench.")},CD)});var YD,HD=Vt("IWorkspaceEditService"),ZD=Vt("uriDisplay"),QD=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}();!function(e){var t=new cu,n=function(){function e(e,t){this._serviceId=e,this._factory=t,this._value=null}return Object.defineProperty(e.prototype,"id",{get:function(){return this._serviceId},enumerable:!0,configurable:!0}),e.prototype.get=function(e){if(!this._value){if(e&&(this._value=e[this._serviceId.toString()]),this._value||(this._value=this._factory(e)),!this._value)throw new Error("Service "+this._serviceId+" is missing!");t.set(this._serviceId,this._value)}return this._value},e}();e.LazyStaticService=n;var i=[];function r(e,t){var r=new n(e,t);return i.push(r),r}e.init=function(e){var t=new cu;for(var n in e)e.hasOwnProperty(n)&&t.set(Vt(n),e[n]);i.forEach(function(n){return t.set(n.id,n.get(e))});var r=new Vx(t,!0);return t.set(Gt,r),[t,r]},e.instantiationService=r(Gt,function(){return new Vx(t,!0)});var o=new GT;e.configurationService=r(TT,function(){return o}),e.resourceConfigurationService=r(Aw,function(){return new WT(o)}),e.contextService=r(CT,function(){return new YT}),e.uriDisplayService=r(ZD,function(){return new QT}),e.telemetryService=r(Ss,function(){return new qT}),e.dialogService=r(ZB,function(){return new MT}),e.notificationService=r(Ic,function(){return new FT}),e.markerService=r(Yx,function(){return new Zx}),e.modeService=r(hv,function(e){return new Jw}),e.modelService=r(Yt,function(t){return new oB(e.markerService.get(t),e.configurationService.get(t))}),e.editorWorkerService=r(FI,function(t){return new Ow(e.modelService.get(t),e.resourceConfigurationService.get(t))}),e.standaloneThemeService=r(Cx,function(){return new HB}),e.codeEditorService=r(Us,function(t){return new pB(e.standaloneThemeService.get(t))}),e.progressService=r(Qx,function(){return new LT}),e.storageService=r(iS,function(){return sS}),e.logService=r(qC,function(){return new YC})}(YD||(YD={}));var XD=function(e){function t(t,n){var i=e.call(this)||this,r=YD.init(n),o=r[0],s=r[1];i._serviceCollection=o,i._instantiationService=s;var a=i.get(TT),l=i.get(Ic),u=i.get(Ss),d=function(e,t){var r=null;return n&&(r=n[e.toString()]),r||(r=t()),i._serviceCollection.set(e,r),r},c=d(Es,function(){return i._register(new vB(a))});d(OD,function(){return new $D(c)});var g=d(es,function(){return new zT(i._instantiationService)});d(Oy,function(){return i._register(new jT(c,g,u,l,t))});var m=d(Ny,function(){return i._register(new Lx(t,u,new YC))});return d(Py,function(){return i._register(new $x(t,u,l,m))}),d(Ls,function(){return new VT(g)}),d(HD,function(){return new ZT(YD.modelService.get(Yt))}),i}return QD(t,e),t.prototype.get=function(e){var t=this._serviceCollection.get(e);if(!t)throw new Error("Missing service "+e);return t},t.prototype.set=function(e,t){this._serviceCollection.set(e,t)},t.prototype.has=function(e){return this._serviceCollection.has(e)},t}(Ae);var JD=new(function(){function e(){}return e.prototype.publicLog=function(e,t){return he.b.wrap(null)},e.prototype.getTelemetryInfo=function(){return he.b.wrap({instanceId:"someValue.instanceId",sessionId:"someValue.sessionId",machineId:"someValue.machineId"})},e}()),eA=function(e,t){return function(n,i){t(n,i,e)}},tA=function(){function e(e,t,n){void 0===n&&(n=JD),this._editorService=e,this._commandService=t,this._telemetryService=n}return e.prototype.open=function(e,t){var n;this._telemetryService.publicLog("openerService",{scheme:e.scheme});var i=e.scheme,r=e.path,o=e.query,s=e.fragment,a=he.b.wrap(void 0);if(i===ic.http||i===ic.https||i===ic.mailto)du(e.toString(!0));else if("command"===i&&ts.getCommand(r)){var l=[];try{l=function(e){var t=JSON.parse(e);return function e(t,n){if(!t||n>200)return t;if("object"==typeof t){switch(t.$mid){case 1:return ae.revive(t);case 2:return new RegExp(t.source,t.flags)}for(var i in t)Object.hasOwnProperty.call(t,i)&&(t[i]=e(t[i],n+1))}return t}(t,0)}(o),Array.isArray(l)||(l=[l])}catch(e){}a=(n=this._commandService).executeCommand.apply(n,[r].concat(l))}else{var u=void 0,d=/^L?(\d+)(?:,(\d+))?/.exec(s);if(d&&(u={startLineNumber:parseInt(d[1]),startColumn:d[2]?parseInt(d[2]):1},e=e.with({fragment:""})),!e.scheme)return he.b.as(void 0);e.scheme===ic.file&&(e=e.with({path:ut(e.path)})),a=this._editorService.openCodeEditor({resource:e,options:{selection:u}},this._editorService.getFocusedCodeEditor(),t&&t.openToSide)}return a},function(e,t,n,i){var r,o=arguments.length,s=o<3?t:null===i?i=Object.getOwnPropertyDescriptor(t,n):i;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)s=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(r=e[a])&&(s=(o<3?r(s):o>3?r(t,n,s):r(t,n))||s);return o>3&&s&&Object.defineProperty(t,n,s),s}([eA(0,Us),eA(1,es),eA(2,qt(Ss))],e)}(),nA=function(){function e(){}return e.colorizeElement=function(e,t,n,i){var r=(i=i||{}).theme||"vs",o=i.mimeType||n.getAttribute("lang")||n.getAttribute("data-lang");if(o){e.setTheme(r);var s=n.firstChild.nodeValue;return n.className+=" "+r,this.colorize(t,s,o,i).then(function(e){n.innerHTML=e},function(e){return console.error(e)})}console.error("Mode not detected")},e._tokenizationSupportChangedPromise=function(e){var t=null,n=function(){t&&(t.dispose(),t=null)};return new he.b(function(i,r){t=Ln.onDidChange(function(t){t.changedLanguages.indexOf(e)>=0&&(n(),i(void 0))})},n)},e.colorize=function(e,t,n,i){Y(t)&&(t=t.substr(1));var r=t.split(/\r\n|\r|\n/),o=e.getModeId(n);void 0===(i=i||{}).tabSize&&(i.tabSize=4),e.getOrCreateMode(o);var s=Ln.get(o);return s?he.b.as(iA(r,i.tabSize,s)):he.b.any([this._tokenizationSupportChangedPromise(o),he.b.timeout(500)]).then(function(e){var t=Ln.get(o);return t?iA(r,i.tabSize,t):function(e,t){var n=[],i=new Uint32Array(2);i[0]=0,i[1]=16793600;for(var r=0,o=e.length;r")}return n.join("")}(r,i.tabSize)})},e.colorizeLine=function(e,t,n,i,r){void 0===r&&(r=4);var o=Pd.isBasicASCII(e,t),s=Pd.containsRTL(e,o,n);return ph(new dh(!1,e,!1,o,s,0,i,[],r,0,-1,"none",!1,!1)).html},e.colorizeModelLine=function(e,t,n){void 0===n&&(n=4);var i=e.getLineContent(t);e.forceTokenization(t);var r=e.getLineTokens(t).inflate();return this.colorizeLine(i,e.mightContainNonBasicASCII(),e.mightContainRTL(),r,n)},e}();function iA(e,t,n){return function(e,t,n){for(var i=[],r=n.getInitialState(),o=0,s=e.length;o"),r=l.endState}return i.join("")}(e,t,n)}var rA,oA,sA=function(){var e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])};return function(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}}(),aA=function(e){function t(t,n){var i=e.call(this,t,n.label)||this;return i._foreignModuleId=n.moduleId,i._foreignModuleCreateData=n.createData||null,i._foreignProxy=null,i}return sA(t,e),t.prototype._getForeignProxy=function(){var e=this;return this._foreignProxy||(this._foreignProxy=new Oa(this._getProxy().then(function(t){return t.loadForeignModule(e._foreignModuleId,e._foreignModuleCreateData).then(function(n){e._foreignModuleId=null,e._foreignModuleCreateData=null;for(var i=function(e,n){return t.fmr(e,n)},r=function(e,t){return function(){var n=Array.prototype.slice.call(arguments,0);return t(e,n)}},o={},s=0;s=this.ranges.length&&(this.nextIdx=0)):(this.nextIdx-=1,this.nextIdx<0&&(this.nextIdx=this.ranges.length-1));var n=this.ranges[this.nextIdx];this.ignoreSelectionChange=!0;try{var i=n.range.getStartPosition();this._editor.setPosition(i),this._editor.revealPositionInCenter(i,t)}finally{this.ignoreSelectionChange=!1}}},e.prototype.canNavigate=function(){return this.ranges&&this.ranges.length>0},e.prototype.next=function(e){void 0===e&&(e=0),this._move(!0,e)},e.prototype.previous=function(e){void 0===e&&(e=0),this._move(!1,e)},e.prototype.dispose=function(){xe(this._disposables),this._disposables.length=0,this._onDidUpdate.dispose(),this.ranges=null,this.disposed=!0},e}(),dA=Vt("textModelService");function cA(e,t,n){var i=new XD(e,t),r=null;i.has(dA)||(r=new kT,i.set(dA,r)),i.has(gv)||i.set(gv,new tA(i.get(Us),i.get(es)));var o=n(i);return r&&r.setEditor(o),o}function gA(e,t,n){return YD.modelService.get().createModel(e,t,n)}function mA(e){return!function(e){return Array.isArray(e)}(e)}function hA(e){return"string"==typeof e}function pA(e){return!hA(e)}function fA(e){return!e}function yA(e,t){return e.ignoreCase&&t?t.toLowerCase():t}function SA(e){return e.replace(/[&<>'"_]/g,"-")}function bA(e,t){console.log(e.languageId+": "+t)}function IA(e,t){throw new Error(e.languageId+": "+t)}function CA(e,t,n,i,r){var o=null;return t.replace(/\$((\$)|(#)|(\d\d?)|[sS](\d\d?)|@(\w+))/g,function(t,s,a,l,u,d,c,g,m){return fA(a)?fA(l)?!fA(u)&&u0;){var n=e.tokenizer[t];if(n)return n;var i=t.lastIndexOf(".");t=i<0?null:t.substr(0,i)}return null}function vA(e,t,n){return"boolean"==typeof e?e:(n&&(e||void 0===t)&&n(),void 0===t?null:t)}function TA(e,t,n){return"string"==typeof e?e:(n&&(e||void 0===t)&&n(),void 0===t?null:t)}function xA(e,t){if("string"!=typeof t)return null;for(var n=0;t.indexOf("@")>=0&&n<5;)n++,t=t.replace(/@(\w+)/g,function(n,i){var r="";return"string"==typeof e[i]?r=e[i]:e[i]&&e[i]instanceof RegExp?r=e[i].source:void 0===e[i]?IA(e,"language definition does not contain attribute '"+i+"', used at: "+t):IA(e,"attribute reference '"+i+"' must be a string, used at: "+t),fA(r)?"":"(?:"+r+")"});return new RegExp(t,e.ignoreCase?"i":"")}function wA(e,t,n,i){var r=-1,o=n,s=n.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);s&&(s[3]&&(r=parseInt(s[3]),s[2]&&(r+=100)),o=s[4]);var a,l="~",u=o;if(o&&0!==o.length?/^\w*$/.test(u)?l="==":(s=o.match(/^(@|!@|~|!~|==|!=)(.*)$/))&&(l=s[1],u=s[2]):(l="!=",u=""),"~"!==l&&"!~"!==l||!/^(\w|\|)*$/.test(u))if("@"===l||"!@"===l){var d=e[u];d||IA(e,"the @ match target '"+u+"' is not defined, in rule: "+t),function(e,t){if(!t)return!1;if(!Array.isArray(t))return!1;for(var n in t)if(t.hasOwnProperty(n)&&!e(t[n]))return!1;return!0}(function(e){return"string"==typeof e},d)||IA(e,"the @ match target '"+u+"' must be an array of strings, in rule: "+t);var c=_r(d,e.ignoreCase);a=function(e){return"@"===l?c(e):!c(e)}}else if("~"===l||"!~"===l)if(u.indexOf("$")<0){var g=xA(e,"^"+u+"$");a=function(e){return"~"===l?g.test(e):!g.test(e)}}else a=function(t,n,i,r){return xA(e,"^"+CA(e,u,n,i,r)+"$").test(t)};else if(u.indexOf("$")<0){var m=yA(e,u);a=function(e){return"=="===l?e===m:e!==m}}else{var h=yA(e,u);a=function(t,n,i,r,o){var s=CA(e,h,n,i,r);return"=="===l?t===s:t!==s}}else{var p=_r(u.split("|"),e.ignoreCase);a=function(e){return"~"===l?p(e):!p(e)}}return-1===r?{name:n,value:i,test:function(e,t,n,i){return a(e,e,t,n,i)}}:{name:n,value:i,test:function(e,t,n,i){var o=function(e,t,n,i){if(i<0)return e;if(i=100){i-=100;var r=n.split(".");if(r.unshift(n),i0&&"^"===n[0],this.name=this.name+": "+n,this.regex=xA(e,"^(?:"+(this.matchOnlyAtLineStart?n.substr(1):n)+")")},e.prototype.setAction=function(e,t){this.action=function e(t,n,i){if(i){if("string"==typeof i)return i;if(i.token||""===i.token){if("string"!=typeof i.token)return IA(t,"a 'token' attribute must be of type string, in rule: "+n),{token:""};var r={token:i.token};if(i.token.indexOf("$")>=0&&(r.tokenSubst=!0),"string"==typeof i.bracket&&("@open"===i.bracket?r.bracket=1:"@close"===i.bracket?r.bracket=-1:IA(t,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+n)),i.next)if("string"!=typeof i.next)IA(t,"the next state must be a string value in rule: "+n);else{var o=i.next;/^(@pop|@push|@popall)$/.test(o)||("@"===o[0]&&(o=o.substr(1)),o.indexOf("$")<0&&(function(e,t){for(;t&&t.length>0;){if(e.stateNames[t])return!0;var n=t.lastIndexOf(".");t=n<0?null:t.substr(0,n)}return!1}(t,CA(t,o,"",[],""))||IA(t,"the next state '"+i.next+"' is not defined in rule: "+n))),r.next=o}return"number"==typeof i.goBack&&(r.goBack=i.goBack),"string"==typeof i.switchTo&&(r.switchTo=i.switchTo),"string"==typeof i.log&&(r.log=i.log),"string"==typeof i.nextEmbedded&&(r.nextEmbedded=i.nextEmbedded,t.usesEmbedded=!0),r}if(Array.isArray(i)){var s=[];for(var a in i)i.hasOwnProperty(a)&&(s[a]=e(t,n,i[a]));return{group:s}}if(i.cases){var l=[];for(var u in i.cases)if(i.cases.hasOwnProperty(u)){var d=e(t,n,i.cases[u]);"@default"===u||"@"===u||""===u?l.push({test:null,value:d,name:u}):"@eos"===u?l.push({test:function(e,t,n,i){return i},value:d,name:u}):l.push(wA(t,n,u,d))}var c=t.defaultToken;return{test:function(e,t,n,i){for(var r in l)if(l.hasOwnProperty(r)&&(!l[r].test||l[r].test(e,t,n,i)))return l[r].value;return c}}}return IA(t,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+n),""}return{token:""}}(e,this.name,t)},e}(),DA=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==e&&e.depth>=this._maxCacheDepth)return new AA(e,t);var n=AA.getStackElementId(e);n.length>0&&(n+="|"),n+=t;var i=this._entries[n];return i||(i=new AA(e,t),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),AA=function(){function e(e,t){this.parent=e,this.state=t,this.depth=(this.parent?this.parent.depth:0)+1}return e.getStackElementId=function(e){for(var t="";null!==e;)t.length>0&&(t+="|"),t+=e.state,e=e.parent;return t},e._equals=function(e,t){for(;null!==e&&null!==t;){if(e===t)return!0;if(e.state!==t.state)return!1;e=e.parent,t=t.parent}return null===e&&null===t},e.prototype.equals=function(t){return e._equals(this,t)},e.prototype.push=function(e){return DA.create(this,e)},e.prototype.pop=function(){return this.parent},e.prototype.popall=function(){for(var e=this;e.parent;)e=e.parent;return e},e.prototype.switchTo=function(e){return DA.create(this.parent,e)},e}(),RA=function(){function e(e,t){this.modeId=e,this.state=t}return e.prototype.equals=function(e){return this.modeId===e.modeId&&this.state.equals(e.state)},e.prototype.clone=function(){return this.state.clone()===this.state?this:new e(this.modeId,this.state)},e}(),EA=function(){function e(e){this._maxCacheDepth=e,this._entries=Object.create(null)}return e.create=function(e,t){return this._INSTANCE.create(e,t)},e.prototype.create=function(e,t){if(null!==t)return new KA(e,t);if(null!==e&&e.depth>=this._maxCacheDepth)return new KA(e,t);var n=AA.getStackElementId(e),i=this._entries[n];return i||(i=new KA(e,null),this._entries[n]=i,i)},e._INSTANCE=new e(5),e}(),KA=function(){function e(e,t){this.stack=e,this.embeddedModeData=t}return e.prototype.clone=function(){return(this.embeddedModeData?this.embeddedModeData.clone():null)===this.embeddedModeData?this:EA.create(this.stack,this.embeddedModeData)},e.prototype.equals=function(t){return t instanceof e&&!!this.stack.equals(t.stack)&&(null===this.embeddedModeData&&null===t.embeddedModeData||null!==this.embeddedModeData&&null!==t.embeddedModeData&&this.embeddedModeData.equals(t.embeddedModeData))},e}(),NA=Object.hasOwnProperty,PA=function(){function e(){this._tokens=[],this._language=null,this._lastTokenType=null,this._lastTokenLanguage=null}return e.prototype.enterMode=function(e,t){this._language=t},e.prototype.emit=function(e,t){this._lastTokenType===t&&this._lastTokenLanguage===this._language||(this._lastTokenType=t,this._lastTokenLanguage=this._language,this._tokens.push(new Ti(e,t,this._language)))},e.prototype.nestedModeTokenize=function(e,t,n){var i=t.modeId,r=t.state,o=Ln.get(i);if(!o)return this.enterMode(n,i),this.emit(n,""),r;var s=o.tokenize(e,r,n);return this._tokens=this._tokens.concat(s.tokens),this._lastTokenType=null,this._lastTokenLanguage=null,this._language=null,s.endState},e.prototype.finalize=function(e){return new xi(this._tokens,e)},e}(),OA=function(){function e(e,t){this._modeService=e,this._theme=t,this._prependTokens=null,this._tokens=[],this._currentLanguageId=0,this._lastTokenMetadata=0}return e.prototype.enterMode=function(e,t){this._currentLanguageId=this._modeService.getLanguageIdentifier(t).id},e.prototype.emit=function(e,t){var n=this._theme.match(this._currentLanguageId,t);this._lastTokenMetadata!==n&&(this._lastTokenMetadata=n,this._tokens.push(e),this._tokens.push(n))},e._merge=function(e,t,n){var i=null!==e?e.length:0,r=t.length,o=null!==n?n.length:0;if(0===i&&0===r&&0===o)return new Uint32Array(0);if(0===i&&0===r)return n;if(0===r&&0===o)return e;var s=new Uint32Array(i+r+o);null!==e&&s.set(e);for(var a=0;a0&&i.nestedModeTokenize(s,t.embeddedModeData,n);var a=e.substring(r);return this._myTokenize(a,t,n+r,i)},e.prototype._myTokenize=function(e,t,n,i){i.enterMode(n,this._modeId);for(var r=e.length,o=t.embeddedModeData,s=t.stack,a=0,l=null,u=null,d=null,c=null;a=r)break;var C=this._lexer.tokenizer[p];C||(C=_A(this._lexer,p))||IA(this._lexer,"tokenizer state is not defined: "+p);var _=e.substr(a);for(var v in C)if(NA.call(C,v)){var T=C[v];if((0===a||!T.matchOnlyAtLineStart)&&(f=_.match(T.regex))){y=f[0],S=T.action;break}}}for(f||(f=[""],y=""),S||(a=this._lexer.maxStack?IA(this._lexer,"maximum tokenizer stack size reached: ["+s.state+","+s.parent.state+",...]"):s=s.push(p);else if("@pop"===S.next)s.depth<=1?IA(this._lexer,"trying to pop an empty stack in rule: "+b.name):s=s.pop();else if("@popall"===S.next)s=s.popall();else{var w;"@"===(w=CA(this._lexer,S.next,y,f,p))[0]&&(w=w.substr(1)),_A(this._lexer,w)?s=s.push(w):IA(this._lexer,"trying to set a next state '"+w+"' that is undefined in rule: "+b.name)}S.log&&"string"==typeof S.log&&bA(this._lexer,this._lexer.languageId+": "+CA(this._lexer,S.log,y,f,p))}if(null===x&&IA(this._lexer,"lexer rule has no well-defined action in rule: "+b.name),Array.isArray(x)){l&&l.length>0&&IA(this._lexer,"groups cannot be nested: "+b.name),f.length!==x.length+1&&IA(this._lexer,"matched number of groups does not match the number of actions in rule: "+b.name);for(var B=0,D=1;D0&&r[o-1]===d)){var c=u.startIndex;0===a?c=0:c=1&&l.length<=3)if(d.setRegex(i,l[0]),l.length>=3)if("string"==typeof l[1])d.setAction(i,{token:l[1],next:l[2]});else if("object"==typeof l[1]){var c=l[1];c.next=l[2],d.setAction(i,c)}else IA(n,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+e);else d.setAction(i,l[1]);else l.regex||IA(n,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+e),l.name&&(d.name=TA(l.name)),l.matchOnlyAtStart&&(d.matchOnlyAtLineStart=vA(l.matchOnlyAtLineStart)),d.setRegex(i,l.regex),d.setAction(i,l.action);o.push(d)}}}for(var o in i.languageId=e,i.ignoreCase=n.ignoreCase,i.noThrow=n.noThrow,i.usesEmbedded=n.usesEmbedded,i.stateNames=t.tokenizer,i.defaultToken=n.defaultToken,t.tokenizer&&"object"==typeof t.tokenizer||IA(n,"a language definition must define the 'tokenizer' attribute as an object"),n.tokenizer=[],t.tokenizer)if(t.tokenizer.hasOwnProperty(o)){n.start||(n.start=o);var s=t.tokenizer[o];n.tokenizer[o]=new Array,r("tokenizer."+o,n.tokenizer[o],s)}n.usesEmbedded=i.usesEmbedded,t.brackets?Array.isArray(t.brackets)||IA(n,"the 'brackets' attribute must be defined as an array"):t.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];var a=[];for(var l in t.brackets)if(t.brackets.hasOwnProperty(l)){var u=t.brackets[l];u&&Array.isArray(u)&&3===u.length&&(u={token:u[2],open:u[0],close:u[1]}),u.open===u.close&&IA(n,"open and close brackets in a 'brackets' attribute must be different: "+u.open+"\n hint: use the 'bracket' attribute if matching on equal brackets is required."),"string"==typeof u.open&&"string"==typeof u.token?a.push({token:TA(u.token)+n.tokenPostfix,open:yA(n,TA(u.open)),close:yA(n,TA(u.close))}):IA(n,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return n.brackets=a,n.noThrow=!0,n}(e,t),i=function(e,t,n,i){return new $A(e,t,n,i)}(YD.modeService.get(),YD.standaloneThemeService.get(),e,n);return Ln.register(e,i)},registerReferenceProvider:function(e,t){return In.register(e,t)},registerRenameProvider:function(e,t){return Cn.register(e,t)},registerCompletionItemProvider:function(e,t){var n=new zA(t);return _n.register(e,{triggerCharacters:t.triggerCharacters,provideCompletionItems:function(e,t,i,r){return n.provideCompletionItems(e,t,i,r)},resolveCompletionItem:function(e,t,i,r){return n.resolveCompletionItem(e,t,i,r)}})},registerSignatureHelpProvider:function(e,t){return vn.register(e,t)},registerHoverProvider:function(e,t){return Tn.register(e,{provideHover:function(e,n,i){var r=e.getWordAtPosition(n);return Ea(t.provideHover(e,n,i)).then(function(e){if(e)return!e.range&&r&&(e.range=new s(n.lineNumber,r.startColumn,n.lineNumber,r.endColumn)),e.range||(e.range=new s(n.lineNumber,n.column,n.lineNumber,n.column)),e})}})},registerDocumentSymbolProvider:function(e,t){return xn.register(e,t)},registerDocumentHighlightProvider:function(e,t){return wn.register(e,t)},registerDefinitionProvider:function(e,t){return Bn.register(e,t)},registerImplementationProvider:function(e,t){return Dn.register(e,t)},registerTypeDefinitionProvider:function(e,t){return An.register(e,t)},registerCodeLensProvider:function(e,t){return Rn.register(e,t)},registerCodeActionProvider:function(e,t){return En.register(e,{provideCodeActions:function(e,n,i,r){var o=YD.markerService.get().read({resource:e.uri}).filter(function(e){return s.areIntersectingOrTouching(e,n)});return t.provideCodeActions(e,n,{markers:o,only:i.only},r)}})},registerDocumentFormattingEditProvider:function(e,t){return Kn.register(e,t)},registerDocumentRangeFormattingEditProvider:function(e,t){return Nn.register(e,t)},registerOnTypeFormattingEditProvider:function(e,t){return Pn.register(e,t)},registerLinkProvider:function(e,t){return On.register(e,t)},registerColorProvider:function(e,t){return $n.register(e,t)},registerFoldingRangeProvider:function(e,t){return kn.register(e,t)},DocumentHighlightKind:hn,CompletionItemKind:LA,SymbolKind:pn,IndentAction:ji,SuggestTriggerKind:gn,FoldingRangeKind:Sn},GA.CancellationTokenSource,GA.Emitter,GA.KeyCode,GA.KeyMod,GA.Position,GA.Range,GA.Selection,GA.SelectionDirection,GA.MarkerSeverity,GA.MarkerTag,GA.Promise,GA.Uri,GA.Token,GA.editor,GA.languages,UA.monaco=GA,void 0!==UA.require&&"function"==typeof UA.require.config&&UA.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index"]}),n(93),n(6),n(8),n(9),self.MonacoEnvironment={getWorkerUrl:function(e,t){switch(t){case"kusto":return n(97);default:return n(98)}}}}])}); \ No newline at end of file diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.test.ts new file mode 100644 index 00000000000..24720edee34 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.test.ts @@ -0,0 +1,166 @@ +import LogAnalyticsQuerystringBuilder from './querystring_builder'; +import moment from 'moment'; + +describe('LogAnalyticsDatasource', () => { + let builder: LogAnalyticsQuerystringBuilder; + + beforeEach(() => { + builder = new LogAnalyticsQuerystringBuilder( + 'query=Tablename | where $__timeFilter()', + { + interval: '5m', + range: { + from: moment().subtract(24, 'hours'), + to: moment(), + }, + rangeRaw: { + from: 'now-24h', + to: 'now', + }, + }, + 'TimeGenerated' + ); + }); + + describe('when $__timeFilter has no column parameter', () => { + it('should generate a time filter condition with TimeGenerated as the datetime field', () => { + const query = builder.generate().uriString; + + expect(query).toContain('where%20TimeGenerated%20%3E%3D%20datetime('); + }); + }); + + describe('when $__timeFilter has a column parameter', () => { + beforeEach(() => { + builder.rawQueryString = 'query=Tablename | where $__timeFilter(myTime)'; + }); + + it('should generate a time filter condition with myTime as the datetime field', () => { + const query = builder.generate().uriString; + + expect(query).toContain('where%20myTime%20%3E%3D%20datetime('); + }); + }); + + describe('when $__contains and multi template variable has custom All value', () => { + beforeEach(() => { + builder.rawQueryString = 'query=Tablename | where $__contains(col, all)'; + }); + + it('should generate a where..in clause', () => { + const query = builder.generate().rawQuery; + + expect(query).toContain(`where 1 == 1`); + }); + }); + + describe('when $__contains and multi template variable has one selected value', () => { + beforeEach(() => { + builder.rawQueryString = `query=Tablename | where $__contains(col, 'val1')`; + }); + + it('should generate a where..in clause', () => { + const query = builder.generate().rawQuery; + + expect(query).toContain(`where col in ('val1')`); + }); + }); + + describe('when $__contains and multi template variable has multiple selected values', () => { + beforeEach(() => { + builder.rawQueryString = `query=Tablename | where $__contains(col, 'val1','val2')`; + }); + + it('should generate a where..in clause', () => { + const query = builder.generate().rawQuery; + + expect(query).toContain(`where col in ('val1','val2')`); + }); + }); + + describe('when $__interval is in the query', () => { + beforeEach(() => { + builder.rawQueryString = 'query=Tablename | summarize count() by Category, bin(TimeGenerated, $__interval)'; + }); + + it('should replace $__interval with the inbuilt interval option', () => { + const query = builder.generate().uriString; + + expect(query).toContain('bin(TimeGenerated%2C%205m'); + }); + }); + + describe('when using $__from and $__to is in the query and range is until now', () => { + beforeEach(() => { + builder.rawQueryString = 'query=Tablename | where myTime >= $__from and myTime <= $__to'; + }); + + it('should replace $__from and $__to with a datetime and the now() function', () => { + const query = builder.generate().uriString; + + expect(query).toContain('where%20myTime%20%3E%3D%20datetime('); + expect(query).toContain('myTime%20%3C%3D%20now()'); + }); + }); + + describe('when using $__from and $__to is in the query and range is a specific interval', () => { + beforeEach(() => { + builder.rawQueryString = 'query=Tablename | where myTime >= $__from and myTime <= $__to'; + builder.options.range.to = moment().subtract(1, 'hour'); + builder.options.rangeRaw.to = 'now-1h'; + }); + + it('should replace $__from and $__to with datetimes', () => { + const query = builder.generate().uriString; + + expect(query).toContain('where%20myTime%20%3E%3D%20datetime('); + expect(query).toContain('myTime%20%3C%3D%20datetime('); + }); + }); + + describe('when using $__escape and multi template variable has one selected value', () => { + beforeEach(() => { + builder.rawQueryString = `$__escapeMulti('\\grafana-vm\Network(eth0)\Total Bytes Received')`; + }); + + it('should replace $__escape(val) with KQL style escaped string', () => { + const query = builder.generate().uriString; + expect(query).toContain(`%40'%5Cgrafana-vmNetwork(eth0)Total%20Bytes%20Received'`); + }); + }); + + describe('when using $__escape and multi template variable has multiple selected values', () => { + beforeEach(() => { + builder.rawQueryString = `CounterPath in ($__escapeMulti('\\grafana-vm\Network(eth0)\Total','\\grafana-vm\Network(eth0)\Total'))`; + }); + + it('should replace $__escape(val) with multiple KQL style escaped string', () => { + const query = builder.generate().uriString; + expect(query).toContain( + `CounterPath%20in%20(%40'%5Cgrafana-vmNetwork(eth0)Total'%2C%20%40'%5Cgrafana-vmNetwork(eth0)Total')` + ); + }); + }); + + describe('when using $__escape and multi template variable has one selected value that contains comma', () => { + beforeEach(() => { + builder.rawQueryString = `$__escapeMulti('\\grafana-vm,\Network(eth0)\Total Bytes Received')`; + }); + + it('should replace $__escape(val) with KQL style escaped string', () => { + const query = builder.generate().uriString; + expect(query).toContain(`%40'%5Cgrafana-vm%2CNetwork(eth0)Total%20Bytes%20Received'`); + }); + }); + + describe(`when using $__escape and multi template variable value is not wrapped in single '`, () => { + beforeEach(() => { + builder.rawQueryString = `$__escapeMulti(\\grafana-vm,\Network(eth0)\Total Bytes Received)`; + }); + + it('should not replace macro', () => { + const query = builder.generate().uriString; + expect(query).toContain(`%24__escapeMulti(%5Cgrafana-vm%2CNetwork(eth0)Total%20Bytes%20Received)`); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.ts new file mode 100644 index 00000000000..b206d48756a --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/log_analytics/querystring_builder.ts @@ -0,0 +1,84 @@ +import moment from 'moment'; + +export default class LogAnalyticsQuerystringBuilder { + constructor(public rawQueryString, public options, public defaultTimeField) {} + + generate() { + let queryString = this.rawQueryString; + const macroRegexp = /\$__([_a-zA-Z0-9]+)\(([^\)]*)\)/gi; + queryString = queryString.replace(macroRegexp, (match, p1, p2) => { + if (p1 === 'contains') { + return this.getMultiContains(p2); + } + + return match; + }); + + queryString = queryString.replace(/\$__escapeMulti\(('[^]*')\)/gi, (match, p1) => this.escape(p1)); + + if (this.options) { + queryString = queryString.replace(macroRegexp, (match, p1, p2) => { + if (p1 === 'timeFilter') { + return this.getTimeFilter(p2, this.options); + } + + return match; + }); + queryString = queryString.replace(/\$__interval/gi, this.options.interval); + queryString = queryString.replace(/\$__from/gi, this.getFrom(this.options)); + queryString = queryString.replace(/\$__to/gi, this.getUntil(this.options)); + } + const rawQuery = queryString; + queryString = encodeURIComponent(queryString); + const uriString = `query=${queryString}`; + + return { uriString, rawQuery }; + } + + getFrom(options) { + const from = options.range.from; + return `datetime(${moment(from) + .startOf('minute') + .toISOString()})`; + } + + getUntil(options) { + if (options.rangeRaw.to === 'now') { + return 'now()'; + } else { + const until = options.range.to; + return `datetime(${moment(until) + .startOf('minute') + .toISOString()})`; + } + } + + getTimeFilter(timeFieldArg, options) { + const timeField = timeFieldArg || this.defaultTimeField; + if (options.rangeRaw.to === 'now') { + return `${timeField} >= ${this.getFrom(options)}`; + } else { + return `${timeField} >= ${this.getFrom(options)} and ${timeField} <= ${this.getUntil(options)}`; + } + } + + getMultiContains(inputs: string) { + const firstCommaIndex = inputs.indexOf(','); + const field = inputs.substring(0, firstCommaIndex); + const templateVar = inputs.substring(inputs.indexOf(',') + 1); + + if (templateVar && templateVar.toLowerCase().trim() === 'all') { + return '1 == 1'; + } + + return `${field.trim()} in (${templateVar.trim()})`; + } + + escape(inputs: string) { + return inputs + .substring(1, inputs.length - 1) + .split(`','`) + .map(v => `@'${v}'`) + .join(', '); + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/module.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/module.ts new file mode 100644 index 00000000000..88af3e79851 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/module.ts @@ -0,0 +1,11 @@ +import Datasource from './datasource'; +import { AzureMonitorQueryCtrl } from './query_ctrl'; +import { AzureMonitorAnnotationsQueryCtrl } from './annotations_query_ctrl'; +import { AzureMonitorConfigCtrl } from './config_ctrl'; + +export { + Datasource, + AzureMonitorQueryCtrl as QueryCtrl, + AzureMonitorConfigCtrl as ConfigCtrl, + AzureMonitorAnnotationsQueryCtrl as AnnotationsQueryCtrl, +}; diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/__mocks__/kusto_monaco_editor.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/__mocks__/kusto_monaco_editor.ts new file mode 100644 index 00000000000..3e481a2ed6e --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/__mocks__/kusto_monaco_editor.ts @@ -0,0 +1 @@ +Object.assign({}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.test.ts new file mode 100644 index 00000000000..fe1446d5d3c --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.test.ts @@ -0,0 +1,219 @@ +// tslint:disable-next-line:no-reference +/// + +import KustoCodeEditor from './kusto_code_editor'; +import _ from 'lodash'; + +describe('KustoCodeEditor', () => { + let editor; + + describe('getCompletionItems', () => { + let completionItems; + let lineContent; + let model; + + beforeEach(() => { + (global as any).monaco = { + languages: { + CompletionItemKind: { + Keyword: '', + }, + }, + }; + model = { + getLineCount: () => 3, + getValueInRange: () => 'atable/n' + lineContent, + getLineContent: () => lineContent, + }; + + const StandaloneMock = jest.fn(); + editor = new KustoCodeEditor(null, 'TimeGenerated', () => {}, {}); + editor.codeEditor = new StandaloneMock(); + }); + + describe('when no where clause and no | in model text', () => { + beforeEach(() => { + lineContent = ' '; + const position = { lineNumber: 2, column: 2 }; + completionItems = editor.getCompletionItems(model, position); + }); + + it('should not return any grafana macros', () => { + expect(completionItems.length).toBe(0); + }); + }); + + describe('when no where clause in model text', () => { + beforeEach(() => { + lineContent = '| '; + const position = { lineNumber: 2, column: 3 }; + completionItems = editor.getCompletionItems(model, position); + }); + + it('should return grafana macros for where and timefilter', () => { + expect(completionItems.length).toBe(1); + + expect(completionItems[0].label).toBe('where $__timeFilter(timeColumn)'); + expect(completionItems[0].insertText.value).toBe('where \\$__timeFilter(${0:TimeGenerated})'); + }); + }); + + describe('when on line with where clause', () => { + beforeEach(() => { + lineContent = '| where Test == 2 and '; + const position = { lineNumber: 2, column: 23 }; + completionItems = editor.getCompletionItems(model, position); + }); + + it('should return grafana macros and variables', () => { + expect(completionItems.length).toBe(4); + + expect(completionItems[0].label).toBe('$__timeFilter(timeColumn)'); + expect(completionItems[0].insertText.value).toBe('\\$__timeFilter(${0:TimeGenerated})'); + + expect(completionItems[1].label).toBe('$__from'); + expect(completionItems[1].insertText.value).toBe('\\$__from'); + + expect(completionItems[2].label).toBe('$__to'); + expect(completionItems[2].insertText.value).toBe('\\$__to'); + + expect(completionItems[3].label).toBe('$__interval'); + expect(completionItems[3].insertText.value).toBe('\\$__interval'); + }); + }); + }); + + describe('onDidChangeCursorSelection', () => { + const keyboardEvent = { + selection: { + startLineNumber: 4, + startColumn: 26, + endLineNumber: 4, + endColumn: 31, + selectionStartLineNumber: 4, + selectionStartColumn: 26, + positionLineNumber: 4, + positionColumn: 31, + }, + secondarySelections: [], + source: 'keyboard', + reason: 3, + }; + + const modelChangedEvent = { + selection: { + startLineNumber: 2, + startColumn: 1, + endLineNumber: 3, + endColumn: 3, + selectionStartLineNumber: 2, + selectionStartColumn: 1, + positionLineNumber: 3, + positionColumn: 3, + }, + secondarySelections: [], + source: 'modelChange', + reason: 2, + }; + + describe('suggestion trigger', () => { + let suggestionTriggered; + let lineContent = ''; + + beforeEach(() => { + (global as any).monaco = { + languages: { + CompletionItemKind: { + Keyword: '', + }, + }, + editor: { + CursorChangeReason: { + NotSet: 0, + ContentFlush: 1, + RecoverFromMarkers: 2, + Explicit: 3, + Paste: 4, + Undo: 5, + Redo: 6, + }, + }, + }; + const StandaloneMock = jest.fn(() => ({ + getModel: () => { + return { + getLineCount: () => 3, + getLineContent: () => lineContent, + }; + }, + })); + + editor = new KustoCodeEditor(null, 'TimeGenerated', () => {}, {}); + editor.codeEditor = new StandaloneMock(); + editor.triggerSuggestions = () => { + suggestionTriggered = true; + }; + }); + + describe('when model change event, reason is RecoverFromMarkers and there is a space after', () => { + beforeEach(() => { + suggestionTriggered = false; + lineContent = '| '; + editor.onDidChangeCursorSelection(modelChangedEvent); + }); + + it('should trigger suggestion', () => { + expect(suggestionTriggered).toBeTruthy(); + }); + }); + + describe('when not model change event', () => { + beforeEach(() => { + suggestionTriggered = false; + editor.onDidChangeCursorSelection(keyboardEvent); + }); + + it('should not trigger suggestion', () => { + expect(suggestionTriggered).toBeFalsy(); + }); + }); + + describe('when model change event but with incorrect reason', () => { + beforeEach(() => { + suggestionTriggered = false; + const modelChangedWithInvalidReason = _.cloneDeep(modelChangedEvent); + modelChangedWithInvalidReason.reason = 5; + editor.onDidChangeCursorSelection(modelChangedWithInvalidReason); + }); + + it('should not trigger suggestion', () => { + expect(suggestionTriggered).toBeFalsy(); + }); + }); + + describe('when model change event but with no space after', () => { + beforeEach(() => { + suggestionTriggered = false; + lineContent = '|'; + editor.onDidChangeCursorSelection(modelChangedEvent); + }); + + it('should not trigger suggestion', () => { + expect(suggestionTriggered).toBeFalsy(); + }); + }); + + describe('when model change event but with no space after', () => { + beforeEach(() => { + suggestionTriggered = false; + lineContent = '|'; + editor.onDidChangeCursorSelection(modelChangedEvent); + }); + + it('should not trigger suggestion', () => { + expect(suggestionTriggered).toBeFalsy(); + }); + }); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.ts new file mode 100644 index 00000000000..16954bfa485 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_code_editor.ts @@ -0,0 +1,326 @@ +// tslint:disable-next-line:no-reference +/// + +import _ from 'lodash'; + +export interface SuggestionController { + _model: any; +} + +export default class KustoCodeEditor { + codeEditor: monaco.editor.IStandaloneCodeEditor; + completionItemProvider: monaco.IDisposable; + signatureHelpProvider: monaco.IDisposable; + + splitWithNewLineRegex = /[^\n]+\n?|\n/g; + newLineRegex = /\r?\n/; + startsWithKustoPipeRegex = /^\|\s*/g; + kustoPipeRegexStrict = /^\|\s*$/g; + + constructor( + private containerDiv: any, + private defaultTimeField: string, + private getSchema: () => any, + private config: any + ) {} + + initMonaco(scope) { + const themeName = this.config.bootData.user.lightTheme ? 'grafana-light' : 'vs-dark'; + + monaco.editor.defineTheme('grafana-light', { + base: 'vs', + inherit: true, + rules: [ + { token: 'comment', foreground: '008000' }, + { token: 'variable.predefined', foreground: '800080' }, + { token: 'function', foreground: '0000FF' }, + { token: 'operator.sql', foreground: 'FF4500' }, + { token: 'string', foreground: 'B22222' }, + { token: 'operator.scss', foreground: '0000FF' }, + { token: 'variable', foreground: 'C71585' }, + { token: 'variable.parameter', foreground: '9932CC' }, + { token: '', foreground: '000000' }, + { token: 'type', foreground: '0000FF' }, + { token: 'tag', foreground: '0000FF' }, + { token: 'annotation', foreground: '2B91AF' }, + { token: 'keyword', foreground: '0000FF' }, + { token: 'number', foreground: '191970' }, + { token: 'annotation', foreground: '9400D3' }, + { token: 'invalid', background: 'cd3131' }, + ], + colors: { + 'textCodeBlock.background': '#FFFFFF', + }, + }); + + monaco.languages['kusto'].kustoDefaults.setLanguageSettings({ + includeControlCommands: true, + newlineAfterPipe: true, + useIntellisenseV2: false, + }); + + this.codeEditor = monaco.editor.create(this.containerDiv, { + value: scope.content || 'Write your query here', + language: 'kusto', + selectionHighlight: false, + theme: themeName, + folding: true, + lineNumbers: 'off', + lineHeight: 16, + suggestFontSize: 13, + dragAndDrop: false, + occurrencesHighlight: false, + minimap: { + enabled: false, + }, + renderIndentGuides: false, + wordWrap: 'on', + }); + this.codeEditor.layout(); + + if (monaco.editor.getModels().length === 1) { + this.completionItemProvider = monaco.languages.registerCompletionItemProvider('kusto', { + triggerCharacters: ['.', ' '], + provideCompletionItems: this.getCompletionItems.bind(this), + }); + + this.signatureHelpProvider = monaco.languages.registerSignatureHelpProvider('kusto', { + signatureHelpTriggerCharacters: ['(', ')'], + provideSignatureHelp: this.getSignatureHelp.bind(this), + }); + } + + this.codeEditor.createContextKey('readyToExecute', true); + + this.codeEditor.onDidChangeCursorSelection(event => { + this.onDidChangeCursorSelection(event); + }); + + this.getSchema().then(schema => { + if (!schema) { + return; + } + + monaco.languages['kusto'].getKustoWorker().then(workerAccessor => { + const model = this.codeEditor.getModel(); + workerAccessor(model.uri).then(worker => { + const dbName = Object.keys(schema.Databases).length > 0 ? Object.keys(schema.Databases)[0] : ''; + worker.setSchemaFromShowSchema(schema, 'https://help.kusto.windows.net', dbName); + this.codeEditor.layout(); + }); + }); + }); + } + + setOnDidChangeModelContent(listener) { + this.codeEditor.onDidChangeModelContent(listener); + } + + disposeMonaco() { + if (this.completionItemProvider) { + try { + this.completionItemProvider.dispose(); + } catch (e) { + console.error('Failed to dispose the completion item provider.', e); + } + } + if (this.signatureHelpProvider) { + try { + this.signatureHelpProvider.dispose(); + } catch (e) { + console.error('Failed to dispose the signature help provider.', e); + } + } + if (this.codeEditor) { + try { + this.codeEditor.dispose(); + } catch (e) { + console.error('Failed to dispose the editor component.', e); + } + } + } + + addCommand(keybinding: number, commandFunc: monaco.editor.ICommandHandler) { + this.codeEditor.addCommand(keybinding, commandFunc, 'readyToExecute'); + } + + getValue() { + return this.codeEditor.getValue(); + } + + toSuggestionController(srv: monaco.editor.IEditorContribution): SuggestionController { + return srv as any; + } + + setEditorContent(value) { + this.codeEditor.setValue(value); + } + + getCompletionItems(model: monaco.editor.IReadOnlyModel, position: monaco.Position) { + const timeFilterDocs = + '##### Macro that uses the selected timerange in Grafana to filter the query.\n\n' + + '- `$__timeFilter()` -> Uses the ' + + this.defaultTimeField + + ' column\n\n' + + '- `$__timeFilter(datetimeColumn)` -> Uses the specified datetime column to build the query.'; + + const textUntilPosition = model.getValueInRange({ + startLineNumber: 1, + startColumn: 1, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + + if (!_.includes(textUntilPosition, '|')) { + return []; + } + + if (!_.includes(textUntilPosition.toLowerCase(), 'where')) { + return [ + { + label: 'where $__timeFilter(timeColumn)', + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: { + value: 'where \\$__timeFilter(${0:' + this.defaultTimeField + '})', + }, + documentation: { + value: timeFilterDocs, + }, + }, + ]; + } + + if (_.includes(model.getLineContent(position.lineNumber).toLowerCase(), 'where')) { + return [ + { + label: '$__timeFilter(timeColumn)', + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: { + value: '\\$__timeFilter(${0:' + this.defaultTimeField + '})', + }, + documentation: { + value: timeFilterDocs, + }, + }, + { + label: '$__from', + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: { + value: `\\$__from`, + }, + documentation: { + value: + 'Built-in variable that returns the from value of the selected timerange in Grafana.\n\n' + + 'Example: `where ' + + this.defaultTimeField + + ' > $__from` ', + }, + }, + { + label: '$__to', + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: { + value: `\\$__to`, + }, + documentation: { + value: + 'Built-in variable that returns the to value of the selected timerange in Grafana.\n\n' + + 'Example: `where ' + + this.defaultTimeField + + ' < $__to` ', + }, + }, + { + label: '$__interval', + kind: monaco.languages.CompletionItemKind.Keyword, + insertText: { + value: `\\$__interval`, + }, + documentation: { + value: + '##### Built-in variable that returns an automatic time grain suitable for the current timerange.\n\n' + + 'Used with the bin() function - `bin(' + + this.defaultTimeField + + ', $__interval)` \n\n' + + '[Grafana docs](http://docs.grafana.org/reference/templating/#the-interval-variable)', + }, + }, + ]; + } + + return []; + } + + getSignatureHelp(model: monaco.editor.IReadOnlyModel, position: monaco.Position, token: monaco.CancellationToken) { + const textUntilPosition = model.getValueInRange({ + startLineNumber: position.lineNumber, + startColumn: position.column - 14, + endLineNumber: position.lineNumber, + endColumn: position.column, + }); + + if (textUntilPosition !== '$__timeFilter(') { + return {} as monaco.languages.SignatureHelp; + } + + const signature: monaco.languages.SignatureHelp = { + activeParameter: 0, + activeSignature: 0, + signatures: [ + { + label: '$__timeFilter(timeColumn)', + parameters: [ + { + label: 'timeColumn', + documentation: + 'Default is ' + + this.defaultTimeField + + ' column. Datetime column to filter data using the selected date range. ', + }, + ], + }, + ], + }; + + return signature; + } + + onDidChangeCursorSelection(event) { + if (event.source !== 'modelChange' || event.reason !== monaco.editor.CursorChangeReason.RecoverFromMarkers) { + return; + } + const lastChar = this.getCharAt(event.selection.positionLineNumber, event.selection.positionColumn - 1); + + if (lastChar !== ' ') { + return; + } + + this.triggerSuggestions(); + } + + triggerSuggestions() { + const suggestController = this.codeEditor.getContribution('editor.contrib.suggestController'); + if (!suggestController) { + return; + } + + const convertedController = this.toSuggestionController(suggestController); + + convertedController._model.cancel(); + setTimeout(() => { + convertedController._model.trigger(true); + }, 10); + } + + getCharAt(lineNumber: number, column: number) { + const model = this.codeEditor.getModel(); + if (model.getLineCount() === 0 || model.getLineCount() < lineNumber) { + return ''; + } + const line = model.getLineContent(lineNumber); + if (line.length < column || column < 1) { + return ''; + } + return line[column - 1]; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_monaco_editor.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_monaco_editor.ts new file mode 100644 index 00000000000..9d9b0cc1e3e --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/monaco/kusto_monaco_editor.ts @@ -0,0 +1,90 @@ +// tslint:disable-next-line:no-reference +/// + +import angular from 'angular'; +import KustoCodeEditor from './kusto_code_editor'; +import config from 'app/core/config'; + +const editorTemplate = `
    `; + +function link(scope, elem, attrs) { + const containerDiv = elem.find('#content')[0]; + + if (!(global as any).monaco) { + (global as any).System.import(`./${scope.pluginBaseUrl}/lib/monaco.min.js`).then(() => { + setTimeout(() => { + initMonaco(containerDiv, scope); + }, 1); + }); + } else { + setTimeout(() => { + initMonaco(containerDiv, scope); + }, 1); + } + + containerDiv.onblur = () => { + scope.onChange(); + }; + + containerDiv.onkeydown = evt => { + if (evt.key === 'Escape') { + evt.stopPropagation(); + return true; + } + + return undefined; + }; + + function initMonaco(containerDiv, scope) { + const kustoCodeEditor = new KustoCodeEditor(containerDiv, scope.defaultTimeField, scope.getSchema, config); + + kustoCodeEditor.initMonaco(scope); + + /* tslint:disable:no-bitwise */ + kustoCodeEditor.addCommand(monaco.KeyMod.Shift | monaco.KeyCode.Enter, () => { + const newValue = kustoCodeEditor.getValue(); + scope.content = newValue; + scope.onChange(); + }); + /* tslint:enable:no-bitwise */ + + // Sync with outer scope - update editor content if model has been changed from outside of directive. + scope.$watch('content', (newValue, oldValue) => { + const editorValue = kustoCodeEditor.getValue(); + if (newValue !== editorValue && newValue !== oldValue) { + scope.$$postDigest(() => { + kustoCodeEditor.setEditorContent(newValue); + }); + } + }); + + kustoCodeEditor.setOnDidChangeModelContent(() => { + scope.$apply(() => { + const newValue = kustoCodeEditor.getValue(); + scope.content = newValue; + }); + }); + + scope.$on('$destroy', () => { + kustoCodeEditor.disposeMonaco(); + }); + } +} + +/** @ngInject */ +export function kustoMonacoEditorDirective() { + return { + restrict: 'E', + template: editorTemplate, + scope: { + content: '=', + onChange: '&', + getSchema: '&', + defaultTimeField: '@', + pluginBaseUrl: '@', + }, + link: link, + }; +} + +angular.module('grafana.controllers').directive('kustoMonacoEditor', kustoMonacoEditorDirective); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/annotations.editor.html b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/annotations.editor.html new file mode 100644 index 00000000000..e4a8c863984 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/annotations.editor.html @@ -0,0 +1,64 @@ +
    +
    + +
    + +
    +
    +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    + +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    + +
    +
    Annotation Query Format
    +An annotation is an event that is overlaid on top of graphs. The query can have up to three columns per row, the datetime column is mandatory. Annotation rendering is expensive so it is important to limit the number of rows returned. + +- column with the datetime type. +- column with alias: Text or text for the annotation text +- column with alias: Tags or tags for annotation tags. This is should return a comma separated string of tags e.g. 'tag1,tag2' + +Macros: + - $__timeFilter() -> TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z) + - $__timeFilter(datetimeColumn) -> datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z) + + Or build your own conditionals using these built-in variables which just return the values: + - $__from -> datetime(2018-06-05T18:09:58.907Z) + - $__to -> datetime(2018-06-05T20:09:58.907Z) + - $__interval -> 5m +
    +
    +
    diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html new file mode 100644 index 00000000000..46ac8798680 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/config.html @@ -0,0 +1,196 @@ +

    Azure Monitor API Details

    + +
    +
    +
    + Azure Cloud +
    + +
    + +

    Choose an Azure Cloud.

    +
    +
    +
    +
    +
    + Subscription Id + + +

    In the Azure Portal, navigate to Subscriptions -> Choose subscription -> Overview -> Subscription ID.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Tenant Id + + +

    In the Azure Portal, navigate to Azure Active Directory -> Properties -> Directory ID.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Client Id + + +

    In the Azure Portal, navigate to Azure Active Directory -> App Registrations -> Choose your app -> + Application ID.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Client Secret + + +

    To create a new key, log in to Azure Portal, navigate to Azure Active Directory -> App Registrations -> + Choose your + app -> Keys.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    + Client Secret + + reset +
    +
    + +

    Azure Log Analytics API Details

    + +
    + The Azure Log Analytics support is marked as being in a preview development state. This means it is in currently in active development and major changes might be made - depending on feedback from users. +
    + +
    + + +
    + +
    +
    +
    + Subscription Id + + +

    In the Azure Portal, navigate to Subscriptions -> Choose subscription -> Overview -> Subscription ID.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Tenant Id + + +

    In the Azure Portal, navigate to Azure Active Directory -> Properties -> Directory ID.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Client Id + + +

    In the Azure Portal, navigate to Azure Active Directory -> App Registrations -> Choose your app -> + Application ID. +

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    +
    + Client Secret + + +

    To create a new key, log in to Azure Portal, navigate to Azure Active Directory -> App Registrations -> + Choose your + app -> Keys.

    + **Click + here for detailed instructions on setting up an Azure Active Directory (AD) application.** +
    +
    +
    +
    + Client Secret + + reset +
    +
    +
    +
    +
    + Default Workspace +
    + +
    + +

    Choose the default/preferred Workspace for Azure Log Analytics queries.

    +
    +
    +
    +
    +
    +
    +

    + The Azure Log Analytics feature requires Grafana 5.2.0 or greater. Download a new version of + Grafana + here. +

    +
    +
    + +

    Application Insights Details

    + +
    +
    +
    + API Key + + +

    Section 2 of the Quickstart guide shows where to find/create the API Key:

    + **Click here to open the Application + Insights Quickstart.** +
    +
    +
    +
    + API Key + + reset +
    +
    +
    + Application Id + + +

    Section 2 of the Quickstart guide shows where to find the Application ID:

    + **Click here to open the Application + Insights Quickstart.** +
    +
    +
    +
    diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/query.editor.html b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/query.editor.html new file mode 100644 index 00000000000..e50d71ce0d5 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/partials/query.editor.html @@ -0,0 +1,313 @@ + +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    + +
    + +
    +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + +
    + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    +
    +
    +
    + +
    +
    +
    + +
    + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + + + +
    +
    + +
    + +
    +
    +
    + +
    +
    + +
    +
    +
    +
    +
    + +
    +
    {{ctrl.lastQuery}}
    +
    +
    +
    +    Format as Table:
    +    - return any set of columns
    +
    +    Format as Time series:
    +    - Requires a column of type datetime
    +    - returns the first column with a numeric datatype as the value
    +    - (Optional: returns the first column with type string to represent the series name. If no column is found the column name of the value column is used as series name)
    +
    +    Example Time Series Query:
    +
    +    AzureActivity
    +    | where $__timeFilter()
    +    | summarize count() by Category, bin(TimeGenerated, 60min)
    +    | order by TimeGenerated asc
    +
    +    Macros:
    +    - $__timeFilter() -> TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)
    +    - $__timeFilter(datetimeColumn) ->  datetimeColumn  ≥ datetime(2018-06-05T18:09:58.907Z) and datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)
    +    - $__escapeMulti($myTemplateVar) -> $myTemplateVar should be a multi-value template variables that contains illegal characters
    +    - $__contains(aColumn, $myTemplateVar) -> aColumn in ($myTemplateVar)
    +      If using the All option, then check the Include All Option checkbox and in the Custom all value field type in: all. If All is chosen -> 1 == 1
    +
    +    Or build your own conditionals using these built-in variables which just return the values:
    +    - $__from ->  datetime(2018-06-05T18:09:58.907Z)
    +    - $__to -> datetime(2018-06-05T20:09:58.907Z)
    +    - $__interval -> 5m
    +
    +    Examples:
    +    - ¡ where $__timeFilter
    +    - | where TimeGenerated ≥ $__from and TimeGenerated ≤ $__to
    +    - | summarize count() by Category, bin(TimeGenerated, $__interval)
    +      
    +
    + +
    + +
    +
    +
    +
    + + + +
    +
    + +
    + +
    +
    +
    +
    +
    +
    +
    +
    + + + + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    + +
    +
    + +
    + +
    +
    +
    + +
    +
    +
    + +
    +
    +
    + + +
    +
    +
    +
    +
    +
    +
    + + +
    + +
    +
    +
    +
    +
    +
    +
    + +
    +
    +
    + + + +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    + + + +
    +
    +
    +
    +
    +
    +
    +
    +
    {{ctrl.lastQueryError}}
    +
    +
    diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/plugin.json b/public/app/plugins/datasource/grafana-azure-monitor-datasource/plugin.json new file mode 100644 index 00000000000..76a56f2baaa --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/plugin.json @@ -0,0 +1,162 @@ +{ + "type": "datasource", + "name": "Azure Monitor", + "id": "grafana-azure-monitor-datasource", + + "info": { + "description": "Grafana data source for Azure Monitor/Application Insights", + "author": { + "name": "Grafana Labs", + "url": "https://grafana.com" + }, + "keywords": ["azure", "monitor", "Application Insights", "Log Analytics", "App Insights"], + "logos": { + "small": "img/logo.jpg", + "large": "img/logo.jpg" + }, + "links": [ + { "name": "Project site", "url": "https://github.com/grafana/azure-monitor-datasource" }, + { "name": "Apache License", "url": "https://github.com/grafana/azure-monitor-datasource/blob/master/LICENSE" } + ], + "screenshots": [ + { "name": "Azure Contoso Loans", "path": "img/contoso_loans_grafana_dashboard.png" }, + { "name": "Azure Monitor Network", "path": "img/azure_monitor_network.png" }, + { "name": "Azure Monitor CPU", "path": "img/azure_monitor_cpu.png" } + ], + "version": "0.3.0", + "updated": "2018-12-06" + }, + + "routes": [ + { + "path": "azuremonitor", + "method": "GET", + "url": "https://management.azure.com", + "tokenAuth": { + "url": "https://login.microsoftonline.com/{{.JsonData.tenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.clientId}}", + "client_secret": "{{.SecureJsonData.clientSecret}}", + "resource": "https://management.azure.com/" + } + }, + "headers": [{ "name": "x-ms-app", "content": "Grafana" }] + }, + { + "path": "govazuremonitor", + "method": "GET", + "url": "https://management.usgovcloudapi.net", + "tokenAuth": { + "url": "https://login.microsoftonline.us/{{.JsonData.tenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.clientId}}", + "client_secret": "{{.SecureJsonData.clientSecret}}", + "resource": "https://management.usgovcloudapi.net/" + } + }, + "headers": [{ "name": "x-ms-app", "content": "Grafana" }] + }, + { + "path": "germanyazuremonitor", + "method": "GET", + "url": "https://management.microsoftazure.de", + "tokenAuth": { + "url": "https://login.microsoftonline.de/{{.JsonData.tenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.clientId}}", + "client_secret": "{{.SecureJsonData.clientSecret}}", + "resource": "https://management.microsoftazure.de/" + } + }, + "headers": [{ "name": "x-ms-app", "content": "Grafana" }] + }, + { + "path": "chinaazuremonitor", + "method": "GET", + "url": "https://management.chinacloudapi.cn", + "tokenAuth": { + "url": "https://login.chinacloudapi.cn/{{.JsonData.tenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.clientId}}", + "client_secret": "{{.SecureJsonData.clientSecret}}", + "resource": "https://management.chinacloudapi.cn/" + } + }, + "headers": [{ "name": "x-ms-app", "content": "Grafana" }] + }, + { + "path": "appinsights", + "method": "GET", + "url": "https://api.applicationinsights.io", + "headers": [ + { "name": "X-API-Key", "content": "{{.SecureJsonData.appInsightsApiKey}}" }, + { "name": "x-ms-app", "content": "Grafana" } + ] + }, + { + "path": "workspacesloganalytics", + "method": "GET", + "url": "https://management.azure.com", + "tokenAuth": { + "url": "https://login.microsoftonline.com/{{.JsonData.logAnalyticsTenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.logAnalyticsClientId}}", + "client_secret": "{{.SecureJsonData.logAnalyticsClientSecret}}", + "resource": "https://management.azure.com/" + } + }, + "headers": [{ "name": "x-ms-app", "content": "Grafana" }] + }, + { + "path": "loganalyticsazure", + "method": "GET", + "url": "https://api.loganalytics.io/v1/workspaces", + "tokenAuth": { + "url": "https://login.microsoftonline.com/{{.JsonData.logAnalyticsTenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.logAnalyticsClientId}}", + "client_secret": "{{.SecureJsonData.logAnalyticsClientSecret}}", + "resource": "https://api.loganalytics.io" + } + }, + "headers": [ + { "name": "x-ms-app", "content": "Grafana" }, + { "name": "Cache-Control", "content": "public, max-age=60" }, + { "name": "Accept-Encoding", "content": "gzip" } + ] + }, + { + "path": "sameasloganalyticsazure", + "method": "GET", + "url": "https://api.loganalytics.io/v1/workspaces", + "tokenAuth": { + "url": "https://login.microsoftonline.com/{{.JsonData.tenantId}}/oauth2/token", + "params": { + "grant_type": "client_credentials", + "client_id": "{{.JsonData.clientId}}", + "client_secret": "{{.SecureJsonData.clientSecret}}", + "resource": "https://api.loganalytics.io" + } + }, + "headers": [ + { "name": "x-ms-app", "content": "Grafana" }, + { "name": "Cache-Control", "content": "public, max-age=60" }, + { "name": "Accept-Encoding", "content": "gzip" } + ] + } + ], + + "dependencies": { + "grafanaVersion": "5.2.x", + "plugins": [] + }, + + "metrics": true, + "annotations": true +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.test.ts new file mode 100644 index 00000000000..d34c0f71571 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.test.ts @@ -0,0 +1,261 @@ +jest.mock('./css/query_editor.css', () => { + return {}; +}); + +jest.mock('./monaco/kusto_monaco_editor'); + +import { AzureMonitorQueryCtrl } from './query_ctrl'; +import Q from 'q'; +import { TemplateSrv } from 'app/features/templating/template_srv'; + +describe('AzureMonitorQueryCtrl', () => { + let queryCtrl: any; + + beforeEach(() => { + AzureMonitorQueryCtrl.prototype.panelCtrl = { + events: { on: () => {} }, + panel: { scopedVars: [], targets: [] }, + }; + AzureMonitorQueryCtrl.prototype.target = {} as any; + + queryCtrl = new AzureMonitorQueryCtrl({}, {}, new TemplateSrv()); + queryCtrl.datasource = { $q: Q, appInsightsDatasource: { isConfigured: () => false } }; + }); + + describe('init query_ctrl variables', () => { + it('should set default query type to Azure Monitor', () => { + expect(queryCtrl.target.queryType).toBe('Azure Monitor'); + }); + + it('should set default App Insights editor to be builder', () => { + expect(queryCtrl.target.appInsights.rawQuery).toBe(false); + }); + + it('should set query parts to select', () => { + expect(queryCtrl.target.azureMonitor.resourceGroup).toBe('select'); + expect(queryCtrl.target.azureMonitor.metricDefinition).toBe('select'); + expect(queryCtrl.target.azureMonitor.resourceName).toBe('select'); + expect(queryCtrl.target.azureMonitor.metricName).toBe('select'); + expect(queryCtrl.target.appInsights.groupBy).toBe('none'); + }); + }); + + describe('when the query type is Azure Monitor', () => { + describe('and getOptions for the Resource Group dropdown is called', () => { + const response = [{ text: 'nodeapp', value: 'nodeapp' }, { text: 'otherapp', value: 'otherapp' }]; + + beforeEach(() => { + queryCtrl.datasource.getResourceGroups = () => { + return queryCtrl.datasource.$q.when(response); + }; + queryCtrl.datasource.azureMonitorDatasource = { + isConfigured: () => { + return true; + }, + }; + }); + + it('should return a list of Resource Groups', () => { + return queryCtrl.getResourceGroups('').then(result => { + expect(result[0].text).toBe('nodeapp'); + }); + }); + }); + + describe('when getOptions for the Metric Definition dropdown is called', () => { + describe('and resource group has a value', () => { + const response = [ + { text: 'Microsoft.Compute/virtualMachines', value: 'Microsoft.Compute/virtualMachines' }, + { text: 'Microsoft.Network/publicIPAddresses', value: 'Microsoft.Network/publicIPAddresses' }, + ]; + + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'test'; + queryCtrl.datasource.getMetricDefinitions = function(query) { + expect(query).toBe('test'); + return this.$q.when(response); + }; + }); + + it('should return a list of Metric Definitions', () => { + return queryCtrl.getMetricDefinitions('').then(result => { + expect(result[0].text).toBe('Microsoft.Compute/virtualMachines'); + expect(result[1].text).toBe('Microsoft.Network/publicIPAddresses'); + }); + }); + }); + + describe('and resource group has no value', () => { + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'select'; + }); + + it('should return without making a call to datasource', () => { + expect(queryCtrl.getMetricDefinitions('')).toBe(undefined); + }); + }); + }); + + describe('when getOptions for the ResourceNames dropdown is called', () => { + describe('and resourceGroup and metricDefinition have values', () => { + const response = [{ text: 'test1', value: 'test1' }, { text: 'test2', value: 'test2' }]; + + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'test'; + queryCtrl.target.azureMonitor.metricDefinition = 'Microsoft.Compute/virtualMachines'; + queryCtrl.datasource.getResourceNames = function(resourceGroup, metricDefinition) { + expect(resourceGroup).toBe('test'); + expect(metricDefinition).toBe('Microsoft.Compute/virtualMachines'); + return this.$q.when(response); + }; + }); + + it('should return a list of Resource Names', () => { + return queryCtrl.getResourceNames('').then(result => { + expect(result[0].text).toBe('test1'); + expect(result[1].text).toBe('test2'); + }); + }); + }); + + describe('and resourceGroup and metricDefinition do not have values', () => { + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'select'; + queryCtrl.target.azureMonitor.metricDefinition = 'select'; + }); + + it('should return without making a call to datasource', () => { + expect(queryCtrl.getResourceNames('')).toBe(undefined); + }); + }); + }); + + describe('when getOptions for the Metric Names dropdown is called', () => { + describe('and resourceGroup, metricDefinition and resourceName have values', () => { + const response = [{ text: 'metric1', value: 'metric1' }, { text: 'metric2', value: 'metric2' }]; + + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'test'; + queryCtrl.target.azureMonitor.metricDefinition = 'Microsoft.Compute/virtualMachines'; + queryCtrl.target.azureMonitor.resourceName = 'test'; + queryCtrl.datasource.getMetricNames = function(resourceGroup, metricDefinition, resourceName) { + expect(resourceGroup).toBe('test'); + expect(metricDefinition).toBe('Microsoft.Compute/virtualMachines'); + expect(resourceName).toBe('test'); + return this.$q.when(response); + }; + }); + + it('should return a list of Metric Names', () => { + return queryCtrl.getMetricNames('').then(result => { + expect(result[0].text).toBe('metric1'); + expect(result[1].text).toBe('metric2'); + }); + }); + }); + + describe('and resourceGroup, metricDefinition and resourceName do not have values', () => { + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'select'; + queryCtrl.target.azureMonitor.metricDefinition = 'select'; + queryCtrl.target.azureMonitor.resourceName = 'select'; + }); + + it('should return without making a call to datasource', () => { + expect(queryCtrl.getMetricNames('')).toBe(undefined); + }); + }); + }); + + describe('when onMetricNameChange is triggered for the Metric Names dropdown', () => { + const response = { + primaryAggType: 'Average', + supportAggOptions: ['Average', 'Total'], + supportedTimeGrains: ['PT1M', 'P1D'], + dimensions: [], + }; + + beforeEach(() => { + queryCtrl.target.azureMonitor.resourceGroup = 'test'; + queryCtrl.target.azureMonitor.metricDefinition = 'Microsoft.Compute/virtualMachines'; + queryCtrl.target.azureMonitor.resourceName = 'test'; + queryCtrl.target.azureMonitor.metricName = 'Percentage CPU'; + queryCtrl.datasource.getMetricMetadata = function(resourceGroup, metricDefinition, resourceName, metricName) { + expect(resourceGroup).toBe('test'); + expect(metricDefinition).toBe('Microsoft.Compute/virtualMachines'); + expect(resourceName).toBe('test'); + expect(metricName).toBe('Percentage CPU'); + return this.$q.when(response); + }; + }); + + it('should set the options and default selected value for the Aggregations dropdown', () => { + queryCtrl.onMetricNameChange().then(() => { + expect(queryCtrl.target.azureMonitor.aggregation).toBe('Average'); + expect(queryCtrl.target.azureMonitor.aggOptions).toBe(['Average', 'Total']); + expect(queryCtrl.target.azureMonitor.timeGrains).toBe(['PT1M', 'P1D']); + }); + }); + }); + }); + + describe('and query type is Application Insights', () => { + describe('when getOptions for the Metric Names dropdown is called', () => { + const response = [{ text: 'metric1', value: 'metric1' }, { text: 'metric2', value: 'metric2' }]; + + beforeEach(() => { + queryCtrl.datasource.appInsightsDatasource.isConfigured = () => true; + queryCtrl.datasource.getAppInsightsMetricNames = () => { + return queryCtrl.datasource.$q.when(response); + }; + }); + + it('should return a list of Metric Names', () => { + return queryCtrl.getAppInsightsMetricNames().then(result => { + expect(result[0].text).toBe('metric1'); + expect(result[1].text).toBe('metric2'); + }); + }); + }); + + describe('when getOptions for the GroupBy segments dropdown is called', () => { + beforeEach(() => { + queryCtrl.target.appInsights.groupByOptions = ['opt1', 'opt2']; + }); + + it('should return a list of GroupBy segments', () => { + const result = queryCtrl.getAppInsightsGroupBySegments(''); + expect(result[0].text).toBe('opt1'); + expect(result[0].value).toBe('opt1'); + expect(result[1].text).toBe('opt2'); + expect(result[1].value).toBe('opt2'); + }); + }); + + describe('when onAppInsightsMetricNameChange is triggered for the Metric Names dropdown', () => { + const response = { + primaryAggType: 'avg', + supportedAggTypes: ['avg', 'sum'], + supportedGroupBy: ['client/os', 'client/city'], + }; + + beforeEach(() => { + queryCtrl.target.appInsights.metricName = 'requests/failed'; + queryCtrl.datasource.getAppInsightsMetricMetadata = function(metricName) { + expect(metricName).toBe('requests/failed'); + return this.$q.when(response); + }; + }); + + it('should set the options and default selected value for the Aggregations dropdown', () => { + return queryCtrl.onAppInsightsMetricNameChange().then(() => { + expect(queryCtrl.target.appInsights.aggregation).toBe('avg'); + expect(queryCtrl.target.appInsights.aggOptions).toContain('avg'); + expect(queryCtrl.target.appInsights.aggOptions).toContain('sum'); + expect(queryCtrl.target.appInsights.groupByOptions).toContain('client/os'); + expect(queryCtrl.target.appInsights.groupByOptions).toContain('client/city'); + }); + }); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.ts new file mode 100644 index 00000000000..65d3b473a3b --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_ctrl.ts @@ -0,0 +1,391 @@ +import _ from 'lodash'; +import { QueryCtrl } from 'app/plugins/sdk'; +// import './css/query_editor.css'; +import TimegrainConverter from './time_grain_converter'; +import './monaco/kusto_monaco_editor'; + +export interface ResultFormat { + text: string; + value: string; +} + +export class AzureMonitorQueryCtrl extends QueryCtrl { + static templateUrl = 'partials/query.editor.html'; + + defaultDropdownValue = 'select'; + + target: { + refId: string; + queryType: string; + azureMonitor: { + resourceGroup: string; + resourceName: string; + metricDefinition: string; + metricName: string; + dimensionFilter: string; + timeGrain: string; + timeGrainUnit: string; + timeGrains: any[]; + dimensions: any[]; + dimension: any; + aggregation: string; + aggOptions: string[]; + }; + azureLogAnalytics: { + query: string; + resultFormat: string; + workspace: string; + }; + appInsights: { + metricName: string; + rawQuery: boolean; + rawQueryString: string; + groupBy: string; + timeGrainType: string; + xaxis: string; + yaxis: string; + spliton: string; + aggOptions: string[]; + aggregation: string; + groupByOptions: string[]; + timeGrainUnit: string; + timeGrain: string; + }; + }; + + defaults = { + queryType: 'Azure Monitor', + azureMonitor: { + resourceGroup: this.defaultDropdownValue, + metricDefinition: this.defaultDropdownValue, + resourceName: this.defaultDropdownValue, + metricName: this.defaultDropdownValue, + dimensionFilter: '*', + timeGrain: 'auto', + }, + azureLogAnalytics: { + query: [ + '//change this example to create your own time series query', + ' ' + + '//the table to query (e.g. Usage, Heartbeat, Perf)', + '| where $__timeFilter(TimeGenerated) ' + + '//this is a macro used to show the full chart’s time range, choose the datetime column here', + '| summarize count() by , bin(TimeGenerated, $__interval) ' + + '//change “group by column” to a column in your table, such as “Computer”. ' + + 'The $__interval macro is used to auto-select the time grain. Can also use 1h, 5m etc.', + '| order by TimeGenerated asc', + ].join('\n'), + resultFormat: 'time_series', + workspace: + this.datasource && this.datasource.azureLogAnalyticsDatasource + ? this.datasource.azureLogAnalyticsDatasource.defaultOrFirstWorkspace + : '', + }, + appInsights: { + metricName: this.defaultDropdownValue, + rawQuery: false, + rawQueryString: '', + groupBy: 'none', + timeGrainType: 'auto', + xaxis: 'timestamp', + yaxis: '', + spliton: '', + }, + }; + + resultFormats: ResultFormat[]; + workspaces: any[]; + showHelp: boolean; + showLastQuery: boolean; + lastQuery: string; + lastQueryError?: string; + + /** @ngInject */ + constructor($scope, $injector, private templateSrv) { + super($scope, $injector); + + _.defaultsDeep(this.target, this.defaults); + + this.migrateTimeGrains(); + + this.panelCtrl.events.on('data-received', this.onDataReceived.bind(this), $scope); + this.panelCtrl.events.on('data-error', this.onDataError.bind(this), $scope); + this.resultFormats = [{ text: 'Time series', value: 'time_series' }, { text: 'Table', value: 'table' }]; + if (this.target.queryType === 'Azure Log Analytics') { + this.getWorkspaces(); + } + } + + onDataReceived(dataList) { + this.lastQueryError = undefined; + this.lastQuery = ''; + + const anySeriesFromQuery: any = _.find(dataList, { refId: this.target.refId }); + if (anySeriesFromQuery) { + this.lastQuery = anySeriesFromQuery.query; + } + } + + onDataError(err) { + this.handleQueryCtrlError(err); + } + + handleQueryCtrlError(err) { + if (err.query && err.query.refId && err.query.refId !== this.target.refId) { + return; + } + + if (err.error && err.error.data && err.error.data.error && err.error.data.error.innererror) { + if (err.error.data.error.innererror.innererror) { + this.lastQueryError = err.error.data.error.innererror.innererror.message; + } else { + this.lastQueryError = err.error.data.error.innererror.message; + } + } else if (err.error && err.error.data && err.error.data.error) { + this.lastQueryError = err.error.data.error.message; + } else if (err.error && err.error.data) { + this.lastQueryError = err.error.data.message; + } else if (err.data && err.data.error) { + this.lastQueryError = err.data.error.message; + } else if (err.data && err.data.message) { + this.lastQueryError = err.data.message; + } else { + this.lastQueryError = err; + } + } + + migrateTimeGrains() { + if (this.target.azureMonitor.timeGrainUnit) { + if (this.target.azureMonitor.timeGrain !== 'auto') { + this.target.azureMonitor.timeGrain = TimegrainConverter.createISO8601Duration( + this.target.azureMonitor.timeGrain, + this.target.azureMonitor.timeGrainUnit + ); + } + + delete this.target.azureMonitor.timeGrainUnit; + this.onMetricNameChange(); + } + } + + replace(variable: string) { + return this.templateSrv.replace(variable, this.panelCtrl.panel.scopedVars); + } + + onQueryTypeChange() { + if (this.target.queryType === 'Azure Log Analytics') { + return this.getWorkspaces(); + } + } + + /* Azure Monitor Section */ + getResourceGroups(query) { + if (this.target.queryType !== 'Azure Monitor' || !this.datasource.azureMonitorDatasource.isConfigured()) { + return; + } + + return this.datasource.getResourceGroups().catch(this.handleQueryCtrlError.bind(this)); + } + + getMetricDefinitions(query) { + if ( + this.target.queryType !== 'Azure Monitor' || + !this.target.azureMonitor.resourceGroup || + this.target.azureMonitor.resourceGroup === this.defaultDropdownValue + ) { + return; + } + return this.datasource + .getMetricDefinitions(this.replace(this.target.azureMonitor.resourceGroup)) + .catch(this.handleQueryCtrlError.bind(this)); + } + + getResourceNames(query) { + if ( + this.target.queryType !== 'Azure Monitor' || + !this.target.azureMonitor.resourceGroup || + this.target.azureMonitor.resourceGroup === this.defaultDropdownValue || + !this.target.azureMonitor.metricDefinition || + this.target.azureMonitor.metricDefinition === this.defaultDropdownValue + ) { + return; + } + + return this.datasource + .getResourceNames( + this.replace(this.target.azureMonitor.resourceGroup), + this.replace(this.target.azureMonitor.metricDefinition) + ) + .catch(this.handleQueryCtrlError.bind(this)); + } + + getMetricNames(query) { + if ( + this.target.queryType !== 'Azure Monitor' || + !this.target.azureMonitor.resourceGroup || + this.target.azureMonitor.resourceGroup === this.defaultDropdownValue || + !this.target.azureMonitor.metricDefinition || + this.target.azureMonitor.metricDefinition === this.defaultDropdownValue || + !this.target.azureMonitor.resourceName || + this.target.azureMonitor.resourceName === this.defaultDropdownValue + ) { + return; + } + + return this.datasource + .getMetricNames( + this.replace(this.target.azureMonitor.resourceGroup), + this.replace(this.target.azureMonitor.metricDefinition), + this.replace(this.target.azureMonitor.resourceName) + ) + .catch(this.handleQueryCtrlError.bind(this)); + } + + onResourceGroupChange() { + this.target.azureMonitor.metricDefinition = this.defaultDropdownValue; + this.target.azureMonitor.resourceName = this.defaultDropdownValue; + this.target.azureMonitor.metricName = this.defaultDropdownValue; + this.target.azureMonitor.dimensions = []; + this.target.azureMonitor.dimension = ''; + } + + onMetricDefinitionChange() { + this.target.azureMonitor.resourceName = this.defaultDropdownValue; + this.target.azureMonitor.metricName = this.defaultDropdownValue; + this.target.azureMonitor.dimensions = []; + this.target.azureMonitor.dimension = ''; + } + + onResourceNameChange() { + this.target.azureMonitor.metricName = this.defaultDropdownValue; + this.target.azureMonitor.dimensions = []; + this.target.azureMonitor.dimension = ''; + } + + onMetricNameChange() { + if (!this.target.azureMonitor.metricName || this.target.azureMonitor.metricName === this.defaultDropdownValue) { + return; + } + + return this.datasource + .getMetricMetadata( + this.replace(this.target.azureMonitor.resourceGroup), + this.replace(this.target.azureMonitor.metricDefinition), + this.replace(this.target.azureMonitor.resourceName), + this.replace(this.target.azureMonitor.metricName) + ) + .then(metadata => { + this.target.azureMonitor.aggOptions = metadata.supportedAggTypes || [metadata.primaryAggType]; + this.target.azureMonitor.aggregation = metadata.primaryAggType; + this.target.azureMonitor.timeGrains = [{ text: 'auto', value: 'auto' }].concat(metadata.supportedTimeGrains); + + this.target.azureMonitor.dimensions = metadata.dimensions; + if (metadata.dimensions.length > 0) { + this.target.azureMonitor.dimension = metadata.dimensions[0].value; + } + return this.refresh(); + }) + .catch(this.handleQueryCtrlError.bind(this)); + } + + getAutoInterval() { + if (this.target.azureMonitor.timeGrain === 'auto') { + return TimegrainConverter.findClosestTimeGrain( + this.templateSrv.builtIns.__interval.value, + _.map(this.target.azureMonitor.timeGrains, o => + TimegrainConverter.createKbnUnitFromISO8601Duration(o.value) + ) || ['1m', '5m', '15m', '30m', '1h', '6h', '12h', '1d'] + ); + } + + return ''; + } + + /* Azure Log Analytics */ + + getWorkspaces() { + return this.datasource.azureLogAnalyticsDatasource + .getWorkspaces() + .then(list => { + this.workspaces = list; + if (list.length > 0 && !this.target.azureLogAnalytics.workspace) { + this.target.azureLogAnalytics.workspace = list[0].value; + } + }) + .catch(this.handleQueryCtrlError.bind(this)); + } + + getAzureLogAnalyticsSchema() { + return this.getWorkspaces() + .then(() => { + return this.datasource.azureLogAnalyticsDatasource.getSchema(this.target.azureLogAnalytics.workspace); + }) + .catch(this.handleQueryCtrlError.bind(this)); + } + + /* Application Insights Section */ + + getAppInsightsAutoInterval() { + const interval = this.templateSrv.builtIns.__interval.value; + if (interval[interval.length - 1] === 's') { + return '1m'; + } + return interval; + } + getAppInsightsMetricNames() { + if (!this.datasource.appInsightsDatasource.isConfigured()) { + return; + } + + return this.datasource.getAppInsightsMetricNames().catch(this.handleQueryCtrlError.bind(this)); + } + + getAppInsightsColumns() { + return this.datasource.getAppInsightsColumns(this.target.refId); + } + + onAppInsightsColumnChange() { + return this.refresh(); + } + + onAppInsightsMetricNameChange() { + if (!this.target.appInsights.metricName || this.target.appInsights.metricName === this.defaultDropdownValue) { + return; + } + + return this.datasource + .getAppInsightsMetricMetadata(this.replace(this.target.appInsights.metricName)) + .then(aggData => { + this.target.appInsights.aggOptions = aggData.supportedAggTypes; + this.target.appInsights.groupByOptions = aggData.supportedGroupBy; + this.target.appInsights.aggregation = aggData.primaryAggType; + return this.refresh(); + }) + .catch(this.handleQueryCtrlError.bind(this)); + } + + getAppInsightsGroupBySegments(query) { + return _.map(this.target.appInsights.groupByOptions, option => { + return { text: option, value: option }; + }); + } + + resetAppInsightsGroupBy() { + this.target.appInsights.groupBy = 'none'; + this.refresh(); + } + + updateTimeGrainType() { + if (this.target.appInsights.timeGrainType === 'specific') { + this.target.appInsights.timeGrain = '1'; + this.target.appInsights.timeGrainUnit = 'minute'; + } else { + this.target.appInsights.timeGrain = ''; + } + this.refresh(); + } + + toggleEditorMode() { + this.target.appInsights.rawQuery = !this.target.appInsights.rawQuery; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_help.md b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_help.md new file mode 100644 index 00000000000..428430fbdac --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/query_help.md @@ -0,0 +1,34 @@ +Format the legend keys any way you want by using alias patterns. + +- Example for Azure Monitor: `dimension: {{dimensionvalue}}` +- Example for Application Insights: `server: {{groupbyvalue}}` + +#### Alias Patterns for Application Insights + +- {{groupbyvalue}} = replaced with the value of the group by +- {{groupbyname}} = replaced with the name/label of the group by +- {{metric}} = replaced with metric name (e.g. requests/count) + +#### Alias Patterns for Azure Monitor + +- {{resourcegroup}} = replaced with the value of the Resource Group +- {{namespace}} = replaced with the value of the Namespace (e.g. Microsoft.Compute/virtualMachines) +- {{resourcename}} = replaced with the value of the Resource Name +- {{metric}} = replaced with metric name (e.g. Percentage CPU) +- {{dimensionname}} = replaced with dimension key/label (e.g. blobtype) +- {{dimensionvalue}} = replaced with dimension value (e.g. BlockBlob) + +#### Filter Expressions for Application Insights + +The filter field takes an OData filter expression. + +Examples: + +- `client/city eq 'Boydton'` +- `client/city ne 'Boydton'` +- `client/city ne 'Boydton' and client/city ne 'Dublin'` +- `client/city eq 'Boydton' or client/city eq 'Dublin'` + +#### Writing Queries for Template Variables + +See the [docs](https://github.com/grafana/azure-monitor-datasource#templating-with-variables) for details and examples. diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.test.ts new file mode 100644 index 00000000000..f5e1eefb1cd --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.test.ts @@ -0,0 +1,23 @@ +import TimeGrainConverter from './time_grain_converter'; + +describe('TimeGrainConverter', () => { + describe('with duration of PT1H', () => { + it('should convert it to text', () => { + expect(TimeGrainConverter.createTimeGrainFromISO8601Duration('PT1H')).toEqual('1 hour'); + }); + + it('should convert it to kbn', () => { + expect(TimeGrainConverter.createKbnUnitFromISO8601Duration('PT1H')).toEqual('1h'); + }); + }); + + describe('with duration of P1D', () => { + it('should convert it to text', () => { + expect(TimeGrainConverter.createTimeGrainFromISO8601Duration('P1D')).toEqual('1 day'); + }); + + it('should convert it to kbn', () => { + expect(TimeGrainConverter.createKbnUnitFromISO8601Duration('P1D')).toEqual('1d'); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.ts new file mode 100644 index 00000000000..9604fe33e57 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/time_grain_converter.ts @@ -0,0 +1,122 @@ +import _ from 'lodash'; +import kbn from 'app/core/utils/kbn'; + +export default class TimeGrainConverter { + static createISO8601Duration(timeGrain, timeGrainUnit) { + const timeIntervals = ['hour', 'minute', 'h', 'm']; + if (_.includes(timeIntervals, timeGrainUnit)) { + return `PT${timeGrain}${timeGrainUnit[0].toUpperCase()}`; + } + + return `P${timeGrain}${timeGrainUnit[0].toUpperCase()}`; + } + + static createISO8601DurationFromInterval(interval: string) { + const timeGrain = +interval.slice(0, interval.length - 1); + const unit = interval[interval.length - 1]; + + if (interval.indexOf('ms') > -1) { + return TimeGrainConverter.createISO8601Duration(1, 'm'); + } + + if (interval[interval.length - 1] === 's') { + let toMinutes = (timeGrain * 60) % 60; + + if (toMinutes < 1) { + toMinutes = 1; + } + + return TimeGrainConverter.createISO8601Duration(toMinutes, 'm'); + } + + return TimeGrainConverter.createISO8601Duration(timeGrain, unit); + } + + static findClosestTimeGrain(interval, allowedTimeGrains) { + const timeGrains = _.filter(allowedTimeGrains, o => o !== 'auto'); + + let closest = timeGrains[0]; + const intervalMs = kbn.interval_to_ms(interval); + + for (let i = 0; i < timeGrains.length; i++) { + // abs (num - val) < abs (num - curr): + if (intervalMs > kbn.interval_to_ms(timeGrains[i])) { + if (i + 1 < timeGrains.length) { + closest = timeGrains[i + 1]; + } else { + closest = timeGrains[i]; + } + } + } + + return closest; + } + + static createTimeGrainFromISO8601Duration(duration: string) { + let offset = 1; + if (duration.substring(0, 2) === 'PT') { + offset = 2; + } + + const value = duration.substring(offset, duration.length - 1); + const unit = duration.substring(duration.length - 1); + + return value + ' ' + TimeGrainConverter.timeUnitToText(+value, unit); + } + + static timeUnitToText(value: number, unit: string) { + let text = ''; + + if (unit === 'S') { + text = 'second'; + } + if (unit === 'M') { + text = 'minute'; + } + if (unit === 'H') { + text = 'hour'; + } + if (unit === 'D') { + text = 'day'; + } + + if (value > 1) { + return text + 's'; + } + + return text; + } + + static createKbnUnitFromISO8601Duration(duration: string) { + if (duration === 'auto') { + return 'auto'; + } + + let offset = 1; + if (duration.substring(0, 2) === 'PT') { + offset = 2; + } + + const value = duration.substring(offset, duration.length - 1); + const unit = duration.substring(duration.length - 1); + + return value + TimeGrainConverter.timeUnitToKbn(+value, unit); + } + + static timeUnitToKbn(value: number, unit: string) { + if (unit === 'S') { + return 's'; + } + if (unit === 'M') { + return 'm'; + } + if (unit === 'H') { + return 'h'; + } + if (unit === 'D') { + return 'd'; + } + + return ''; + } +} diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.test.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.test.ts new file mode 100644 index 00000000000..17a6ce9bb0b --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.test.ts @@ -0,0 +1,53 @@ +import { SemVersion, isVersionGtOrEq } from './version'; + +describe('SemVersion', () => { + let version = '1.0.0-alpha.1'; + + describe('parsing', () => { + it('should parse version properly', () => { + const semver = new SemVersion(version); + expect(semver.major).toBe(1); + expect(semver.minor).toBe(0); + expect(semver.patch).toBe(0); + expect(semver.meta).toBe('alpha.1'); + }); + }); + + describe('comparing', () => { + beforeEach(() => { + version = '3.4.5'; + }); + + it('should detect greater version properly', () => { + const semver = new SemVersion(version); + const cases = [ + { value: '3.4.5', expected: true }, + { value: '3.4.4', expected: true }, + { value: '3.4.6', expected: false }, + { value: '4', expected: false }, + { value: '3.5', expected: false }, + ]; + cases.forEach(testCase => { + expect(semver.isGtOrEq(testCase.value)).toBe(testCase.expected); + }); + }); + }); + + describe('isVersionGtOrEq', () => { + it('should compare versions properly (a >= b)', () => { + const cases = [ + { values: ['3.4.5', '3.4.5'], expected: true }, + { values: ['3.4.5', '3.4.4'], expected: true }, + { values: ['3.4.5', '3.4.6'], expected: false }, + { values: ['3.4', '3.4.0'], expected: true }, + { values: ['3', '3.0.0'], expected: true }, + { values: ['3.1.1-beta1', '3.1'], expected: true }, + { values: ['3.4.5', '4'], expected: false }, + { values: ['3.4.5', '3.5'], expected: false }, + ]; + cases.forEach(testCase => { + expect(isVersionGtOrEq(testCase.values[0], testCase.values[1])).toBe(testCase.expected); + }); + }); + }); +}); diff --git a/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.ts b/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.ts new file mode 100644 index 00000000000..1131e1d2ab8 --- /dev/null +++ b/public/app/plugins/datasource/grafana-azure-monitor-datasource/version.ts @@ -0,0 +1,34 @@ +import _ from 'lodash'; + +const versionPattern = /^(\d+)(?:\.(\d+))?(?:\.(\d+))?(?:-([0-9A-Za-z\.]+))?/; + +export class SemVersion { + major: number; + minor: number; + patch: number; + meta: string; + + constructor(version: string) { + const match = versionPattern.exec(version); + if (match) { + this.major = Number(match[1]); + this.minor = Number(match[2] || 0); + this.patch = Number(match[3] || 0); + this.meta = match[4]; + } + } + + isGtOrEq(version: string): boolean { + const compared = new SemVersion(version); + return !(this.major < compared.major || this.minor < compared.minor || this.patch < compared.patch); + } + + isValid(): boolean { + return _.isNumber(this.major); + } +} + +export function isVersionGtOrEq(a: string, b: string): boolean { + const aSemver = new SemVersion(a); + return aSemver.isGtOrEq(b); +} diff --git a/yarn.lock b/yarn.lock index 62a059cffec..e2dc19abfcb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8463,6 +8463,11 @@ moment@^2.22.2: version "2.23.0" resolved "https://registry.yarnpkg.com/moment/-/moment-2.23.0.tgz#759ea491ac97d54bac5ad776996e2a58cc1bc225" +monaco-editor@^0.15.6: + version "0.15.6" + resolved "https://registry.yarnpkg.com/monaco-editor/-/monaco-editor-0.15.6.tgz#d63b3b06f86f803464f003b252627c3eb4a09483" + integrity sha512-JoU9V9k6KqT9R9Tiw1RTU8ohZ+Xnf9DMg6Ktqqw5hILumwmq7xqa/KLXw513uTUsWbhtnHoSJYYR++u3pkyxJg== + moo@^0.4.3: version "0.4.3" resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e"