Built motion from commit a61a4a20.|2.5.46
[motion2.git] / server / config / triggers / index.js
index 2cb9250..53447be 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xe428=['length','hasOwnProperty','model','hook','callback','toLowerCase','util','jayson/promise','../logger','client','http','Chat','ChatInteraction','afterCreate','newinteraction','newmessage','Sms','SmsInteraction','afterUpdate','closedinteraction','SmsMessage','Whatsapp','WhatsappInteraction','Fax','FaxInteraction','FaxMessage','MailInteraction','Mail','MailMessage','OpenchannelInteraction','OpenchannelMessage','request','EventManager','Trigger,\x20%s','error','catch','get','channel','motionChannel','direction','resolve','then','ContactId','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','sequelize','query','QueryTypes','SELECT','contact','UserId','undefined','format','SIP/%s','name','agent','outgoingmessage','AfterCreateMessage','event','offlineMessage','opened','Sequelize','interface','AfterCreate','closed','substatus','AfterUpdate','User','find','fullname','email'];(function(_0x5c71ce,_0x39c997){var _0x44dc37=function(_0x56c374){while(--_0x56c374){_0x5c71ce['push'](_0x5c71ce['shift']());}};_0x44dc37(++_0x39c997);}(_0xe428,0x1f0));var _0x8e42=function(_0x128af2,_0x11dffb){_0x128af2=_0x128af2-0x0;var _0x49208f=_0xe428[_0x128af2];return _0x49208f;};'use strict';var util=require(_0x8e42('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0x8e42('0x1'));var logger=require(_0x8e42('0x2'))('triggers');var client=jayson[_0x8e42('0x3')][_0x8e42('0x4')]({'port':0x232a});var triggers=[{'channel':_0x8e42('0x5'),'model':_0x8e42('0x6'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':_0x8e42('0x5'),'model':'ChatInteraction','event':'afterUpdate','condition':'closedinteraction','callback':afterUpdate},{'channel':'Chat','model':'ChatMessage','event':_0x8e42('0x7'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Chat','model':'ChatOfflineMessage','event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateOfflineMessage},{'channel':_0x8e42('0xa'),'model':'SmsInteraction','event':_0x8e42('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':_0x8e42('0xa'),'model':_0x8e42('0xb'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0xa'),'model':_0x8e42('0xe'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':_0x8e42('0xf'),'model':_0x8e42('0x10'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':_0x8e42('0xf'),'model':'WhatsappInteraction','event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0xf'),'model':'WhatsappMessage','event':'afterCreate','condition':'newmessage','callback':afterCreateMessage},{'channel':_0x8e42('0x11'),'model':_0x8e42('0x12'),'event':'afterCreate','condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':'Fax','model':_0x8e42('0x12'),'event':_0x8e42('0xc'),'condition':'closedinteraction','callback':afterUpdate},{'channel':_0x8e42('0x11'),'model':_0x8e42('0x13'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':'Mail','model':_0x8e42('0x14'),'event':_0x8e42('0x7'),'condition':'newinteraction','callback':afterCreate},{'channel':'Mail','model':_0x8e42('0x14'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':_0x8e42('0x15'),'model':_0x8e42('0x16'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage},{'channel':'Openchannel','model':_0x8e42('0x17'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x8'),'callback':afterCreate},{'channel':'Openchannel','model':_0x8e42('0x17'),'event':_0x8e42('0xc'),'condition':_0x8e42('0xd'),'callback':afterUpdate},{'channel':'Openchannel','model':_0x8e42('0x18'),'event':_0x8e42('0x7'),'condition':_0x8e42('0x9'),'callback':afterCreateMessage}];function request(_0x463973){return client[_0x8e42('0x19')](_0x8e42('0x1a'),_0x463973)['then'](function(_0x2f3980){logger['info'](_0x8e42('0x1b'),_0x8e42('0x1a'),_0x2f3980);if(_0x2f3980[_0x8e42('0x1c')]){if(_0x2f3980[_0x8e42('0x1c')]['code']===0x1f4){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x1a'),_0x2f3980[_0x8e42('0x1c')]);}}})[_0x8e42('0x1d')](function(_0x3441ca){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),'EventManager',_0x3441ca);});}function afterCreateMessage(_0x8660bd){return function(_0x4d7561){_0x4d7561=_0x4d7561[_0x8e42('0x1e')]({'plain':!![]});_0x4d7561[_0x8e42('0x1f')]=_0x8660bd;_0x4d7561[_0x8e42('0x20')]=_0x8660bd;_0x4d7561['event']=_0x4d7561[_0x8e42('0x21')];Promise[_0x8e42('0x22')]()[_0x8e42('0x23')](function(){if(typeof _0x4d7561[_0x8e42('0x24')]==='undefined')return null;var _0x31ae30=_0x8e42('0x25')+_0x4d7561['ContactId'];return db[_0x8e42('0x26')][_0x8e42('0x27')](_0x31ae30,{'type':db['Sequelize'][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]});})[_0x8e42('0x23')](function(_0x421f43){if(_0x421f43){_0x4d7561[_0x8e42('0x2a')]=_0x421f43[0x0];}if(typeof _0x4d7561[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x4d7561['UserId']);})[_0x8e42('0x23')](function(_0x12934d){if(_0x12934d){_0x4d7561['interface']=util[_0x8e42('0x2d')](_0x8e42('0x2e'),_0x12934d[_0x8e42('0x2f')]);_0x4d7561[_0x8e42('0x30')]=_0x12934d;_0x4d7561[_0x8e42('0x1f')]=_0x8660bd;return request({'event':'incomingmessage','message':_0x4d7561});}else{return request({'event':_0x8e42('0x31'),'message':_0x4d7561});}})[_0x8e42('0x1d')](function(_0x2aec21){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x32'),_0x2aec21);});};}function afterCreateOfflineMessage(_0x204197){return function(_0x300b51){_0x300b51=_0x300b51[_0x8e42('0x1e')]({'plain':!![]});_0x300b51['channel']=_0x204197;_0x300b51['motionChannel']=_0x204197;_0x300b51[_0x8e42('0x33')]=_0x8e42('0x34');return request({'event':_0x300b51[_0x8e42('0x33')],'message':_0x300b51});};}function afterCreate(_0x37adc2,_0x3ae849){return function(_0x371291){_0x371291=_0x371291['get']({'plain':!![]});_0x371291[_0x8e42('0x1f')]=_0x37adc2;_0x371291[_0x8e42('0x20')]=_0x37adc2;_0x371291[_0x8e42('0x33')]=_0x8e42('0x35');Promise['resolve']()[_0x8e42('0x23')](function(){var _0x17987c=_0x8e42('0x25')+_0x371291[_0x8e42('0x24')];return db['sequelize']['query'](_0x17987c,{'type':db[_0x8e42('0x36')][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]});})['then'](function(_0x186c0e){if(_0x186c0e){_0x371291[_0x8e42('0x2a')]=_0x186c0e[0x0];}if(typeof _0x371291[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x371291[_0x8e42('0x2b')]);})[_0x8e42('0x23')](function(_0xbd5ac1){if(_0xbd5ac1){_0x371291[_0x8e42('0x37')]=util[_0x8e42('0x2d')](_0x8e42('0x2e'),_0xbd5ac1['name']);_0x371291[_0x8e42('0x30')]=_0xbd5ac1;}return request({'event':_0x3ae849,'message':_0x371291});})[_0x8e42('0x1d')](function(_0x530a2d){logger[_0x8e42('0x1c')]('Trigger,\x20%s',_0x8e42('0x38'),_0x530a2d);});};}function afterUpdate(_0x560d22){return function(_0x16bce8){var _0x287a83=_0x16bce8['changed'](_0x8e42('0x39'))&&_0x16bce8[_0x8e42('0x39')];var _0x4fa5f6=_0x16bce8['changed'](_0x8e42('0x3a'));if(_0x287a83||_0x4fa5f6){var _0x237a62=_0x287a83?'closedinteraction':_0x8e42('0x3a');var _0x12d7d1=_0x16bce8[_0x8e42('0x1e')]({'plain':!![]});_0x12d7d1[_0x8e42('0x1f')]=_0x560d22;_0x12d7d1['motionChannel']=_0x560d22;_0x12d7d1['event']=_0x287a83?_0x8e42('0x39'):_0x8e42('0x3a');var _0x56da9f=_0x8e42('0x25')+_0x12d7d1['ContactId'];return db['sequelize']['query'](_0x56da9f,{'type':db[_0x8e42('0x36')][_0x8e42('0x28')][_0x8e42('0x29')],'raw':!![]})['then'](function(_0x109233){if(_0x109233){_0x12d7d1[_0x8e42('0x2a')]=_0x109233[0x0];}if(typeof _0x12d7d1[_0x8e42('0x2b')]===_0x8e42('0x2c'))return;return getAgent(_0x12d7d1[_0x8e42('0x2b')]);})[_0x8e42('0x23')](function(_0x40ea12){if(_0x40ea12){_0x12d7d1[_0x8e42('0x37')]=util['format']('SIP/%s',_0x40ea12[_0x8e42('0x2f')]);_0x12d7d1[_0x8e42('0x30')]=_0x40ea12;}return request({'event':_0x237a62,'message':_0x12d7d1});})[_0x8e42('0x1d')](function(_0x585da0){logger[_0x8e42('0x1c')](_0x8e42('0x1b'),_0x8e42('0x3b'),_0x585da0);});}};}function getAgent(_0x2f6941){return db[_0x8e42('0x3c')][_0x8e42('0x3d')]({'where':{'id':_0x2f6941},'attributes':['id',_0x8e42('0x2f'),_0x8e42('0x3e'),_0x8e42('0x3f'),'internal'],'raw':!![]})[_0x8e42('0x23')](function(_0x59f227){return _0x59f227;});}exports['default']=function(){for(var _0x39668e=0x0;_0x39668e<triggers[_0x8e42('0x40')];_0x39668e+=0x1){if(db[_0x8e42('0x41')](triggers[_0x39668e][_0x8e42('0x42')])){db[triggers[_0x39668e][_0x8e42('0x42')]][_0x8e42('0x43')](triggers[_0x39668e]['event'],triggers[_0x39668e][_0x8e42('0x44')](triggers[_0x39668e][_0x8e42('0x1f')][_0x8e42('0x45')](),triggers[_0x39668e]['condition']));}}};
\ No newline at end of file
+var _0xebed=['Fax','FaxMessage','Mail','MailInteraction','MailMessage','Openchannel','OpenchannelInteraction','request','EventManager','then','info','error','code','catch','Trigger,\x20%s','get','motionChannel','event','direction','resolve','ContactId','undefined','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','query','Sequelize','SELECT','contact','UserId','interface','format','SIP/%s','name','agent','channel','incomingmessage','outgoingmessage','AfterCreateMessage','offlineMessage','sequelize','QueryTypes','AfterCreate','changed','closed','substatus','User','fullname','internal','default','length','model','hook','callback','condition','util','jayson/promise','../logger','triggers','client','Chat','afterCreate','afterUpdate','closedinteraction','ChatMessage','newmessage','Sms','newinteraction','SmsInteraction','SmsMessage','Whatsapp','WhatsappInteraction','WhatsappMessage','FaxInteraction'];(function(_0x2ff5d8,_0x51a9ab){var _0x403b5a=function(_0x3f7111){while(--_0x3f7111){_0x2ff5d8['push'](_0x2ff5d8['shift']());}};_0x403b5a(++_0x51a9ab);}(_0xebed,0x19d));var _0xdebe=function(_0xcd0918,_0x56bdf9){_0xcd0918=_0xcd0918-0x0;var _0x250704=_0xebed[_0xcd0918];return _0x250704;};'use strict';var util=require(_0xdebe('0x0'));var db=require('../../mysqldb')['db'];var jayson=require(_0xdebe('0x1'));var logger=require(_0xdebe('0x2'))(_0xdebe('0x3'));var client=jayson[_0xdebe('0x4')]['http']({'port':0x232a});var triggers=[{'channel':_0xdebe('0x5'),'model':'ChatInteraction','event':_0xdebe('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':'Chat','model':'ChatInteraction','event':_0xdebe('0x7'),'condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':'Chat','model':_0xdebe('0x9'),'event':'afterCreate','condition':_0xdebe('0xa'),'callback':afterCreateMessage},{'channel':_0xdebe('0x5'),'model':'ChatOfflineMessage','event':_0xdebe('0x6'),'condition':_0xdebe('0xa'),'callback':afterCreateOfflineMessage},{'channel':_0xdebe('0xb'),'model':'SmsInteraction','event':_0xdebe('0x6'),'condition':_0xdebe('0xc'),'callback':afterCreate},{'channel':_0xdebe('0xb'),'model':_0xdebe('0xd'),'event':_0xdebe('0x7'),'condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':_0xdebe('0xb'),'model':_0xdebe('0xe'),'event':_0xdebe('0x6'),'condition':_0xdebe('0xa'),'callback':afterCreateMessage},{'channel':_0xdebe('0xf'),'model':_0xdebe('0x10'),'event':_0xdebe('0x6'),'condition':'newinteraction','callback':afterCreate},{'channel':_0xdebe('0xf'),'model':_0xdebe('0x10'),'event':_0xdebe('0x7'),'condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':_0xdebe('0xf'),'model':_0xdebe('0x11'),'event':_0xdebe('0x6'),'condition':'newmessage','callback':afterCreateMessage},{'channel':'Fax','model':_0xdebe('0x12'),'event':_0xdebe('0x6'),'condition':_0xdebe('0xc'),'callback':afterCreate},{'channel':_0xdebe('0x13'),'model':'FaxInteraction','event':_0xdebe('0x7'),'condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':_0xdebe('0x13'),'model':_0xdebe('0x14'),'event':_0xdebe('0x6'),'condition':_0xdebe('0xa'),'callback':afterCreateMessage},{'channel':_0xdebe('0x15'),'model':_0xdebe('0x16'),'event':'afterCreate','condition':_0xdebe('0xc'),'callback':afterCreate},{'channel':_0xdebe('0x15'),'model':_0xdebe('0x16'),'event':'afterUpdate','condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':_0xdebe('0x15'),'model':_0xdebe('0x17'),'event':'afterCreate','condition':_0xdebe('0xa'),'callback':afterCreateMessage},{'channel':_0xdebe('0x18'),'model':_0xdebe('0x19'),'event':_0xdebe('0x6'),'condition':_0xdebe('0xc'),'callback':afterCreate},{'channel':_0xdebe('0x18'),'model':'OpenchannelInteraction','event':_0xdebe('0x7'),'condition':_0xdebe('0x8'),'callback':afterUpdate},{'channel':_0xdebe('0x18'),'model':'OpenchannelMessage','event':'afterCreate','condition':_0xdebe('0xa'),'callback':afterCreateMessage}];function request(_0x4ee8af){return client[_0xdebe('0x1a')](_0xdebe('0x1b'),_0x4ee8af)[_0xdebe('0x1c')](function(_0x2ea789){logger[_0xdebe('0x1d')]('Trigger,\x20%s',_0xdebe('0x1b'),_0x2ea789);if(_0x2ea789['error']){if(_0x2ea789[_0xdebe('0x1e')][_0xdebe('0x1f')]===0x1f4){logger[_0xdebe('0x1e')]('Trigger,\x20%s','EventManager',_0x2ea789[_0xdebe('0x1e')]);}}})[_0xdebe('0x20')](function(_0x4427f5){logger['error'](_0xdebe('0x21'),'EventManager',_0x4427f5);});}function afterCreateMessage(_0x352cb1){return function(_0x2bd939){_0x2bd939=_0x2bd939[_0xdebe('0x22')]({'plain':!![]});_0x2bd939['channel']=_0x352cb1;_0x2bd939[_0xdebe('0x23')]=_0x352cb1;_0x2bd939[_0xdebe('0x24')]=_0x2bd939[_0xdebe('0x25')];Promise[_0xdebe('0x26')]()['then'](function(){if(typeof _0x2bd939[_0xdebe('0x27')]===_0xdebe('0x28'))return null;var _0x526710=_0xdebe('0x29')+_0x2bd939['ContactId'];return db['sequelize'][_0xdebe('0x2a')](_0x526710,{'type':db[_0xdebe('0x2b')]['QueryTypes'][_0xdebe('0x2c')],'raw':!![]});})[_0xdebe('0x1c')](function(_0xfa63e9){if(_0xfa63e9){_0x2bd939[_0xdebe('0x2d')]=_0xfa63e9[0x0];}if(typeof _0x2bd939[_0xdebe('0x2e')]==='undefined')return;return getAgent(_0x2bd939[_0xdebe('0x2e')]);})[_0xdebe('0x1c')](function(_0x33418f){if(_0x33418f){_0x2bd939[_0xdebe('0x2f')]=util[_0xdebe('0x30')](_0xdebe('0x31'),_0x33418f[_0xdebe('0x32')]);_0x2bd939[_0xdebe('0x33')]=_0x33418f;_0x2bd939[_0xdebe('0x34')]=_0x352cb1;return request({'event':_0xdebe('0x35'),'message':_0x2bd939});}else{return request({'event':_0xdebe('0x36'),'message':_0x2bd939});}})[_0xdebe('0x20')](function(_0xdc8966){logger['error'](_0xdebe('0x21'),_0xdebe('0x37'),_0xdc8966);});};}function afterCreateOfflineMessage(_0x6ac221){return function(_0x2fd6e2){_0x2fd6e2=_0x2fd6e2[_0xdebe('0x22')]({'plain':!![]});_0x2fd6e2['channel']=_0x6ac221;_0x2fd6e2[_0xdebe('0x23')]=_0x6ac221;_0x2fd6e2[_0xdebe('0x24')]=_0xdebe('0x38');return request({'event':_0x2fd6e2[_0xdebe('0x24')],'message':_0x2fd6e2});};}function afterCreate(_0x84b25,_0x3f84c1){return function(_0x3f9ac3){_0x3f9ac3=_0x3f9ac3['get']({'plain':!![]});_0x3f9ac3[_0xdebe('0x34')]=_0x84b25;_0x3f9ac3[_0xdebe('0x23')]=_0x84b25;_0x3f9ac3['event']='opened';Promise[_0xdebe('0x26')]()[_0xdebe('0x1c')](function(){var _0x2378b3='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x3f9ac3[_0xdebe('0x27')];return db[_0xdebe('0x39')][_0xdebe('0x2a')](_0x2378b3,{'type':db['Sequelize'][_0xdebe('0x3a')][_0xdebe('0x2c')],'raw':!![]});})['then'](function(_0x2c5af5){if(_0x2c5af5){_0x3f9ac3['contact']=_0x2c5af5[0x0];}if(typeof _0x3f9ac3[_0xdebe('0x2e')]==='undefined')return;return getAgent(_0x3f9ac3['UserId']);})[_0xdebe('0x1c')](function(_0x216029){if(_0x216029){_0x3f9ac3[_0xdebe('0x2f')]=util[_0xdebe('0x30')](_0xdebe('0x31'),_0x216029['name']);_0x3f9ac3[_0xdebe('0x33')]=_0x216029;}return request({'event':_0x3f84c1,'message':_0x3f9ac3});})[_0xdebe('0x20')](function(_0x21088e){logger['error'](_0xdebe('0x21'),_0xdebe('0x3b'),_0x21088e);});};}function afterUpdate(_0x7548cd){return function(_0x5c52e7){var _0x4e705b=_0x5c52e7[_0xdebe('0x3c')](_0xdebe('0x3d'))&&_0x5c52e7[_0xdebe('0x3d')];var _0x1be5bd=_0x5c52e7[_0xdebe('0x3c')](_0xdebe('0x3e'));if(_0x4e705b||_0x1be5bd){var _0x566ffa=_0x4e705b?_0xdebe('0x8'):_0xdebe('0x3e');var _0x44d48b=_0x5c52e7[_0xdebe('0x22')]({'plain':!![]});_0x44d48b[_0xdebe('0x34')]=_0x7548cd;_0x44d48b['motionChannel']=_0x7548cd;_0x44d48b['event']=_0x4e705b?'closed':_0xdebe('0x3e');var _0x49a26d=_0xdebe('0x29')+_0x44d48b['ContactId'];return db[_0xdebe('0x39')]['query'](_0x49a26d,{'type':db[_0xdebe('0x2b')][_0xdebe('0x3a')][_0xdebe('0x2c')],'raw':!![]})[_0xdebe('0x1c')](function(_0x48a3cc){if(_0x48a3cc){_0x44d48b[_0xdebe('0x2d')]=_0x48a3cc[0x0];}if(typeof _0x44d48b[_0xdebe('0x2e')]===_0xdebe('0x28'))return;return getAgent(_0x44d48b['UserId']);})['then'](function(_0x51e6aa){if(_0x51e6aa){_0x44d48b[_0xdebe('0x2f')]=util[_0xdebe('0x30')](_0xdebe('0x31'),_0x51e6aa[_0xdebe('0x32')]);_0x44d48b[_0xdebe('0x33')]=_0x51e6aa;}return request({'event':_0x566ffa,'message':_0x44d48b});})[_0xdebe('0x20')](function(_0x4198cf){logger[_0xdebe('0x1e')](_0xdebe('0x21'),'AfterUpdate',_0x4198cf);});}};}function getAgent(_0x133607){return db[_0xdebe('0x3f')]['find']({'where':{'id':_0x133607},'attributes':['id',_0xdebe('0x32'),_0xdebe('0x40'),'email',_0xdebe('0x41')],'raw':!![]})[_0xdebe('0x1c')](function(_0x938e59){return _0x938e59;});}exports[_0xdebe('0x42')]=function(){for(var _0x2aaef1=0x0;_0x2aaef1<triggers[_0xdebe('0x43')];_0x2aaef1+=0x1){if(db['hasOwnProperty'](triggers[_0x2aaef1][_0xdebe('0x44')])){db[triggers[_0x2aaef1][_0xdebe('0x44')]][_0xdebe('0x45')](triggers[_0x2aaef1][_0xdebe('0x24')],triggers[_0x2aaef1][_0xdebe('0x46')](triggers[_0x2aaef1][_0xdebe('0x34')]['toLowerCase'](),triggers[_0x2aaef1][_0xdebe('0x47')]));}}};
\ No newline at end of file