2305d25580c394858975818eab85cc15c6bb4755
[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 _0x4317=['lodash','squel','papaparse','../../../mysqldb','../../../config/environment','../../../config/logger','api','redis','socket.io-emitter','../../../api/cmContact/cmContact.socket','register','argv','undefined','Missing\x20filepath\x20parameter!','null','Missing\x20binding\x20parameters!','zipObject','split','Missing\x20ListId\x20parameter!','index','test','isNil','error','The\x20row\x20is\x20empty\x20or\x20the\x20number\x20of\x20parameters\x20does\x20not\x20match\x20the\x20columns!','errors','length','map','message','join','hasOwnProperty','data','firstName','firstName\x20not\x20specified!','phone','birthDate','isValid','email','CompanyId','find','duplicate','Duplicate\x20Contact','CmContact','keys','then','push','pick','catch','Error\x20while\x20creating\x20contact:\x20','stringify','cmContact','inspect','insert','into','cm_hopper','fromQuery','scheduledAt','ContactId','ListId','createdAt','updatedAt','select','field','NOW()','toString','from','cm_contacts','where','phone\x20NOT\x20IN\x20(?)','\x20=\x20?','id\x20IN\x20?','phone\x20IS\x20NOT\x20NULL','deletedAt\x20IS\x20NULL','cm_hopper_black','ListId\x20=\x20?','findAll','dialCheckDuplicateType','CmList','Lists','get','always','sequelize','VoiceQueueId','onlyIfOpen','query','all','VoiceQueue','outbound','BlackLists','Campaign','CampaignId','cmContact,\x20%s,\x20%s','generalCheckHopper','Error\x20processing\x20rows\x20block:','emit','contact:csv_','resume','resolve','unlinkSync','Unable\x20to\x20delete\x20temp\x20file:','SIGINT','info','createReadStream','CSV\x20parsed\x20correctly!','CSV\x20parse\x20error','Error\x20executing\x20contact\x20csv\x20import:','bluebird','util'];(function(_0x3b4131,_0x1035eb){var _0x11bf19=function(_0x49b2f8){while(--_0x49b2f8){_0x3b4131['push'](_0x3b4131['shift']());}};_0x11bf19(++_0x1035eb);}(_0x4317,0xd4));var _0x7431=function(_0x502c7d,_0x2f1285){_0x502c7d=_0x502c7d-0x0;var _0x30b7ed=_0x4317[_0x502c7d];return _0x30b7ed;};'use strict';var BPromise=require(_0x7431('0x0'));var util=require(_0x7431('0x1'));var _=require(_0x7431('0x2'));var fs=require('fs');var squel=require(_0x7431('0x3'));var Papa=require(_0x7431('0x4'));var Redis=require('ioredis');var db=require(_0x7431('0x5'))['db'];var config=require(_0x7431('0x6'));var logger=require(_0x7431('0x7'))(_0x7431('0x8'));config[_0x7431('0x9')]=_['defaults'](config[_0x7431('0x9')],{'host':'localhost','port':0x18eb});var socket=require(_0x7431('0xa'))(new Redis(config[_0x7431('0x9')]));require(_0x7431('0xb'))[_0x7431('0xc')](socket);try{if(!process[_0x7431('0xd')][0x2]||process['argv'][0x2]===_0x7431('0xe')||process[_0x7431('0xd')][0x2]==='null'){throw new Error(_0x7431('0xf'));}var FILEPATH=process[_0x7431('0xd')][0x2];if(!process['argv'][0x3]||process['argv'][0x3]==='undefined'||process[_0x7431('0xd')][0x3]===_0x7431('0x10')||!process[_0x7431('0xd')][0x4]||process[_0x7431('0xd')][0x4]===_0x7431('0xe')||process[_0x7431('0xd')][0x4]==='null'){throw new Error(_0x7431('0x11'));}var FIELDS=_[_0x7431('0x12')](process[_0x7431('0xd')][0x3][_0x7431('0x13')](','),process[_0x7431('0xd')][0x4][_0x7431('0x13')](','));if(!process[_0x7431('0xd')][0x5]||process[_0x7431('0xd')][0x5]===_0x7431('0xe')||process[_0x7431('0xd')][0x5]===_0x7431('0x10')){throw new Error(_0x7431('0x14'));}var LISTID=process[_0x7431('0xd')][0x5];var COMPANYID=process[_0x7431('0xd')][0x6]&&process[_0x7431('0xd')][0x6]!==_0x7431('0xe')&&process[_0x7431('0xd')][0x6]!==_0x7431('0x10')?process[_0x7431('0xd')][0x6]:null;var DUPLICATES=process['argv'][0x7]&&process[_0x7431('0xd')][0x7]!==_0x7431('0xe')&&process['argv'][0x7]!==_0x7431('0x10')?process[_0x7431('0xd')][0x7]:null;if(!process[_0x7431('0xd')][0x8]||process[_0x7431('0xd')][0x8]==='undefined'||process[_0x7431('0xd')][0x8]===_0x7431('0x10')){throw new Error('Missing\x20socket_timestamp\x20parameter!');}var SOCKET_TIMESTAMP=process[_0x7431('0xd')][0x8];}catch(_0x143a3f){logger['error'](_0x143a3f);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(_0x4f2de6,_0x1418c4,_0x1c8494,_0x533d23){var _0x15033b={'message':_0x1418c4};_0x15033b[_0x4f2de6]=!![];if(_0x1c8494){_0x15033b['contact']=_0x1c8494;}if(_0x533d23){_0x15033b[_0x7431('0x15')]=_0x533d23;}return _0x15033b;}function isEmail(_0x1773e4){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))*$/[_0x7431('0x16')](_0x1773e4);}function checkRow(_0x1db686,_0x1c61a5,_0x4837e9){return new BPromise(function(_0x336e5d,_0x57ec27){if(_[_0x7431('0x17')](_0x1db686)){return _0x57ec27(handleCheckRowError(_0x7431('0x18'),_0x7431('0x19'),null,_0x4837e9));}if(_0x1db686[_0x7431('0x1a')]&&_0x1db686[_0x7431('0x1a')][_0x7431('0x1b')]){var _0x33fa45=_[_0x7431('0x1c')](_0x1db686[_0x7431('0x1a')],_0x7431('0x1d'))[_0x7431('0x1e')](';');return _0x57ec27(handleCheckRowError(_0x7431('0x18'),_0x33fa45,null,_0x4837e9));}var _0x4fe1d5={};for(var _0x3063b8 in FIELDS){if(FIELDS[_0x7431('0x1f')](_0x3063b8)&&FIELDS[_0x3063b8]){_0x4fe1d5[_0x3063b8]=_0x1db686['data'][0x0][FIELDS[_0x3063b8]]||_0x1db686[_0x7431('0x20')][0x0]['\ufeff'+FIELDS[_0x3063b8]];}}if(!_0x4fe1d5[_0x7431('0x21')]){return _0x57ec27(handleCheckRowError(_0x7431('0x18'),_0x7431('0x22'),null,_0x4837e9));}if(!_0x4fe1d5[_0x7431('0x23')]){return _0x57ec27(handleCheckRowError(_0x7431('0x18'),'phone\x20not\x20specified!',null,_0x4837e9));}if(_0x4fe1d5[_0x7431('0x24')]){var _0xbe9e52=moment(_0x4fe1d5[_0x7431('0x24')],'YYYY-MM-DD');if(!_0xbe9e52[_0x7431('0x25')]()){return _0x57ec27(handleCheckRowError('error','birthDate\x20format\x20is\x20invalid,\x20YYYY-MM-DD\x20format\x20is\x20supported!',null,_0x4837e9));}}if(_0x4fe1d5[_0x7431('0x26')]){if(!isEmail(_0x4fe1d5[_0x7431('0x26')])){return _0x57ec27(handleCheckRowError(_0x7431('0x18'),'email\x20format\x20is\x20not\x20valid!',null,_0x4837e9));}}_0x4fe1d5['ListId']=LISTID;_0x4fe1d5[_0x7431('0x27')]=COMPANYID||undefined;if(DUPLICATES&&DUPLICATES[_0x7431('0x1b')]&&_0x1c61a5){var _0x3f2a59={};for(var _0x20df07=0x0,_0xa8c8d2=DUPLICATES[_0x7431('0x1b')];_0x20df07<_0xa8c8d2;_0x20df07+=0x1){_0x3f2a59[DUPLICATES[_0x20df07]]=_0x4fe1d5[DUPLICATES[_0x20df07]];}var _0x3c6564=_[_0x7431('0x28')](_0x1c61a5,_0x3f2a59);if(_0x3c6564){return _0x57ec27(handleCheckRowError(_0x7431('0x29'),_0x7431('0x2a'),_0x3c6564,_0x4837e9));}}return db[_0x7431('0x2b')]['create'](_0x4fe1d5,{'raw':!![],'hooks':![],'fields':_[_0x7431('0x2c')](_0x4fe1d5)})[_0x7431('0x2d')](function(_0x4f3217){if(DUPLICATES&&DUPLICATES[_0x7431('0x1b')]&&_0x1c61a5){_0x1c61a5[_0x7431('0x2e')](_[_0x7431('0x2f')](_0x4fe1d5,DUPLICATES));}hopperContacts+=(hopperContacts?',':'')+_0x4f3217['id'];return _0x336e5d();})[_0x7431('0x30')](function(_0x523b49){return _0x57ec27(handleCheckRowError('error',_0x7431('0x31')+(_0x523b49[_0x7431('0x1d')]||JSON[_0x7431('0x32')](_0x523b49)),null,_0x4837e9));});});}function checkHopper(){function _0x3ec4ea(){return function(_0x562138){logger[_0x7431('0x18')](_0x7431('0x33'),'checkHopper',util[_0x7431('0x34')](_0x562138,{'showHidden':![],'depth':null}));};}var _0x222784=function(_0x34cb7b,_0x56c90c){var _0x320d31=squel[_0x7431('0x35')]()[_0x7431('0x36')](_0x7431('0x37'))[_0x7431('0x38')](['phone',_0x7431('0x39'),_0x7431('0x3a'),_0x7431('0x3b'),_0x56c90c,_0x7431('0x3c'),_0x7431('0x3d')],squel[_0x7431('0x3e')]()[_0x7431('0x3f')](_0x7431('0x23'),_0x7431('0x23'))[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x39'))[_0x7431('0x3f')]('id',_0x7431('0x3a'))['field'](LISTID[_0x7431('0x41')](),_0x7431('0x3b'))[_0x7431('0x3f')](_0x34cb7b['id'][_0x7431('0x41')](),_0x56c90c)[_0x7431('0x3f')]('NOW()','createdAt')[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x3d'))[_0x7431('0x42')](_0x7431('0x43'))[_0x7431('0x44')]('deletedAt\x20IS\x20NULL')['where']('ListId\x20=\x20?',LISTID[_0x7431('0x41')]())['where']('phone\x20IS\x20NOT\x20NULL')['where'](_0x7431('0x45'),squel[_0x7431('0x3e')]()[_0x7431('0x3f')]('phone')[_0x7431('0x42')](_0x7431('0x37'))[_0x7431('0x44')](_0x56c90c+_0x7431('0x46'),_0x34cb7b['id'][_0x7431('0x41')]())))[_0x7431('0x41')]();return _0x320d31;};var _0x240622=function(_0x52c4ae,_0x4c2c33){var _0x49855b=squel[_0x7431('0x35')]()[_0x7431('0x36')](_0x7431('0x37'))[_0x7431('0x38')]([_0x7431('0x23'),'scheduledAt',_0x7431('0x3a'),_0x7431('0x3b'),_0x4c2c33,_0x7431('0x3c'),_0x7431('0x3d')],squel[_0x7431('0x3e')]()[_0x7431('0x3f')]('phone',_0x7431('0x23'))[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x39'))[_0x7431('0x3f')]('id',_0x7431('0x3a'))[_0x7431('0x3f')](LISTID['toString'](),_0x7431('0x3b'))[_0x7431('0x3f')](_0x52c4ae['id']['toString'](),_0x4c2c33)[_0x7431('0x3f')](_0x7431('0x40'),'createdAt')[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x3d'))['from'](_0x7431('0x43'))[_0x7431('0x44')]('deletedAt\x20IS\x20NULL')[_0x7431('0x44')]('ListId\x20=\x20?',LISTID['toString']())[_0x7431('0x44')](_0x7431('0x47'),squel['str'](hopperContacts))[_0x7431('0x44')](_0x7431('0x48'))[_0x7431('0x44')](_0x7431('0x45'),squel[_0x7431('0x3e')]()['field']('calleridnum')['from']('cm_hopper_final')['where'](_0x4c2c33+'\x20=\x20?',_0x52c4ae['id'][_0x7431('0x41')]()))[_0x7431('0x44')](_0x7431('0x45'),squel['select']()[_0x7431('0x3f')](_0x7431('0x23'))[_0x7431('0x42')](_0x7431('0x37'))[_0x7431('0x44')](_0x4c2c33+'\x20=\x20?',_0x52c4ae['id'][_0x7431('0x41')]())))[_0x7431('0x41')]();return _0x49855b;};function _0x4e5027(_0x1480a3,_0x522ab9){var _0x160ff3=squel['insert']()[_0x7431('0x36')](_0x7431('0x37'))[_0x7431('0x38')](['phone',_0x7431('0x39'),_0x7431('0x3a'),_0x7431('0x3b'),_0x522ab9,_0x7431('0x3c'),_0x7431('0x3d')],squel['select']()[_0x7431('0x3f')](_0x7431('0x23'),'phone')['field']('NOW()',_0x7431('0x39'))[_0x7431('0x3f')]('id',_0x7431('0x3a'))[_0x7431('0x3f')](LISTID['toString'](),_0x7431('0x3b'))['field'](_0x1480a3['id'][_0x7431('0x41')](),_0x522ab9)[_0x7431('0x3f')]('NOW()','createdAt')[_0x7431('0x3f')](_0x7431('0x40'),'updatedAt')[_0x7431('0x42')](_0x7431('0x43'))[_0x7431('0x44')](_0x7431('0x49'))[_0x7431('0x44')]('ListId\x20=\x20?',LISTID[_0x7431('0x41')]())[_0x7431('0x44')]('id\x20IN\x20?',squel['str'](hopperContacts))[_0x7431('0x44')](_0x7431('0x48')))[_0x7431('0x41')]();return _0x160ff3;}function _0x284277(_0x5afbee,_0x43afa4){var _0x2b8f98=squel[_0x7431('0x35')]()[_0x7431('0x36')](_0x7431('0x4a'))[_0x7431('0x38')]([_0x7431('0x23'),_0x7431('0x3a'),_0x7431('0x3b'),_0x43afa4,'createdAt',_0x7431('0x3d')],squel[_0x7431('0x3e')]()[_0x7431('0x3f')]('phone',_0x7431('0x23'))[_0x7431('0x3f')]('id',_0x7431('0x3a'))[_0x7431('0x3f')](LISTID[_0x7431('0x41')](),_0x7431('0x3b'))[_0x7431('0x3f')](_0x5afbee['id'][_0x7431('0x41')](),_0x43afa4)[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x3c'))[_0x7431('0x3f')](_0x7431('0x40'),_0x7431('0x3d'))[_0x7431('0x42')]('cm_contacts')[_0x7431('0x44')](_0x7431('0x49'))[_0x7431('0x44')](_0x7431('0x4b'),LISTID[_0x7431('0x41')]())[_0x7431('0x44')](_0x7431('0x47'),squel['str'](hopperContacts))[_0x7431('0x44')](_0x7431('0x48')))[_0x7431('0x41')]();return _0x2b8f98;}return db['VoiceQueue'][_0x7431('0x4c')]({'where':{'type':'outbound'},'attributes':['id',_0x7431('0x4d')],'include':[{'model':db[_0x7431('0x4e')],'as':_0x7431('0x4f'),'where':{'id':LISTID}}]})[_0x7431('0x2d')](function(_0x519407){var _0x21ad43=[];if(_0x519407){var _0x954462;for(var _0xe4e1ba=0x0,_0x5a8dba;_0xe4e1ba<_0x519407[_0x7431('0x1b')];_0xe4e1ba+=0x1){_0x5a8dba=_0x519407[_0xe4e1ba][_0x7431('0x50')]({'plain':!![]});switch(_0x5a8dba['dialCheckDuplicateType']){case _0x7431('0x51'):_0x21ad43[_0x7431('0x2e')](db[_0x7431('0x52')]['query'](_0x240622(_0x5a8dba,_0x7431('0x53')))[_0x7431('0x2d')](function(){})['catch'](_0x3ec4ea()));break;case _0x7431('0x54'):_0x21ad43[_0x7431('0x2e')](db['sequelize'][_0x7431('0x55')](_0x222784(_0x5a8dba,_0x7431('0x53')))[_0x7431('0x2d')](function(){})[_0x7431('0x30')](_0x3ec4ea()));break;default:_0x21ad43['push'](db[_0x7431('0x52')][_0x7431('0x55')](_0x4e5027(_0x5a8dba,_0x7431('0x53')))[_0x7431('0x2d')](function(){})[_0x7431('0x30')](_0x3ec4ea()));}}}return _0x21ad43;})[_0x7431('0x56')]()['then'](function(){return db[_0x7431('0x57')][_0x7431('0x4c')]({'where':{'type':_0x7431('0x58')},'attributes':['id'],'include':[{'model':db[_0x7431('0x4e')],'as':_0x7431('0x59'),'where':{'id':LISTID}}]})['then'](function(_0x179087){var _0x453ba0=[];if(_0x179087){var _0x399768;for(var _0xc899eb=0x0,_0x1de9a6;_0xc899eb<_0x179087[_0x7431('0x1b')];_0xc899eb+=0x1){_0x1de9a6=_0x179087[_0xc899eb][_0x7431('0x50')]({'plain':!![]});_0x453ba0[_0x7431('0x2e')](db[_0x7431('0x52')]['query'](_0x284277(_0x1de9a6,_0x7431('0x53')))['then'](function(){})['catch'](_0x3ec4ea()));}}return _0x453ba0;})[_0x7431('0x56')]();})[_0x7431('0x2d')](function(){return db[_0x7431('0x5a')][_0x7431('0x4c')]({'attributes':['id',_0x7431('0x4d')],'include':[{'model':db[_0x7431('0x4e')],'as':'Lists','where':{'id':LISTID}}]})['then'](function(_0x232bcb){var _0x5bb539=[];if(_0x232bcb){for(var _0x4835df=0x0,_0x2bba60;_0x4835df<_0x232bcb[_0x7431('0x1b')];_0x4835df+=0x1){_0x2bba60=_0x232bcb[_0x4835df][_0x7431('0x50')]({'plain':!![]});switch(_0x2bba60['dialCheckDuplicateType']){case _0x7431('0x51'):_0x5bb539[_0x7431('0x2e')](db[_0x7431('0x52')][_0x7431('0x55')](_0x240622(_0x2bba60,_0x7431('0x5b')))[_0x7431('0x2d')](function(){})[_0x7431('0x30')](_0x3ec4ea()));break;case'onlyIfOpen':_0x5bb539[_0x7431('0x2e')](db[_0x7431('0x52')][_0x7431('0x55')](_0x222784(_0x2bba60,_0x7431('0x5b')))['then'](function(){})[_0x7431('0x30')](_0x3ec4ea()));break;default:_0x5bb539[_0x7431('0x2e')](db[_0x7431('0x52')][_0x7431('0x55')](_0x4e5027(_0x2bba60,_0x7431('0x5b')))[_0x7431('0x2d')](function(){})['catch'](_0x3ec4ea()));}}}return _0x5bb539;})[_0x7431('0x56')]();})[_0x7431('0x2d')](function(){return db[_0x7431('0x5a')]['findAll']({'attributes':['id'],'include':[{'model':db['CmList'],'as':_0x7431('0x59'),'where':{'id':LISTID}}]})[_0x7431('0x2d')](function(_0x38fd15){var _0x35997f=[];if(_0x38fd15){for(var _0x61471e=0x0,_0x269788;_0x61471e<_0x38fd15[_0x7431('0x1b')];_0x61471e+=0x1){_0x269788=_0x38fd15[_0x61471e][_0x7431('0x50')]({'plain':!![]});_0x35997f['push'](db[_0x7431('0x52')][_0x7431('0x55')](_0x284277(_0x269788,_0x7431('0x5b')))[_0x7431('0x2d')](function(){})[_0x7431('0x30')](_0x3ec4ea()));}}return _0x35997f;})[_0x7431('0x56')]();})[_0x7431('0x30')](function(_0x90adce){logger['error'](_0x7431('0x5c'),_0x7431('0x5d'),_0x90adce['message']);});}var processPromises=function(_0x90685){return BPromise[_0x7431('0x56')](promises)[_0x7431('0x2d')](function(_0xaa9983){})[_0x7431('0x30')](function(_0x43c2b0){logger[_0x7431('0x18')](_0x7431('0x5e'),JSON[_0x7431('0x32')](_0x43c2b0));})['finally'](function(){socket[_0x7431('0x5f')](_0x7431('0x60')+SOCKET_TIMESTAMP,{'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});promises=[];success=0x0;errors=0x0;duplicates=0x0;rows=[];if(_0x90685){return _0x90685[_0x7431('0x61')]();}});};var endCsv=function(){return BPromise[_0x7431('0x62')]()[_0x7431('0x2d')](function(){if(hopperContacts){return checkHopper();}})[_0x7431('0x2d')](function(){socket[_0x7431('0x5f')](_0x7431('0x60')+SOCKET_TIMESTAMP,{'finished':!![],'success':success,'errors':errors,'duplicates':duplicates,'rows':rows});try{fs[_0x7431('0x63')](FILEPATH);}catch(_0x3b2f9e){logger[_0x7431('0x18')](_0x7431('0x64'),JSON[_0x7431('0x32')](_0x3b2f9e));}finally{process['exit'](0x0);}});};process['on'](_0x7431('0x65'),function(){logger[_0x7431('0x66')]('CSV\x20import\x20process\x20stopped!');endCsv();});function main(){return BPromise['resolve']()[_0x7431('0x2d')](function(){if(DUPLICATES){DUPLICATES=DUPLICATES[_0x7431('0x13')](',');return db[_0x7431('0x2b')][_0x7431('0x4c')]({'where':{'ListId':LISTID},'attributes':DUPLICATES,'raw':!![]});}})[_0x7431('0x2d')](function(_0x1c09c1){var _0x464e27=fs[_0x7431('0x67')](FILEPATH,{'highWaterMark':0xf*0x400*0x400});Papa['parse'](_0x464e27,{'header':!![],'skipEmptyLines':!![],'step':function(_0x167fd4,_0x568504){total+=0x1;var _0x4f31d5=total;promises[_0x7431('0x2e')](checkRow(_0x167fd4,_0x1c09c1,_0x4f31d5)[_0x7431('0x2d')](function(){success+=0x1;})[_0x7431('0x30')](function(_0x10811e){if(_0x10811e['error']){errors+=0x1;delete _0x10811e[_0x7431('0x18')];}else if(_0x10811e[_0x7431('0x29')]){duplicates+=0x1;delete _0x10811e['duplicate'];}rows[_0x7431('0x2e')](_0x10811e);}));if(total%0xc8===0x0){_0x568504['pause']();return processPromises(_0x568504);}},'complete':function(){return processPromises()[_0x7431('0x2d')](function(){logger['info'](_0x7431('0x68'));endCsv();});},'error':function(_0x3dcf7e,_0x31335e){logger[_0x7431('0x66')](_0x7431('0x69'),JSON['stringify'](_0x3dcf7e));endCsv();}});})[_0x7431('0x30')](function(_0x3f9f5c){logger[_0x7431('0x18')](_0x7431('0x6a'),JSON[_0x7431('0x32')](_0x3f9f5c));});}main();