Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / components / import / cm / csv.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0xc548=['cmContact,\x20%s,\x20%s','generalCheckHopper','finally','emit','contact:csv_','resume','resolve','Unable\x20to\x20delete\x20temp\x20file:','exit','SIGINT','info','CSV\x20import\x20process\x20stopped!','CmContact','parse','duplicate','pause','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util','lodash','squel','papaparse','ioredis','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','defaults','localhost','socket.io-emitter','register','argv','undefined','null','Missing\x20filepath\x20parameter!','Missing\x20binding\x20parameters!','split','error','contact','test','isNil','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','length','map','message','join','data','firstName\x20not\x20specified!','phone','phone\x20not\x20specified!','birthDate','YYYY-MM-DD','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!','email','email\x20format\x20is\x20not\x20valid!','ListId','CompanyId','find','Duplicate\x20Contact','create','keys','then','push','pick','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','checkHopper','insert','cm_hopper','fromQuery','scheduledAt','updatedAt','select','field','NOW()','ContactId','toString','createdAt','from','where','deletedAt\x20IS\x20NULL','phone\x20IS\x20NOT\x20NULL','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','into','cm_contacts','ListId\x20=\x20?','id\x20IN\x20?','str','cm_hopper_final','findAll','outbound','dialCheckDuplicateType','get','sequelize','query','VoiceQueueId','catch','onlyIfOpen','CmList','BlackLists','all','Campaign','Lists','always','CampaignId'];(function(_0xe44ae9,_0x2ab661){var _0x2ccef2=function(_0x524af7){while(--_0x524af7){_0xe44ae9['push'](_0xe44ae9['shift']());}};_0x2ccef2(++_0x2ab661);}(_0xc548,0x15d));var _0x8c54=function(_0x1587af,_0x3c73ee){_0x1587af=_0x1587af-0x0;var _0x15d3a6=_0xc548[_0x1587af];return _0x15d3a6;};'use strict';var BPromise=require(_0x8c54('0x0'));var util=require(_0x8c54('0x1'));var _=require(_0x8c54('0x2'));var fs=require('fs');var squel=require(_0x8c54('0x3'));var Papa=require(_0x8c54('0x4'));var Redis=require(_0x8c54('0x5'));var db=require(_0x8c54('0x6'))['db'];var config=require(_0x8c54('0x7'));var logger=require(_0x8c54('0x8'))(_0x8c54('0x9'));config[_0x8c54('0xa')]=_[_0x8c54('0xb')](config[_0x8c54('0xa')],{'host':_0x8c54('0xc'),'port':0x18eb});var socket=require(_0x8c54('0xd'))(new Redis(config['redis']));require('../../../api/cmContact/cmContact.socket')[_0x8c54('0xe')](socket);try{if(!process[_0x8c54('0xf')][0x2]||process[_0x8c54('0xf')][0x2]===_0x8c54('0x10')||process[_0x8c54('0xf')][0x2]===_0x8c54('0x11')){throw new Error(_0x8c54('0x12'));}var FILEPATH=process['argv'][0x2];if(!process[_0x8c54('0xf')][0x3]||process[_0x8c54('0xf')][0x3]==='undefined'||process[_0x8c54('0xf')][0x3]===_0x8c54('0x11')||!process[_0x8c54('0xf')][0x4]||process[_0x8c54('0xf')][0x4]===_0x8c54('0x10')||process[_0x8c54('0xf')][0x4]===_0x8c54('0x11')){throw new Error(_0x8c54('0x13'));}var FIELDS=_['zipObject'](process[_0x8c54('0xf')][0x3][_0x8c54('0x14')](','),process['argv'][0x4][_0x8c54('0x14')](','));if(!process[_0x8c54('0xf')][0x5]||process[_0x8c54('0xf')][0x5]===_0x8c54('0x10')||process[_0x8c54('0xf')][0x5]===_0x8c54('0x11')){throw new Error('Missing\x20ListId\x20parameter!');}var LISTID=process[_0x8c54('0xf')][0x5];var COMPANYID=process[_0x8c54('0xf')][0x6]&&process[_0x8c54('0xf')][0x6]!=='undefined'&&process[_0x8c54('0xf')][0x6]!==_0x8c54('0x11')?process[_0x8c54('0xf')][0x6]:null;var DUPLICATES=process[_0x8c54('0xf')][0x7]&&process['argv'][0x7]!==_0x8c54('0x10')&&process[_0x8c54('0xf')][0x7]!==_0x8c54('0x11')?process[_0x8c54('0xf')][0x7]:null;if(!process[_0x8c54('0xf')][0x8]||process[_0x8c54('0xf')][0x8]===_0x8c54('0x10')||process[_0x8c54('0xf')][0x8]===_0x8c54('0x11')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x8c54('0xf')][0x8];}catch(_0x49abb7){logger[_0x8c54('0x15')](_0x49abb7);endCsv();}var total=0x0;var pTotal=0x0;var success=0x0;var errors=0x0;var duplicates=0x0;var rows=[];var hopperContacts='';var promises=[];var index=0x0;var alreadyInvalid=![];function handleCheckRowError(_0x4c510a,_0x53ea4e,_0x1f24cc,_0x523384){var _0x4ddd0c={'message':_0x53ea4e};_0x4ddd0c[_0x4c510a]=!![];if(_0x1f24cc){_0x4ddd0c[_0x8c54('0x16')]=_0x1f24cc;}if(_0x523384){_0x4ddd0c['index']=_0x523384;}return _0x4ddd0c;}function isEmail(_0x55fbb1){return/^([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x22([^\x0d\x22\x5c\x80-\xff]|\x5c[\x00-\x7f])*\x22))*\x40([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d)(\x2e([^\x00-\x20\x22\x28\x29\x2c\x2e\x3a-\x3c\x3e\x40\x5b-\x5d\x7f-\xff]+|\x5b([^\x0d\x5b-\x5d\x80-\xff]|\x5c[\x00-\x7f])*\x5d))*$/[_0x8c54('0x17')](_0x55fbb1);}function checkRow(_0x5c5df2,_0x4f4cd0,_0x13b19b){return new BPromise(function(_0x55a48b,_0xfceaab){if(_[_0x8c54('0x18')](_0x5c5df2)){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x19'),null,_0x13b19b));}if(_0x5c5df2['errors']&&_0x5c5df2['errors'][_0x8c54('0x1a')]){var _0x31d7e8=_[_0x8c54('0x1b')](_0x5c5df2['errors'],_0x8c54('0x1c'))[_0x8c54('0x1d')](';');return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x31d7e8,null,_0x13b19b));}var _0x199b47={};for(var _0x2d8d0e in FIELDS){if(FIELDS['hasOwnProperty'](_0x2d8d0e)&&FIELDS[_0x2d8d0e]){_0x199b47[_0x2d8d0e]=_0x5c5df2[_0x8c54('0x1e')][0x0][FIELDS[_0x2d8d0e]]||_0x5c5df2['data'][0x0]['\ufeff'+FIELDS[_0x2d8d0e]];}}if(!_0x199b47['firstName']){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x1f'),null,_0x13b19b));}if(!_0x199b47[_0x8c54('0x20')]){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x21'),null,_0x13b19b));}if(_0x199b47[_0x8c54('0x22')]){var _0x55caa3=moment(_0x199b47[_0x8c54('0x22')],_0x8c54('0x23'));if(!_0x55caa3['isValid']()){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x24'),null,_0x13b19b));}}if(_0x199b47[_0x8c54('0x25')]){if(!isEmail(_0x199b47[_0x8c54('0x25')])){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x26'),null,_0x13b19b));}}_0x199b47[_0x8c54('0x27')]=LISTID;_0x199b47[_0x8c54('0x28')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x8c54('0x1a')]&&_0x4f4cd0){var _0x125313={};for(var _0x5555e4=0x0,_0x57c172=DUPLICATES[_0x8c54('0x1a')];_0x5555e4<_0x57c172;_0x5555e4+=0x1){_0x125313[DUPLICATES[_0x5555e4]]=_0x199b47[DUPLICATES[_0x5555e4]];}var _0x484de9=_[_0x8c54('0x29')](_0x4f4cd0,_0x125313);if(_0x484de9){return _0xfceaab(handleCheckRowError('duplicate',_0x8c54('0x2a'),_0x484de9,_0x13b19b));}}return db['CmContact'][_0x8c54('0x2b')](_0x199b47,{'raw':!![],'hooks':![],'fields':_[_0x8c54('0x2c')](_0x199b47)})[_0x8c54('0x2d')](function(_0x57bd35){if(DUPLICATES&&DUPLICATES['length']&&_0x4f4cd0){_0x4f4cd0[_0x8c54('0x2e')](_[_0x8c54('0x2f')](_0x199b47,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x57bd35['id'];return _0x55a48b();})['catch'](function(_0x56b561){return _0xfceaab(handleCheckRowError(_0x8c54('0x15'),_0x8c54('0x30')+(_0x56b561['message']||JSON[_0x8c54('0x31')](_0x56b561)),null,_0x13b19b));});});}function checkHopper(){function _0x403ff7(){return function(_0x250cd6){logger[_0x8c54('0x15')](_0x8c54('0x32'),_0x8c54('0x33'),util['inspect'](_0x250cd6,{'showHidden':![],'depth':null}));};}var _0x25e917=function(_0x1908b0,_0xf8a84e){var _0x120711=squel[_0x8c54('0x34')]()['into'](_0x8c54('0x35'))[_0x8c54('0x36')](['phone',_0x8c54('0x37'),'ContactId',_0x8c54('0x27'),_0xf8a84e,'createdAt',_0x8c54('0x38')],squel[_0x8c54('0x39')]()['field']('phone',_0x8c54('0x20'))[_0x8c54('0x3a')](_0x8c54('0x3b'),_0x8c54('0x37'))['field']('id',_0x8c54('0x3c'))['field'](LISTID['toString'](),_0x8c54('0x27'))['field'](_0x1908b0['id'][_0x8c54('0x3d')](),_0xf8a84e)[_0x8c54('0x3a')](_0x8c54('0x3b'),_0x8c54('0x3e'))[_0x8c54('0x3a')]('NOW()','updatedAt')[_0x8c54('0x3f')]('cm_contacts')[_0x8c54('0x40')](_0x8c54('0x41'))['where']('ListId\x20=\x20?',LISTID[_0x8c54('0x3d')]())[_0x8c54('0x40')](_0x8c54('0x42'))[_0x8c54('0x40')](_0x8c54('0x43'),squel[_0x8c54('0x39')]()[_0x8c54('0x3a')]('phone')[_0x8c54('0x3f')](_0x8c54('0x35'))['where'](_0xf8a84e+_0x8c54('0x44'),_0x1908b0['id']['toString']())))[_0x8c54('0x3d')]();return _0x120711;};var _0x17b459=function(_0x4ae3b6,_0x5d5d20){var _0x4c353b=squel[_0x8c54('0x34')]()[_0x8c54('0x45')](_0x8c54('0x35'))[_0x8c54('0x36')]([_0x8c54('0x20'),_0x8c54('0x37'),_0x8c54('0x3c'),_0x8c54('0x27'),_0x5d5d20,'createdAt',_0x8c54('0x38')],squel['select']()[_0x8c54('0x3a')](_0x8c54('0x20'),'phone')[_0x8c54('0x3a')](_0x8c54('0x3b'),'scheduledAt')[_0x8c54('0x3a')]('id',_0x8c54('0x3c'))['field'](LISTID[_0x8c54('0x3d')](),_0x8c54('0x27'))[_0x8c54('0x3a')](_0x4ae3b6['id'][_0x8c54('0x3d')](),_0x5d5d20)[_0x8c54('0x3a')](_0x8c54('0x3b'),_0x8c54('0x3e'))[_0x8c54('0x3a')]('NOW()',_0x8c54('0x38'))['from'](_0x8c54('0x46'))[_0x8c54('0x40')](_0x8c54('0x41'))[_0x8c54('0x40')](_0x8c54('0x47'),LISTID[_0x8c54('0x3d')]())[_0x8c54('0x40')](_0x8c54('0x48'),squel[_0x8c54('0x49')](hopperContacts))['where']('phone\x20IS\x20NOT\x20NULL')[_0x8c54('0x40')](_0x8c54('0x43'),squel[_0x8c54('0x39')]()[_0x8c54('0x3a')]('calleridnum')['from'](_0x8c54('0x4a'))[_0x8c54('0x40')](_0x5d5d20+_0x8c54('0x44'),_0x4ae3b6['id']['toString']()))[_0x8c54('0x40')]('phone\x20NOT\x20IN\x20(?)',squel[_0x8c54('0x39')]()['field'](_0x8c54('0x20'))[_0x8c54('0x3f')]('cm_hopper')['where'](_0x5d5d20+'\x20=\x20?',_0x4ae3b6['id'][_0x8c54('0x3d')]())))[_0x8c54('0x3d')]();return _0x4c353b;};function _0x29d2c9(_0x317304,_0x18492f){var _0x15c692=squel[_0x8c54('0x34')]()[_0x8c54('0x45')]('cm_hopper')['fromQuery']([_0x8c54('0x20'),'scheduledAt','ContactId',_0x8c54('0x27'),_0x18492f,_0x8c54('0x3e'),_0x8c54('0x38')],squel[_0x8c54('0x39')]()[_0x8c54('0x3a')](_0x8c54('0x20'),_0x8c54('0x20'))['field']('NOW()',_0x8c54('0x37'))[_0x8c54('0x3a')]('id','ContactId')[_0x8c54('0x3a')](LISTID[_0x8c54('0x3d')](),_0x8c54('0x27'))[_0x8c54('0x3a')](_0x317304['id']['toString'](),_0x18492f)[_0x8c54('0x3a')]('NOW()',_0x8c54('0x3e'))['field'](_0x8c54('0x3b'),_0x8c54('0x38'))['from'](_0x8c54('0x46'))[_0x8c54('0x40')](_0x8c54('0x41'))[_0x8c54('0x40')]('ListId\x20=\x20?',LISTID[_0x8c54('0x3d')]())[_0x8c54('0x40')](_0x8c54('0x48'),squel[_0x8c54('0x49')](hopperContacts))[_0x8c54('0x40')](_0x8c54('0x42')))[_0x8c54('0x3d')]();return _0x15c692;}function _0x2250d4(_0x180715,_0x54d5c7){var _0x1fd32a=squel[_0x8c54('0x34')]()[_0x8c54('0x45')]('cm_hopper_black')[_0x8c54('0x36')]([_0x8c54('0x20'),_0x8c54('0x3c'),_0x8c54('0x27'),_0x54d5c7,_0x8c54('0x3e'),_0x8c54('0x38')],squel['select']()[_0x8c54('0x3a')]('phone',_0x8c54('0x20'))[_0x8c54('0x3a')]('id',_0x8c54('0x3c'))[_0x8c54('0x3a')](LISTID[_0x8c54('0x3d')](),_0x8c54('0x27'))[_0x8c54('0x3a')](_0x180715['id'][_0x8c54('0x3d')](),_0x54d5c7)['field'](_0x8c54('0x3b'),_0x8c54('0x3e'))[_0x8c54('0x3a')](_0x8c54('0x3b'),_0x8c54('0x38'))['from']('cm_contacts')[_0x8c54('0x40')](_0x8c54('0x41'))[_0x8c54('0x40')](_0x8c54('0x47'),LISTID[_0x8c54('0x3d')]())[_0x8c54('0x40')](_0x8c54('0x48'),squel[_0x8c54('0x49')](hopperContacts))[_0x8c54('0x40')](_0x8c54('0x42')))[_0x8c54('0x3d')]();return _0x1fd32a;}return db['VoiceQueue'][_0x8c54('0x4b')]({'where':{'type':_0x8c54('0x4c')},'attributes':['id',_0x8c54('0x4d')],'include':[{'model':db['CmList'],'as':'Lists','where':{'id':LISTID}}]})['then'](function(_0x362402){var _0x29931a=[];if(_0x362402){var _0x14cc17;for(var _0x214ad0=0x0,_0x49e344;_0x214ad0<_0x362402[_0x8c54('0x1a')];_0x214ad0+=0x1){_0x49e344=_0x362402[_0x214ad0][_0x8c54('0x4e')]({'plain':!![]});switch(_0x49e344[_0x8c54('0x4d')]){case'always':_0x29931a['push'](db[_0x8c54('0x4f')][_0x8c54('0x50')](_0x17b459(_0x49e344,_0x8c54('0x51')))[_0x8c54('0x2d')](function(){})[_0x8c54('0x52')](_0x403ff7()));break;case _0x8c54('0x53'):_0x29931a[_0x8c54('0x2e')](db[_0x8c54('0x4f')]['query'](_0x25e917(_0x49e344,_0x8c54('0x51')))[_0x8c54('0x2d')](function(){})['catch'](_0x403ff7()));break;default:_0x29931a[_0x8c54('0x2e')](db[_0x8c54('0x4f')][_0x8c54('0x50')](_0x29d2c9(_0x49e344,'VoiceQueueId'))[_0x8c54('0x2d')](function(){})[_0x8c54('0x52')](_0x403ff7()));}}}return _0x29931a;})['all']()[_0x8c54('0x2d')](function(){return db['VoiceQueue']['findAll']({'where':{'type':'outbound'},'attributes':['id'],'include':[{'model':db[_0x8c54('0x54')],'as':_0x8c54('0x55'),'where':{'id':LISTID}}]})[_0x8c54('0x2d')](function(_0x528a65){var _0x4f7115=[];if(_0x528a65){var _0x26eea7;for(var _0x542fef=0x0,_0x3e3478;_0x542fef<_0x528a65['length'];_0x542fef+=0x1){_0x3e3478=_0x528a65[_0x542fef]['get']({'plain':!![]});_0x4f7115['push'](db['sequelize'][_0x8c54('0x50')](_0x2250d4(_0x3e3478,_0x8c54('0x51')))[_0x8c54('0x2d')](function(){})[_0x8c54('0x52')](_0x403ff7()));}}return _0x4f7115;})[_0x8c54('0x56')]();})[_0x8c54('0x2d')](function(){return db[_0x8c54('0x57')][_0x8c54('0x4b')]({'attributes':['id','dialCheckDuplicateType'],'include':[{'model':db[_0x8c54('0x54')],'as':_0x8c54('0x58'),'where':{'id':LISTID}}]})['then'](function(_0x4d983d){var _0x731525=[];if(_0x4d983d){for(var _0x372730=0x0,_0x30cde3;_0x372730<_0x4d983d['length'];_0x372730+=0x1){_0x30cde3=_0x4d983d[_0x372730][_0x8c54('0x4e')]({'plain':!![]});switch(_0x30cde3[_0x8c54('0x4d')]){case _0x8c54('0x59'):_0x731525[_0x8c54('0x2e')](db[_0x8c54('0x4f')]['query'](_0x17b459(_0x30cde3,'CampaignId'))[_0x8c54('0x2d')](function(){})[_0x8c54('0x52')](_0x403ff7()));break;case'onlyIfOpen':_0x731525[_0x8c54('0x2e')](db['sequelize'][_0x8c54('0x50')](_0x25e917(_0x30cde3,_0x8c54('0x5a')))['then'](function(){})[_0x8c54('0x52')](_0x403ff7()));break;default:_0x731525['push'](db['sequelize'][_0x8c54('0x50')](_0x29d2c9(_0x30cde3,'CampaignId'))['then'](function(){})[_0x8c54('0x52')](_0x403ff7()));}}}return _0x731525;})[_0x8c54('0x56')]();})[_0x8c54('0x2d')](function(){return db[_0x8c54('0x57')]['findAll']({'attributes':['id'],'include':[{'model':db[_0x8c54('0x54')],'as':_0x8c54('0x55'),'where':{'id':LISTID}}]})[_0x8c54('0x2d')](function(_0x566adb){var _0xf3aee2=[];if(_0x566adb){for(var _0xb9d515=0x0,_0xb63e66;_0xb9d515<_0x566adb['length'];_0xb9d515+=0x1){_0xb63e66=_0x566adb[_0xb9d515][_0x8c54('0x4e')]({'plain':!![]});_0xf3aee2[_0x8c54('0x2e')](db[_0x8c54('0x4f')]['query'](_0x2250d4(_0xb63e66,'CampaignId'))[_0x8c54('0x2d')](function(){})['catch'](_0x403ff7()));}}return _0xf3aee2;})[_0x8c54('0x56')]();})[_0x8c54('0x52')](function(_0x39309d){logger[_0x8c54('0x15')](_0x8c54('0x5b'),_0x8c54('0x5c'),_0x39309d['message']);});}var processPromises=function(_0x1a0e2c){return BPromise[_0x8c54('0x56')](promises)[_0x8c54('0x2d')](function(_0x213cec){})[_0x8c54('0x52')](function(_0x42fbcd){logger[_0x8c54('0x15')]('Error\x20processing\x20rows\x20block:',JSON['stringify'](_0x42fbcd));})[_0x8c54('0x5d')](function(){socket[_0x8c54('0x5e')](_0x8c54('0x5f')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x1a0e2c){return _0x1a0e2c[_0x8c54('0x60')]();}});};var endCsv=function(){return BPromise[_0x8c54('0x61')]()[_0x8c54('0x2d')](function(){if(hopperContacts){return checkHopper();}})[_0x8c54('0x2d')](function(){socket[_0x8c54('0x5e')](_0x8c54('0x5f')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs['unlinkSync'](FILEPATH);}catch(_0x4fbea9){logger[_0x8c54('0x15')](_0x8c54('0x62'),JSON['stringify'](_0x4fbea9));}finally{process[_0x8c54('0x63')](0x0);}});};process['on'](_0x8c54('0x64'),function(){logger[_0x8c54('0x65')](_0x8c54('0x66'));endCsv();});function main(){return BPromise[_0x8c54('0x61')]()['then'](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x8c54('0x14')](',');return db[_0x8c54('0x67')][_0x8c54('0x4b')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x8c54('0x2d')](function(_0x2cf695){var _0x4ac480=fs['createReadStream'](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa[_0x8c54('0x68')](_0x4ac480,{'header':!![],'skipEmptyLines':!![],'step':function(_0x429a35,_0x383b8c){total+=0x1;var _0x49cc09=total;promises[_0x8c54('0x2e')](checkRow(_0x429a35,_0x2cf695,_0x49cc09)[_0x8c54('0x2d')](function(){success+=0x1;})['catch'](function(_0x53ab74){if(_0x53ab74['error']){errors+=0x1;delete _0x53ab74[_0x8c54('0x15')];}else if(_0x53ab74[_0x8c54('0x69')]){duplicates+=0x1;delete _0x53ab74[_0x8c54('0x69')];}rows[_0x8c54('0x2e')](_0x53ab74);}));if(total%0xc8===0x0){_0x383b8c[_0x8c54('0x6a')]();return processPromises(_0x383b8c);}},'complete':function(){return processPromises()['then'](function(){logger[_0x8c54('0x65')](_0x8c54('0x6b'));endCsv();});},'error':function(_0xabd501,_0x21b976){logger[_0x8c54('0x65')](_0x8c54('0x6c'),JSON[_0x8c54('0x31')](_0xabd501));endCsv();}});})['catch'](function(_0x19a217){logger[_0x8c54('0x15')](_0x8c54('0x6d'),JSON[_0x8c54('0x31')](_0x19a217));});}main();