Built motion from commit eeb7beacd.|1.0.21
[motion.git] / server / api / openchannel_queue / openchannel_queue.controller.js
index ee89649..93cb21b 100644 (file)
@@ -1 +1 @@
-var _0x8207=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72\x48\x61\x73\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73\x49\x64\x42\x79\x55\x73\x65\x72","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x72\x6F\x6C\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x61\x67\x65\x6E\x74\x73","\x62\x6F\x64\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x55\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x20\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x65\x72\x72","\x65\x72\x72\x6F\x72","\x71\x75\x65\x75\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0x8207[0];var _=require(_0x8207[1]);var Util=require(_0x8207[2]);var OpenchannelQueue=require(_0x8207[4])[_0x8207[3]];var User=require(_0x8207[4])[_0x8207[5]];var sequelize=require(_0x8207[4])[_0x8207[6]];var UserHasOpenchannelQueue=require(_0x8207[4])[_0x8207[7]];function handleError(_0xc948x8,_0xc948x9){return _0xc948x8[_0x8207[9]](500)[_0x8207[8]](_0xc948x9)}exports[_0x8207[10]]= function(_0xc948xa,_0xc948x8){switch(_0xc948xa[_0x8207[16]][_0x8207[23]]){case _0x8207[16]:return User[_0x8207[17]](_0xc948xa[_0x8207[16]][_0x8207[15]],{attributes:[_0x8207[15]]})[_0x8207[12]](Util[_0x8207[14]](_0xc948xa[_0x8207[13]]))[_0x8207[12]](function(_0xc948xb){_0xc948x8[_0x8207[9]](200)[_0x8207[8]](_0xc948xb)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)});default:return OpenchannelQueue[_0x8207[22]](_0x8207[21])[_0x8207[20]](_[_0x8207[19]](Util[_0x8207[18]](_0xc948xa[_0x8207[13]]),{distinct:true}))[_0x8207[12]](function(_0xc948xb){_0xc948x8[_0x8207[9]](200)[_0x8207[8]](_0xc948xb)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})}};exports[_0x8207[24]]= function(_0xc948xa,_0xc948x8){return OpenchannelQueue[_0x8207[22]](_0x8207[21])[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xc){if(!_0xc948xc){return _0xc948x8[_0x8207[25]](404)};return _0xc948x8[_0x8207[8]](_0xc948xc)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[27]]= function(_0xc948xa,_0xc948x8){return OpenchannelQueue[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xe){if(!_0xc948xe){return _0xc948x8[_0x8207[25]](404)};return _0xc948xe[_0x8207[33]]({where:{role:_0x8207[29]},attributes:[_0x8207[15],_0x8207[30],_0x8207[31],_0x8207[32]]})})[_0x8207[12]](function(_0xc948xd){return _0xc948x8[_0x8207[9]](200)[_0x8207[8]]({rows:_0xc948xd,count:_0xc948xd[_0x8207[28]]})})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[34]]= function(_0xc948xa,_0xc948x8){var _0xc948xf;return OpenchannelQueue[_0x8207[34]](_0xc948xa[_0x8207[38]])[_0x8207[12]](function(_0xc948x10){_0xc948xf= _0xc948x10;if(_0xc948xa[_0x8207[38]][_0x8207[37]]){return _0xc948xf[_0x8207[40]](_0xc948xa[_0x8207[38]][_0x8207[37]],{penalty:_0xc948xa[_0x8207[38]][_0x8207[39]]|| 0,queue:_0xc948xf[_0x8207[30]]})}})[_0x8207[12]](function(){return _0xc948x8[_0x8207[9]](201)[_0x8207[8]](_0xc948xf)})[_0x8207[11]](sequelize.UniqueConstraintError,function(_0xc948x9){return Util[_0x8207[36]][_0x8207[35]](_0xc948x8,_0xc948x9)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[41]]= function(_0xc948xa,_0xc948x8){if(_0xc948xa[_0x8207[38]][_0x8207[15]]){delete _0xc948xa[_0x8207[38]][_0x8207[15]]};return OpenchannelQueue[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xc){if(!_0xc948xc){return _0xc948x8[_0x8207[25]](404)};var _0xc948x11=_[_0x8207[19]](_0xc948xc,_0xc948xa[_0x8207[38]]);return _0xc948x11[_0x8207[42]]()})[_0x8207[12]](function(_0xc948xc){return _0xc948x8[_0x8207[9]](200)[_0x8207[8]](_0xc948xc)})[_0x8207[11]](sequelize.UniqueConstraintError,function(_0xc948x9){return Util[_0x8207[36]][_0x8207[35]](_0xc948x8,_0xc948x9)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[43]]= function(_0xc948xa,_0xc948x8,_0xc948x12){return OpenchannelQueue[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xc){if(!_0xc948xc){return _0xc948x8[_0x8207[25]](404)};var _0xc948x13=_[_0x8207[44]](_0xc948xa[_0x8207[38]][_0x8207[37]],function(_0xc948x14){return {UserId:_0xc948x14,penalty:_0xc948xa[_0x8207[38]][_0x8207[39]],OpenchannelQueueId:_0xc948xc[_0x8207[15]],queue:_0xc948xc[_0x8207[30]]}});return UserHasOpenchannelQueue[_0x8207[45]](_0xc948x13,{individualHooks:true})})[_0x8207[12]](function(){return _0xc948x8[_0x8207[25]](200)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[46]]= function(_0xc948xa,_0xc948x8){return OpenchannelQueue[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xc){if(_0xc948xc){return _0xc948xc[_0x8207[47]](_0xc948xa[_0x8207[13]][_0x8207[37]],{individualHooks:true})}else {throw  new Error(_0x8207[48])}})[_0x8207[12]](function(){return _0xc948x8[_0x8207[25]](202)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[49]]= function(_0xc948xa,_0xc948x8){var _0xc948x15;return OpenchannelQueue[_0x8207[17]](_0xc948xa[_0x8207[26]][_0x8207[15]])[_0x8207[12]](function(_0xc948xc){_0xc948x15= _0xc948xc;if(!_0xc948xc){return _0xc948x8[_0x8207[25]](404)};return _0xc948xc[_0x8207[49]]()})[_0x8207[12]](function(){return _0xc948x8[_0x8207[25]](204)})[_0x8207[11]](sequelize.ForeignKeyConstraintError,function(_0xc948x9){return Util[_0x8207[36]][_0x8207[53]](_0xc948x8,_0x8207[52],_0xc948x15[_0x8207[30]],_0xc948x9)})[_0x8207[11]](function(_0xc948x9){console[_0x8207[51]](_0x8207[50],_0xc948x9);return handleError(_0xc948x8,_0xc948x9)})};exports[_0x8207[54]]= function(_0xc948xa,_0xc948x8){return OpenchannelQueue[_0x8207[49]]({where:{id:_0xc948xa[_0x8207[13]][_0x8207[55]]},individualHooks:true})[_0x8207[12]](function(){return _0xc948x8[_0x8207[25]](204)})[_0x8207[11]](function(_0xc948x9){return handleError(_0xc948x8,_0xc948x9)})}
\ No newline at end of file
+var _0xab83=["\x75\x73\x65\x20\x73\x74\x72\x69\x63\x74","\x6C\x6F\x64\x61\x73\x68","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x75\x74\x69\x6C","\x61\x70\x69","\x2E\x2E\x2F\x2E\x2E\x2F\x63\x6F\x6E\x66\x69\x67\x2F\x6C\x6F\x67\x67\x65\x72\x2E\x6A\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x2E\x2E\x2F\x2E\x2E\x2F\x6D\x6F\x64\x65\x6C\x73","\x55\x73\x65\x72","\x73\x65\x71\x75\x65\x6C\x69\x7A\x65","\x55\x73\x65\x72\x48\x61\x73\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65","\x73\x74\x61\x63\x6B","\x65\x72\x72\x6F\x72","\x73\x65\x6E\x64","\x73\x74\x61\x74\x75\x73","\x69\x6E\x64\x65\x78","\x63\x61\x74\x63\x68","\x74\x68\x65\x6E","\x71\x75\x65\x72\x79","\x67\x65\x74\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x51\x75\x65\x75\x65\x73\x49\x64\x42\x79\x55\x73\x65\x72","\x69\x64","\x75\x73\x65\x72","\x66\x69\x6E\x64\x42\x79\x49\x64","\x67\x65\x74\x51\x75\x65\x72\x79","\x6D\x65\x72\x67\x65","\x66\x69\x6E\x64\x41\x6E\x64\x43\x6F\x75\x6E\x74\x41\x6C\x6C","\x64\x65\x66\x61\x75\x6C\x74","\x73\x63\x6F\x70\x65","\x72\x6F\x6C\x65","\x73\x68\x6F\x77","\x73\x65\x6E\x64\x53\x74\x61\x74\x75\x73","\x70\x61\x72\x61\x6D\x73","\x73\x68\x6F\x77\x41\x67\x65\x6E\x74\x73","\x6C\x65\x6E\x67\x74\x68","\x61\x67\x65\x6E\x74","\x6E\x61\x6D\x65","\x66\x75\x6C\x6C\x6E\x61\x6D\x65","\x65\x6D\x61\x69\x6C","\x67\x65\x74\x55\x73\x65\x72\x73","\x63\x72\x65\x61\x74\x65","\x68\x61\x6E\x64\x6C\x65\x55\x6E\x69\x71\x75\x65\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x65\x72\x72\x6F\x72\x4D\x61\x6E\x61\x67\x65\x72","\x61\x67\x65\x6E\x74\x73","\x62\x6F\x64\x79","\x70\x65\x6E\x61\x6C\x74\x79","\x61\x64\x64\x55\x73\x65\x72\x73","\x75\x70\x64\x61\x74\x65","\x73\x61\x76\x65","\x61\x64\x64\x41\x67\x65\x6E\x74\x73","\x6D\x61\x70","\x62\x75\x6C\x6B\x43\x72\x65\x61\x74\x65","\x72\x65\x6D\x6F\x76\x65\x41\x67\x65\x6E\x74\x73","\x72\x65\x6D\x6F\x76\x65\x55\x73\x65\x72\x73","\x4F\x70\x65\x6E\x63\x68\x61\x6E\x6E\x65\x6C\x20\x51\x75\x65\x75\x65\x20\x6E\x6F\x74\x20\x66\x6F\x75\x6E\x64","\x64\x65\x73\x74\x72\x6F\x79","\x71\x75\x65\x75\x65","\x68\x61\x6E\x64\x6C\x65\x46\x6F\x72\x65\x69\x67\x6E\x4B\x65\x79\x43\x6F\x6E\x73\x74\x72\x61\x69\x6E\x74\x45\x72\x72\x6F\x72","\x62\x75\x6C\x6B\x44\x65\x73\x74\x72\x6F\x79","\x69\x64\x73"];_0xab83[0];var _=require(_0xab83[1]);var Util=require(_0xab83[2]);var logger=require(_0xab83[4])(_0xab83[3]);var OpenchannelQueue=require(_0xab83[6])[_0xab83[5]];var User=require(_0xab83[6])[_0xab83[7]];var sequelize=require(_0xab83[6])[_0xab83[8]];var UserHasOpenchannelQueue=require(_0xab83[6])[_0xab83[9]];function handleError(_0x45b1x9,_0x45b1xa){logger[_0xab83[11]](_0x45b1xa[_0xab83[10]]);return _0x45b1x9[_0xab83[13]](500)[_0xab83[12]](_0x45b1xa)}exports[_0xab83[14]]= function(_0x45b1xb,_0x45b1x9){switch(_0x45b1xb[_0xab83[20]][_0xab83[27]]){case _0xab83[20]:return User[_0xab83[21]](_0x45b1xb[_0xab83[20]][_0xab83[19]],{attributes:[_0xab83[19]]})[_0xab83[16]](Util[_0xab83[18]](_0x45b1xb[_0xab83[17]]))[_0xab83[16]](function(_0x45b1xc){_0x45b1x9[_0xab83[13]](200)[_0xab83[12]](_0x45b1xc)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)});default:return OpenchannelQueue[_0xab83[26]](_0xab83[25])[_0xab83[24]](_[_0xab83[23]](Util[_0xab83[22]](_0x45b1xb[_0xab83[17]]),{distinct:true}))[_0xab83[16]](function(_0x45b1xc){_0x45b1x9[_0xab83[13]](200)[_0xab83[12]](_0x45b1xc)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})}};exports[_0xab83[28]]= function(_0x45b1xb,_0x45b1x9){return OpenchannelQueue[_0xab83[26]](_0xab83[25])[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xd){if(!_0x45b1xd){return _0x45b1x9[_0xab83[29]](404)};return _0x45b1x9[_0xab83[12]](_0x45b1xd)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[31]]= function(_0x45b1xb,_0x45b1x9){return OpenchannelQueue[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xf){if(!_0x45b1xf){return _0x45b1x9[_0xab83[29]](404)};return _0x45b1xf[_0xab83[37]]({where:{role:_0xab83[33]},attributes:[_0xab83[19],_0xab83[34],_0xab83[35],_0xab83[36]]})})[_0xab83[16]](function(_0x45b1xe){return _0x45b1x9[_0xab83[13]](200)[_0xab83[12]]({rows:_0x45b1xe,count:_0x45b1xe[_0xab83[32]]})})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[38]]= function(_0x45b1xb,_0x45b1x9){var _0x45b1x10;return OpenchannelQueue[_0xab83[38]](_0x45b1xb[_0xab83[42]])[_0xab83[16]](function(_0x45b1x11){_0x45b1x10= _0x45b1x11;if(_0x45b1xb[_0xab83[42]][_0xab83[41]]){return _0x45b1x10[_0xab83[44]](_0x45b1xb[_0xab83[42]][_0xab83[41]],{penalty:_0x45b1xb[_0xab83[42]][_0xab83[43]]|| 0,queue:_0x45b1x10[_0xab83[34]]})}})[_0xab83[16]](function(){return _0x45b1x9[_0xab83[13]](201)[_0xab83[12]](_0x45b1x10)})[_0xab83[15]](sequelize.UniqueConstraintError,function(_0x45b1xa){return Util[_0xab83[40]][_0xab83[39]](_0x45b1x9,_0x45b1xa)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[45]]= function(_0x45b1xb,_0x45b1x9){if(_0x45b1xb[_0xab83[42]][_0xab83[19]]){delete _0x45b1xb[_0xab83[42]][_0xab83[19]]};return OpenchannelQueue[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xd){if(!_0x45b1xd){return _0x45b1x9[_0xab83[29]](404)};var _0x45b1x12=_[_0xab83[23]](_0x45b1xd,_0x45b1xb[_0xab83[42]]);return _0x45b1x12[_0xab83[46]]()})[_0xab83[16]](function(_0x45b1xd){return _0x45b1x9[_0xab83[13]](200)[_0xab83[12]](_0x45b1xd)})[_0xab83[15]](sequelize.UniqueConstraintError,function(_0x45b1xa){return Util[_0xab83[40]][_0xab83[39]](_0x45b1x9,_0x45b1xa)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[47]]= function(_0x45b1xb,_0x45b1x9,_0x45b1x13){return OpenchannelQueue[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xd){if(!_0x45b1xd){return _0x45b1x9[_0xab83[29]](404)};var _0x45b1x14=_[_0xab83[48]](_0x45b1xb[_0xab83[42]][_0xab83[41]],function(_0x45b1x15){return {UserId:_0x45b1x15,penalty:_0x45b1xb[_0xab83[42]][_0xab83[43]],OpenchannelQueueId:_0x45b1xd[_0xab83[19]],queue:_0x45b1xd[_0xab83[34]]}});return UserHasOpenchannelQueue[_0xab83[49]](_0x45b1x14,{individualHooks:true})})[_0xab83[16]](function(){return _0x45b1x9[_0xab83[29]](200)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[50]]= function(_0x45b1xb,_0x45b1x9){return OpenchannelQueue[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xd){if(_0x45b1xd){return _0x45b1xd[_0xab83[51]](_0x45b1xb[_0xab83[17]][_0xab83[41]],{individualHooks:true})}else {throw  new Error(_0xab83[52])}})[_0xab83[16]](function(){return _0x45b1x9[_0xab83[29]](202)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[53]]= function(_0x45b1xb,_0x45b1x9){var _0x45b1x16;return OpenchannelQueue[_0xab83[21]](_0x45b1xb[_0xab83[30]][_0xab83[19]])[_0xab83[16]](function(_0x45b1xd){_0x45b1x16= _0x45b1xd;if(!_0x45b1xd){return _0x45b1x9[_0xab83[29]](404)};return _0x45b1xd[_0xab83[53]]()})[_0xab83[16]](function(){return _0x45b1x9[_0xab83[29]](204)})[_0xab83[15]](sequelize.ForeignKeyConstraintError,function(_0x45b1xa){return Util[_0xab83[40]][_0xab83[55]](_0x45b1x9,_0xab83[54],_0x45b1x16[_0xab83[34]],_0x45b1xa)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})};exports[_0xab83[56]]= function(_0x45b1xb,_0x45b1x9){return OpenchannelQueue[_0xab83[53]]({where:{id:_0x45b1xb[_0xab83[17]][_0xab83[57]]},individualHooks:true})[_0xab83[16]](function(){return _0x45b1x9[_0xab83[29]](204)})[_0xab83[15]](function(_0x45b1xa){return handleError(_0x45b1x9,_0x45b1xa)})}
\ No newline at end of file