Built motion from commit 97153652.|2.6.26
[motion2.git] / server / api / faxApplication / faxApplication.controller.js
index 448928d..a2f9947 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xa37e=['includeAll','findAll','show','params','keys','include','find','catch','create','body','destroy','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','lodash','jsforce','desk.js','to-csv','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../mysqldb','sendStatus','status','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','end','stack','name','send','index','map','FaxApplication','rawAttributes','fieldName','type','key','model','query','attributes','intersection','fields','length','nolimit','order','sort','where','filters','pick','filter','merge','options'];(function(_0x83a6e2,_0x255d1a){var _0x255e9f=function(_0x39f38d){while(--_0x39f38d){_0x83a6e2['push'](_0x83a6e2['shift']());}};_0x255e9f(++_0x255d1a);}(_0xa37e,0x97));var _0xea37=function(_0xef3b3a,_0x365898){_0xef3b3a=_0xef3b3a-0x0;var _0x49684b=_0xa37e[_0xef3b3a];return _0x49684b;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0xea37('0x0'));var zipdir=require(_0xea37('0x1'));var jsonpatch=require(_0xea37('0x2'));var rp=require(_0xea37('0x3'));var moment=require('moment');var BPromise=require(_0xea37('0x4'));var Mustache=require('mustache');var util=require(_0xea37('0x5'));var path=require(_0xea37('0x6'));var sox=require(_0xea37('0x7'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require(_0xea37('0x8'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0xea37('0x9'));var deskjs=require(_0xea37('0xa'));var toCsv=require(_0xea37('0xb'));var querystring=require(_0xea37('0xc'));var Papa=require('papaparse');var Redis=require(_0xea37('0xd'));var authService=require(_0xea37('0xe'));var qs=require(_0xea37('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0xea37('0x10'))(_0xea37('0x11'));var utils=require(_0xea37('0x12'));var config=require('../../config/environment');var db=require(_0xea37('0x13'))['db'];function respondWithStatusCode(_0x2a0460,_0x2a2bcd){_0x2a2bcd=_0x2a2bcd||0xcc;return function(_0x589a61){if(_0x589a61){return _0x2a0460[_0xea37('0x14')](_0x2a2bcd);}return _0x2a0460[_0xea37('0x15')](_0x2a2bcd)['end']();};}function respondWithResult(_0x41e9be,_0x556a64){_0x556a64=_0x556a64||0xc8;return function(_0xd7d4e7){if(_0xd7d4e7){return _0x41e9be['status'](_0x556a64)[_0xea37('0x16')](_0xd7d4e7);}};}function respondWithFilteredResult(_0x138ff4,_0x168e80){return function(_0x46aaf0){if(_0x46aaf0){var _0x5b38aa=_0x46aaf0[_0xea37('0x17')],_0x18e4b8=_0x168e80['offset'],_0x58f979=_0x168e80[_0xea37('0x18')]+_0x168e80[_0xea37('0x19')],_0x49604a;if(_0x58f979>=_0x5b38aa){_0x58f979=_0x5b38aa;_0x49604a=0xc8;}else{_0x49604a=0xce;}_0x138ff4['status'](_0x49604a);return _0x138ff4[_0xea37('0x1a')](_0xea37('0x1b'),_0x18e4b8+'-'+_0x58f979+'/'+_0x5b38aa)['json'](_0x46aaf0);}return null;};}function patchUpdates(_0x786ee5){return function(_0x3f5ebc){try{jsonpatch[_0xea37('0x1c')](_0x3f5ebc,_0x786ee5,!![]);}catch(_0x4063ab){return BPromise[_0xea37('0x1d')](_0x4063ab);}return _0x3f5ebc[_0xea37('0x1e')]();};}function saveUpdates(_0x121812,_0x238567){return function(_0x28ed44){if(_0x28ed44){return _0x28ed44[_0xea37('0x1f')](_0x121812)['then'](function(_0x23bb57){return _0x23bb57;});}return null;};}function removeEntity(_0x2a81f5,_0x356f04){return function(_0x536eff){if(_0x536eff){return _0x536eff['destroy']()[_0xea37('0x20')](function(){_0x2a81f5[_0xea37('0x15')](0xcc)[_0xea37('0x21')]();});}};}function handleEntityNotFound(_0x4302ca,_0x4996e9){return function(_0x25042e){if(!_0x25042e){_0x4302ca['sendStatus'](0x194);}return _0x25042e;};}function handleError(_0x5907ce,_0x5503f1){_0x5503f1=_0x5503f1||0x1f4;return function(_0x32c116){logger['error'](_0x32c116[_0xea37('0x22')]);if(_0x32c116[_0xea37('0x23')]){delete _0x32c116[_0xea37('0x23')];}_0x5907ce[_0xea37('0x15')](_0x5503f1)[_0xea37('0x24')](_0x32c116);};}exports[_0xea37('0x25')]=function(_0x49cb6c,_0x57a7cc){var _0x55880c={},_0x477e25={},_0x3e272e={'count':0x0,'rows':[]};var _0x4ffcf1=_[_0xea37('0x26')](db[_0xea37('0x27')][_0xea37('0x28')],function(_0x4e2a65){return{'name':_0x4e2a65[_0xea37('0x29')],'type':_0x4e2a65[_0xea37('0x2a')][_0xea37('0x2b')]};});_0x477e25[_0xea37('0x2c')]=_['map'](_0x4ffcf1,_0xea37('0x23'));_0x477e25['query']=_['keys'](_0x49cb6c[_0xea37('0x2d')]);_0x477e25['filters']=_['intersection'](_0x477e25['model'],_0x477e25[_0xea37('0x2d')]);_0x55880c[_0xea37('0x2e')]=_[_0xea37('0x2f')](_0x477e25[_0xea37('0x2c')],qs[_0xea37('0x30')](_0x49cb6c[_0xea37('0x2d')]['fields']));_0x55880c[_0xea37('0x2e')]=_0x55880c[_0xea37('0x2e')][_0xea37('0x31')]?_0x55880c[_0xea37('0x2e')]:_0x477e25[_0xea37('0x2c')];if(!_0x49cb6c[_0xea37('0x2d')]['hasOwnProperty'](_0xea37('0x32'))){_0x55880c['limit']=qs[_0xea37('0x19')](_0x49cb6c[_0xea37('0x2d')][_0xea37('0x19')]);_0x55880c[_0xea37('0x18')]=qs[_0xea37('0x18')](_0x49cb6c[_0xea37('0x2d')][_0xea37('0x18')]);}_0x55880c[_0xea37('0x33')]=qs['sort'](_0x49cb6c[_0xea37('0x2d')][_0xea37('0x34')]);_0x55880c[_0xea37('0x35')]=qs[_0xea37('0x36')](_[_0xea37('0x37')](_0x49cb6c[_0xea37('0x2d')],_0x477e25['filters']));if(_0x49cb6c['query']['filter']){_0x55880c[_0xea37('0x35')]=_['merge'](_0x55880c[_0xea37('0x35')],{'$or':_['map'](_0x4ffcf1,function(_0x5e91ef){if(_0x5e91ef['type']!=='VIRTUAL'){var _0x3ceede={};_0x3ceede[_0x5e91ef[_0xea37('0x23')]]={'$like':'%'+_0x49cb6c[_0xea37('0x2d')][_0xea37('0x38')]+'%'};return _0x3ceede;}})});}_0x55880c=_[_0xea37('0x39')]({},_0x55880c,_0x49cb6c[_0xea37('0x3a')]);var _0x18da6e={'where':_0x55880c[_0xea37('0x35')]};return db[_0xea37('0x27')]['count'](_0x18da6e)[_0xea37('0x20')](function(_0x565c66){_0x3e272e[_0xea37('0x17')]=_0x565c66;if(_0x49cb6c[_0xea37('0x2d')][_0xea37('0x3b')]){_0x55880c['include']=[{'all':!![]}];}return db[_0xea37('0x27')][_0xea37('0x3c')](_0x55880c);})[_0xea37('0x20')](function(_0x457b77){_0x3e272e['rows']=_0x457b77;return _0x3e272e;})[_0xea37('0x20')](respondWithFilteredResult(_0x57a7cc,_0x55880c))['catch'](handleError(_0x57a7cc,null));};exports[_0xea37('0x3d')]=function(_0x383101,_0x30c247){var _0x847051={'raw':!![],'where':{'id':_0x383101[_0xea37('0x3e')]['id']}},_0x3c1b8a={};_0x3c1b8a['model']=_[_0xea37('0x3f')](db[_0xea37('0x27')]['rawAttributes']);_0x3c1b8a[_0xea37('0x2d')]=_[_0xea37('0x3f')](_0x383101[_0xea37('0x2d')]);_0x3c1b8a[_0xea37('0x36')]=_[_0xea37('0x2f')](_0x3c1b8a[_0xea37('0x2c')],_0x3c1b8a[_0xea37('0x2d')]);_0x847051[_0xea37('0x2e')]=_[_0xea37('0x2f')](_0x3c1b8a[_0xea37('0x2c')],qs[_0xea37('0x30')](_0x383101[_0xea37('0x2d')][_0xea37('0x30')]));_0x847051[_0xea37('0x2e')]=_0x847051[_0xea37('0x2e')][_0xea37('0x31')]?_0x847051[_0xea37('0x2e')]:_0x3c1b8a['model'];if(_0x383101[_0xea37('0x2d')][_0xea37('0x3b')]){_0x847051[_0xea37('0x40')]=[{'all':!![]}];}_0x847051=_[_0xea37('0x39')]({},_0x847051,_0x383101[_0xea37('0x3a')]);return db['FaxApplication'][_0xea37('0x41')](_0x847051)[_0xea37('0x20')](handleEntityNotFound(_0x30c247,null))[_0xea37('0x20')](respondWithResult(_0x30c247,null))[_0xea37('0x42')](handleError(_0x30c247,null));};exports[_0xea37('0x43')]=function(_0x1124cf,_0x4f3222){return db[_0xea37('0x27')][_0xea37('0x43')](_0x1124cf[_0xea37('0x44')],{})[_0xea37('0x20')](respondWithResult(_0x4f3222,0xc9))[_0xea37('0x42')](handleError(_0x4f3222,null));};exports[_0xea37('0x1f')]=function(_0x2cd612,_0x3dd82b){if(_0x2cd612['body']['id']){delete _0x2cd612[_0xea37('0x44')]['id'];}return db[_0xea37('0x27')]['find']({'where':{'id':_0x2cd612[_0xea37('0x3e')]['id']}})[_0xea37('0x20')](handleEntityNotFound(_0x3dd82b,null))[_0xea37('0x20')](saveUpdates(_0x2cd612[_0xea37('0x44')],null))[_0xea37('0x20')](respondWithResult(_0x3dd82b,null))[_0xea37('0x42')](handleError(_0x3dd82b,null));};exports[_0xea37('0x45')]=function(_0x174a77,_0x483d1a){return db[_0xea37('0x27')]['find']({'where':{'id':_0x174a77[_0xea37('0x3e')]['id']}})['then'](handleEntityNotFound(_0x483d1a,null))[_0xea37('0x20')](removeEntity(_0x483d1a,null))[_0xea37('0x42')](handleError(_0x483d1a,null));};
\ No newline at end of file
+var _0xfbcb=['sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','end','status','json','offset','undefined','count','set','apply','reject','save','destroy','error','name','map','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','hasOwnProperty','limit','order','sort','pick','filter','where','merge','options','FaxApplication','then','includeAll','include','findAll','rows','catch','show','params','rawAttributes','create','body','update','find','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path'];(function(_0x3e55f7,_0x232df0){var _0x48db30=function(_0x58220c){while(--_0x58220c){_0x3e55f7['push'](_0x3e55f7['shift']());}};_0x48db30(++_0x232df0);}(_0xfbcb,0x12c));var _0xbfbc=function(_0x398545,_0x3dfca4){_0x398545=_0x398545-0x0;var _0x214189=_0xfbcb[_0x398545];return _0x214189;};'use strict';var emlformat=require(_0xbfbc('0x0'));var rimraf=require(_0xbfbc('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xbfbc('0x2'));var rp=require(_0xbfbc('0x3'));var moment=require(_0xbfbc('0x4'));var BPromise=require(_0xbfbc('0x5'));var Mustache=require('mustache');var util=require(_0xbfbc('0x6'));var path=require(_0xbfbc('0x7'));var sox=require(_0xbfbc('0x8'));var csv=require(_0xbfbc('0x9'));var ejs=require(_0xbfbc('0xa'));var fs=require('fs');var fs_extra=require(_0xbfbc('0xb'));var _=require(_0xbfbc('0xc'));var squel=require(_0xbfbc('0xd'));var crypto=require(_0xbfbc('0xe'));var jsforce=require(_0xbfbc('0xf'));var deskjs=require(_0xbfbc('0x10'));var toCsv=require('to-csv');var querystring=require(_0xbfbc('0x11'));var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xbfbc('0x12'));var qs=require(_0xbfbc('0x13'));var as=require(_0xbfbc('0x14'));var hardwareService=require(_0xbfbc('0x15'));var logger=require(_0xbfbc('0x16'))(_0xbfbc('0x17'));var utils=require(_0xbfbc('0x18'));var config=require(_0xbfbc('0x19'));var licenseUtil=require(_0xbfbc('0x1a'));var db=require(_0xbfbc('0x1b'))['db'];function respondWithStatusCode(_0x4de160,_0x10c1a9){_0x10c1a9=_0x10c1a9||0xcc;return function(_0x5e5a92){if(_0x5e5a92){return _0x4de160[_0xbfbc('0x1c')](_0x10c1a9);}return _0x4de160['status'](_0x10c1a9)[_0xbfbc('0x1d')]();};}function respondWithResult(_0x1f5eb3,_0x5f1765){_0x5f1765=_0x5f1765||0xc8;return function(_0x2838b8){if(_0x2838b8){return _0x1f5eb3[_0xbfbc('0x1e')](_0x5f1765)[_0xbfbc('0x1f')](_0x2838b8);}};}function respondWithFilteredResult(_0xe5848c,_0x4c3d8d){return function(_0x3720a8){if(_0x3720a8){var _0x329f18=typeof _0x4c3d8d[_0xbfbc('0x20')]===_0xbfbc('0x21')&&typeof _0x4c3d8d['limit']===_0xbfbc('0x21');var _0x23341e=_0x3720a8['count'];var _0x591def=_0x329f18?0x0:_0x4c3d8d[_0xbfbc('0x20')];var _0x3f55e1=_0x329f18?_0x3720a8[_0xbfbc('0x22')]:_0x4c3d8d[_0xbfbc('0x20')]+_0x4c3d8d['limit'];var _0x4c8192;if(_0x3f55e1>=_0x23341e){_0x3f55e1=_0x23341e;_0x4c8192=0xc8;}else{_0x4c8192=0xce;}_0xe5848c[_0xbfbc('0x1e')](_0x4c8192);return _0xe5848c[_0xbfbc('0x23')]('Content-Range',_0x591def+'-'+_0x3f55e1+'/'+_0x23341e)[_0xbfbc('0x1f')](_0x3720a8);}return null;};}function patchUpdates(_0x214a14){return function(_0x4d5737){try{jsonpatch[_0xbfbc('0x24')](_0x4d5737,_0x214a14,!![]);}catch(_0x1e62b9){return BPromise[_0xbfbc('0x25')](_0x1e62b9);}return _0x4d5737[_0xbfbc('0x26')]();};}function saveUpdates(_0x561512,_0x459bdb){return function(_0x3fb012){if(_0x3fb012){return _0x3fb012['update'](_0x561512)['then'](function(_0x52c681){return _0x52c681;});}return null;};}function removeEntity(_0x148b7d,_0x4cc15b){return function(_0x2f893b){if(_0x2f893b){return _0x2f893b[_0xbfbc('0x27')]()['then'](function(){_0x148b7d[_0xbfbc('0x1e')](0xcc)[_0xbfbc('0x1d')]();});}};}function handleEntityNotFound(_0x349384,_0x47686d){return function(_0x33d825){if(!_0x33d825){_0x349384[_0xbfbc('0x1c')](0x194);}return _0x33d825;};}function handleError(_0x3577b0,_0x284b9e){_0x284b9e=_0x284b9e||0x1f4;return function(_0x1332f0){logger[_0xbfbc('0x28')](_0x1332f0['stack']);if(_0x1332f0[_0xbfbc('0x29')]){delete _0x1332f0[_0xbfbc('0x29')];}_0x3577b0[_0xbfbc('0x1e')](_0x284b9e)['send'](_0x1332f0);};}exports['index']=function(_0x207ae0,_0x16abe5){var _0xbfa43c={},_0x1f0d60={},_0x9d7991={'count':0x0,'rows':[]};var _0x41699e=_[_0xbfbc('0x2a')](db['FaxApplication']['rawAttributes'],function(_0x1c4929){return{'name':_0x1c4929[_0xbfbc('0x2b')],'type':_0x1c4929[_0xbfbc('0x2c')][_0xbfbc('0x2d')]};});_0x1f0d60['model']=_[_0xbfbc('0x2a')](_0x41699e,_0xbfbc('0x29'));_0x1f0d60[_0xbfbc('0x2e')]=_[_0xbfbc('0x2f')](_0x207ae0[_0xbfbc('0x2e')]);_0x1f0d60[_0xbfbc('0x30')]=_[_0xbfbc('0x31')](_0x1f0d60[_0xbfbc('0x32')],_0x1f0d60[_0xbfbc('0x2e')]);_0xbfa43c[_0xbfbc('0x33')]=_[_0xbfbc('0x31')](_0x1f0d60['model'],qs[_0xbfbc('0x34')](_0x207ae0['query'][_0xbfbc('0x34')]));_0xbfa43c[_0xbfbc('0x33')]=_0xbfa43c[_0xbfbc('0x33')][_0xbfbc('0x35')]?_0xbfa43c[_0xbfbc('0x33')]:_0x1f0d60[_0xbfbc('0x32')];if(!_0x207ae0[_0xbfbc('0x2e')][_0xbfbc('0x36')]('nolimit')){_0xbfa43c[_0xbfbc('0x37')]=qs[_0xbfbc('0x37')](_0x207ae0[_0xbfbc('0x2e')][_0xbfbc('0x37')]);_0xbfa43c['offset']=qs[_0xbfbc('0x20')](_0x207ae0[_0xbfbc('0x2e')]['offset']);}_0xbfa43c[_0xbfbc('0x38')]=qs['sort'](_0x207ae0[_0xbfbc('0x2e')][_0xbfbc('0x39')]);_0xbfa43c['where']=qs[_0xbfbc('0x30')](_[_0xbfbc('0x3a')](_0x207ae0[_0xbfbc('0x2e')],_0x1f0d60[_0xbfbc('0x30')]),_0x41699e);if(_0x207ae0['query'][_0xbfbc('0x3b')]){_0xbfa43c[_0xbfbc('0x3c')]=_[_0xbfbc('0x3d')](_0xbfa43c['where'],{'$or':_[_0xbfbc('0x2a')](_0x41699e,function(_0x30bd9a){if(_0x30bd9a[_0xbfbc('0x2c')]!=='VIRTUAL'){var _0x28736f={};_0x28736f[_0x30bd9a[_0xbfbc('0x29')]]={'$like':'%'+_0x207ae0[_0xbfbc('0x2e')][_0xbfbc('0x3b')]+'%'};return _0x28736f;}})});}_0xbfa43c=_[_0xbfbc('0x3d')]({},_0xbfa43c,_0x207ae0[_0xbfbc('0x3e')]);var _0x430cff={'where':_0xbfa43c['where']};return db[_0xbfbc('0x3f')]['count'](_0x430cff)[_0xbfbc('0x40')](function(_0x2f5f4e){_0x9d7991['count']=_0x2f5f4e;if(_0x207ae0[_0xbfbc('0x2e')][_0xbfbc('0x41')]){_0xbfa43c[_0xbfbc('0x42')]=[{'all':!![]}];}return db[_0xbfbc('0x3f')][_0xbfbc('0x43')](_0xbfa43c);})[_0xbfbc('0x40')](function(_0x51c561){_0x9d7991[_0xbfbc('0x44')]=_0x51c561;return _0x9d7991;})[_0xbfbc('0x40')](respondWithFilteredResult(_0x16abe5,_0xbfa43c))[_0xbfbc('0x45')](handleError(_0x16abe5,null));};exports[_0xbfbc('0x46')]=function(_0x164305,_0x2a681b){var _0x18e7d6={'raw':!![],'where':{'id':_0x164305[_0xbfbc('0x47')]['id']}},_0x169bd7={};_0x169bd7[_0xbfbc('0x32')]=_[_0xbfbc('0x2f')](db[_0xbfbc('0x3f')][_0xbfbc('0x48')]);_0x169bd7[_0xbfbc('0x2e')]=_[_0xbfbc('0x2f')](_0x164305[_0xbfbc('0x2e')]);_0x169bd7[_0xbfbc('0x30')]=_[_0xbfbc('0x31')](_0x169bd7[_0xbfbc('0x32')],_0x169bd7[_0xbfbc('0x2e')]);_0x18e7d6[_0xbfbc('0x33')]=_[_0xbfbc('0x31')](_0x169bd7[_0xbfbc('0x32')],qs[_0xbfbc('0x34')](_0x164305[_0xbfbc('0x2e')][_0xbfbc('0x34')]));_0x18e7d6[_0xbfbc('0x33')]=_0x18e7d6[_0xbfbc('0x33')][_0xbfbc('0x35')]?_0x18e7d6[_0xbfbc('0x33')]:_0x169bd7[_0xbfbc('0x32')];if(_0x164305[_0xbfbc('0x2e')]['includeAll']){_0x18e7d6['include']=[{'all':!![]}];}_0x18e7d6=_[_0xbfbc('0x3d')]({},_0x18e7d6,_0x164305['options']);return db[_0xbfbc('0x3f')]['find'](_0x18e7d6)[_0xbfbc('0x40')](handleEntityNotFound(_0x2a681b,null))['then'](respondWithResult(_0x2a681b,null))[_0xbfbc('0x45')](handleError(_0x2a681b,null));};exports[_0xbfbc('0x49')]=function(_0x309ba4,_0x407208){return db[_0xbfbc('0x3f')][_0xbfbc('0x49')](_0x309ba4[_0xbfbc('0x4a')],{})[_0xbfbc('0x40')](respondWithResult(_0x407208,0xc9))[_0xbfbc('0x45')](handleError(_0x407208,null));};exports[_0xbfbc('0x4b')]=function(_0x16b091,_0x41d89f){if(_0x16b091[_0xbfbc('0x4a')]['id']){delete _0x16b091[_0xbfbc('0x4a')]['id'];}return db[_0xbfbc('0x3f')]['find']({'where':{'id':_0x16b091['params']['id']}})[_0xbfbc('0x40')](handleEntityNotFound(_0x41d89f,null))[_0xbfbc('0x40')](saveUpdates(_0x16b091['body'],null))[_0xbfbc('0x40')](respondWithResult(_0x41d89f,null))[_0xbfbc('0x45')](handleError(_0x41d89f,null));};exports[_0xbfbc('0x27')]=function(_0x1467eb,_0x307fc3){return db[_0xbfbc('0x3f')][_0xbfbc('0x4c')]({'where':{'id':_0x1467eb[_0xbfbc('0x47')]['id']}})[_0xbfbc('0x40')](handleEntityNotFound(_0x307fc3,null))[_0xbfbc('0x40')](removeEntity(_0x307fc3,null))['catch'](handleError(_0x307fc3,null));};
\ No newline at end of file