Built motion from commit a61a4a20.|2.5.46
[motion2.git] / server / api / memberReport / memberReport.controller.js
index b8d433d..d49e74c 100644 (file)
@@ -15,4 +15,4 @@
 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                        *
 // *                                                                       *
 // *************************************************************************
-var _0x8855=['order','sort','pick','filter','where','merge','type','VIRTUAL','count','includeAll','include','findAll','rows','catch','show','params','keys','length','options','find','create','body','update','describe','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','sendStatus','end','status','json','offset','limit','set','Content-Range','reject','then','destroy','error','stack','name','send','index','map','MemberReport','rawAttributes','model','query','filters','intersection','attributes','fields'];(function(_0x1b1d3c,_0x554e8c){var _0x4ed334=function(_0x1eefe8){while(--_0x1eefe8){_0x1b1d3c['push'](_0x1b1d3c['shift']());}};_0x4ed334(++_0x554e8c);}(_0x8855,0xaa));var _0x5885=function(_0x48206b,_0x31e00c){_0x48206b=_0x48206b-0x0;var _0x217cf6=_0x8855[_0x48206b];return _0x217cf6;};'use strict';var pdf=require(_0x5885('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x5885('0x1'));var zipdir=require(_0x5885('0x2'));var jsonpatch=require(_0x5885('0x3'));var rp=require(_0x5885('0x4'));var moment=require(_0x5885('0x5'));var BPromise=require(_0x5885('0x6'));var Mustache=require(_0x5885('0x7'));var util=require(_0x5885('0x8'));var path=require(_0x5885('0x9'));var sox=require('sox');var csv=require('to-csv');var ejs=require(_0x5885('0xa'));var fs=require('fs');var _=require(_0x5885('0xb'));var squel=require(_0x5885('0xc'));var crypto=require(_0x5885('0xd'));var jsforce=require(_0x5885('0xe'));var deskjs=require(_0x5885('0xf'));var toCsv=require('to-csv');var querystring=require(_0x5885('0x10'));var Papa=require('papaparse');var Redis=require(_0x5885('0x11'));var authService=require(_0x5885('0x12'));var qs=require('../../components/parsers/qs');var as=require(_0x5885('0x13'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x5885('0x14'))('api');var utils=require(_0x5885('0x15'));var config=require(_0x5885('0x16'));var db=require(_0x5885('0x17'))['db'];function respondWithStatusCode(_0x23d9b3,_0x370cbc){_0x370cbc=_0x370cbc||0xcc;return function(_0x438dfb){if(_0x438dfb){return _0x23d9b3[_0x5885('0x18')](_0x370cbc);}return _0x23d9b3['status'](_0x370cbc)[_0x5885('0x19')]();};}function respondWithResult(_0x3c483e,_0x22397e){_0x22397e=_0x22397e||0xc8;return function(_0x49dc00){if(_0x49dc00){return _0x3c483e[_0x5885('0x1a')](_0x22397e)[_0x5885('0x1b')](_0x49dc00);}};}function respondWithFilteredResult(_0x483c9f,_0x174200){return function(_0x3212f1){if(_0x3212f1){var _0x3c9416=_0x3212f1['count'],_0x5a3d81=_0x174200[_0x5885('0x1c')],_0x34312a=_0x174200['offset']+_0x174200[_0x5885('0x1d')],_0x197016;if(_0x34312a>=_0x3c9416){_0x34312a=_0x3c9416;_0x197016=0xc8;}else{_0x197016=0xce;}_0x483c9f['status'](_0x197016);return _0x483c9f[_0x5885('0x1e')](_0x5885('0x1f'),_0x5a3d81+'-'+_0x34312a+'/'+_0x3c9416)[_0x5885('0x1b')](_0x3212f1);}return null;};}function patchUpdates(_0xa2d841){return function(_0x29ec92){try{jsonpatch['apply'](_0x29ec92,_0xa2d841,!![]);}catch(_0x725798){return BPromise[_0x5885('0x20')](_0x725798);}return _0x29ec92['save']();};}function saveUpdates(_0x19e73f,_0x2adca7){return function(_0x5df7a4){if(_0x5df7a4){return _0x5df7a4['update'](_0x19e73f)[_0x5885('0x21')](function(_0xae8cf0){return _0xae8cf0;});}return null;};}function removeEntity(_0x560ddc,_0x1a03b5){return function(_0x2d056d){if(_0x2d056d){return _0x2d056d[_0x5885('0x22')]()[_0x5885('0x21')](function(){_0x560ddc['status'](0xcc)[_0x5885('0x19')]();});}};}function handleEntityNotFound(_0x1b9db1,_0x7050fc){return function(_0x28e431){if(!_0x28e431){_0x1b9db1[_0x5885('0x18')](0x194);}return _0x28e431;};}function handleError(_0xf2fe9b,_0x5d5ccf){_0x5d5ccf=_0x5d5ccf||0x1f4;return function(_0x1e1a13){logger[_0x5885('0x23')](_0x1e1a13[_0x5885('0x24')]);if(_0x1e1a13[_0x5885('0x25')]){delete _0x1e1a13['name'];}_0xf2fe9b['status'](_0x5d5ccf)[_0x5885('0x26')](_0x1e1a13);};}exports[_0x5885('0x27')]=function(_0x59a437,_0x4a2b24){var _0x2aa9a7={},_0x539d15={},_0x1feeeb={'count':0x0,'rows':[]};var _0x297c30=_[_0x5885('0x28')](db[_0x5885('0x29')][_0x5885('0x2a')],function(_0x4c0d3c){return{'name':_0x4c0d3c['fieldName'],'type':_0x4c0d3c['type']['key']};});_0x539d15[_0x5885('0x2b')]=_[_0x5885('0x28')](_0x297c30,_0x5885('0x25'));_0x539d15['query']=_['keys'](_0x59a437[_0x5885('0x2c')]);_0x539d15[_0x5885('0x2d')]=_[_0x5885('0x2e')](_0x539d15['model'],_0x539d15[_0x5885('0x2c')]);_0x2aa9a7[_0x5885('0x2f')]=_[_0x5885('0x2e')](_0x539d15['model'],qs[_0x5885('0x30')](_0x59a437[_0x5885('0x2c')]['fields']));_0x2aa9a7[_0x5885('0x2f')]=_0x2aa9a7[_0x5885('0x2f')]['length']?_0x2aa9a7['attributes']:_0x539d15[_0x5885('0x2b')];if(!_0x59a437[_0x5885('0x2c')]['hasOwnProperty']('nolimit')){_0x2aa9a7[_0x5885('0x1d')]=qs[_0x5885('0x1d')](_0x59a437['query'][_0x5885('0x1d')]);_0x2aa9a7[_0x5885('0x1c')]=qs['offset'](_0x59a437['query']['offset']);}_0x2aa9a7[_0x5885('0x31')]=qs[_0x5885('0x32')](_0x59a437[_0x5885('0x2c')]['sort']);_0x2aa9a7['where']=qs['filters'](_[_0x5885('0x33')](_0x59a437[_0x5885('0x2c')],_0x539d15[_0x5885('0x2d')]));if(_0x59a437[_0x5885('0x2c')][_0x5885('0x34')]){_0x2aa9a7[_0x5885('0x35')]=_[_0x5885('0x36')](_0x2aa9a7[_0x5885('0x35')],{'$or':_[_0x5885('0x28')](_0x297c30,function(_0x46e4a0){if(_0x46e4a0[_0x5885('0x37')]!==_0x5885('0x38')){var _0x4d6362={};_0x4d6362[_0x46e4a0[_0x5885('0x25')]]={'$like':'%'+_0x59a437[_0x5885('0x2c')][_0x5885('0x34')]+'%'};return _0x4d6362;}})});}_0x2aa9a7=_['merge']({},_0x2aa9a7,_0x59a437['options']);var _0x51d4cb={'where':_0x2aa9a7[_0x5885('0x35')]};return db[_0x5885('0x29')]['count'](_0x51d4cb)[_0x5885('0x21')](function(_0x52fb03){_0x1feeeb[_0x5885('0x39')]=_0x52fb03;if(_0x59a437[_0x5885('0x2c')][_0x5885('0x3a')]){_0x2aa9a7[_0x5885('0x3b')]=[{'all':!![]}];}return db[_0x5885('0x29')][_0x5885('0x3c')](_0x2aa9a7);})[_0x5885('0x21')](function(_0x257020){_0x1feeeb[_0x5885('0x3d')]=_0x257020;return _0x1feeeb;})['then'](respondWithFilteredResult(_0x4a2b24,_0x2aa9a7))[_0x5885('0x3e')](handleError(_0x4a2b24,null));};exports[_0x5885('0x3f')]=function(_0x4dfd7c,_0x332976){var _0x49a5e4={'raw':!![],'where':{'id':_0x4dfd7c[_0x5885('0x40')]['id']}},_0x26588c={};_0x26588c[_0x5885('0x2b')]=_[_0x5885('0x41')](db['MemberReport'][_0x5885('0x2a')]);_0x26588c[_0x5885('0x2c')]=_[_0x5885('0x41')](_0x4dfd7c[_0x5885('0x2c')]);_0x26588c[_0x5885('0x2d')]=_[_0x5885('0x2e')](_0x26588c[_0x5885('0x2b')],_0x26588c[_0x5885('0x2c')]);_0x49a5e4[_0x5885('0x2f')]=_[_0x5885('0x2e')](_0x26588c[_0x5885('0x2b')],qs[_0x5885('0x30')](_0x4dfd7c[_0x5885('0x2c')][_0x5885('0x30')]));_0x49a5e4['attributes']=_0x49a5e4['attributes'][_0x5885('0x42')]?_0x49a5e4['attributes']:_0x26588c['model'];if(_0x4dfd7c['query']['includeAll']){_0x49a5e4[_0x5885('0x3b')]=[{'all':!![]}];}_0x49a5e4=_[_0x5885('0x36')]({},_0x49a5e4,_0x4dfd7c[_0x5885('0x43')]);return db[_0x5885('0x29')][_0x5885('0x44')](_0x49a5e4)['then'](handleEntityNotFound(_0x332976,null))['then'](respondWithResult(_0x332976,null))[_0x5885('0x3e')](handleError(_0x332976,null));};exports[_0x5885('0x45')]=function(_0xebb48c,_0x33a025){return db['MemberReport'][_0x5885('0x45')](_0xebb48c[_0x5885('0x46')],{})[_0x5885('0x21')](respondWithResult(_0x33a025,0xc9))[_0x5885('0x3e')](handleError(_0x33a025,null));};exports[_0x5885('0x47')]=function(_0x31a356,_0x92b33c){if(_0x31a356[_0x5885('0x46')]['id']){delete _0x31a356[_0x5885('0x46')]['id'];}return db['MemberReport'][_0x5885('0x44')]({'where':{'id':_0x31a356['params']['id']}})[_0x5885('0x21')](handleEntityNotFound(_0x92b33c,null))[_0x5885('0x21')](saveUpdates(_0x31a356[_0x5885('0x46')],null))[_0x5885('0x21')](respondWithResult(_0x92b33c,null))['catch'](handleError(_0x92b33c,null));};exports[_0x5885('0x22')]=function(_0x432dfe,_0x165365){return db[_0x5885('0x29')][_0x5885('0x44')]({'where':{'id':_0x432dfe[_0x5885('0x40')]['id']}})[_0x5885('0x21')](handleEntityNotFound(_0x165365,null))[_0x5885('0x21')](removeEntity(_0x165365,null))[_0x5885('0x3e')](handleError(_0x165365,null));};exports[_0x5885('0x48')]=function(_0xc49365,_0x3d665d){return db[_0x5885('0x29')]['describe']()[_0x5885('0x21')](respondWithResult(_0x3d665d,null))[_0x5885('0x3e')](handleError(_0x3d665d,null));};
\ No newline at end of file
+var _0x34e8=['path','sox','to-csv','fs-extra','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','sendStatus','status','end','undefined','limit','count','offset','set','Content-Range','json','apply','reject','save','update','then','destroy','error','stack','name','map','MemberReport','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','sort','where','pick','filter','merge','options','includeAll','catch','show','params','keys','include','find','create','body','describe','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util'];(function(_0x4c7fb5,_0x2548ef){var _0x2e10ac=function(_0xf7e27c){while(--_0xf7e27c){_0x4c7fb5['push'](_0x4c7fb5['shift']());}};_0x2e10ac(++_0x2548ef);}(_0x34e8,0x12c));var _0x834e=function(_0x2da598,_0x565177){_0x2da598=_0x2da598-0x0;var _0x1ddcf3=_0x34e8[_0x2da598];return _0x1ddcf3;};'use strict';var emlformat=require(_0x834e('0x0'));var rimraf=require(_0x834e('0x1'));var zipdir=require(_0x834e('0x2'));var jsonpatch=require(_0x834e('0x3'));var rp=require('request-promise');var moment=require(_0x834e('0x4'));var BPromise=require(_0x834e('0x5'));var Mustache=require(_0x834e('0x6'));var util=require(_0x834e('0x7'));var path=require(_0x834e('0x8'));var sox=require(_0x834e('0x9'));var csv=require(_0x834e('0xa'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0x834e('0xb'));var _=require('lodash');var squel=require(_0x834e('0xc'));var crypto=require(_0x834e('0xd'));var jsforce=require(_0x834e('0xe'));var deskjs=require(_0x834e('0xf'));var toCsv=require(_0x834e('0xa'));var querystring=require(_0x834e('0x10'));var Papa=require(_0x834e('0x11'));var Redis=require(_0x834e('0x12'));var authService=require(_0x834e('0x13'));var qs=require(_0x834e('0x14'));var as=require(_0x834e('0x15'));var hardwareService=require(_0x834e('0x16'));var logger=require(_0x834e('0x17'))(_0x834e('0x18'));var utils=require(_0x834e('0x19'));var config=require(_0x834e('0x1a'));var licenseUtil=require(_0x834e('0x1b'));var db=require('../../mysqldb')['db'];function respondWithStatusCode(_0x5e5b6d,_0x6cd9b9){_0x6cd9b9=_0x6cd9b9||0xcc;return function(_0x58a27e){if(_0x58a27e){return _0x5e5b6d[_0x834e('0x1c')](_0x6cd9b9);}return _0x5e5b6d[_0x834e('0x1d')](_0x6cd9b9)[_0x834e('0x1e')]();};}function respondWithResult(_0x21cc0a,_0x50e860){_0x50e860=_0x50e860||0xc8;return function(_0x43156c){if(_0x43156c){return _0x21cc0a[_0x834e('0x1d')](_0x50e860)['json'](_0x43156c);}};}function respondWithFilteredResult(_0x316205,_0x4a9cdc){return function(_0x38a8cd){if(_0x38a8cd){var _0x36d443=typeof _0x4a9cdc['offset']===_0x834e('0x1f')&&typeof _0x4a9cdc[_0x834e('0x20')]===_0x834e('0x1f');var _0x50b3f6=_0x38a8cd[_0x834e('0x21')];var _0x211e9a=_0x36d443?0x0:_0x4a9cdc[_0x834e('0x22')];var _0xb993a1=_0x36d443?_0x38a8cd[_0x834e('0x21')]:_0x4a9cdc[_0x834e('0x22')]+_0x4a9cdc[_0x834e('0x20')];var _0x595515;if(_0xb993a1>=_0x50b3f6){_0xb993a1=_0x50b3f6;_0x595515=0xc8;}else{_0x595515=0xce;}_0x316205[_0x834e('0x1d')](_0x595515);return _0x316205[_0x834e('0x23')](_0x834e('0x24'),_0x211e9a+'-'+_0xb993a1+'/'+_0x50b3f6)[_0x834e('0x25')](_0x38a8cd);}return null;};}function patchUpdates(_0x4ab05d){return function(_0x45a630){try{jsonpatch[_0x834e('0x26')](_0x45a630,_0x4ab05d,!![]);}catch(_0x5a05c0){return BPromise[_0x834e('0x27')](_0x5a05c0);}return _0x45a630[_0x834e('0x28')]();};}function saveUpdates(_0x8d406e,_0x5c55ca){return function(_0x4e3f48){if(_0x4e3f48){return _0x4e3f48[_0x834e('0x29')](_0x8d406e)[_0x834e('0x2a')](function(_0x589dde){return _0x589dde;});}return null;};}function removeEntity(_0x25ee1d,_0x1dc1e0){return function(_0x58f4fd){if(_0x58f4fd){return _0x58f4fd[_0x834e('0x2b')]()[_0x834e('0x2a')](function(){_0x25ee1d[_0x834e('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x24fcf7,_0x3e310f){return function(_0x5e1cc5){if(!_0x5e1cc5){_0x24fcf7['sendStatus'](0x194);}return _0x5e1cc5;};}function handleError(_0x1e713a,_0x508a1d){_0x508a1d=_0x508a1d||0x1f4;return function(_0x2826ec){logger[_0x834e('0x2c')](_0x2826ec[_0x834e('0x2d')]);if(_0x2826ec[_0x834e('0x2e')]){delete _0x2826ec[_0x834e('0x2e')];}_0x1e713a[_0x834e('0x1d')](_0x508a1d)['send'](_0x2826ec);};}exports['index']=function(_0x4dc64a,_0x58c1d7){var _0x2c7a8d={},_0x567cea={},_0x106d6a={'count':0x0,'rows':[]};var _0x5dacc1=_[_0x834e('0x2f')](db[_0x834e('0x30')][_0x834e('0x31')],function(_0x1e026a){return{'name':_0x1e026a[_0x834e('0x32')],'type':_0x1e026a[_0x834e('0x33')][_0x834e('0x34')]};});_0x567cea[_0x834e('0x35')]=_[_0x834e('0x2f')](_0x5dacc1,'name');_0x567cea[_0x834e('0x36')]=_['keys'](_0x4dc64a[_0x834e('0x36')]);_0x567cea[_0x834e('0x37')]=_[_0x834e('0x38')](_0x567cea[_0x834e('0x35')],_0x567cea[_0x834e('0x36')]);_0x2c7a8d[_0x834e('0x39')]=_[_0x834e('0x38')](_0x567cea[_0x834e('0x35')],qs[_0x834e('0x3a')](_0x4dc64a[_0x834e('0x36')]['fields']));_0x2c7a8d[_0x834e('0x39')]=_0x2c7a8d[_0x834e('0x39')][_0x834e('0x3b')]?_0x2c7a8d[_0x834e('0x39')]:_0x567cea['model'];if(!_0x4dc64a[_0x834e('0x36')][_0x834e('0x3c')]('nolimit')){_0x2c7a8d['limit']=qs['limit'](_0x4dc64a[_0x834e('0x36')][_0x834e('0x20')]);_0x2c7a8d[_0x834e('0x22')]=qs[_0x834e('0x22')](_0x4dc64a[_0x834e('0x36')][_0x834e('0x22')]);}_0x2c7a8d['order']=qs[_0x834e('0x3d')](_0x4dc64a['query'][_0x834e('0x3d')]);_0x2c7a8d[_0x834e('0x3e')]=qs['filters'](_[_0x834e('0x3f')](_0x4dc64a[_0x834e('0x36')],_0x567cea['filters']),_0x5dacc1);if(_0x4dc64a['query'][_0x834e('0x40')]){_0x2c7a8d[_0x834e('0x3e')]=_[_0x834e('0x41')](_0x2c7a8d[_0x834e('0x3e')],{'$or':_[_0x834e('0x2f')](_0x5dacc1,function(_0x4ca43c){if(_0x4ca43c[_0x834e('0x33')]!=='VIRTUAL'){var _0x50c243={};_0x50c243[_0x4ca43c[_0x834e('0x2e')]]={'$like':'%'+_0x4dc64a['query'][_0x834e('0x40')]+'%'};return _0x50c243;}})});}_0x2c7a8d=_[_0x834e('0x41')]({},_0x2c7a8d,_0x4dc64a[_0x834e('0x42')]);var _0x3c59af={'where':_0x2c7a8d[_0x834e('0x3e')]};return db['MemberReport'][_0x834e('0x21')](_0x3c59af)[_0x834e('0x2a')](function(_0x38f266){_0x106d6a['count']=_0x38f266;if(_0x4dc64a[_0x834e('0x36')][_0x834e('0x43')]){_0x2c7a8d['include']=[{'all':!![]}];}return db[_0x834e('0x30')]['findAll'](_0x2c7a8d);})[_0x834e('0x2a')](function(_0x585335){_0x106d6a['rows']=_0x585335;return _0x106d6a;})['then'](respondWithFilteredResult(_0x58c1d7,_0x2c7a8d))[_0x834e('0x44')](handleError(_0x58c1d7,null));};exports[_0x834e('0x45')]=function(_0x3bcbf4,_0xbc1571){var _0x8ad264={'raw':!![],'where':{'id':_0x3bcbf4[_0x834e('0x46')]['id']}},_0x23feea={};_0x23feea['model']=_[_0x834e('0x47')](db['MemberReport'][_0x834e('0x31')]);_0x23feea['query']=_[_0x834e('0x47')](_0x3bcbf4['query']);_0x23feea[_0x834e('0x37')]=_[_0x834e('0x38')](_0x23feea['model'],_0x23feea[_0x834e('0x36')]);_0x8ad264[_0x834e('0x39')]=_[_0x834e('0x38')](_0x23feea[_0x834e('0x35')],qs[_0x834e('0x3a')](_0x3bcbf4[_0x834e('0x36')][_0x834e('0x3a')]));_0x8ad264[_0x834e('0x39')]=_0x8ad264[_0x834e('0x39')][_0x834e('0x3b')]?_0x8ad264['attributes']:_0x23feea[_0x834e('0x35')];if(_0x3bcbf4[_0x834e('0x36')]['includeAll']){_0x8ad264[_0x834e('0x48')]=[{'all':!![]}];}_0x8ad264=_[_0x834e('0x41')]({},_0x8ad264,_0x3bcbf4[_0x834e('0x42')]);return db[_0x834e('0x30')][_0x834e('0x49')](_0x8ad264)[_0x834e('0x2a')](handleEntityNotFound(_0xbc1571,null))['then'](respondWithResult(_0xbc1571,null))['catch'](handleError(_0xbc1571,null));};exports[_0x834e('0x4a')]=function(_0x1a5444,_0x30568e){return db[_0x834e('0x30')][_0x834e('0x4a')](_0x1a5444[_0x834e('0x4b')],{})[_0x834e('0x2a')](respondWithResult(_0x30568e,0xc9))[_0x834e('0x44')](handleError(_0x30568e,null));};exports[_0x834e('0x29')]=function(_0x390c45,_0xf02f0d){if(_0x390c45[_0x834e('0x4b')]['id']){delete _0x390c45[_0x834e('0x4b')]['id'];}return db[_0x834e('0x30')][_0x834e('0x49')]({'where':{'id':_0x390c45[_0x834e('0x46')]['id']}})[_0x834e('0x2a')](handleEntityNotFound(_0xf02f0d,null))[_0x834e('0x2a')](saveUpdates(_0x390c45[_0x834e('0x4b')],null))[_0x834e('0x2a')](respondWithResult(_0xf02f0d,null))['catch'](handleError(_0xf02f0d,null));};exports[_0x834e('0x2b')]=function(_0x1f08b9,_0x4e73e0){return db[_0x834e('0x30')][_0x834e('0x49')]({'where':{'id':_0x1f08b9['params']['id']}})[_0x834e('0x2a')](handleEntityNotFound(_0x4e73e0,null))[_0x834e('0x2a')](removeEntity(_0x4e73e0,null))[_0x834e('0x44')](handleError(_0x4e73e0,null));};exports[_0x834e('0x4c')]=function(_0x4288e4,_0xb77aab){return db[_0x834e('0x30')]['describe']()[_0x834e('0x2a')](respondWithResult(_0xb77aab,null))[_0x834e('0x44')](handleError(_0xb77aab,null));};
\ No newline at end of file