Built motion from commit e0fa946e.|2.6.5
[motion2.git] / server / api / intVtigerAccount / intVtigerAccount.controller.js
index 28f9dff..a9e527c 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x79ca=['getDescriptions','VtigerField','md5','username','description','moduleName','remoteUri','serverUrl','accessKey','slice','substring','lastIndexOf','format','GET','success','POST','login','token','describe','autogenerated','reference','remove','includes','label','startsWith','cf_','picklistValues','value','log','statusCode','getFields,\x20%s,\x20%s,\x20%s','Wrong\x20credentials','html-pdf','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','sox','lodash','squel','crypto','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../mysqldb','jayson/promise','client','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','then','info','VtigerAccount,\x20%s,\x20%s','request\x20sent','stringify','error','message','result','catch','sendStatus','status','end','json','offset','limit','Content-Range','apply','reject','save','update','destroy','stack','name','send','index','fieldName','type','key','model','map','keys','query','filters','attributes','intersection','fields','length','nolimit','order','sort','pick','filter','where','merge','options','VtigerAccount','count','includeAll','include','findAll','rows','show','params','rawAttributes','find','create','body','getConfigurations','findOne','VtigerConfiguration','addConfiguration','AccountId','Subjects','getSubjects','channel','Descriptions'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x79ca,0x9e));var _0xa79c=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x79ca[_0x321bb2];return _0x9c12ed;};'use strict';var pdf=require(_0xa79c('0x0'));var emlformat=require(_0xa79c('0x1'));var rimraf=require('rimraf');var zipdir=require(_0xa79c('0x2'));var jsonpatch=require(_0xa79c('0x3'));var rp=require(_0xa79c('0x4'));var moment=require(_0xa79c('0x5'));var BPromise=require(_0xa79c('0x6'));var Mustache=require('mustache');var util=require(_0xa79c('0x7'));var path=require('path');var sox=require(_0xa79c('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xa79c('0x9'));var squel=require(_0xa79c('0xa'));var crypto=require(_0xa79c('0xb'));var jsforce=require('jsforce');var deskjs=require(_0xa79c('0xc'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0xa79c('0xd'));var Redis=require(_0xa79c('0xe'));var authService=require(_0xa79c('0xf'));var qs=require('../../components/parsers/qs');var as=require(_0xa79c('0x10'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xa79c('0x11'))('api');var utils=require(_0xa79c('0x12'));var config=require('../../config/environment');var db=require(_0xa79c('0x13'))['db'];var integrations=require('../../components/integrations/configuration');var jayson=require(_0xa79c('0x14'));var client=jayson[_0xa79c('0x15')][_0xa79c('0x16')]({'port':0x232a});function checkPasswordPattern(_0x140fe6,_0x2bddb7,_0x33ee84){if(_0x33ee84){var _0x3903cb=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x3903cb[_0xa79c('0x17')](_0x2bddb7)){return _0x140fe6;}else{throw new db[(_0xa79c('0x18'))][(_0xa79c('0x19'))](_0xa79c('0x1a'));}}else{return _0x140fe6;}}function respondWithRpcPromise(_0x34ade8,_0x51fc10,_0x59214d,_0x3f46f2){return new BPromise(function(_0x51dc6f,_0x5692f3){var _0xc3a99e=_0x3f46f2||client;return _0xc3a99e[_0xa79c('0x1b')](_0x34ade8,_0x59214d)[_0xa79c('0x1c')](function(_0x138c87){logger[_0xa79c('0x1d')](_0xa79c('0x1e'),_0x51fc10,_0xa79c('0x1f'));logger['debug']('VtigerAccount,\x20%s,\x20%s,\x20%s',_0x51fc10,_0xa79c('0x1f'),JSON[_0xa79c('0x20')](_0x138c87));if(_0x138c87[_0xa79c('0x21')]){if(_0x138c87[_0xa79c('0x21')]['code']===0x1f4){logger[_0xa79c('0x21')](_0xa79c('0x1e'),_0x51fc10,_0x138c87[_0xa79c('0x21')][_0xa79c('0x22')]);return _0x5692f3(_0x138c87[_0xa79c('0x21')][_0xa79c('0x22')]);}logger[_0xa79c('0x21')](_0xa79c('0x1e'),_0x51fc10,_0x138c87[_0xa79c('0x21')][_0xa79c('0x22')]);return _0x51dc6f(_0x138c87[_0xa79c('0x21')][_0xa79c('0x22')]);}else{logger[_0xa79c('0x1d')](_0xa79c('0x1e'),_0x51fc10,_0xa79c('0x1f'));_0x51dc6f(_0x138c87[_0xa79c('0x23')][_0xa79c('0x22')]);}})[_0xa79c('0x24')](function(_0x3c8613){logger['error'](_0xa79c('0x1e'),_0x51fc10,_0x3c8613);_0x5692f3(_0x3c8613);});});}function respondWithStatusCode(_0x383380,_0xbcfe96){_0xbcfe96=_0xbcfe96||0xcc;return function(_0x528bfa){if(_0x528bfa){return _0x383380[_0xa79c('0x25')](_0xbcfe96);}return _0x383380[_0xa79c('0x26')](_0xbcfe96)[_0xa79c('0x27')]();};}function respondWithResult(_0x510fed,_0x5e3cbe){_0x5e3cbe=_0x5e3cbe||0xc8;return function(_0x104ebe){if(_0x104ebe){return _0x510fed['status'](_0x5e3cbe)[_0xa79c('0x28')](_0x104ebe);}};}function respondWithFilteredResult(_0x377223,_0x48c05f){return function(_0x33ca6a){if(_0x33ca6a){var _0x5c8a96=_0x33ca6a['count'],_0x3c044e=_0x48c05f[_0xa79c('0x29')],_0x310068=_0x48c05f[_0xa79c('0x29')]+_0x48c05f[_0xa79c('0x2a')],_0x2efd18;if(_0x310068>=_0x5c8a96){_0x310068=_0x5c8a96;_0x2efd18=0xc8;}else{_0x2efd18=0xce;}_0x377223[_0xa79c('0x26')](_0x2efd18);return _0x377223['set'](_0xa79c('0x2b'),_0x3c044e+'-'+_0x310068+'/'+_0x5c8a96)[_0xa79c('0x28')](_0x33ca6a);}return null;};}function patchUpdates(_0x38ce0d){return function(_0x3b90b0){try{jsonpatch[_0xa79c('0x2c')](_0x3b90b0,_0x38ce0d,!![]);}catch(_0x130232){return BPromise[_0xa79c('0x2d')](_0x130232);}return _0x3b90b0[_0xa79c('0x2e')]();};}function saveUpdates(_0xbeacc1,_0x43afc7){return function(_0x527eac){if(_0x527eac){return _0x527eac[_0xa79c('0x2f')](_0xbeacc1)['then'](function(_0x14b303){return _0x14b303;});}return null;};}function removeEntity(_0x8b8899,_0x387f11){return function(_0x21dfc2){if(_0x21dfc2){return _0x21dfc2[_0xa79c('0x30')]()[_0xa79c('0x1c')](function(){_0x8b8899['status'](0xcc)[_0xa79c('0x27')]();});}};}function handleEntityNotFound(_0x4683fa,_0x32dc15){return function(_0x3e4d5f){if(!_0x3e4d5f){_0x4683fa[_0xa79c('0x25')](0x194);}return _0x3e4d5f;};}function handleError(_0x13a5b3,_0x1a4569){_0x1a4569=_0x1a4569||0x1f4;return function(_0x26eec4){logger['error'](_0x26eec4[_0xa79c('0x31')]);if(_0x26eec4[_0xa79c('0x32')]){delete _0x26eec4[_0xa79c('0x32')];}_0x13a5b3['status'](_0x1a4569)[_0xa79c('0x33')](_0x26eec4);};}exports[_0xa79c('0x34')]=function(_0x48a4ed,_0x568853){var _0x3a19ab={},_0x7d5f6f={},_0x3a4fd6={'count':0x0,'rows':[]};var _0x60fd64=_['map'](db['VtigerAccount']['rawAttributes'],function(_0xc69bd5){return{'name':_0xc69bd5[_0xa79c('0x35')],'type':_0xc69bd5[_0xa79c('0x36')][_0xa79c('0x37')]};});_0x7d5f6f[_0xa79c('0x38')]=_[_0xa79c('0x39')](_0x60fd64,'name');_0x7d5f6f['query']=_[_0xa79c('0x3a')](_0x48a4ed[_0xa79c('0x3b')]);_0x7d5f6f[_0xa79c('0x3c')]=_['intersection'](_0x7d5f6f[_0xa79c('0x38')],_0x7d5f6f[_0xa79c('0x3b')]);_0x3a19ab[_0xa79c('0x3d')]=_[_0xa79c('0x3e')](_0x7d5f6f[_0xa79c('0x38')],qs[_0xa79c('0x3f')](_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x3f')]));_0x3a19ab[_0xa79c('0x3d')]=_0x3a19ab['attributes'][_0xa79c('0x40')]?_0x3a19ab[_0xa79c('0x3d')]:_0x7d5f6f[_0xa79c('0x38')];if(!_0x48a4ed[_0xa79c('0x3b')]['hasOwnProperty'](_0xa79c('0x41'))){_0x3a19ab[_0xa79c('0x2a')]=qs[_0xa79c('0x2a')](_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x2a')]);_0x3a19ab[_0xa79c('0x29')]=qs[_0xa79c('0x29')](_0x48a4ed['query'][_0xa79c('0x29')]);}_0x3a19ab[_0xa79c('0x42')]=qs['sort'](_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x43')]);_0x3a19ab['where']=qs['filters'](_[_0xa79c('0x44')](_0x48a4ed[_0xa79c('0x3b')],_0x7d5f6f[_0xa79c('0x3c')]),_0x60fd64);if(_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x45')]){_0x3a19ab[_0xa79c('0x46')]=_[_0xa79c('0x47')](_0x3a19ab[_0xa79c('0x46')],{'$or':_[_0xa79c('0x39')](_0x60fd64,function(_0x25d3cd){if(_0x25d3cd[_0xa79c('0x36')]!=='VIRTUAL'){var _0x4d9c4d={};_0x4d9c4d[_0x25d3cd['name']]={'$like':'%'+_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x45')]+'%'};return _0x4d9c4d;}})});}_0x3a19ab=_['merge']({},_0x3a19ab,_0x48a4ed[_0xa79c('0x48')]);var _0x273091={'where':_0x3a19ab[_0xa79c('0x46')]};return db[_0xa79c('0x49')][_0xa79c('0x4a')](_0x273091)[_0xa79c('0x1c')](function(_0x46575e){_0x3a4fd6[_0xa79c('0x4a')]=_0x46575e;if(_0x48a4ed[_0xa79c('0x3b')][_0xa79c('0x4b')]){_0x3a19ab[_0xa79c('0x4c')]=[{'all':!![]}];}return db[_0xa79c('0x49')][_0xa79c('0x4d')](_0x3a19ab);})[_0xa79c('0x1c')](function(_0x23583b){_0x3a4fd6[_0xa79c('0x4e')]=_0x23583b;return _0x3a4fd6;})[_0xa79c('0x1c')](respondWithFilteredResult(_0x568853,_0x3a19ab))[_0xa79c('0x24')](handleError(_0x568853,null));};exports[_0xa79c('0x4f')]=function(_0x551e4a,_0x3461e2){var _0x5cbbcf={'raw':![],'where':{'id':_0x551e4a[_0xa79c('0x50')]['id']}},_0x2151e7={};_0x2151e7[_0xa79c('0x38')]=_['keys'](db['VtigerAccount'][_0xa79c('0x51')]);_0x2151e7[_0xa79c('0x3b')]=_[_0xa79c('0x3a')](_0x551e4a[_0xa79c('0x3b')]);_0x2151e7['filters']=_[_0xa79c('0x3e')](_0x2151e7['model'],_0x2151e7['query']);_0x5cbbcf[_0xa79c('0x3d')]=_[_0xa79c('0x3e')](_0x2151e7[_0xa79c('0x38')],qs[_0xa79c('0x3f')](_0x551e4a[_0xa79c('0x3b')][_0xa79c('0x3f')]));_0x5cbbcf[_0xa79c('0x3d')]=_0x5cbbcf['attributes'][_0xa79c('0x40')]?_0x5cbbcf['attributes']:_0x2151e7[_0xa79c('0x38')];if(_0x551e4a['query'][_0xa79c('0x4b')]){_0x5cbbcf[_0xa79c('0x4c')]=[{'all':!![]}];}_0x5cbbcf=_[_0xa79c('0x47')]({},_0x5cbbcf,_0x551e4a[_0xa79c('0x48')]);return db[_0xa79c('0x49')][_0xa79c('0x52')](_0x5cbbcf)[_0xa79c('0x1c')](handleEntityNotFound(_0x3461e2,null))[_0xa79c('0x1c')](respondWithResult(_0x3461e2,null))[_0xa79c('0x24')](handleError(_0x3461e2,null));};exports[_0xa79c('0x53')]=function(_0xf7d7bc,_0x5a616d){return db[_0xa79c('0x49')][_0xa79c('0x53')](_0xf7d7bc['body'],{})[_0xa79c('0x1c')](respondWithResult(_0x5a616d,0xc9))[_0xa79c('0x24')](handleError(_0x5a616d,null));};exports[_0xa79c('0x2f')]=function(_0x162513,_0x526db4){if(_0x162513['body']['id']){delete _0x162513['body']['id'];}return db[_0xa79c('0x49')]['find']({'where':{'id':_0x162513[_0xa79c('0x50')]['id']}})['then'](handleEntityNotFound(_0x526db4,null))[_0xa79c('0x1c')](saveUpdates(_0x162513[_0xa79c('0x54')],null))[_0xa79c('0x1c')](respondWithResult(_0x526db4,null))['catch'](handleError(_0x526db4,null));};exports['destroy']=function(_0x5cbd73,_0x2a7a28){return db[_0xa79c('0x49')][_0xa79c('0x52')]({'where':{'id':_0x5cbd73['params']['id']}})[_0xa79c('0x1c')](handleEntityNotFound(_0x2a7a28,null))[_0xa79c('0x1c')](removeEntity(_0x2a7a28,null))[_0xa79c('0x24')](handleError(_0x2a7a28,null));};exports[_0xa79c('0x55')]=function(_0x4b6dba,_0x513fb1,_0x51f72b){var _0x43e6f0={};var _0x5cce2e={};var _0x421097;var _0x2f275f;return db[_0xa79c('0x49')][_0xa79c('0x56')]({'where':{'id':_0x4b6dba[_0xa79c('0x50')]['id']}})[_0xa79c('0x1c')](handleEntityNotFound(_0x513fb1,null))[_0xa79c('0x1c')](function(_0x3c2eaa){if(_0x3c2eaa){_0x421097=_0x3c2eaa;_0x5cce2e[_0xa79c('0x38')]=_[_0xa79c('0x3a')](db[_0xa79c('0x57')][_0xa79c('0x51')]);_0x5cce2e['query']=_['keys'](_0x4b6dba['query']);_0x5cce2e[_0xa79c('0x3c')]=_[_0xa79c('0x3e')](_0x5cce2e[_0xa79c('0x38')],_0x5cce2e[_0xa79c('0x3b')]);_0x43e6f0[_0xa79c('0x3d')]=_[_0xa79c('0x3e')](_0x5cce2e['model'],qs[_0xa79c('0x3f')](_0x4b6dba[_0xa79c('0x3b')]['fields']));_0x43e6f0[_0xa79c('0x3d')]=_0x43e6f0['attributes'][_0xa79c('0x40')]?_0x43e6f0[_0xa79c('0x3d')]:_0x5cce2e[_0xa79c('0x38')];_0x43e6f0[_0xa79c('0x42')]=qs[_0xa79c('0x43')](_0x4b6dba[_0xa79c('0x3b')]['sort']);_0x43e6f0[_0xa79c('0x46')]=qs[_0xa79c('0x3c')](_[_0xa79c('0x44')](_0x4b6dba[_0xa79c('0x3b')],_0x5cce2e['filters']));if(_0x4b6dba[_0xa79c('0x3b')]['filter']){_0x43e6f0[_0xa79c('0x46')]=_[_0xa79c('0x47')](_0x43e6f0[_0xa79c('0x46')],{'$or':_[_0xa79c('0x39')](_0x43e6f0[_0xa79c('0x3d')],function(_0x27cbce){var _0x1dbba8={};_0x1dbba8[_0x27cbce]={'$like':'%'+_0x4b6dba[_0xa79c('0x3b')][_0xa79c('0x45')]+'%'};return _0x1dbba8;})});}_0x43e6f0=_[_0xa79c('0x47')]({},_0x43e6f0,_0x4b6dba[_0xa79c('0x48')]);return _0x421097[_0xa79c('0x55')](_0x43e6f0);}})[_0xa79c('0x1c')](function(_0x497dd4){if(_0x497dd4){_0x2f275f=_0x497dd4[_0xa79c('0x40')];if(!_0x4b6dba['query']['hasOwnProperty'](_0xa79c('0x41'))){_0x43e6f0[_0xa79c('0x2a')]=qs['limit'](_0x4b6dba[_0xa79c('0x3b')][_0xa79c('0x2a')]);_0x43e6f0['offset']=qs[_0xa79c('0x29')](_0x4b6dba[_0xa79c('0x3b')][_0xa79c('0x29')]);}return _0x421097[_0xa79c('0x55')](_0x43e6f0);}})[_0xa79c('0x1c')](function(_0x2c339b){if(_0x2c339b){return _0x2c339b?{'count':_0x2f275f,'rows':_0x2c339b}:null;}})[_0xa79c('0x1c')](respondWithResult(_0x513fb1,null))['catch'](handleError(_0x513fb1,null));};exports[_0xa79c('0x58')]=function(_0x21b66c,_0x2062ca,_0x3b7556){if(_0x21b66c['body']['id']){delete _0x21b66c[_0xa79c('0x54')]['id'];}return db[_0xa79c('0x49')][_0xa79c('0x56')]({'where':{'id':_0x21b66c[_0xa79c('0x50')]['id']}})[_0xa79c('0x1c')](handleEntityNotFound(_0x2062ca,null))[_0xa79c('0x1c')](function(_0x372cf5){if(_0x372cf5){_0x21b66c[_0xa79c('0x54')][_0xa79c('0x59')]=_0x372cf5['id'];_0x21b66c[_0xa79c('0x54')][_0xa79c('0x5a')]=integrations[_0xa79c('0x5b')](_0x21b66c[_0xa79c('0x54')][_0xa79c('0x5c')],_0x21b66c[_0xa79c('0x54')][_0xa79c('0x36')]);_0x21b66c[_0xa79c('0x54')][_0xa79c('0x5d')]=integrations[_0xa79c('0x5e')](_0x21b66c[_0xa79c('0x54')][_0xa79c('0x5c')],_0x21b66c[_0xa79c('0x54')][_0xa79c('0x36')]);return db['VtigerConfiguration'][_0xa79c('0x53')](_0x21b66c['body'],{'include':[{'model':db[_0xa79c('0x5f')],'as':_0xa79c('0x5a')},{'model':db[_0xa79c('0x5f')],'as':'Descriptions'}]});}return null;})[_0xa79c('0x1c')](respondWithResult(_0x2062ca,null))[_0xa79c('0x24')](handleError(_0x2062ca,null));};var md5=require(_0xa79c('0x60'));exports['getFields']=function(_0x358a8e,_0x4bd7a1,_0x3f4f83){var _0x55e2f6=null;var _0x5aeac5=null;var _0x34b9fb=null;var _0x2963c9=null;var _0x255f4f='';return db[_0xa79c('0x49')][_0xa79c('0x56')]({'where':{'id':_0x358a8e[_0xa79c('0x50')]['id']},'attributes':['id',_0xa79c('0x32'),_0xa79c('0x61'),_0xa79c('0x62'),_0xa79c('0x63'),_0xa79c('0x64'),_0xa79c('0x65'),'accessKey']})['then'](handleEntityNotFound(_0x4bd7a1,null))[_0xa79c('0x1c')](function(_0x25ddb7){if(_0x25ddb7){_0x55e2f6=_0x25ddb7['username'];_0x5aeac5=_0x25ddb7[_0xa79c('0x66')];_0x34b9fb=_0x25ddb7[_0xa79c('0x63')];_0x255f4f=_0x25ddb7[_0xa79c('0x64')];var _0x3a9286=_0x255f4f[_0xa79c('0x67')](-0x1);if(_0x3a9286==='/'){_0x255f4f=_0x255f4f[_0xa79c('0x68')](0x0,_0x255f4f[_0xa79c('0x69')](_0x3a9286));}_0x2963c9=util[_0xa79c('0x6a')]('%s/webservice.php',_0x255f4f);var _0x5590ba={'method':_0xa79c('0x6b'),'uri':_0x2963c9,'qs':{'operation':'getchallenge','username':_0x25ddb7[_0xa79c('0x61')]},'json':!![]};return rp(_0x5590ba);}})[_0xa79c('0x1c')](function(_0x56172c){if(_0x56172c[_0xa79c('0x6c')]){var _0x2b93a2={'method':_0xa79c('0x6d'),'uri':_0x2963c9,'form':{'operation':_0xa79c('0x6e'),'username':_0x55e2f6,'accessKey':md5(_0x56172c[_0xa79c('0x23')][_0xa79c('0x6f')]+_0x5aeac5)},'json':!![]};return rp(_0x2b93a2);}})[_0xa79c('0x1c')](function(_0x41ec03){if(_0x41ec03[_0xa79c('0x6c')]){var _0x31709a={'method':_0xa79c('0x6b'),'uri':_0x2963c9,'qs':{'operation':_0xa79c('0x70'),'username':_0x55e2f6,'sessionName':_0x41ec03[_0xa79c('0x23')]['sessionName'],'elementType':_0x34b9fb},'json':!![]};return rp(_0x31709a);}})['then'](function(_0x419db2){if(_0x419db2[_0xa79c('0x6c')]){var _0x3594b8=[_0xa79c('0x71'),_0xa79c('0x72'),'owner'];_[_0xa79c('0x73')](_0x419db2[_0xa79c('0x23')]['fields'],function(_0x538f41){return _0x3594b8[_0xa79c('0x74')](_0x538f41['type'][_0xa79c('0x32')]);});_['remove'](_0x419db2['result'][_0xa79c('0x3f')],function(_0x3ddd4f){return _0x3ddd4f['editable']==='false';});return{'count':_0x419db2[_0xa79c('0x23')][_0xa79c('0x3f')]['length'],'rows':_[_0xa79c('0x39')](_0x419db2[_0xa79c('0x23')][_0xa79c('0x3f')],function(_0xfb051c){return{'id':_0xfb051c['name'],'name':_0xfb051c[_0xa79c('0x75')],'custom':_[_0xa79c('0x76')](_0xfb051c[_0xa79c('0x32')],_0xa79c('0x77'))?!![]:![],'options':_0xfb051c[_0xa79c('0x36')][_0xa79c('0x32')]==='picklist'&&_0xfb051c['type'][_0xa79c('0x78')][_0xa79c('0x40')]>0x0?_['map'](_0xfb051c[_0xa79c('0x36')][_0xa79c('0x78')],function(_0x28d975){return{'name':_0x28d975[_0xa79c('0x75')],'value':_0x28d975[_0xa79c('0x79')]};}):[]};})};}})['then'](respondWithResult(_0x4bd7a1,null))['catch'](function(_0x288d45){console[_0xa79c('0x7a')]('vTiger\x20error:\x20'+_0x288d45);var _0x4c8cdc=_0x358a8e[_0xa79c('0x3b')]['test']?0x1f4:_0x288d45[_0xa79c('0x7b')]||0x1f4;logger[_0xa79c('0x21')](_0xa79c('0x7c'),'getFields',_0x4c8cdc,JSON[_0xa79c('0x20')](_0x288d45));delete _0x288d45[_0xa79c('0x32')];if(_0x4c8cdc===0x191){_0x4c8cdc=0x190;}_0x4bd7a1[_0xa79c('0x26')](_0x4c8cdc)[_0xa79c('0x33')](_0x358a8e[_0xa79c('0x3b')]['test']?{'message':_0xa79c('0x7d'),'statusCode':_0x288d45[_0xa79c('0x7b')]}:_0x288d45);});};
\ No newline at end of file
+var _0xef30=['include','findAll','rows','catch','show','params','keys','fields','find','create','body','findOne','getConfigurations','AccountId','channel','Descriptions','getDescriptions','VtigerConfiguration','VtigerField','Subjects','md5','getFields','username','moduleName','remoteUri','accessKey','slice','lastIndexOf','format','%s/webservice.php','getchallenge','success','login','result','token','describe','sessionName','autogenerated','owner','remove','includes','editable','false','label','startsWith','cf_','picklistValues','value','log','vTiger\x20error:\x20','test','statusCode','error','getFields,\x20%s,\x20%s,\x20%s','stringify','Wrong\x20credentials','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','ejs','fs-extra','lodash','squel','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../components/integrations/configuration','sendStatus','end','status','json','offset','undefined','count','limit','set','Content-Range','apply','reject','save','update','then','destroy','stack','send','index','VtigerAccount','rawAttributes','fieldName','type','key','model','map','name','query','filters','attributes','intersection','length','hasOwnProperty','nolimit','order','sort','where','pick','VIRTUAL','filter','merge','options','includeAll'];(function(_0x36d9ac,_0x314606){var _0x281977=function(_0x200ae4){while(--_0x200ae4){_0x36d9ac['push'](_0x36d9ac['shift']());}};_0x281977(++_0x314606);}(_0xef30,0xb6));var _0x0ef3=function(_0x5447fd,_0x52a6b5){_0x5447fd=_0x5447fd-0x0;var _0x15b28a=_0xef30[_0x5447fd];return _0x15b28a;};'use strict';var emlformat=require(_0x0ef3('0x0'));var rimraf=require(_0x0ef3('0x1'));var zipdir=require(_0x0ef3('0x2'));var jsonpatch=require(_0x0ef3('0x3'));var rp=require(_0x0ef3('0x4'));var moment=require(_0x0ef3('0x5'));var BPromise=require(_0x0ef3('0x6'));var Mustache=require(_0x0ef3('0x7'));var util=require(_0x0ef3('0x8'));var path=require(_0x0ef3('0x9'));var sox=require('sox');var csv=require(_0x0ef3('0xa'));var ejs=require(_0x0ef3('0xb'));var fs=require('fs');var fs_extra=require(_0x0ef3('0xc'));var _=require(_0x0ef3('0xd'));var squel=require(_0x0ef3('0xe'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x0ef3('0xf'));var toCsv=require('to-csv');var querystring=require(_0x0ef3('0x10'));var Papa=require(_0x0ef3('0x11'));var Redis=require(_0x0ef3('0x12'));var authService=require(_0x0ef3('0x13'));var qs=require(_0x0ef3('0x14'));var as=require(_0x0ef3('0x15'));var hardwareService=require(_0x0ef3('0x16'));var logger=require('../../config/logger')('api');var utils=require(_0x0ef3('0x17'));var config=require(_0x0ef3('0x18'));var licenseUtil=require(_0x0ef3('0x19'));var db=require('../../mysqldb')['db'];var integrations=require(_0x0ef3('0x1a'));function respondWithStatusCode(_0x5d5545,_0x52020e){_0x52020e=_0x52020e||0xcc;return function(_0x76985e){if(_0x76985e){return _0x5d5545[_0x0ef3('0x1b')](_0x52020e);}return _0x5d5545['status'](_0x52020e)[_0x0ef3('0x1c')]();};}function respondWithResult(_0x4af50d,_0x31bbd1){_0x31bbd1=_0x31bbd1||0xc8;return function(_0x23242e){if(_0x23242e){return _0x4af50d[_0x0ef3('0x1d')](_0x31bbd1)[_0x0ef3('0x1e')](_0x23242e);}};}function respondWithFilteredResult(_0x4f69bf,_0x12a5af){return function(_0x42aeb4){if(_0x42aeb4){var _0x1da77a=typeof _0x12a5af[_0x0ef3('0x1f')]===_0x0ef3('0x20')&&typeof _0x12a5af['limit']===_0x0ef3('0x20');var _0x5d6767=_0x42aeb4[_0x0ef3('0x21')];var _0x21c71b=_0x1da77a?0x0:_0x12a5af[_0x0ef3('0x1f')];var _0x2e1406=_0x1da77a?_0x42aeb4[_0x0ef3('0x21')]:_0x12a5af[_0x0ef3('0x1f')]+_0x12a5af[_0x0ef3('0x22')];var _0x10259f;if(_0x2e1406>=_0x5d6767){_0x2e1406=_0x5d6767;_0x10259f=0xc8;}else{_0x10259f=0xce;}_0x4f69bf[_0x0ef3('0x1d')](_0x10259f);return _0x4f69bf[_0x0ef3('0x23')](_0x0ef3('0x24'),_0x21c71b+'-'+_0x2e1406+'/'+_0x5d6767)[_0x0ef3('0x1e')](_0x42aeb4);}return null;};}function patchUpdates(_0x2ebbbd){return function(_0x4c25c6){try{jsonpatch[_0x0ef3('0x25')](_0x4c25c6,_0x2ebbbd,!![]);}catch(_0xfbfc9e){return BPromise[_0x0ef3('0x26')](_0xfbfc9e);}return _0x4c25c6[_0x0ef3('0x27')]();};}function saveUpdates(_0x1c9eea,_0x3134b8){return function(_0x4ec06a){if(_0x4ec06a){return _0x4ec06a[_0x0ef3('0x28')](_0x1c9eea)[_0x0ef3('0x29')](function(_0x443c66){return _0x443c66;});}return null;};}function removeEntity(_0x18083e,_0x92c08){return function(_0x3a0308){if(_0x3a0308){return _0x3a0308[_0x0ef3('0x2a')]()[_0x0ef3('0x29')](function(){_0x18083e[_0x0ef3('0x1d')](0xcc)[_0x0ef3('0x1c')]();});}};}function handleEntityNotFound(_0x4a23eb,_0x15c2df){return function(_0x32e362){if(!_0x32e362){_0x4a23eb[_0x0ef3('0x1b')](0x194);}return _0x32e362;};}function handleError(_0x514c31,_0x23751d){_0x23751d=_0x23751d||0x1f4;return function(_0x3f1523){logger['error'](_0x3f1523[_0x0ef3('0x2b')]);if(_0x3f1523['name']){delete _0x3f1523['name'];}_0x514c31[_0x0ef3('0x1d')](_0x23751d)[_0x0ef3('0x2c')](_0x3f1523);};}exports[_0x0ef3('0x2d')]=function(_0x69ce92,_0x2a6b6e){var _0x1c11d5={},_0x47b020={},_0x3fb8e5={'count':0x0,'rows':[]};var _0x3d6e14=_['map'](db[_0x0ef3('0x2e')][_0x0ef3('0x2f')],function(_0x1189cb){return{'name':_0x1189cb[_0x0ef3('0x30')],'type':_0x1189cb[_0x0ef3('0x31')][_0x0ef3('0x32')]};});_0x47b020[_0x0ef3('0x33')]=_[_0x0ef3('0x34')](_0x3d6e14,_0x0ef3('0x35'));_0x47b020[_0x0ef3('0x36')]=_['keys'](_0x69ce92['query']);_0x47b020[_0x0ef3('0x37')]=_['intersection'](_0x47b020['model'],_0x47b020['query']);_0x1c11d5[_0x0ef3('0x38')]=_[_0x0ef3('0x39')](_0x47b020[_0x0ef3('0x33')],qs['fields'](_0x69ce92[_0x0ef3('0x36')]['fields']));_0x1c11d5[_0x0ef3('0x38')]=_0x1c11d5[_0x0ef3('0x38')][_0x0ef3('0x3a')]?_0x1c11d5[_0x0ef3('0x38')]:_0x47b020[_0x0ef3('0x33')];if(!_0x69ce92[_0x0ef3('0x36')][_0x0ef3('0x3b')](_0x0ef3('0x3c'))){_0x1c11d5['limit']=qs[_0x0ef3('0x22')](_0x69ce92[_0x0ef3('0x36')][_0x0ef3('0x22')]);_0x1c11d5['offset']=qs[_0x0ef3('0x1f')](_0x69ce92[_0x0ef3('0x36')]['offset']);}_0x1c11d5[_0x0ef3('0x3d')]=qs[_0x0ef3('0x3e')](_0x69ce92[_0x0ef3('0x36')][_0x0ef3('0x3e')]);_0x1c11d5[_0x0ef3('0x3f')]=qs[_0x0ef3('0x37')](_[_0x0ef3('0x40')](_0x69ce92[_0x0ef3('0x36')],_0x47b020['filters']),_0x3d6e14);if(_0x69ce92['query']['filter']){_0x1c11d5[_0x0ef3('0x3f')]=_['merge'](_0x1c11d5[_0x0ef3('0x3f')],{'$or':_[_0x0ef3('0x34')](_0x3d6e14,function(_0x104327){if(_0x104327[_0x0ef3('0x31')]!==_0x0ef3('0x41')){var _0x193452={};_0x193452[_0x104327[_0x0ef3('0x35')]]={'$like':'%'+_0x69ce92[_0x0ef3('0x36')][_0x0ef3('0x42')]+'%'};return _0x193452;}})});}_0x1c11d5=_[_0x0ef3('0x43')]({},_0x1c11d5,_0x69ce92[_0x0ef3('0x44')]);var _0x1287ab={'where':_0x1c11d5[_0x0ef3('0x3f')]};return db[_0x0ef3('0x2e')][_0x0ef3('0x21')](_0x1287ab)[_0x0ef3('0x29')](function(_0x5a6c1f){_0x3fb8e5[_0x0ef3('0x21')]=_0x5a6c1f;if(_0x69ce92[_0x0ef3('0x36')][_0x0ef3('0x45')]){_0x1c11d5[_0x0ef3('0x46')]=[{'all':!![]}];}return db['VtigerAccount'][_0x0ef3('0x47')](_0x1c11d5);})[_0x0ef3('0x29')](function(_0x3cf17f){_0x3fb8e5[_0x0ef3('0x48')]=_0x3cf17f;return _0x3fb8e5;})['then'](respondWithFilteredResult(_0x2a6b6e,_0x1c11d5))[_0x0ef3('0x49')](handleError(_0x2a6b6e,null));};exports[_0x0ef3('0x4a')]=function(_0x472cf8,_0x51d1a1){var _0x26b341={'raw':![],'where':{'id':_0x472cf8[_0x0ef3('0x4b')]['id']}},_0x1e5b87={};_0x1e5b87[_0x0ef3('0x33')]=_['keys'](db[_0x0ef3('0x2e')][_0x0ef3('0x2f')]);_0x1e5b87[_0x0ef3('0x36')]=_[_0x0ef3('0x4c')](_0x472cf8[_0x0ef3('0x36')]);_0x1e5b87['filters']=_[_0x0ef3('0x39')](_0x1e5b87[_0x0ef3('0x33')],_0x1e5b87[_0x0ef3('0x36')]);_0x26b341[_0x0ef3('0x38')]=_['intersection'](_0x1e5b87[_0x0ef3('0x33')],qs[_0x0ef3('0x4d')](_0x472cf8[_0x0ef3('0x36')][_0x0ef3('0x4d')]));_0x26b341[_0x0ef3('0x38')]=_0x26b341['attributes'][_0x0ef3('0x3a')]?_0x26b341[_0x0ef3('0x38')]:_0x1e5b87[_0x0ef3('0x33')];if(_0x472cf8[_0x0ef3('0x36')][_0x0ef3('0x45')]){_0x26b341[_0x0ef3('0x46')]=[{'all':!![]}];}_0x26b341=_[_0x0ef3('0x43')]({},_0x26b341,_0x472cf8[_0x0ef3('0x44')]);return db[_0x0ef3('0x2e')][_0x0ef3('0x4e')](_0x26b341)['then'](handleEntityNotFound(_0x51d1a1,null))[_0x0ef3('0x29')](respondWithResult(_0x51d1a1,null))[_0x0ef3('0x49')](handleError(_0x51d1a1,null));};exports[_0x0ef3('0x4f')]=function(_0x4619c8,_0x15720b){return db['VtigerAccount'][_0x0ef3('0x4f')](_0x4619c8['body'],{})[_0x0ef3('0x29')](respondWithResult(_0x15720b,0xc9))['catch'](handleError(_0x15720b,null));};exports['update']=function(_0x2a1f00,_0x5e4d83){if(_0x2a1f00['body']['id']){delete _0x2a1f00[_0x0ef3('0x50')]['id'];}return db[_0x0ef3('0x2e')][_0x0ef3('0x4e')]({'where':{'id':_0x2a1f00[_0x0ef3('0x4b')]['id']}})[_0x0ef3('0x29')](handleEntityNotFound(_0x5e4d83,null))[_0x0ef3('0x29')](saveUpdates(_0x2a1f00[_0x0ef3('0x50')],null))[_0x0ef3('0x29')](respondWithResult(_0x5e4d83,null))[_0x0ef3('0x49')](handleError(_0x5e4d83,null));};exports[_0x0ef3('0x2a')]=function(_0x40164d,_0x3eca66){return db[_0x0ef3('0x2e')][_0x0ef3('0x4e')]({'where':{'id':_0x40164d[_0x0ef3('0x4b')]['id']}})[_0x0ef3('0x29')](handleEntityNotFound(_0x3eca66,null))[_0x0ef3('0x29')](removeEntity(_0x3eca66,null))['catch'](handleError(_0x3eca66,null));};exports['getConfigurations']=function(_0x4d56fd,_0x1e02bd,_0x289077){var _0x3957b7={};var _0x151928={};var _0x32448b;var _0x4f6ea1;return db['VtigerAccount'][_0x0ef3('0x51')]({'where':{'id':_0x4d56fd[_0x0ef3('0x4b')]['id']}})['then'](handleEntityNotFound(_0x1e02bd,null))[_0x0ef3('0x29')](function(_0x1894ce){if(_0x1894ce){_0x32448b=_0x1894ce;_0x151928['model']=_[_0x0ef3('0x4c')](db['VtigerConfiguration']['rawAttributes']);_0x151928[_0x0ef3('0x36')]=_[_0x0ef3('0x4c')](_0x4d56fd['query']);_0x151928[_0x0ef3('0x37')]=_[_0x0ef3('0x39')](_0x151928[_0x0ef3('0x33')],_0x151928['query']);_0x3957b7[_0x0ef3('0x38')]=_[_0x0ef3('0x39')](_0x151928[_0x0ef3('0x33')],qs[_0x0ef3('0x4d')](_0x4d56fd['query'][_0x0ef3('0x4d')]));_0x3957b7[_0x0ef3('0x38')]=_0x3957b7[_0x0ef3('0x38')]['length']?_0x3957b7['attributes']:_0x151928[_0x0ef3('0x33')];_0x3957b7[_0x0ef3('0x3d')]=qs[_0x0ef3('0x3e')](_0x4d56fd[_0x0ef3('0x36')]['sort']);_0x3957b7['where']=qs[_0x0ef3('0x37')](_[_0x0ef3('0x40')](_0x4d56fd[_0x0ef3('0x36')],_0x151928[_0x0ef3('0x37')]));if(_0x4d56fd[_0x0ef3('0x36')][_0x0ef3('0x42')]){_0x3957b7[_0x0ef3('0x3f')]=_[_0x0ef3('0x43')](_0x3957b7[_0x0ef3('0x3f')],{'$or':_[_0x0ef3('0x34')](_0x3957b7[_0x0ef3('0x38')],function(_0x9de291){var _0x48fdd9={};_0x48fdd9[_0x9de291]={'$like':'%'+_0x4d56fd[_0x0ef3('0x36')][_0x0ef3('0x42')]+'%'};return _0x48fdd9;})});}_0x3957b7=_['merge']({},_0x3957b7,_0x4d56fd[_0x0ef3('0x44')]);return _0x32448b[_0x0ef3('0x52')](_0x3957b7);}})['then'](function(_0x1c1b2f){if(_0x1c1b2f){_0x4f6ea1=_0x1c1b2f[_0x0ef3('0x3a')];if(!_0x4d56fd[_0x0ef3('0x36')][_0x0ef3('0x3b')](_0x0ef3('0x3c'))){_0x3957b7[_0x0ef3('0x22')]=qs['limit'](_0x4d56fd['query'][_0x0ef3('0x22')]);_0x3957b7['offset']=qs[_0x0ef3('0x1f')](_0x4d56fd[_0x0ef3('0x36')][_0x0ef3('0x1f')]);}return _0x32448b[_0x0ef3('0x52')](_0x3957b7);}})[_0x0ef3('0x29')](function(_0x10ef23){if(_0x10ef23){return _0x10ef23?{'count':_0x4f6ea1,'rows':_0x10ef23}:null;}})[_0x0ef3('0x29')](respondWithResult(_0x1e02bd,null))[_0x0ef3('0x49')](handleError(_0x1e02bd,null));};exports['addConfiguration']=function(_0x103e87,_0x2c0506,_0x2b807e){if(_0x103e87['body']['id']){delete _0x103e87[_0x0ef3('0x50')]['id'];}return db[_0x0ef3('0x2e')][_0x0ef3('0x51')]({'where':{'id':_0x103e87['params']['id']}})[_0x0ef3('0x29')](handleEntityNotFound(_0x2c0506,null))[_0x0ef3('0x29')](function(_0x40d01c){if(_0x40d01c){_0x103e87[_0x0ef3('0x50')][_0x0ef3('0x53')]=_0x40d01c['id'];_0x103e87['body']['Subjects']=integrations['getSubjects'](_0x103e87[_0x0ef3('0x50')][_0x0ef3('0x54')],_0x103e87['body'][_0x0ef3('0x31')]);_0x103e87['body'][_0x0ef3('0x55')]=integrations[_0x0ef3('0x56')](_0x103e87[_0x0ef3('0x50')][_0x0ef3('0x54')],_0x103e87[_0x0ef3('0x50')]['type']);return db[_0x0ef3('0x57')][_0x0ef3('0x4f')](_0x103e87[_0x0ef3('0x50')],{'include':[{'model':db[_0x0ef3('0x58')],'as':_0x0ef3('0x59')},{'model':db[_0x0ef3('0x58')],'as':_0x0ef3('0x55')}]});}return null;})[_0x0ef3('0x29')](respondWithResult(_0x2c0506,null))[_0x0ef3('0x49')](handleError(_0x2c0506,null));};var md5=require(_0x0ef3('0x5a'));exports[_0x0ef3('0x5b')]=function(_0x161699,_0x57011c,_0x1a7d19){var _0x1afbda=null;var _0xbee12=null;var _0x5d90fe=null;var _0x50413f=null;var _0x18aa29='';return db[_0x0ef3('0x2e')]['findOne']({'where':{'id':_0x161699[_0x0ef3('0x4b')]['id']},'attributes':['id','name',_0x0ef3('0x5c'),'description',_0x0ef3('0x5d'),_0x0ef3('0x5e'),'serverUrl','accessKey']})['then'](handleEntityNotFound(_0x57011c,null))['then'](function(_0x289e4a){if(_0x289e4a){_0x1afbda=_0x289e4a[_0x0ef3('0x5c')];_0xbee12=_0x289e4a[_0x0ef3('0x5f')];_0x5d90fe=_0x289e4a['moduleName'];_0x18aa29=_0x289e4a[_0x0ef3('0x5e')];var _0x3ac5c6=_0x18aa29[_0x0ef3('0x60')](-0x1);if(_0x3ac5c6==='/'){_0x18aa29=_0x18aa29['substring'](0x0,_0x18aa29[_0x0ef3('0x61')](_0x3ac5c6));}_0x50413f=util[_0x0ef3('0x62')](_0x0ef3('0x63'),_0x18aa29);var _0x415864={'method':'GET','uri':_0x50413f,'qs':{'operation':_0x0ef3('0x64'),'username':_0x289e4a[_0x0ef3('0x5c')]},'json':!![]};return rp(_0x415864);}})[_0x0ef3('0x29')](function(_0x411715){if(_0x411715[_0x0ef3('0x65')]){var _0x24f909={'method':'POST','uri':_0x50413f,'form':{'operation':_0x0ef3('0x66'),'username':_0x1afbda,'accessKey':md5(_0x411715[_0x0ef3('0x67')][_0x0ef3('0x68')]+_0xbee12)},'json':!![]};return rp(_0x24f909);}})['then'](function(_0x2ac852){if(_0x2ac852['success']){var _0xbb53e3={'method':'GET','uri':_0x50413f,'qs':{'operation':_0x0ef3('0x69'),'username':_0x1afbda,'sessionName':_0x2ac852[_0x0ef3('0x67')][_0x0ef3('0x6a')],'elementType':_0x5d90fe},'json':!![]};return rp(_0xbb53e3);}})[_0x0ef3('0x29')](function(_0x4741e8){if(_0x4741e8[_0x0ef3('0x65')]){var _0x5a110d=[_0x0ef3('0x6b'),'reference',_0x0ef3('0x6c')];_[_0x0ef3('0x6d')](_0x4741e8['result'][_0x0ef3('0x4d')],function(_0x346147){return _0x5a110d[_0x0ef3('0x6e')](_0x346147[_0x0ef3('0x31')][_0x0ef3('0x35')]);});_[_0x0ef3('0x6d')](_0x4741e8[_0x0ef3('0x67')][_0x0ef3('0x4d')],function(_0x4b05a1){return _0x4b05a1[_0x0ef3('0x6f')]===_0x0ef3('0x70');});return{'count':_0x4741e8['result'][_0x0ef3('0x4d')]['length'],'rows':_['map'](_0x4741e8[_0x0ef3('0x67')][_0x0ef3('0x4d')],function(_0x3ad129){return{'id':_0x3ad129['name'],'name':_0x3ad129[_0x0ef3('0x71')],'custom':_[_0x0ef3('0x72')](_0x3ad129[_0x0ef3('0x35')],_0x0ef3('0x73'))?!![]:![],'options':_0x3ad129['type'][_0x0ef3('0x35')]==='picklist'&&_0x3ad129['type'][_0x0ef3('0x74')][_0x0ef3('0x3a')]>0x0?_[_0x0ef3('0x34')](_0x3ad129[_0x0ef3('0x31')][_0x0ef3('0x74')],function(_0x3c3a54){return{'name':_0x3c3a54[_0x0ef3('0x71')],'value':_0x3c3a54[_0x0ef3('0x75')]};}):[]};})};}})[_0x0ef3('0x29')](respondWithResult(_0x57011c,null))[_0x0ef3('0x49')](function(_0xf56078){console[_0x0ef3('0x76')](_0x0ef3('0x77')+_0xf56078);var _0x5d8cd2=_0x161699[_0x0ef3('0x36')][_0x0ef3('0x78')]?0x1f4:_0xf56078[_0x0ef3('0x79')]||0x1f4;logger[_0x0ef3('0x7a')](_0x0ef3('0x7b'),_0x0ef3('0x5b'),_0x5d8cd2,JSON[_0x0ef3('0x7c')](_0xf56078));delete _0xf56078['name'];if(_0x5d8cd2===0x191){_0x5d8cd2=0x190;}_0x57011c[_0x0ef3('0x1d')](_0x5d8cd2)[_0x0ef3('0x2c')](_0x161699[_0x0ef3('0x36')][_0x0ef3('0x78')]?{'message':_0x0ef3('0x7d'),'statusCode':_0xf56078['statusCode']}:_0xf56078);});};
\ No newline at end of file