Built motion from commit (unavailable).|2.5.8
[motion2.git] / server / api / openchannelQueueReport / openchannelQueueReport.controller.js
index ee865e3..df4a870 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0xda34=['show','params','keys','length','find','create','update','body','describe','rimraf','zip-dir','request-promise','moment','util','path','sox','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','sendStatus','status','end','json','count','offset','set','Content-Range','apply','reject','then','name','send','index','map','rawAttributes','fieldName','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','limit','order','sort','pick','filter','merge','where','type','options','OpenchannelQueueReport','includeAll','include','rows','catch'];(function(_0xf1c70e,_0x1d67be){var _0x11c68a=function(_0x22818a){while(--_0x22818a){_0xf1c70e['push'](_0xf1c70e['shift']());}};_0x11c68a(++_0x1d67be);}(_0xda34,0x14e));var _0x4da3=function(_0xd593a2,_0x4a4b6d){_0xd593a2=_0xd593a2-0x0;var _0x483c06=_0xda34[_0xd593a2];return _0x483c06;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require(_0x4da3('0x0'));var zipdir=require(_0x4da3('0x1'));var jsonpatch=require('fast-json-patch');var rp=require(_0x4da3('0x2'));var moment=require(_0x4da3('0x3'));var BPromise=require('bluebird');var Mustache=require('mustache');var util=require(_0x4da3('0x4'));var path=require(_0x4da3('0x5'));var sox=require(_0x4da3('0x6'));var csv=require('to-csv');var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require('squel');var crypto=require(_0x4da3('0x7'));var jsforce=require(_0x4da3('0x8'));var deskjs=require(_0x4da3('0x9'));var toCsv=require('to-csv');var querystring=require(_0x4da3('0xa'));var Papa=require('papaparse');var Redis=require(_0x4da3('0xb'));var authService=require(_0x4da3('0xc'));var qs=require(_0x4da3('0xd'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x4da3('0xe'));var logger=require(_0x4da3('0xf'))(_0x4da3('0x10'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x20e8a7,_0x412e20){_0x412e20=_0x412e20||0xcc;return function(_0x346e02){if(_0x346e02){return _0x20e8a7[_0x4da3('0x11')](_0x412e20);}return _0x20e8a7[_0x4da3('0x12')](_0x412e20)[_0x4da3('0x13')]();};}function respondWithResult(_0x3f8621,_0x5ae401){_0x5ae401=_0x5ae401||0xc8;return function(_0xdb5941){if(_0xdb5941){return _0x3f8621[_0x4da3('0x12')](_0x5ae401)[_0x4da3('0x14')](_0xdb5941);}};}function respondWithFilteredResult(_0x572429,_0x4afc8e){return function(_0x7503ba){if(_0x7503ba){var _0x330f62=_0x7503ba[_0x4da3('0x15')],_0xfe4d33=_0x4afc8e[_0x4da3('0x16')],_0x24a8d0=_0x4afc8e['offset']+_0x4afc8e['limit'],_0x56f700;if(_0x24a8d0>=_0x330f62){_0x24a8d0=_0x330f62;_0x56f700=0xc8;}else{_0x56f700=0xce;}_0x572429[_0x4da3('0x12')](_0x56f700);return _0x572429[_0x4da3('0x17')](_0x4da3('0x18'),_0xfe4d33+'-'+_0x24a8d0+'/'+_0x330f62)['json'](_0x7503ba);}return null;};}function patchUpdates(_0x22a54f){return function(_0x30e615){try{jsonpatch[_0x4da3('0x19')](_0x30e615,_0x22a54f,!![]);}catch(_0x27a6dc){return BPromise[_0x4da3('0x1a')](_0x27a6dc);}return _0x30e615['save']();};}function saveUpdates(_0x2969f9,_0x1d8cc8){return function(_0x583737){if(_0x583737){return _0x583737['update'](_0x2969f9)[_0x4da3('0x1b')](function(_0x3b326f){return _0x3b326f;});}return null;};}function removeEntity(_0x108cac,_0x3be6ef){return function(_0x52ff42){if(_0x52ff42){return _0x52ff42['destroy']()['then'](function(){_0x108cac['status'](0xcc)[_0x4da3('0x13')]();});}};}function handleEntityNotFound(_0xfeff22,_0x1d7638){return function(_0x181164){if(!_0x181164){_0xfeff22[_0x4da3('0x11')](0x194);}return _0x181164;};}function handleError(_0x38d392,_0x1e4609){_0x1e4609=_0x1e4609||0x1f4;return function(_0x321dd1){logger['error'](_0x321dd1['stack']);if(_0x321dd1[_0x4da3('0x1c')]){delete _0x321dd1['name'];}_0x38d392[_0x4da3('0x12')](_0x1e4609)[_0x4da3('0x1d')](_0x321dd1);};}exports[_0x4da3('0x1e')]=function(_0x499233,_0x2162c6){var _0xa96321={},_0x9375d0={},_0x2e52ec={'count':0x0,'rows':[]};var _0x2415e2=_[_0x4da3('0x1f')](db['OpenchannelQueueReport'][_0x4da3('0x20')],function(_0x57fdd6){return{'name':_0x57fdd6[_0x4da3('0x21')],'type':_0x57fdd6['type']['key']};});_0x9375d0[_0x4da3('0x22')]=_[_0x4da3('0x1f')](_0x2415e2,_0x4da3('0x1c'));_0x9375d0[_0x4da3('0x23')]=_['keys'](_0x499233['query']);_0x9375d0[_0x4da3('0x24')]=_[_0x4da3('0x25')](_0x9375d0[_0x4da3('0x22')],_0x9375d0[_0x4da3('0x23')]);_0xa96321[_0x4da3('0x26')]=_[_0x4da3('0x25')](_0x9375d0[_0x4da3('0x22')],qs[_0x4da3('0x27')](_0x499233[_0x4da3('0x23')][_0x4da3('0x27')]));_0xa96321['attributes']=_0xa96321[_0x4da3('0x26')]['length']?_0xa96321[_0x4da3('0x26')]:_0x9375d0['model'];if(!_0x499233['query'][_0x4da3('0x28')](_0x4da3('0x29'))){_0xa96321['limit']=qs[_0x4da3('0x2a')](_0x499233[_0x4da3('0x23')][_0x4da3('0x2a')]);_0xa96321[_0x4da3('0x16')]=qs[_0x4da3('0x16')](_0x499233[_0x4da3('0x23')][_0x4da3('0x16')]);}_0xa96321[_0x4da3('0x2b')]=qs[_0x4da3('0x2c')](_0x499233[_0x4da3('0x23')]['sort']);_0xa96321['where']=qs[_0x4da3('0x24')](_[_0x4da3('0x2d')](_0x499233[_0x4da3('0x23')],_0x9375d0[_0x4da3('0x24')]),_0x2415e2);if(_0x499233[_0x4da3('0x23')][_0x4da3('0x2e')]){_0xa96321['where']=_[_0x4da3('0x2f')](_0xa96321[_0x4da3('0x30')],{'$or':_['map'](_0x2415e2,function(_0x3ab231){if(_0x3ab231[_0x4da3('0x31')]!=='VIRTUAL'){var _0x2246fd={};_0x2246fd[_0x3ab231[_0x4da3('0x1c')]]={'$like':'%'+_0x499233[_0x4da3('0x23')][_0x4da3('0x2e')]+'%'};return _0x2246fd;}})});}_0xa96321=_[_0x4da3('0x2f')]({},_0xa96321,_0x499233[_0x4da3('0x32')]);var _0x250cba={'where':_0xa96321[_0x4da3('0x30')]};return db[_0x4da3('0x33')][_0x4da3('0x15')](_0x250cba)[_0x4da3('0x1b')](function(_0x214da8){_0x2e52ec[_0x4da3('0x15')]=_0x214da8;if(_0x499233[_0x4da3('0x23')][_0x4da3('0x34')]){_0xa96321[_0x4da3('0x35')]=[{'all':!![]}];}return db[_0x4da3('0x33')]['findAll'](_0xa96321);})[_0x4da3('0x1b')](function(_0x1f7282){_0x2e52ec[_0x4da3('0x36')]=_0x1f7282;return _0x2e52ec;})[_0x4da3('0x1b')](respondWithFilteredResult(_0x2162c6,_0xa96321))[_0x4da3('0x37')](handleError(_0x2162c6,null));};exports[_0x4da3('0x38')]=function(_0x2af02a,_0x2ce51b){var _0x4cfaa3={'raw':!![],'where':{'id':_0x2af02a[_0x4da3('0x39')]['id']}},_0x1846d5={};_0x1846d5[_0x4da3('0x22')]=_['keys'](db[_0x4da3('0x33')][_0x4da3('0x20')]);_0x1846d5[_0x4da3('0x23')]=_[_0x4da3('0x3a')](_0x2af02a[_0x4da3('0x23')]);_0x1846d5[_0x4da3('0x24')]=_['intersection'](_0x1846d5[_0x4da3('0x22')],_0x1846d5['query']);_0x4cfaa3[_0x4da3('0x26')]=_[_0x4da3('0x25')](_0x1846d5[_0x4da3('0x22')],qs[_0x4da3('0x27')](_0x2af02a[_0x4da3('0x23')]['fields']));_0x4cfaa3[_0x4da3('0x26')]=_0x4cfaa3[_0x4da3('0x26')][_0x4da3('0x3b')]?_0x4cfaa3[_0x4da3('0x26')]:_0x1846d5[_0x4da3('0x22')];if(_0x2af02a[_0x4da3('0x23')]['includeAll']){_0x4cfaa3[_0x4da3('0x35')]=[{'all':!![]}];}_0x4cfaa3=_[_0x4da3('0x2f')]({},_0x4cfaa3,_0x2af02a[_0x4da3('0x32')]);return db[_0x4da3('0x33')][_0x4da3('0x3c')](_0x4cfaa3)['then'](handleEntityNotFound(_0x2ce51b,null))[_0x4da3('0x1b')](respondWithResult(_0x2ce51b,null))[_0x4da3('0x37')](handleError(_0x2ce51b,null));};exports[_0x4da3('0x3d')]=function(_0x4b5953,_0x17b5ba){return db[_0x4da3('0x33')][_0x4da3('0x3d')](_0x4b5953['body'],{})[_0x4da3('0x1b')](respondWithResult(_0x17b5ba,0xc9))[_0x4da3('0x37')](handleError(_0x17b5ba,null));};exports[_0x4da3('0x3e')]=function(_0x4da7cc,_0x61f3b9){if(_0x4da7cc[_0x4da3('0x3f')]['id']){delete _0x4da7cc[_0x4da3('0x3f')]['id'];}return db['OpenchannelQueueReport']['find']({'where':{'id':_0x4da7cc[_0x4da3('0x39')]['id']}})['then'](handleEntityNotFound(_0x61f3b9,null))[_0x4da3('0x1b')](saveUpdates(_0x4da7cc[_0x4da3('0x3f')],null))[_0x4da3('0x1b')](respondWithResult(_0x61f3b9,null))[_0x4da3('0x37')](handleError(_0x61f3b9,null));};exports['destroy']=function(_0x95bc49,_0x4408c8){return db[_0x4da3('0x33')][_0x4da3('0x3c')]({'where':{'id':_0x95bc49[_0x4da3('0x39')]['id']}})['then'](handleEntityNotFound(_0x4408c8,null))[_0x4da3('0x1b')](removeEntity(_0x4408c8,null))[_0x4da3('0x37')](handleError(_0x4408c8,null));};exports[_0x4da3('0x40')]=function(_0x9b80e1,_0x56ca24){return db['OpenchannelQueueReport'][_0x4da3('0x40')]()['then'](respondWithResult(_0x56ca24,null))[_0x4da3('0x37')](handleError(_0x56ca24,null));};
\ No newline at end of file
+var _0x5cd8=['findAll','rows','catch','show','keys','rawAttributes','find','create','body','update','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','bluebird','util','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','sendStatus','status','end','json','count','offset','set','Content-Range','apply','save','destroy','then','error','stack','name','send','index','map','OpenchannelQueueReport','fieldName','type','key','query','filters','intersection','model','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','pick','filter','where','merge','VIRTUAL','options','includeAll','include'];(function(_0x4c6d6f,_0x291557){var _0x2d4478=function(_0x106946){while(--_0x106946){_0x4c6d6f['push'](_0x4c6d6f['shift']());}};_0x2d4478(++_0x291557);}(_0x5cd8,0x1d2));var _0x85cd=function(_0x3f4d9c,_0x99d4c1){_0x3f4d9c=_0x3f4d9c-0x0;var _0x29b81b=_0x5cd8[_0x3f4d9c];return _0x29b81b;};'use strict';var pdf=require(_0x85cd('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x85cd('0x1'));var zipdir=require(_0x85cd('0x2'));var jsonpatch=require(_0x85cd('0x3'));var rp=require(_0x85cd('0x4'));var moment=require('moment');var BPromise=require(_0x85cd('0x5'));var Mustache=require('mustache');var util=require(_0x85cd('0x6'));var path=require(_0x85cd('0x7'));var sox=require(_0x85cd('0x8'));var csv=require(_0x85cd('0x9'));var ejs=require(_0x85cd('0xa'));var fs=require('fs');var _=require('lodash');var squel=require(_0x85cd('0xb'));var crypto=require(_0x85cd('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x85cd('0xd'));var toCsv=require(_0x85cd('0x9'));var querystring=require(_0x85cd('0xe'));var Papa=require(_0x85cd('0xf'));var Redis=require(_0x85cd('0x10'));var authService=require(_0x85cd('0x11'));var qs=require(_0x85cd('0x12'));var as=require(_0x85cd('0x13'));var hardwareService=require(_0x85cd('0x14'));var logger=require('../../config/logger')('api');var utils=require(_0x85cd('0x15'));var config=require(_0x85cd('0x16'));var licenseUtil=require(_0x85cd('0x17'));var db=require(_0x85cd('0x18'))['db'];function respondWithStatusCode(_0x4f054b,_0x3c3ffe){_0x3c3ffe=_0x3c3ffe||0xcc;return function(_0x398f7c){if(_0x398f7c){return _0x4f054b[_0x85cd('0x19')](_0x3c3ffe);}return _0x4f054b[_0x85cd('0x1a')](_0x3c3ffe)[_0x85cd('0x1b')]();};}function respondWithResult(_0x3639c2,_0x58c13e){_0x58c13e=_0x58c13e||0xc8;return function(_0x3d4c54){if(_0x3d4c54){return _0x3639c2['status'](_0x58c13e)[_0x85cd('0x1c')](_0x3d4c54);}};}function respondWithFilteredResult(_0x3e5e89,_0x208490){return function(_0x424a01){if(_0x424a01){var _0xedc03b=_0x424a01[_0x85cd('0x1d')],_0x5219ac=_0x208490['offset'],_0x441505=_0x208490[_0x85cd('0x1e')]+_0x208490['limit'],_0x5164e8;if(_0x441505>=_0xedc03b){_0x441505=_0xedc03b;_0x5164e8=0xc8;}else{_0x5164e8=0xce;}_0x3e5e89[_0x85cd('0x1a')](_0x5164e8);return _0x3e5e89[_0x85cd('0x1f')](_0x85cd('0x20'),_0x5219ac+'-'+_0x441505+'/'+_0xedc03b)[_0x85cd('0x1c')](_0x424a01);}return null;};}function patchUpdates(_0x23695f){return function(_0x1123c0){try{jsonpatch[_0x85cd('0x21')](_0x1123c0,_0x23695f,!![]);}catch(_0x44ba80){return BPromise['reject'](_0x44ba80);}return _0x1123c0[_0x85cd('0x22')]();};}function saveUpdates(_0x425779,_0x5bb4cc){return function(_0x490bbb){if(_0x490bbb){return _0x490bbb['update'](_0x425779)['then'](function(_0x254bc5){return _0x254bc5;});}return null;};}function removeEntity(_0x597e6e,_0x3cf6c6){return function(_0x2385e7){if(_0x2385e7){return _0x2385e7[_0x85cd('0x23')]()[_0x85cd('0x24')](function(){_0x597e6e['status'](0xcc)[_0x85cd('0x1b')]();});}};}function handleEntityNotFound(_0x2b00a8,_0x358202){return function(_0x1e5b87){if(!_0x1e5b87){_0x2b00a8[_0x85cd('0x19')](0x194);}return _0x1e5b87;};}function handleError(_0x37646b,_0x4c825c){_0x4c825c=_0x4c825c||0x1f4;return function(_0xb3500f){logger[_0x85cd('0x25')](_0xb3500f[_0x85cd('0x26')]);if(_0xb3500f[_0x85cd('0x27')]){delete _0xb3500f['name'];}_0x37646b[_0x85cd('0x1a')](_0x4c825c)[_0x85cd('0x28')](_0xb3500f);};}exports[_0x85cd('0x29')]=function(_0x5a58a0,_0x48e80d){var _0x2ea68b={},_0x53b51a={},_0x1c6db6={'count':0x0,'rows':[]};var _0x1f36ad=_[_0x85cd('0x2a')](db[_0x85cd('0x2b')]['rawAttributes'],function(_0x225802){return{'name':_0x225802[_0x85cd('0x2c')],'type':_0x225802[_0x85cd('0x2d')][_0x85cd('0x2e')]};});_0x53b51a['model']=_[_0x85cd('0x2a')](_0x1f36ad,_0x85cd('0x27'));_0x53b51a[_0x85cd('0x2f')]=_['keys'](_0x5a58a0['query']);_0x53b51a[_0x85cd('0x30')]=_[_0x85cd('0x31')](_0x53b51a[_0x85cd('0x32')],_0x53b51a[_0x85cd('0x2f')]);_0x2ea68b[_0x85cd('0x33')]=_[_0x85cd('0x31')](_0x53b51a[_0x85cd('0x32')],qs[_0x85cd('0x34')](_0x5a58a0['query'][_0x85cd('0x34')]));_0x2ea68b[_0x85cd('0x33')]=_0x2ea68b[_0x85cd('0x33')][_0x85cd('0x35')]?_0x2ea68b['attributes']:_0x53b51a[_0x85cd('0x32')];if(!_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x36')](_0x85cd('0x37'))){_0x2ea68b[_0x85cd('0x38')]=qs['limit'](_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x38')]);_0x2ea68b['offset']=qs[_0x85cd('0x1e')](_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x1e')]);}_0x2ea68b['order']=qs['sort'](_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x39')]);_0x2ea68b['where']=qs['filters'](_[_0x85cd('0x3a')](_0x5a58a0['query'],_0x53b51a['filters']),_0x1f36ad);if(_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x3b')]){_0x2ea68b[_0x85cd('0x3c')]=_[_0x85cd('0x3d')](_0x2ea68b[_0x85cd('0x3c')],{'$or':_[_0x85cd('0x2a')](_0x1f36ad,function(_0x28a42d){if(_0x28a42d[_0x85cd('0x2d')]!==_0x85cd('0x3e')){var _0x1589bb={};_0x1589bb[_0x28a42d[_0x85cd('0x27')]]={'$like':'%'+_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x3b')]+'%'};return _0x1589bb;}})});}_0x2ea68b=_[_0x85cd('0x3d')]({},_0x2ea68b,_0x5a58a0[_0x85cd('0x3f')]);var _0x4d16bf={'where':_0x2ea68b[_0x85cd('0x3c')]};return db[_0x85cd('0x2b')][_0x85cd('0x1d')](_0x4d16bf)[_0x85cd('0x24')](function(_0x38ecf5){_0x1c6db6[_0x85cd('0x1d')]=_0x38ecf5;if(_0x5a58a0[_0x85cd('0x2f')][_0x85cd('0x40')]){_0x2ea68b[_0x85cd('0x41')]=[{'all':!![]}];}return db[_0x85cd('0x2b')][_0x85cd('0x42')](_0x2ea68b);})['then'](function(_0x5c585c){_0x1c6db6[_0x85cd('0x43')]=_0x5c585c;return _0x1c6db6;})[_0x85cd('0x24')](respondWithFilteredResult(_0x48e80d,_0x2ea68b))[_0x85cd('0x44')](handleError(_0x48e80d,null));};exports[_0x85cd('0x45')]=function(_0x5946c3,_0x324626){var _0x395919={'raw':!![],'where':{'id':_0x5946c3['params']['id']}},_0x2b97a6={};_0x2b97a6[_0x85cd('0x32')]=_[_0x85cd('0x46')](db[_0x85cd('0x2b')][_0x85cd('0x47')]);_0x2b97a6[_0x85cd('0x2f')]=_[_0x85cd('0x46')](_0x5946c3['query']);_0x2b97a6['filters']=_[_0x85cd('0x31')](_0x2b97a6[_0x85cd('0x32')],_0x2b97a6[_0x85cd('0x2f')]);_0x395919['attributes']=_[_0x85cd('0x31')](_0x2b97a6[_0x85cd('0x32')],qs[_0x85cd('0x34')](_0x5946c3['query'][_0x85cd('0x34')]));_0x395919['attributes']=_0x395919['attributes'][_0x85cd('0x35')]?_0x395919[_0x85cd('0x33')]:_0x2b97a6[_0x85cd('0x32')];if(_0x5946c3[_0x85cd('0x2f')][_0x85cd('0x40')]){_0x395919[_0x85cd('0x41')]=[{'all':!![]}];}_0x395919=_['merge']({},_0x395919,_0x5946c3[_0x85cd('0x3f')]);return db[_0x85cd('0x2b')][_0x85cd('0x48')](_0x395919)[_0x85cd('0x24')](handleEntityNotFound(_0x324626,null))[_0x85cd('0x24')](respondWithResult(_0x324626,null))[_0x85cd('0x44')](handleError(_0x324626,null));};exports[_0x85cd('0x49')]=function(_0x6622eb,_0x511b2a){return db['OpenchannelQueueReport'][_0x85cd('0x49')](_0x6622eb[_0x85cd('0x4a')],{})[_0x85cd('0x24')](respondWithResult(_0x511b2a,0xc9))[_0x85cd('0x44')](handleError(_0x511b2a,null));};exports[_0x85cd('0x4b')]=function(_0x172a25,_0x58dffa){if(_0x172a25[_0x85cd('0x4a')]['id']){delete _0x172a25[_0x85cd('0x4a')]['id'];}return db[_0x85cd('0x2b')]['find']({'where':{'id':_0x172a25['params']['id']}})['then'](handleEntityNotFound(_0x58dffa,null))['then'](saveUpdates(_0x172a25['body'],null))[_0x85cd('0x24')](respondWithResult(_0x58dffa,null))['catch'](handleError(_0x58dffa,null));};exports['destroy']=function(_0x5ca77c,_0x38ef4e){return db[_0x85cd('0x2b')][_0x85cd('0x48')]({'where':{'id':_0x5ca77c['params']['id']}})[_0x85cd('0x24')](handleEntityNotFound(_0x38ef4e,null))[_0x85cd('0x24')](removeEntity(_0x38ef4e,null))['catch'](handleError(_0x38ef4e,null));};exports['describe']=function(_0x250f50,_0x47f98d){return db[_0x85cd('0x2b')]['describe']()[_0x85cd('0x24')](respondWithResult(_0x47f98d,null))[_0x85cd('0x44')](handleError(_0x47f98d,null));};
\ No newline at end of file