Built motion from commit da617fac.|2.6.6
[motion2.git] / server / api / chatQueueReport / chatQueueReport.controller.js
index 52a86c8..93d4a2f 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x9962=['type','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','merge','VIRTUAL','options','ChatQueueReport','count','includeAll','include','rows','catch','keys','rawAttributes','find','create','update','body','params','describe','eml-format','zip-dir','fast-json-patch','request-promise','bluebird','util','path','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','status','json','offset','undefined','limit','set','Content-Range','apply','reject','save','then','destroy','end','sendStatus','error','stack','name','send','map','fieldName'];(function(_0x382ddf,_0x2b149a){var _0x23914c=function(_0x3b0cb8){while(--_0x3b0cb8){_0x382ddf['push'](_0x382ddf['shift']());}};_0x23914c(++_0x2b149a);}(_0x9962,0xb8));var _0x2996=function(_0x574b67,_0x38cfc1){_0x574b67=_0x574b67-0x0;var _0x5a8ccd=_0x9962[_0x574b67];return _0x5a8ccd;};'use strict';var emlformat=require(_0x2996('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x2996('0x1'));var jsonpatch=require(_0x2996('0x2'));var rp=require(_0x2996('0x3'));var moment=require('moment');var BPromise=require(_0x2996('0x4'));var Mustache=require('mustache');var util=require(_0x2996('0x5'));var path=require(_0x2996('0x6'));var sox=require('sox');var csv=require(_0x2996('0x7'));var ejs=require(_0x2996('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x2996('0x9'));var squel=require(_0x2996('0xa'));var crypto=require(_0x2996('0xb'));var jsforce=require(_0x2996('0xc'));var deskjs=require(_0x2996('0xd'));var toCsv=require('to-csv');var querystring=require(_0x2996('0xe'));var Papa=require('papaparse');var Redis=require(_0x2996('0xf'));var authService=require(_0x2996('0x10'));var qs=require(_0x2996('0x11'));var as=require(_0x2996('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x2996('0x13'))(_0x2996('0x14'));var utils=require(_0x2996('0x15'));var config=require(_0x2996('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x2996('0x17'))['db'];function respondWithStatusCode(_0x21f096,_0x10a958){_0x10a958=_0x10a958||0xcc;return function(_0x30b5e4){if(_0x30b5e4){return _0x21f096['sendStatus'](_0x10a958);}return _0x21f096[_0x2996('0x18')](_0x10a958)['end']();};}function respondWithResult(_0x4117f5,_0x468a4f){_0x468a4f=_0x468a4f||0xc8;return function(_0x5b942f){if(_0x5b942f){return _0x4117f5[_0x2996('0x18')](_0x468a4f)[_0x2996('0x19')](_0x5b942f);}};}function respondWithFilteredResult(_0x39b18e,_0x43e380){return function(_0xc267fb){if(_0xc267fb){var _0xb50801=typeof _0x43e380[_0x2996('0x1a')]==='undefined'&&typeof _0x43e380['limit']===_0x2996('0x1b');var _0x5d8236=_0xc267fb['count'];var _0x4c29bd=_0xb50801?0x0:_0x43e380[_0x2996('0x1a')];var _0x149c68=_0xb50801?_0xc267fb['count']:_0x43e380[_0x2996('0x1a')]+_0x43e380[_0x2996('0x1c')];var _0x9743ee;if(_0x149c68>=_0x5d8236){_0x149c68=_0x5d8236;_0x9743ee=0xc8;}else{_0x9743ee=0xce;}_0x39b18e[_0x2996('0x18')](_0x9743ee);return _0x39b18e[_0x2996('0x1d')](_0x2996('0x1e'),_0x4c29bd+'-'+_0x149c68+'/'+_0x5d8236)[_0x2996('0x19')](_0xc267fb);}return null;};}function patchUpdates(_0x232ec9){return function(_0x2c5cb3){try{jsonpatch[_0x2996('0x1f')](_0x2c5cb3,_0x232ec9,!![]);}catch(_0x5bfc6d){return BPromise[_0x2996('0x20')](_0x5bfc6d);}return _0x2c5cb3[_0x2996('0x21')]();};}function saveUpdates(_0x43e835,_0x64a05b){return function(_0xa39f6d){if(_0xa39f6d){return _0xa39f6d['update'](_0x43e835)[_0x2996('0x22')](function(_0x42e5f5){return _0x42e5f5;});}return null;};}function removeEntity(_0x2bfb2b,_0x4de34d){return function(_0xbc555a){if(_0xbc555a){return _0xbc555a[_0x2996('0x23')]()[_0x2996('0x22')](function(){_0x2bfb2b['status'](0xcc)[_0x2996('0x24')]();});}};}function handleEntityNotFound(_0x88f1c5,_0x2177b1){return function(_0x53c636){if(!_0x53c636){_0x88f1c5[_0x2996('0x25')](0x194);}return _0x53c636;};}function handleError(_0x15ab22,_0x5636eb){_0x5636eb=_0x5636eb||0x1f4;return function(_0x229fad){logger[_0x2996('0x26')](_0x229fad[_0x2996('0x27')]);if(_0x229fad[_0x2996('0x28')]){delete _0x229fad['name'];}_0x15ab22[_0x2996('0x18')](_0x5636eb)[_0x2996('0x29')](_0x229fad);};}exports['index']=function(_0x52b2e6,_0x12959f){var _0x4941c3={},_0x3adddd={},_0x3a509f={'count':0x0,'rows':[]};var _0x13bfc0=_[_0x2996('0x2a')](db['ChatQueueReport']['rawAttributes'],function(_0x365ea1){return{'name':_0x365ea1[_0x2996('0x2b')],'type':_0x365ea1[_0x2996('0x2c')][_0x2996('0x2d')]};});_0x3adddd[_0x2996('0x2e')]=_[_0x2996('0x2a')](_0x13bfc0,_0x2996('0x28'));_0x3adddd[_0x2996('0x2f')]=_['keys'](_0x52b2e6[_0x2996('0x2f')]);_0x3adddd[_0x2996('0x30')]=_['intersection'](_0x3adddd[_0x2996('0x2e')],_0x3adddd['query']);_0x4941c3[_0x2996('0x31')]=_[_0x2996('0x32')](_0x3adddd[_0x2996('0x2e')],qs['fields'](_0x52b2e6['query'][_0x2996('0x33')]));_0x4941c3['attributes']=_0x4941c3[_0x2996('0x31')][_0x2996('0x34')]?_0x4941c3['attributes']:_0x3adddd[_0x2996('0x2e')];if(!_0x52b2e6[_0x2996('0x2f')][_0x2996('0x35')](_0x2996('0x36'))){_0x4941c3[_0x2996('0x1c')]=qs[_0x2996('0x1c')](_0x52b2e6['query']['limit']);_0x4941c3[_0x2996('0x1a')]=qs[_0x2996('0x1a')](_0x52b2e6[_0x2996('0x2f')][_0x2996('0x1a')]);}_0x4941c3[_0x2996('0x37')]=qs[_0x2996('0x38')](_0x52b2e6['query'][_0x2996('0x38')]);_0x4941c3[_0x2996('0x39')]=qs['filters'](_['pick'](_0x52b2e6[_0x2996('0x2f')],_0x3adddd[_0x2996('0x30')]),_0x13bfc0);if(_0x52b2e6['query'][_0x2996('0x3a')]){_0x4941c3[_0x2996('0x39')]=_[_0x2996('0x3b')](_0x4941c3[_0x2996('0x39')],{'$or':_[_0x2996('0x2a')](_0x13bfc0,function(_0x32c13f){if(_0x32c13f[_0x2996('0x2c')]!==_0x2996('0x3c')){var _0x4fb862={};_0x4fb862[_0x32c13f[_0x2996('0x28')]]={'$like':'%'+_0x52b2e6[_0x2996('0x2f')][_0x2996('0x3a')]+'%'};return _0x4fb862;}})});}_0x4941c3=_['merge']({},_0x4941c3,_0x52b2e6[_0x2996('0x3d')]);var _0x4d825e={'where':_0x4941c3[_0x2996('0x39')]};return db[_0x2996('0x3e')][_0x2996('0x3f')](_0x4d825e)[_0x2996('0x22')](function(_0x308984){_0x3a509f[_0x2996('0x3f')]=_0x308984;if(_0x52b2e6[_0x2996('0x2f')][_0x2996('0x40')]){_0x4941c3[_0x2996('0x41')]=[{'all':!![]}];}return db[_0x2996('0x3e')]['findAll'](_0x4941c3);})[_0x2996('0x22')](function(_0x329c71){_0x3a509f[_0x2996('0x42')]=_0x329c71;return _0x3a509f;})['then'](respondWithFilteredResult(_0x12959f,_0x4941c3))[_0x2996('0x43')](handleError(_0x12959f,null));};exports['show']=function(_0x59965f,_0x19eeae){var _0x256190={'raw':!![],'where':{'id':_0x59965f['params']['id']}},_0x134437={};_0x134437[_0x2996('0x2e')]=_[_0x2996('0x44')](db[_0x2996('0x3e')][_0x2996('0x45')]);_0x134437[_0x2996('0x2f')]=_[_0x2996('0x44')](_0x59965f['query']);_0x134437['filters']=_[_0x2996('0x32')](_0x134437[_0x2996('0x2e')],_0x134437[_0x2996('0x2f')]);_0x256190[_0x2996('0x31')]=_[_0x2996('0x32')](_0x134437[_0x2996('0x2e')],qs[_0x2996('0x33')](_0x59965f[_0x2996('0x2f')]['fields']));_0x256190['attributes']=_0x256190['attributes'][_0x2996('0x34')]?_0x256190[_0x2996('0x31')]:_0x134437['model'];if(_0x59965f[_0x2996('0x2f')][_0x2996('0x40')]){_0x256190[_0x2996('0x41')]=[{'all':!![]}];}_0x256190=_['merge']({},_0x256190,_0x59965f[_0x2996('0x3d')]);return db[_0x2996('0x3e')][_0x2996('0x46')](_0x256190)[_0x2996('0x22')](handleEntityNotFound(_0x19eeae,null))[_0x2996('0x22')](respondWithResult(_0x19eeae,null))[_0x2996('0x43')](handleError(_0x19eeae,null));};exports[_0x2996('0x47')]=function(_0xf9427e,_0x246351){return db[_0x2996('0x3e')]['create'](_0xf9427e['body'],{})['then'](respondWithResult(_0x246351,0xc9))[_0x2996('0x43')](handleError(_0x246351,null));};exports[_0x2996('0x48')]=function(_0x1a4ea5,_0x7d35b5){if(_0x1a4ea5[_0x2996('0x49')]['id']){delete _0x1a4ea5[_0x2996('0x49')]['id'];}return db[_0x2996('0x3e')][_0x2996('0x46')]({'where':{'id':_0x1a4ea5[_0x2996('0x4a')]['id']}})[_0x2996('0x22')](handleEntityNotFound(_0x7d35b5,null))['then'](saveUpdates(_0x1a4ea5['body'],null))[_0x2996('0x22')](respondWithResult(_0x7d35b5,null))[_0x2996('0x43')](handleError(_0x7d35b5,null));};exports[_0x2996('0x23')]=function(_0x2ecb3a,_0x17c346){return db[_0x2996('0x3e')][_0x2996('0x46')]({'where':{'id':_0x2ecb3a['params']['id']}})[_0x2996('0x22')](handleEntityNotFound(_0x17c346,null))[_0x2996('0x22')](removeEntity(_0x17c346,null))[_0x2996('0x43')](handleError(_0x17c346,null));};exports[_0x2996('0x4b')]=function(_0x223fba,_0x1805fd){return db['ChatQueueReport'][_0x2996('0x4b')]()[_0x2996('0x22')](respondWithResult(_0x1805fd,null))[_0x2996('0x43')](handleError(_0x1805fd,null));};
\ No newline at end of file
+var _0x5496=['../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','undefined','limit','count','set','Content-Range','apply','reject','save','update','then','error','stack','name','index','ChatQueueReport','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','length','hasOwnProperty','nolimit','offset','order','sort','pick','filter','where','merge','VIRTUAL','includeAll','rows','catch','show','params','keys','fields','include','options','find','create','body','destroy','describe','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','fs-extra','lodash','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils'];(function(_0x5104a0,_0x3aa5a7){var _0x21346e=function(_0x5d1fe6){while(--_0x5d1fe6){_0x5104a0['push'](_0x5104a0['shift']());}};_0x21346e(++_0x3aa5a7);}(_0x5496,0x175));var _0x6549=function(_0x15b696,_0x2aeaf4){_0x15b696=_0x15b696-0x0;var _0x4a699b=_0x5496[_0x15b696];return _0x4a699b;};'use strict';var emlformat=require(_0x6549('0x0'));var rimraf=require(_0x6549('0x1'));var zipdir=require(_0x6549('0x2'));var jsonpatch=require(_0x6549('0x3'));var rp=require(_0x6549('0x4'));var moment=require('moment');var BPromise=require(_0x6549('0x5'));var Mustache=require('mustache');var util=require(_0x6549('0x6'));var path=require(_0x6549('0x7'));var sox=require(_0x6549('0x8'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x6549('0x9'));var _=require(_0x6549('0xa'));var squel=require('squel');var crypto=require(_0x6549('0xb'));var jsforce=require(_0x6549('0xc'));var deskjs=require(_0x6549('0xd'));var toCsv=require('to-csv');var querystring=require(_0x6549('0xe'));var Papa=require(_0x6549('0xf'));var Redis=require(_0x6549('0x10'));var authService=require(_0x6549('0x11'));var qs=require(_0x6549('0x12'));var as=require(_0x6549('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x6549('0x14'));var utils=require(_0x6549('0x15'));var config=require(_0x6549('0x16'));var licenseUtil=require(_0x6549('0x17'));var db=require(_0x6549('0x18'))['db'];function respondWithStatusCode(_0x5bc018,_0x4dfb06){_0x4dfb06=_0x4dfb06||0xcc;return function(_0x3f844f){if(_0x3f844f){return _0x5bc018[_0x6549('0x19')](_0x4dfb06);}return _0x5bc018['status'](_0x4dfb06)[_0x6549('0x1a')]();};}function respondWithResult(_0x150fc8,_0x195d25){_0x195d25=_0x195d25||0xc8;return function(_0x12b068){if(_0x12b068){return _0x150fc8[_0x6549('0x1b')](_0x195d25)[_0x6549('0x1c')](_0x12b068);}};}function respondWithFilteredResult(_0x55c112,_0x5db86d){return function(_0x384f75){if(_0x384f75){var _0x25da29=typeof _0x5db86d['offset']===_0x6549('0x1d')&&typeof _0x5db86d[_0x6549('0x1e')]===_0x6549('0x1d');var _0x387e60=_0x384f75[_0x6549('0x1f')];var _0x53b12b=_0x25da29?0x0:_0x5db86d['offset'];var _0x26a212=_0x25da29?_0x384f75['count']:_0x5db86d['offset']+_0x5db86d[_0x6549('0x1e')];var _0x1e5079;if(_0x26a212>=_0x387e60){_0x26a212=_0x387e60;_0x1e5079=0xc8;}else{_0x1e5079=0xce;}_0x55c112[_0x6549('0x1b')](_0x1e5079);return _0x55c112[_0x6549('0x20')](_0x6549('0x21'),_0x53b12b+'-'+_0x26a212+'/'+_0x387e60)['json'](_0x384f75);}return null;};}function patchUpdates(_0x228117){return function(_0x4b40c1){try{jsonpatch[_0x6549('0x22')](_0x4b40c1,_0x228117,!![]);}catch(_0x72322b){return BPromise[_0x6549('0x23')](_0x72322b);}return _0x4b40c1[_0x6549('0x24')]();};}function saveUpdates(_0x22bcf8,_0x12d547){return function(_0x427b47){if(_0x427b47){return _0x427b47[_0x6549('0x25')](_0x22bcf8)[_0x6549('0x26')](function(_0x6ae00c){return _0x6ae00c;});}return null;};}function removeEntity(_0x40d3f9,_0x1fbfa4){return function(_0x23c0ba){if(_0x23c0ba){return _0x23c0ba['destroy']()[_0x6549('0x26')](function(){_0x40d3f9[_0x6549('0x1b')](0xcc)['end']();});}};}function handleEntityNotFound(_0x126967,_0x29f89e){return function(_0x3768cb){if(!_0x3768cb){_0x126967['sendStatus'](0x194);}return _0x3768cb;};}function handleError(_0x31a95,_0xfb51a1){_0xfb51a1=_0xfb51a1||0x1f4;return function(_0x14de1f){logger[_0x6549('0x27')](_0x14de1f[_0x6549('0x28')]);if(_0x14de1f[_0x6549('0x29')]){delete _0x14de1f[_0x6549('0x29')];}_0x31a95[_0x6549('0x1b')](_0xfb51a1)['send'](_0x14de1f);};}exports[_0x6549('0x2a')]=function(_0x136518,_0x17fdfb){var _0x4c605c={},_0x3f1502={},_0x4acaf5={'count':0x0,'rows':[]};var _0x4f0ad1=_['map'](db[_0x6549('0x2b')][_0x6549('0x2c')],function(_0x4f3069){return{'name':_0x4f3069[_0x6549('0x2d')],'type':_0x4f3069[_0x6549('0x2e')][_0x6549('0x2f')]};});_0x3f1502[_0x6549('0x30')]=_[_0x6549('0x31')](_0x4f0ad1,_0x6549('0x29'));_0x3f1502[_0x6549('0x32')]=_['keys'](_0x136518[_0x6549('0x32')]);_0x3f1502[_0x6549('0x33')]=_[_0x6549('0x34')](_0x3f1502[_0x6549('0x30')],_0x3f1502[_0x6549('0x32')]);_0x4c605c[_0x6549('0x35')]=_['intersection'](_0x3f1502[_0x6549('0x30')],qs['fields'](_0x136518[_0x6549('0x32')]['fields']));_0x4c605c[_0x6549('0x35')]=_0x4c605c[_0x6549('0x35')][_0x6549('0x36')]?_0x4c605c['attributes']:_0x3f1502[_0x6549('0x30')];if(!_0x136518[_0x6549('0x32')][_0x6549('0x37')](_0x6549('0x38'))){_0x4c605c['limit']=qs['limit'](_0x136518['query'][_0x6549('0x1e')]);_0x4c605c[_0x6549('0x39')]=qs['offset'](_0x136518[_0x6549('0x32')][_0x6549('0x39')]);}_0x4c605c[_0x6549('0x3a')]=qs[_0x6549('0x3b')](_0x136518[_0x6549('0x32')]['sort']);_0x4c605c['where']=qs[_0x6549('0x33')](_[_0x6549('0x3c')](_0x136518[_0x6549('0x32')],_0x3f1502[_0x6549('0x33')]),_0x4f0ad1);if(_0x136518[_0x6549('0x32')][_0x6549('0x3d')]){_0x4c605c[_0x6549('0x3e')]=_[_0x6549('0x3f')](_0x4c605c[_0x6549('0x3e')],{'$or':_[_0x6549('0x31')](_0x4f0ad1,function(_0x525f82){if(_0x525f82[_0x6549('0x2e')]!==_0x6549('0x40')){var _0x2ea977={};_0x2ea977[_0x525f82[_0x6549('0x29')]]={'$like':'%'+_0x136518[_0x6549('0x32')]['filter']+'%'};return _0x2ea977;}})});}_0x4c605c=_['merge']({},_0x4c605c,_0x136518['options']);var _0x22b919={'where':_0x4c605c[_0x6549('0x3e')]};return db[_0x6549('0x2b')][_0x6549('0x1f')](_0x22b919)['then'](function(_0x56ce9f){_0x4acaf5[_0x6549('0x1f')]=_0x56ce9f;if(_0x136518[_0x6549('0x32')][_0x6549('0x41')]){_0x4c605c['include']=[{'all':!![]}];}return db[_0x6549('0x2b')]['findAll'](_0x4c605c);})[_0x6549('0x26')](function(_0x2ec614){_0x4acaf5[_0x6549('0x42')]=_0x2ec614;return _0x4acaf5;})[_0x6549('0x26')](respondWithFilteredResult(_0x17fdfb,_0x4c605c))[_0x6549('0x43')](handleError(_0x17fdfb,null));};exports[_0x6549('0x44')]=function(_0xbbfdc9,_0x4deaab){var _0x132625={'raw':!![],'where':{'id':_0xbbfdc9[_0x6549('0x45')]['id']}},_0x309f45={};_0x309f45[_0x6549('0x30')]=_[_0x6549('0x46')](db[_0x6549('0x2b')][_0x6549('0x2c')]);_0x309f45[_0x6549('0x32')]=_[_0x6549('0x46')](_0xbbfdc9[_0x6549('0x32')]);_0x309f45[_0x6549('0x33')]=_[_0x6549('0x34')](_0x309f45[_0x6549('0x30')],_0x309f45[_0x6549('0x32')]);_0x132625[_0x6549('0x35')]=_[_0x6549('0x34')](_0x309f45['model'],qs[_0x6549('0x47')](_0xbbfdc9[_0x6549('0x32')][_0x6549('0x47')]));_0x132625[_0x6549('0x35')]=_0x132625['attributes'][_0x6549('0x36')]?_0x132625['attributes']:_0x309f45[_0x6549('0x30')];if(_0xbbfdc9[_0x6549('0x32')]['includeAll']){_0x132625[_0x6549('0x48')]=[{'all':!![]}];}_0x132625=_[_0x6549('0x3f')]({},_0x132625,_0xbbfdc9[_0x6549('0x49')]);return db[_0x6549('0x2b')][_0x6549('0x4a')](_0x132625)['then'](handleEntityNotFound(_0x4deaab,null))['then'](respondWithResult(_0x4deaab,null))[_0x6549('0x43')](handleError(_0x4deaab,null));};exports[_0x6549('0x4b')]=function(_0x41d675,_0x1712f3){return db[_0x6549('0x2b')]['create'](_0x41d675[_0x6549('0x4c')],{})[_0x6549('0x26')](respondWithResult(_0x1712f3,0xc9))[_0x6549('0x43')](handleError(_0x1712f3,null));};exports[_0x6549('0x25')]=function(_0xa4c650,_0x25a6ee){if(_0xa4c650[_0x6549('0x4c')]['id']){delete _0xa4c650[_0x6549('0x4c')]['id'];}return db['ChatQueueReport'][_0x6549('0x4a')]({'where':{'id':_0xa4c650['params']['id']}})[_0x6549('0x26')](handleEntityNotFound(_0x25a6ee,null))[_0x6549('0x26')](saveUpdates(_0xa4c650[_0x6549('0x4c')],null))['then'](respondWithResult(_0x25a6ee,null))[_0x6549('0x43')](handleError(_0x25a6ee,null));};exports[_0x6549('0x4d')]=function(_0x2ef4d2,_0x5300c8){return db[_0x6549('0x2b')][_0x6549('0x4a')]({'where':{'id':_0x2ef4d2[_0x6549('0x45')]['id']}})[_0x6549('0x26')](handleEntityNotFound(_0x5300c8,null))[_0x6549('0x26')](removeEntity(_0x5300c8,null))[_0x6549('0x43')](handleError(_0x5300c8,null));};exports['describe']=function(_0x28af00,_0x4bbc61){return db[_0x6549('0x2b')][_0x6549('0x4e')]()[_0x6549('0x26')](respondWithResult(_0x4bbc61,null))[_0x6549('0x43')](handleError(_0x4bbc61,null));};
\ No newline at end of file