Built motion from commit (unavailable).|2.5.27
[motion2.git] / server / api / voicePrefix / voicePrefix.controller.js
index 48ccab0..373f079 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xdded=['html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./voicePrefix.socket','register','sendStatus','status','json','count','offset','Content-Range','reject','save','update','then','destroy','VoicePrefixes','end','error','stack','name','send','index','map','VoicePrefix','fieldName','type','key','query','keys','intersection','attributes','model','fields','length','hasOwnProperty','nolimit','limit','order','sort','where','pick','filter','VIRTUAL','options','includeAll','include','findAll','show','params','rawAttributes','merge','find','catch','describe','create','sequelize','transaction','body','get','VoiceExtension','user','Unable\x20to\x20retrieve\x20the\x20current\x20user','role','UserProfileSection','userProfileId','UserProfileResource','Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s','context','exten','app','system','description','Voice\x20Prefix\x20Extension','priority','appdata','prefix','VoicePrefixId','bulkCreate','push','CDR(prefix)=','callerIdAll','Set','PREFIX-CALLERIDALL=','NoOp','${EXTEN:','charAt','system-','VoiceExtensionId','addAgents','ids','spread','emit','removeAgents','isArray','userVoicePrefix:remove','getAgents','findOne','User','filters'];(function(_0x4ae625,_0xf396d0){var _0x31accf=function(_0x3ded6b){while(--_0x3ded6b){_0x4ae625['push'](_0x4ae625['shift']());}};_0x31accf(++_0xf396d0);}(_0xdded,0x17a));var _0xddde=function(_0x47841b,_0x462ed8){_0x47841b=_0x47841b-0x0;var _0x14c584=_0xdded[_0x47841b];return _0x14c584;};'use strict';var pdf=require(_0xddde('0x0'));var emlformat=require(_0xddde('0x1'));var rimraf=require(_0xddde('0x2'));var zipdir=require(_0xddde('0x3'));var jsonpatch=require(_0xddde('0x4'));var rp=require(_0xddde('0x5'));var moment=require('moment');var BPromise=require(_0xddde('0x6'));var Mustache=require(_0xddde('0x7'));var util=require(_0xddde('0x8'));var path=require(_0xddde('0x9'));var sox=require(_0xddde('0xa'));var csv=require(_0xddde('0xb'));var ejs=require(_0xddde('0xc'));var fs=require('fs');var _=require(_0xddde('0xd'));var squel=require(_0xddde('0xe'));var crypto=require(_0xddde('0xf'));var jsforce=require(_0xddde('0x10'));var deskjs=require('desk.js');var toCsv=require(_0xddde('0xb'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xddde('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xddde('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xddde('0x13'))(_0xddde('0x14'));var utils=require(_0xddde('0x15'));var config=require(_0xddde('0x16'));var licenseUtil=require(_0xddde('0x17'));var db=require(_0xddde('0x18'))['db'];config[_0xddde('0x19')]=_[_0xddde('0x1a')](config['redis'],{'host':_0xddde('0x1b'),'port':0x18eb});var socket=require(_0xddde('0x1c'))(new Redis(config[_0xddde('0x19')]));require(_0xddde('0x1d'))[_0xddde('0x1e')](socket);function respondWithStatusCode(_0x31c111,_0x491be5){_0x491be5=_0x491be5||0xcc;return function(_0x20b440){if(_0x20b440){return _0x31c111[_0xddde('0x1f')](_0x491be5);}return _0x31c111[_0xddde('0x20')](_0x491be5)['end']();};}function respondWithResult(_0x5de7ce,_0xadd497){_0xadd497=_0xadd497||0xc8;return function(_0x4e98fd){if(_0x4e98fd){return _0x5de7ce[_0xddde('0x20')](_0xadd497)[_0xddde('0x21')](_0x4e98fd);}};}function respondWithFilteredResult(_0x338fa7,_0x463254){return function(_0x2f0e58){if(_0x2f0e58){var _0x55349b=_0x2f0e58[_0xddde('0x22')],_0x249f19=_0x463254[_0xddde('0x23')],_0x129e3e=_0x463254['offset']+_0x463254['limit'],_0x4d251c;if(_0x129e3e>=_0x55349b){_0x129e3e=_0x55349b;_0x4d251c=0xc8;}else{_0x4d251c=0xce;}_0x338fa7[_0xddde('0x20')](_0x4d251c);return _0x338fa7['set'](_0xddde('0x24'),_0x249f19+'-'+_0x129e3e+'/'+_0x55349b)['json'](_0x2f0e58);}return null;};}function patchUpdates(_0x1576ca){return function(_0xea045b){try{jsonpatch['apply'](_0xea045b,_0x1576ca,!![]);}catch(_0x4ae0a8){return BPromise[_0xddde('0x25')](_0x4ae0a8);}return _0xea045b[_0xddde('0x26')]();};}function saveUpdates(_0x97bb0f,_0x275f76){return function(_0x2a3ea5){if(_0x2a3ea5){return _0x2a3ea5[_0xddde('0x27')](_0x97bb0f)[_0xddde('0x28')](function(_0x56a33a){return _0x56a33a;});}return null;};}function removeEntity(_0x59320f,_0x3daa4a){return function(_0x261895){if(_0x261895){return _0x261895[_0xddde('0x29')]()[_0xddde('0x28')](function(){var _0xdb57ef=_0x261895['get']({'plain':!![]});var _0x394da0=_0xddde('0x2a');return db['UserProfileResource']['destroy']({'where':{'type':_0x394da0,'resourceId':_0xdb57ef['id']}})[_0xddde('0x28')](function(){return _0x261895;});})[_0xddde('0x28')](function(){_0x59320f['status'](0xcc)[_0xddde('0x2b')]();});}};}function handleEntityNotFound(_0x45941e,_0x5328ac){return function(_0x1d1c3e){if(!_0x1d1c3e){_0x45941e[_0xddde('0x1f')](0x194);}return _0x1d1c3e;};}function handleError(_0x2dd131,_0x32be0f){_0x32be0f=_0x32be0f||0x1f4;return function(_0x477d44){logger[_0xddde('0x2c')](_0x477d44[_0xddde('0x2d')]);if(_0x477d44[_0xddde('0x2e')]){delete _0x477d44[_0xddde('0x2e')];}_0x2dd131[_0xddde('0x20')](_0x32be0f)[_0xddde('0x2f')](_0x477d44);};}exports[_0xddde('0x30')]=function(_0xe3d006,_0x718921){var _0x5e04d6={},_0x380acb={},_0x5312bb={'count':0x0,'rows':[]};var _0x24f01b=_[_0xddde('0x31')](db[_0xddde('0x32')]['rawAttributes'],function(_0x49b18c){return{'name':_0x49b18c[_0xddde('0x33')],'type':_0x49b18c[_0xddde('0x34')][_0xddde('0x35')]};});_0x380acb['model']=_['map'](_0x24f01b,_0xddde('0x2e'));_0x380acb[_0xddde('0x36')]=_[_0xddde('0x37')](_0xe3d006[_0xddde('0x36')]);_0x380acb['filters']=_[_0xddde('0x38')](_0x380acb['model'],_0x380acb[_0xddde('0x36')]);_0x5e04d6[_0xddde('0x39')]=_[_0xddde('0x38')](_0x380acb[_0xddde('0x3a')],qs[_0xddde('0x3b')](_0xe3d006[_0xddde('0x36')][_0xddde('0x3b')]));_0x5e04d6[_0xddde('0x39')]=_0x5e04d6[_0xddde('0x39')][_0xddde('0x3c')]?_0x5e04d6[_0xddde('0x39')]:_0x380acb[_0xddde('0x3a')];if(!_0xe3d006['query'][_0xddde('0x3d')](_0xddde('0x3e'))){_0x5e04d6['limit']=qs['limit'](_0xe3d006['query'][_0xddde('0x3f')]);_0x5e04d6[_0xddde('0x23')]=qs[_0xddde('0x23')](_0xe3d006[_0xddde('0x36')][_0xddde('0x23')]);}_0x5e04d6[_0xddde('0x40')]=qs[_0xddde('0x41')](_0xe3d006['query']['sort']);_0x5e04d6[_0xddde('0x42')]=qs['filters'](_[_0xddde('0x43')](_0xe3d006[_0xddde('0x36')],_0x380acb['filters']),_0x24f01b);if(_0xe3d006[_0xddde('0x36')][_0xddde('0x44')]){_0x5e04d6[_0xddde('0x42')]=_['merge'](_0x5e04d6['where'],{'$or':_[_0xddde('0x31')](_0x24f01b,function(_0x483834){if(_0x483834[_0xddde('0x34')]!==_0xddde('0x45')){var _0xffb4={};_0xffb4[_0x483834[_0xddde('0x2e')]]={'$like':'%'+_0xe3d006[_0xddde('0x36')][_0xddde('0x44')]+'%'};return _0xffb4;}})});}_0x5e04d6=_['merge']({},_0x5e04d6,_0xe3d006[_0xddde('0x46')]);var _0x439dd6={'where':_0x5e04d6[_0xddde('0x42')]};return db[_0xddde('0x32')][_0xddde('0x22')](_0x439dd6)['then'](function(_0x1f4ef2){_0x5312bb[_0xddde('0x22')]=_0x1f4ef2;if(_0xe3d006[_0xddde('0x36')][_0xddde('0x47')]){_0x5e04d6[_0xddde('0x48')]=[{'all':!![]}];}return db[_0xddde('0x32')][_0xddde('0x49')](_0x5e04d6);})[_0xddde('0x28')](function(_0x36adb0){_0x5312bb['rows']=_0x36adb0;return _0x5312bb;})[_0xddde('0x28')](respondWithFilteredResult(_0x718921,_0x5e04d6))['catch'](handleError(_0x718921,null));};exports[_0xddde('0x4a')]=function(_0x2da6c5,_0x4a708c){var _0x28069c={'raw':![],'where':{'id':_0x2da6c5[_0xddde('0x4b')]['id']}},_0x3e7667={};_0x3e7667['model']=_['keys'](db['VoicePrefix'][_0xddde('0x4c')]);_0x3e7667[_0xddde('0x36')]=_[_0xddde('0x37')](_0x2da6c5[_0xddde('0x36')]);_0x3e7667['filters']=_[_0xddde('0x38')](_0x3e7667[_0xddde('0x3a')],_0x3e7667[_0xddde('0x36')]);_0x28069c['attributes']=_[_0xddde('0x38')](_0x3e7667[_0xddde('0x3a')],qs[_0xddde('0x3b')](_0x2da6c5[_0xddde('0x36')][_0xddde('0x3b')]));_0x28069c['attributes']=_0x28069c[_0xddde('0x39')]['length']?_0x28069c[_0xddde('0x39')]:_0x3e7667['model'];if(_0x2da6c5[_0xddde('0x36')][_0xddde('0x47')]){_0x28069c[_0xddde('0x48')]=[{'all':!![]}];}_0x28069c=_[_0xddde('0x4d')]({},_0x28069c,_0x2da6c5[_0xddde('0x46')]);return db[_0xddde('0x32')][_0xddde('0x4e')](_0x28069c)[_0xddde('0x28')](handleEntityNotFound(_0x4a708c,null))['then'](respondWithResult(_0x4a708c,null))[_0xddde('0x4f')](handleError(_0x4a708c,null));};exports[_0xddde('0x29')]=function(_0x26133a,_0xe9610e){return db[_0xddde('0x32')][_0xddde('0x4e')]({'where':{'id':_0x26133a['params']['id']}})[_0xddde('0x28')](handleEntityNotFound(_0xe9610e,null))[_0xddde('0x28')](removeEntity(_0xe9610e,null))[_0xddde('0x4f')](handleError(_0xe9610e,null));};exports[_0xddde('0x50')]=function(_0x31ee5a,_0x5786e0){return db[_0xddde('0x32')][_0xddde('0x50')]()[_0xddde('0x28')](respondWithResult(_0x5786e0,null))[_0xddde('0x4f')](handleError(_0x5786e0,null));};exports[_0xddde('0x51')]=function(_0x360f4c,_0x31f85e){var _0x243aaa;return db[_0xddde('0x52')][_0xddde('0x53')](function(_0x43fcf6){return db[_0xddde('0x32')][_0xddde('0x51')](_0x360f4c[_0xddde('0x54')],{'transaction':_0x43fcf6})[_0xddde('0x28')](function(_0xd58937){_0x243aaa=_0xd58937[_0xddde('0x55')]({'plain':!![]});return db[_0xddde('0x56')]['find']({'where':{'id':_0x243aaa['VoiceExtensionId']},'raw':!![]})[_0xddde('0x28')](function(_0xb35cf8){return createVoicePrefixExtensions(_0x243aaa,_0xb35cf8,_0x43fcf6);});});})[_0xddde('0x28')](function(){var _0x37df05=_0x360f4c[_0xddde('0x57')]['get']({'plain':!![]});if(!_0x37df05)throw new Error(_0xddde('0x58'));if(_0x37df05[_0xddde('0x59')]===_0xddde('0x57')){var _0x229c27=_0x243aaa;return db[_0xddde('0x5a')][_0xddde('0x4e')]({'where':{'name':'VoicePrefixes','userProfileId':_0x37df05[_0xddde('0x5b')]},'raw':!![]})[_0xddde('0x28')](function(_0x15ab38){if(_0x15ab38&&_0x15ab38['autoAssociation']===0x0){return db[_0xddde('0x5c')][_0xddde('0x51')]({'name':_0x229c27['name'],'resourceId':_0x229c27['id'],'type':_0x15ab38['name'],'sectionId':_0x15ab38['id']},{})['then'](function(){return _0x243aaa;});}else{return _0x243aaa;}})[_0xddde('0x4f')](function(_0x4c8fef){logger[_0xddde('0x2c')](_0xddde('0x5d'),_0x4c8fef);throw _0x4c8fef;});}return _0x243aaa;})[_0xddde('0x28')](respondWithResult(_0x31f85e,null))[_0xddde('0x4f')](handleError(_0x31f85e,null));};function Extension(_0x44b52c,_0x58d4bc,_0x5cdc94,_0x4775b4){this[_0xddde('0x5e')]='from-sip';this[_0xddde('0x5f')]=_0x44b52c;this[_0xddde('0x60')]=_0x5cdc94;this[_0xddde('0x34')]=_0xddde('0x61');this[_0xddde('0x62')]=_0xddde('0x63');this[_0xddde('0x64')]=_0x58d4bc;this[_0xddde('0x65')]=_0x4775b4;}function createVoicePrefixExtensions(_0xbfdf1c,_0x252a26,_0x487ac5){return new BPromise(function(_0x129641,_0x4f92fa){var _0x583f08=new Extension(formatPrefixName(_0xbfdf1c[_0xddde('0x66')]),0x1,'NoOp','Voice\x20Prefix');_0x583f08['VoicePrefixId']=_0xbfdf1c['id'];return db[_0xddde('0x56')]['create'](_0x583f08,{'transaction':_0x487ac5})[_0xddde('0x28')](function(_0x20f512){var _0x1fbca9=_0x20f512['get']({'plain':!![]});var _0x2fb87b=_[_0xddde('0x31')](addVoicePrefixExtensions(_0xbfdf1c,_0x252a26),function(_0x13af92){_0x13af92['VoiceExtensionId']=_0x1fbca9['id'];_0x13af92[_0xddde('0x67')]=_0xbfdf1c['id'];return _0x13af92;});return db[_0xddde('0x56')][_0xddde('0x68')](_0x2fb87b,{'transaction':_0x487ac5})[_0xddde('0x28')](function(_0xa89ab2){if(!_0xa89ab2){return _0x4f92fa('Extensions\x20creation\x20failed');}else{return _0x129641(_0xa89ab2);}})[_0xddde('0x4f')](function(_0x5131ad){return _0x4f92fa(_0x5131ad);});});;});};function addVoicePrefixExtensions(_0x25e7b4,_0x3c352d){var _0x9c3ffb=[];var _0x593a0a=formatPrefixName(_0x25e7b4['prefix']);_0x9c3ffb[_0xddde('0x69')](new Extension(_0x593a0a,0x2,'Set',_0xddde('0x6a')+_0x25e7b4[_0xddde('0x2e')]));if(_0x25e7b4[_0xddde('0x6b')]){_0x9c3ffb[_0xddde('0x69')](new Extension(_0x593a0a,0x3,_0xddde('0x6c'),_0xddde('0x6d')+_0x25e7b4[_0xddde('0x6b')]));}else{_0x9c3ffb[_0xddde('0x69')](new Extension(_0x593a0a,0x3,_0xddde('0x6e'),'No\x20callerid\x20available'));}_0x9c3ffb[_0xddde('0x69')](new Extension(_0x593a0a,0x4,'goto',_0x3c352d[_0xddde('0x5e')]+','+_0xddde('0x6f')+(0x8+_0x25e7b4['name'][_0xddde('0x3c')])+'}'+','+0x1));return _0x9c3ffb;}function formatPrefixName(_0x28ec26){var _0x378758='_';for(var _0x54c787=0x0;_0x54c787<_0x28ec26[_0xddde('0x3c')];_0x54c787++){if(_0x28ec26[_0xddde('0x70')](_0x54c787)=='-'){_0x378758+=_0x28ec26[_0xddde('0x70')](_0x54c787);}else{_0x378758+='['+_0x28ec26[_0xddde('0x70')](_0x54c787)+']';}}_0x378758+='.';return _0x378758;}exports['update']=function(_0x207baf,_0x141103,_0x34cf93){var _0x58d58f=_0x207baf[_0xddde('0x54')];_0x58d58f['prefix']=_0xddde('0x71')+_0x58d58f[_0xddde('0x2e')]+'-';return db[_0xddde('0x52')]['transaction'](function(_0x25fd26){return db['VoicePrefix'][_0xddde('0x27')](_0x58d58f,{'where':{'id':_0x58d58f['id']},'transaction':_0x25fd26})['then'](function(){return db['VoiceExtension'][_0xddde('0x29')]({'where':{'VoicePrefixId':_0x58d58f['id']},'transaction':_0x25fd26})[_0xddde('0x28')](function(){return db[_0xddde('0x56')]['find']({'where':{'id':_0x58d58f[_0xddde('0x72')]},'raw':!![]})[_0xddde('0x28')](function(_0x55b57e){return createVoicePrefixExtensions(_0x58d58f,_0x55b57e,_0x25fd26);});});});})[_0xddde('0x28')](function(){return db['VoicePrefix']['findById'](_0x58d58f['id']);})[_0xddde('0x28')](respondWithResult(_0x141103,null))[_0xddde('0x4f')](handleError(_0x141103,null));};exports[_0xddde('0x73')]=function(_0x497989,_0x55a315,_0x4b9ace){return db[_0xddde('0x32')][_0xddde('0x4e')]({'where':{'id':_0x497989[_0xddde('0x4b')]['id']}})[_0xddde('0x28')](handleEntityNotFound(_0x55a315,null))[_0xddde('0x28')](function(_0x41d580){if(_0x41d580){return _0x41d580[_0xddde('0x73')](_0x497989['body'][_0xddde('0x74')],_['omit'](_0x497989[_0xddde('0x54')],[_0xddde('0x74'),'id'])||{})[_0xddde('0x75')](function(_0x1c5cf6){for(var _0x16e211=0x0;_0x16e211<_0x497989['body'][_0xddde('0x74')][_0xddde('0x3c')];_0x16e211+=0x1){socket[_0xddde('0x76')]('userVoicePrefix:save',{'UserId':_0x497989[_0xddde('0x54')][_0xddde('0x74')][_0x16e211],'VoicePrefixId':_0x497989[_0xddde('0x4b')]['id']});}return _0x1c5cf6;});}})[_0xddde('0x28')](respondWithResult(_0x55a315,null))[_0xddde('0x4f')](handleError(_0x55a315,null));};exports[_0xddde('0x77')]=function(_0x2d3fc7,_0xd72242,_0x12422a){return db[_0xddde('0x32')][_0xddde('0x4e')]({'where':{'id':_0x2d3fc7[_0xddde('0x4b')]['id']}})['then'](handleEntityNotFound(_0xd72242,null))[_0xddde('0x28')](function(_0x5ca8cb){if(_0x5ca8cb){return _0x5ca8cb[_0xddde('0x77')](_0x2d3fc7[_0xddde('0x36')][_0xddde('0x74')])[_0xddde('0x28')](function(){if(_[_0xddde('0x78')](_0x2d3fc7['query'][_0xddde('0x74')])){for(var _0x527101=0x0;_0x527101<_0x2d3fc7[_0xddde('0x36')]['ids'][_0xddde('0x3c')];_0x527101+=0x1){socket[_0xddde('0x76')](_0xddde('0x79'),{'UserId':Number(_0x2d3fc7['query']['ids'][_0x527101]),'VoicePrefixId':Number(_0x2d3fc7[_0xddde('0x4b')]['id'])});}}else{socket[_0xddde('0x76')](_0xddde('0x79'),{'UserId':Number(_0x2d3fc7['query'][_0xddde('0x74')]),'VoicePrefixId':Number(_0x2d3fc7['params']['id'])});}});}})['then'](respondWithStatusCode(_0xd72242,null))['catch'](handleError(_0xd72242,null));};exports[_0xddde('0x7a')]=function(_0x32a27c,_0x5d81fe,_0x1b83db){var _0x267481={};var _0x2f0fda={};var _0xf246e3;var _0x2f35da;return db[_0xddde('0x32')][_0xddde('0x7b')]({'where':{'id':_0x32a27c['params']['id']}})['then'](handleEntityNotFound(_0x5d81fe,null))[_0xddde('0x28')](function(_0x57fa10){if(_0x57fa10){_0xf246e3=_0x57fa10;_0x2f0fda[_0xddde('0x3a')]=_[_0xddde('0x37')](db[_0xddde('0x7c')][_0xddde('0x4c')]);_0x2f0fda[_0xddde('0x36')]=_[_0xddde('0x37')](_0x32a27c['query']);_0x2f0fda[_0xddde('0x7d')]=_[_0xddde('0x38')](_0x2f0fda['model'],_0x2f0fda[_0xddde('0x36')]);_0x267481[_0xddde('0x39')]=_[_0xddde('0x38')](_0x2f0fda[_0xddde('0x3a')],qs[_0xddde('0x3b')](_0x32a27c[_0xddde('0x36')][_0xddde('0x3b')]));_0x267481[_0xddde('0x39')]=_0x267481['attributes'][_0xddde('0x3c')]?_0x267481[_0xddde('0x39')]:_0x2f0fda[_0xddde('0x3a')];_0x267481[_0xddde('0x40')]=qs['sort'](_0x32a27c[_0xddde('0x36')][_0xddde('0x41')]);_0x267481['where']=qs['filters'](_['pick'](_0x32a27c[_0xddde('0x36')],_0x2f0fda[_0xddde('0x7d')]));if(_0x32a27c['query'][_0xddde('0x44')]){_0x267481[_0xddde('0x42')]=_['merge'](_0x267481[_0xddde('0x42')],{'$or':_['map'](_0x267481[_0xddde('0x39')],function(_0x3a9445){var _0x4bfcee={};_0x4bfcee[_0x3a9445]={'$like':'%'+_0x32a27c['query'][_0xddde('0x44')]+'%'};return _0x4bfcee;})});}_0x267481=_[_0xddde('0x4d')]({},_0x267481,_0x32a27c[_0xddde('0x46')]);return _0xf246e3[_0xddde('0x7a')](_0x267481);}})[_0xddde('0x28')](function(_0x55c3af){if(_0x55c3af){_0x2f35da=_0x55c3af['length'];if(!_0x32a27c['query'][_0xddde('0x3d')](_0xddde('0x3e'))){_0x267481[_0xddde('0x3f')]=qs[_0xddde('0x3f')](_0x32a27c['query']['limit']);_0x267481[_0xddde('0x23')]=qs[_0xddde('0x23')](_0x32a27c[_0xddde('0x36')][_0xddde('0x23')]);}return _0xf246e3['getAgents'](_0x267481);}})['then'](function(_0x484475){if(_0x484475){return _0x484475?{'count':_0x2f35da,'rows':_0x484475}:null;}})[_0xddde('0x28')](respondWithResult(_0x5d81fe,null))['catch'](handleError(_0x5d81fe,null));};
\ No newline at end of file
+var _0x803f=['../../components/parsers/advancedSearch','../../config/logger','../../config/environment','redis','defaults','socket.io-emitter','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','save','update','then','destroy','get','VoicePrefixes','stack','name','send','map','VoicePrefix','rawAttributes','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','VIRTUAL','filter','includeAll','findAll','catch','show','params','include','merge','options','find','describe','create','sequelize','transaction','VoiceExtension','VoiceExtensionId','user','role','UserProfileSection','autoAssociation','UserProfileResource','context','from-sip','exten','app','priority','prefix','Voice\x20Prefix','VoicePrefixId','bulkCreate','push','Set','callerIdAll','NoOp','No\x20callerid\x20available','goto','${EXTEN:','charAt','body','system-','findById','addAgents','ids','omit','spread','emit','userVoicePrefix:save','removeAgents','userVoicePrefix:remove','findOne','User','getAgents','nolimit','rimraf','zip-dir','fast-json-patch','request-promise','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','querystring','ioredis','../../components/auth/service'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x803f,0x144));var _0xf803=function(_0x93fa94,_0x38ea85){_0x93fa94=_0x93fa94-0x0;var _0x35eb88=_0x803f[_0x93fa94];return _0x35eb88;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xf803('0x0'));var zipdir=require(_0xf803('0x1'));var jsonpatch=require(_0xf803('0x2'));var rp=require(_0xf803('0x3'));var moment=require(_0xf803('0x4'));var BPromise=require('bluebird');var Mustache=require(_0xf803('0x5'));var util=require(_0xf803('0x6'));var path=require(_0xf803('0x7'));var sox=require(_0xf803('0x8'));var csv=require(_0xf803('0x9'));var ejs=require(_0xf803('0xa'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0xf803('0xb'));var squel=require(_0xf803('0xc'));var crypto=require(_0xf803('0xd'));var jsforce=require(_0xf803('0xe'));var deskjs=require('desk.js');var toCsv=require('to-csv');var querystring=require(_0xf803('0xf'));var Papa=require('papaparse');var Redis=require(_0xf803('0x10'));var authService=require(_0xf803('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0xf803('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xf803('0x13'))('api');var utils=require('../../config/utils');var config=require(_0xf803('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0xf803('0x15')]=_[_0xf803('0x16')](config[_0xf803('0x15')],{'host':'localhost','port':0x18eb});var socket=require(_0xf803('0x17'))(new Redis(config[_0xf803('0x15')]));require('./voicePrefix.socket')['register'](socket);function respondWithStatusCode(_0xaf3d8d,_0x266308){_0x266308=_0x266308||0xcc;return function(_0x217079){if(_0x217079){return _0xaf3d8d[_0xf803('0x18')](_0x266308);}return _0xaf3d8d[_0xf803('0x19')](_0x266308)[_0xf803('0x1a')]();};}function respondWithResult(_0x56a5db,_0x454471){_0x454471=_0x454471||0xc8;return function(_0x5f281c){if(_0x5f281c){return _0x56a5db[_0xf803('0x19')](_0x454471)[_0xf803('0x1b')](_0x5f281c);}};}function respondWithFilteredResult(_0x1d645b,_0x2e30dc){return function(_0x5641a0){if(_0x5641a0){var _0x232bc8=_0x5641a0[_0xf803('0x1c')],_0x4d2ce7=_0x2e30dc[_0xf803('0x1d')],_0x4594de=_0x2e30dc['offset']+_0x2e30dc[_0xf803('0x1e')],_0x41c219;if(_0x4594de>=_0x232bc8){_0x4594de=_0x232bc8;_0x41c219=0xc8;}else{_0x41c219=0xce;}_0x1d645b['status'](_0x41c219);return _0x1d645b['set'](_0xf803('0x1f'),_0x4d2ce7+'-'+_0x4594de+'/'+_0x232bc8)[_0xf803('0x1b')](_0x5641a0);}return null;};}function patchUpdates(_0x6e7c8d){return function(_0xb3e488){try{jsonpatch[_0xf803('0x20')](_0xb3e488,_0x6e7c8d,!![]);}catch(_0x831a71){return BPromise['reject'](_0x831a71);}return _0xb3e488[_0xf803('0x21')]();};}function saveUpdates(_0x59f6f2,_0x48d266){return function(_0x11282a){if(_0x11282a){return _0x11282a[_0xf803('0x22')](_0x59f6f2)[_0xf803('0x23')](function(_0x4cd887){return _0x4cd887;});}return null;};}function removeEntity(_0x1b998e,_0x5afaee){return function(_0x2e8e3b){if(_0x2e8e3b){return _0x2e8e3b[_0xf803('0x24')]()[_0xf803('0x23')](function(){var _0x5390a8=_0x2e8e3b[_0xf803('0x25')]({'plain':!![]});var _0x69c7fc=_0xf803('0x26');return db['UserProfileResource'][_0xf803('0x24')]({'where':{'type':_0x69c7fc,'resourceId':_0x5390a8['id']}})[_0xf803('0x23')](function(){return _0x2e8e3b;});})[_0xf803('0x23')](function(){_0x1b998e[_0xf803('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0x3ad8b6,_0x5d5912){return function(_0x18e68b){if(!_0x18e68b){_0x3ad8b6[_0xf803('0x18')](0x194);}return _0x18e68b;};}function handleError(_0x1404de,_0x554d17){_0x554d17=_0x554d17||0x1f4;return function(_0x419229){logger['error'](_0x419229[_0xf803('0x27')]);if(_0x419229[_0xf803('0x28')]){delete _0x419229[_0xf803('0x28')];}_0x1404de[_0xf803('0x19')](_0x554d17)[_0xf803('0x29')](_0x419229);};}exports['index']=function(_0x1335bc,_0x4c77ff){var _0x467543={},_0x1a0b38={},_0x553a49={'count':0x0,'rows':[]};var _0x261270=_[_0xf803('0x2a')](db[_0xf803('0x2b')][_0xf803('0x2c')],function(_0x1e4ddc){return{'name':_0x1e4ddc['fieldName'],'type':_0x1e4ddc[_0xf803('0x2d')][_0xf803('0x2e')]};});_0x1a0b38[_0xf803('0x2f')]=_[_0xf803('0x2a')](_0x261270,'name');_0x1a0b38[_0xf803('0x30')]=_[_0xf803('0x31')](_0x1335bc[_0xf803('0x30')]);_0x1a0b38[_0xf803('0x32')]=_[_0xf803('0x33')](_0x1a0b38[_0xf803('0x2f')],_0x1a0b38[_0xf803('0x30')]);_0x467543[_0xf803('0x34')]=_['intersection'](_0x1a0b38[_0xf803('0x2f')],qs['fields'](_0x1335bc[_0xf803('0x30')][_0xf803('0x35')]));_0x467543[_0xf803('0x34')]=_0x467543[_0xf803('0x34')][_0xf803('0x36')]?_0x467543[_0xf803('0x34')]:_0x1a0b38['model'];if(!_0x1335bc[_0xf803('0x30')][_0xf803('0x37')]('nolimit')){_0x467543[_0xf803('0x1e')]=qs[_0xf803('0x1e')](_0x1335bc[_0xf803('0x30')][_0xf803('0x1e')]);_0x467543[_0xf803('0x1d')]=qs['offset'](_0x1335bc[_0xf803('0x30')]['offset']);}_0x467543[_0xf803('0x38')]=qs[_0xf803('0x39')](_0x1335bc[_0xf803('0x30')][_0xf803('0x39')]);_0x467543[_0xf803('0x3a')]=qs[_0xf803('0x32')](_[_0xf803('0x3b')](_0x1335bc[_0xf803('0x30')],_0x1a0b38['filters']),_0x261270);if(_0x1335bc[_0xf803('0x30')]['filter']){_0x467543[_0xf803('0x3a')]=_['merge'](_0x467543['where'],{'$or':_[_0xf803('0x2a')](_0x261270,function(_0x5be7a5){if(_0x5be7a5[_0xf803('0x2d')]!==_0xf803('0x3c')){var _0x131d46={};_0x131d46[_0x5be7a5[_0xf803('0x28')]]={'$like':'%'+_0x1335bc[_0xf803('0x30')][_0xf803('0x3d')]+'%'};return _0x131d46;}})});}_0x467543=_['merge']({},_0x467543,_0x1335bc['options']);var _0x39279d={'where':_0x467543['where']};return db[_0xf803('0x2b')][_0xf803('0x1c')](_0x39279d)[_0xf803('0x23')](function(_0x325f06){_0x553a49[_0xf803('0x1c')]=_0x325f06;if(_0x1335bc[_0xf803('0x30')][_0xf803('0x3e')]){_0x467543['include']=[{'all':!![]}];}return db[_0xf803('0x2b')][_0xf803('0x3f')](_0x467543);})[_0xf803('0x23')](function(_0x1abde3){_0x553a49['rows']=_0x1abde3;return _0x553a49;})[_0xf803('0x23')](respondWithFilteredResult(_0x4c77ff,_0x467543))[_0xf803('0x40')](handleError(_0x4c77ff,null));};exports[_0xf803('0x41')]=function(_0xfc0991,_0x35132d){var _0xff25a0={'raw':![],'where':{'id':_0xfc0991[_0xf803('0x42')]['id']}},_0x53e223={};_0x53e223[_0xf803('0x2f')]=_[_0xf803('0x31')](db[_0xf803('0x2b')][_0xf803('0x2c')]);_0x53e223[_0xf803('0x30')]=_['keys'](_0xfc0991[_0xf803('0x30')]);_0x53e223[_0xf803('0x32')]=_[_0xf803('0x33')](_0x53e223[_0xf803('0x2f')],_0x53e223[_0xf803('0x30')]);_0xff25a0[_0xf803('0x34')]=_[_0xf803('0x33')](_0x53e223['model'],qs[_0xf803('0x35')](_0xfc0991['query'][_0xf803('0x35')]));_0xff25a0[_0xf803('0x34')]=_0xff25a0[_0xf803('0x34')][_0xf803('0x36')]?_0xff25a0[_0xf803('0x34')]:_0x53e223['model'];if(_0xfc0991[_0xf803('0x30')][_0xf803('0x3e')]){_0xff25a0[_0xf803('0x43')]=[{'all':!![]}];}_0xff25a0=_[_0xf803('0x44')]({},_0xff25a0,_0xfc0991[_0xf803('0x45')]);return db['VoicePrefix'][_0xf803('0x46')](_0xff25a0)[_0xf803('0x23')](handleEntityNotFound(_0x35132d,null))['then'](respondWithResult(_0x35132d,null))[_0xf803('0x40')](handleError(_0x35132d,null));};exports[_0xf803('0x24')]=function(_0x259973,_0x5544c5){return db[_0xf803('0x2b')][_0xf803('0x46')]({'where':{'id':_0x259973[_0xf803('0x42')]['id']}})[_0xf803('0x23')](handleEntityNotFound(_0x5544c5,null))[_0xf803('0x23')](removeEntity(_0x5544c5,null))['catch'](handleError(_0x5544c5,null));};exports[_0xf803('0x47')]=function(_0x3f7f97,_0x7ca2e8){return db[_0xf803('0x2b')][_0xf803('0x47')]()[_0xf803('0x23')](respondWithResult(_0x7ca2e8,null))[_0xf803('0x40')](handleError(_0x7ca2e8,null));};exports[_0xf803('0x48')]=function(_0x59c3d9,_0x5d3bc6){var _0x85ef04;return db[_0xf803('0x49')][_0xf803('0x4a')](function(_0xd40ab2){return db['VoicePrefix'][_0xf803('0x48')](_0x59c3d9['body'],{'transaction':_0xd40ab2})[_0xf803('0x23')](function(_0x837f54){_0x85ef04=_0x837f54[_0xf803('0x25')]({'plain':!![]});return db[_0xf803('0x4b')][_0xf803('0x46')]({'where':{'id':_0x85ef04[_0xf803('0x4c')]},'raw':!![]})['then'](function(_0xe14b1f){return createVoicePrefixExtensions(_0x85ef04,_0xe14b1f,_0xd40ab2);});});})[_0xf803('0x23')](function(){var _0x11bbe2=_0x59c3d9[_0xf803('0x4d')][_0xf803('0x25')]({'plain':!![]});if(!_0x11bbe2)throw new Error('Unable\x20to\x20retrieve\x20the\x20current\x20user');if(_0x11bbe2[_0xf803('0x4e')]===_0xf803('0x4d')){var _0xea9eef=_0x85ef04;return db[_0xf803('0x4f')]['find']({'where':{'name':_0xf803('0x26'),'userProfileId':_0x11bbe2['userProfileId']},'raw':!![]})[_0xf803('0x23')](function(_0x5bd57d){if(_0x5bd57d&&_0x5bd57d[_0xf803('0x50')]===0x0){return db[_0xf803('0x51')][_0xf803('0x48')]({'name':_0xea9eef[_0xf803('0x28')],'resourceId':_0xea9eef['id'],'type':_0x5bd57d[_0xf803('0x28')],'sectionId':_0x5bd57d['id']},{})['then'](function(){return _0x85ef04;});}else{return _0x85ef04;}})[_0xf803('0x40')](function(_0x2486ad){logger['error']('Unable\x20to\x20associate\x20the\x20resource\x20to\x20the\x20User\x20Profile:\x20%s',_0x2486ad);throw _0x2486ad;});}return _0x85ef04;})['then'](respondWithResult(_0x5d3bc6,null))[_0xf803('0x40')](handleError(_0x5d3bc6,null));};function Extension(_0x59bbfb,_0x22a7d0,_0x4821a9,_0x43424b){this[_0xf803('0x52')]=_0xf803('0x53');this[_0xf803('0x54')]=_0x59bbfb;this[_0xf803('0x55')]=_0x4821a9;this[_0xf803('0x2d')]='system';this['description']='Voice\x20Prefix\x20Extension';this[_0xf803('0x56')]=_0x22a7d0;this['appdata']=_0x43424b;}function createVoicePrefixExtensions(_0x110b92,_0x10f5ca,_0x5cc77d){return new BPromise(function(_0x251473,_0x1781d8){var _0xa0d21b=new Extension(formatPrefixName(_0x110b92[_0xf803('0x57')]),0x1,'NoOp',_0xf803('0x58'));_0xa0d21b[_0xf803('0x59')]=_0x110b92['id'];return db[_0xf803('0x4b')][_0xf803('0x48')](_0xa0d21b,{'transaction':_0x5cc77d})[_0xf803('0x23')](function(_0x581bb7){var _0x274819=_0x581bb7[_0xf803('0x25')]({'plain':!![]});var _0x33f01c=_[_0xf803('0x2a')](addVoicePrefixExtensions(_0x110b92,_0x10f5ca),function(_0x34c1ee){_0x34c1ee['VoiceExtensionId']=_0x274819['id'];_0x34c1ee[_0xf803('0x59')]=_0x110b92['id'];return _0x34c1ee;});return db[_0xf803('0x4b')][_0xf803('0x5a')](_0x33f01c,{'transaction':_0x5cc77d})[_0xf803('0x23')](function(_0x5dfa99){if(!_0x5dfa99){return _0x1781d8('Extensions\x20creation\x20failed');}else{return _0x251473(_0x5dfa99);}})[_0xf803('0x40')](function(_0x23444b){return _0x1781d8(_0x23444b);});});;});};function addVoicePrefixExtensions(_0x59f473,_0x31e07b){var _0x567565=[];var _0x91a198=formatPrefixName(_0x59f473[_0xf803('0x57')]);_0x567565[_0xf803('0x5b')](new Extension(_0x91a198,0x2,_0xf803('0x5c'),'CDR(prefix)='+_0x59f473[_0xf803('0x28')]));if(_0x59f473[_0xf803('0x5d')]){_0x567565[_0xf803('0x5b')](new Extension(_0x91a198,0x3,_0xf803('0x5c'),'PREFIX-CALLERIDALL='+_0x59f473[_0xf803('0x5d')]));}else{_0x567565[_0xf803('0x5b')](new Extension(_0x91a198,0x3,_0xf803('0x5e'),_0xf803('0x5f')));}_0x567565[_0xf803('0x5b')](new Extension(_0x91a198,0x4,_0xf803('0x60'),_0x31e07b[_0xf803('0x52')]+','+_0xf803('0x61')+(0x8+_0x59f473['name'][_0xf803('0x36')])+'}'+','+0x1));return _0x567565;}function formatPrefixName(_0x553463){var _0x35e828='_';for(var _0x1fd8ff=0x0;_0x1fd8ff<_0x553463['length'];_0x1fd8ff++){if(_0x553463[_0xf803('0x62')](_0x1fd8ff)=='-'){_0x35e828+=_0x553463[_0xf803('0x62')](_0x1fd8ff);}else{_0x35e828+='['+_0x553463['charAt'](_0x1fd8ff)+']';}}_0x35e828+='.';return _0x35e828;}exports['update']=function(_0x7c52f3,_0xe13470,_0x2c34fe){var _0x2420b3=_0x7c52f3[_0xf803('0x63')];_0x2420b3[_0xf803('0x57')]=_0xf803('0x64')+_0x2420b3[_0xf803('0x28')]+'-';return db['sequelize'][_0xf803('0x4a')](function(_0x3dcded){return db[_0xf803('0x2b')]['update'](_0x2420b3,{'where':{'id':_0x2420b3['id']},'transaction':_0x3dcded})['then'](function(){return db['VoiceExtension'][_0xf803('0x24')]({'where':{'VoicePrefixId':_0x2420b3['id']},'transaction':_0x3dcded})[_0xf803('0x23')](function(){return db[_0xf803('0x4b')][_0xf803('0x46')]({'where':{'id':_0x2420b3[_0xf803('0x4c')]},'raw':!![]})['then'](function(_0x26f8ed){return createVoicePrefixExtensions(_0x2420b3,_0x26f8ed,_0x3dcded);});});});})[_0xf803('0x23')](function(){return db[_0xf803('0x2b')][_0xf803('0x65')](_0x2420b3['id']);})[_0xf803('0x23')](respondWithResult(_0xe13470,null))[_0xf803('0x40')](handleError(_0xe13470,null));};exports['addAgents']=function(_0x3b015a,_0x30615f,_0x1bf875){return db[_0xf803('0x2b')][_0xf803('0x46')]({'where':{'id':_0x3b015a[_0xf803('0x42')]['id']}})[_0xf803('0x23')](handleEntityNotFound(_0x30615f,null))[_0xf803('0x23')](function(_0x456769){if(_0x456769){return _0x456769[_0xf803('0x66')](_0x3b015a[_0xf803('0x63')][_0xf803('0x67')],_[_0xf803('0x68')](_0x3b015a[_0xf803('0x63')],[_0xf803('0x67'),'id'])||{})[_0xf803('0x69')](function(_0x27ddb8){for(var _0x66af0a=0x0;_0x66af0a<_0x3b015a['body'][_0xf803('0x67')]['length'];_0x66af0a+=0x1){socket[_0xf803('0x6a')](_0xf803('0x6b'),{'UserId':_0x3b015a[_0xf803('0x63')][_0xf803('0x67')][_0x66af0a],'VoicePrefixId':_0x3b015a[_0xf803('0x42')]['id']});}return _0x27ddb8;});}})[_0xf803('0x23')](respondWithResult(_0x30615f,null))['catch'](handleError(_0x30615f,null));};exports[_0xf803('0x6c')]=function(_0x3c991f,_0x68d56f,_0x5f3ad){return db['VoicePrefix'][_0xf803('0x46')]({'where':{'id':_0x3c991f[_0xf803('0x42')]['id']}})[_0xf803('0x23')](handleEntityNotFound(_0x68d56f,null))[_0xf803('0x23')](function(_0xab0f9f){if(_0xab0f9f){return _0xab0f9f[_0xf803('0x6c')](_0x3c991f['query'][_0xf803('0x67')])[_0xf803('0x23')](function(){if(_['isArray'](_0x3c991f[_0xf803('0x30')][_0xf803('0x67')])){for(var _0x1150e3=0x0;_0x1150e3<_0x3c991f['query'][_0xf803('0x67')][_0xf803('0x36')];_0x1150e3+=0x1){socket['emit'](_0xf803('0x6d'),{'UserId':Number(_0x3c991f[_0xf803('0x30')][_0xf803('0x67')][_0x1150e3]),'VoicePrefixId':Number(_0x3c991f['params']['id'])});}}else{socket[_0xf803('0x6a')](_0xf803('0x6d'),{'UserId':Number(_0x3c991f[_0xf803('0x30')][_0xf803('0x67')]),'VoicePrefixId':Number(_0x3c991f['params']['id'])});}});}})[_0xf803('0x23')](respondWithStatusCode(_0x68d56f,null))[_0xf803('0x40')](handleError(_0x68d56f,null));};exports['getAgents']=function(_0x5e63df,_0x13f414,_0x104258){var _0x320f30={};var _0x427641={};var _0x892b34;var _0x417168;return db[_0xf803('0x2b')][_0xf803('0x6e')]({'where':{'id':_0x5e63df[_0xf803('0x42')]['id']}})[_0xf803('0x23')](handleEntityNotFound(_0x13f414,null))['then'](function(_0x524aee){if(_0x524aee){_0x892b34=_0x524aee;_0x427641['model']=_[_0xf803('0x31')](db[_0xf803('0x6f')][_0xf803('0x2c')]);_0x427641['query']=_['keys'](_0x5e63df[_0xf803('0x30')]);_0x427641[_0xf803('0x32')]=_['intersection'](_0x427641[_0xf803('0x2f')],_0x427641[_0xf803('0x30')]);_0x320f30[_0xf803('0x34')]=_[_0xf803('0x33')](_0x427641[_0xf803('0x2f')],qs[_0xf803('0x35')](_0x5e63df[_0xf803('0x30')]['fields']));_0x320f30['attributes']=_0x320f30[_0xf803('0x34')]['length']?_0x320f30[_0xf803('0x34')]:_0x427641['model'];_0x320f30[_0xf803('0x38')]=qs[_0xf803('0x39')](_0x5e63df[_0xf803('0x30')][_0xf803('0x39')]);_0x320f30['where']=qs[_0xf803('0x32')](_[_0xf803('0x3b')](_0x5e63df[_0xf803('0x30')],_0x427641[_0xf803('0x32')]));if(_0x5e63df[_0xf803('0x30')]['filter']){_0x320f30[_0xf803('0x3a')]=_[_0xf803('0x44')](_0x320f30[_0xf803('0x3a')],{'$or':_['map'](_0x320f30[_0xf803('0x34')],function(_0x5bea71){var _0x5e7a7b={};_0x5e7a7b[_0x5bea71]={'$like':'%'+_0x5e63df[_0xf803('0x30')]['filter']+'%'};return _0x5e7a7b;})});}_0x320f30=_[_0xf803('0x44')]({},_0x320f30,_0x5e63df[_0xf803('0x45')]);return _0x892b34[_0xf803('0x70')](_0x320f30);}})[_0xf803('0x23')](function(_0x1dde00){if(_0x1dde00){_0x417168=_0x1dde00[_0xf803('0x36')];if(!_0x5e63df[_0xf803('0x30')]['hasOwnProperty'](_0xf803('0x71'))){_0x320f30[_0xf803('0x1e')]=qs[_0xf803('0x1e')](_0x5e63df['query']['limit']);_0x320f30['offset']=qs[_0xf803('0x1d')](_0x5e63df[_0xf803('0x30')][_0xf803('0x1d')]);}return _0x892b34[_0xf803('0x70')](_0x320f30);}})[_0xf803('0x23')](function(_0x59eb39){if(_0x59eb39){return _0x59eb39?{'count':_0x417168,'rows':_0x59eb39}:null;}})['then'](respondWithResult(_0x13f414,null))[_0xf803('0x40')](handleError(_0x13f414,null));};
\ No newline at end of file