Built motion from commit (unavailable).|2.5.13
[motion2.git] / server / api / squareReportDetail / squareReportDetail.controller.js
index 046e602..19fefbb 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xd763=['moment','bluebird','mustache','path','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','limit','Content-Range','apply','reject','save','then','error','name','send','map','SquareDetailsReport','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','includeAll','include','catch','params','length','find','create','update','body','destroy','describe','html-pdf','zip-dir','fast-json-patch','request-promise'];(function(_0x605547,_0xb356d3){var _0x107e4f=function(_0x4e78df){while(--_0x4e78df){_0x605547['push'](_0x605547['shift']());}};_0x107e4f(++_0xb356d3);}(_0xd763,0xda));var _0x3d76=function(_0x5c2e3e,_0x26ecd3){_0x5c2e3e=_0x5c2e3e-0x0;var _0x53f64a=_0xd763[_0x5c2e3e];return _0x53f64a;};'use strict';var pdf=require(_0x3d76('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x3d76('0x1'));var jsonpatch=require(_0x3d76('0x2'));var rp=require(_0x3d76('0x3'));var moment=require(_0x3d76('0x4'));var BPromise=require(_0x3d76('0x5'));var Mustache=require(_0x3d76('0x6'));var util=require('util');var path=require(_0x3d76('0x7'));var sox=require(_0x3d76('0x8'));var csv=require(_0x3d76('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x3d76('0xa'));var squel=require(_0x3d76('0xb'));var crypto=require(_0x3d76('0xc'));var jsforce=require(_0x3d76('0xd'));var deskjs=require(_0x3d76('0xe'));var toCsv=require(_0x3d76('0x9'));var querystring=require(_0x3d76('0xf'));var Papa=require(_0x3d76('0x10'));var Redis=require(_0x3d76('0x11'));var authService=require(_0x3d76('0x12'));var qs=require(_0x3d76('0x13'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3d76('0x14'));var logger=require(_0x3d76('0x15'))(_0x3d76('0x16'));var utils=require(_0x3d76('0x17'));var config=require(_0x3d76('0x18'));var licenseUtil=require(_0x3d76('0x19'));var db=require(_0x3d76('0x1a'))['db'];function respondWithStatusCode(_0x5dfcf2,_0x142f0a){_0x142f0a=_0x142f0a||0xcc;return function(_0x1a2e02){if(_0x1a2e02){return _0x5dfcf2[_0x3d76('0x1b')](_0x142f0a);}return _0x5dfcf2[_0x3d76('0x1c')](_0x142f0a)[_0x3d76('0x1d')]();};}function respondWithResult(_0xcaf1e0,_0x355d8e){_0x355d8e=_0x355d8e||0xc8;return function(_0x26689f){if(_0x26689f){return _0xcaf1e0[_0x3d76('0x1c')](_0x355d8e)[_0x3d76('0x1e')](_0x26689f);}};}function respondWithFilteredResult(_0x40fb5b,_0xa4765f){return function(_0x2868a7){if(_0x2868a7){var _0x1385f0=_0x2868a7[_0x3d76('0x1f')],_0x329d19=_0xa4765f['offset'],_0x5b9fab=_0xa4765f[_0x3d76('0x20')]+_0xa4765f[_0x3d76('0x21')],_0x4c8042;if(_0x5b9fab>=_0x1385f0){_0x5b9fab=_0x1385f0;_0x4c8042=0xc8;}else{_0x4c8042=0xce;}_0x40fb5b[_0x3d76('0x1c')](_0x4c8042);return _0x40fb5b['set'](_0x3d76('0x22'),_0x329d19+'-'+_0x5b9fab+'/'+_0x1385f0)[_0x3d76('0x1e')](_0x2868a7);}return null;};}function patchUpdates(_0x3d2e56){return function(_0xf6efa7){try{jsonpatch[_0x3d76('0x23')](_0xf6efa7,_0x3d2e56,!![]);}catch(_0x4fb9cf){return BPromise[_0x3d76('0x24')](_0x4fb9cf);}return _0xf6efa7[_0x3d76('0x25')]();};}function saveUpdates(_0x5f5af1,_0x22ae1f){return function(_0x4ad54e){if(_0x4ad54e){return _0x4ad54e['update'](_0x5f5af1)[_0x3d76('0x26')](function(_0x4ad1c2){return _0x4ad1c2;});}return null;};}function removeEntity(_0x1062ac,_0x1be9a5){return function(_0x59051e){if(_0x59051e){return _0x59051e['destroy']()[_0x3d76('0x26')](function(){_0x1062ac[_0x3d76('0x1c')](0xcc)[_0x3d76('0x1d')]();});}};}function handleEntityNotFound(_0x5809f2,_0x5b3e21){return function(_0x94cdd2){if(!_0x94cdd2){_0x5809f2[_0x3d76('0x1b')](0x194);}return _0x94cdd2;};}function handleError(_0x596b0b,_0x339e54){_0x339e54=_0x339e54||0x1f4;return function(_0x16b1d0){logger[_0x3d76('0x27')](_0x16b1d0['stack']);if(_0x16b1d0[_0x3d76('0x28')]){delete _0x16b1d0[_0x3d76('0x28')];}_0x596b0b['status'](_0x339e54)[_0x3d76('0x29')](_0x16b1d0);};}exports['index']=function(_0x532c2b,_0x2e766b){var _0x1ed884={},_0x42444b={},_0x12d311={'count':0x0,'rows':[]};var _0x434b58=_[_0x3d76('0x2a')](db[_0x3d76('0x2b')]['rawAttributes'],function(_0x108337){return{'name':_0x108337[_0x3d76('0x2c')],'type':_0x108337[_0x3d76('0x2d')][_0x3d76('0x2e')]};});_0x42444b[_0x3d76('0x2f')]=_[_0x3d76('0x2a')](_0x434b58,_0x3d76('0x28'));_0x42444b[_0x3d76('0x30')]=_[_0x3d76('0x31')](_0x532c2b[_0x3d76('0x30')]);_0x42444b[_0x3d76('0x32')]=_[_0x3d76('0x33')](_0x42444b[_0x3d76('0x2f')],_0x42444b[_0x3d76('0x30')]);_0x1ed884[_0x3d76('0x34')]=_[_0x3d76('0x33')](_0x42444b['model'],qs['fields'](_0x532c2b[_0x3d76('0x30')][_0x3d76('0x35')]));_0x1ed884[_0x3d76('0x34')]=_0x1ed884[_0x3d76('0x34')]['length']?_0x1ed884['attributes']:_0x42444b[_0x3d76('0x2f')];if(!_0x532c2b[_0x3d76('0x30')][_0x3d76('0x36')](_0x3d76('0x37'))){_0x1ed884[_0x3d76('0x21')]=qs[_0x3d76('0x21')](_0x532c2b[_0x3d76('0x30')][_0x3d76('0x21')]);_0x1ed884[_0x3d76('0x20')]=qs[_0x3d76('0x20')](_0x532c2b['query']['offset']);}_0x1ed884[_0x3d76('0x38')]=qs[_0x3d76('0x39')](_0x532c2b['query'][_0x3d76('0x39')]);_0x1ed884[_0x3d76('0x3a')]=qs[_0x3d76('0x32')](_[_0x3d76('0x3b')](_0x532c2b[_0x3d76('0x30')],_0x42444b[_0x3d76('0x32')]),_0x434b58);if(_0x532c2b[_0x3d76('0x30')][_0x3d76('0x3c')]){_0x1ed884[_0x3d76('0x3a')]=_[_0x3d76('0x3d')](_0x1ed884[_0x3d76('0x3a')],{'$or':_[_0x3d76('0x2a')](_0x434b58,function(_0x7226ed){if(_0x7226ed[_0x3d76('0x2d')]!==_0x3d76('0x3e')){var _0x3a5136={};_0x3a5136[_0x7226ed[_0x3d76('0x28')]]={'$like':'%'+_0x532c2b['query'][_0x3d76('0x3c')]+'%'};return _0x3a5136;}})});}_0x1ed884=_[_0x3d76('0x3d')]({},_0x1ed884,_0x532c2b['options']);var _0x553cfa={'where':_0x1ed884['where']};return db[_0x3d76('0x2b')][_0x3d76('0x1f')](_0x553cfa)[_0x3d76('0x26')](function(_0x1b185e){_0x12d311[_0x3d76('0x1f')]=_0x1b185e;if(_0x532c2b[_0x3d76('0x30')][_0x3d76('0x3f')]){_0x1ed884[_0x3d76('0x40')]=[{'all':!![]}];}return db[_0x3d76('0x2b')]['findAll'](_0x1ed884);})[_0x3d76('0x26')](function(_0x5e3e78){_0x12d311['rows']=_0x5e3e78;return _0x12d311;})['then'](respondWithFilteredResult(_0x2e766b,_0x1ed884))[_0x3d76('0x41')](handleError(_0x2e766b,null));};exports['show']=function(_0x2ab405,_0x5e0c2b){var _0x279331={'raw':!![],'where':{'id':_0x2ab405[_0x3d76('0x42')]['id']}},_0x41fa29={};_0x41fa29[_0x3d76('0x2f')]=_[_0x3d76('0x31')](db[_0x3d76('0x2b')]['rawAttributes']);_0x41fa29['query']=_[_0x3d76('0x31')](_0x2ab405[_0x3d76('0x30')]);_0x41fa29[_0x3d76('0x32')]=_[_0x3d76('0x33')](_0x41fa29['model'],_0x41fa29[_0x3d76('0x30')]);_0x279331['attributes']=_[_0x3d76('0x33')](_0x41fa29[_0x3d76('0x2f')],qs['fields'](_0x2ab405[_0x3d76('0x30')][_0x3d76('0x35')]));_0x279331[_0x3d76('0x34')]=_0x279331[_0x3d76('0x34')][_0x3d76('0x43')]?_0x279331[_0x3d76('0x34')]:_0x41fa29[_0x3d76('0x2f')];if(_0x2ab405[_0x3d76('0x30')][_0x3d76('0x3f')]){_0x279331[_0x3d76('0x40')]=[{'all':!![]}];}_0x279331=_[_0x3d76('0x3d')]({},_0x279331,_0x2ab405['options']);return db[_0x3d76('0x2b')][_0x3d76('0x44')](_0x279331)[_0x3d76('0x26')](handleEntityNotFound(_0x5e0c2b,null))[_0x3d76('0x26')](respondWithResult(_0x5e0c2b,null))[_0x3d76('0x41')](handleError(_0x5e0c2b,null));};exports[_0x3d76('0x45')]=function(_0x31ea22,_0x5a94ec){return db[_0x3d76('0x2b')][_0x3d76('0x45')](_0x31ea22['body'],{})[_0x3d76('0x26')](respondWithResult(_0x5a94ec,0xc9))[_0x3d76('0x41')](handleError(_0x5a94ec,null));};exports[_0x3d76('0x46')]=function(_0xc0ee06,_0x2f62d2){if(_0xc0ee06[_0x3d76('0x47')]['id']){delete _0xc0ee06[_0x3d76('0x47')]['id'];}return db['SquareDetailsReport'][_0x3d76('0x44')]({'where':{'id':_0xc0ee06[_0x3d76('0x42')]['id']}})[_0x3d76('0x26')](handleEntityNotFound(_0x2f62d2,null))[_0x3d76('0x26')](saveUpdates(_0xc0ee06[_0x3d76('0x47')],null))[_0x3d76('0x26')](respondWithResult(_0x2f62d2,null))[_0x3d76('0x41')](handleError(_0x2f62d2,null));};exports[_0x3d76('0x48')]=function(_0x474d39,_0x3fe522){return db['SquareDetailsReport'][_0x3d76('0x44')]({'where':{'id':_0x474d39['params']['id']}})[_0x3d76('0x26')](handleEntityNotFound(_0x3fe522,null))['then'](removeEntity(_0x3fe522,null))[_0x3d76('0x41')](handleError(_0x3fe522,null));};exports['describe']=function(_0xa5ae3f,_0x2f6920){return db['SquareDetailsReport'][_0x3d76('0x49')]()[_0x3d76('0x26')](respondWithResult(_0x2f6920,null))[_0x3d76('0x41')](handleError(_0x2f6920,null));};
\ No newline at end of file
+var _0x564d=['map','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','pick','filter','where','merge','VIRTUAL','options','include','rows','catch','show','params','rawAttributes','includeAll','create','body','find','describe','eml-format','rimraf','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/utils','../../config/license/util','../../mysqldb','status','end','count','offset','apply','update','destroy','then','sendStatus','error','name','send','index','SquareDetailsReport','fieldName','type','key','model'];(function(_0x44b82b,_0x16a85f){var _0x40eb64=function(_0x4862b7){while(--_0x4862b7){_0x44b82b['push'](_0x44b82b['shift']());}};_0x40eb64(++_0x16a85f);}(_0x564d,0x66));var _0xd564=function(_0x4bf615,_0xc5f51e){_0x4bf615=_0x4bf615-0x0;var _0x5744e7=_0x564d[_0x4bf615];return _0x5744e7;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xd564('0x0'));var rimraf=require(_0xd564('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0xd564('0x2'));var rp=require(_0xd564('0x3'));var moment=require('moment');var BPromise=require(_0xd564('0x4'));var Mustache=require('mustache');var util=require(_0xd564('0x5'));var path=require(_0xd564('0x6'));var sox=require(_0xd564('0x7'));var csv=require(_0xd564('0x8'));var ejs=require(_0xd564('0x9'));var fs=require('fs');var _=require(_0xd564('0xa'));var squel=require(_0xd564('0xb'));var crypto=require('crypto');var jsforce=require(_0xd564('0xc'));var deskjs=require(_0xd564('0xd'));var toCsv=require(_0xd564('0x8'));var querystring=require(_0xd564('0xe'));var Papa=require(_0xd564('0xf'));var Redis=require(_0xd564('0x10'));var authService=require(_0xd564('0x11'));var qs=require(_0xd564('0x12'));var as=require(_0xd564('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0xd564('0x14'));var utils=require(_0xd564('0x15'));var config=require('../../config/environment');var licenseUtil=require(_0xd564('0x16'));var db=require(_0xd564('0x17'))['db'];function respondWithStatusCode(_0x4ee42a,_0x4f4d22){_0x4f4d22=_0x4f4d22||0xcc;return function(_0x50b37a){if(_0x50b37a){return _0x4ee42a['sendStatus'](_0x4f4d22);}return _0x4ee42a[_0xd564('0x18')](_0x4f4d22)[_0xd564('0x19')]();};}function respondWithResult(_0x113b01,_0x5570d8){_0x5570d8=_0x5570d8||0xc8;return function(_0x4a2659){if(_0x4a2659){return _0x113b01['status'](_0x5570d8)['json'](_0x4a2659);}};}function respondWithFilteredResult(_0x1f1df0,_0x4feacc){return function(_0x619c64){if(_0x619c64){var _0x4d8407=_0x619c64[_0xd564('0x1a')],_0x2c0f08=_0x4feacc['offset'],_0x451fcb=_0x4feacc[_0xd564('0x1b')]+_0x4feacc['limit'],_0x473d42;if(_0x451fcb>=_0x4d8407){_0x451fcb=_0x4d8407;_0x473d42=0xc8;}else{_0x473d42=0xce;}_0x1f1df0['status'](_0x473d42);return _0x1f1df0['set']('Content-Range',_0x2c0f08+'-'+_0x451fcb+'/'+_0x4d8407)['json'](_0x619c64);}return null;};}function patchUpdates(_0xbe3082){return function(_0x3c8978){try{jsonpatch[_0xd564('0x1c')](_0x3c8978,_0xbe3082,!![]);}catch(_0x13aca9){return BPromise['reject'](_0x13aca9);}return _0x3c8978['save']();};}function saveUpdates(_0x573e8a,_0x15e151){return function(_0xb3fac3){if(_0xb3fac3){return _0xb3fac3[_0xd564('0x1d')](_0x573e8a)['then'](function(_0x345de9){return _0x345de9;});}return null;};}function removeEntity(_0x2f2244,_0x32fa15){return function(_0x38f9a4){if(_0x38f9a4){return _0x38f9a4[_0xd564('0x1e')]()[_0xd564('0x1f')](function(){_0x2f2244[_0xd564('0x18')](0xcc)[_0xd564('0x19')]();});}};}function handleEntityNotFound(_0x3a2113,_0x6d9824){return function(_0x51867e){if(!_0x51867e){_0x3a2113[_0xd564('0x20')](0x194);}return _0x51867e;};}function handleError(_0x32063d,_0x2cdf64){_0x2cdf64=_0x2cdf64||0x1f4;return function(_0x3a6380){logger[_0xd564('0x21')](_0x3a6380['stack']);if(_0x3a6380[_0xd564('0x22')]){delete _0x3a6380[_0xd564('0x22')];}_0x32063d[_0xd564('0x18')](_0x2cdf64)[_0xd564('0x23')](_0x3a6380);};}exports[_0xd564('0x24')]=function(_0x57cde5,_0x1abcef){var _0xe3a96d={},_0x10286c={},_0x174278={'count':0x0,'rows':[]};var _0x21f5ba=_['map'](db[_0xd564('0x25')]['rawAttributes'],function(_0x50d9be){return{'name':_0x50d9be[_0xd564('0x26')],'type':_0x50d9be[_0xd564('0x27')][_0xd564('0x28')]};});_0x10286c[_0xd564('0x29')]=_[_0xd564('0x2a')](_0x21f5ba,_0xd564('0x22'));_0x10286c[_0xd564('0x2b')]=_[_0xd564('0x2c')](_0x57cde5[_0xd564('0x2b')]);_0x10286c[_0xd564('0x2d')]=_[_0xd564('0x2e')](_0x10286c[_0xd564('0x29')],_0x10286c[_0xd564('0x2b')]);_0xe3a96d[_0xd564('0x2f')]=_[_0xd564('0x2e')](_0x10286c[_0xd564('0x29')],qs[_0xd564('0x30')](_0x57cde5[_0xd564('0x2b')][_0xd564('0x30')]));_0xe3a96d[_0xd564('0x2f')]=_0xe3a96d[_0xd564('0x2f')][_0xd564('0x31')]?_0xe3a96d['attributes']:_0x10286c[_0xd564('0x29')];if(!_0x57cde5['query'][_0xd564('0x32')](_0xd564('0x33'))){_0xe3a96d[_0xd564('0x34')]=qs[_0xd564('0x34')](_0x57cde5[_0xd564('0x2b')][_0xd564('0x34')]);_0xe3a96d[_0xd564('0x1b')]=qs[_0xd564('0x1b')](_0x57cde5[_0xd564('0x2b')][_0xd564('0x1b')]);}_0xe3a96d[_0xd564('0x35')]=qs[_0xd564('0x36')](_0x57cde5[_0xd564('0x2b')]['sort']);_0xe3a96d['where']=qs['filters'](_[_0xd564('0x37')](_0x57cde5[_0xd564('0x2b')],_0x10286c['filters']),_0x21f5ba);if(_0x57cde5[_0xd564('0x2b')][_0xd564('0x38')]){_0xe3a96d[_0xd564('0x39')]=_[_0xd564('0x3a')](_0xe3a96d['where'],{'$or':_[_0xd564('0x2a')](_0x21f5ba,function(_0x5c1c6a){if(_0x5c1c6a[_0xd564('0x27')]!==_0xd564('0x3b')){var _0x278f38={};_0x278f38[_0x5c1c6a[_0xd564('0x22')]]={'$like':'%'+_0x57cde5[_0xd564('0x2b')][_0xd564('0x38')]+'%'};return _0x278f38;}})});}_0xe3a96d=_[_0xd564('0x3a')]({},_0xe3a96d,_0x57cde5[_0xd564('0x3c')]);var _0x47bb0d={'where':_0xe3a96d['where']};return db['SquareDetailsReport'][_0xd564('0x1a')](_0x47bb0d)[_0xd564('0x1f')](function(_0x1fd799){_0x174278[_0xd564('0x1a')]=_0x1fd799;if(_0x57cde5[_0xd564('0x2b')]['includeAll']){_0xe3a96d[_0xd564('0x3d')]=[{'all':!![]}];}return db[_0xd564('0x25')]['findAll'](_0xe3a96d);})[_0xd564('0x1f')](function(_0x5d653c){_0x174278[_0xd564('0x3e')]=_0x5d653c;return _0x174278;})[_0xd564('0x1f')](respondWithFilteredResult(_0x1abcef,_0xe3a96d))[_0xd564('0x3f')](handleError(_0x1abcef,null));};exports[_0xd564('0x40')]=function(_0x14f06a,_0x295193){var _0x4cd46a={'raw':!![],'where':{'id':_0x14f06a[_0xd564('0x41')]['id']}},_0x1df629={};_0x1df629['model']=_['keys'](db['SquareDetailsReport'][_0xd564('0x42')]);_0x1df629[_0xd564('0x2b')]=_[_0xd564('0x2c')](_0x14f06a['query']);_0x1df629['filters']=_['intersection'](_0x1df629['model'],_0x1df629[_0xd564('0x2b')]);_0x4cd46a[_0xd564('0x2f')]=_[_0xd564('0x2e')](_0x1df629['model'],qs['fields'](_0x14f06a[_0xd564('0x2b')][_0xd564('0x30')]));_0x4cd46a[_0xd564('0x2f')]=_0x4cd46a[_0xd564('0x2f')][_0xd564('0x31')]?_0x4cd46a['attributes']:_0x1df629['model'];if(_0x14f06a[_0xd564('0x2b')][_0xd564('0x43')]){_0x4cd46a[_0xd564('0x3d')]=[{'all':!![]}];}_0x4cd46a=_[_0xd564('0x3a')]({},_0x4cd46a,_0x14f06a[_0xd564('0x3c')]);return db[_0xd564('0x25')]['find'](_0x4cd46a)['then'](handleEntityNotFound(_0x295193,null))['then'](respondWithResult(_0x295193,null))[_0xd564('0x3f')](handleError(_0x295193,null));};exports[_0xd564('0x44')]=function(_0x2dc11f,_0x51cf56){return db[_0xd564('0x25')]['create'](_0x2dc11f[_0xd564('0x45')],{})[_0xd564('0x1f')](respondWithResult(_0x51cf56,0xc9))['catch'](handleError(_0x51cf56,null));};exports['update']=function(_0x3491f4,_0x399299){if(_0x3491f4['body']['id']){delete _0x3491f4['body']['id'];}return db[_0xd564('0x25')][_0xd564('0x46')]({'where':{'id':_0x3491f4[_0xd564('0x41')]['id']}})[_0xd564('0x1f')](handleEntityNotFound(_0x399299,null))[_0xd564('0x1f')](saveUpdates(_0x3491f4['body'],null))[_0xd564('0x1f')](respondWithResult(_0x399299,null))[_0xd564('0x3f')](handleError(_0x399299,null));};exports[_0xd564('0x1e')]=function(_0x1b12ab,_0x2b5130){return db[_0xd564('0x25')][_0xd564('0x46')]({'where':{'id':_0x1b12ab['params']['id']}})['then'](handleEntityNotFound(_0x2b5130,null))[_0xd564('0x1f')](removeEntity(_0x2b5130,null))['catch'](handleError(_0x2b5130,null));};exports['describe']=function(_0x5bbcdf,_0x2fac7a){return db['SquareDetailsReport'][_0xd564('0x47')]()['then'](respondWithResult(_0x2fac7a,null))[_0xd564('0x3f')](handleError(_0x2fac7a,null));};
\ No newline at end of file