Built motion from commit da24aabd.|2.6.20
[motion2.git] / server / services / routing / server / index.js
index 964007d..2ef4fee 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x91fb=['busy','emit','QueueReport','update','catch','message\x20is\x20empty','busyQueue','end','hasOwnProperty','capacity','CurrentCapacity','values','chatQueues','loggedIn','paused','waiting','mailQueues','available','name','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','faxQueuesWaitingInteractions','server','http','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','RPC\x20listening\x20on\x20port:','lodash','util','path','bluebird','../../../config/logger','routing','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','Intervals','map','interval','listen','rules','channel','message','interaction','applications','isArray','length','existsSync','join','app','.js','autoreply','appdata','mail','slice','push','dialogflow','split','dialogflowv2','tag','TagId','%s:%s:%s','./interval','condition','./applications/','consequence','Push\x20new\x20rule','on\x20interval','intervals','\x20|\x20','Please\x20create\x20a\x20new\x20file\x20under','execute','info','Applications\x20executed','stringify','matchPath','No\x20applications\x20to\x20execute','error','stack','agent','agents'];(function(_0x3346e6,_0x2677c3){var _0x451d8b=function(_0x1960e7){while(--_0x1960e7){_0x3346e6['push'](_0x3346e6['shift']());}};_0x451d8b(++_0x2677c3);}(_0x91fb,0x136));var _0xb91f=function(_0x6dfbaa,_0x31eede){_0x6dfbaa=_0x6dfbaa-0x0;var _0xfbe02=_0x91fb[_0x6dfbaa];return _0xfbe02;};'use strict';var _=require(_0xb91f('0x0'));var util=require(_0xb91f('0x1'));var path=require(_0xb91f('0x2'));var fs=require('fs');var jayson=require('jayson/promise');var BPromise=require(_0xb91f('0x3'));var uuid=require('uuid');var config=require('../../../config/environment');var logger=require(_0xb91f('0x4'))(_0xb91f('0x5'));var rpc={'openchannelQueueReport':require(_0xb91f('0x6')),'mailQueueReport':require(_0xb91f('0x7')),'chatQueueReport':require(_0xb91f('0x8')),'smsQueueReport':require(_0xb91f('0x9')),'faxQueueReport':require(_0xb91f('0xa')),'whatsappQueueReport':require(_0xb91f('0xb'))};var RuleEngine=require(_0xb91f('0xc'));function getId(_0x3f4b2d,_0x18e280,_0x3652c8){return util[_0xb91f('0xd')](_0xb91f('0xe'),_0x3f4b2d,_0x18e280||0x0,_0x3652c8||0x0);}function getIntervals(_0x1a1dea,_0x1380f5){var _0x247d75=[];if(!_[_0xb91f('0xf')](_0x1380f5['IntervalId'])&&!_['isNil'](_0x1a1dea[_0x1380f5[_0xb91f('0x10')]])&&!_['isNil'](_0x1a1dea[_0x1380f5['IntervalId']][_0xb91f('0x11')])){_0x247d75=_[_0xb91f('0x12')](_0x1a1dea[_0x1380f5[_0xb91f('0x10')]][_0xb91f('0x11')],'interval');}else if(!_['isNil'](_0x1380f5[_0xb91f('0x13')])){_0x247d75=[_0x1380f5['interval']];}return _0x247d75;}exports[_0xb91f('0x14')]=function(_0x56a8d7){_0x56a8d7[_0xb91f('0x15')]={};return new BPromise(function(_0x230553,_0x36afbf){var _0x484d69={'Start':function(_0x3f8e78){var _0x50456c=this;return new Promise(function(_0x57477f,_0x5e0e4e){if(_0x3f8e78){try{var _0x213ecb=[];var _0x2c781f=getId(_0x3f8e78[_0xb91f('0x16')],_0x3f8e78[_0xb91f('0x17')]?_0x3f8e78['message']['id']:0x0,_0x3f8e78[_0xb91f('0x18')]?_0x3f8e78['interaction']['id']:0x0);if(_0x3f8e78[_0xb91f('0x19')]&&_[_0xb91f('0x1a')](_0x3f8e78[_0xb91f('0x19')])&&_0x3f8e78[_0xb91f('0x19')][_0xb91f('0x1b')]){for(var _0xaa9c92=0x0;_0xaa9c92<_0x3f8e78['applications']['length'];_0xaa9c92+=0x1){var _0x245d33=_0x3f8e78['applications'][_0xaa9c92];if(fs[_0xb91f('0x1c')](path[_0xb91f('0x1d')](__dirname,_0xb91f('0x19'),_0x245d33[_0xb91f('0x1e')]+_0xb91f('0x1f')))){var _0x1b6826=[];switch(_0x245d33[_0xb91f('0x1e')]['toLowerCase']()){case _0xb91f('0x20'):var _0x51e529=_0x245d33[_0xb91f('0x21')]['split'](',');if(_0x3f8e78[_0xb91f('0x16')]===_0xb91f('0x22')){_0x1b6826['push'](_0x51e529[0x0]);_0x1b6826['push'](_0x51e529[0x1]);_0x1b6826['push'](_0x51e529[_0xb91f('0x23')](0x2,_0x51e529[_0xb91f('0x1b')])[_0xb91f('0x1d')](','));}else{_0x1b6826['push'](_0x51e529[0x0]);_0x1b6826[_0xb91f('0x24')](_0x51e529[_0xb91f('0x23')](0x1,_0x51e529[_0xb91f('0x1b')])['join'](','));}break;case _0xb91f('0x25'):var _0x2794b2=_0x245d33[_0xb91f('0x21')][_0xb91f('0x26')](',');_0x1b6826['push'](_0x2794b2[0x0]);_0x1b6826[_0xb91f('0x24')](_0x2794b2[0x1]);_0x1b6826[_0xb91f('0x24')](_0x2794b2[_0xb91f('0x23')](0x2,_0x2794b2[_0xb91f('0x1b')])[_0xb91f('0x1d')](','));break;case _0xb91f('0x27'):var _0xfbc7d5=_0x245d33['appdata'][_0xb91f('0x26')](',');_0x1b6826[_0xb91f('0x24')](_0xfbc7d5[0x0]);_0x1b6826[_0xb91f('0x24')](_0xfbc7d5[0x1]);_0x1b6826['push'](_0xfbc7d5[0x2]);_0x1b6826[_0xb91f('0x24')](_0xfbc7d5[0x3]);_0x1b6826[_0xb91f('0x24')](_0xfbc7d5[_0xb91f('0x23')](0x4,_0xfbc7d5[_0xb91f('0x1b')])[_0xb91f('0x1d')](','));break;case'amazonlex':var _0x490637=_0x245d33[_0xb91f('0x21')][_0xb91f('0x26')](',');_0x1b6826[_0xb91f('0x24')](_0x490637[0x0]);_0x1b6826[_0xb91f('0x24')](_0x490637[0x1]);_0x1b6826[_0xb91f('0x24')](_0x490637[0x2]);_0x1b6826['push'](_0x490637[0x3]);_0x1b6826[_0xb91f('0x24')](_0x490637[_0xb91f('0x23')](0x4,_0x490637[_0xb91f('0x1b')])[_0xb91f('0x1d')](','));break;case _0xb91f('0x17'):_0x1b6826[_0xb91f('0x24')](_0x245d33['appdata']);break;case _0xb91f('0x28'):_0x1b6826[_0xb91f('0x24')](_0x245d33[_0xb91f('0x29')]);_0x1b6826[_0xb91f('0x24')](_0x245d33[_0xb91f('0x21')]);break;default:_0x1b6826=_['isNil'](_0x245d33[_0xb91f('0x21')])?[]:_0x245d33[_0xb91f('0x21')][_0xb91f('0x26')](',');}var _0x33d90f={'id':util[_0xb91f('0xd')](_0xb91f('0x2a'),_0x2c781f,_0x245d33['id'],_0x245d33[_0xb91f('0x1e')]),'condition':require(_0xb91f('0x2b'))[_0xb91f('0x2c')](_0x2c781f,getIntervals(_0x56a8d7['intervals'],_0x245d33),_0x56a8d7),'consequence':require(_0xb91f('0x2d')+_0x245d33[_0xb91f('0x1e')])[_0xb91f('0x2e')](_0x2c781f,_0x1b6826,_0x56a8d7,_0x3f8e78),'p':_0x245d33['priority']||0x0};logger['info'](_0xb91f('0x2f'),_0x33d90f['id'],_0xb91f('0x30'),getIntervals(_0x56a8d7[_0xb91f('0x31')],_0x245d33)[_0xb91f('0x1d')](_0xb91f('0x32')));_0x213ecb['push'](_0x33d90f);}else{logger['error'](_0xb91f('0x33'),path[_0xb91f('0x1d')](__dirname,_0xb91f('0x19'),_0x245d33[_0xb91f('0x1e')]+_0xb91f('0x1f')));}}_0x56a8d7[_0xb91f('0x15')][_0x2c781f]=new RuleEngine(_0x213ecb);_0x56a8d7[_0xb91f('0x15')][_0x2c781f][_0xb91f('0x34')](_0x3f8e78,function(_0x45e5d9){logger[_0xb91f('0x35')](_0xb91f('0x36'),JSON[_0xb91f('0x37')](_0x45e5d9[_0xb91f('0x38')]));if(_0x56a8d7[_0xb91f('0x15')][_0x2c781f]){_0x56a8d7[_0xb91f('0x15')][_0x2c781f]['emit']('complete');}});return _0x57477f({'code':0xc8,'message':_0x3f8e78});}else{logger[_0xb91f('0x35')](_0xb91f('0x39'));return _0x57477f({'code':0xc8,'message':_0x3f8e78});}}catch(_0x4612df){logger[_0xb91f('0x3a')](_0x4612df[_0xb91f('0x3b')]);return _0x5e0e4e(_0x50456c[_0xb91f('0x3a')](0x1f4,_0x4612df));}}return _0x5e0e4e('routing\x20is\x20empty');});},'AcceptMessage':function(_0x5d5bf4){var _0x213825=this;return new Promise(function(_0xa93303,_0x2f117c){if(_0x5d5bf4[_0xb91f('0x3c')]&&_0x5d5bf4[_0xb91f('0x3c')]['id']){if(_0x56a8d7[_0xb91f('0x3d')][_0x5d5bf4[_0xb91f('0x3c')]['id']]){_0x56a8d7[_0xb91f('0x3d')][_0x5d5bf4[_0xb91f('0x3c')]['id']][_0xb91f('0x3e')]=![];_0x56a8d7[_0xb91f('0x3d')][_0x5d5bf4[_0xb91f('0x3c')]['id']]['busyQueue']=undefined;}}if(_0x5d5bf4[_0xb91f('0x17')]&&_0x5d5bf4['message']['id']){try{var _0x115f82=getId(_0x5d5bf4['channel'],_0x5d5bf4[_0xb91f('0x17')]?_0x5d5bf4[_0xb91f('0x17')]['id']:0x0,_0x5d5bf4[_0xb91f('0x18')]?_0x5d5bf4[_0xb91f('0x18')]['id']:0x0);if(_0x56a8d7[_0xb91f('0x15')][_0x115f82]){_0x56a8d7['rules'][_0x115f82][_0xb91f('0x3f')]('end');if(rpc[_0x5d5bf4['channel']+_0xb91f('0x40')]){rpc[_0x5d5bf4[_0xb91f('0x16')]+_0xb91f('0x40')][_0xb91f('0x41')](_0x115f82,{'UserId':_0x5d5bf4['message']['UserId']})[_0xb91f('0x42')](function(_0xbeb475){logger[_0xb91f('0x3a')]('error\x20update\x20queue\x20report');});}}return _0xa93303({'code':0xc8,'message':_0x5d5bf4});}catch(_0x283147){logger[_0xb91f('0x3a')](_0x283147[_0xb91f('0x3b')]);return _0x2f117c(_0x213825[_0xb91f('0x3a')](0x1f4,_0x283147));}}logger[_0xb91f('0x3a')](_0xb91f('0x43'));return _0x2f117c(_0x213825['error'](0x1f4,_0xb91f('0x43')));});},'RejectMessage':function(_0x13aafa){var _0x4f5661=this;return new Promise(function(_0xa4a7dc,_0x47517a){if(_0x13aafa[_0xb91f('0x3c')]&&_0x13aafa[_0xb91f('0x3c')]['id']){try{if(_0x56a8d7[_0xb91f('0x3d')][_0x13aafa['agent']['id']]){_0x56a8d7[_0xb91f('0x3d')][_0x13aafa[_0xb91f('0x3c')]['id']][_0xb91f('0x3e')]=![];_0x56a8d7['agents'][_0x13aafa[_0xb91f('0x3c')]['id']][_0xb91f('0x44')]=undefined;}return _0xa4a7dc({'code':0xc8,'message':_0x13aafa});}catch(_0x3521ee){logger['error'](_0x3521ee[_0xb91f('0x3b')]);return _0x47517a(_0x4f5661[_0xb91f('0x3a')](0x1f4,_0x3521ee));}}logger[_0xb91f('0x3a')](_0xb91f('0x43'));return _0x47517a(_0x4f5661[_0xb91f('0x3a')](0x1f4,_0xb91f('0x43')));});},'AbandonInteraction':function(_0xa14a6c){var _0x4c2b45=this;return new Promise(function(_0x2c55f7,_0x3ab52f){if(_0xa14a6c[_0xb91f('0x16')]&&_0xa14a6c[_0xb91f('0x18')]&&_0xa14a6c[_0xb91f('0x18')]['id']){try{var _0x5541a=getId(_0xa14a6c[_0xb91f('0x16')],_0xa14a6c['message']?_0xa14a6c[_0xb91f('0x17')]['id']:0x0,_0xa14a6c[_0xb91f('0x18')]?_0xa14a6c[_0xb91f('0x18')]['id']:0x0);if(_0x56a8d7['rules'][_0x5541a]){_0x56a8d7[_0xb91f('0x15')][_0x5541a][_0xb91f('0x3f')](_0xb91f('0x45'));}return _0x2c55f7({'code':0xc8,'message':_0xa14a6c});}catch(_0xf832fc){logger[_0xb91f('0x3a')](_0xf832fc[_0xb91f('0x3b')]);return _0x3ab52f(_0x4c2b45['error'](0x1f4,_0xf832fc));}}logger[_0xb91f('0x3a')](_0xb91f('0x43'));return _0x3ab52f(_0x4c2b45[_0xb91f('0x3a')](0x1f4,_0xb91f('0x43')));});},'AgentCapacity':function(_0x5ef631){var _0x1d5c2a=this;return new Promise(function(_0x18be8c,_0x441cc1){if(_0x56a8d7[_0xb91f('0x3d')][_0xb91f('0x46')](_0x5ef631['id'])){for(var _0x4b153f in _0x5ef631['capacity']){if(_0x5ef631[_0xb91f('0x47')][_0xb91f('0x46')](_0x4b153f)){if(_0x56a8d7[_0xb91f('0x3d')][_0x5ef631['id']][_0xb91f('0x46')](_0x4b153f+_0xb91f('0x48'))){_0x56a8d7['agents'][_0x5ef631['id']][_0x4b153f+_0xb91f('0x48')]=parseInt(_0x5ef631['capacity'][_0x4b153f],0xa);}}}_0x56a8d7[_0xb91f('0x3d')][_0x5ef631['id']]['updateRealtime']();return _0x18be8c({'code':0xc8,'message':_0x56a8d7[_0xb91f('0x3d')][_0x5ef631['id']]});}else{return _0x441cc1(_0x1d5c2a[_0xb91f('0x3a')](0x1f4,'agent\x20not\x20found'));}});},'Agents':function(_0xe4cdb0){return new Promise(function(_0xdce50e,_0x8c5b12){var _0x3833af=_[_0xb91f('0x49')](_0x56a8d7['agents']);_0xdce50e({'count':_0x3833af[_0xb91f('0x1b')],'rows':_0x3833af});});},'ChatQueues':function(_0x5d095f){return new Promise(function(_0x11a3ed,_0x441573){var _0x341434=[];for(var _0x54444e in _0x56a8d7[_0xb91f('0x4a')]){if(_0x56a8d7[_0xb91f('0x4a')][_0xb91f('0x46')](_0x54444e)){var _0x7daab6=_0x56a8d7[_0xb91f('0x4a')][_0x54444e];var _0x50c774={'id':_0x7daab6['id'],'available':_0x7daab6['available'],'loggedIn':_0x7daab6[_0xb91f('0x4b')],'name':_0x7daab6['name'],'paused':_0x7daab6[_0xb91f('0x4c')],'waiting':_0x7daab6[_0xb91f('0x4d')]};_0x341434[_0xb91f('0x24')](_0x50c774);}}_0x11a3ed({'count':_0x341434['length'],'rows':_0x341434});});},'MailQueues':function(_0xa7ab25){return new Promise(function(_0x4ceab1,_0x9e11f3){var _0x416343=[];for(var _0x1c19e9 in _0x56a8d7[_0xb91f('0x4e')]){if(_0x56a8d7[_0xb91f('0x4e')][_0xb91f('0x46')](_0x1c19e9)){var _0x13c34e=_0x56a8d7[_0xb91f('0x4e')][_0x1c19e9];var _0x125521={'id':_0x13c34e['id'],'available':_0x13c34e[_0xb91f('0x4f')],'loggedIn':_0x13c34e['loggedIn'],'name':_0x13c34e[_0xb91f('0x50')],'paused':_0x13c34e['paused'],'waiting':_0x13c34e[_0xb91f('0x4d')]};_0x416343[_0xb91f('0x24')](_0x125521);}}_0x4ceab1({'count':_0x416343[_0xb91f('0x1b')],'rows':_0x416343});});},'OpenchannelQueues':function(_0x1ecd0c){return new Promise(function(_0x15eb03,_0x307ee7){var _0x34968f=[];for(var _0x16af73 in _0x56a8d7['openchannelQueues']){if(_0x56a8d7[_0xb91f('0x51')][_0xb91f('0x46')](_0x16af73)){var _0x2e714=_0x56a8d7[_0xb91f('0x51')][_0x16af73];var _0x2940a0={'id':_0x2e714['id'],'available':_0x2e714[_0xb91f('0x4f')],'loggedIn':_0x2e714['loggedIn'],'name':_0x2e714[_0xb91f('0x50')],'paused':_0x2e714[_0xb91f('0x4c')],'waiting':_0x2e714[_0xb91f('0x4d')]};_0x34968f[_0xb91f('0x24')](_0x2940a0);}}_0x15eb03({'count':_0x34968f[_0xb91f('0x1b')],'rows':_0x34968f});});},'SmsQueues':function(_0x248024){return new Promise(function(_0x45f711,_0x26674e){var _0x3b989e=[];for(var _0x1913d9 in _0x56a8d7['smsQueues']){if(_0x56a8d7[_0xb91f('0x52')][_0xb91f('0x46')](_0x1913d9)){var _0xe03dce=_0x56a8d7[_0xb91f('0x52')][_0x1913d9];var _0x137049={'id':_0xe03dce['id'],'available':_0xe03dce[_0xb91f('0x4f')],'loggedIn':_0xe03dce[_0xb91f('0x4b')],'name':_0xe03dce[_0xb91f('0x50')],'paused':_0xe03dce[_0xb91f('0x4c')],'waiting':_0xe03dce[_0xb91f('0x4d')]};_0x3b989e[_0xb91f('0x24')](_0x137049);}}_0x45f711({'count':_0x3b989e[_0xb91f('0x1b')],'rows':_0x3b989e});});},'FaxQueues':function(_0x2a85b8){return new Promise(function(_0x328647,_0x45a368){var _0x13bf54=[];for(var _0x2c5af7 in _0x56a8d7[_0xb91f('0x53')]){if(_0x56a8d7[_0xb91f('0x53')][_0xb91f('0x46')](_0x2c5af7)){var _0x32ba98=_0x56a8d7['faxQueues'][_0x2c5af7];var _0x37581a={'id':_0x32ba98['id'],'available':_0x32ba98[_0xb91f('0x4f')],'loggedIn':_0x32ba98[_0xb91f('0x4b')],'name':_0x32ba98[_0xb91f('0x50')],'paused':_0x32ba98[_0xb91f('0x4c')],'waiting':_0x32ba98[_0xb91f('0x4d')]};_0x13bf54[_0xb91f('0x24')](_0x37581a);}}_0x328647({'count':_0x13bf54[_0xb91f('0x1b')],'rows':_0x13bf54});});},'WhatsappQueues':function(_0xde197f){return new Promise(function(_0x1e0013,_0x110e0f){var _0x4c59fd=[];for(var _0x2fb6b1 in _0x56a8d7['whatsappQueues']){if(_0x56a8d7[_0xb91f('0x54')]['hasOwnProperty'](_0x2fb6b1)){var _0x1b89f6=_0x56a8d7[_0xb91f('0x54')][_0x2fb6b1];var _0x44bea5={'id':_0x1b89f6['id'],'available':_0x1b89f6[_0xb91f('0x4f')],'loggedIn':_0x1b89f6[_0xb91f('0x4b')],'name':_0x1b89f6['name'],'paused':_0x1b89f6[_0xb91f('0x4c')],'waiting':_0x1b89f6[_0xb91f('0x4d')]};_0x4c59fd[_0xb91f('0x24')](_0x44bea5);}}_0x1e0013({'count':_0x4c59fd[_0xb91f('0x1b')],'rows':_0x4c59fd});});},'ChatQueuesWaitingInteractions':function(_0x1e5769){return new Promise(function(_0x56616c,_0x19a134){var _0x3cc447=_[_0xb91f('0x49')](_0x56a8d7[_0xb91f('0x55')]);_0x56616c({'count':_0x3cc447[_0xb91f('0x1b')],'rows':_0x3cc447});});},'MailQueuesWaitingInteractions':function(_0xf46c47){return new Promise(function(_0x257260,_0x1c56f4){var _0x2760f9=_[_0xb91f('0x49')](_0x56a8d7['mailQueuesWaitingInteractions']);_0x257260({'count':_0x2760f9['length'],'rows':_0x2760f9});});},'OpenchannelQueuesWaitingInteractions':function(_0x6637f3){return new Promise(function(_0xda20d7,_0x2a8739){var _0x264dfe=_[_0xb91f('0x49')](_0x56a8d7[_0xb91f('0x56')]);_0xda20d7({'count':_0x264dfe['length'],'rows':_0x264dfe});});},'SmsQueuesWaitingInteractions':function(_0xbf5bb){return new Promise(function(_0x448135,_0x2e9ca2){var _0x93bf68=_[_0xb91f('0x49')](_0x56a8d7['smsQueuesWaitingInteractions']);_0x448135({'count':_0x93bf68[_0xb91f('0x1b')],'rows':_0x93bf68});});},'FaxQueuesWaitingInteractions':function(_0x25f7a3){return new Promise(function(_0x570ef5,_0x561729){var _0x4dac7f=_[_0xb91f('0x49')](_0x56a8d7[_0xb91f('0x57')]);_0x570ef5({'count':_0x4dac7f['length'],'rows':_0x4dac7f});});},'WhatsappQueuesWaitingInteractions':function(_0x36ae7d){return new Promise(function(_0x1a8e84,_0x4f452c){var _0x35971b=_[_0xb91f('0x49')](_0x56a8d7['whatsappQueuesWaitingInteractions']);_0x1a8e84({'count':_0x35971b[_0xb91f('0x1b')],'rows':_0x35971b});});}};var _0x591260=jayson[_0xb91f('0x58')](_0x484d69)[_0xb91f('0x59')]();_0x591260['on']('error',function(_0x3aba05){logger[_0xb91f('0x3a')](JSON[_0xb91f('0x37')](_0x3aba05));return _0x36afbf(_0x3aba05);});_0x591260['listen'](0x232c,'127.0.0.1',function(){console[_0xb91f('0x5a')](_0xb91f('0x5b'),0x232c);return _0x230553(_0xb91f('0x5c')+0x232c);});});};
\ No newline at end of file
+var _0x804d=['checkWaitingNotifications','applications','isArray','length','existsSync','join','app','appdata','split','push','slice','dialogflowv2','amazonlex','tag','TagId','account','notificationTemplate','ContactId','body','./interval','condition','./applications/','consequence','priority','Push\x20new\x20rule','on\x20interval','intervals','\x20|\x20','.js','execute','info','Applications\x20executed','stringify','emit','complete','error','stack','routing\x20is\x20empty','agent','agents','busy','busyQueue','end','update','UserId','catch','error\x20update\x20queue\x20report','message\x20is\x20empty','capacity','hasOwnProperty','CurrentCapacity','updateRealtime','agent\x20not\x20found','values','find','chatQueues','loggedIn','paused','waiting','mailQueues','available','name','openchannelQueues','smsQueues','faxQueues','whatsappQueues','chatQueuesWaitingInteractions','openchannelQueuesWaitingInteractions','faxQueuesWaitingInteractions','whatsappQueuesWaitingInteractions','server','http','listen','127.0.0.1','log','Routing\x20RPC\x20server\x20listening\x20on\x20127.0.0.1:%d!','lodash','util','path','jayson/promise','bluebird','./applications/utils','./applications/strategy/util','../../../config/logger','../rpc/openchannelQueueReport','../rpc/mailQueueReport','../rpc/chatQueueReport','../rpc/smsQueueReport','../rpc/faxQueueReport','../rpc/whatsappQueueReport','../lib/rule-engine','format','%s.%s.%s','isNil','IntervalId','map','interval','rules','channel','message','interaction'];(function(_0x1289f9,_0x57b011){var _0x6edf7b=function(_0x172cfa){while(--_0x172cfa){_0x1289f9['push'](_0x1289f9['shift']());}};_0x6edf7b(++_0x57b011);}(_0x804d,0x116));var _0xd804=function(_0x291b77,_0x36b1c2){_0x291b77=_0x291b77-0x0;var _0x138495=_0x804d[_0x291b77];return _0x138495;};'use strict';var _=require(_0xd804('0x0'));var util=require(_0xd804('0x1'));var path=require(_0xd804('0x2'));var fs=require('fs');var jayson=require(_0xd804('0x3'));var BPromise=require(_0xd804('0x4'));var utils=require(_0xd804('0x5'));var sUtils=require(_0xd804('0x6'));var logger=require(_0xd804('0x7'))('routing');var rpc={'openchannelQueueReport':require(_0xd804('0x8')),'mailQueueReport':require(_0xd804('0x9')),'chatQueueReport':require(_0xd804('0xa')),'smsQueueReport':require(_0xd804('0xb')),'faxQueueReport':require(_0xd804('0xc')),'whatsappQueueReport':require(_0xd804('0xd'))};var RuleEngine=require(_0xd804('0xe'));function getId(_0x391e2b,_0x2c3ae6,_0x2ff6a4){return util[_0xd804('0xf')](_0xd804('0x10'),_0x391e2b,_0x2c3ae6||0x0,_0x2ff6a4||0x0);}function getIntervals(_0x4d12bd,_0x321d86){var _0x2d2434=[];if(!_[_0xd804('0x11')](_0x321d86[_0xd804('0x12')])&&!_['isNil'](_0x4d12bd[_0x321d86['IntervalId']])&&!_[_0xd804('0x11')](_0x4d12bd[_0x321d86[_0xd804('0x12')]]['Intervals'])){_0x2d2434=_[_0xd804('0x13')](_0x4d12bd[_0x321d86[_0xd804('0x12')]]['Intervals'],_0xd804('0x14'));}else if(!_[_0xd804('0x11')](_0x321d86[_0xd804('0x14')])){_0x2d2434=[_0x321d86['interval']];}return _0x2d2434;}exports['listen']=function(_0x31b189){_0x31b189[_0xd804('0x15')]={};return new BPromise(function(_0xcec83,_0x1f8142){var _0x12359a={'Start':function(_0x5ee270){var _0x18c4a0=this;return new Promise(function(_0x30be96,_0x597be3){if(_0x5ee270){try{var _0x13116e=[];var _0x1a10c7=getId(_0x5ee270[_0xd804('0x16')],_0x5ee270['message']?_0x5ee270[_0xd804('0x17')]['id']:0x0,_0x5ee270['interaction']?_0x5ee270[_0xd804('0x18')]['id']:0x0);var _0x2a5170=sUtils[_0xd804('0x19')](_0x31b189,_0x5ee270);if(_0x5ee270['transfer']||!_0x2a5170&&_0x5ee270[_0xd804('0x1a')]&&_[_0xd804('0x1b')](_0x5ee270[_0xd804('0x1a')])&&_0x5ee270[_0xd804('0x1a')][_0xd804('0x1c')]){for(var _0x5d29d1=0x0;_0x5d29d1<_0x5ee270['applications'][_0xd804('0x1c')];_0x5d29d1+=0x1){var _0x5425f0=_0x5ee270[_0xd804('0x1a')][_0x5d29d1];if(fs[_0xd804('0x1d')](path[_0xd804('0x1e')](__dirname,'applications',_0x5425f0[_0xd804('0x1f')]+'.js'))){var _0x18d28c=[];switch(_0x5425f0['app']['toLowerCase']()){case'autoreply':var _0x51b191=_0x5425f0[_0xd804('0x20')][_0xd804('0x21')](',');if(_0x5ee270[_0xd804('0x16')]==='mail'){_0x18d28c[_0xd804('0x22')](_0x51b191[0x0]);_0x18d28c[_0xd804('0x22')](_0x51b191[0x1]);_0x18d28c[_0xd804('0x22')](_0x51b191[_0xd804('0x23')](0x2,_0x51b191['length'])[_0xd804('0x1e')](','));}else{_0x18d28c[_0xd804('0x22')](_0x51b191[0x0]);_0x18d28c['push'](_0x51b191[_0xd804('0x23')](0x1,_0x51b191[_0xd804('0x1c')])['join'](','));}break;case'dialogflow':var _0x4b040a=_0x5425f0[_0xd804('0x20')][_0xd804('0x21')](',');_0x18d28c[_0xd804('0x22')](_0x4b040a[0x0]);_0x18d28c['push'](_0x4b040a[0x1]);_0x18d28c[_0xd804('0x22')](_0x4b040a[_0xd804('0x23')](0x2,_0x4b040a[_0xd804('0x1c')])[_0xd804('0x1e')](','));break;case _0xd804('0x24'):var _0x26ffc8=_0x5425f0[_0xd804('0x20')][_0xd804('0x21')](',');_0x18d28c['push'](_0x26ffc8[0x0]);_0x18d28c[_0xd804('0x22')](_0x26ffc8[0x1]);_0x18d28c[_0xd804('0x22')](_0x26ffc8[0x2]);_0x18d28c[_0xd804('0x22')](_0x26ffc8[0x3]);_0x18d28c[_0xd804('0x22')](_0x26ffc8[_0xd804('0x23')](0x4,_0x26ffc8[_0xd804('0x1c')])[_0xd804('0x1e')](','));break;case _0xd804('0x25'):var _0x26a7f1=_0x5425f0[_0xd804('0x20')]['split'](',');_0x18d28c['push'](_0x26a7f1[0x0]);_0x18d28c[_0xd804('0x22')](_0x26a7f1[0x1]);_0x18d28c[_0xd804('0x22')](_0x26a7f1[0x2]);_0x18d28c['push'](_0x26a7f1[0x3]);_0x18d28c['push'](_0x26a7f1[_0xd804('0x23')](0x4,_0x26a7f1['length'])['join'](','));break;case _0xd804('0x17'):_0x18d28c[_0xd804('0x22')](_0x5425f0[_0xd804('0x20')]);break;case _0xd804('0x26'):_0x18d28c[_0xd804('0x22')](_0x5425f0[_0xd804('0x27')]);_0x18d28c[_0xd804('0x22')](_0x5425f0[_0xd804('0x20')]);break;case'tvox':var _0x329cab=utils['getMustacheRender'](_0x5ee270[_0xd804('0x28')][_0xd804('0x29')],_0x5ee270);var _0x22a785=_0x5425f0[_0xd804('0x20')][_0xd804('0x21')](',');_0x18d28c['push'](_0x22a785[0x0]);_0x18d28c['push'](_0x22a785[0x1]);_0x18d28c['push'](_0x22a785[0x2]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x3]);_0x18d28c['push'](_0x22a785[0x4]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x5]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x6]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x7]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x8]);_0x18d28c[_0xd804('0x22')](_0x22a785[0x9]);_0x18d28c['push'](_0x22a785[0xa]);_0x18d28c['push'](_0x5ee270[_0xd804('0x18')]['id']);_0x18d28c[_0xd804('0x22')](_0x5ee270[_0xd804('0x17')]['id']);_0x18d28c[_0xd804('0x22')](_0x5425f0['ChatWebsiteId']);_0x18d28c['push'](_0x5ee270[_0xd804('0x18')][_0xd804('0x2a')]);_0x18d28c[_0xd804('0x22')](_0x5ee270[_0xd804('0x2b')]['body']);_0x18d28c['push'](_0x329cab);break;default:_0x18d28c=_['isNil'](_0x5425f0[_0xd804('0x20')])?[]:_0x5425f0[_0xd804('0x20')][_0xd804('0x21')](',');}var _0x518beb={'id':util[_0xd804('0xf')]('%s:%s:%s',_0x1a10c7,_0x5425f0['id'],_0x5425f0[_0xd804('0x1f')]),'condition':require(_0xd804('0x2c'))[_0xd804('0x2d')](_0x1a10c7,getIntervals(_0x31b189['intervals'],_0x5425f0),_0x31b189),'consequence':require(_0xd804('0x2e')+_0x5425f0[_0xd804('0x1f')])[_0xd804('0x2f')](_0x1a10c7,_0x18d28c,_0x31b189,_0x5ee270),'p':_0x5425f0[_0xd804('0x30')]||0x0};logger['info'](_0xd804('0x31'),_0x518beb['id'],_0xd804('0x32'),getIntervals(_0x31b189[_0xd804('0x33')],_0x5425f0)[_0xd804('0x1e')](_0xd804('0x34')));_0x13116e[_0xd804('0x22')](_0x518beb);}else{logger['error']('Please\x20create\x20a\x20new\x20file\x20under',path[_0xd804('0x1e')](__dirname,'applications',_0x5425f0[_0xd804('0x1f')]+_0xd804('0x35')));}}_0x31b189[_0xd804('0x15')][_0x1a10c7]=new RuleEngine(_0x13116e);_0x31b189[_0xd804('0x15')][_0x1a10c7][_0xd804('0x36')](_0x5ee270,function(_0x1f4da7){logger[_0xd804('0x37')](_0xd804('0x38'),JSON[_0xd804('0x39')](_0x1f4da7['matchPath']));if(_0x31b189['rules'][_0x1a10c7]){_0x31b189[_0xd804('0x15')][_0x1a10c7][_0xd804('0x3a')](_0xd804('0x3b'));}});return _0x30be96({'code':0xc8,'message':_0x5ee270});}else{if(_0x2a5170){logger[_0xd804('0x37')](util['format']('Skipped\x20routing\x20for\x20%s',_0x1a10c7));}else{logger[_0xd804('0x37')]('No\x20applications\x20to\x20execute');}return _0x30be96({'code':0xc8,'message':_0x5ee270});}}catch(_0x1ff4cc){logger[_0xd804('0x3c')](_0x1ff4cc[_0xd804('0x3d')]);return _0x597be3(_0x18c4a0[_0xd804('0x3c')](0x1f4,_0x1ff4cc));}}return _0x597be3(_0xd804('0x3e'));});},'AcceptMessage':function(_0x1d334d){var _0x38a454=this;return new Promise(function(_0x2bf040,_0x4cf155){if(_0x1d334d[_0xd804('0x3f')]&&_0x1d334d[_0xd804('0x3f')]['id']){if(_0x31b189['agents'][_0x1d334d[_0xd804('0x3f')]['id']]){_0x31b189[_0xd804('0x40')][_0x1d334d['agent']['id']][_0xd804('0x41')]=![];_0x31b189['agents'][_0x1d334d[_0xd804('0x3f')]['id']][_0xd804('0x42')]=undefined;}}if(_0x1d334d['message']&&_0x1d334d[_0xd804('0x17')]['id']){try{var _0x140b84=getId(_0x1d334d['channel'],_0x1d334d[_0xd804('0x17')]?_0x1d334d[_0xd804('0x17')]['id']:0x0,_0x1d334d[_0xd804('0x18')]?_0x1d334d[_0xd804('0x18')]['id']:0x0);if(_0x31b189[_0xd804('0x15')][_0x140b84]){_0x31b189[_0xd804('0x15')][_0x140b84][_0xd804('0x3a')](_0xd804('0x43'));if(rpc[_0x1d334d[_0xd804('0x16')]+'QueueReport']){rpc[_0x1d334d[_0xd804('0x16')]+'QueueReport'][_0xd804('0x44')](_0x140b84,{'UserId':_0x1d334d[_0xd804('0x17')][_0xd804('0x45')]})[_0xd804('0x46')](function(){logger[_0xd804('0x3c')](_0xd804('0x47'));});}}return _0x2bf040({'code':0xc8,'message':_0x1d334d});}catch(_0x4399fc){logger[_0xd804('0x3c')](_0x4399fc[_0xd804('0x3d')]);return _0x4cf155(_0x38a454['error'](0x1f4,_0x4399fc));}}logger[_0xd804('0x3c')](_0xd804('0x48'));return _0x4cf155(_0x38a454['error'](0x1f4,_0xd804('0x48')));});},'RejectMessage':function(_0x39fb9a){var _0x4584ea=this;return new Promise(function(_0x5139ee,_0x3d1e48){if(_0x39fb9a[_0xd804('0x3f')]&&_0x39fb9a[_0xd804('0x3f')]['id']){try{if(_0x31b189[_0xd804('0x40')][_0x39fb9a['agent']['id']]){_0x31b189['agents'][_0x39fb9a[_0xd804('0x3f')]['id']][_0xd804('0x41')]=![];_0x31b189[_0xd804('0x40')][_0x39fb9a[_0xd804('0x3f')]['id']][_0xd804('0x42')]=undefined;}return _0x5139ee({'code':0xc8,'message':_0x39fb9a});}catch(_0x212b6c){logger[_0xd804('0x3c')](_0x212b6c[_0xd804('0x3d')]);return _0x3d1e48(_0x4584ea[_0xd804('0x3c')](0x1f4,_0x212b6c));}}logger['error'](_0xd804('0x48'));return _0x3d1e48(_0x4584ea['error'](0x1f4,_0xd804('0x48')));});},'AbandonInteraction':function(_0x36514b){var _0x39b3f4=this;return new Promise(function(_0x9203e5,_0x4f710d){if(_0x36514b[_0xd804('0x16')]&&_0x36514b[_0xd804('0x18')]&&_0x36514b[_0xd804('0x18')]['id']){try{var _0x3c3405=getId(_0x36514b[_0xd804('0x16')],_0x36514b['message']?_0x36514b[_0xd804('0x17')]['id']:0x0,_0x36514b[_0xd804('0x18')]?_0x36514b[_0xd804('0x18')]['id']:0x0);if(_0x31b189[_0xd804('0x15')][_0x3c3405]){_0x31b189[_0xd804('0x15')][_0x3c3405][_0xd804('0x3a')](_0xd804('0x43'));}return _0x9203e5({'code':0xc8,'message':_0x36514b});}catch(_0x55eee9){logger['error'](_0x55eee9[_0xd804('0x3d')]);return _0x4f710d(_0x39b3f4[_0xd804('0x3c')](0x1f4,_0x55eee9));}}logger[_0xd804('0x3c')]('message\x20is\x20empty');return _0x4f710d(_0x39b3f4[_0xd804('0x3c')](0x1f4,_0xd804('0x48')));});},'AgentCapacity':function(_0x2ce7c8){var _0x29777c=this;return new Promise(function(_0x34d09f,_0x4786aa){if(_0x31b189[_0xd804('0x40')]['hasOwnProperty'](_0x2ce7c8['id'])){for(var _0xc8dc44 in _0x2ce7c8[_0xd804('0x49')]){if(_0x2ce7c8[_0xd804('0x49')]['hasOwnProperty'](_0xc8dc44)){if(_0x31b189[_0xd804('0x40')][_0x2ce7c8['id']][_0xd804('0x4a')](_0xc8dc44+_0xd804('0x4b'))){_0x31b189[_0xd804('0x40')][_0x2ce7c8['id']][_0xc8dc44+_0xd804('0x4b')]=parseInt(_0x2ce7c8['capacity'][_0xc8dc44],0xa);}}}_0x31b189[_0xd804('0x40')][_0x2ce7c8['id']][_0xd804('0x4c')]();return _0x34d09f({'code':0xc8,'message':_0x31b189[_0xd804('0x40')][_0x2ce7c8['id']]});}else{return _0x4786aa(_0x29777c['error'](0x1f4,_0xd804('0x4d')));}});},'Agents':function(_0x442c61){return new Promise(function(_0x5e004d){var _0x5eefc8=_[_0xd804('0x4e')](_0x31b189[_0xd804('0x40')]);if(_0x442c61&&_0x442c61['id']){var _0xa8b18=_[_0xd804('0x4f')](_0x5eefc8,function(_0xdbb0d5){return _0xdbb0d5['id']===_0x442c61['id'];});_0x5e004d(_0xa8b18);}else{_0x5e004d({'count':_0x5eefc8[_0xd804('0x1c')],'rows':_0x5eefc8});}});},'ChatQueues':function(){return new Promise(function(_0x37aa4d){var _0x1f5e02=[];for(var _0xa6e3d2 in _0x31b189['chatQueues']){if(_0x31b189[_0xd804('0x50')][_0xd804('0x4a')](_0xa6e3d2)){var _0x2d5013=_0x31b189[_0xd804('0x50')][_0xa6e3d2];var _0x31e9eb={'id':_0x2d5013['id'],'available':_0x2d5013['available'],'loggedIn':_0x2d5013[_0xd804('0x51')],'name':_0x2d5013['name'],'paused':_0x2d5013[_0xd804('0x52')],'waiting':_0x2d5013[_0xd804('0x53')]};_0x1f5e02[_0xd804('0x22')](_0x31e9eb);}}_0x37aa4d({'count':_0x1f5e02[_0xd804('0x1c')],'rows':_0x1f5e02});});},'MailQueues':function(){return new Promise(function(_0x57627a){var _0x3a413d=[];for(var _0x27e25d in _0x31b189[_0xd804('0x54')]){if(_0x31b189[_0xd804('0x54')][_0xd804('0x4a')](_0x27e25d)){var _0x821f3f=_0x31b189[_0xd804('0x54')][_0x27e25d];var _0x2fffee={'id':_0x821f3f['id'],'available':_0x821f3f[_0xd804('0x55')],'loggedIn':_0x821f3f[_0xd804('0x51')],'name':_0x821f3f[_0xd804('0x56')],'paused':_0x821f3f[_0xd804('0x52')],'waiting':_0x821f3f[_0xd804('0x53')]};_0x3a413d[_0xd804('0x22')](_0x2fffee);}}_0x57627a({'count':_0x3a413d[_0xd804('0x1c')],'rows':_0x3a413d});});},'OpenchannelQueues':function(){return new Promise(function(_0x3fce66){var _0x439e5e=[];for(var _0xf99bed in _0x31b189[_0xd804('0x57')]){if(_0x31b189[_0xd804('0x57')]['hasOwnProperty'](_0xf99bed)){var _0x5293a3=_0x31b189[_0xd804('0x57')][_0xf99bed];var _0x1c9b7c={'id':_0x5293a3['id'],'available':_0x5293a3[_0xd804('0x55')],'loggedIn':_0x5293a3[_0xd804('0x51')],'name':_0x5293a3[_0xd804('0x56')],'paused':_0x5293a3[_0xd804('0x52')],'waiting':_0x5293a3[_0xd804('0x53')]};_0x439e5e['push'](_0x1c9b7c);}}_0x3fce66({'count':_0x439e5e[_0xd804('0x1c')],'rows':_0x439e5e});});},'SmsQueues':function(){return new Promise(function(_0x1056f3){var _0x4e8e0c=[];for(var _0x192dc8 in _0x31b189['smsQueues']){if(_0x31b189['smsQueues']['hasOwnProperty'](_0x192dc8)){var _0x2a80e2=_0x31b189[_0xd804('0x58')][_0x192dc8];var _0x134973={'id':_0x2a80e2['id'],'available':_0x2a80e2['available'],'loggedIn':_0x2a80e2[_0xd804('0x51')],'name':_0x2a80e2[_0xd804('0x56')],'paused':_0x2a80e2[_0xd804('0x52')],'waiting':_0x2a80e2['waiting']};_0x4e8e0c[_0xd804('0x22')](_0x134973);}}_0x1056f3({'count':_0x4e8e0c['length'],'rows':_0x4e8e0c});});},'FaxQueues':function(){return new Promise(function(_0x412c5b){var _0x1507aa=[];for(var _0x1b641a in _0x31b189[_0xd804('0x59')]){if(_0x31b189[_0xd804('0x59')]['hasOwnProperty'](_0x1b641a)){var _0x5bf18c=_0x31b189[_0xd804('0x59')][_0x1b641a];var _0x561f3f={'id':_0x5bf18c['id'],'available':_0x5bf18c['available'],'loggedIn':_0x5bf18c[_0xd804('0x51')],'name':_0x5bf18c[_0xd804('0x56')],'paused':_0x5bf18c['paused'],'waiting':_0x5bf18c[_0xd804('0x53')]};_0x1507aa[_0xd804('0x22')](_0x561f3f);}}_0x412c5b({'count':_0x1507aa['length'],'rows':_0x1507aa});});},'WhatsappQueues':function(){return new Promise(function(_0xca392b){var _0x45da24=[];for(var _0x3a8e12 in _0x31b189['whatsappQueues']){if(_0x31b189[_0xd804('0x5a')]['hasOwnProperty'](_0x3a8e12)){var _0x502b72=_0x31b189[_0xd804('0x5a')][_0x3a8e12];var _0x357b6e={'id':_0x502b72['id'],'available':_0x502b72[_0xd804('0x55')],'loggedIn':_0x502b72[_0xd804('0x51')],'name':_0x502b72[_0xd804('0x56')],'paused':_0x502b72[_0xd804('0x52')],'waiting':_0x502b72[_0xd804('0x53')]};_0x45da24[_0xd804('0x22')](_0x357b6e);}}_0xca392b({'count':_0x45da24[_0xd804('0x1c')],'rows':_0x45da24});});},'ChatQueuesWaitingInteractions':function(){return new Promise(function(_0x15225c){var _0x624aad=_[_0xd804('0x4e')](_0x31b189[_0xd804('0x5b')]);_0x15225c({'count':_0x624aad[_0xd804('0x1c')],'rows':_0x624aad});});},'MailQueuesWaitingInteractions':function(){return new Promise(function(_0xaf528f){var _0x464cf3=_['values'](_0x31b189['mailQueuesWaitingInteractions']);_0xaf528f({'count':_0x464cf3[_0xd804('0x1c')],'rows':_0x464cf3});});},'OpenchannelQueuesWaitingInteractions':function(){return new Promise(function(_0x21af3d){var _0x5a4a59=_['values'](_0x31b189[_0xd804('0x5c')]);_0x21af3d({'count':_0x5a4a59[_0xd804('0x1c')],'rows':_0x5a4a59});});},'SmsQueuesWaitingInteractions':function(){return new Promise(function(_0x4f6794){var _0xf7770e=_[_0xd804('0x4e')](_0x31b189['smsQueuesWaitingInteractions']);_0x4f6794({'count':_0xf7770e['length'],'rows':_0xf7770e});});},'FaxQueuesWaitingInteractions':function(){return new Promise(function(_0x583b08){var _0x45d779=_['values'](_0x31b189[_0xd804('0x5d')]);_0x583b08({'count':_0x45d779[_0xd804('0x1c')],'rows':_0x45d779});});},'WhatsappQueuesWaitingInteractions':function(){return new Promise(function(_0x5d28d6){var _0x105a37=_['values'](_0x31b189[_0xd804('0x5e')]);_0x5d28d6({'count':_0x105a37[_0xd804('0x1c')],'rows':_0x105a37});});}};var _0x1a1a2d=jayson[_0xd804('0x5f')](_0x12359a)[_0xd804('0x60')]();_0x1a1a2d['on'](_0xd804('0x3c'),function(_0xffde80){logger[_0xd804('0x3c')](JSON[_0xd804('0x39')](_0xffde80));return _0x1f8142(_0xffde80);});_0x1a1a2d[_0xd804('0x61')](0x232c,_0xd804('0x62'),function(){console[_0xd804('0x63')](_0xd804('0x64'),0x232c);return _0xcec83('RPC\x20listening\x20on\x20port:'+0x232c);});});};
\ No newline at end of file