OverviewFilesCommitsIssuesDocsReleasesPeers

holepunchto-deps / @holepunchto / keet-store / store / media / media-permissions.saga.js

1 lines · javascript ref:
(function(_0x261514,_0x5e89a){const _0x321fa1={_0x148674:0x1cc,_0x362cc2:0x1b6,_0x553d9a:0x312,_0x4570b8:0x31b,_0xb19a40:0x30b,_0x25b218:0x2fe,_0x2a9ce4:0x311,_0x5ca5e9:0x30d,_0x16e5c0:0x300,_0x3facc3:0x315,_0xced54:0x31a,_0x5a7264:0x1b7,_0x4aa2e1:0x313,_0x1d5af9:0x31c,_0xbedaee:0x307,_0x4a8f46:0x316,_0x3c49b3:0x312,_0x63727e:0x323,_0x2ddb2e:0x315,_0x22a8dc:0x30c,_0x209cf6:0x2fc,_0x4cf6f3:0x303},_0x3e59e5={_0x5af7c4:0x198},_0x4a0e1f={_0x46bb11:0x341};function _0x4311b0(_0x36ca2b,_0x2d10a2,_0x31c481,_0x2b3ef4){return _0x23cd(_0x36ca2b- -_0x4a0e1f._0x46bb11,_0x2b3ef4);}const _0x849cb2=_0x261514();function _0x54d397(_0x141b31,_0x32fa16,_0x5eefcf,_0x4cca22){return _0x23cd(_0x4cca22-_0x3e59e5._0x5af7c4,_0x141b31);}while(!![]){try{const _0x5b592b=parseInt(_0x4311b0(-0x1c0,-_0x321fa1._0x148674,-_0x321fa1._0x362cc2,-0x1cf))/(0x4be+-0x86a*-0x1+0x5b*-0x25)+-parseInt(_0x54d397(_0x321fa1._0x553d9a,_0x321fa1._0x4570b8,0x30b,_0x321fa1._0xb19a40))/(-0x1df*-0xb+-0x1424*0x1+-0x6f)+-parseInt(_0x54d397(_0x321fa1._0x25b218,_0x321fa1._0x2a9ce4,_0x321fa1._0x5ca5e9,_0x321fa1._0x16e5c0))/(-0x1b*-0x3e+-0xcb3*-0x3+-0x2ca0)+parseInt(_0x54d397(0x31d,0x30d,_0x321fa1._0x3facc3,_0x321fa1._0xced54))/(-0x1*0x224f+-0x47*-0x19+0x1b64*0x1)+-parseInt(_0x4311b0(-0x1c1,-0x1c9,-_0x321fa1._0x5a7264,-_0x321fa1._0x362cc2))/(-0x59f+-0x9ef*0x1+-0x1bb*-0x9)*(-parseInt(_0x54d397(0x318,_0x321fa1._0x4aa2e1,0x31d,_0x321fa1._0x1d5af9))/(0x12a9+-0x207d+-0x9*-0x18a))+-parseInt(_0x54d397(_0x321fa1._0xbedaee,0x313,_0x321fa1._0x4a8f46,0x30e))/(-0x114c+-0x248a+-0x35dd*-0x1)*(parseInt(_0x54d397(0x30f,_0x321fa1._0x3c49b3,0x301,0x30f))/(0xb37+-0x13d2+0x8a3))+-parseInt(_0x54d397(_0x321fa1._0x63727e,_0x321fa1._0x5ca5e9,_0x321fa1._0x5ca5e9,_0x321fa1._0x2ddb2e))/(0x26fc+-0x35e+0x2395*-0x1)*(-parseInt(_0x54d397(0x312,_0x321fa1._0x22a8dc,_0x321fa1._0x209cf6,_0x321fa1._0x4cf6f3))/(-0x1*0x301+-0x56*0x6f+0x2855));if(_0x5b592b===_0x5e89a)break;else _0x849cb2['push'](_0x849cb2['shift']());}catch(_0x68aafa){_0x849cb2['push'](_0x849cb2['shift']());}}}(_0x5e1a,-0x2b1c1*0x3+-0x2*0x7092d+0x24349b));function _0x5e1a(){const _0x50628d=['screen','140uWrihe','nShareSaga','cacheAllMe','rophonePer','ions','sionDenied','Modal','search','581966ihBVfL','checkMicro','CAMERA','7iACIfQ','389488tUIqNZ','missionSag','constructo','checkScree','toString','camera','68652NietTL','requestMic','aPermissio','55yovQvc','1689286lGKETU','377668akuZQt','MICROPHONE','485382JxNbBq','SCREEN_SHA','status','microphone','access','4559589kPoyHO','(((.+)+)+)'];_0x5e1a=function(){return _0x50628d;};return _0x5e1a();}const _0x224fb6=(function(){let _0x17fa91=!![];return function(_0x1da705,_0x5da314){const _0x373491=_0x17fa91?function(){if(_0x5da314){const _0x4f6c1c=_0x5da314['apply'](_0x1da705,arguments);return _0x5da314=null,_0x4f6c1c;}}:function(){};return _0x17fa91=![],_0x373491;};}()),_0x4b68b7=_0x224fb6(this,function(){const _0x4d1130={_0x307947:0x10a,_0x3e0c6f:0xfc,_0x2e0fa2:0x36b,_0x5980a8:0x376,_0x101991:0x36d,_0x1dcf5c:0x36f,_0x1dd955:0x378,_0x232c9b:0x364,_0x1bebc4:0xf8,_0x4c15ac:0xfa,_0x67f205:0xfe,_0x23737d:0xee};function _0x403c1f(_0x30b705,_0x2fda20,_0x389558,_0x465366){return _0x23cd(_0x30b705- -0x71,_0x465366);}function _0x2b1151(_0x3a7633,_0x1d82b6,_0x5b8517,_0x338498){return _0x23cd(_0x5b8517-0x1fd,_0x3a7633);}return _0x4b68b7[_0x403c1f(_0x4d1130._0x307947,0x104,0x10a,_0x4d1130._0x3e0c6f)]()['search']('(((.+)+)+)'+'+$')['toString']()[_0x2b1151(_0x4d1130._0x2e0fa2,0x369,_0x4d1130._0x5980a8,_0x4d1130._0x101991)+'r'](_0x4b68b7)[_0x2b1151(_0x4d1130._0x1dcf5c,_0x4d1130._0x1dd955,0x36f,_0x4d1130._0x232c9b)](_0x403c1f(_0x4d1130._0x1bebc4,_0x4d1130._0x4c15ac,_0x4d1130._0x67f205,_0x4d1130._0x23737d)+'+$');});_0x4b68b7();import{put,all,call,select,getContext}from'redux-saga/effects';function _0x23cd(_0x30f9a8,_0x3cb657){const _0x5ca1b2=_0x5e1a();return _0x23cd=function(_0x46af89,_0x3cc2c3){_0x46af89=_0x46af89-(0x3f0+-0x13*-0x15d+-0x2*0xe39);let _0x1fbab9=_0x5ca1b2[_0x46af89];return _0x1fbab9;},_0x23cd(_0x30f9a8,_0x3cb657);}import{taskErrorSaga}from'../error';import{PERMISSIONS}from'./media-constraints';import{ENV_CONTEXT_KEY,PLATFORM_CONTEXT_KEY}from'../constants';import{checkDevicePermissionCompleted,getMediaPermissionCamera,getMediaPermissionMic,getMediaPermissionShareScreen,setMediaPermissions}from'./device.reducer';import{DEVICE_PERMISSION}from'./device.constants';const getIsPermissionGranted=_0x4cd638=>_0x4cd638===PERMISSIONS['GRANTED']||_0x4cd638===PERMISSIONS['UNSUPPORTE'+'D'];export function*isMediaPermissionsSupported(){const {isMac:_0x4380f2}=yield getContext(ENV_CONTEXT_KEY);return _0x4380f2;}export function*cacheAllMediaPermissions(){const _0x469a73={_0xebdfb:0x8d,_0x2b47fc:0x93,_0x5712cd:0x8c,_0x468829:0x85,_0x14e37a:0x8d,_0x30faf6:0x269,_0x3f2192:0x27a,_0x12fcc8:0x275,_0x130043:0x25d,_0x3222cb:0x255,_0x51d92b:0x25e,_0x1e3fd9:0x7c,_0x16ffa9:0x84,_0x186386:0x74,_0x2f28a7:0x25b,_0x32dadd:0x263,_0x444e55:0x26b},_0x105f39={_0x16e0e5:0x3da},_0x3fe80a={_0x299aa7:0x1f1};function _0x3483f3(_0x2f473e,_0x102c6e,_0x28da31,_0x18a92b){return _0x23cd(_0x18a92b- -_0x3fe80a._0x299aa7,_0x2f473e);}const _0x1b89be=yield isMediaPermissionsSupported();function _0x1870e6(_0x1aef2c,_0x2b4457,_0x43997c,_0x5ddf99){return _0x23cd(_0x5ddf99- -_0x105f39._0x16e0e5,_0x43997c);}if(!_0x1b89be)return;try{const {media:_0x15eeb7}=yield getContext(PLATFORM_CONTEXT_KEY),[_0x71b986,_0x587fe3]=yield all([call([_0x15eeb7[_0x3483f3(-_0x469a73._0xebdfb,-0x87,-_0x469a73._0x2b47fc,-_0x469a73._0x5712cd)],_0x15eeb7[_0x3483f3(-_0x469a73._0x468829,-_0x469a73._0x14e37a,-_0x469a73._0x5712cd,-_0x469a73._0x5712cd)]['microphone']]),call([_0x15eeb7['status'],_0x15eeb7[_0x1870e6(-_0x469a73._0x30faf6,-0x264,-_0x469a73._0x3f2192,-_0x469a73._0x12fcc8)][_0x1870e6(-0x25e,-_0x469a73._0x130043,-_0x469a73._0x3222cb,-_0x469a73._0x51d92b)]])]);yield put(setMediaPermissions({'mic':_0x71b986,'camera':_0x587fe3}));}catch(_0x1cbb7b){yield taskErrorSaga(_0x3483f3(-_0x469a73._0x1e3fd9,-_0x469a73._0x16ffa9,-_0x469a73._0x186386,-0x84)+'diaPermiss'+_0x1870e6(-_0x469a73._0x2f28a7,-0x269,-_0x469a73._0x32dadd,-_0x469a73._0x444e55),_0x1cbb7b);}}export function*requestMicPermissionSaga(){const _0x3bd3d6={_0x1da188:0x9a,_0x4563ba:0xa2,_0x133ca1:0xa8,_0x29a693:0x450,_0x59c0be:0x460,_0xf81141:0x452,_0x9cbc4d:0xa3,_0x28a22e:0xa3,_0xf99597:0xa9,_0x3e77c0:0x99,_0x2c7093:0xb1},{media:_0x56710b}=yield getContext(PLATFORM_CONTEXT_KEY);try{const _0x8adf95=yield call([_0x56710b['access'],_0x56710b[_0xac8c32(0x98,_0x3bd3d6._0x1da188,_0x3bd3d6._0x4563ba,_0x3bd3d6._0x133ca1)][_0x593c0b(_0x3bd3d6._0x29a693,0x456,_0x3bd3d6._0x59c0be,_0x3bd3d6._0xf81141)]]);return getIsPermissionGranted(_0x8adf95);}catch(_0xb05ca4){yield taskErrorSaga(_0xac8c32(0xaf,_0x3bd3d6._0x9cbc4d,_0x3bd3d6._0x28a22e,0xb8)+'rophonePer'+_0xac8c32(_0x3bd3d6._0xf99597,_0x3bd3d6._0x9cbc4d,_0x3bd3d6._0x3e77c0,_0x3bd3d6._0x2c7093)+'a',_0xb05ca4);}function _0x593c0b(_0x3a48a6,_0x8fa5f3,_0x193c05,_0x4acaee){return _0x23cd(_0x3a48a6-0x2ea,_0x193c05);}function _0xac8c32(_0xab3b82,_0x382e77,_0x592cb9,_0xa834d7){return _0x23cd(_0xab3b82- -0xcf,_0x592cb9);}return![];}export function*requestCameraPermissionSaga(){const _0x3f1d61={_0x1fb4e7:0x313,_0x27763c:0x320,_0x5e50e7:0x322,_0xa3837a:0xf1,_0x2722f6:0xec,_0x5e751c:0xee,_0x229fe8:0x338,_0x1b4761:0x33f,_0x4a4085:0x339,_0x4826f1:0x331,_0x1780f8:0x31f,_0xc7cbdb:0x323,_0x1de73e:0x329},_0x1237de={_0x765822:0x1bb},_0x2565b8={_0x282dab:0x266},{media:_0x5eaa38}=yield getContext(PLATFORM_CONTEXT_KEY);try{const _0x4177fa=yield call([_0x5eaa38[_0x107d25(_0x3f1d61._0x1fb4e7,0x324,_0x3f1d61._0x27763c,_0x3f1d61._0x5e50e7)],_0x5eaa38['access'][_0x5ee47a(-_0x3f1d61._0xa3837a,-_0x3f1d61._0x2722f6,-_0x3f1d61._0x5e751c,-0xea)]]);return getIsPermissionGranted(_0x4177fa);}catch(_0x16c26f){yield taskErrorSaga(_0x107d25(_0x3f1d61._0x229fe8,0x32a,_0x3f1d61._0x1b4761,_0x3f1d61._0x4a4085)+_0x107d25(_0x3f1d61._0x4826f1,_0x3f1d61._0x1780f8,_0x3f1d61._0xc7cbdb,_0x3f1d61._0x1de73e)+'missionSag'+'a',_0x16c26f);}function _0x5ee47a(_0x25d2e1,_0x3ba090,_0x3b5239,_0x209653){return _0x23cd(_0x209653- -_0x2565b8._0x282dab,_0x3ba090);}function _0x107d25(_0x40214d,_0x5922a7,_0x3448c7,_0x22709c){return _0x23cd(_0x22709c-_0x1237de._0x765822,_0x5922a7);}return![];}export function*requestScreenPermissionSaga(){const _0x1976e3={_0x5150f5:0x170,_0x5099fe:0x17d,_0x873c7f:0x166,_0x472835:0x16a,_0x35a107:0x169,_0x3e2139:0x16d,_0xe4c7c4:0x175,_0x47c430:0x16e,_0x4a9cfd:0x159,_0x46c21f:0x151,_0x340fc2:0x15d,_0x960081:0x155,_0x250a0a:0x1ea,_0x200ce3:0x1e6,_0x5c79a6:0x1e4,_0xe8f8cb:0x1e2,_0xa88d0a:0x15f,_0x52660a:0x15a,_0x2f0dcb:0x168,_0x269057:0x167},_0x1bbd36={_0x2c58f5:0x78},_0x200466={_0x4599bd:0x2d7},{media:_0x2ebe7c}=yield getContext(PLATFORM_CONTEXT_KEY);function _0x423282(_0x3c84df,_0x326255,_0x3b120f,_0x494f51){return _0x23cd(_0x3c84df- -_0x200466._0x4599bd,_0x3b120f);}try{const _0x88b1b2=yield call([_0x2ebe7c[_0x423282(-_0x1976e3._0x5150f5,-_0x1976e3._0x5099fe,-_0x1976e3._0x873c7f,-_0x1976e3._0x472835)],_0x2ebe7c[_0x423282(-0x170,-0x174,-0x176,-_0x1976e3._0x35a107)][_0x423282(-_0x1976e3._0x3e2139,-_0x1976e3._0xe4c7c4,-0x166,-_0x1976e3._0x47c430)]]);return getIsPermissionGranted(_0x88b1b2);}catch(_0x41d663){yield taskErrorSaga(_0x423282(-_0x1976e3._0x4a9cfd,-_0x1976e3._0x46c21f,-_0x1976e3._0x340fc2,-_0x1976e3._0x960081)+_0x5515dc(_0x1976e3._0x250a0a,_0x1976e3._0x200ce3,_0x1976e3._0x5c79a6,_0x1976e3._0xe8f8cb)+_0x423282(-_0x1976e3._0xa88d0a,-_0x1976e3._0x52660a,-_0x1976e3._0x2f0dcb,-_0x1976e3._0x269057)+'a',_0x41d663);}function _0x5515dc(_0x2197a0,_0x3b6f3f,_0x1da4e2,_0x11f9bb){return _0x23cd(_0x3b6f3f-_0x1bbd36._0x2c58f5,_0x1da4e2);}return![];}export function*checkMicPermissionGranted(_0x5d2db4){const _0x51646a={_0x291998:0x66,_0x90cda6:0x6a,_0x53bd78:0x70,_0x2614c1:0x41,_0x5a04e3:0x3e,_0x30ba8c:0x62,_0x2ced59:0x5f,_0x40e3a0:0x48,_0x55874b:0x47,_0x196694:0x50,_0x1d60b7:0x56,_0x2c1de4:0x6b,_0x396dd2:0x5e,_0x23334b:0x63,_0x102c54:0x54,_0x3b199c:0x67},_0x2dc6dd={_0x22cb37:0x12a},_0x43b1b4={_0x5c4a02:0x1d3},_0x2237a4=yield select(getMediaPermissionMic);let _0x496e8a=_0x2237a4;const {media:_0x37b336}=yield getContext(PLATFORM_CONTEXT_KEY);try{_0x496e8a=yield call([_0x37b336[_0x495fa4(-_0x51646a._0x291998,-0x6c,-0x6e,-_0x51646a._0x90cda6)],_0x37b336[_0x495fa4(-_0x51646a._0x53bd78,-0x5f,-0x6e,-0x69)][_0x4bf754(0x3c,_0x51646a._0x2614c1,_0x51646a._0x5a04e3,0x2e)]]);}catch(_0x2f2cb5){yield taskErrorSaga(_0x495fa4(-0x53,-_0x51646a._0x30ba8c,-_0x51646a._0x2ced59,-0x66)+'phonePermi'+'ssion',_0x2f2cb5);}_0x496e8a!==_0x2237a4&&(yield put(setMediaPermissions({'mic':_0x496e8a})));let _0x2f5137=getIsPermissionGranted(_0x496e8a);!_0x2f5137&&(_0x2f5137=yield call(requestMicPermissionSaga));function _0x495fa4(_0xcd8cd7,_0x2524ca,_0x392f68,_0x311fbf){return _0x23cd(_0x392f68- -_0x43b1b4._0x5c4a02,_0xcd8cd7);}yield put(checkDevicePermissionCompleted({'permission':DEVICE_PERMISSION[_0x495fa4(-_0x51646a._0x40e3a0,-_0x51646a._0x55874b,-_0x51646a._0x196694,-_0x51646a._0x1d60b7)],'isGranted':_0x2f5137,'showPermissionDeniedModal':_0x5d2db4?.['showPermis'+_0x495fa4(-_0x51646a._0x2c1de4,-_0x51646a._0x396dd2,-_0x51646a._0x23334b,-_0x51646a._0x2c1de4)+_0x495fa4(-_0x51646a._0x291998,-_0x51646a._0x102c54,-_0x51646a._0x30ba8c,-_0x51646a._0x3b199c)]}));function _0x4bf754(_0x161909,_0x5bc23b,_0x195994,_0x428c85){return _0x23cd(_0x161909- -_0x2dc6dd._0x22cb37,_0x428c85);}return _0x2f5137;}export function*checkCameraPermissionGranted(_0x582456){const _0x41805d={_0x27448c:0x141,_0x26fe76:0x14a,_0x43bcb4:0x14d,_0x4f994a:0x1bf,_0x42454d:0x1d6,_0x153323:0x1c9,_0x7a8210:0x1cc,_0x70f96a:0x1c4,_0x40992f:0x1cd,_0x205fae:0x1cc,_0x50a0c1:0x134,_0x52f572:0x13a,_0x2ddb2d:0x134,_0x532971:0x139,_0x5a9787:0x13f,_0x436326:0x137,_0x4aecb7:0x1cf,_0x40d20f:0x1c7,_0x5d8abc:0x1b4,_0x370945:0x1be},_0x4974f9=yield select(getMediaPermissionCamera);let _0xd8cf07=_0x4974f9;const {media:_0x416dd5}=yield getContext(PLATFORM_CONTEXT_KEY);try{_0xd8cf07=yield call([_0x416dd5['status'],_0x416dd5[_0x17e33f(-0x151,-_0x41805d._0x27448c,-_0x41805d._0x26fe76,-_0x41805d._0x43bcb4)][_0x44566a(_0x41805d._0x4f994a,_0x41805d._0x42454d,_0x41805d._0x4f994a,_0x41805d._0x153323)]]);}catch(_0x6ddd00){yield taskErrorSaga('checkCamer'+_0x44566a(_0x41805d._0x7a8210,_0x41805d._0x70f96a,_0x41805d._0x40992f,_0x41805d._0x205fae)+'n',_0x6ddd00);}_0xd8cf07!==_0x4974f9&&(yield put(setMediaPermissions({'camera':_0xd8cf07})));function _0x44566a(_0x8f2389,_0x3dcd2b,_0x160fb7,_0x1a3fa9){return _0x23cd(_0x1a3fa9-0x4d,_0x160fb7);}let _0x4d64ce=getIsPermissionGranted(_0xd8cf07);!_0x4d64ce&&(_0x4d64ce=yield call(requestCameraPermissionSaga));yield put(checkDevicePermissionCompleted({'permission':DEVICE_PERMISSION[_0x17e33f(-_0x41805d._0x27448c,-_0x41805d._0x50a0c1,-_0x41805d._0x52f572,-0x13a)],'isGranted':_0x4d64ce,'showPermissionDeniedModal':_0x582456?.['showPermis'+_0x17e33f(-_0x41805d._0x2ddb2d,-_0x41805d._0x532971,-_0x41805d._0x5a9787,-_0x41805d._0x436326)+_0x44566a(_0x41805d._0x4aecb7,_0x41805d._0x40d20f,_0x41805d._0x5d8abc,_0x41805d._0x370945)]}));function _0x17e33f(_0x39851f,_0x16aacb,_0x3bde0c,_0x5eb981){return _0x23cd(_0x3bde0c- -0x2af,_0x5eb981);}return _0x4d64ce;}export function*checkScreenSharePermissionGranted(){const _0x5d1777={_0x1a819c:0x8d,_0x5536d0:0x6d,_0x324d5c:0x7a,_0x462c2d:0x7e,_0x40f4ff:0x369,_0x451b33:0x36d,_0x1025d2:0x353,_0x1fc2cb:0x363,_0x5e9e78:0x35e,_0x454788:0x355,_0x57b680:0xa2,_0xc4ab3f:0x97,_0x303a03:0x93,_0xabcb62:0x357,_0x4d4ca9:0x9e,_0x12b357:0x99},_0x4861f4={_0x33b5ff:0xe7},_0x1702a8={_0x405d85:0x1f9},{isMac:_0xf22269}=yield getContext(ENV_CONTEXT_KEY);if(!_0xf22269)return!![];function _0x11720e(_0xc93bda,_0x117883,_0x4f73b4,_0x31cc67){return _0x23cd(_0xc93bda-_0x1702a8._0x405d85,_0x31cc67);}function _0x33ec8a(_0x48f7ed,_0x1fbc73,_0x8de983,_0xe77cc8){return _0x23cd(_0xe77cc8- -_0x4861f4._0x33b5ff,_0x1fbc73);}const _0x5b2e1f=yield select(getMediaPermissionShareScreen);let _0x4bda1d=_0x5b2e1f;try{const {media:_0x43b618}=yield getContext(PLATFORM_CONTEXT_KEY);_0x4bda1d=yield call([_0x43b618[_0x33ec8a(_0x5d1777._0x1a819c,_0x5d1777._0x5536d0,_0x5d1777._0x324d5c,_0x5d1777._0x462c2d)],_0x43b618[_0x11720e(0x35e,_0x5d1777._0x40f4ff,_0x5d1777._0x451b33,_0x5d1777._0x1025d2)][_0x11720e(_0x5d1777._0x1fc2cb,_0x5d1777._0x5e9e78,0x361,_0x5d1777._0x454788)]]);}catch(_0x213b0a){yield taskErrorSaga(_0x33ec8a(_0x5d1777._0x57b680,_0x5d1777._0xc4ab3f,0x89,_0x5d1777._0x303a03)+_0x11720e(0x365,0x362,0x368,_0x5d1777._0xabcb62),_0x213b0a);}_0x4bda1d!==_0x5b2e1f&&(yield put(setMediaPermissions({'shareScreen':_0x4bda1d})));let _0x215efc=getIsPermissionGranted(_0x4bda1d);return!_0x215efc&&(_0x215efc=yield call(requestScreenPermissionSaga)),yield put(checkDevicePermissionCompleted({'permission':DEVICE_PERMISSION[_0x33ec8a(_0x5d1777._0x4d4ca9,0xa4,_0x5d1777._0x12b357,_0x5d1777._0x4d4ca9)+'RE'],'isGranted':_0x215efc,'showPermissionDeniedModal':!![]})),_0x215efc;}