Built motion from commit b5413ace.|2.6.9
[motion2.git] / server / api / intFreshdeskField / intFreshdeskField.controller.js
index fe788f0..0007f8c 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x593e=['../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','update','destroy','then','error','stack','name','send','map','FreshdeskField','fieldName','type','key','model','keys','query','intersection','attributes','fields','length','hasOwnProperty','order','sort','where','pick','filters','merge','VIRTUAL','filter','includeAll','include','rows','catch','show','params','find','create','body','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','path','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/advancedSearch'];(function(_0x3493d7,_0x2718b1){var _0xb7a248=function(_0x4c2777){while(--_0x4c2777){_0x3493d7['push'](_0x3493d7['shift']());}};_0xb7a248(++_0x2718b1);}(_0x593e,0xcb));var _0xe593=function(_0x3a4fe2,_0x1778f1){_0x3a4fe2=_0x3a4fe2-0x0;var _0x3dba87=_0x593e[_0x3a4fe2];return _0x3dba87;};'use strict';var emlformat=require(_0xe593('0x0'));var rimraf=require(_0xe593('0x1'));var zipdir=require(_0xe593('0x2'));var jsonpatch=require(_0xe593('0x3'));var rp=require(_0xe593('0x4'));var moment=require(_0xe593('0x5'));var BPromise=require(_0xe593('0x6'));var Mustache=require(_0xe593('0x7'));var util=require('util');var path=require(_0xe593('0x8'));var sox=require(_0xe593('0x9'));var csv=require(_0xe593('0xa'));var ejs=require(_0xe593('0xb'));var fs=require('fs');var fs_extra=require(_0xe593('0xc'));var _=require(_0xe593('0xd'));var squel=require(_0xe593('0xe'));var crypto=require(_0xe593('0xf'));var jsforce=require(_0xe593('0x10'));var deskjs=require(_0xe593('0x11'));var toCsv=require('to-csv');var querystring=require(_0xe593('0x12'));var Papa=require(_0xe593('0x13'));var Redis=require(_0xe593('0x14'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xe593('0x15'));var hardwareService=require(_0xe593('0x16'));var logger=require(_0xe593('0x17'))('api');var utils=require(_0xe593('0x18'));var config=require(_0xe593('0x19'));var licenseUtil=require(_0xe593('0x1a'));var db=require(_0xe593('0x1b'))['db'];function respondWithStatusCode(_0x8ee313,_0x31dad0){_0x31dad0=_0x31dad0||0xcc;return function(_0x24c9fd){if(_0x24c9fd){return _0x8ee313[_0xe593('0x1c')](_0x31dad0);}return _0x8ee313[_0xe593('0x1d')](_0x31dad0)[_0xe593('0x1e')]();};}function respondWithResult(_0x499819,_0x2907e4){_0x2907e4=_0x2907e4||0xc8;return function(_0x1de391){if(_0x1de391){return _0x499819['status'](_0x2907e4)[_0xe593('0x1f')](_0x1de391);}};}function respondWithFilteredResult(_0x44837b,_0x5d4c6a){return function(_0x2ae9b6){if(_0x2ae9b6){var _0x40416c=typeof _0x5d4c6a[_0xe593('0x20')]===_0xe593('0x21')&&typeof _0x5d4c6a[_0xe593('0x22')]===_0xe593('0x21');var _0x48f3b4=_0x2ae9b6[_0xe593('0x23')];var _0x470d07=_0x40416c?0x0:_0x5d4c6a['offset'];var _0xd1020e=_0x40416c?_0x2ae9b6[_0xe593('0x23')]:_0x5d4c6a['offset']+_0x5d4c6a[_0xe593('0x22')];var _0x3dba1b;if(_0xd1020e>=_0x48f3b4){_0xd1020e=_0x48f3b4;_0x3dba1b=0xc8;}else{_0x3dba1b=0xce;}_0x44837b[_0xe593('0x1d')](_0x3dba1b);return _0x44837b[_0xe593('0x24')](_0xe593('0x25'),_0x470d07+'-'+_0xd1020e+'/'+_0x48f3b4)[_0xe593('0x1f')](_0x2ae9b6);}return null;};}function patchUpdates(_0x3d2a51){return function(_0x4ea53f){try{jsonpatch['apply'](_0x4ea53f,_0x3d2a51,!![]);}catch(_0x1634d4){return BPromise['reject'](_0x1634d4);}return _0x4ea53f['save']();};}function saveUpdates(_0x1bb8e8,_0x3c65b5){return function(_0x57379d){if(_0x57379d){return _0x57379d[_0xe593('0x26')](_0x1bb8e8)['then'](function(_0x1672bf){return _0x1672bf;});}return null;};}function removeEntity(_0x2c191f,_0x185cea){return function(_0x44d997){if(_0x44d997){return _0x44d997[_0xe593('0x27')]()[_0xe593('0x28')](function(){_0x2c191f[_0xe593('0x1d')](0xcc)[_0xe593('0x1e')]();});}};}function handleEntityNotFound(_0x4fc483,_0x47aea){return function(_0x347d7d){if(!_0x347d7d){_0x4fc483['sendStatus'](0x194);}return _0x347d7d;};}function handleError(_0x59bd4c,_0xf8d492){_0xf8d492=_0xf8d492||0x1f4;return function(_0x25238f){logger[_0xe593('0x29')](_0x25238f[_0xe593('0x2a')]);if(_0x25238f[_0xe593('0x2b')]){delete _0x25238f[_0xe593('0x2b')];}_0x59bd4c['status'](_0xf8d492)[_0xe593('0x2c')](_0x25238f);};}exports['index']=function(_0x1dacf6,_0xda61a7){var _0x4a2eaa={},_0x337ee0={},_0x561a01={'count':0x0,'rows':[]};var _0x44a68c=_[_0xe593('0x2d')](db[_0xe593('0x2e')]['rawAttributes'],function(_0x1ae8d9){return{'name':_0x1ae8d9[_0xe593('0x2f')],'type':_0x1ae8d9[_0xe593('0x30')][_0xe593('0x31')]};});_0x337ee0[_0xe593('0x32')]=_[_0xe593('0x2d')](_0x44a68c,_0xe593('0x2b'));_0x337ee0['query']=_[_0xe593('0x33')](_0x1dacf6[_0xe593('0x34')]);_0x337ee0['filters']=_[_0xe593('0x35')](_0x337ee0['model'],_0x337ee0[_0xe593('0x34')]);_0x4a2eaa[_0xe593('0x36')]=_[_0xe593('0x35')](_0x337ee0[_0xe593('0x32')],qs[_0xe593('0x37')](_0x1dacf6[_0xe593('0x34')][_0xe593('0x37')]));_0x4a2eaa[_0xe593('0x36')]=_0x4a2eaa[_0xe593('0x36')][_0xe593('0x38')]?_0x4a2eaa['attributes']:_0x337ee0[_0xe593('0x32')];if(!_0x1dacf6[_0xe593('0x34')][_0xe593('0x39')]('nolimit')){_0x4a2eaa['limit']=qs[_0xe593('0x22')](_0x1dacf6['query'][_0xe593('0x22')]);_0x4a2eaa[_0xe593('0x20')]=qs[_0xe593('0x20')](_0x1dacf6[_0xe593('0x34')][_0xe593('0x20')]);}_0x4a2eaa[_0xe593('0x3a')]=qs[_0xe593('0x3b')](_0x1dacf6['query']['sort']);_0x4a2eaa[_0xe593('0x3c')]=qs['filters'](_[_0xe593('0x3d')](_0x1dacf6['query'],_0x337ee0[_0xe593('0x3e')]),_0x44a68c);if(_0x1dacf6['query']['filter']){_0x4a2eaa[_0xe593('0x3c')]=_[_0xe593('0x3f')](_0x4a2eaa[_0xe593('0x3c')],{'$or':_['map'](_0x44a68c,function(_0x55d902){if(_0x55d902['type']!==_0xe593('0x40')){var _0x584945={};_0x584945[_0x55d902[_0xe593('0x2b')]]={'$like':'%'+_0x1dacf6[_0xe593('0x34')][_0xe593('0x41')]+'%'};return _0x584945;}})});}_0x4a2eaa=_[_0xe593('0x3f')]({},_0x4a2eaa,_0x1dacf6['options']);var _0x196325={'where':_0x4a2eaa['where']};return db[_0xe593('0x2e')]['count'](_0x196325)['then'](function(_0x590d34){_0x561a01[_0xe593('0x23')]=_0x590d34;if(_0x1dacf6['query'][_0xe593('0x42')]){_0x4a2eaa[_0xe593('0x43')]=[{'all':!![]}];}return db[_0xe593('0x2e')]['findAll'](_0x4a2eaa);})[_0xe593('0x28')](function(_0x3f9784){_0x561a01[_0xe593('0x44')]=_0x3f9784;return _0x561a01;})[_0xe593('0x28')](respondWithFilteredResult(_0xda61a7,_0x4a2eaa))[_0xe593('0x45')](handleError(_0xda61a7,null));};exports[_0xe593('0x46')]=function(_0x1236bb,_0x2e14d3){var _0x4b36e1={'raw':!![],'where':{'id':_0x1236bb[_0xe593('0x47')]['id']}},_0x211065={};_0x211065[_0xe593('0x32')]=_[_0xe593('0x33')](db[_0xe593('0x2e')]['rawAttributes']);_0x211065['query']=_[_0xe593('0x33')](_0x1236bb[_0xe593('0x34')]);_0x211065[_0xe593('0x3e')]=_['intersection'](_0x211065[_0xe593('0x32')],_0x211065[_0xe593('0x34')]);_0x4b36e1['attributes']=_['intersection'](_0x211065[_0xe593('0x32')],qs[_0xe593('0x37')](_0x1236bb[_0xe593('0x34')]['fields']));_0x4b36e1[_0xe593('0x36')]=_0x4b36e1[_0xe593('0x36')][_0xe593('0x38')]?_0x4b36e1[_0xe593('0x36')]:_0x211065['model'];if(_0x1236bb['query']['includeAll']){_0x4b36e1['include']=[{'all':!![]}];}_0x4b36e1=_[_0xe593('0x3f')]({},_0x4b36e1,_0x1236bb['options']);return db[_0xe593('0x2e')][_0xe593('0x48')](_0x4b36e1)[_0xe593('0x28')](handleEntityNotFound(_0x2e14d3,null))[_0xe593('0x28')](respondWithResult(_0x2e14d3,null))[_0xe593('0x45')](handleError(_0x2e14d3,null));};exports[_0xe593('0x49')]=function(_0x7b6f77,_0x297c3e){return db['FreshdeskField'][_0xe593('0x49')](_0x7b6f77[_0xe593('0x4a')],{})[_0xe593('0x28')](respondWithResult(_0x297c3e,0xc9))['catch'](handleError(_0x297c3e,null));};exports[_0xe593('0x26')]=function(_0x5dfdb1,_0x39ec9e){if(_0x5dfdb1[_0xe593('0x4a')]['id']){delete _0x5dfdb1[_0xe593('0x4a')]['id'];}return db['FreshdeskField']['find']({'where':{'id':_0x5dfdb1[_0xe593('0x47')]['id']}})[_0xe593('0x28')](handleEntityNotFound(_0x39ec9e,null))['then'](saveUpdates(_0x5dfdb1['body'],null))['then'](respondWithResult(_0x39ec9e,null))['catch'](handleError(_0x39ec9e,null));};exports['destroy']=function(_0x383645,_0x1e48d8){return db[_0xe593('0x2e')][_0xe593('0x48')]({'where':{'id':_0x383645[_0xe593('0x47')]['id']}})[_0xe593('0x28')](handleEntityNotFound(_0x1e48d8,null))[_0xe593('0x28')](removeEntity(_0x1e48d8,null))[_0xe593('0x45')](handleError(_0x1e48d8,null));};
\ No newline at end of file
+var _0x2dae=['undefined','limit','offset','count','Content-Range','json','apply','save','update','then','error','stack','name','send','rawAttributes','fieldName','type','key','model','map','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','pick','where','VIRTUAL','FreshdeskField','includeAll','include','findAll','rows','catch','params','keys','merge','find','create','body','destroy','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../mysqldb','sendStatus','status','end'];(function(_0x2acde1,_0x495275){var _0x5538b5=function(_0xb20940){while(--_0xb20940){_0x2acde1['push'](_0x2acde1['shift']());}};_0x5538b5(++_0x495275);}(_0x2dae,0xc3));var _0xe2da=function(_0x24875d,_0x4fb24d){_0x24875d=_0x24875d-0x0;var _0x181471=_0x2dae[_0x24875d];return _0x181471;};'use strict';var emlformat=require(_0xe2da('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xe2da('0x1'));var jsonpatch=require(_0xe2da('0x2'));var rp=require(_0xe2da('0x3'));var moment=require(_0xe2da('0x4'));var BPromise=require(_0xe2da('0x5'));var Mustache=require('mustache');var util=require(_0xe2da('0x6'));var path=require(_0xe2da('0x7'));var sox=require(_0xe2da('0x8'));var csv=require(_0xe2da('0x9'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xe2da('0xa'));var _=require(_0xe2da('0xb'));var squel=require(_0xe2da('0xc'));var crypto=require(_0xe2da('0xd'));var jsforce=require(_0xe2da('0xe'));var deskjs=require(_0xe2da('0xf'));var toCsv=require(_0xe2da('0x9'));var querystring=require(_0xe2da('0x10'));var Papa=require(_0xe2da('0x11'));var Redis=require('ioredis');var authService=require(_0xe2da('0x12'));var qs=require(_0xe2da('0x13'));var as=require(_0xe2da('0x14'));var hardwareService=require(_0xe2da('0x15'));var logger=require(_0xe2da('0x16'))(_0xe2da('0x17'));var utils=require(_0xe2da('0x18'));var config=require(_0xe2da('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0xe2da('0x1a'))['db'];function respondWithStatusCode(_0x5200b1,_0x4377c6){_0x4377c6=_0x4377c6||0xcc;return function(_0x245ad7){if(_0x245ad7){return _0x5200b1[_0xe2da('0x1b')](_0x4377c6);}return _0x5200b1[_0xe2da('0x1c')](_0x4377c6)[_0xe2da('0x1d')]();};}function respondWithResult(_0x5660b5,_0x295a86){_0x295a86=_0x295a86||0xc8;return function(_0x48584b){if(_0x48584b){return _0x5660b5[_0xe2da('0x1c')](_0x295a86)['json'](_0x48584b);}};}function respondWithFilteredResult(_0x586b27,_0x403d1c){return function(_0x3dfc52){if(_0x3dfc52){var _0x33f919=typeof _0x403d1c['offset']===_0xe2da('0x1e')&&typeof _0x403d1c[_0xe2da('0x1f')]===_0xe2da('0x1e');var _0x33568f=_0x3dfc52['count'];var _0x45bb92=_0x33f919?0x0:_0x403d1c[_0xe2da('0x20')];var _0x417363=_0x33f919?_0x3dfc52[_0xe2da('0x21')]:_0x403d1c[_0xe2da('0x20')]+_0x403d1c['limit'];var _0x56eeb1;if(_0x417363>=_0x33568f){_0x417363=_0x33568f;_0x56eeb1=0xc8;}else{_0x56eeb1=0xce;}_0x586b27[_0xe2da('0x1c')](_0x56eeb1);return _0x586b27['set'](_0xe2da('0x22'),_0x45bb92+'-'+_0x417363+'/'+_0x33568f)[_0xe2da('0x23')](_0x3dfc52);}return null;};}function patchUpdates(_0x332193){return function(_0x203d36){try{jsonpatch[_0xe2da('0x24')](_0x203d36,_0x332193,!![]);}catch(_0x3e22de){return BPromise['reject'](_0x3e22de);}return _0x203d36[_0xe2da('0x25')]();};}function saveUpdates(_0x53cc4e,_0x30efdc){return function(_0x191d38){if(_0x191d38){return _0x191d38[_0xe2da('0x26')](_0x53cc4e)[_0xe2da('0x27')](function(_0x30dea4){return _0x30dea4;});}return null;};}function removeEntity(_0x1e45e9,_0x38f2c4){return function(_0x221e98){if(_0x221e98){return _0x221e98['destroy']()[_0xe2da('0x27')](function(){_0x1e45e9[_0xe2da('0x1c')](0xcc)[_0xe2da('0x1d')]();});}};}function handleEntityNotFound(_0x14704d,_0x3778dc){return function(_0x230fb8){if(!_0x230fb8){_0x14704d[_0xe2da('0x1b')](0x194);}return _0x230fb8;};}function handleError(_0x56c37e,_0x2adc49){_0x2adc49=_0x2adc49||0x1f4;return function(_0x3e23d7){logger[_0xe2da('0x28')](_0x3e23d7[_0xe2da('0x29')]);if(_0x3e23d7[_0xe2da('0x2a')]){delete _0x3e23d7[_0xe2da('0x2a')];}_0x56c37e[_0xe2da('0x1c')](_0x2adc49)[_0xe2da('0x2b')](_0x3e23d7);};}exports['index']=function(_0x487a7c,_0x5e259a){var _0x3c4845={},_0x8c91db={},_0x4146ad={'count':0x0,'rows':[]};var _0x1ab91a=_['map'](db['FreshdeskField'][_0xe2da('0x2c')],function(_0x1ec8ca){return{'name':_0x1ec8ca[_0xe2da('0x2d')],'type':_0x1ec8ca[_0xe2da('0x2e')][_0xe2da('0x2f')]};});_0x8c91db[_0xe2da('0x30')]=_[_0xe2da('0x31')](_0x1ab91a,_0xe2da('0x2a'));_0x8c91db[_0xe2da('0x32')]=_['keys'](_0x487a7c['query']);_0x8c91db[_0xe2da('0x33')]=_[_0xe2da('0x34')](_0x8c91db[_0xe2da('0x30')],_0x8c91db[_0xe2da('0x32')]);_0x3c4845[_0xe2da('0x35')]=_[_0xe2da('0x34')](_0x8c91db[_0xe2da('0x30')],qs[_0xe2da('0x36')](_0x487a7c[_0xe2da('0x32')][_0xe2da('0x36')]));_0x3c4845[_0xe2da('0x35')]=_0x3c4845[_0xe2da('0x35')][_0xe2da('0x37')]?_0x3c4845[_0xe2da('0x35')]:_0x8c91db[_0xe2da('0x30')];if(!_0x487a7c[_0xe2da('0x32')][_0xe2da('0x38')](_0xe2da('0x39'))){_0x3c4845['limit']=qs[_0xe2da('0x1f')](_0x487a7c[_0xe2da('0x32')][_0xe2da('0x1f')]);_0x3c4845['offset']=qs[_0xe2da('0x20')](_0x487a7c[_0xe2da('0x32')][_0xe2da('0x20')]);}_0x3c4845['order']=qs['sort'](_0x487a7c[_0xe2da('0x32')][_0xe2da('0x3a')]);_0x3c4845['where']=qs[_0xe2da('0x33')](_[_0xe2da('0x3b')](_0x487a7c[_0xe2da('0x32')],_0x8c91db[_0xe2da('0x33')]),_0x1ab91a);if(_0x487a7c[_0xe2da('0x32')]['filter']){_0x3c4845[_0xe2da('0x3c')]=_['merge'](_0x3c4845['where'],{'$or':_[_0xe2da('0x31')](_0x1ab91a,function(_0x561afb){if(_0x561afb[_0xe2da('0x2e')]!==_0xe2da('0x3d')){var _0x54d8a3={};_0x54d8a3[_0x561afb[_0xe2da('0x2a')]]={'$like':'%'+_0x487a7c[_0xe2da('0x32')]['filter']+'%'};return _0x54d8a3;}})});}_0x3c4845=_['merge']({},_0x3c4845,_0x487a7c['options']);var _0x2d9c0a={'where':_0x3c4845[_0xe2da('0x3c')]};return db[_0xe2da('0x3e')][_0xe2da('0x21')](_0x2d9c0a)[_0xe2da('0x27')](function(_0xdf6ea6){_0x4146ad[_0xe2da('0x21')]=_0xdf6ea6;if(_0x487a7c['query'][_0xe2da('0x3f')]){_0x3c4845[_0xe2da('0x40')]=[{'all':!![]}];}return db[_0xe2da('0x3e')][_0xe2da('0x41')](_0x3c4845);})[_0xe2da('0x27')](function(_0x5a1550){_0x4146ad[_0xe2da('0x42')]=_0x5a1550;return _0x4146ad;})[_0xe2da('0x27')](respondWithFilteredResult(_0x5e259a,_0x3c4845))[_0xe2da('0x43')](handleError(_0x5e259a,null));};exports['show']=function(_0x24d748,_0x279f67){var _0x1529f4={'raw':!![],'where':{'id':_0x24d748[_0xe2da('0x44')]['id']}},_0x4096c5={};_0x4096c5[_0xe2da('0x30')]=_[_0xe2da('0x45')](db[_0xe2da('0x3e')]['rawAttributes']);_0x4096c5[_0xe2da('0x32')]=_[_0xe2da('0x45')](_0x24d748[_0xe2da('0x32')]);_0x4096c5[_0xe2da('0x33')]=_[_0xe2da('0x34')](_0x4096c5['model'],_0x4096c5[_0xe2da('0x32')]);_0x1529f4[_0xe2da('0x35')]=_[_0xe2da('0x34')](_0x4096c5[_0xe2da('0x30')],qs[_0xe2da('0x36')](_0x24d748[_0xe2da('0x32')][_0xe2da('0x36')]));_0x1529f4['attributes']=_0x1529f4[_0xe2da('0x35')]['length']?_0x1529f4[_0xe2da('0x35')]:_0x4096c5[_0xe2da('0x30')];if(_0x24d748[_0xe2da('0x32')]['includeAll']){_0x1529f4[_0xe2da('0x40')]=[{'all':!![]}];}_0x1529f4=_[_0xe2da('0x46')]({},_0x1529f4,_0x24d748['options']);return db[_0xe2da('0x3e')][_0xe2da('0x47')](_0x1529f4)[_0xe2da('0x27')](handleEntityNotFound(_0x279f67,null))['then'](respondWithResult(_0x279f67,null))[_0xe2da('0x43')](handleError(_0x279f67,null));};exports['create']=function(_0x4e9444,_0x16a393){return db['FreshdeskField'][_0xe2da('0x48')](_0x4e9444[_0xe2da('0x49')],{})['then'](respondWithResult(_0x16a393,0xc9))[_0xe2da('0x43')](handleError(_0x16a393,null));};exports[_0xe2da('0x26')]=function(_0x482547,_0x4a6d80){if(_0x482547[_0xe2da('0x49')]['id']){delete _0x482547['body']['id'];}return db[_0xe2da('0x3e')][_0xe2da('0x47')]({'where':{'id':_0x482547[_0xe2da('0x44')]['id']}})[_0xe2da('0x27')](handleEntityNotFound(_0x4a6d80,null))[_0xe2da('0x27')](saveUpdates(_0x482547[_0xe2da('0x49')],null))[_0xe2da('0x27')](respondWithResult(_0x4a6d80,null))[_0xe2da('0x43')](handleError(_0x4a6d80,null));};exports[_0xe2da('0x4a')]=function(_0x515f9b,_0x3ce9a8){return db[_0xe2da('0x3e')][_0xe2da('0x47')]({'where':{'id':_0x515f9b['params']['id']}})[_0xe2da('0x27')](handleEntityNotFound(_0x3ce9a8,null))[_0xe2da('0x27')](removeEntity(_0x3ce9a8,null))[_0xe2da('0x43')](handleError(_0x3ce9a8,null));};
\ No newline at end of file