/*! Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one or more contributor license agreements. * Licensed under the Elastic License 2.0; you may not use this file except in compliance with the Elastic License 2.0. */ (window.ml_bundle_jsonpfunction=window.ml_bundle_jsonpfunction||[]).push([[3],{113:function(e,t,n){"use strict";n.d(t,"j",(function(){return u})),n.d(t,"g",(function(){return f})),n.d(t,"h",(function(){return g})),n.d(t,"f",(function(){return b})),n.d(t,"k",(function(){return _})),n.d(t,"n",(function(){return y})),n.d(t,"e",(function(){return T})),n.d(t,"d",(function(){return m})),n.d(t,"l",(function(){return E})),n.d(t,"m",(function(){return v})),n.d(t,"a",(function(){return h})),n.d(t,"b",(function(){return O})),n.d(t,"i",(function(){return N})),n.d(t,"c",(function(){return C}));var a=n(6),r=n(114),i=n(98),o=n(118),s=n(1),l=n(112),c=n(105);const d=e=>t=>{let n=o.a.getFieldById(t);return null===n&&(t===i.e?n=i.H:e.length&&(n=e.find((e=>e.id===t))||null)),n};function u(e,t,n,a=!1){const r=a?function(e,t){return p(e.analysis_config.detectors)}(e):function(e,t){let n=e.analysis_config.detectors;const a=_(e,t);if(void 0!==t.aggregations&&e.analysis_config.detectors[0].function===i.n.NON_ZERO_COUNT&&!1===a){var r,o,s,l,c;const e=null==t||null===(r=t.aggregations)||void 0===r||null===(o=r.buckets)||void 0===o||null===(s=o.aggregations)||void 0===s||null===(l=s.dc_region)||void 0===l||null===(c=l.cardinality)||void 0===c?void 0:c.field;void 0!==e&&(n=[{function:i.n.DISTINCT_COUNT,field_name:e}])}else n=p(n),n=n.map((e=>{switch(e.function){case i.n.NON_ZERO_COUNT:return{...e,field_name:i.c,function:i.n.COUNT};case i.n.HIGH_NON_ZERO_COUNT:return{...e,field_name:i.c,function:i.n.HIGH_COUNT};case i.n.LOW_NON_ZERO_COUNT:return{...e,field_name:i.c,function:i.n.LOW_COUNT};case i.n.NON_NULL_SUM:return{...e,function:i.n.SUM};case i.n.HIGH_NON_NULL_SUM:return{...e,function:i.n.HIGH_SUM};case i.n.LOW_NON_NULL_SUM:return{...e,function:i.n.LOW_SUM};default:return e}}));return n}(e,t),s=d(n);return r.map((e=>{var t,n,a;let r=null,i=null,l=null,c=null;return void 0!==e.field_name&&(r=s(e.field_name)),void 0!==e.by_field_name&&(i=s(e.by_field_name)),void 0!==e.over_field_name&&(l=s(e.over_field_name)),void 0!==e.partition_field_name&&(c=s(e.partition_field_name)),{agg:o.a.getAggById(e.function),field:r,byField:i,overField:l,partitionField:c,excludeFrequent:null!==(t=e.exclude_frequent)&&void 0!==t?t:null,description:null!==(n=e.detector_description)&&void 0!==n?n:null,useNull:null!==(a=e.use_null)&&void 0!==a?a:null}}))}function f(e,t){return[...e.filter((e=>e.id!==i.c)).map((e=>({label:e.name,field:e}))),...t.filter((t=>!1===e.some((e=>e.id===t.id)))).map((e=>({label:e.id,field:e})))].sort(((e,t)=>e.label.localeCompare(t.label)))}function g(e){return null===e?[]:[{label:i.e}]}function b(e){return e?[{label:i.a}]:[{label:i.u}]}function p(e){return e.map((e=>{switch(e.function){case i.n.COUNT:case i.n.HIGH_COUNT:case i.n.LOW_COUNT:case i.n.NON_ZERO_COUNT:case i.n.HIGH_NON_ZERO_COUNT:case i.n.LOW_NON_ZERO_COUNT:case i.n.RARE:case i.n.FREQ_RARE:case i.n.TIME_OF_DAY:case i.n.TIME_OF_WEEK:return{...e,field_name:i.c};default:return e}}))}function _(e,t){var n,a,r,o,s;const l=e.analysis_config.detectors;if(void 0===(null==t||null===(n=t.aggregations)||void 0===n||null===(a=n.buckets)||void 0===a||null===(r=a.aggregations)||void 0===r||null===(o=r.dc_region)||void 0===o||null===(s=o.cardinality)||void 0===s?void 0:s.field))for(const e of l)if(i.t.includes(e.function))return!0;return!1}function y(e,t=!1,n=!1,a=!1){var r;l.a.tempJobCloningObjects.job=e.jobConfig,l.a.tempJobCloningObjects.datafeed=e.datafeedConfig,l.a.tempJobCloningObjects.createdBy=null!==(r=e.createdBy)&&void 0!==r?r:void 0,l.a.tempJobCloningObjects.skipTimeRangeStep=t,!0===n&&!1===a?(l.a.tempJobCloningObjects.start=e.start,l.a.tempJobCloningObjects.end=e.end):!0===a&&(l.a.tempJobCloningObjects.autoSetTimeRange=!0),l.a.tempJobCloningObjects.calendars=e.calendars}function T(e,t){e.createdBy=c.a.MULTI_METRIC,e.modelPlot=!1,y(e,!0,!0),t(s.b.ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_MULTI_METRIC,!0)}function m(e,t){e.createdBy=null,y(e,!0,!0),t(s.b.ANOMALY_DETECTION_CREATE_JOB_CONVERT_TO_ADVANCED,!0)}function E(e,t){e.createdBy=null,y(e,!0,!1),t(s.b.ANOMALY_DETECTION_CREATE_JOB)}function v(e,t){e.jobId="",y(e,!0,!0),t(s.b.ANOMALY_DETECTION_CREATE_JOB)}function h(e,t){null!==e&&y(e,!1,!1),t("/jobs")}function O(e){return!1===e.some((e=>null===e.agg.dslName))}function N(e){switch(e.type){case c.f.SINGLE_METRIC:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.singleMetric",{defaultMessage:"Single metric"});case c.f.MULTI_METRIC:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.multiMetric",{defaultMessage:"Multi-metric"});case c.f.POPULATION:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.population",{defaultMessage:"Population"});case c.f.ADVANCED:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.advanced",{defaultMessage:"Advanced"});case c.f.CATEGORIZATION:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.categorization",{defaultMessage:"Categorization"});case c.f.RARE:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.rare",{defaultMessage:"Rare"});case c.f.GEO:return a.i18n.translate("xpack.ml.newJob.wizard.jobCreatorTitle.geo",{defaultMessage:"Geo"});default:return""}}function C(e,t){for(const n in e)null!==e[n]&&"object"==typeof e[n]&&("aggregations"!==n&&"aggs"!==n||Object.keys(e[n]).forEach((e=>{"aggregations"!==e&&"aggs"!==e&&t.push({id:e,name:e,type:r.a.KEYWORD,aggregatable:!0,counter:!1})})),C(e[n],t))}},118:function(e,t,n){"use strict";n.d(t,"a",(function(){return d}));var a=n(5),r=n.n(a),i=n(114),o=n(98),s=n(126),l=n(12),c=n(174);class NewJobCapsService extends c.a{constructor(...e){super(...e),r()(this,"_catFields",[]),r()(this,"_dateFields",[]),r()(this,"_geoFields",[]),r()(this,"_includeEventRateField",!0),r()(this,"_removeTextFields",!0)}get catFields(){return this._catFields}get dateFields(){return this._dateFields}get geoFields(){return this._geoFields}get categoryFields(){return Object(s.c)(this._fields)}async initializeFromDataVIew(e,t=!0,n=!0){try{this._includeEventRateField=t,this._removeTextFields=n;const a=await l.ml.jobs.newJobCaps(e.getIndexPattern(),"rollup"===e.type),{fields:r,aggs:d}=function(e,t){const n=e[t],a=[],r=[],i={},o={};return void 0!==n&&(n.aggs.forEach((e=>{const t={...e,...void 0!==e.fieldIds?{fields:[]}:{}};i[t.id]=t,r.push(t)})),n.fields.forEach((e=>{const t={...e,aggs:[]};void 0!==t.aggIds&&(o[t.id]=t.aggIds),a.push(t)})),a.forEach((e=>{o[e.id].forEach((t=>{!function(e,t){void 0===t.fields&&(t.fields=[]),void 0===e.aggs&&(e.aggs=[]),t.fields.push(e),e.aggs.push(t)}(e,i[t])}))}))),a.forEach((e=>delete e.aggIds)),r.forEach((e=>delete e.fieldIds)),{fields:a,aggs:r}}(a,e.getIndexPattern());!0===this._includeEventRateField&&function(e,t){const n={id:o.c,name:"Event rate",type:i.a.INTEGER,aggregatable:!0,counter:!1,aggs:[]};e.forEach((e=>{void 0!==n.aggs&&void 0===e.fields&&(e.fields=[n],n.aggs.push(e))})),t.splice(0,0,n)}(d,r);const{fieldsPreferringKeyword:u,fieldsPreferringText:f}=Object(c.b)(r),g=f.filter((e=>e.type===i.a.KEYWORD||e.type===i.a.TEXT)),b=f.filter((e=>e.type===i.a.DATE)),p=Object(s.d)(r),_=this._removeTextFields?u:r;this._fields=_,this.removeCounterFields(),this._catFields=g,this._dateFields=b,this._geoFields=p,this._aggs=d}catch(e){console.error("Unable to load new job capabilities",e)}}}const d=new NewJobCapsService},126:function(e,t,n){"use strict";n.d(t,"a",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"d",(function(){return l})),n.d(t,"e",(function(){return c})),n.d(t,"c",(function(){return d}));var a=n(114),r=n(98);const i=[a.a.TEXT,a.a.KEYWORD,a.a.IP,a.a.VERSION];function o(e,t,n){const i=function(e){return e.filter((e=>e.type===a.a.KEYWORD||e.type===a.a.VERSION))}(e),o=function(e){return e.filter((e=>e.type===a.a.TEXT))}(e),c=function(e){return e.filter((e=>e.type===a.a.LONG||e.type===a.a.UNSIGNED_LONG||e.type===a.a.INTEGER||e.type===a.a.SHORT||e.type===a.a.BYTE||e.type===a.a.DOUBLE||e.type===a.a.FLOAT||e.type===a.a.HALF_FLOAT||e.type===a.a.SCALED_FLOAT))}(e),d=function(e){return e.filter((e=>e.type===a.a.IP))}(e),u=l(e),f=Object.keys(n).length>0,g=function(e,t){return function(n,a){(!1===e||t[n.id]&&t[n.id].find((e=>e.agg===a.dslName)))&&(void 0!==n.aggs&&n.aggs.push(a),void 0!==a.fields&&a.fields.push(n))}}(f,n);return t.forEach((e=>{if(e.type===r.d&&void 0!==e.fields)switch(e.id){case r.n.LAT_LONG:u.forEach((t=>g(t,e)));break;case r.n.INFO_CONTENT:case r.n.HIGH_INFO_CONTENT:case r.n.LOW_INFO_CONTENT:o.forEach((t=>g(t,e)));case r.n.DISTINCT_COUNT:case r.n.HIGH_DISTINCT_COUNT:case r.n.LOW_DISTINCT_COUNT:i.forEach((t=>g(t,e))),d.forEach((t=>g(t,e)));default:c.forEach((t=>{t.aggregatable&&g(t,e)}))}})),{aggs:t,fields:f?s(e):e}}function s(e){return e.filter((e=>e.aggs&&(e.aggs.length>0||0===e.aggs.length&&e.type===a.a.DATE)))}function l(e){return e.filter((e=>e.type===a.a.GEO_POINT||e.type===a.a.GEO_SHAPE))}function c(e){if(0===e.length)return e;let t;return e[0].id===r.c&&([t]=e.splice(0,1)),e.sort(((e,t)=>e.name.localeCompare(t.name))),void 0!==t&&e.splice(0,0,t),e}function d(e,t=!0){return e.filter((e=>i.includes(e.type)===t))}},132:function(e,t,n){"use strict";n.d(t,"c",(function(){return i})),n.d(t,"b",(function(){return o})),n.d(t,"a",(function(){return s}));var a=n(98),r=n(106);function i(){return{job_id:"",description:"",groups:[],analysis_config:{bucket_span:"",detectors:[],influencers:[]},data_description:{time_field:""}}}function o(e){return{datafeed_id:"",job_id:"",indices:Object(r.v)(e),query:{}}}function s(e,t){const n={function:e.id};return t.id!==a.c&&(n.field_name=t.id),n}},270:function(e,t,n){"use strict";n.r(t),n.d(t,"VisualizationExtractor",(function(){return visualization_extractor_VisualizationExtractor})),n.d(t,"resolver",(function(){return w})),n.d(t,"QuickLensJobCreator",(function(){return quick_create_job_QuickLensJobCreator})),n.d(t,"getJobsItemsFromEmbeddable",(function(){return b})),n.d(t,"isCompatibleVisualizationType",(function(){return _})),n.d(t,"redirectToADJobWizards",(function(){return g}));var a=n(85),r=n(6),i=n(105),o=n(114),s=n(98),l=n(1);const c=["line","bar","bar_stacked","bar_percentage_stacked","bar_horizontal","bar_horizontal_stacked","area","area_stacked","area_percentage_stacked"],d=a.layerTypes.DATA,u="lnsXY",f=[o.b.STRING,o.b.IP];async function g(e,t,n,a){const{query:r,filters:i,to:o,from:s,vis:c}=await b(e,a),d=n.url.locators.get(l.a),u=await(null==d?void 0:d.getUrl({page:l.b.ANOMALY_DETECTION_CREATE_JOB_FROM_LENS,pageState:{vis:c,from:s,to:o,query:r,filters:i,layerIndex:t}}));window.open(u,"_blank")}async function b(e,t){var n;if(!t)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.lensNotFound",{defaultMessage:"Lens is not intialized"}));const{filters:a,timeRange:i,...o}=e.getInput(),s=void 0===o.query?{query:"",language:"kuery"}:o.query;if(void 0===i)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.noTimeRange",{defaultMessage:"Time range not specified."}));const{to:l,from:c}=i,d=e.getSavedVis();if(void 0===d)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.visNotFound",{defaultMessage:"Visualization cannot be found."}));return{vis:d,chartInfo:await m(t,d),from:c,to:l,query:s,filters:a,dashboard:"dashboard"===(null===(n=e.parent)||void 0===n?void 0:n.type)?e.parent:void 0}}function p(e){const t=function(e){switch(e){case"average":return s.n.MEAN;case"count":return s.n.COUNT;case"max":return s.n.MAX;case"median":return s.n.MEDIAN;case"min":return s.n.MIN;case"sum":return s.n.SUM;case"unique_count":return s.n.DISTINCT_COUNT;default:return null}}(e);if(null===t)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.incorrectFunction",{defaultMessage:"Selected function {operationType} is not supported by anomaly detection detectors",values:{operationType:e}}));return t}async function _(e){return e.visualizationType===u&&e.layers.some((e=>e.layerType===a.layerTypes.DATA&&void 0!==e.dataView))}function y(e){return e.layerType===d&&e.chartType&&c.includes(e.chartType)}function T(e,t){return e.map((({operation:e})=>{var n,a;const r=p(e.type);return{function:r,..."count"===r?{}:{field_name:null===(n=e.fields)||void 0===n?void 0:n[0]},...t?{partition_field_name:null===(a=t.operation.fields)||void 0===a?void 0:a[0]}:{}}}))}async function m(e,t){const n=await(await(await e.stateHelperApi()).chartInfo).getChartInfo(t);if(!n)throw new Error("Cannot create job, chart info is undefined");return n}class visualization_extractor_VisualizationExtractor{constructor(){}async getResultLayersFromEmbeddable(e,t){const{chartInfo:n}=await b(e,t);return this.getLayers(n,t)}async extractFields(e){var t;if(!y(e))throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.incompatibleLayerType",{defaultMessage:"Layer is incompatible. Only chart layers can be used."}));const n=e.dimensions.find((e=>{var t;return"date"===(null===(t=e.operation)||void 0===t?void 0:t.dataType)}));if(void 0===n||null===(t=n.operation.fields)||void 0===t||!t.length)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.noDateField",{defaultMessage:"Cannot find a date field."}));const a=e.dimensions.filter((e=>"metric"===e.role));!function(e){if(e.forEach((e=>"date"!==e.operation.dataType&&p(e.operation.type))),e.some((e=>{var t;return!(null!==(t=e.operation.fields)&&void 0!==t&&t.length)})))throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.colsNoSourceField",{defaultMessage:"Some columns do not contain a source field."}));if(e.some((e=>function(e){return e.operation.hasTimeShift||e.operation.filter}(e))))throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.colsUsingFilterTimeSift",{defaultMessage:"Columns contain settings which are incompatible with ML detectors, time shift and filter by are not supported."}))}(a);const i=e.dimensions.find((e=>"split"===e.role&&"breakdown"===e.dimensionType));if(i&&"terms"===i.operation.type&&i.operation.fields&&i.operation.fields.length>1)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.splitFieldHasMultipleFields",{defaultMessage:"Selected split field contains more than one field."}));if(i&&(o=i,!f.includes(o.operation.dataType)))throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.splitFieldMustBeString",{defaultMessage:"Selected split field type must be string."}));var o;if(!e.dataView)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.noDataViews",{defaultMessage:"No data views can be found in the visualization."}));if(n.operation.fields[0]!==e.dataView.timeFieldName)throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.timeFieldNotInDataView",{defaultMessage:"Selected time field must be the default time field configured for data view."}));return{fields:a,timeField:n,splitField:i,dataView:e.dataView}}async getLayers(e,t){const n=await async function(e){const t=await e.getXyVisTypes();return e=>{var n;switch(e.layerType){case a.layerTypes.DATA:const i=t.find((t=>t.id===e.chartType));return{label:(null==i?void 0:i.fullLabel)||(null==i?void 0:i.label)||e.layerType,icon:null!==(n=null==i?void 0:i.icon)&&void 0!==n?n:""};case a.layerTypes.ANNOTATIONS:return{label:r.i18n.translate("xpack.ml.newJob.fromLens.createJob.VisType.annotations",{defaultMessage:"Annotations"}),icon:""};case a.layerTypes.REFERENCELINE:return{label:r.i18n.translate("xpack.ml.newJob.fromLens.createJob.VisType.referenceLine",{defaultMessage:"Reference line"}),icon:""};default:return{label:e.layerType,icon:""}}}}(t);return await Promise.all(e.layers.filter((({layerType:e})=>e===a.layerTypes.DATA)).map((async e=>{const{icon:t,label:a}=n(e);try{const{fields:n,splitField:r}=await this.extractFields(e),o=T(n,r),s=r||o.length>1?i.f.MULTI_METRIC:i.f.SINGLE_METRIC;return{id:e.layerId,layerType:e.layerType,label:a,icon:t,jobType:s,isCompatible:!0}}catch(n){return{id:e.layerId,layerType:e.layerType,label:a,icon:t,jobType:null,isCompatible:!1,error:n}}})))}}var E=n(34),v=n.n(E),h=n(132),O=n(113),N=n(218);class quick_create_job_QuickLensJobCreator extends N.a{constructor(e,t,n,a,r){super(t,n,a,r),this.lens=e}async createAndSaveJob(e,t,n,a,r,o){const{query:s,filters:l,to:c,from:d,dashboard:u,chartInfo:f}=await b(n,this.lens);if(void 0===s||void 0===l)throw new Error("Cannot create job, query and filters are undefined");const{jobConfig:g,datafeedConfig:p,start:_,end:y,jobType:T}=await this.createJob(f,d,c,s,l,t,o),m=T===i.f.SINGLE_METRIC?i.a.SINGLE_METRIC_FROM_LENS:i.a.MULTI_METRIC_FROM_LENS;return await this.putJobAndDataFeed({jobId:e,datafeedConfig:p,jobConfig:g,createdByLabel:m,dashboard:u,start:_,end:y,startJob:a,runInRealTime:r})}async createAndStashADJob(e,t,n,a,r,o){const s=await m(this.lens,e);try{const{jobConfig:e,datafeedConfig:l,jobType:c,start:d,end:u,includeTimeRange:f}=await this.createJob(s,t,n,a,r,i.b,o);Object(O.n)({jobConfig:e,datafeedConfig:l,createdBy:c===i.f.SINGLE_METRIC?i.a.SINGLE_METRIC:i.a.MULTI_METRIC,start:d,end:u},!0,f,!f)}catch(e){console.error(e)}}async createJob(e,t,n,a,i,o,s){const{jobConfig:l,datafeedConfig:c,jobType:d}=await this.createADJobFromLensSavedObject(e,a,i,o,s);let u,f,g=!0;try{const{min:e,max:a}=this.timeFilter.calculateBounds({to:n,from:t});if(u=null==e?void 0:e.valueOf(),f=null==a?void 0:a.valueOf(),void 0===u||void 0===f||isNaN(u)||isNaN(f))throw Error(r.i18n.translate("xpack.ml.newJob.fromLens.createJob.error.timeRange",{defaultMessage:"Incompatible time range"}))}catch(e){console.error(e),g=!1,u=void 0,f=void 0}return{jobConfig:l,datafeedConfig:c,jobType:d,start:u,end:f,includeTimeRange:g}}async createADJobFromLensSavedObject(e,t,n,a,r){var o;const s=e.layers.filter(y),l=void 0!==r?e.layers[r]:s[0],c=new visualization_extractor_VisualizationExtractor,{fields:d,timeField:u,splitField:f,dataView:g}=await c.extractFields(l),b=Object(h.c)(),p=Object(h.b)(g.getIndexPattern()),_=this.combineQueriesAndFilters({query:t,filters:n},{query:e.query,filters:e.filters},g);p.query=_,b.analysis_config.detectors=T(d,f),b.data_description.time_field=null===(o=u.operation.fields)||void 0===o?void 0:o[0],b.analysis_config.bucket_span=a,f&&f.operation.fields&&(b.analysis_config.influencers=[f.operation.fields[0]]);const m=!f&&1===b.analysis_config.detectors.length,E=m?i.f.SINGLE_METRIC:i.f.MULTI_METRIC;return m&&(b.model_plot_config={enabled:!0,annotations_enabled:!0}),{jobConfig:b,datafeedConfig:p,jobType:E}}}var C=n(144);async function w(e,t,n,a,r,i,o){const{lens:s,mlApiServices:l,timeFilter:c,kibanaConfig:d,dashboardService:u}=e;if(void 0===t)throw new Error("Cannot create visualization");const f=v.a.decode(t);if(!f)throw new Error("Cannot create visualization");let g,b,p,_,y;try{g=v.a.decode(r)}catch(e){g=Object(C.d)()}try{b=v.a.decode(i)}catch(e){b=[]}try{p=v.a.decode(n)}catch(e){p=""}try{_=v.a.decode(a)}catch(e){_=""}try{y=v.a.decode(o)}catch(e){y=void 0}const T=new quick_create_job_QuickLensJobCreator(s,d,c,u,l);await T.createAndStashADJob(f,p,_,g,b,y)}}}]);