yo-moss-ai 0.0.36 → 0.0.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/runtime-manifest.json +1 -1
- package/dist-server/board-presets.mjs +1 -1
- package/dist-server/camera.mjs +1 -1
- package/dist-server/dev-ui.mjs +1 -1
- package/dist-server/device-chat-sync.mjs +1 -1
- package/dist-server/device-config-view.mjs +1 -1
- package/dist-server/device-focus.mjs +1 -1
- package/dist-server/device-http.mjs +1 -1
- package/dist-server/device-identity.mjs +1 -1
- package/dist-server/device-presence.mjs +1 -1
- package/dist-server/device-probe.mjs +1 -1
- package/dist-server/device-registry.mjs +1 -1
- package/dist-server/device-routes.mjs +1 -1
- package/dist-server/device-runtime.mjs +1 -1
- package/dist-server/device-session.mjs +1 -1
- package/dist-server/ffmpeg.mjs +1 -1
- package/dist-server/gimbal-control.mjs +1 -1
- package/dist-server/home-path.mjs +1 -1
- package/dist-server/http-header.mjs +1 -0
- package/dist-server/index.mjs +1 -1
- package/dist-server/ir-import-validate.mjs +1 -1
- package/dist-server/known-scan-device.mjs +1 -1
- package/dist-server/lan-discover.mjs +1 -1
- package/dist-server/listen-port.mjs +1 -1
- package/dist-server/mcp/backoff.mjs +1 -1
- package/dist-server/mcp/bridge-manager.mjs +1 -1
- package/dist-server/mcp/builtin-tools.mjs +1 -1
- package/dist-server/mcp/dedupe-servers.mjs +1 -1
- package/dist-server/mcp/doctor.mjs +1 -1
- package/dist-server/mcp/fixtures/echo-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/hotkey-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/mihome-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/onvif-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/shell-mcp.mjs +1 -1
- package/dist-server/mcp/fixtures/yunxiangji-mcp.mjs +1 -1
- package/dist-server/mcp/hotkey-agent-docs.mjs +1 -1
- package/dist-server/mcp/hotkey-driver.mjs +1 -1
- package/dist-server/mcp/hotkey-handlers.mjs +1 -1
- package/dist-server/mcp/hotkey-import-validate.mjs +1 -1
- package/dist-server/mcp/hotkey-store.mjs +1 -1
- package/dist-server/mcp/http-client.mjs +1 -1
- package/dist-server/mcp/http-pipe.mjs +1 -1
- package/dist-server/mcp/local-probe.mjs +1 -1
- package/dist-server/mcp/marketplace.mjs +1 -1
- package/dist-server/mcp/onvif-handlers.mjs +1 -1
- package/dist-server/mcp/parse-server-json.mjs +1 -1
- package/dist-server/mcp/paths.mjs +1 -1
- package/dist-server/mcp/routes.mjs +1 -1
- package/dist-server/mcp/schema.mjs +1 -1
- package/dist-server/mcp/settings.mjs +1 -1
- package/dist-server/mcp/shell-approval.mjs +1 -1
- package/dist-server/mcp/shell-policy.mjs +1 -1
- package/dist-server/mcp/shell-trash.mjs +1 -1
- package/dist-server/mcp/stdio-pipe.mjs +1 -1
- package/dist-server/mcp/store.mjs +1 -1
- package/dist-server/mcp/task-notify.mjs +1 -1
- package/dist-server/mcp/ws-connect.mjs +1 -1
- package/dist-server/mcp/yunxiangji.mjs +1 -1
- package/dist-server/media-cache.mjs +1 -1
- package/dist-server/mihome/cloud.mjs +1 -1
- package/dist-server/mihome/devices.mjs +1 -1
- package/dist-server/mihome/local.mjs +1 -1
- package/dist-server/mihome/mcp-desc.mjs +1 -1
- package/dist-server/mihome/queue.mjs +1 -1
- package/dist-server/mihome/rc4.mjs +1 -1
- package/dist-server/mihome/routes.mjs +1 -1
- package/dist-server/mihome/service.mjs +1 -1
- package/dist-server/mihome/sign.mjs +1 -1
- package/dist-server/mihome/spec.mjs +1 -1
- package/dist-server/mihome/store.mjs +1 -1
- package/dist-server/onboard-preview.mjs +1 -1
- package/dist-server/spa-fallback.mjs +1 -1
- package/dist-server/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
const _0x59118d=_0x45da;(function(_0x515177,_0x29baa2){const _0x993beb=_0x45da,_0x11a24c=_0x515177();while(!![]){try{const _0x832e21=parseInt(_0x993beb(0x159))/0x1+parseInt(_0x993beb(0x16b))/0x2*(parseInt(_0x993beb(0x16a))/0x3)+-parseInt(_0x993beb(0x158))/0x4+parseInt(_0x993beb(0x171))/0x5*(-parseInt(_0x993beb(0x166))/0x6)+-parseInt(_0x993beb(0x167))/0x7*(-parseInt(_0x993beb(0x15a))/0x8)+parseInt(_0x993beb(0x161))/0x9+parseInt(_0x993beb(0x168))/0xa*(-parseInt(_0x993beb(0x163))/0xb);if(_0x832e21===_0x29baa2)break;else _0x11a24c['push'](_0x11a24c['shift']());}catch(_0x28b5c3){_0x11a24c['push'](_0x11a24c['shift']());}}}(_0x318e,0xcb812));export const BOARD_ONVIF='moss-o'+'nvif';export const BOARD_OV2640='moss-o'+'v2640';export const BOARD_PCB_V1=_0x59118d(0x15f)+_0x59118d(0x172);export const BOARD_CAMERA_TD=_0x59118d(0x164)+_0x59118d(0x15e)+'td';export const KNOWN_BOARDS=[BOARD_ONVIF,BOARD_OV2640,BOARD_PCB_V1,BOARD_CAMERA_TD];function isKnownBoard(_0x57e938){const _0x305928=_0x59118d;return KNOWN_BOARDS[_0x305928(0x15b)+'es'](_0x57e938);}function _0x318e(){const _0x26a541=['tu9tuW','BMfTzq','5Asw5O6L6kEg6kEj','q2fTzxjH','DhjPBq','mJK3nJvnB3jPu3K','y2iTDJe','ifre','ndC0mJi4uhjfuhDf','mty1mty4n3jsrMDcAG','mJuZodq0oe5QA2L6zW','Aw5JBhvK','uencihyX','5P2/6l296kEg6kEj','yw1LCMeT','Bw9ZCY1W','q2fWCW','otq0ndKWnKfvq0H3Bq','zgv2AwnL','mtfPEMXdqMO','Bw9ZCY1J','B2jQzwn0','mtm2mLjqvNHyCW','mtr5we5WCfq','mJq0mduZndbuuu1hBLK','yM9HCMq','mJe5rxPUzhbx','mZG1odjgANn5veC'];_0x318e=function(){return _0x26a541;};return _0x318e();}export function resolveBoard(_0x1f9cab={}){const _0xf3c321=_0x59118d,_0x2787c7=String(_0x1f9cab[_0xf3c321(0x169)]||'')[_0xf3c321(0x170)]();if(isKnownBoard(_0x2787c7))return _0x2787c7;const _0x5c73f9=String(_0x1f9cab[_0xf3c321(0x16d)]||'')[_0xf3c321(0x170)]();if(isKnownBoard(_0x5c73f9))return _0x5c73f9;return BOARD_ONVIF;}export function boardTypeLabel(_0x69e21c){const _0x2ebaba=_0x59118d;if(_0x69e21c===BOARD_OV2640)return _0x2ebaba(0x15d);if(_0x69e21c===BOARD_ONVIF)return _0x2ebaba(0x16e);if(_0x69e21c===BOARD_PCB_V1)return _0x2ebaba(0x15c);if(_0x69e21c===BOARD_CAMERA_TD)return _0x2ebaba(0x16f)+_0x2ebaba(0x173);return _0x2ebaba(0x16c);}function _0x45da(_0x311984,_0x2f550a){_0x311984=_0x311984-0x158;const _0x318e76=_0x318e();let _0x45dab9=_0x318e76[_0x311984];if(_0x45da['UbMhSe']===undefined){var _0x27c502=function(_0x1e3315){const _0x154528='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x57e938='',_0x1f9cab='';for(let _0x2787c7=0x0,_0x5c73f9,_0x69e21c,_0x5666c5=0x0;_0x69e21c=_0x1e3315['charAt'](_0x5666c5++);~_0x69e21c&&(_0x5c73f9=_0x2787c7%0x4?_0x5c73f9*0x40+_0x69e21c:_0x69e21c,_0x2787c7++%0x4)?_0x57e938+=String['fromCharCode'](0xff&_0x5c73f9>>(-0x2*_0x2787c7&0x6)):0x0){_0x69e21c=_0x154528['indexOf'](_0x69e21c);}for(let _0x2dfa80=0x0,_0x576cf0=_0x57e938['length'];_0x2dfa80<_0x576cf0;_0x2dfa80++){_0x1f9cab+='%'+('00'+_0x57e938['charCodeAt'](_0x2dfa80)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f9cab);};_0x45da['DMUOWi']=_0x27c502,_0x45da['jFgzqV']={},_0x45da['UbMhSe']=!![];}const _0x32d449=_0x318e76[0x0],_0x12f82c=_0x311984+_0x32d449,_0x2114ff=_0x45da['jFgzqV'][_0x12f82c];return!_0x2114ff?(_0x45dab9=_0x45da['DMUOWi'](_0x45dab9),_0x45da['jFgzqV'][_0x12f82c]=_0x45dab9):_0x45dab9=_0x2114ff,_0x45dab9;}export function capsForBoard(_0x5666c5){const _0x2dfa80=_0x5666c5===BOARD_OV2640,_0x576cf0=_0x5666c5===BOARD_PCB_V1||_0x5666c5===BOARD_CAMERA_TD;return{'onboard_camera':_0x2dfa80,'onboard_preview':![],'ir':!![],'gimbal':_0x2dfa80,'face_track':_0x2dfa80,'lamps':!![],'panel':!_0x576cf0,'bottom':!_0x576cf0,'motor':!_0x576cf0};}export function normalizeCaps(_0x1edcf0={}){return capsForBoard(resolveBoard(_0x1edcf0));}export function applyDeviceHealthTo(_0x3cd9a5,_0x55a497){const _0x4df5e3=_0x59118d;if(!_0x55a497||typeof _0x55a497!==_0x4df5e3(0x165))return _0x3cd9a5;const _0x35b4ab=resolveBoard(_0x55a497);if(_0x55a497['produc'+'t'])_0x3cd9a5['produc'+'t']=_0x55a497['produc'+'t'];return _0x3cd9a5[_0x4df5e3(0x169)]=_0x35b4ab,_0x3cd9a5[_0x4df5e3(0x162)+_0x4df5e3(0x160)]=capsForBoard(_0x35b4ab),_0x3cd9a5;}
|
package/dist-server/camera.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x3267d4=_0x4808;(function(_0x2e89da,_0xba6e50){const _0x271e8e=_0x4808,_0x135223=_0x2e89da();while(!![]){try{const _0x308b96=-parseInt(_0x271e8e(0x90))/0x1+-parseInt(_0x271e8e(0x1e4))/0x2*(parseInt(_0x271e8e(0x205))/0x3)+-parseInt(_0x271e8e(0xa4))/0x4*(parseInt(_0x271e8e(0xf8))/0x5)+parseInt(_0x271e8e(0x88))/0x6*(-parseInt(_0x271e8e(0xa1))/0x7)+-parseInt(_0x271e8e(0x218))/0x8*(-parseInt(_0x271e8e(0xd9))/0x9)+-parseInt(_0x271e8e(0xf0))/0xa*(-parseInt(_0x271e8e(0x17f))/0xb)+parseInt(_0x271e8e(0x250))/0xc;if(_0x308b96===_0xba6e50)break;else _0x135223['push'](_0x135223['shift']());}catch(_0x1800b1){_0x135223['push'](_0x135223['shift']());}}}(_0x5869,0x6570c));import _0x456627 from'node:crypto';import _0x37ddf1 from'node:http';import _0x183ef3 from'node:https';import _0x4649d8 from'node:net';import{spawn}from'node:child_process';import{createRequire}from'node:module';import{ensureFfmpeg}from'./ffmpeg.mjs';import{clampPtzSpeed,onvifVectorForAction,payloadForAction,payloadForNudge,payloadForVector}from'./gimbal-control.mjs';import{ONBOARD_DISARM_TIMEOUT_MS,ONBOARD_EMPTY_RETRY_MS,ONBOARD_FETCH_TIMEOUT_MS,ONBOARD_STREAM_INTERVAL_MS,ONBOARD_WARMUP_GAP_MS,ONBOARD_WARMUP_TRIES,runOnboardPreviewLoop}from'./onboard-preview.mjs';const require=createRequire(import.meta.url),{Cam,Discovery}=require('onvif/'+_0x3267d4(0x96)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise['resolv'+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0xc8,ffmpegEpoch=0x0,ffmpegNeedProbe=![],previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x37ddf1['Agent']({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x183ef3[(_0x3267d4(0x1cf))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x3267d4(0x1db)+_0x3267d4(0x247)+_0x3267d4(0x1ac)+'ice','username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x515d15){cameraHooks={...cameraHooks,..._0x515d15};}function deviceCaps(){const _0x556f53=_0x3267d4,_0x5713e2=cameraHooks[_0x556f53(0x211)+_0x556f53(0x116)+'s']?.()||{};return _0x5713e2&&typeof _0x5713e2==='object'?_0x5713e2:{};}export function onboardAvailable(){const _0x4cb936=_0x3267d4;return deviceCaps()[_0x4cb936(0x1ff)+_0x4cb936(0x8d)+_0x4cb936(0xbe)]===!![]&&!!String(cameraHooks[_0x4cb936(0x211)+_0x4cb936(0xe7)+_0x4cb936(0x194)]?.()||'')[_0x4cb936(0x100)]();}export function gimbalAvailable(){const _0x5466ac=_0x3267d4;return deviceCaps()[_0x5466ac(0x84)]===!![];}export function stripOnboardCameraConfig(_0x5ebfbe){const _0x144f30=_0x3267d4;if(!_0x5ebfbe?.[_0x144f30(0xc7)]||_0x5ebfbe[_0x144f30(0xc7)][_0x144f30(0x1a1)]!==_0x144f30(0x1ff)+'d')return![];const _0x4c029b={..._0x5ebfbe[_0x144f30(0xc7)]};return delete _0x4c029b[_0x144f30(0x1a1)],_0x5ebfbe[_0x144f30(0xc7)]=_0x4c029b,!![];}function playModeOf(){const _0x2de48e=_0x3267d4;if(state[_0x2de48e(0x1a1)]===_0x2de48e(0x1ff)+'d')return _0x2de48e(0x168);if(state[_0x2de48e(0x19c)+'i'])return'mpegts';if(state['liveUr'+'i'])return _0x2de48e(0x168);if(state[_0x2de48e(0xde)+_0x2de48e(0x12f)])return _0x2de48e(0xde)+'ot';return'';}function publicState(){const _0xc8df70=_0x3267d4;return{'connected':state[_0xc8df70(0x1e0)+_0xc8df70(0x239)],'source':state[_0xc8df70(0x1a1)]||'','sourceLabel':state[_0xc8df70(0x1a1)+_0xc8df70(0x1bf)]||'','hostname':state[_0xc8df70(0x9e)+'me'],'port':state[_0xc8df70(0x1b1)],'path':state[_0xc8df70(0x1a9)],'username':state[_0xc8df70(0x1e1)+'me'],'password_set':!!state[_0xc8df70(0x1da)+'rd'],'ptz':state[_0xc8df70(0x163)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0xc8df70(0x1a1)]!==_0xc8df70(0x1b2)?_0xc8df70(0x84):state[_0xc8df70(0x163)]?_0xc8df70(0x1b2):'','snapshot':!!state[_0xc8df70(0xde)+_0xc8df70(0x12f)]||state[_0xc8df70(0x1a1)]===_0xc8df70(0x1ff)+'d','stream':!!(state[_0xc8df70(0x19c)+'i']||state[_0xc8df70(0x8e)+'i']||state[_0xc8df70(0xde)+_0xc8df70(0x12f)])||state[_0xc8df70(0x1a1)]==='onboar'+'d','playMode':playModeOf(),'encoding':state[_0xc8df70(0x9c)+'ng'],'liveDirect':state[_0xc8df70(0x9d)+_0xc8df70(0x272)],'info':state['info'],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x4f2bff){const _0x46c8ed=_0x3267d4,_0x3be4ae=Array[_0x46c8ed(0xff)+'y'](_0x4f2bff)?_0x4f2bff[_0x46c8ed(0x1f7)]('\x20'):String(_0x4f2bff||''),_0x115167=_0x2cea78=>{const _0x1a8a3d=_0x46c8ed,_0x3a02e6=_0x3be4ae[_0x1a8a3d(0x269)](new RegExp(_0x1a8a3d(0x200)+'//www\x5c'+_0x1a8a3d(0x102)+_0x1a8a3d(0xd3)+_0x2cea78+('/([^\x5cs'+_0x1a8a3d(0x133)),'i'));if(!_0x3a02e6)return'';try{return decodeURIComponent(_0x3a02e6[0x1][_0x1a8a3d(0x23e)+'e'](/_/g,'\x20'));}catch{return _0x3a02e6[0x1];}};return{'name':_0x115167(_0x46c8ed(0x1b3)),'hardware':_0x115167(_0x46c8ed(0x1b9)+'re')};}function firstXAddr(_0xef7ae8){const _0x29cc1e=_0x3267d4,_0x5db5f0=Array[_0x29cc1e(0xff)+'y'](_0xef7ae8)?_0xef7ae8[0x0]:_0xef7ae8,_0x5d6206=typeof _0x5db5f0===_0x29cc1e(0x1c2)?_0x5db5f0:_0x5db5f0?.[_0x29cc1e(0x1e6)]||String(_0x5db5f0||''),_0x47ff93=_0x5d6206[_0x29cc1e(0x100)]()[_0x29cc1e(0x202)](/\s+/)[0x0];if(!_0x47ff93)return null;try{return new URL(_0x47ff93);}catch{return null;}}function summarizeProbe(_0x5db80f,_0x103035){const _0x25576a=_0x3267d4,_0x26b19f=_0x5db80f?.['probeM'+_0x25576a(0xed)]?.['probeM'+_0x25576a(0x21d)]||_0x5db80f,_0x5a4e64=firstXAddr(_0x26b19f?.['XAddrs']||_0x26b19f?.['xaddrs']),_0x41c6f7=_0x5a4e64?.['hostna'+'me']||_0x103035?.[_0x25576a(0x1cc)+'s']||'';if(!_0x41c6f7)return null;const _0x146963=parseScopes(_0x26b19f?.[_0x25576a(0x193)]||_0x26b19f?.[_0x25576a(0x11b)]);return{'hostname':_0x41c6f7,'port':Number(_0x5a4e64?.[_0x25576a(0x1b1)]||0x50),'path':_0x5a4e64?.['pathna'+'me']||_0x25576a(0x1db)+_0x25576a(0x247)+_0x25576a(0x1ac)+_0x25576a(0x251),'urn':_0x26b19f?.[_0x25576a(0x1e8)+_0x25576a(0xda)+_0x25576a(0xaa)]?.[_0x25576a(0x1cc)+'s']||_0x26b19f?.[_0x25576a(0x180)]||'','name':_0x146963[_0x25576a(0x1b3)]||_0x41c6f7,'hardware':_0x146963[_0x25576a(0x1b9)+'re']||''};}function summarizeCam(_0x45bd87,_0x5cdbd1){const _0x524337=_0x3267d4;if(_0x45bd87?.[_0x524337(0x1fc)+_0x524337(0xed)]||_0x45bd87?.[_0x524337(0x235)])return summarizeProbe(_0x45bd87,_0x5cdbd1);const _0x5593b5=_0x45bd87[_0x524337(0x9e)+'me']||_0x5cdbd1?.[_0x524337(0x1cc)+'s']||'';if(!_0x5593b5)return null;return{'hostname':_0x5593b5,'port':Number(_0x45bd87[_0x524337(0x1b1)]||0x50),'path':_0x45bd87[_0x524337(0x1a9)]||_0x524337(0x1db)+_0x524337(0x247)+_0x524337(0x1ac)+'ice','urn':_0x45bd87[_0x524337(0x180)]||'','name':_0x5593b5,'hardware':''};}let discovering=null;export async function discover(_0x1b2a8d=0xfa0){const _0x9c3bca=_0x3267d4;if(discovering)return discovering;return discovering=runDiscover(_0x1b2a8d)[_0x9c3bca(0xd5)+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x5158fc){const _0x46fe92=_0x3267d4,_0x343136=[],_0x2425a4=new Set(),_0xd5eef2=_0x3dc054=>{const _0x10e7f9=_0x4808;if(!_0x3dc054?.[_0x10e7f9(0x9e)+'me'])return;const _0x4f0d2e=_0x3dc054['hostna'+'me']+':'+_0x3dc054[_0x10e7f9(0x1b1)]+':'+_0x3dc054[_0x10e7f9(0x1a9)];if(_0x2425a4[_0x10e7f9(0x263)](_0x4f0d2e))return;_0x2425a4[_0x10e7f9(0x89)](_0x4f0d2e),_0x343136['push'](_0x3dc054);},_0x3f08d9=(_0x293c00,_0x391c08)=>_0xd5eef2(summarizeCam(_0x293c00,_0x391c08));Discovery['on']('device',_0x3f08d9);try{const _0x466df2=await Discovery[_0x46fe92(0x98)]({'timeout':_0x5158fc,'resolve':![]});for(const _0x2020a4 of _0x466df2||[])_0xd5eef2(summarizeCam(_0x2020a4));}catch(_0xc6cd20){console[_0x46fe92(0x1ba)](_0x46fe92(0x7d)+_0x46fe92(0x1fa)+_0x46fe92(0x187),_0xc6cd20?.[_0x46fe92(0x13e)+'e']||_0xc6cd20);}finally{Discovery[_0x46fe92(0x18c)+_0x46fe92(0x13f)+'er'](_0x46fe92(0x175),_0x3f08d9);}return _0x343136;}function mediaUriOf(_0x28a177){const _0x17743d=_0x3267d4;if(!_0x28a177)return'';if(typeof _0x28a177===_0x17743d(0x1c2))return _0x28a177['replac'+'e'](/&/g,'&');const _0x306b0e=_0x28a177[_0x17743d(0x81)]||_0x28a177['mediaU'+'ri']?.[_0x17743d(0x81)]||_0x28a177[_0x17743d(0x1e5)]||'',_0x40ae46=typeof _0x306b0e===_0x17743d(0x1c2)?_0x306b0e:_0x306b0e?.[_0x17743d(0x1e6)]||_0x306b0e?.['_']||'';return String(_0x40ae46)[_0x17743d(0x23e)+'e'](/&/g,'&');}function pickPreviewSource(_0x3cc3f7){const _0x548caf=_0x3267d4,_0x10e3fe=Array['isArra'+'y'](_0x3cc3f7[_0x548caf(0x261)+_0x548caf(0x233)+'s'])?[..._0x3cc3f7[_0x548caf(0x261)+_0x548caf(0x233)+'s']]:[];if(!_0x10e3fe[_0x548caf(0x266)]&&_0x3cc3f7[_0x548caf(0x261)+_0x548caf(0x233)])_0x10e3fe[_0x548caf(0xe8)](_0x3cc3f7['active'+_0x548caf(0x233)]);return _0x10e3fe['sort']((_0x6858a0,_0x4b2bf8)=>(Number(_0x6858a0[_0x548caf(0x20b)])||0x780)-(Number(_0x4b2bf8[_0x548caf(0x20b)])||0x780)),_0x10e3fe[0x0]||_0x3cc3f7[_0x548caf(0x261)+_0x548caf(0x233)]||null;}function detectEncoding(_0x4337ee){const _0x7b6e69=_0x3267d4,_0x54e603=String(_0x4337ee?.[_0x7b6e69(0x9c)+'ng']||_0x4337ee?.[_0x7b6e69(0x1fd)+'ng']||'')[_0x7b6e69(0xcd)+_0x7b6e69(0x1e3)]();if(/h265|hevc/[_0x7b6e69(0x22a)](_0x54e603))return _0x7b6e69(0x13a);if(/h264|avc/[_0x7b6e69(0x22a)](_0x54e603))return'h264';return _0x54e603;}function injectRtspAuth(_0x24803b,_0x43f54b,_0x39e77f){const _0x5dd3ed=_0x3267d4;if(!_0x24803b)return'';try{const _0x250d6=new URL(_0x24803b);return _0x43f54b&&(_0x250d6[_0x5dd3ed(0x1e1)+'me']=_0x43f54b,_0x250d6[_0x5dd3ed(0x1da)+'rd']=_0x39e77f||''),_0x250d6[_0x5dd3ed(0x1e6)];}catch{return _0x24803b;}}function stopAllFfmpeg(){const _0x5db5ba=_0x3267d4;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,ffmpegEpoch+=0x1,ffmpegNeedProbe=![],sharedTranscode=![];for(const _0x562f4e of streamClients){try{if(!_0x562f4e['writab'+_0x5db5ba(0x129)+'d'])_0x562f4e['end']();}catch{}}streamClients['clear']();const _0x1e1de7=sharedFfmpeg;sharedFfmpeg=null;if(_0x1e1de7){ffmpegProcs[_0x5db5ba(0x1f6)](_0x1e1de7);try{_0x1e1de7[_0x5db5ba(0x143)](_0x5db5ba(0x1bb)+'L');}catch{}}for(const _0x487d63 of ffmpegProcs){try{_0x487d63[_0x5db5ba(0x143)](_0x5db5ba(0x1bb)+'L');}catch{}}ffmpegProcs['clear']();}function resetDigest(){const _0x517b74=_0x3267d4;digestState[_0x517b74(0x141)+_0x517b74(0xc5)]=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x5dc;export const ONVIF_FAST_TIMEOUT_MS=0xfa0;export const ONVIF_FALLBACK_PORTS=[0x1f40,0x1f90,0x7e4,0x22c3];export function onvifProbePorts(_0x4780bc){const _0x316ade=_0x3267d4,_0x1ff9dd=Number(_0x4780bc)||0x50,_0x97fac6=ONVIF_FALLBACK_PORTS[_0x316ade(0x230)](_0x3b1ba5=>_0x3b1ba5!==_0x1ff9dd);if(_0x1ff9dd!==0x50)_0x97fac6[_0x316ade(0x234)+'t'](0x50);return[_0x1ff9dd,..._0x97fac6];}export async function probeOpenPorts(_0x276245,_0x938142,_0x51b171=0x320){const _0x21d983=_0x3267d4,_0x38c302=[...new Set((_0x938142||[])[_0x21d983(0x159)](_0x1ce358=>Number(_0x1ce358)||0x0)[_0x21d983(0x230)](_0x53f980=>_0x53f980>0x0&&_0x53f980<0x10000))];if(!_0x38c302['length'])return[];const _0x562a5d=await Promise[_0x21d983(0x21e)](_0x38c302[_0x21d983(0x159)](async _0x333a67=>({'port':_0x333a67,'open':await probeTcp(_0x276245,_0x333a67,_0x51b171)})));return _0x562a5d['filter'](_0x2aec8f=>_0x2aec8f['open'])['map'](_0x5549f5=>_0x5549f5[_0x21d983(0x1b1)]);}export const FFMPEG_BACKOFF_MIN_MS=0xc8;export const FFMPEG_BACKOFF_MAX_MS=0x7d0;export const FFMPEG_RESTART_AFTER_DATA_MS=0x4b0;export const FFMPEG_LIVE_TIMEOUT_US=0xe4e1c0;export const FFMPEG_ONESHOT_TIMEOUT_US=0x2dc6c0;export const FFMPEG_SOCKET_TIMEOUT_US=FFMPEG_LIVE_TIMEOUT_US;export const RTSP_TCP_PROBE_MS=0x258;export const SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export const SNAPSHOT_FAST_TIMEOUT_MS=0x898;export const RTSP_FRAME_TIMEOUT_MS=0x1194;export function isNetworkError(_0x49f6d5){const _0x578b06=_0x3267d4,_0x87bc2d=_0x49f6d5 instanceof Error?_0x49f6d5[_0x578b06(0x13e)+'e']:String(_0x49f6d5||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|超时|Network timeout|Host is down|host is down|暂时离线/i[_0x578b06(0x22a)](_0x87bc2d);}export function shouldRefreshSnapshotUri(_0x581ab3){return!isNetworkError(_0x581ab3);}export function rtspPortOf(_0x16e64f,_0xf67d13=0x22a){const _0x9fea4d=_0x3267d4;try{const _0x58eb38=Number(new URL(_0x16e64f)[_0x9fea4d(0x1b1)]);return _0x58eb38>0x0?_0x58eb38:_0xf67d13;}catch{return _0xf67d13;}}export function nextFfmpegRestartDelay({gotData:gotData=![],backoffMs:backoffMs=FFMPEG_BACKOFF_MIN_MS}={}){const _0x2b9ec7=_0x3267d4;if(gotData)return{'delayMs':FFMPEG_RESTART_AFTER_DATA_MS,'nextBackoffMs':FFMPEG_BACKOFF_MIN_MS,'probe':![]};const _0x4391d6=Math[_0x2b9ec7(0x196)](FFMPEG_BACKOFF_MIN_MS,Number(backoffMs)||FFMPEG_BACKOFF_MIN_MS);return{'delayMs':_0x4391d6,'nextBackoffMs':Math[_0x2b9ec7(0x1c5)](Math[_0x2b9ec7(0x248)](_0x4391d6*1.5),FFMPEG_BACKOFF_MAX_MS),'probe':!![]};}export function cameraError(_0x2c4439,_0x4e96ec){const _0x28507e=_0x3267d4,_0x428ebb=_0x2c4439 instanceof Error?_0x2c4439[_0x28507e(0x13e)+'e']:String(_0x2c4439||'');if(isNetworkError(_0x2c4439))return'摄像头暂时离'+_0x28507e(0xab)+'动重连,或点'+_0x28507e(0x238);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x28507e(0x22a)](_0x428ebb))return _0x28507e(0x190)+_0x28507e(0xd4)+_0x28507e(0x145)+'打开\x20Onv'+_0x28507e(0x155)+_0x28507e(0xb7)+_0x28507e(0xb3)+'限。';return _0x428ebb||_0x4e96ec;}export function probeTcp(_0xa98c06,_0x1648e8,_0x5f8c9e=ONVIF_TCP_PROBE_MS){const _0xed9847=_0x3267d4,_0x216c62=String(_0xa98c06||'')[_0xed9847(0x100)](),_0x38f8c7=Number(_0x1648e8)||0x50;if(!_0x216c62)return Promise[_0xed9847(0xb1)+'e'](![]);return new Promise(_0x5f4cac=>{const _0x5b3cef=_0xed9847,_0x1aed08=_0x4649d8[_0x5b3cef(0x1e0)+'t']({'host':_0x216c62,'port':_0x38f8c7});let _0x29264d=![];const _0x221bea=_0x7eaecf=>{const _0x2505af=_0x5b3cef;if(_0x29264d)return;_0x29264d=!![],_0x1aed08[_0x2505af(0x18c)+_0x2505af(0x216)+'teners'](),_0x1aed08[_0x2505af(0x121)+'y'](),_0x5f4cac(_0x7eaecf);};_0x1aed08['setTim'+'eout'](Math['max'](0xc8,Number(_0x5f8c9e)||ONVIF_TCP_PROBE_MS),()=>_0x221bea(![])),_0x1aed08[_0x5b3cef(0x258)](_0x5b3cef(0x1e0)+'t',()=>_0x221bea(!![])),_0x1aed08[_0x5b3cef(0x258)](_0x5b3cef(0x275),()=>_0x221bea(![]));});}function createCam(_0x314379){const _0x59dc8e=_0x3267d4;return new Cam({'hostname':_0x314379[_0x59dc8e(0x9e)+'me'],'port':_0x314379['port'],'username':_0x314379[_0x59dc8e(0x1e1)+'me'],'password':_0x314379['passwo'+'rd'],'path':_0x314379[_0x59dc8e(0x1a9)],'timeout':Number(_0x314379[_0x59dc8e(0x213)+'t'])>0x0?Number(_0x314379[_0x59dc8e(0x213)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x12d4d8=_0x3267d4,_0x5bcbfa=createCam(state);return await _0x5bcbfa['connec'+'t'](),currentCam=_0x5bcbfa,state[_0x12d4d8(0x163)]=!!(_0x5bcbfa[_0x12d4d8(0xbc)+_0x12d4d8(0x140)]?.['PTZ']||_0x5bcbfa[_0x12d4d8(0x81)]?.[_0x12d4d8(0x163)]),_0x5bcbfa;}function sameHost(_0x4737c9,_0x5b9360){const _0x2b8001=_0x3267d4;return String(_0x4737c9||'')['trim']()[_0x2b8001(0xcd)+_0x2b8001(0x1e3)]()===String(_0x5b9360||'')[_0x2b8001(0x100)]()[_0x2b8001(0xcd)+_0x2b8001(0x1e3)]();}export function sameOnvifEndpoint(_0x326063,_0x5f2eb7){const _0x348bb9=_0x3267d4;if(!_0x326063||!_0x5f2eb7)return![];return sameHost(_0x326063['hostna'+'me'],_0x5f2eb7[_0x348bb9(0x9e)+'me'])&&Number(_0x326063[_0x348bb9(0x1b1)]||0x50)===Number(_0x5f2eb7[_0x348bb9(0x1b1)]||0x50)&&String(_0x326063[_0x348bb9(0x1a9)]||_0x348bb9(0x1db)+_0x348bb9(0x247)+_0x348bb9(0x1ac)+_0x348bb9(0x251))===String(_0x5f2eb7[_0x348bb9(0x1a9)]||'/onvif'+'/devic'+'e_serv'+_0x348bb9(0x251));}async function resolveDiscoveredEndpoint(_0x5adae3){const _0x305e76=_0x3267d4;try{const _0x5a0de0=await discover(0x9c4);return _0x5a0de0['find'](_0x20e83c=>sameHost(_0x20e83c[_0x305e76(0x9e)+'me'],_0x5adae3))||null;}catch(_0x46f2c5){return console['warn'](_0x305e76(0x10a)+_0x305e76(0x23d)+_0x305e76(0x11e)+_0x305e76(0xc4)+'ck',_0x46f2c5?.['messag'+'e']||_0x46f2c5),null;}}async function openOnvif(_0x472bb2){const _0x33d633=_0x3267d4,_0x4cd01e=createCam(_0x472bb2);return await _0x4cd01e[_0x33d633(0x1e0)+'t'](),_0x4cd01e;}export async function connectCamera(_0x26f579={}){const _0x240008=_0x3267d4;let _0x5b5c68=String(_0x26f579[_0x240008(0x9e)+'me']||'')[_0x240008(0x100)](),_0x31efdf=Number(_0x26f579['port']||0x50);const _0x42e83a=String(_0x26f579[_0x240008(0x1e1)+'me']||'')['trim'](),_0x48218b=String(_0x26f579[_0x240008(0x1da)+'rd']||'');let _0x11ba81=String(_0x26f579['path']||_0x240008(0x1db)+'/devic'+_0x240008(0x1ac)+'ice')[_0x240008(0x100)]()||_0x240008(0x1db)+_0x240008(0x247)+_0x240008(0x1ac)+_0x240008(0x251);if(!_0x5b5c68)throw new Error(_0x240008(0xa6)+'地址');stopAllFfmpeg(),await new Promise(_0x49897f=>setTimeout(_0x49897f,0x32));state[_0x240008(0x1a1)]===_0x240008(0x1ff)+'d'&&disconnectCamera();let _0x58476c;const _0x3b36fe={'username':_0x42e83a,'password':_0x48218b,'path':_0x11ba81},_0x331891=onvifProbePorts(_0x31efdf);let _0x33796c=await probeOpenPorts(_0x5b5c68,_0x331891,ONVIF_TCP_PROBE_MS);!_0x33796c[_0x240008(0x266)]&&(console['warn'](_0x240008(0x10a)+'a]\x20tcp'+_0x240008(0xe9)+_0x240008(0xbb),_0x5b5c68+':'+_0x331891[_0x240008(0x1f7)](',')),await new Promise(_0xfdbdc6=>setTimeout(_0xfdbdc6,0xc8)),_0x33796c=await probeOpenPorts(_0x5b5c68,_0x331891,0x320));if(!_0x33796c[_0x240008(0x266)])console[_0x240008(0x1ba)](_0x240008(0x10a)+_0x240008(0xf7)+_0x240008(0xd6)+_0x240008(0xcb)+_0x240008(0x24a)+_0x240008(0x1ef),_0x5b5c68);else{const _0x162d6f=_0x33796c[_0x240008(0x1e2)+'es'](_0x31efdf)?[_0x31efdf,..._0x33796c[_0x240008(0x230)](_0xcddf48=>_0xcddf48!==_0x31efdf)[_0x240008(0x1f4)](0x0,0x1)]:_0x33796c[_0x240008(0x1f4)](0x0,0x2);for(const _0x3dd66d of _0x162d6f){const _0x424dea=_0x3dd66d===_0x31efdf?ONVIF_CONNECT_TIMEOUT_MS:ONVIF_FAST_TIMEOUT_MS;try{console[_0x240008(0x136)]('[camer'+_0x240008(0x131)+'if',_0x5b5c68+':'+_0x3dd66d+_0x11ba81,_0x240008(0x213)+'t',_0x424dea),_0x58476c=await openOnvif({'hostname':_0x5b5c68,'port':_0x3dd66d,..._0x3b36fe,'timeout':_0x424dea}),_0x31efdf=_0x3dd66d;break;}catch(_0x4c33fa){console[_0x240008(0x1ba)](_0x240008(0x10a)+_0x240008(0x111)+_0x240008(0x18b)+_0x240008(0x26c),_0x5b5c68+':'+_0x3dd66d+_0x11ba81,_0x4c33fa?.[_0x240008(0x13e)+'e']||_0x4c33fa);if(!isNetworkError(_0x4c33fa))throw new Error(cameraError(_0x4c33fa,_0x240008(0x25d)+'败'));}}}if(!_0x58476c&&_0x33796c[_0x240008(0x1e2)+'es'](_0x31efdf))try{console['log'](_0x240008(0x10a)+_0x240008(0x13c)+_0x240008(0x162)+'e',_0x5b5c68+':'+_0x31efdf+_0x11ba81),_0x58476c=await openOnvif({'hostname':_0x5b5c68,'port':_0x31efdf,..._0x3b36fe,'timeout':ONVIF_CONNECT_TIMEOUT_MS});}catch(_0x5a4d97){console[_0x240008(0x1ba)](_0x240008(0x10a)+_0x240008(0x13c)+_0x240008(0x1b4)+'l',_0x5b5c68+':'+_0x31efdf+_0x11ba81,_0x5a4d97?.['messag'+'e']||_0x5a4d97);if(!isNetworkError(_0x5a4d97))throw new Error(cameraError(_0x5a4d97,_0x240008(0x25d)+'败'));}if(!_0x58476c){const _0x2e6079=await resolveDiscoveredEndpoint(_0x5b5c68);if(_0x2e6079&&!sameOnvifEndpoint({'hostname':_0x5b5c68,'port':_0x31efdf,'path':_0x11ba81},_0x2e6079)){_0x5b5c68=_0x2e6079[_0x240008(0x9e)+'me'],_0x31efdf=Number(_0x2e6079[_0x240008(0x1b1)]||_0x31efdf),_0x11ba81=_0x2e6079[_0x240008(0x1a9)]||_0x11ba81,console['log'](_0x240008(0x10a)+_0x240008(0x13c)+_0x240008(0x206)+_0x240008(0xfb)+'d',_0x5b5c68+':'+_0x31efdf+_0x11ba81);try{_0x58476c=await openOnvif({'hostname':_0x5b5c68,'port':_0x31efdf,'username':_0x42e83a,'password':_0x48218b,'path':_0x11ba81});}catch(_0x33082e){throw new Error(cameraError(_0x33082e,_0x240008(0x25d)+'败'));}}else throw new Error(cameraError(new Error(_0x240008(0x1aa)+_0x240008(0x80)+_0x240008(0x115)),_0x240008(0x25d)+'败'));}let _0x3ff4db=null;try{_0x3ff4db=await _0x58476c[_0x240008(0x211)+'iceInf'+_0x240008(0x19f)+'on']();}catch{_0x3ff4db=null;}let _0x55b0ce='';const _0x2c268f=pickPreviewSource(_0x58476c);let _0x43cd1d='';try{const _0x155238=await _0x58476c[_0x240008(0x7f)+_0x240008(0x18e)]({'protocol':_0x240008(0x20c),'profileToken':_0x2c268f?.[_0x240008(0x1d7)+_0x240008(0x252)]});_0x43cd1d=mediaUriOf(_0x155238);}catch(_0x2e31d2){console[_0x240008(0x1ba)](_0x240008(0x7d)+']\x20rtsp'+_0x240008(0x147),_0x2e31d2?.[_0x240008(0x13e)+'e']||_0x2e31d2);}if(!_0x43cd1d)try{const _0x3e2a68=await _0x58476c[_0x240008(0x1ce)+_0x240008(0xb2)+'ri']({'profileToken':_0x2c268f?.[_0x240008(0x1d7)+_0x240008(0x252)]});_0x55b0ce=mediaUriOf(_0x3e2a68);}catch(_0x3cf12d){console['warn'](_0x240008(0x7d)+_0x240008(0x95)+_0x240008(0x146)+'ri',_0x3cf12d?.[_0x240008(0x13e)+'e']||_0x3cf12d);}resetDigest(),currentCam=_0x58476c,state[_0x240008(0x1e0)+_0x240008(0x239)]=!![],state[_0x240008(0x9e)+'me']=_0x5b5c68,state[_0x240008(0x1b1)]=_0x31efdf,state[_0x240008(0x1a9)]=_0x11ba81,state[_0x240008(0x1e1)+'me']=_0x42e83a,state[_0x240008(0x1da)+'rd']=_0x48218b,state['snapsh'+_0x240008(0x12f)]=_0x55b0ce,state[_0x240008(0x19c)+'i']=_0x43cd1d,state[_0x240008(0x9c)+'ng']=detectEncoding(_0x2c268f),state[_0x240008(0x8e)+'i']='',state[_0x240008(0x9d)+'rect']='',state['info']=_0x3ff4db?{'manufacturer':_0x3ff4db[_0x240008(0x169)+_0x240008(0xa8)]||'','model':_0x3ff4db[_0x240008(0x7a)]||'','firmware':_0x3ff4db[_0x240008(0x229)+_0x240008(0x219)+_0x240008(0xba)]||'','serial':_0x3ff4db['serial'+_0x240008(0x208)]||''}:null,state['ptz']=!!(_0x58476c['capabi'+_0x240008(0x140)]?.[_0x240008(0x16c)]||_0x58476c[_0x240008(0x81)]?.['ptz']),state[_0x240008(0x1a1)]=_0x240008(0x1b2),state[_0x240008(0x1a1)+_0x240008(0x1bf)]=[_0x3ff4db?.[_0x240008(0x169)+_0x240008(0xa8)],_0x3ff4db?.['model']][_0x240008(0x230)](Boolean)['join']('\x20')||_0x5b5c68;if(_0x43cd1d)console[_0x240008(0x136)](_0x240008(0x10a)+'a]\x20rts'+'p',state[_0x240008(0x9c)+'ng']||_0x240008(0xe4)+'n',_0x5b5c68);else try{const _0x5f4017=await findNativeLive({'hostname':_0x5b5c68,'port':_0x31efdf,'username':_0x42e83a,'password':_0x48218b,'manufacturer':_0x3ff4db?.[_0x240008(0x169)+_0x240008(0xa8)]||'','snapshotUri':_0x55b0ce,'profileToken':_0x2c268f?.['profil'+'eToken']});state[_0x240008(0x8e)+'i']=_0x5f4017,state['liveDi'+_0x240008(0x272)]=_0x5f4017&&isQueryAuthUrl(_0x5f4017)?_0x5f4017:'';}catch(_0x19ae09){console[_0x240008(0x1ba)](_0x240008(0x10a)+_0x240008(0x132)+_0x240008(0x1b8)+'ch',_0x19ae09?.[_0x240008(0x13e)+'e']||_0x19ae09);}return publicState();}export function disconnectCamera(){const _0x2e62ab=_0x3267d4,_0x1d54b2=state[_0x2e62ab(0x1a1)]===_0x2e62ab(0x1ff)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x2e62ab(0x121)+'y']();}catch{}try{httpsAgent[_0x2e62ab(0x121)+'y']();}catch{}return state[_0x2e62ab(0x1e0)+_0x2e62ab(0x239)]=![],state[_0x2e62ab(0xde)+_0x2e62ab(0x12f)]='',state[_0x2e62ab(0x19c)+'i']='',state['encodi'+'ng']='',state[_0x2e62ab(0x8e)+'i']='',state[_0x2e62ab(0x9d)+_0x2e62ab(0x272)]='',state[_0x2e62ab(0x1b5)]=null,state[_0x2e62ab(0x163)]=![],state['source']='',state[_0x2e62ab(0x1a1)+_0x2e62ab(0x1bf)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x1d54b2&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x5dc6d0=_0x3267d4;return String(cameraHooks[_0x5dc6d0(0x211)+_0x5dc6d0(0xe7)+_0x5dc6d0(0x194)]?.()||'')[_0x5dc6d0(0x23e)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0xb3730e=_0x3267d4,_0x454961=onboardBaseUrl();if(!_0x454961)return![];try{return await fetch(_0x454961+(_0xb3730e(0x1d4)+_0xb3730e(0x1ab)+'rm'),{'method':_0xb3730e(0x1af),'signal':AbortSignal[_0xb3730e(0x213)+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x505ac5){const _0x4e2a99=_0x3267d4,_0x48d0bb=onboardPreviewClients;onboardPreviewClients=Math[_0x4e2a99(0x196)](0x0,onboardPreviewClients+_0x505ac5),_0x48d0bb>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x57a4bf=_0x3267d4,_0x15873c=onboardBaseUrl();if(!_0x15873c)throw new Error(_0x57a4bf(0xa3)+'MOSS,请'+'先在设备接入'+_0x57a4bf(0x197));const _0x19195e=_0x15873c+('/camer'+_0x57a4bf(0xeb)+_0x57a4bf(0x245));let _0x4711d3;try{_0x4711d3=await fetch(_0x19195e,{'signal':AbortSignal[_0x57a4bf(0x213)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x57a4bf(0x268)+_0x57a4bf(0x1f0)}});}catch(_0x38de17){const _0x26836f=_0x38de17?.['cause']?.[_0x57a4bf(0x13e)+'e']||_0x38de17?.[_0x57a4bf(0x13e)+'e']||_0x38de17;throw new Error(_0x57a4bf(0x1df)+_0x57a4bf(0x224)+_0x19195e+':'+_0x26836f);}if(_0x4711d3[_0x57a4bf(0xfc)]===0xcc)return null;if(!_0x4711d3['ok'])throw new Error(_0x57a4bf(0xbf)+'回\x20'+_0x4711d3[_0x57a4bf(0xfc)]);const _0xfe8189=Buffer[_0x57a4bf(0x26e)](await _0x4711d3[_0x57a4bf(0xd8)+'uffer']());if(_0xfe8189[_0x57a4bf(0x266)])lastOnboardJpeg=_0xfe8189;return _0xfe8189;}function _0x4808(_0x2e2d64,_0x1cc9c3){_0x2e2d64=_0x2e2d64-0x7a;const _0x58693f=_0x5869();let _0x480866=_0x58693f[_0x2e2d64];if(_0x4808['HjCTBw']===undefined){var _0x5b3482=function(_0x8509ea){const _0x3b2889='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x456627='',_0x37ddf1='';for(let _0x183ef3=0x0,_0x4649d8,_0x515d15,_0x5713e2=0x0;_0x515d15=_0x8509ea['charAt'](_0x5713e2++);~_0x515d15&&(_0x4649d8=_0x183ef3%0x4?_0x4649d8*0x40+_0x515d15:_0x515d15,_0x183ef3++%0x4)?_0x456627+=String['fromCharCode'](0xff&_0x4649d8>>(-0x2*_0x183ef3&0x6)):0x0){_0x515d15=_0x3b2889['indexOf'](_0x515d15);}for(let _0x5ebfbe=0x0,_0x4c029b=_0x456627['length'];_0x5ebfbe<_0x4c029b;_0x5ebfbe++){_0x37ddf1+='%'+('00'+_0x456627['charCodeAt'](_0x5ebfbe)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x37ddf1);};_0x4808['rmEnky']=_0x5b3482,_0x4808['aXwjRH']={},_0x4808['HjCTBw']=!![];}const _0x535764=_0x58693f[0x0],_0x4cd3c2=_0x2e2d64+_0x535764,_0x1f40dc=_0x4808['aXwjRH'][_0x4cd3c2];return!_0x1f40dc?(_0x480866=_0x4808['rmEnky'](_0x480866),_0x4808['aXwjRH'][_0x4cd3c2]=_0x480866):_0x480866=_0x1f40dc,_0x480866;}async function getOnboardSnapshot(){const _0x5db44b=_0x3267d4;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x5db44b(0xd5)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0x2a3037=_0x3267d4;throw new Error(_0x2a3037(0xc2)+'支持');}async function ptzOnboard(_0x4e7d80,_0x3c8018={}){const _0x195bc0=_0x3267d4;if(!cameraHooks[_0x195bc0(0x1f5)+_0x195bc0(0x185)+'l'])throw new Error(_0x195bc0(0x1fb)+'绪');const _0x3f197a=String(_0x3c8018[_0x195bc0(0x9a)]||''),_0x1347f4=String(_0x4e7d80||''),_0xb8754=_0x1347f4['starts'+'With'](_0x195bc0(0x22c))?_0x1347f4['slice'](0x6):_0x1347f4;if(_0x3f197a==='nudge'||_0x1347f4[_0x195bc0(0x25c)+_0x195bc0(0x1a6)](_0x195bc0(0x22c)))return await cameraHooks['publis'+_0x195bc0(0x185)+'l'](payloadForNudge(_0xb8754)),{'ok':!![]};return await cameraHooks['publis'+_0x195bc0(0x185)+'l'](payloadForAction(_0x1347f4)),{'ok':!![]};}function md5(_0x12ddd7){const _0x4d5d5b=_0x3267d4;return _0x456627[_0x4d5d5b(0xdc)+_0x4d5d5b(0x19e)](_0x4d5d5b(0x203))[_0x4d5d5b(0x183)](_0x12ddd7)[_0x4d5d5b(0x24f)](_0x4d5d5b(0x113));}function parseChallenge(_0xdac465){const _0x2b3aeb=_0x3267d4,_0x34fabf={'scheme':_0x2b3aeb(0x24f)},_0x552f72=String(_0xdac465||'')[_0x2b3aeb(0x269)](/^(\w+)\s+(.*)$/);if(!_0x552f72)return _0x34fabf;_0x34fabf['scheme']=_0x552f72[0x1][_0x2b3aeb(0xcd)+_0x2b3aeb(0x1e3)]();for(const _0x302fbf of _0x552f72[0x2][_0x2b3aeb(0x202)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x11b020=_0x302fbf[_0x2b3aeb(0x108)+'f']('=');if(_0x11b020<0x0)continue;const _0x12e296=_0x302fbf[_0x2b3aeb(0x1f4)](0x0,_0x11b020)[_0x2b3aeb(0x100)]();_0x34fabf[_0x12e296]=_0x302fbf[_0x2b3aeb(0x1f4)](_0x11b020+0x1)['trim']()[_0x2b3aeb(0x23e)+'e'](/^"|"$/g,'');}return _0x34fabf;}function digestAuth(_0x58e2e1,_0x2f3a7b,_0x1f422b,_0x47d93a,_0x5309c9,_0x2b6d4c){const _0x4ce6b7=_0x3267d4,_0xe636b2=String(_0x2b6d4c)['padSta'+'rt'](0x8,'0'),_0x57deda=_0x456627[_0x4ce6b7(0x16f)+_0x4ce6b7(0x201)](0x8)[_0x4ce6b7(0x1b7)+'ng'](_0x4ce6b7(0x113)),_0x52e0d=(_0x58e2e1['qop']||_0x4ce6b7(0xec))[_0x4ce6b7(0x202)](',')[0x0][_0x4ce6b7(0x100)]()||_0x4ce6b7(0xec),_0x4c9a20=md5(_0x2f3a7b+':'+_0x58e2e1[_0x4ce6b7(0x9f)]+':'+_0x1f422b),_0x558733=md5(_0x47d93a+':'+_0x5309c9),_0xd514d4=_0x58e2e1[_0x4ce6b7(0x106)]?md5(_0x4c9a20+':'+_0x58e2e1[_0x4ce6b7(0x1b6)]+':'+_0xe636b2+':'+_0x57deda+':'+_0x52e0d+':'+_0x558733):md5(_0x4c9a20+':'+_0x58e2e1[_0x4ce6b7(0x1b6)]+':'+_0x558733),_0x2710ab=['userna'+_0x4ce6b7(0x21a)+_0x2f3a7b+'\x22',_0x4ce6b7(0xe6)+'\x22'+_0x58e2e1[_0x4ce6b7(0x9f)]+'\x22',_0x4ce6b7(0x22e)+'\x22'+_0x58e2e1[_0x4ce6b7(0x1b6)]+'\x22',_0x4ce6b7(0x135)+_0x5309c9+'\x22',_0x4ce6b7(0x92)+'se=\x22'+_0xd514d4+'\x22'];if(_0x58e2e1[_0x4ce6b7(0x87)])_0x2710ab[_0x4ce6b7(0xe8)](_0x4ce6b7(0x87)+'=\x22'+_0x58e2e1[_0x4ce6b7(0x87)]+'\x22');_0x58e2e1[_0x4ce6b7(0x106)]&&_0x2710ab[_0x4ce6b7(0xe8)]('qop='+_0x52e0d,_0x4ce6b7(0x114)+_0xe636b2,'cnonce'+'=\x22'+_0x57deda+'\x22');if(_0x58e2e1[_0x4ce6b7(0x174)+_0x4ce6b7(0x217)])_0x2710ab[_0x4ce6b7(0xe8)]('algori'+_0x4ce6b7(0x101)+_0x58e2e1[_0x4ce6b7(0x174)+_0x4ce6b7(0x217)]);return _0x4ce6b7(0x128)+'\x20'+_0x2710ab['join'](',\x20');}function digestHeader(_0x97e7e1,_0x1a24e5,_0x3d4553,_0x1c7053,_0x4ff3da){return digestAuth(_0x97e7e1,_0x1a24e5,_0x3d4553,_0x1c7053,_0x4ff3da,digestState['nc']++);}function isQueryAuthUrl(_0x3d08d7){const _0x43c53a=_0x3267d4;return/[?&](user|usr|username|loginuse)=/i[_0x43c53a(0x22a)](_0x3d08d7)&&/[?&](pwd|password|pass|loginpas)=/i[_0x43c53a(0x22a)](_0x3d08d7);}function isLiveMjpeg(_0x3dc55f,_0x334a3f){const _0x3cdb2d=_0x3267d4,_0x22cb10=String(_0x3dc55f||''),_0x43274d=String(_0x334a3f||'');if(/multipart\/x-mixed-replace/i[_0x3cdb2d(0x22a)](_0x22cb10))return!![];if(/mjpeg/i[_0x3cdb2d(0x22a)](_0x22cb10))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x3cdb2d(0x22a)](_0x43274d)&&_0x43274d[_0x3cdb2d(0x1e2)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x1affa0,port:_0x3bb356,username:_0x41931b,password:_0x43418a,manufacturer:_0x3efefa,snapshotUri:_0x39fdd0}){const _0x420c77=_0x3267d4,_0x178a1a=[],_0x2a6173=(_0x5e1bee,_0x17f569)=>{const _0x7da612=_0x4808;if(!_0x5e1bee)return;const _0xa196a4={'host':_0x5e1bee,'port':Number(_0x17f569||0x50)};if(!_0x178a1a['some'](_0x59b8df=>_0x59b8df[_0x7da612(0x103)]===_0xa196a4[_0x7da612(0x103)]&&_0x59b8df['port']===_0xa196a4[_0x7da612(0x1b1)]))_0x178a1a[_0x7da612(0xe8)](_0xa196a4);};_0x2a6173(_0x1affa0,_0x3bb356&&_0x3bb356!==0x22a?_0x3bb356:0x50),_0x2a6173(_0x1affa0,0x50);if(_0x39fdd0)try{const _0x23aa4c=new URL(_0x39fdd0);_0x2a6173(_0x23aa4c[_0x420c77(0x9e)+'me'],_0x23aa4c[_0x420c77(0x1b1)]||0x50);}catch{}const _0x6e55f8=encodeURIComponent(_0x41931b||''),_0x54d3ea=encodeURIComponent(_0x43418a||''),_0xa757d=String(_0x3efefa||'')[_0x420c77(0xcd)+_0x420c77(0x1e3)](),_0x3135c8=[_0x420c77(0x1a3)+_0x420c77(0xea)+_0x420c77(0x253)+'hannel'+_0x420c77(0x1c8)+_0x420c77(0x199)+_0x420c77(0x270),_0x420c77(0x1a3)+'/Strea'+_0x420c77(0x253)+_0x420c77(0xf5)+'s/101/'+'httpPr'+'eview','/ISAPI'+_0x420c77(0xea)+_0x420c77(0x253)+_0x420c77(0xf5)+_0x420c77(0x13b)+_0x420c77(0x199)+_0x420c77(0x270),_0x420c77(0x1a3)+_0x420c77(0xea)+'ming/c'+_0x420c77(0xf5)+_0x420c77(0xb4)+'httpPr'+_0x420c77(0x270)],_0x1b39f0=[_0x420c77(0x14d)+'in/mjp'+_0x420c77(0xe0)+_0x420c77(0x91)+_0x420c77(0x24e)+'l=1&su'+_0x420c77(0xa2)+'1',_0x420c77(0x14d)+_0x420c77(0xcc)+_0x420c77(0xe0)+_0x420c77(0x91)+_0x420c77(0x24e)+_0x420c77(0xaf)+_0x420c77(0xa2)+'0'],_0x217c98=['/video'+_0x420c77(0x1ed)+_0x420c77(0x246)+_0x420c77(0x26b)+_0x6e55f8+_0x420c77(0x22f)+_0x54d3ea,_0x420c77(0x153)+_0x420c77(0x1ed)+_0x420c77(0x222)+_0x420c77(0x16d)+'e='+_0x6e55f8+(_0x420c77(0x158)+_0x420c77(0x178))+_0x54d3ea,'/video'+_0x420c77(0x1ed)+_0x420c77(0x1c7),_0x420c77(0x14b)+_0x420c77(0x1c7),_0x420c77(0x153)+_0x420c77(0x1d1),_0x420c77(0x1c4)+_0x420c77(0x104)+_0x420c77(0x257),_0x420c77(0x14d)+_0x420c77(0xcc)+'eg','/axis-'+'cgi/mj'+_0x420c77(0x188)+'eo.cgi',_0x420c77(0x232)+_0x420c77(0x14b)+_0x420c77(0x1c7),_0x420c77(0x14d)+_0x420c77(0x181)+'510/mj'+'peg.cg'+'i',_0x420c77(0x212)+'0/mjpe'+_0x420c77(0x125),_0x420c77(0xd0)+'m'];let _0x298efb=[];if(/hik|海康/[_0x420c77(0x22a)](_0xa757d))_0x298efb=[..._0x3135c8,..._0x217c98,..._0x1b39f0];else{if(/dahua|大华/[_0x420c77(0x22a)](_0xa757d))_0x298efb=[..._0x1b39f0,..._0x217c98,..._0x3135c8];else _0x298efb=[..._0x217c98,..._0x3135c8,..._0x1b39f0];}const _0x5d2980=[];for(const _0x5af64d of _0x178a1a){const _0x507899=_0x5af64d[_0x420c77(0x1b1)]===0x50?_0x420c77(0x150)+'/'+_0x5af64d['host']:_0x420c77(0x150)+'/'+_0x5af64d[_0x420c77(0x103)]+':'+_0x5af64d[_0x420c77(0x1b1)];for(const _0x21541c of _0x298efb)_0x5d2980[_0x420c77(0xe8)](_0x507899+_0x21541c);}return[...new Set(_0x5d2980)];}function openCameraHttp(_0x4634e7,_0x32de7e,_0x521d69,_0xf226a5=0xfa0){return new Promise((_0x86847b,_0x46605d)=>{const _0xf06d82=_0x4808,_0x21050b=new URL(_0x4634e7),_0x5a5d51=decodeURIComponent(_0x21050b[_0xf06d82(0x1e1)+'me']||_0x32de7e||''),_0xf43cc4=decodeURIComponent(_0x21050b[_0xf06d82(0x1da)+'rd']||_0x521d69||'');_0x21050b[_0xf06d82(0x1e1)+'me']='',_0x21050b[_0xf06d82(0x1da)+'rd']='';const _0x21b59e=_0x21050b['protoc'+'ol']===_0xf06d82(0x19d),_0x464117=_0x21b59e?_0x183ef3:_0x37ddf1;let _0x4673e4=![],_0x19e45d=0x1;const _0x9652a3=(_0x519b22,_0x18aa06)=>{if(_0x4673e4)return;_0x4673e4=!![];if(_0x519b22)_0x46605d(_0x519b22);else _0x86847b(_0x18aa06);},_0x31fd03=_0x3733e1=>{const _0x3a4c10=_0xf06d82,_0x5bf967=_0x21050b[_0x3a4c10(0x21b)+'me']+_0x21050b[_0x3a4c10(0xf4)],_0x4167d9={'Accept':_0x3a4c10(0x149)+_0x3a4c10(0x12e)+'mixed-'+_0x3a4c10(0x23e)+_0x3a4c10(0x109)+_0x3a4c10(0x1a0)+_0x3a4c10(0xfa),'Connection':_0x3a4c10(0x17e)};if(_0x3733e1?.[_0x3a4c10(0x99)]===_0x3a4c10(0x24f)&&_0x5a5d51)_0x4167d9[_0x3a4c10(0xc9)+_0x3a4c10(0x227)+'n']=digestAuth(_0x3733e1,_0x5a5d51,_0xf43cc4,_0x3a4c10(0xa0),_0x5bf967,_0x19e45d++);else _0x5a5d51&&(_0x4167d9[_0x3a4c10(0xc9)+_0x3a4c10(0x227)+'n']=_0x3a4c10(0x12c)+Buffer[_0x3a4c10(0x26e)](_0x5a5d51+':'+_0xf43cc4)[_0x3a4c10(0x1b7)+'ng'](_0x3a4c10(0x171)));return _0x4167d9;},_0x2e54a1=_0xae1f90=>{const _0x346ebb=_0xf06d82,_0x4018ce=_0x464117[_0x346ebb(0x1d0)+'t']({'protocol':_0x21050b[_0x346ebb(0x17c)+'ol'],'hostname':_0x21050b['hostna'+'me'],'port':_0x21050b[_0x346ebb(0x1b1)]||(_0x21b59e?0x1bb:0x50),'path':_0x21050b[_0x346ebb(0x21b)+'me']+_0x21050b[_0x346ebb(0xf4)],'method':_0x346ebb(0xa0),'headers':_0x31fd03(_0xae1f90),'timeout':_0xf226a5,'rejectUnauthorized':![],'agent':![]},_0x2eb8df=>{const _0x3b1f6d=_0x346ebb;if(_0x2eb8df[_0x3b1f6d(0xfc)+_0x3b1f6d(0x1ea)]===0x191&&!_0xae1f90){const _0x4b90a6=_0x2eb8df[_0x3b1f6d(0x7c)+'s'][_0x3b1f6d(0x1a2)+_0x3b1f6d(0x123)+_0x3b1f6d(0x182)],_0x12714f=parseChallenge(Array[_0x3b1f6d(0xff)+'y'](_0x4b90a6)?_0x4b90a6[0x0]:_0x4b90a6||'');_0x2eb8df[_0x3b1f6d(0x25b)](),_0x2e54a1(_0x12714f);return;}if((_0x2eb8df['status'+_0x3b1f6d(0x1ea)]||0x0)>=0x190){_0x2eb8df[_0x3b1f6d(0x25b)](),_0x9652a3(new Error(_0x3b1f6d(0x16a)+_0x2eb8df[_0x3b1f6d(0xfc)+_0x3b1f6d(0x1ea)]));return;}_0x9652a3(null,{'req':_0x4018ce,'res':_0x2eb8df,'contentType':String(_0x2eb8df[_0x3b1f6d(0x7c)+'s'][_0x3b1f6d(0x166)+_0x3b1f6d(0xa7)]||'')});});_0x4018ce['on'](_0x346ebb(0x213)+'t',()=>{const _0x5c2e2c=_0x346ebb;_0x4018ce[_0x5c2e2c(0x121)+'y'](),_0x9652a3(new Error(_0x5c2e2c(0x213)+'t'));}),_0x4018ce['on'](_0x346ebb(0x275),_0x3e02c7=>_0x9652a3(_0x3e02c7)),_0x4018ce[_0x346ebb(0x16b)]();};try{_0x2e54a1(null);}catch(_0x5491b6){_0x9652a3(_0x5491b6);}});}function peekAndClose(_0x158930,_0x45a402=0x2bc){return new Promise(_0xb9a0fd=>{const _0x55fcfd=_0x4808,_0x54becb=[];let _0x2cce2b=![];const _0x5e077f=()=>{const _0x4ddbde=_0x4808;if(_0x2cce2b)return;_0x2cce2b=!![];try{_0x158930[_0x4ddbde(0x24c)][_0x4ddbde(0x121)+'y']();}catch{}try{_0x158930[_0x4ddbde(0x210)][_0x4ddbde(0x121)+'y']();}catch{}_0xb9a0fd({'contentType':_0x158930[_0x4ddbde(0x166)+_0x4ddbde(0x179)],'peek':Buffer['concat'](_0x54becb)[_0x4ddbde(0x1b7)+'ng'](_0x4ddbde(0x8c))});};_0x158930[_0x55fcfd(0x210)]['on']('data',_0x4185c6=>{const _0x3d90ef=_0x55fcfd;_0x54becb[_0x3d90ef(0xe8)](_0x4185c6);if(Buffer[_0x3d90ef(0x25e)](_0x54becb)[_0x3d90ef(0x266)]>=0xf0)_0x5e077f();}),_0x158930[_0x55fcfd(0x210)]['on'](_0x55fcfd(0x16b),_0x5e077f),_0x158930[_0x55fcfd(0x210)]['on'](_0x55fcfd(0x275),_0x5e077f),setTimeout(_0x5e077f,_0x45a402);});}async function findNativeLive({hostname:_0x3f0597,port:_0x1e16d9,username:_0x34d29d,password:_0x3ce454,manufacturer:_0x32b47e,snapshotUri:_0x2bf58c,profileToken:_0x3aeb2c}){const _0x105382=_0x3267d4,_0x1257e5=liveCandidates({'hostname':_0x3f0597,'port':_0x1e16d9,'username':_0x34d29d,'password':_0x3ce454,'manufacturer':_0x32b47e,'snapshotUri':_0x2bf58c});if(currentCam)try{const _0x5564f9=await currentCam[_0x105382(0x7f)+_0x105382(0x18e)]({'protocol':_0x105382(0x11a),'profileToken':_0x3aeb2c}),_0x2b02a7=mediaUriOf(_0x5564f9);if(/^https?:/i['test'](_0x2b02a7)&&!/onvif/i[_0x105382(0x22a)](_0x2b02a7))_0x1257e5[_0x105382(0x234)+'t'](_0x2b02a7);}catch{}_0x1257e5[_0x105382(0xa9)](0x8);let _0x3f60c1='';const _0x20cc96=[],_0x577ce6=0x2;let _0x1b3b66=0x0;const _0x3543ca=async()=>{const _0x5e76a1=_0x105382;while(_0x1b3b66<_0x1257e5[_0x5e76a1(0x266)]&&!_0x3f60c1){const _0x1d35c4=_0x1257e5[_0x1b3b66++];try{const _0x47ee6b=await openCameraHttp(_0x1d35c4,_0x34d29d,_0x3ce454,0x640),_0x81518c=await peekAndClose(_0x47ee6b);!_0x3f60c1&&isLiveMjpeg(_0x81518c['conten'+_0x5e76a1(0x179)],_0x81518c[_0x5e76a1(0x18d)])&&(_0x3f60c1=_0x1d35c4,console['log'](_0x5e76a1(0x10a)+_0x5e76a1(0x1a7)+_0x5e76a1(0x26f)+'peg',_0x1d35c4));}catch{}}};for(let _0x31a959=0x0;_0x31a959<_0x577ce6;_0x31a959++)_0x20cc96[_0x105382(0xe8)](_0x3543ca());return await Promise[_0x105382(0x21e)](_0x20cc96),_0x3f60c1;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400;export function extractFirstJpeg(_0x397699){const _0x353578=_0x3267d4;if(!_0x397699||_0x397699[_0x353578(0x266)]<0x4)return null;const _0x45d2cb=_0x397699[_0x353578(0x108)+'f'](Buffer[_0x353578(0x26e)]([0xff,0xd8]));if(_0x45d2cb<0x0)return null;const _0x2d8c69=_0x397699[_0x353578(0x108)+'f'](Buffer[_0x353578(0x26e)]([0xff,0xd9]),_0x45d2cb+0x2);if(_0x2d8c69<0x0)return null;return Buffer[_0x353578(0x26e)](_0x397699[_0x353578(0x8a)+'ay'](_0x45d2cb,_0x2d8c69+0x2));}function requestOnce(_0x5eb295,_0x45d5f7,_0x180f27=SNAPSHOT_HARD_TIMEOUT_MS){const _0x50a97e=_0x3267d4,_0x1f164e=Math[_0x50a97e(0x196)](0x190,Number(_0x180f27)||SNAPSHOT_HARD_TIMEOUT_MS);return new Promise((_0x381e1e,_0x49f946)=>{const _0x41bfa7=_0x50a97e;let _0x2c3a8c=![],_0x456af6,_0xe71b13;const _0xe4cfe2=(_0x4ff405,_0x17973c)=>{const _0x1777f9=_0x4808;if(_0x2c3a8c)return;_0x2c3a8c=!![],clearTimeout(_0xe71b13);try{_0x456af6?.[_0x1777f9(0x121)+'y']();}catch{}if(_0x4ff405)_0x49f946(_0x4ff405);else _0x381e1e(_0x17973c);},_0xad137b=_0x5eb295[_0x41bfa7(0x17c)+'ol']===_0x41bfa7(0x19d),_0x74ef5e=_0xad137b?_0x183ef3:_0x37ddf1;_0x456af6=_0x74ef5e[_0x41bfa7(0x1d0)+'t']({'protocol':_0x5eb295[_0x41bfa7(0x17c)+'ol'],'hostname':_0x5eb295[_0x41bfa7(0x9e)+'me'],'port':_0x5eb295['port']||(_0xad137b?0x1bb:0x50),'path':_0x5eb295[_0x41bfa7(0x21b)+'me']+_0x5eb295['search'],'method':'GET','headers':_0x45d5f7,'timeout':_0x1f164e,'agent':_0xad137b?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x37a098=>{const _0xd5cde=_0x41bfa7,_0x21eed1=[];let _0x429b7a=0x0;const _0x433997=_0x1a76a5=>{const _0x28a302=_0x4808,_0x3f435e=Buffer[_0x28a302(0x25e)](_0x21eed1),_0xba6a1=extractFirstJpeg(_0x3f435e);if(_0xba6a1)return _0xe4cfe2(null,{'status':_0x37a098['status'+_0x28a302(0x1ea)]||0x0,'headers':_0x37a098[_0x28a302(0x7c)+'s'],'body':_0xba6a1}),!![];if(_0x1a76a5)return _0xe4cfe2(null,{'status':_0x37a098[_0x28a302(0xfc)+'Code']||0x0,'headers':_0x37a098[_0x28a302(0x7c)+'s'],'body':_0x3f435e}),!![];return![];};_0x37a098['on'](_0xd5cde(0x1d3),_0x2a52b1=>{const _0x58a31b=_0xd5cde;_0x21eed1[_0x58a31b(0xe8)](_0x2a52b1),_0x429b7a+=_0x2a52b1[_0x58a31b(0x266)];if(_0x433997(![]))return;_0x429b7a>SNAPSHOT_MAX_BYTES&&_0xe4cfe2(new Error(_0x58a31b(0x9b)));}),_0x37a098['on'](_0xd5cde(0x16b),()=>{if(!_0x2c3a8c)_0x433997(!![]);});}),_0xe71b13=setTimeout(()=>_0xe4cfe2(new Error(_0x41bfa7(0x195))),_0x1f164e),_0x456af6['on'](_0x41bfa7(0x213)+'t',()=>_0xe4cfe2(new Error(_0x41bfa7(0x195)))),_0x456af6['on']('error',_0x325f93=>_0xe4cfe2(_0x325f93)),_0x456af6[_0x41bfa7(0x16b)]();});}function authHeaders(_0x50c35b,_0x37b4cd,_0x38ca51){const _0x48fd56=_0x3267d4,_0x30edec=_0x50c35b[_0x48fd56(0x21b)+'me']+_0x50c35b[_0x48fd56(0xf4)];if(digestState[_0x48fd56(0x141)+_0x48fd56(0xc5)]?.['scheme']===_0x48fd56(0x24f)&&_0x37b4cd)return{'Authorization':digestHeader(digestState[_0x48fd56(0x141)+_0x48fd56(0xc5)],_0x37b4cd,_0x38ca51,_0x48fd56(0xa0),_0x30edec)};if(_0x37b4cd)return{'Authorization':'Basic\x20'+Buffer[_0x48fd56(0x26e)](_0x37b4cd+':'+_0x38ca51)[_0x48fd56(0x1b7)+'ng'](_0x48fd56(0x171))};return{};}async function fetchAuthImage(_0x2f4e7e,_0x50b62c,_0x24ba3d,_0x371845=0x0,_0xafe0e9=SNAPSHOT_HARD_TIMEOUT_MS){const _0xa229a8=_0x3267d4;if(_0x371845>0x3)throw new Error(_0xa229a8(0xce)+'过多');const _0x450152=new URL(_0x2f4e7e),_0x1a8ddd=decodeURIComponent(_0x450152['userna'+'me']||_0x50b62c||''),_0x49fbcf=decodeURIComponent(_0x450152[_0xa229a8(0x1da)+'rd']||_0x24ba3d||'');_0x450152[_0xa229a8(0x1e1)+'me']='',_0x450152[_0xa229a8(0x1da)+'rd']='';const _0x5218a9=_0x450152['pathna'+'me']+_0x450152[_0xa229a8(0xf4)];let _0x3c99a9=await requestOnce(_0x450152,authHeaders(_0x450152,_0x1a8ddd,_0x49fbcf),_0xafe0e9);if(_0x3c99a9['status']===0x191){const _0x246c46=_0x3c99a9[_0xa229a8(0x7c)+'s']['www-au'+'thenti'+_0xa229a8(0x182)]||'';digestState[_0xa229a8(0x141)+_0xa229a8(0xc5)]=parseChallenge(Array[_0xa229a8(0xff)+'y'](_0x246c46)?_0x246c46[0x0]:_0x246c46),digestState['nc']=0x1;const _0x1f4e8b={};if(digestState[_0xa229a8(0x141)+_0xa229a8(0xc5)]['scheme']===_0xa229a8(0x24f)&&_0x1a8ddd)_0x1f4e8b[_0xa229a8(0xc9)+'izatio'+'n']=digestHeader(digestState[_0xa229a8(0x141)+_0xa229a8(0xc5)],_0x1a8ddd,_0x49fbcf,_0xa229a8(0xa0),_0x5218a9);else _0x1a8ddd&&(_0x1f4e8b['Author'+'izatio'+'n']=_0xa229a8(0x12c)+Buffer[_0xa229a8(0x26e)](_0x1a8ddd+':'+_0x49fbcf)[_0xa229a8(0x1b7)+'ng'](_0xa229a8(0x171)));_0x3c99a9=await requestOnce(_0x450152,_0x1f4e8b,_0xafe0e9);}if(_0x3c99a9[_0xa229a8(0xfc)]>=0x12c&&_0x3c99a9[_0xa229a8(0xfc)]<0x190&&_0x3c99a9['header'+'s'][_0xa229a8(0x126)+'on'])return fetchAuthImage(new URL(_0x3c99a9[_0xa229a8(0x7c)+'s'][_0xa229a8(0x126)+'on'],_0x450152)[_0xa229a8(0x1e6)],_0x1a8ddd,_0x49fbcf,_0x371845+0x1,_0xafe0e9);if(_0x3c99a9[_0xa229a8(0xfc)]>=0x190)throw new Error(_0x3c99a9[_0xa229a8(0xfc)]===0x191?_0xa229a8(0x1f2)+'密码':_0xa229a8(0x8f)+_0x3c99a9[_0xa229a8(0xfc)]+')');const _0x3f2c30=String(_0x3c99a9[_0xa229a8(0x7c)+'s']['conten'+_0xa229a8(0xa7)]||'');if(_0x3f2c30[_0xa229a8(0x1e2)+'es'](_0xa229a8(0x1a8))||_0x3f2c30['includ'+'es'](_0xa229a8(0x1c1)))throw new Error('摄像头没有返'+'回图片');return _0x3c99a9[_0xa229a8(0x15a)];}function withSnapshotLock(_0x57663f){const _0x3fbffa=_0x3267d4,_0x2b98a8=snapshotTail[_0x3fbffa(0x243)](_0x57663f,_0x57663f);return snapshotTail=_0x2b98a8[_0x3fbffa(0x112)](()=>{}),_0x2b98a8;}async function waitForPtzIdle(_0x329a2e=0xfa0){const _0x50aa64=_0x3267d4;if(!ptzBusy)return;const _0xec7f0=Date[_0x50aa64(0xb8)]();while(ptzBusy&&Date[_0x50aa64(0xb8)]()-_0xec7f0<_0x329a2e){await new Promise(_0x23ad15=>setTimeout(_0x23ad15,0x28));}if(ptzBusy)return;await new Promise(_0x4db80b=>setTimeout(_0x4db80b,0x190));}export async function waitCameraReachable({timeoutMs:timeoutMs=0x640,intervalMs:intervalMs=0xdc}={}){const _0x4b6533=_0x3267d4,_0x413a3e=String(state['hostna'+'me']||'')[_0x4b6533(0x100)]();if(!_0x413a3e)return{'http':![],'rtsp':![]};const _0x27341a=Number(state[_0x4b6533(0x1b1)])||0x50,_0x5f5176=rtspPortOf(state[_0x4b6533(0x19c)+'i']),_0x27c1b5=Date[_0x4b6533(0xb8)]()+Math[_0x4b6533(0x196)](0x0,Number(timeoutMs)||0x0);do{const _0x2a95d9=Math[_0x4b6533(0x196)](0x50,_0x27c1b5-Date[_0x4b6533(0xb8)]()),_0x4014b5=Math[_0x4b6533(0x1c5)](RTSP_TCP_PROBE_MS,_0x2a95d9),[_0x41dbd0,_0x1e0763]=await Promise[_0x4b6533(0x21e)]([probeTcp(_0x413a3e,_0x27341a,_0x4014b5),state[_0x4b6533(0x19c)+'i']?probeTcp(_0x413a3e,_0x5f5176,_0x4014b5):Promise[_0x4b6533(0xb1)+'e'](![])]);if(_0x41dbd0||_0x1e0763)return{'http':_0x41dbd0,'rtsp':_0x1e0763};const _0x3b1077=Math[_0x4b6533(0x1c5)](intervalMs,Math[_0x4b6533(0x196)](0x0,_0x27c1b5-Date[_0x4b6533(0xb8)]()));if(_0x3b1077<=0x0)break;await new Promise(_0x14f74a=>setTimeout(_0x14f74a,_0x3b1077));}while(Date[_0x4b6533(0xb8)]()<_0x27c1b5);return{'http':![],'rtsp':![]};}function ffmpegRtspInputArgs(_0x516d9d,{hevc:hevc=![],oneshot:oneshot=![]}={}){const _0x2d28be=_0x3267d4,_0x5e5c2e=oneshot?hevc?_0x2d28be(0x249):_0x2d28be(0x119):hevc?_0x2d28be(0xe3)+'0':_0x2d28be(0x165),_0x2111f0=oneshot?hevc?_0x2d28be(0x249):_0x2d28be(0x119):hevc?_0x2d28be(0xe3)+'0':'500000';return[_0x2d28be(0x220)+_0x2d28be(0x1d5),_0x2d28be(0x160)+_0x2d28be(0x186),oneshot?_0x2d28be(0x275):_0x2d28be(0x1bc)+'g',_0x2d28be(0x207)+_0x2d28be(0x244)+_0x2d28be(0xb5),_0x2d28be(0x1c6),_0x2d28be(0x12a)+'ut',String(oneshot?FFMPEG_ONESHOT_TIMEOUT_US:FFMPEG_LIVE_TIMEOUT_US),_0x2d28be(0x144)+'s',oneshot?_0x2d28be(0xef)+_0x2d28be(0x161)+_0x2d28be(0x1be):_0x2d28be(0x25f),'-probe'+_0x2d28be(0xc8),_0x5e5c2e,_0x2d28be(0x23c)+_0x2d28be(0x20a)+_0x2d28be(0x127),_0x2111f0,...oneshot?[]:[_0x2d28be(0xf3)+'ds','1'],'-i',_0x516d9d,_0x2d28be(0xf6)];}async function captureFrameFromRtspOnce(_0x66d044={}){const _0x2c0ebb=_0x3267d4;if(!state[_0x2c0ebb(0x19c)+'i'])throw new Error(_0x2c0ebb(0xae)+'P\x20地址');const _0x4fe76c=Math[_0x2c0ebb(0x196)](0x320,Number(_0x66d044['timeou'+_0x2c0ebb(0x14c)])||RTSP_FRAME_TIMEOUT_MS),_0x588789=await ensureFfmpeg(),_0x53293b=injectRtspAuth(state[_0x2c0ebb(0x19c)+'i'],state[_0x2c0ebb(0x1e1)+'me'],state[_0x2c0ebb(0x1da)+'rd']),_0x4aedad=/hevc|h265/[_0x2c0ebb(0x22a)](state['encodi'+'ng']);return new Promise((_0x1322fa,_0x2b6a0e)=>{const _0x27b606=_0x2c0ebb,_0x4c5a6b=[...ffmpegRtspInputArgs(_0x53293b,{'hevc':_0x4aedad,'oneshot':!![]}),_0x27b606(0x11c)+'s:v','1',_0x27b606(0x120),'2','-f',_0x27b606(0x11f),_0x27b606(0x264)],_0x1b14c6=spawn(_0x588789,_0x4c5a6b,{'stdio':[_0x27b606(0x26a),_0x27b606(0x1ec),_0x27b606(0x1ec)]}),_0x32c316=[];let _0x1310af='',_0x5e4c34=![];_0x1b14c6[_0x27b606(0x262)]['on'](_0x27b606(0x1d3),_0x18b0b8=>_0x32c316['push'](_0x18b0b8)),_0x1b14c6['stderr']['on'](_0x27b606(0x1d3),_0x1bf4e6=>{_0x1310af+=String(_0x1bf4e6||'');});const _0x2f790c=(_0x45da71,_0x224af4)=>{const _0x1e4090=_0x27b606;if(_0x5e4c34)return;_0x5e4c34=!![],clearTimeout(_0xc0db55),ffmpegProcs[_0x1e4090(0x1f6)](_0x1b14c6);if(_0x45da71)_0x2b6a0e(_0x45da71);else _0x1322fa(_0x224af4);},_0xc0db55=setTimeout(()=>{const _0x40cf1b=_0x27b606;try{_0x1b14c6[_0x40cf1b(0x143)](_0x40cf1b(0x1bb)+'L');}catch{}_0x2f790c(new Error(_0x40cf1b(0x271)+'超时'));},_0x4fe76c);ffmpegProcs[_0x27b606(0x89)](_0x1b14c6),_0x1b14c6['on'](_0x27b606(0x17e),_0x539c72=>{const _0x3fbc6f=_0x27b606,_0x5e7323=Buffer[_0x3fbc6f(0x25e)](_0x32c316);if(_0x539c72===0x0&&_0x5e7323[_0x3fbc6f(0x266)]>0x64){_0x2f790c(null,_0x5e7323);return;}_0x2f790c(new Error(_0x1310af[_0x3fbc6f(0x100)]()||'从视频流截帧'+_0x3fbc6f(0x94)+_0x539c72+')'));}),_0x1b14c6['on'](_0x27b606(0x275),_0x24463e=>_0x2f790c(_0x24463e));});}async function captureFrameFromRtsp(_0x518757={}){return captureFrameFromRtspOnce(_0x518757);}export async function holdPreviewForCapture(){const _0x4e6e78=_0x3267d4;previewHoldDepth+=0x1;const _0x5143c8=sharedTranscode;if(previewHoldDepth>0x1)return{'transcode':_0x5143c8,'held':![]};suppressFfmpegRestart=!![],clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;if(!sharedFfmpeg||sharedFfmpeg[_0x4e6e78(0xc0)])return{'transcode':_0x5143c8,'held':![]};return console[_0x4e6e78(0x136)](_0x4e6e78(0x10a)+_0x4e6e78(0x1eb)+_0x4e6e78(0x1f1)+_0x4e6e78(0x20e)+_0x4e6e78(0x267)+'ture'),killSharedFfmpeg(),await new Promise(_0x42e8da=>setTimeout(_0x42e8da,0x50)),{'transcode':_0x5143c8,'held':!![]};}export async function releasePreviewAfterCapture(_0x50a4af){const _0x54bf00=_0x3267d4;if(!_0x50a4af||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],state['connec'+'ted']&&state['rtspUr'+'i']&&streamClients[_0x54bf00(0xc8)]>0x0&&(ffmpegNeedProbe=![],await ensureSharedFfmpeg(_0x50a4af[_0x54bf00(0x240)+'ode']));}async function getSnapshotFromOnvif(_0x185e6d={}){const _0x255f6a=_0x3267d4,_0xa927f4=Math[_0x255f6a(0x196)](0x190,Number(_0x185e6d['timeou'+_0x255f6a(0x14c)])||SNAPSHOT_HARD_TIMEOUT_MS),_0x19c347=async()=>{const _0x519242=_0x255f6a,_0x103050=await currentCam[_0x519242(0x1ce)+_0x519242(0xb2)+'ri']({});state[_0x519242(0xde)+_0x519242(0x12f)]=(typeof _0x103050===_0x519242(0x1c2)?_0x103050:_0x103050?.[_0x519242(0x81)]||'')[_0x519242(0x23e)+'e'](/&/g,'&');if(!state[_0x519242(0xde)+'otUri'])throw new Error(_0x519242(0x1cb)+_0x519242(0x19b)+'址');};!state[_0x255f6a(0xde)+_0x255f6a(0x12f)]&&await _0x19c347();try{return await fetchAuthImage(state[_0x255f6a(0xde)+'otUri'],state[_0x255f6a(0x1e1)+'me'],state[_0x255f6a(0x1da)+'rd'],0x0,_0xa927f4);}catch(_0x3886bc){if(!shouldRefreshSnapshotUri(_0x3886bc))throw _0x3886bc;return await _0x19c347(),fetchAuthImage(state[_0x255f6a(0xde)+'otUri'],state['userna'+'me'],state[_0x255f6a(0x1da)+'rd'],0x0,_0xa927f4);}}export async function getSnapshot(_0x4674d7={}){const _0x13d027=_0x3267d4;if(state[_0x13d027(0x1a1)]===_0x13d027(0x1ff)+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x13d027(0x1e0)+_0x13d027(0x239)])throw new Error('还没有连接摄'+'像头');const _0x190a6b=_0x4674d7[_0x13d027(0x1a1)]==='onvif',_0x55ddae=_0x4674d7[_0x13d027(0x12d)+_0x13d027(0xf1)+_0x13d027(0x19a)]===!![],_0x47fc57=Number(_0x4674d7[_0x13d027(0xad)+'Ms'])>0x0?Number(_0x4674d7[_0x13d027(0xad)+'Ms']):0x0,_0x5e350a=_0x47fc57?Date[_0x13d027(0xb8)]()+_0x47fc57:0x0,_0x186f82=()=>_0x5e350a?Math[_0x13d027(0x196)](0x0,_0x5e350a-Date[_0x13d027(0xb8)]()):0x7530;let _0x37781a=null;!_0x55ddae&&state[_0x13d027(0x19c)+'i']&&(_0x37781a=await holdPreviewForCapture());try{if(_0x47fc57){const _0x35bf9a=Math[_0x13d027(0x1c5)](0x640,Math[_0x13d027(0x196)](0x0,_0x186f82()-0x384)),_0x48359b=_0x35bf9a>0x50?await waitCameraReachable({'timeoutMs':_0x35bf9a}):{'http':![],'rtsp':![]};if(!_0x48359b[_0x13d027(0xac)]&&!_0x48359b[_0x13d027(0xf2)]&&_0x186f82()<0x384)throw new Error(_0x13d027(0x256)+'线');}return await withSnapshotLock(async()=>{const _0x38ab2d=_0x13d027;await waitForPtzIdle(Math[_0x38ab2d(0x1c5)](0x320,_0x186f82()));const _0x39fa7a=Math[_0x38ab2d(0x1c5)](_0x190a6b?SNAPSHOT_FAST_TIMEOUT_MS:SNAPSHOT_HARD_TIMEOUT_MS,Math['max'](0x258,_0x186f82()-0xc8)),_0x3dec0f=()=>getSnapshotFromOnvif({'timeoutMs':_0x39fa7a}),_0x4dbf38=()=>captureFrameFromRtspOnce({'timeoutMs':Math[_0x38ab2d(0x1c5)](RTSP_FRAME_TIMEOUT_MS,Math['max'](0x320,_0x186f82()-0x64))});if(_0x190a6b)try{const _0x168a93=await _0x3dec0f();return console[_0x38ab2d(0x136)](_0x38ab2d(0x10a)+_0x38ab2d(0x131)+_0x38ab2d(0xcf)+_0x38ab2d(0x17a),_0x168a93[_0x38ab2d(0x266)]),_0x168a93;}catch(_0x5cc19b){console[_0x38ab2d(0x1ba)](_0x38ab2d(0x10a)+_0x38ab2d(0x131)+_0x38ab2d(0xcf)+_0x38ab2d(0x17a),_0x5cc19b?.['messag'+'e']||_0x5cc19b);if(!state[_0x38ab2d(0x19c)+'i']||_0x186f82()<0x384)throw _0x5cc19b;const _0x178f76=await _0x4dbf38();return console['log'](_0x38ab2d(0x10a)+'a]\x20rts'+_0x38ab2d(0x1ad)+_0x38ab2d(0x1ee)+_0x38ab2d(0x1dd),_0x178f76[_0x38ab2d(0x266)]),_0x178f76;}if(state[_0x38ab2d(0x19c)+'i']){let _0x2bb0dc=null;const _0x84ae1=_0x186f82()<0x9c4?0x1:0x2;for(let _0x1e44da=0x0;_0x1e44da<_0x84ae1;_0x1e44da++){try{const _0x2fbf8a=await _0x4dbf38();return console[_0x38ab2d(0x136)](_0x38ab2d(0x10a)+_0x38ab2d(0x11d)+_0x38ab2d(0x1ad)+'e',_0x2fbf8a[_0x38ab2d(0x266)],_0x1e44da>0x0?_0x38ab2d(0x241)+_0x1e44da:''),_0x2fbf8a;}catch(_0x2fc27b){_0x2bb0dc=_0x2fc27b,console[_0x38ab2d(0x1ba)](_0x38ab2d(0x10a)+_0x38ab2d(0x11d)+_0x38ab2d(0x1ad)+_0x38ab2d(0xfe)+_0x38ab2d(0x22d),_0x1e44da+0x1,_0x2fc27b?.[_0x38ab2d(0x13e)+'e']||_0x2fc27b),_0x1e44da<_0x84ae1-0x1&&_0x186f82()>0x384&&await new Promise(_0x545233=>setTimeout(_0x545233,0xc8));}}console[_0x38ab2d(0x1ba)](_0x38ab2d(0x10a)+_0x38ab2d(0x11d)+'p\x20fram'+_0x38ab2d(0x1ee)+_0x38ab2d(0xdb)+_0x38ab2d(0x152),_0x2bb0dc?.[_0x38ab2d(0x13e)+'e']||_0x2bb0dc);}return _0x3dec0f();});}finally{!_0x55ddae&&await releasePreviewAfterCapture(_0x37781a);}}async function ptzOnvifNudge(_0x554ca5){const _0x178748=_0x3267d4,_0x3d94ea=onvifVectorForAction(_0x554ca5);if(!_0x3d94ea)throw new Error(_0x178748(0x24d)+'方向');if(!state['ptz'])throw new Error(_0x178748(0x1cb)+'有云台,或\x20'+'Onvif\x20'+_0x178748(0x1c3)+'Z');ptzBusy&&await waitForPtzIdle();const _0x4ffaf0=async _0x2478a1=>{const _0x4ac8bd=_0x178748;if(!_0x2478a1)throw new Error(_0x4ac8bd(0x1dc)+'像头');const _0x19aabc={'x':_0x3d94ea['x']||0x0,'y':_0x3d94ea['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x3d94ea['zoom']?(_0x19aabc[_0x4ac8bd(0x139)]=_0x3d94ea[_0x4ac8bd(0x139)],_0x19aabc[_0x4ac8bd(0x242)+_0x4ac8bd(0x198)]=!![]):_0x19aabc[_0x4ac8bd(0x242)+_0x4ac8bd(0x1c9)+_0x4ac8bd(0x265)]=!![],await _0x2478a1['contin'+_0x4ac8bd(0x1e9)+'ve'](_0x19aabc),await _0x2478a1[_0x4ac8bd(0x1d2)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x4ffaf0(currentCam);}catch(_0x459127){if(!isNetworkError(_0x459127))throw new Error(cameraError(_0x459127,_0x178748(0x25a)));const _0x1ac50c=await refreshOnvif();return await _0x4ffaf0(_0x1ac50c);}}catch(_0x459b10){throw new Error(cameraError(_0x459b10,_0x178748(0x25a)));}finally{ptzBusy=![];}}export async function ptzMove(_0x586f11,_0x1b8c42={}){const _0x5888a3=_0x3267d4;if(gimbalAvailable()&&state[_0x5888a3(0x1a1)]!==_0x5888a3(0x1b2))return ptzOnboard(_0x586f11,_0x1b8c42);if(!state[_0x5888a3(0x1e0)+_0x5888a3(0x239)])throw new Error(_0x5888a3(0x1dc)+'像头');const _0x1aeeff=String(_0x1b8c42[_0x5888a3(0x9a)]||''),_0x588d1c=String(_0x586f11||''),_0x515af9=_0x588d1c[_0x5888a3(0x25c)+'With'](_0x5888a3(0x22c))?_0x588d1c[_0x5888a3(0x1f4)](0x6):_0x588d1c;if(_0x1aeeff==='nudge'||_0x588d1c[_0x5888a3(0x25c)+'With']('nudge:'))return ptzOnvifNudge(_0x515af9);if(_0x586f11!==_0x5888a3(0x1d2)&&ptzBusy)return{'ok':!![]};while(_0x586f11===_0x5888a3(0x1d2)&&ptzBusy){await new Promise(_0x2962c4=>setTimeout(_0x2962c4,0x28));}const _0x4429fe=async _0xcb0939=>{const _0x1b2860=_0x5888a3;if(!_0xcb0939)throw new Error(_0x1b2860(0x1dc)+'像头');if(_0x586f11===_0x1b2860(0x1d2))return await _0xcb0939['stop']({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x34a532=onvifVectorForAction(_0x586f11);if(!_0x34a532)throw new Error(_0x1b2860(0x24d)+'方向');if(!state[_0x1b2860(0x163)])throw new Error('这台摄像头没'+'有云台,或\x20'+_0x1b2860(0xd1)+'未开放\x20PT'+'Z');const _0x192823={'x':_0x34a532['x']||0x0,'y':_0x34a532['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x34a532['zoom']?(_0x192823[_0x1b2860(0x139)]=_0x34a532[_0x1b2860(0x139)],_0x192823['onlySe'+_0x1b2860(0x198)]=!![]):_0x192823['onlySe'+_0x1b2860(0x1c9)+_0x1b2860(0x265)]=!![],await _0xcb0939[_0x1b2860(0x86)+_0x1b2860(0x1e9)+'ve'](_0x192823),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x4429fe(currentCam);}catch(_0x5f0c16){if(!isNetworkError(_0x5f0c16))throw new Error(cameraError(_0x5f0c16,'云台控制失败'));const _0x292cc8=await refreshOnvif();return await _0x4429fe(_0x292cc8);}}catch(_0x2f3a01){throw new Error(cameraError(_0x2f3a01,_0x5888a3(0x25a)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x16bbff={}){const _0x67b043=_0x3267d4;if(state[_0x67b043(0x1e0)+_0x67b043(0x239)])return publicState();if(_0x16bbff['source']===_0x67b043(0x1ff)+'d')throw new Error(_0x67b043(0xc2)+'支持');const _0x4cecb1=String(_0x16bbff[_0x67b043(0x9e)+'me']||'')[_0x67b043(0x100)]();if(!_0x4cecb1)throw new Error(_0x67b043(0x137)+_0x67b043(0x93)+_0x67b043(0x13d)+_0x67b043(0x1f8));return connectCamera({'hostname':_0x4cecb1,'port':Number(_0x16bbff[_0x67b043(0x1b1)]||0x50),'username':String(_0x16bbff[_0x67b043(0x1e1)+'me']||'')['trim'](),'password':String(_0x16bbff['passwo'+'rd']||''),'path':String(_0x16bbff[_0x67b043(0x1a9)]||_0x67b043(0x1db)+_0x67b043(0x247)+_0x67b043(0x1ac)+_0x67b043(0x251))[_0x67b043(0x100)]()||'/onvif'+_0x67b043(0x247)+_0x67b043(0x1ac)+_0x67b043(0x251)});}export async function ptzContinuousMove(_0x114d6e,_0x1dce46,_0x2f808e,_0x11e217=0x1){const _0x488e17=_0x3267d4;if(gimbalAvailable()&&state[_0x488e17(0x1a1)]!==_0x488e17(0x1b2)){const _0x475c7e=payloadForVector(_0x114d6e,_0x1dce46);if(!cameraHooks['publis'+'hGimba'+'l'])throw new Error(_0x488e17(0x1fb)+'绪');await cameraHooks[_0x488e17(0x1f5)+_0x488e17(0x185)+'l'](_0x475c7e);if(_0x475c7e[_0x488e17(0x1e7)]!=='stop'){const _0x3c93d4=Math[_0x488e17(0x196)](0x190,Math['min'](0xfa0,Math[_0x488e17(0x10b)](Number(_0x11e217)||0x1)*0x3e8));setTimeout(()=>{const _0x5097da=_0x488e17;cameraHooks[_0x5097da(0x1f5)+_0x5097da(0x185)+'l']?.({'action':_0x5097da(0x1d2)})[_0x5097da(0x112)](()=>{});},_0x3c93d4);}return{'ok':!![]};}if(!state[_0x488e17(0x1e0)+_0x488e17(0x239)])throw new Error(_0x488e17(0x1dc)+'像头');const _0x64937b=clampPtzSpeed(_0x114d6e),_0x5067ec=clampPtzSpeed(_0x1dce46),_0x4dcea5=clampPtzSpeed(_0x2f808e),_0x2e1a08=Math[_0x488e17(0x196)](0x3e8,Math[_0x488e17(0x1c5)](0x2710,Math['floor'](Number(_0x11e217)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x3965df=async _0x151a8a=>{const _0x466b93=_0x488e17;if(!_0x151a8a)throw new Error('还没有连接摄'+'像头');if(!state[_0x466b93(0x163)]&&(_0x64937b||_0x5067ec||_0x4dcea5))throw new Error(_0x466b93(0x1cb)+_0x466b93(0x21c)+'Onvif\x20'+'未开放\x20PT'+'Z');const _0x1d3f5c={'x':_0x64937b,'y':_0x5067ec,'timeout':_0x2e1a08};_0x4dcea5&&(_0x1d3f5c[_0x466b93(0x139)]=_0x4dcea5);if(_0x4dcea5&&!_0x64937b&&!_0x5067ec)_0x1d3f5c[_0x466b93(0x242)+_0x466b93(0x198)]=!![];else!_0x4dcea5&&(_0x1d3f5c['onlySe'+_0x466b93(0x1c9)+_0x466b93(0x265)]=!![]);return await _0x151a8a[_0x466b93(0x86)+_0x466b93(0x1e9)+'ve'](_0x1d3f5c),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x3965df(currentCam);}catch(_0x2eaa16){if(!isNetworkError(_0x2eaa16))throw new Error(cameraError(_0x2eaa16,_0x488e17(0x25a)));const _0x342717=await refreshOnvif();return await _0x3965df(_0x342717);}}catch(_0x108c9e){throw new Error(cameraError(_0x108c9e,_0x488e17(0x25a)));}finally{ptzBusy=![];}}function bitstreamFilter(_0x5978d2){const _0x1441cf=_0x3267d4;if(/hevc|h265/[_0x1441cf(0x22a)](_0x5978d2))return'hevc_m'+_0x1441cf(0xe1)+_0x1441cf(0x17d);if(/h264|avc/[_0x1441cf(0x22a)](_0x5978d2))return'h264_m'+_0x1441cf(0xe1)+_0x1441cf(0x17d);return'';}function shouldTranscode(_0x3b7748=![]){const _0xc16c5c=_0x3267d4;return _0x3b7748||/hevc|h265/[_0xc16c5c(0x22a)](state['encodi'+'ng']);}function broadcastTs(_0x4ee24a){const _0x512e09=_0x3267d4;if(!_0x4ee24a?.[_0x512e09(0x266)])return;for(const _0x43a842 of streamClients){try{if(_0x43a842['writab'+_0x512e09(0xb6)+_0x512e09(0xd7)])continue;_0x43a842[_0x512e09(0xc1)](_0x4ee24a);}catch{streamClients[_0x512e09(0x1f6)](_0x43a842);}}}function killSharedFfmpeg(){const _0x2d6ebe=_0x3267d4;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null,ffmpegEpoch+=0x1;const _0x54218c=sharedFfmpeg;sharedFfmpeg=null;if(!_0x54218c)return;ffmpegProcs['delete'](_0x54218c);try{_0x54218c[_0x2d6ebe(0x262)]?.[_0x2d6ebe(0x18c)+_0x2d6ebe(0x216)+_0x2d6ebe(0x170)](_0x2d6ebe(0x1d3)),_0x54218c[_0x2d6ebe(0x143)]('SIGKIL'+'L');}catch{}}function scheduleFfmpegRestart(_0x574446){const _0x110bc8=_0x3267d4;if(suppressFfmpegRestart)return;if(!state['connec'+_0x110bc8(0x239)]||!streamClients[_0x110bc8(0xc8)])return;const {delayMs:_0x48debe,nextBackoffMs:_0x54b2b3,probe:_0x3aac65}=nextFfmpegRestartDelay({'gotData':_0x574446,'backoffMs':ffmpegBackoffMs});ffmpegBackoffMs=_0x54b2b3,ffmpegNeedProbe=_0x3aac65,console[_0x110bc8(0x1ba)](_0x110bc8(0x1ca)+'g]\x20exi'+_0x110bc8(0x122)+_0x110bc8(0x8b),_0x48debe,'ms',_0x3aac65?'probe':_0x110bc8(0x156)),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{ffmpegRestartTimer=null,void resumeSharedFfmpeg();},_0x48debe);}async function resumeSharedFfmpeg(){const _0x2f1f45=_0x3267d4;if(suppressFfmpegRestart||!state[_0x2f1f45(0x1e0)+_0x2f1f45(0x239)]||!streamClients[_0x2f1f45(0xc8)])return;if(ffmpegNeedProbe){const _0x968c=await probeTcp(state['hostna'+'me'],rtspPortOf(state['rtspUr'+'i']),RTSP_TCP_PROBE_MS);if(suppressFfmpegRestart||!state[_0x2f1f45(0x1e0)+'ted']||!streamClients[_0x2f1f45(0xc8)])return;if(!_0x968c){console[_0x2f1f45(0x1ba)]('[ffmpe'+_0x2f1f45(0x1d9)+_0x2f1f45(0xdf)+'ed',state[_0x2f1f45(0x9e)+'me'],rtspPortOf(state['rtspUr'+'i'])),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}await ensureSharedFfmpeg(sharedTranscode);}async function ensureSharedFfmpeg(_0x575d6b){const _0x666a5b=_0x3267d4,_0xb7dd77=!!_0x575d6b;if(sharedFfmpeg&&!sharedFfmpeg[_0x666a5b(0xc0)]){if(sharedTranscode===_0xb7dd77)return;console[_0x666a5b(0x136)](_0x666a5b(0x1ca)+_0x666a5b(0x1de)+_0x666a5b(0xc6),sharedTranscode?_0x666a5b(0x117):_0x666a5b(0x118),'->',_0xb7dd77?_0x666a5b(0x117):_0x666a5b(0x118)),killSharedFfmpeg();}const _0x50fe95=++ffmpegEpoch;if(ffmpegNeedProbe){const _0x4f2f3f=await probeTcp(state['hostna'+'me'],rtspPortOf(state[_0x666a5b(0x19c)+'i']),RTSP_TCP_PROBE_MS);if(_0x50fe95!==ffmpegEpoch)return;if(!_0x4f2f3f){console['warn'](_0x666a5b(0x1ca)+'g]\x20ski'+_0x666a5b(0xd2)+_0x666a5b(0x177)+_0x666a5b(0x1a5)+'achabl'+'e'),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}let _0x4338f4;try{_0x4338f4=await ensureFfmpeg();}catch(_0x1e47bb){console['warn'](_0x666a5b(0x1ca)+'g]',_0x1e47bb[_0x666a5b(0x13e)+'e']);return;}if(_0x50fe95!==ffmpegEpoch)return;if(sharedFfmpeg&&!sharedFfmpeg[_0x666a5b(0xc0)]){if(sharedTranscode===_0xb7dd77)return;killSharedFfmpeg();}if(!state[_0x666a5b(0x19c)+'i']||!state[_0x666a5b(0x1e0)+'ted'])return;const _0x2c95f7=injectRtspAuth(state['rtspUr'+'i'],state[_0x666a5b(0x1e1)+'me'],state['passwo'+'rd']),_0x2818e8=/hevc|h265/[_0x666a5b(0x22a)](state[_0x666a5b(0x9c)+'ng']),_0x5c97d2=ffmpegRtspInputArgs(_0x2c95f7,{'hevc':_0x2818e8,'oneshot':![]});if(_0xb7dd77)_0x5c97d2[_0x666a5b(0xe8)](_0x666a5b(0x138),_0x666a5b(0x23f)+'4','-prese'+'t',_0x666a5b(0x82)+_0x666a5b(0x15d),'-tune',_0x666a5b(0x254)+_0x666a5b(0x215),_0x666a5b(0x83)+_0x666a5b(0x12b),_0x666a5b(0x154)+'ne',_0x666a5b(0x15c)+'mt','yuv420'+'p',_0x666a5b(0xc3),'0','-g','15',_0x666a5b(0x14f),_0x666a5b(0xb0)+_0x666a5b(0x20f)+_0x666a5b(0x148)+_0x666a5b(0xe2)+'not(is'+_0x666a5b(0x110)+'ev_sel'+_0x666a5b(0x18f)+_0x666a5b(0x14e)+_0x666a5b(0xca)+_0x666a5b(0x130)+_0x666a5b(0x167)+_0x666a5b(0x192)+_0x666a5b(0xfd));else{_0x5c97d2[_0x666a5b(0xe8)](_0x666a5b(0x138),_0x666a5b(0x118));const _0x458bba=bitstreamFilter(state['encodi'+'ng']);if(_0x458bba)_0x5c97d2[_0x666a5b(0xe8)](_0x666a5b(0x223),_0x458bba);}_0x5c97d2[_0x666a5b(0xe8)]('-f','mpegts',_0x666a5b(0xf9)+_0x666a5b(0x172),'0',_0x666a5b(0xdd)+_0x666a5b(0x21f),'0','-flush'+_0x666a5b(0x15f)+'ts','1',_0x666a5b(0x264));if(_0x50fe95!==ffmpegEpoch)return;sharedTranscode=_0xb7dd77;const _0x4367fd=spawn(_0x4338f4,_0x5c97d2,{'stdio':[_0x666a5b(0x26a),_0x666a5b(0x1ec),_0x666a5b(0x1ec)]});sharedFfmpeg=_0x4367fd,ffmpegProcs[_0x666a5b(0x89)](_0x4367fd);let _0x553a33=![];console[_0x666a5b(0x136)](_0x666a5b(0x1ca)+'g]',_0xb7dd77?_0x666a5b(0x240)+'ode\x20h2'+'64':'copy\x20'+(state[_0x666a5b(0x9c)+'ng']||_0x666a5b(0xe4)+'n'),state[_0x666a5b(0x9e)+'me']),_0x4367fd['stdout']['on'](_0x666a5b(0x1d3),_0x328278=>{const _0x582b15=_0x666a5b;!_0x553a33&&(_0x553a33=!![],ffmpegNeedProbe=![],console[_0x582b15(0x136)]('[ffmpe'+_0x582b15(0x1f3)+_0x582b15(0x1ae)+'es',_0x328278['length'])),ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,broadcastTs(_0x328278);}),_0x4367fd[_0x666a5b(0x15e)]['on'](_0x666a5b(0x1d3),_0x45a8fc=>{const _0x267051=_0x666a5b,_0x1a43c2=String(_0x45a8fc||'')[_0x267051(0x100)]();if(_0x1a43c2)console[_0x267051(0x1ba)](_0x267051(0x1ca)+'g]',_0x1a43c2);}),_0x4367fd['on'](_0x666a5b(0x275),_0x3465ca=>{const _0x61c8c4=_0x666a5b;console[_0x61c8c4(0x1ba)](_0x61c8c4(0x1ca)+'g]\x20spa'+'wn',_0x3465ca[_0x61c8c4(0x13e)+'e']);}),_0x4367fd['on'](_0x666a5b(0x225),_0x3a6143=>{const _0x32c162=_0x666a5b;ffmpegProcs[_0x32c162(0x1f6)](_0x4367fd);if(sharedFfmpeg===_0x4367fd)sharedFfmpeg=null;console[_0x32c162(0x1ba)](_0x32c162(0x1ca)+_0x32c162(0x10e)+'t',_0x3a6143,_0x32c162(0x1d3),_0x553a33,'client'+'s',streamClients[_0x32c162(0xc8)]),scheduleFfmpegRestart(_0x553a33);});}function startMpegtsStream(_0x280586,_0x57e164){const _0x488860=_0x3267d4,_0x11c468=shouldTranscode(String(_0x280586['query']?.['codec']||'')===_0x488860(0x117));_0x280586[_0x488860(0x107)+_0x488860(0x255)](0x0),_0x57e164[_0x488860(0x107)+'eout'](0x0),_0x280586[_0x488860(0x26d)]?.[_0x488860(0x107)+_0x488860(0x255)](0x0),_0x57e164[_0x488860(0x26d)]?.['setTim'+_0x488860(0x255)](0x0),_0x280586[_0x488860(0x26d)]?.[_0x488860(0x191)+'elay']?.(!![]),_0x57e164[_0x488860(0x26d)]?.[_0x488860(0x191)+_0x488860(0x17b)]?.(!![]),_0x57e164[_0x488860(0x1a4)+_0x488860(0x20d)]('Conten'+_0x488860(0x85),_0x488860(0x157)+_0x488860(0x16e)),_0x57e164[_0x488860(0x1a4)+_0x488860(0x20d)](_0x488860(0xee)+_0x488860(0x7b)+'l',_0x488860(0x23a)+_0x488860(0x7e)+_0x488860(0x151)+',\x20must'+_0x488860(0x260)+_0x488860(0x221)),_0x57e164['setHea'+_0x488860(0x20d)](_0x488860(0x1b0)+_0x488860(0x127),_0x488860(0x214)+_0x488860(0x1bd)),_0x57e164[_0x488860(0x1a4)+_0x488860(0x20d)](_0x488860(0x1fe)+_0x488860(0x10d)+_0x488860(0xb9),'no');if(typeof _0x57e164[_0x488860(0x228)+_0x488860(0x274)]===_0x488860(0x134)+'on')_0x57e164[_0x488860(0x228)+_0x488860(0x274)]();streamClients[_0x488860(0x89)](_0x57e164),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x11c468);let _0x4318fb=![];const _0x56bf99=()=>{const _0x3c2b3d=_0x488860;if(_0x4318fb)return;_0x4318fb=!![],streamClients[_0x3c2b3d(0x1f6)](_0x57e164);try{if(!_0x57e164[_0x3c2b3d(0xe5)+_0x3c2b3d(0x129)+'d'])_0x57e164['end']();}catch{}streamClients['size']===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x5fab8f=_0x3c2b3d;ffmpegIdleTimer=null;if(streamClients[_0x5fab8f(0xc8)]===0x0)killSharedFfmpeg();},0xfa0));};_0x280586['on'](_0x488860(0x17e),_0x56bf99),_0x57e164['on'](_0x488860(0x17e),_0x56bf99);}function _0x5869(){const _0x4604a9=['C2TPCfbY','yxj0l3GT','B3rvCMK','vfmTu1rb','yv0GB252','yv0GBgL2','xsSP','zNvUy3rP','DxjPpsi','Bg9N','6k+35ywi5zYOie1p','lwm6DG','EM9VBq','Agv2yW','CY8XmdmV','yv0GCMv0','5P6I44cn6Ag16ywn572U5BM2','BwvZC2fN','tgLZDgvU','BgL0AwvZ','y2HHBgXL','l2fWAs9J','A2LSBa','lwzMBgfN','5As06kAb5zYO572r6Ag16yEm','C2HVDcb1','ihvYAq','y3rFDhLW','BxvSDgLW','uhjHz21H','l21QCgvN','De1Z','l2nNAs1I','DcKPlhnL','lxzM','Ahr0CdOV','lwnHy2HL','BNzPzG','l3zPzgvV','yMfZzwXP','AwBVViZLUBBNU5NOV5K','Ag90','DMLKzw8V','jMXVz2LU','BwfW','yM9KEq','zq0kq29U','lxbPEf9M','yxn0','C3rKzxjY','x3bHy2TL','lwXVz2XL','zxiRz2vU','CNKGC2fT','Chr6','BwfNzs9Q','ntaWmdaW','y29UDgvU','uLrqvfmS','BwPWzwC','BwfUDwzH','Ahr0Cca','zw5K','ufrA','B2DPBNvZ','BxaYDa','CMfUzg9T','DgvUzxjZ','yMfZzty0','Bgf5','BwL4zwqT','ywXNB3jP','zgv2AwnL','zgLZy292','BIWGCNrZ','CgfZpq','Dfr5Cgu','ChnOB3q','zwXHEq','ChjVDg9J','BMv4yG','y2XVC2u','mJe4ndeYn2zis2zbvW','DxjU','Aw4VAgKZ','y2f0zq','DxbKyxrL','t1yYnJqW','AeDPBwjH','DMvS','B3zLCNK','CgCVDMLK','6l+y5RkH5PYj55s76z2I77Ym','z2v0','BMvJDcbM','CMvTB3zL','CgvLAW','zwfTvxjP','zwn0zwrF','6lsM5y+35OIw5A+g56cb5lIn','C2v0tM9e','C2nHBgu9','C2nVCgvZ','zvvYBa','5OIQ5zU+6lAf5PE2','Bwf4','6Ag16l+E5O6L5Bga5z+F572r','BMrAB29T','Ahr0CfbY','B2XK','5PYj5O+q5l6B5OQt5zU+5zYW','CNrZCfvY','Ahr0Chm6','sgfZAa','B3jTyxrP','z2uVANbL','C291CMnL','D3D3lwf1','l0Ltqvbj','C2v0sgvH','Ccb1BNjL','v2L0Aa','yv0GBMf0','Eg1S','Cgf0Aa','tMv0D29Y','ys9KAxnH','zv9Zzxj2','CcbMCMfT','C3qGyNL0','ue9tva','q29UBMvJ','Cg9YDa','B252Awy','BMfTzq','CNKGzMfP','Aw5MBW','BM9Uy2u','Dg9tDhjP','zsbZzwfY','AgfYzhDH','D2fYBG','u0Lhs0Lm','D2fYBMLU','BgL2zq','ChrZ','tgfIzwW','BM8Ty2fJ','AhrTBa','C3rYAw5N','5PYQ5BYa5Ps+ifbu','l21QCgCV','BwLU','DgnW','lMnNAq','CY8XmdiV','BMrqyw5u','w2zMBxbL','6l+z5y+W5Pge5yop5As05RkH','ywrKCMvZ','BMrHCNK9','z2v0u25H','qwDLBNq','CMvXDwvZ','lM1QCgC','C3rVCa','zgf0yq','l2nHBwvY','yMfUBMvY','6k+35ywi6l+E5O6L5Pge5yop','ChjVzMLS','zNjHBwu','z10GCNrZ','CgfZC3DV','l29UDMLM','6l+y5RkH5PYj6l+E5O6L5Pge','yMfJAW','z10GC3DP','5P2/6l295Pge5yop5As06l+E','y29UBMvJ','DxnLCM5H','Aw5JBhvK','CKnHC2u','nda0EhP1Cfbp','vxjP','AhjLzG','ywn0Aw9U','zw5KCg9P','Dw91C01V','q29Kzq','yv0GCgf1','CgLWzq','C3rYzwfT','zsbMywXS','CcbZB2fW','ANbLzW','C2uGChjL','5OIQ5zU+6zYa6kAb6lsM5y+3','z10GzMLY','C2XPy2u','ChvIBgLZ','zgvSzxrL','AM9PBG','6l+E5O6L5Pge5yop5As0','lcbTDxn0','xsbKAxnJ','5lQr5y+W6ycA6ygt5PYQ5BcX','ChjVyMvn','rw5JB2rP','wc1by2nL','B25IB2fY','B252Awy6','qNL0zxm','C3bSAxq','Bwq1','luXLBMD0','nta5mxfxyKTUrW','CNKGzgLZ','lxj0C3bF','tNvTyMvY','AdOG','EMvKDxjH','D2LKDgG','uLrtua','zgvY','DMLLDYbM','pwvXkhbP','CMvZ','z2v0rgv2','l2XPDMuV','DgLTzw91','A2vLCc1H','DgvUy3K','qwXStgLZ','DgHT','mtm5nZi5nMnOCwjPrG','CMvwzxjZ','Bwu9iG','Cgf0Ag5H','5PYj5lQr5y+W77Ym5OIwia','yxrJAa','ywXS','zwXVywq','lwHPzgvF','AwrHDgu','lMnNAt9S','lwjZzJP2','5lIn5lIkia','zxHPDa','ztSGyM91','AxPHDgLV','zMX1C2Hi','zMLYBxDH','DgvZDa','A2LUza','BNvKz2u6','Bxb0','BM9Uy2u9','jNb3zd0','zMLSDgvY','ANnVBG','l2LWy2fT','u291CMnL','Dw5ZAgLM','wefKzhjZ','Cg9ZDa','CgvNdqPd','6yEn5PAW6l+E5O6L44cc','DgvK','BM8TC3rV','5P2/6l295Pge5yop5As0','lwfUywX5','yv0GzgLZ','CMvWBgfJ','BgLIEdi2','DhjHBNnJ','CMv0CNK9','B25SEvnL','DgHLBG','DhjHBNnW','C2HVDa','lMnNAt91','l2rLDMLJ','CM91BMq','odaWmdaW','zcWGC2TP','ls1MCMfT','CMvX','5lIn5PsV5OYb55Qe5lQr5y+W','y2HHBM5L','zgLNzxn0','mtq4otyWntzrzun0Cuq','AwnL','zvrVA2vU','BwLUzY9J','EMvYB2XH','zw91Da','5Pge5yop5As05PQc5PE256A7','BwPWzW','B25Jzq','zgLZy29U','5lQr5y+W5O6N5yI25AsX6lsL','CMvZDw1L','C3rHCNrZ','6l+E5O6L5Pge5yop5As05AsX','y29Uy2f0','z2vUChrZ','lxjLDMfS','ywn0AxzL','C3rKB3v0','AgfZ','CgLWztOX','AwX0','BgvUz3rO','B3iGy2fW','Aw1Hz2uV','Bwf0y2G','AwDUB3jL','C2vYpq','ywLS','C29JA2v0','zNjVBq','AxzLig1Q','zxzPzxC','5lUo6kEg6Akr5Rwb5OIQ5BIN','CMvJDa','q29UDgvU','zwfKzxjZ','zxjYB3i','Bw9KzwW','q29UDhjV','AgvHzgvY','w29UDMLM','CMuSig5V','z2v0u3rY','AYb0Aw1L','DxjP','DwX0CMfM','lxbYB2zP','z2LTyMfS','Dc1uExbL','y29UDgLU','B3bHCxvL','oti3mtj3q0ruzLq','ywrK','C3vIyxjY','yxj0igLU','Bgf0Aw4X','zf9WCMv2','BgL2zvvY','5OIQ5zU+5AsX6lsL77Yi','ntyYnJiWB0PmqNDe','BY5Jz2K/','CMvZCg9U','u1pJGiZOP4BOP4NKUk0','5AsX6lsL77Yi','xsbZBMfW','ChjVBwLZ','BMvJDa','ChjVyMu','C2nOzw1L','ChjLC3m','5OIQ5zU+6l+h5AsN','zw5JB2rP','BgL2zurP','Ag9ZDg5H','CMvHBg0','r0vu','mZa4D0vMzvDY','yNr5Cgu9','6l+y5RkH5PYj6ycj5lITia','mJK4mgfov05OCW','dqOncG','6k+35AgR5yAz5Pge5yop5As0','Dc10ExbL','y3r1CMvY','C3bSAwnL','CMvUy2u','57Q/44cc6k+356In562j6iEQ','Ahr0Ca','yNvKz2v0','5RkH5PYjifjuuW','Bd0XjNn1','C2vSzwn0','CMvZB2X2','ChnOB3rv','BNzPzIdMNym','CY8YmdiV','B3j0','BgvozwvK','5lIQ6lsM5y+35BYaie8','BM93','zxjPBMC','Aw9U','igzHAwW','y2fWywjP','zsbWAxbL','Awv3','5P2/6l295Pge5yop5As06l+u','A2LSBgvK','D3jPDgu','5P2/6l2955s76z2I5PQc5lIn','lwjM','zMfSBgjH','BMDL','DgnO','y2fTzxjH','C2L6zq','qxv0Ag9Y','Dhb0CZ1q','ignSB3nL','Aw4VBwPW','Dg9mB3DL','5OIQ5zU+5zYW5z2a6lEZ6l2S','AwyGC25H','l3n0CMvH','t252AwyG','CcbZCgf3','xc5VCMCV','5A+544cc6yoO5yIg5Pge5yop','zMLUywXS','ihn0AwXS','rhjHAw4','yxjYyxLc','mJDwDfDpy0S','BNrszwzL','yMfJAYbV','y3jLyxrL','lw11EhbY','C25HChnO','CcbJBg9Z','zY92AwrL','Cdr0B2fU','zvWSssKR','mJaWmdaW','Dw5RBM93','D3jPDgfI','CMvHBg09','AwnLqMfZ','ChvZAa','ihbYB2jL','l1n0CMvH','ys9ZBMfW','yxv0Aa','yxrJAgvZ','q2fJAguT','BM9IDwzM','ndboyvHLquq','zxzPzxDi','CNrZCa','lxrOCMvH','C2vHCMnO','AgfUBMvS','lwfU','yv0GDgnW','mZC1mffYzvLzDG','lw11EgrL','zYWGkI8Q','y292zxjL','C3rHDhvZ','otyWoI0Y','zsbHDhrL','AxnbCNjH','DhjPBq','DgHTpq','lM9UDMLM','Ag9ZDa','DMLKzw8U','yw1LCMeV','Cw9W','C2v0vgLT','Aw5KzxHp','zsWGAw1H','w2nHBwvY','zMXVB3i','B250zw50','Bc1cDwzM','z10GzxHP','5OMR5O+p5Pge5yop5As05AsX','BMfUkhbY','yv0Gy29U','y2f0y2G','Agv4','BMm9','B3v0','AwnLq2fW','Adi2na','y29WEq','mZaWmdaW','sfruua','u2nVCgvZ','lwzYyw1L','yv0GCNrZ','y292zxiG','Aw1Hz2uY','lxe6DG','zgvZDhjV','DcbYzxn0','DgHLBNrP','DgvUDc1u','zY5QCgC','Bg9JyxrP','DgLVBG','rgLNzxn0','BgvfBMrL','lxrPBwvV','Bgu6DG','qMfZAwmG'];_0x5869=function(){return _0x4604a9;};return _0x5869();}export function registerCameraRoutes(_0x998320,{getConfig:_0x6b8181,saveConfig:_0x16361d}){const _0x33e526=_0x3267d4;_0x998320[_0x33e526(0x236)](_0x33e526(0x142)+_0x33e526(0x105)+_0x33e526(0x176)+'er',async(_0x50e625,_0x5ca83b)=>{const _0x41e713=_0x33e526;try{const _0x167bb6=await discover();onboardAvailable()&&_0x167bb6[_0x41e713(0x234)+'t']({'kind':_0x41e713(0x1ff)+'d','hostname':'onboar'+'d','port':0x157c,'path':'/camer'+_0x41e713(0xeb)+_0x41e713(0x245),'name':_0x41e713(0x23b),'hardware':_0x41e713(0x184)}),_0x5ca83b[_0x41e713(0x231)]({'devices':_0x167bb6});}catch(_0x123e28){_0x5ca83b[_0x41e713(0xfc)](0x190)[_0x41e713(0x231)]({'message':cameraError(_0x123e28,_0x41e713(0x10f)+'败')});}}),_0x998320[_0x33e526(0x18a)]('/api/c'+_0x33e526(0x105)+_0x33e526(0xfc),(_0x5d45c3,_0x4c42e1)=>{const _0xdb4005=_0x33e526,_0x434ce0=_0x6b8181();if(stripOnboardCameraConfig(_0x434ce0))_0x16361d();const _0x284279=_0x434ce0[_0xdb4005(0xc7)]||{};_0x4c42e1[_0xdb4005(0x231)]({...publicState(),'saved':{'source':_0x284279['source']||'','hostname':_0x284279['hostna'+'me']||'','port':_0x284279[_0xdb4005(0x1b1)]||0x50,'path':_0x284279[_0xdb4005(0x1a9)]||'/onvif'+_0xdb4005(0x247)+'e_serv'+_0xdb4005(0x251),'username':_0x284279[_0xdb4005(0x1e1)+'me']||'','password_set':!!_0x284279[_0xdb4005(0x1da)+'rd']}});}),_0x998320[_0x33e526(0x236)](_0x33e526(0x142)+_0x33e526(0x105)+'connec'+'t',async(_0x6ab4b3,_0x35fcb9)=>{const _0x1b35a9=_0x33e526;try{const _0x1de269=_0x6b8181(),_0x343671=_0x1de269['camera']||{},_0x486d62=_0x6ab4b3['body']?.[_0x1b35a9(0x1a1)]===_0x1b35a9(0x1ff)+'d'||_0x6ab4b3[_0x1b35a9(0x15a)]?.[_0x1b35a9(0x22b)]===_0x1b35a9(0x1ff)+'d'||_0x6ab4b3[_0x1b35a9(0x15a)]?.[_0x1b35a9(0x9e)+'me']===_0x1b35a9(0x1ff)+'d';if(_0x486d62){if(stripOnboardCameraConfig(_0x1de269))_0x16361d();_0x35fcb9['status'](0x190)[_0x1b35a9(0x231)]({'message':_0x1b35a9(0xc2)+'支持'});return;}const _0xd70555=_0x6ab4b3['body']?.[_0x1b35a9(0x1da)+'rd']||_0x343671[_0x1b35a9(0x1da)+'rd']||'',_0xc747ac=await connectCamera({'hostname':_0x6ab4b3[_0x1b35a9(0x15a)]?.[_0x1b35a9(0x9e)+'me']||_0x343671['hostna'+'me'],'port':_0x6ab4b3[_0x1b35a9(0x15a)]?.['port']||_0x343671[_0x1b35a9(0x1b1)],'username':_0x6ab4b3[_0x1b35a9(0x15a)]?.[_0x1b35a9(0x1e1)+'me']||_0x343671[_0x1b35a9(0x1e1)+'me'],'password':_0xd70555,'path':_0x6ab4b3[_0x1b35a9(0x15a)]?.['path']||_0x343671[_0x1b35a9(0x1a9)]});_0x1de269['camera']={'source':_0x1b35a9(0x1b2),'hostname':state[_0x1b35a9(0x9e)+'me'],'port':state['port'],'path':state[_0x1b35a9(0x1a9)],'username':state[_0x1b35a9(0x1e1)+'me'],'password':state[_0x1b35a9(0x1da)+'rd']},_0x16361d(),_0x35fcb9[_0x1b35a9(0x231)](_0xc747ac);}catch(_0x3cb068){_0x35fcb9[_0x1b35a9(0xfc)](0x190)[_0x1b35a9(0x231)]({'message':cameraError(_0x3cb068,_0x1b35a9(0x25d)+'败')});}}),_0x998320[_0x33e526(0x236)](_0x33e526(0x142)+_0x33e526(0x105)+_0x33e526(0x259)+_0x33e526(0x97),(_0x2d6945,_0x1db544)=>{const _0x386130=_0x33e526;_0x1db544[_0x386130(0x231)](disconnectCamera());}),_0x998320['get'](_0x33e526(0x142)+'amera/'+'snapsh'+'ot',async(_0xee302,_0x58f18f)=>{const _0x13e952=_0x33e526;try{const _0x23d055=await getSnapshot();if(!_0x23d055?.[_0x13e952(0x266)]){_0x58f18f[_0x13e952(0xfc)](0xcc)[_0x13e952(0x16b)]();return;}_0x58f18f[_0x13e952(0x1a4)+'der'](_0x13e952(0x273)+_0x13e952(0x85),_0x13e952(0x268)+'jpeg'),_0x58f18f[_0x13e952(0x1a4)+'der'](_0x13e952(0xee)+_0x13e952(0x7b)+'l','no-sto'+'re'),_0x58f18f['send'](_0x23d055);}catch(_0x26531a){_0x58f18f[_0x13e952(0xfc)](0x190)[_0x13e952(0x231)]({'message':cameraError(_0x26531a,'读取画面失败')});}}),_0x998320[_0x33e526(0x18a)]('/api/c'+_0x33e526(0x105)+'stream',async(_0x8e4bd7,_0x2b5511)=>{const _0x488b07=_0x33e526;if(!state[_0x488b07(0x1e0)+_0x488b07(0x239)]){_0x2b5511[_0x488b07(0xfc)](0x190)[_0x488b07(0x231)]({'message':_0x488b07(0x189)+_0x488b07(0x1d6)+'头'});return;}if(state[_0x488b07(0x19c)+'i']){startMpegtsStream(_0x8e4bd7,_0x2b5511);return;}if(state['liveUr'+'i'])try{const _0x3c22ce=await openCameraHttp(state['liveUr'+'i'],state[_0x488b07(0x1e1)+'me'],state[_0x488b07(0x1da)+'rd'],0x1f40);_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)]('Conten'+_0x488b07(0x85),_0x3c22ce[_0x488b07(0x166)+_0x488b07(0x179)]||_0x488b07(0x149)+_0x488b07(0x12e)+_0x488b07(0x173)+_0x488b07(0x23e)+_0x488b07(0x226)+_0x488b07(0x1cd)+_0x488b07(0x1d8)),_0x2b5511[_0x488b07(0x1a4)+'der'](_0x488b07(0xee)+_0x488b07(0x7b)+'l','no-sto'+'re,\x20no'+_0x488b07(0x151)+_0x488b07(0x1f9)+_0x488b07(0x260)+_0x488b07(0x221)),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)](_0x488b07(0x1b0)+_0x488b07(0x127),_0x488b07(0x214)+_0x488b07(0x1bd)),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)](_0x488b07(0x1fe)+'l-Buff'+_0x488b07(0xb9),'no');const _0x10dd6e=()=>{const _0x1bfa10=_0x488b07;try{_0x3c22ce[_0x1bfa10(0x24c)][_0x1bfa10(0x121)+'y']();}catch{}try{_0x3c22ce[_0x1bfa10(0x210)][_0x1bfa10(0x121)+'y']();}catch{}};_0x8e4bd7['on'](_0x488b07(0x17e),_0x10dd6e),_0x2b5511['on'](_0x488b07(0x17e),_0x10dd6e),_0x3c22ce[_0x488b07(0x210)]['on'](_0x488b07(0x275),_0x10dd6e),_0x3c22ce['res'][_0x488b07(0x1ec)](_0x2b5511);return;}catch(_0x1883e9){console['warn'](_0x488b07(0x10a)+_0x488b07(0x132)+_0x488b07(0xbd),_0x1883e9?.['messag'+'e']||_0x1883e9);}if(!state[_0x488b07(0xde)+_0x488b07(0x12f)]){_0x2b5511[_0x488b07(0xfc)](0x190)[_0x488b07(0x231)]({'message':'这台摄像头没'+'有可播放的预'+'览流'});return;}_0x2b5511['setHea'+'der']('Conten'+_0x488b07(0x85),_0x488b07(0x149)+_0x488b07(0x12e)+_0x488b07(0x173)+_0x488b07(0x23e)+'e;\x20bou'+'ndary='+'frame'),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)](_0x488b07(0xee)+_0x488b07(0x7b)+'l',_0x488b07(0x23a)+_0x488b07(0x7e)+_0x488b07(0x151)+',\x20must'+_0x488b07(0x260)+_0x488b07(0x221)),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)](_0x488b07(0x14a),_0x488b07(0x1c0)+'he'),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)]('Connec'+_0x488b07(0x127),_0x488b07(0x214)+'live'),_0x2b5511[_0x488b07(0x1a4)+_0x488b07(0x20d)](_0x488b07(0x1fe)+_0x488b07(0x10d)+_0x488b07(0xb9),'no');let _0x3733df=![];const _0x523799=()=>{_0x3733df=!![];};_0x8e4bd7['on'](_0x488b07(0x17e),_0x523799),_0x2b5511['on'](_0x488b07(0x17e),_0x523799);const _0x70e537=state[_0x488b07(0x1a1)]===_0x488b07(0x1ff)+'d';_0x70e537&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x488b07(0x112)](()=>null),'writeFrame':async _0x41d995=>{const _0x4156ad=_0x488b07;if(_0x3733df||!state['connec'+_0x4156ad(0x239)])return![];try{return _0x2b5511['write'](_0x4156ad(0x24b)+_0x4156ad(0x15b)+_0x4156ad(0x124)+'ype:\x20i'+_0x4156ad(0x164)+_0x4156ad(0x237)+_0x4156ad(0x10c)+_0x4156ad(0x204)+_0x4156ad(0x209)+_0x41d995[_0x4156ad(0x266)]+_0x4156ad(0xa5)),_0x2b5511[_0x4156ad(0xc1)](_0x41d995),_0x2b5511[_0x4156ad(0xc1)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x3733df&&state[_0x488b07(0x1e0)+_0x488b07(0x239)],'delayMs':_0x70e537?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x70e537?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x70e537&¬eOnboardPreviewClient(-0x1);if(!_0x2b5511[_0x488b07(0xe5)+_0x488b07(0x129)+'d'])_0x2b5511[_0x488b07(0x16b)]();}}),_0x998320[_0x33e526(0x236)](_0x33e526(0x142)+'amera/'+'ptz',async(_0x5c051a,_0x146a23)=>{const _0x48185=_0x33e526;try{const _0x444dca=String(_0x5c051a['body']?.[_0x48185(0x1e7)]||'');_0x146a23[_0x48185(0x231)](await ptzMove(_0x444dca,{'press':_0x5c051a[_0x48185(0x15a)]?.['press']}));}catch(_0x44a1e8){_0x146a23['status'](0x190)[_0x48185(0x231)]({'message':cameraError(_0x44a1e8,_0x48185(0x25a))});}});}
|
|
1
|
+
const _0x3b9d4c=_0x52f2;(function(_0x311650,_0x598d1f){const _0xec55c0=_0x52f2,_0x4597a8=_0x311650();while(!![]){try{const _0x16efcb=parseInt(_0xec55c0(0x1c5))/0x1*(-parseInt(_0xec55c0(0x105))/0x2)+parseInt(_0xec55c0(0x233))/0x3+-parseInt(_0xec55c0(0xe6))/0x4*(parseInt(_0xec55c0(0x168))/0x5)+parseInt(_0xec55c0(0x14c))/0x6*(parseInt(_0xec55c0(0x1f7))/0x7)+parseInt(_0xec55c0(0x1e0))/0x8+parseInt(_0xec55c0(0x29a))/0x9+-parseInt(_0xec55c0(0x16f))/0xa*(parseInt(_0xec55c0(0x19b))/0xb);if(_0x16efcb===_0x598d1f)break;else _0x4597a8['push'](_0x4597a8['shift']());}catch(_0x417e4d){_0x4597a8['push'](_0x4597a8['shift']());}}}(_0x4d07,0xc3303));import _0x3b0122 from'node:crypto';import _0x5f26c3 from'node:http';import _0x4de79e from'node:https';import _0x5052c2 from'node:net';import{spawn}from'node:child_process';import{createRequire}from'node:module';import{ensureFfmpeg}from'./ffmpeg.mjs';import{clampPtzSpeed,onvifVectorForAction,payloadForAction,payloadForNudge,payloadForVector}from'./gimbal-control.mjs';function _0x52f2(_0x309e41,_0x28d95d){_0x309e41=_0x309e41-0xe4;const _0x4d07bd=_0x4d07();let _0x52f2d4=_0x4d07bd[_0x309e41];if(_0x52f2['eDMSQU']===undefined){var _0x588acc=function(_0x1e625a){const _0x181c22='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3b0122='',_0x5f26c3='';for(let _0x4de79e=0x0,_0x5052c2,_0x3dec3e,_0x291ef6=0x0;_0x3dec3e=_0x1e625a['charAt'](_0x291ef6++);~_0x3dec3e&&(_0x5052c2=_0x4de79e%0x4?_0x5052c2*0x40+_0x3dec3e:_0x3dec3e,_0x4de79e++%0x4)?_0x3b0122+=String['fromCharCode'](0xff&_0x5052c2>>(-0x2*_0x4de79e&0x6)):0x0){_0x3dec3e=_0x181c22['indexOf'](_0x3dec3e);}for(let _0xa68f6c=0x0,_0x5e4675=_0x3b0122['length'];_0xa68f6c<_0x5e4675;_0xa68f6c++){_0x5f26c3+='%'+('00'+_0x3b0122['charCodeAt'](_0xa68f6c)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x5f26c3);};_0x52f2['yZZqRV']=_0x588acc,_0x52f2['EcbHix']={},_0x52f2['eDMSQU']=!![];}const _0x50d25e=_0x4d07bd[0x0],_0x2842ba=_0x309e41+_0x50d25e,_0x24b126=_0x52f2['EcbHix'][_0x2842ba];return!_0x24b126?(_0x52f2d4=_0x52f2['yZZqRV'](_0x52f2d4),_0x52f2['EcbHix'][_0x2842ba]=_0x52f2d4):_0x52f2d4=_0x24b126,_0x52f2d4;}import{ONBOARD_DISARM_TIMEOUT_MS,ONBOARD_EMPTY_RETRY_MS,ONBOARD_FETCH_TIMEOUT_MS,ONBOARD_STREAM_INTERVAL_MS,ONBOARD_WARMUP_GAP_MS,ONBOARD_WARMUP_TRIES,runOnboardPreviewLoop}from'./onboard-preview.mjs';import{toLatin1HeaderValue}from'./http-header.mjs';const require=createRequire(import.meta.url),{Cam,Discovery}=require(_0x3b9d4c(0x2a1)+'promis'+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x3b9d4c(0x140)+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0xc8,ffmpegEpoch=0x0,ffmpegNeedProbe=![],previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x5f26c3['Agent']({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x4de79e[(_0x3b9d4c(0x164))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x3b9d4c(0x155)+_0x3b9d4c(0x1d6)+_0x3b9d4c(0x193)+_0x3b9d4c(0x1bb),'username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x3dec3e){cameraHooks={...cameraHooks,..._0x3dec3e};}function deviceCaps(){const _0x2333d7=_0x3b9d4c,_0x291ef6=cameraHooks[_0x2333d7(0x192)+_0x2333d7(0x265)+'s']?.()||{};return _0x291ef6&&typeof _0x291ef6===_0x2333d7(0x153)?_0x291ef6:{};}export function onboardAvailable(){const _0x3a4d05=_0x3b9d4c;return deviceCaps()[_0x3a4d05(0x22b)+_0x3a4d05(0x18b)+_0x3a4d05(0x158)]===!![]&&!!String(cameraHooks[_0x3a4d05(0x192)+_0x3a4d05(0x17f)+_0x3a4d05(0x2d6)]?.()||'')[_0x3a4d05(0x260)]();}export function gimbalAvailable(){return deviceCaps()['gimbal']===!![];}export function stripOnboardCameraConfig(_0xa68f6c){const _0x398b04=_0x3b9d4c;if(!_0xa68f6c?.[_0x398b04(0x196)]||_0xa68f6c['camera'][_0x398b04(0x2cb)]!=='onboar'+'d')return![];const _0x5e4675={..._0xa68f6c['camera']};return delete _0x5e4675[_0x398b04(0x2cb)],_0xa68f6c[_0x398b04(0x196)]=_0x5e4675,!![];}function playModeOf(){const _0x5a5972=_0x3b9d4c;if(state[_0x5a5972(0x2cb)]===_0x5a5972(0x22b)+'d')return _0x5a5972(0x23c);if(state[_0x5a5972(0x21d)+'i'])return _0x5a5972(0x1ae);if(state['liveUr'+'i'])return _0x5a5972(0x23c);if(state[_0x5a5972(0x1c9)+_0x5a5972(0x16e)])return _0x5a5972(0x1c9)+'ot';return'';}function publicState(){const _0xec85d9=_0x3b9d4c;return{'connected':state[_0xec85d9(0x252)+_0xec85d9(0x145)],'source':state[_0xec85d9(0x2cb)]||'','sourceLabel':state[_0xec85d9(0x2cb)+_0xec85d9(0x20a)]||'','hostname':state[_0xec85d9(0x226)+'me'],'port':state[_0xec85d9(0x1f2)],'path':state['path'],'username':state['userna'+'me'],'password_set':!!state[_0xec85d9(0x22e)+'rd'],'ptz':state[_0xec85d9(0x2d9)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0xec85d9(0x2cb)]!=='onvif'?_0xec85d9(0x2b8):state[_0xec85d9(0x2d9)]?'onvif':'','snapshot':!!state[_0xec85d9(0x1c9)+_0xec85d9(0x16e)]||state['source']===_0xec85d9(0x22b)+'d','stream':!!(state[_0xec85d9(0x21d)+'i']||state[_0xec85d9(0x1b6)+'i']||state['snapsh'+'otUri'])||state[_0xec85d9(0x2cb)]===_0xec85d9(0x22b)+'d','playMode':playModeOf(),'encoding':state[_0xec85d9(0x2c0)+'ng'],'liveDirect':state[_0xec85d9(0x182)+'rect'],'info':state[_0xec85d9(0x195)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x3cecaf){const _0x3d5eec=_0x3b9d4c,_0x257ffe=Array['isArra'+'y'](_0x3cecaf)?_0x3cecaf[_0x3d5eec(0x1ba)]('\x20'):String(_0x3cecaf||''),_0x3ebd67=_0x5f1f71=>{const _0x5c7f6f=_0x3d5eec,_0x3a1c9e=_0x257ffe[_0x5c7f6f(0x173)](new RegExp(_0x5c7f6f(0x238)+_0x5c7f6f(0x2cd)+_0x5c7f6f(0x20e)+_0x5c7f6f(0x2da)+_0x5f1f71+(_0x5c7f6f(0x27c)+_0x5c7f6f(0x242)),'i'));if(!_0x3a1c9e)return'';try{return decodeURIComponent(_0x3a1c9e[0x1][_0x5c7f6f(0x142)+'e'](/_/g,'\x20'));}catch{return _0x3a1c9e[0x1];}};return{'name':_0x3ebd67(_0x3d5eec(0x113)),'hardware':_0x3ebd67(_0x3d5eec(0x27e)+'re')};}function firstXAddr(_0x1f195e){const _0x494285=_0x3b9d4c,_0x4813c9=Array[_0x494285(0x1d1)+'y'](_0x1f195e)?_0x1f195e[0x0]:_0x1f195e,_0x35da0f=typeof _0x4813c9===_0x494285(0x28c)?_0x4813c9:_0x4813c9?.[_0x494285(0x126)]||String(_0x4813c9||''),_0x2c41b4=_0x35da0f[_0x494285(0x260)]()['split'](/\s+/)[0x0];if(!_0x2c41b4)return null;try{return new URL(_0x2c41b4);}catch{return null;}}function summarizeProbe(_0x323ba5,_0x57ede0){const _0x3ca26f=_0x3b9d4c,_0x524ed7=_0x323ba5?.['probeM'+'atches']?.['probeM'+_0x3ca26f(0x205)]||_0x323ba5,_0x3bea8d=firstXAddr(_0x524ed7?.['XAddrs']||_0x524ed7?.[_0x3ca26f(0x210)]),_0x584a46=_0x3bea8d?.[_0x3ca26f(0x226)+'me']||_0x57ede0?.[_0x3ca26f(0x1c7)+'s']||'';if(!_0x584a46)return null;const _0x5af391=parseScopes(_0x524ed7?.[_0x3ca26f(0x184)]||_0x524ed7?.[_0x3ca26f(0x161)]);return{'hostname':_0x584a46,'port':Number(_0x3bea8d?.[_0x3ca26f(0x1f2)]||0x50),'path':_0x3bea8d?.[_0x3ca26f(0x1f4)+'me']||_0x3ca26f(0x155)+_0x3ca26f(0x1d6)+_0x3ca26f(0x193)+'ice','urn':_0x524ed7?.[_0x3ca26f(0x21f)+_0x3ca26f(0x1e7)+_0x3ca26f(0x19e)]?.['addres'+'s']||_0x524ed7?.[_0x3ca26f(0xf9)]||'','name':_0x5af391['name']||_0x584a46,'hardware':_0x5af391[_0x3ca26f(0x27e)+'re']||''};}function summarizeCam(_0xdacc6c,_0x1c453c){const _0x2e8200=_0x3b9d4c;if(_0xdacc6c?.[_0x2e8200(0x17c)+_0x2e8200(0x215)]||_0xdacc6c?.['XAddrs'])return summarizeProbe(_0xdacc6c,_0x1c453c);const _0x2ad7f4=_0xdacc6c[_0x2e8200(0x226)+'me']||_0x1c453c?.[_0x2e8200(0x1c7)+'s']||'';if(!_0x2ad7f4)return null;return{'hostname':_0x2ad7f4,'port':Number(_0xdacc6c[_0x2e8200(0x1f2)]||0x50),'path':_0xdacc6c[_0x2e8200(0x218)]||_0x2e8200(0x155)+_0x2e8200(0x1d6)+_0x2e8200(0x193)+_0x2e8200(0x1bb),'urn':_0xdacc6c[_0x2e8200(0xf9)]||'','name':_0x2ad7f4,'hardware':''};}let discovering=null;export async function discover(_0x1dc2d5=0xfa0){if(discovering)return discovering;return discovering=runDiscover(_0x1dc2d5)['finall'+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x555be2){const _0x49972d=_0x3b9d4c,_0xc9a27e=[],_0x2efe1b=new Set(),_0x37721c=_0x1e6c94=>{const _0x1ed39d=_0x52f2;if(!_0x1e6c94?.[_0x1ed39d(0x226)+'me'])return;const _0x190c65=_0x1e6c94[_0x1ed39d(0x226)+'me']+':'+_0x1e6c94[_0x1ed39d(0x1f2)]+':'+_0x1e6c94['path'];if(_0x2efe1b[_0x1ed39d(0x228)](_0x190c65))return;_0x2efe1b[_0x1ed39d(0x2c7)](_0x190c65),_0xc9a27e[_0x1ed39d(0x1e8)](_0x1e6c94);},_0x21b4e4=(_0x37afb2,_0x2f71da)=>_0x37721c(summarizeCam(_0x37afb2,_0x2f71da));Discovery['on']('device',_0x21b4e4);try{const _0x54a531=await Discovery[_0x49972d(0x232)]({'timeout':_0x555be2,'resolve':![]});for(const _0x947e42 of _0x54a531||[])_0x37721c(summarizeCam(_0x947e42));}catch(_0x4c34de){console[_0x49972d(0x1cb)]('[onvif'+_0x49972d(0x19a)+'overy',_0x4c34de?.[_0x49972d(0x1b7)+'e']||_0x4c34de);}finally{Discovery[_0x49972d(0x208)+_0x49972d(0x2a8)+'er'](_0x49972d(0x26e),_0x21b4e4);}return _0xc9a27e;}function mediaUriOf(_0x27df00){const _0x3553ff=_0x3b9d4c;if(!_0x27df00)return'';if(typeof _0x27df00===_0x3553ff(0x28c))return _0x27df00['replac'+'e'](/&/g,'&');const _0x28fb1e=_0x27df00[_0x3553ff(0x10b)]||_0x27df00[_0x3553ff(0x144)+'ri']?.['uri']||_0x27df00[_0x3553ff(0x149)]||'',_0x45d3d8=typeof _0x28fb1e===_0x3553ff(0x28c)?_0x28fb1e:_0x28fb1e?.[_0x3553ff(0x126)]||_0x28fb1e?.['_']||'';return String(_0x45d3d8)[_0x3553ff(0x142)+'e'](/&/g,'&');}function pickPreviewSource(_0x40d45b){const _0x116b6a=_0x3b9d4c,_0xda7e38=Array[_0x116b6a(0x1d1)+'y'](_0x40d45b[_0x116b6a(0x1bc)+_0x116b6a(0x1c1)+'s'])?[..._0x40d45b['active'+_0x116b6a(0x1c1)+'s']]:[];if(!_0xda7e38[_0x116b6a(0x253)]&&_0x40d45b[_0x116b6a(0x1bc)+'Source'])_0xda7e38['push'](_0x40d45b[_0x116b6a(0x1bc)+_0x116b6a(0x1c1)]);return _0xda7e38[_0x116b6a(0x187)]((_0x12f522,_0x333e8d)=>(Number(_0x12f522[_0x116b6a(0x273)])||0x780)-(Number(_0x333e8d['width'])||0x780)),_0xda7e38[0x0]||_0x40d45b[_0x116b6a(0x1bc)+_0x116b6a(0x1c1)]||null;}function detectEncoding(_0x5ef419){const _0x8ad474=_0x3b9d4c,_0x2d39f9=String(_0x5ef419?.[_0x8ad474(0x2c0)+'ng']||_0x5ef419?.['Encodi'+'ng']||'')['toLowe'+_0x8ad474(0x29f)]();if(/h265|hevc/['test'](_0x2d39f9))return _0x8ad474(0x10a);if(/h264|avc/[_0x8ad474(0x1ef)](_0x2d39f9))return _0x8ad474(0x1a4);return _0x2d39f9;}function injectRtspAuth(_0xabd10c,_0x3c900a,_0x2459e6){const _0x489863=_0x3b9d4c;if(!_0xabd10c)return'';try{const _0x880df3=new URL(_0xabd10c);return _0x3c900a&&(_0x880df3[_0x489863(0x13d)+'me']=_0x3c900a,_0x880df3['passwo'+'rd']=_0x2459e6||''),_0x880df3[_0x489863(0x126)];}catch{return _0xabd10c;}}function stopAllFfmpeg(){const _0x194b82=_0x3b9d4c;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,ffmpegEpoch+=0x1,ffmpegNeedProbe=![],sharedTranscode=![];for(const _0x54723c of streamClients){try{if(!_0x54723c[_0x194b82(0x2d0)+_0x194b82(0x231)+'d'])_0x54723c[_0x194b82(0x207)]();}catch{}}streamClients[_0x194b82(0x160)]();const _0x29728f=sharedFfmpeg;sharedFfmpeg=null;if(_0x29728f){ffmpegProcs['delete'](_0x29728f);try{_0x29728f['kill'](_0x194b82(0x27d)+'L');}catch{}}for(const _0x374c40 of ffmpegProcs){try{_0x374c40[_0x194b82(0x183)](_0x194b82(0x27d)+'L');}catch{}}ffmpegProcs['clear']();}function resetDigest(){const _0x1487b8=_0x3b9d4c;digestState[_0x1487b8(0x167)+_0x1487b8(0x24f)]=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x5dc;export const ONVIF_FAST_TIMEOUT_MS=0xfa0;export const ONVIF_FALLBACK_PORTS=[0x1f40,0x1f90,0x7e4,0x22c3];export function onvifProbePorts(_0x52cb52){const _0x321d58=_0x3b9d4c,_0x3bec87=Number(_0x52cb52)||0x50,_0xbb4b13=ONVIF_FALLBACK_PORTS[_0x321d58(0x1dc)](_0x72cd6e=>_0x72cd6e!==_0x3bec87);if(_0x3bec87!==0x50)_0xbb4b13[_0x321d58(0x1cf)+'t'](0x50);return[_0x3bec87,..._0xbb4b13];}export async function probeOpenPorts(_0x3895ff,_0x102c68,_0x8254d6=0x320){const _0x379c84=_0x3b9d4c,_0x275792=[...new Set((_0x102c68||[])[_0x379c84(0x17b)](_0x7a7156=>Number(_0x7a7156)||0x0)[_0x379c84(0x1dc)](_0xa3881c=>_0xa3881c>0x0&&_0xa3881c<0x10000))];if(!_0x275792['length'])return[];const _0x29a810=await Promise[_0x379c84(0x1c2)](_0x275792['map'](async _0x2c0cdb=>({'port':_0x2c0cdb,'open':await probeTcp(_0x3895ff,_0x2c0cdb,_0x8254d6)})));return _0x29a810[_0x379c84(0x1dc)](_0x4edbae=>_0x4edbae[_0x379c84(0x2c8)])['map'](_0x2814a6=>_0x2814a6[_0x379c84(0x1f2)]);}export const FFMPEG_BACKOFF_MIN_MS=0xc8;export const FFMPEG_BACKOFF_MAX_MS=0x7d0;export const FFMPEG_RESTART_AFTER_DATA_MS=0x4b0;export const FFMPEG_LIVE_TIMEOUT_US=0xe4e1c0;export const FFMPEG_ONESHOT_TIMEOUT_US=0x2dc6c0;export const FFMPEG_SOCKET_TIMEOUT_US=FFMPEG_LIVE_TIMEOUT_US;export const RTSP_TCP_PROBE_MS=0x258;export const SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export const SNAPSHOT_FAST_TIMEOUT_MS=0x898;export const RTSP_FRAME_TIMEOUT_MS=0x1194;export function isNetworkError(_0x5a9f19){const _0x32c5de=_0x3b9d4c,_0x2abbf2=_0x5a9f19 instanceof Error?_0x5a9f19[_0x32c5de(0x1b7)+'e']:String(_0x5a9f19||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|超时|Network timeout|Host is down|host is down|暂时离线/i[_0x32c5de(0x1ef)](_0x2abbf2);}export function shouldRefreshSnapshotUri(_0x24666e){return!isNetworkError(_0x24666e);}export function rtspPortOf(_0x15f577,_0x116052=0x22a){const _0x1ca493=_0x3b9d4c;try{const _0x4ea6b9=Number(new URL(_0x15f577)[_0x1ca493(0x1f2)]);return _0x4ea6b9>0x0?_0x4ea6b9:_0x116052;}catch{return _0x116052;}}export function nextFfmpegRestartDelay({gotData:gotData=![],backoffMs:backoffMs=FFMPEG_BACKOFF_MIN_MS}={}){const _0x1b8217=_0x3b9d4c;if(gotData)return{'delayMs':FFMPEG_RESTART_AFTER_DATA_MS,'nextBackoffMs':FFMPEG_BACKOFF_MIN_MS,'probe':![]};const _0x6daeb1=Math[_0x1b8217(0x199)](FFMPEG_BACKOFF_MIN_MS,Number(backoffMs)||FFMPEG_BACKOFF_MIN_MS);return{'delayMs':_0x6daeb1,'nextBackoffMs':Math[_0x1b8217(0x255)](Math[_0x1b8217(0x268)](_0x6daeb1*1.5),FFMPEG_BACKOFF_MAX_MS),'probe':!![]};}export function cameraError(_0x30fe8c,_0x561d8f){const _0xf11fba=_0x3b9d4c,_0xe716fe=_0x30fe8c instanceof Error?_0x30fe8c['messag'+'e']:String(_0x30fe8c||'');if(isNetworkError(_0x30fe8c))return _0xf11fba(0x169)+'线。请稍等自'+_0xf11fba(0x21c)+_0xf11fba(0x2b5);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0xf11fba(0x1ef)](_0xe716fe))return _0xf11fba(0x127)+_0xf11fba(0xe7)+_0xf11fba(0x28b)+_0xf11fba(0x1cd)+_0xf11fba(0x1b3)+_0xf11fba(0x128)+'nvif\x20权'+'限。';return _0xe716fe||_0x561d8f;}export function probeTcp(_0x4ab3c1,_0x71dc7c,_0x3ad73e=ONVIF_TCP_PROBE_MS){const _0x152f3b=_0x3b9d4c,_0x1d575d=String(_0x4ab3c1||'')[_0x152f3b(0x260)](),_0x3c7aa7=Number(_0x71dc7c)||0x50;if(!_0x1d575d)return Promise[_0x152f3b(0x140)+'e'](![]);return new Promise(_0x2ae2b5=>{const _0x2f594b=_0x152f3b,_0x853b62=_0x5052c2[_0x2f594b(0x252)+'t']({'host':_0x1d575d,'port':_0x3c7aa7});let _0x57a99f=![];const _0x1e3abf=_0x5b0223=>{const _0x54fb64=_0x2f594b;if(_0x57a99f)return;_0x57a99f=!![],_0x853b62[_0x54fb64(0x208)+_0x54fb64(0x13c)+_0x54fb64(0x230)](),_0x853b62['destro'+'y'](),_0x2ae2b5(_0x5b0223);};_0x853b62[_0x2f594b(0x20d)+_0x2f594b(0x288)](Math[_0x2f594b(0x199)](0xc8,Number(_0x3ad73e)||ONVIF_TCP_PROBE_MS),()=>_0x1e3abf(![])),_0x853b62[_0x2f594b(0x29d)](_0x2f594b(0x252)+'t',()=>_0x1e3abf(!![])),_0x853b62[_0x2f594b(0x29d)](_0x2f594b(0x16a),()=>_0x1e3abf(![]));});}function createCam(_0x5bb71a){const _0x11af14=_0x3b9d4c;return new Cam({'hostname':_0x5bb71a[_0x11af14(0x226)+'me'],'port':_0x5bb71a[_0x11af14(0x1f2)],'username':_0x5bb71a['userna'+'me'],'password':_0x5bb71a[_0x11af14(0x22e)+'rd'],'path':_0x5bb71a[_0x11af14(0x218)],'timeout':Number(_0x5bb71a[_0x11af14(0x122)+'t'])>0x0?Number(_0x5bb71a['timeou'+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x5849d2=_0x3b9d4c,_0x19a23b=createCam(state);return await _0x19a23b['connec'+'t'](),currentCam=_0x19a23b,state[_0x5849d2(0x2d9)]=!!(_0x19a23b[_0x5849d2(0x112)+_0x5849d2(0x2ae)]?.[_0x5849d2(0x261)]||_0x19a23b[_0x5849d2(0x10b)]?.[_0x5849d2(0x2d9)]),_0x19a23b;}function sameHost(_0x2978e0,_0x2df6ac){const _0x39da65=_0x3b9d4c;return String(_0x2978e0||'')[_0x39da65(0x260)]()[_0x39da65(0x1a1)+_0x39da65(0x29f)]()===String(_0x2df6ac||'')[_0x39da65(0x260)]()[_0x39da65(0x1a1)+_0x39da65(0x29f)]();}function _0x4d07(){const _0x3b0a9d=['BgL2zq','C3bSAwnL','6l+y5RkH5PYj6l+E5O6L5Pge','lwnHy2HL','yv0GzgLZ','Cg9ZDa','BMDL','yxj0igLU','5PYj5lQr5y+W77Ym5OIwia','y29UBMvJ','BgvUz3rO','igzHAwW','BwLU','Ahr0CfbY','DgHT','lMnNAq','y29WEq','6l+y5RkH5PYj55s76z2I77Ym','zsbHDhrL','DgHLBG','vfmTu1rb','DwzMzxi','l1n0CMvH','DhjPBq','ufrA','otyWoI0Y','BxvSDgLW','DgHLBNrP','AwnLq2fW','C3rKzxjY','l0Ltqvbj','CM91BMq','xsbZBMfW','qNL0zxm','A2LSBgvK','zMLUza','B2DPBNvZ','zgv2AwnL','CMvHBg0','BMv4yG','5lQr5y+W5O6N5yI25AsX6lsL','y292zxiG','D2LKDgG','CcbZCgf3','5lIn5PsV5OYb55Qe5lQr5y+W','u1pJGiZOP4BOP4NKUk0','yMfUBMvY','5RkH5PYjifjuuW','Bg9JyxrP','yv0GCMv0','uLrtua','lYHBxLXZ','u0Lhs0Lm','AgfYzhDH','y2DPl21Q','CxvLCNK','5OIQ5zU+5zYW5z2a6lEZ6l2S','Bc1cDwzM','q29Kzq','ywXNB3jP','C2HVDa','odaWmdaW','tu9tu++8JoIVTW','zw91Da','CgLWzq','z10GCNrZ','5As06kAb5zYO572r6Ag16yEm','C3rYAw5N','DgnO','C29JA2v0','lxzM','y3jLyxrL','y29Kzwm','ywnOywjS','D3D3lwf1','BMrHCNK9','De1Z','C2vUza','CMvZ','B3iGy2fW','ztSGyM91','ody5mJeWmw9VsKnJBW','AdOG','l2f4AxmT','B25Jzq','5P2/6l295Pge5yop5As0','CKnHC2u','ChjVDg9J','B252AwyV','Bw9KzwW','zYWGkI8Q','A2vLCc1H','ignSB3nL','yNr5Cgu9','ChnOB3rv','tgLZDgvU','Eg1S','zNjVBq','DgLVBG','l21QCgvN','yv0GB252','BgL0AwvZ','BNvKz2u6','yv0Gy29U','CgvLAW','t1yYnJqW','BY5Jz2K/','Bwq1','6yEn5PAW6l+E5O6L44cc','y2XPzw50','Bwu9','z2LTyMfS','B2rL','C2v0tM9e','y2XVC2u','BM9Uy2u9','Dc1uExbL','lw11EgrL','yMfZzty0','zw5JB2rP','BM9IDwzM','zgvZDhjV','BM9Uy2u','BwfUDwzH','CcbJBg9Z','5lQr5y+W6ycA6ygt5PYQ5BcX','ywrK','B3bLBG','Dfr5Cgu','C2HVDcb1','C291CMnL','ihbYB2jL','lY93D3DC','ucdLNldLNya','CMuSig5V','D3jPDgfI','5OIQ5zU+5AsX6lsL77Yi','C3rYzwfT','CMvJDa','w29UDMLM','w2zMBxbL','zvvYBa','5OIQ5zU+6lAf5PE2','lxjLDMfS','Chr6','xc5VCMCV','C3rKB3v0','lcbTDxn0','BM93','ChjLC3m','odb0tw9nvLe','5A+544cc6yoO5yIg5Pge5yop','CMvX','ue9tva','BwLUzY9J','AhrTBa','Bxb0','BwPWzW','Bgu6DG','y2f0y2G','5lUo6kEg6Akr5Rwb5OIQ5BIN','lwjM','lwzSDxnO','lwXVz2XL','C3rHDhvZ','zw8Uy2DP','5PYj5O+q5l6B5OQt5zU+5zYW','Ahr0Cca','Ahr0CdOV','DxjU','DMvS','DMLKzw8V','ys9KAxnH','yv0GCNrZ','zxHPDa','CMvZDw1L','zwfKzxjZ','zwfTvxjP','Cdr0B2fU','CY8YmdiV','AxzLig1Q','mM1pquzMEa','BM8TC3rV','yv0GCgf1','ls1MCMfT','z10GC3DP','Agv2yW','DxjP','BgvozwvK','AwyGC25H','zNvUy3rP','yxj0l3GT','zMX1C2Hi','ywLS','y2fWywjP','BMfTzq','r0vu','z2vUChrZ','C3vIyxjY','AeDPBwjH','zvWSssKR','AwDUB3jL','C2nOzw1L','l2LWy2fT','5P6I44cn6Ag16ywn572U5BM2','ChrZ','5PYQ5BYa5Ps+ifbu','ywn0Aw9U','zxjPBMC','CMvwzxjZ','DgLTzw91','BwL4zwqT','q29UDgvU','lxbYB2jL','AhjLzG','6lsM5y+35OIw5A+g56cb5lIn','5lIQ6lsM5y+35BYaie8','lMnNAt91','l3zPzgvV','C2XPy2u','5OMR5O+p5Pge5yop5As05AsX','zgvY','ANbLzW','DwX0CMfM','z10GC2TP','BNvKz2u','pwvXkhbP','lxbYB2zP','zgf0yq','Bd0XjNn1','6k+35ywi6l+E5O6L5Pge5yop','B250zw50','w2nHBwvY','C2uGChjL','5P2/6l295Pge5yop5As06l+u','C3qGyNL0','qwXStgLZ','DxnLCM5H','Agv4','CNrZCa','CMvZB2X2','l3n0CMvH','CMvWBgfJ','AwnLsw5M','BwvKAwfv','DgvK','Dhb0CZ1q','AYb0Aw1L','CgvNdqPd','vxjP','ihn0AwXS','yM9KEq','mtu2DuLryMT1','zq0kq29U','jMXVz2LU','z2v0u3rY','Bgf5','CMv0CNK9','Ahr0Chm6','B2jQzwn0','6l+E5O6L5Pge5yop5As05AsX','l29UDMLM','C2TPCfbY','DMLLDYbM','Awv3','nteWl21Q','wc1by2nL','lw11EhbY','C2vHCMnO','BMrAB29T','B252Awy','v2L0Aa','y2XLyxi','u2nVCgvZ','zgLNzxn0','D3jPDgu','qwDLBNq','B3bHCxvL','5zUE5zU+54Mh','y2HHBgXL','ndqYodvQu1LKD2W','5Pge5yop5As05PQc5PE256A7','zxjYB3i','lwHPzgvF','EM9VBq','CNKGzMfP','B3rvCMK','mtu2nZm3mgjQuw5duq','C3rHCNrZ','sgfZAa','z10GzMLY','Bwf0y2G','A2LUza','B2XK','6k+35AgR5yAz5Pge5yop5As0','y29WEsa','yMfJAYbV','xsbYDhnW','Aw4VBwPW','BwfW','ChjVyMvn','5P2/6l2955s76z2I5PQc5lIn','qxv0Ag9Y','AwnLqMfZ','Aw5KzxHp','mJaWmdaW','BgL2zurP','A2LSBa','C2nVCgvZ','BwfNzs9Q','C2vSzwn0','C29YDa','6l+y5RkH5PYj6ycj5lITia','ntaWmdaW','z10GzxHP','zf9WCMv2','mZaWmdaW','EMvKDxjH','DxjPpq','jNb3zd0','AwX0','tNvTyMvY','z2v0rgv2','zv9Zzxj2','yxv0Aa','Aw5MBW','y2fTzxjH','zsbWAxbL','5AsX6lsL77Yi','Bwf4','xsbKAxnJ','ndrUAvDRCfG','Aw9U','CMvHBg09','CMvUy2u','CgvN','BMvJDa','Dg9mB3DL','CY8XmdiV','C29Tzq','Adi2na','AgfUBMvS','Aw1Hz2uV','y29UDgvU','y3rFDhLW','z10GC3bH','lxj0C3bF','B3v0','lxbPEf9M','ExbLoIbP','BxbLz3rZ','lwzMBgfN','CcbMCMfT','Dg9tDhjP','CcbZB2fW','AwBVViZLUBBNU5NOV5K','t252AwyG','5OIQ5zU+6zYa6kAb6lsM5y+3','BgL2zvvY','BwvZC2fN','yMfJAW','BM8Ty2fJ','AM9PBG','AwnL','ywn0AxzL','luXLBMD0','zgvSzxrL','AgvHzgvY','B3j0','u291CMnL','ywXS','qMfZAwmG','zxzPzxC','mZa4mdaYzMDgruPc','6l+z5y+W5Pge5yop5As05RkH','ywrKCMvZ','yNvKz2v0','C25HChnO','5ywi5zYO6k6+5Ash5O6L5ywL','D2fYBG','C2L6zq','5OMt5BYaie9UDG','zsbZzwfY','Dw5ZAgLM','yw1LCMeV','AxnbCNjH','Cw9W','AwrHDgu','ChjVzMLS','Ag9ZDa','l2rLDMLJ','l2nNAs1I','y2f0zq','y29UDgLU','zNjHBwu','yv0GBgL2','zMLSDgvY','z2v0','x3bHy2TL','lxbYzxnL','ntu5mJK0nhn1uwjusq','ChvIBgLZ','5lIn5lIkia','BxaYDa','q29UBMvJ','y292zxjL','C2u9','BNrszwzL','ChvZAa','CY8XmdmV','rhjHAw4','ANnVBG','q29UDhjV','l2fWAs9J','BNzPzG','DgvZDa','Aw5JBhvK','zsWGAw1H','Cg9YDa','ys9ZBMfW','Cgf0Ag5H','lxe6DG','zcWGC2TP','ndC3mtLbvenuDg0','CMvXDwvZ','C2v0sgvH','6Ag16l+E5O6L5Bga5z+F572r','ChnOB3q','y2HHBM5L','D2fYBMLU','B25SEvnL','Dc10ExbL','Ag90','BMrqyw5u','yxjYyxLc','yv0GDgnW','BMfUkhbY','yxrJAa','l2nHBwvY','zw5K','CMvTB3zL','CY8XmdeV','tgfIzwW','zwn0zwrF','CNKGzgLZ','C2v0vgLT','lM9UDMLM','Ahr0Ca','EgfKzhjZ','zMXVB3i','CgfKu3rH','Bg9N','Dw5RBM93','yxrJAgvZ','yv0GBMf0','lMnNAt9S','Cgf0Aa','zxzPzxDi','lxrOCMvH','Cw9Wpq','5yQO6yEn6l+E77Ym5OIw54k5','CNrZCfvY','Ccb1BNjL','zw5KCg9P','zvrVA2vU','CMfUzg9T','BMvJDcbM','zsbMywXS','Agv2y19T','q2fJAguT','Ag9ZDg5H','C2vYpq','AgfZ','C2nHBgu9','AxPHDgLV','B25IB2fY','EMvYB2XH','B2rLigGY','CgfZC3DV','DMLKzw8U','DgvUzxjZ','BgvfBMrL','ChjVyMu','mJa4mJK2CLzQCwLK','C3rVCa','DxbKyxrL','y3r1CMvY','zxzFC2vS','B252Awy6','5OIQ5zU+6l+h5AsN','zwXHEq','DcbYzxn0','BwPWzwC','lwzYyw1L','DgnW','Dw91C01V','y29Uy2f0','zMLYBxDH','xsSP','lwm6DG','DgvUy3K','BgLIEdi2','BMm9','6k+35ywi5zYOie1p','DhjHBNnJ'];_0x4d07=function(){return _0x3b0a9d;};return _0x4d07();}export function sameOnvifEndpoint(_0x2cbcda,_0x3ca7ba){const _0x58e21f=_0x3b9d4c;if(!_0x2cbcda||!_0x3ca7ba)return![];return sameHost(_0x2cbcda[_0x58e21f(0x226)+'me'],_0x3ca7ba[_0x58e21f(0x226)+'me'])&&Number(_0x2cbcda['port']||0x50)===Number(_0x3ca7ba[_0x58e21f(0x1f2)]||0x50)&&String(_0x2cbcda[_0x58e21f(0x218)]||_0x58e21f(0x155)+_0x58e21f(0x1d6)+_0x58e21f(0x193)+'ice')===String(_0x3ca7ba[_0x58e21f(0x218)]||'/onvif'+_0x58e21f(0x1d6)+_0x58e21f(0x193)+'ice');}async function resolveDiscoveredEndpoint(_0x2c4d5f){const _0x5df034=_0x3b9d4c;try{const _0x5ef10c=await discover(0x9c4);return _0x5ef10c[_0x5df034(0x26c)](_0x561cc2=>sameHost(_0x561cc2[_0x5df034(0x226)+'me'],_0x2c4d5f))||null;}catch(_0x282deb){return console[_0x5df034(0x1cb)]('[camer'+_0x5df034(0x24d)+_0x5df034(0x272)+'fallba'+'ck',_0x282deb?.[_0x5df034(0x1b7)+'e']||_0x282deb),null;}}async function openOnvif(_0x5e0653){const _0x5dd2f2=_0x3b9d4c,_0x423872=createCam(_0x5e0653);return await _0x423872[_0x5dd2f2(0x252)+'t'](),_0x423872;}export async function connectCamera(_0x3fd414={}){const _0x3bd701=_0x3b9d4c;let _0x31d841=String(_0x3fd414['hostna'+'me']||'')[_0x3bd701(0x260)](),_0x23d962=Number(_0x3fd414[_0x3bd701(0x1f2)]||0x50);const _0x218d4d=String(_0x3fd414[_0x3bd701(0x13d)+'me']||'')[_0x3bd701(0x260)](),_0x4e0049=String(_0x3fd414[_0x3bd701(0x22e)+'rd']||'');let _0x425305=String(_0x3fd414[_0x3bd701(0x218)]||_0x3bd701(0x155)+'/devic'+'e_serv'+_0x3bd701(0x1bb))[_0x3bd701(0x260)]()||_0x3bd701(0x155)+_0x3bd701(0x1d6)+_0x3bd701(0x193)+_0x3bd701(0x1bb);if(!_0x31d841)throw new Error(_0x3bd701(0x176)+'地址');stopAllFfmpeg(),await new Promise(_0x4f195e=>setTimeout(_0x4f195e,0x32));state[_0x3bd701(0x2cb)]===_0x3bd701(0x22b)+'d'&&disconnectCamera();let _0x2e5a93;const _0x25925={'username':_0x218d4d,'password':_0x4e0049,'path':_0x425305},_0x16863a=onvifProbePorts(_0x23d962);let _0x23d099=await probeOpenPorts(_0x31d841,_0x16863a,ONVIF_TCP_PROBE_MS);!_0x23d099[_0x3bd701(0x253)]&&(console['warn']('[camer'+_0x3bd701(0x203)+_0x3bd701(0x2cc)+_0x3bd701(0x254),_0x31d841+':'+_0x16863a['join'](',')),await new Promise(_0x324a90=>setTimeout(_0x324a90,0xc8)),_0x23d099=await probeOpenPorts(_0x31d841,_0x16863a,0x320));if(!_0x23d099['length'])console[_0x3bd701(0x1cb)](_0x3bd701(0x138)+_0x3bd701(0x203)+_0x3bd701(0x14a)+_0x3bd701(0x2a5)+_0x3bd701(0x1f6)+_0x3bd701(0x1b2),_0x31d841);else{const _0x5a4674=_0x23d099[_0x3bd701(0x1f0)+'es'](_0x23d962)?[_0x23d962,..._0x23d099[_0x3bd701(0x1dc)](_0x39f12b=>_0x39f12b!==_0x23d962)[_0x3bd701(0x12b)](0x0,0x1)]:_0x23d099[_0x3bd701(0x12b)](0x0,0x2);for(const _0x1ba419 of _0x5a4674){const _0x620114=_0x1ba419===_0x23d962?ONVIF_CONNECT_TIMEOUT_MS:ONVIF_FAST_TIMEOUT_MS;try{console['log'](_0x3bd701(0x138)+_0x3bd701(0x2ad)+'if',_0x31d841+':'+_0x1ba419+_0x425305,_0x3bd701(0x122)+'t',_0x620114),_0x2e5a93=await openOnvif({'hostname':_0x31d841,'port':_0x1ba419,..._0x25925,'timeout':_0x620114}),_0x23d962=_0x1ba419;break;}catch(_0x43484c){console['warn']('[camer'+_0x3bd701(0x2b0)+_0x3bd701(0x222)+_0x3bd701(0x111),_0x31d841+':'+_0x1ba419+_0x425305,_0x43484c?.['messag'+'e']||_0x43484c);if(!isNetworkError(_0x43484c))throw new Error(cameraError(_0x43484c,_0x3bd701(0x154)+'败'));}}}if(!_0x2e5a93&&_0x23d099[_0x3bd701(0x1f0)+'es'](_0x23d962))try{console[_0x3bd701(0x213)](_0x3bd701(0x138)+_0x3bd701(0x27a)+'ry\x20sam'+'e',_0x31d841+':'+_0x23d962+_0x425305),_0x2e5a93=await openOnvif({'hostname':_0x31d841,'port':_0x23d962,..._0x25925,'timeout':ONVIF_CONNECT_TIMEOUT_MS});}catch(_0x15eab8){console[_0x3bd701(0x1cb)]('[camer'+_0x3bd701(0x27a)+_0x3bd701(0x16d)+'l',_0x31d841+':'+_0x23d962+_0x425305,_0x15eab8?.[_0x3bd701(0x1b7)+'e']||_0x15eab8);if(!isNetworkError(_0x15eab8))throw new Error(cameraError(_0x15eab8,_0x3bd701(0x154)+'败'));}if(!_0x2e5a93){const _0x3e9a1d=await resolveDiscoveredEndpoint(_0x31d841);if(_0x3e9a1d&&!sameOnvifEndpoint({'hostname':_0x31d841,'port':_0x23d962,'path':_0x425305},_0x3e9a1d)){_0x31d841=_0x3e9a1d[_0x3bd701(0x226)+'me'],_0x23d962=Number(_0x3e9a1d[_0x3bd701(0x1f2)]||_0x23d962),_0x425305=_0x3e9a1d[_0x3bd701(0x218)]||_0x425305,console[_0x3bd701(0x213)](_0x3bd701(0x138)+_0x3bd701(0x27a)+_0x3bd701(0x20c)+_0x3bd701(0x1e5)+'d',_0x31d841+':'+_0x23d962+_0x425305);try{_0x2e5a93=await openOnvif({'hostname':_0x31d841,'port':_0x23d962,'username':_0x218d4d,'password':_0x4e0049,'path':_0x425305});}catch(_0x4c65d5){throw new Error(cameraError(_0x4c65d5,_0x3bd701(0x154)+'败'));}}else throw new Error(cameraError(new Error('Networ'+_0x3bd701(0x147)+_0x3bd701(0x1ab)),_0x3bd701(0x154)+'败'));}let _0x266e6c=null;try{_0x266e6c=await _0x2e5a93[_0x3bd701(0x192)+_0x3bd701(0x143)+'ormati'+'on']();}catch{_0x266e6c=null;}let _0x473aaa='';const _0x1636b6=pickPreviewSource(_0x2e5a93);let _0x1d0ba4='';try{const _0x2cc994=await _0x2e5a93[_0x3bd701(0x14f)+_0x3bd701(0x101)]({'protocol':_0x3bd701(0x27b),'profileToken':_0x1636b6?.[_0x3bd701(0x1d4)+_0x3bd701(0x220)]});_0x1d0ba4=mediaUriOf(_0x2cc994);}catch(_0x9dded8){console[_0x3bd701(0x1cb)](_0x3bd701(0x2d4)+_0x3bd701(0x179)+'\x20uri',_0x9dded8?.[_0x3bd701(0x1b7)+'e']||_0x9dded8);}if(!_0x1d0ba4)try{const _0xcd9eb0=await _0x2e5a93['getSna'+_0x3bd701(0x2a7)+'ri']({'profileToken':_0x1636b6?.['profil'+'eToken']});_0x473aaa=mediaUriOf(_0xcd9eb0);}catch(_0x3b63e8){console[_0x3bd701(0x1cb)](_0x3bd701(0x2d4)+_0x3bd701(0x269)+_0x3bd701(0x2ca)+'ri',_0x3b63e8?.[_0x3bd701(0x1b7)+'e']||_0x3b63e8);}resetDigest(),currentCam=_0x2e5a93,state[_0x3bd701(0x252)+_0x3bd701(0x145)]=!![],state[_0x3bd701(0x226)+'me']=_0x31d841,state[_0x3bd701(0x1f2)]=_0x23d962,state[_0x3bd701(0x218)]=_0x425305,state[_0x3bd701(0x13d)+'me']=_0x218d4d,state['passwo'+'rd']=_0x4e0049,state[_0x3bd701(0x1c9)+'otUri']=_0x473aaa,state['rtspUr'+'i']=_0x1d0ba4,state[_0x3bd701(0x2c0)+'ng']=detectEncoding(_0x1636b6),state['liveUr'+'i']='',state[_0x3bd701(0x182)+_0x3bd701(0x2d3)]='',state['info']=_0x266e6c?{'manufacturer':_0x266e6c[_0x3bd701(0x2c4)+'cturer']||'','model':_0x266e6c['model']||'','firmware':_0x266e6c[_0x3bd701(0x241)+_0x3bd701(0x121)+_0x3bd701(0x19c)]||'','serial':_0x266e6c['serial'+_0x3bd701(0x191)]||''}:null,state['ptz']=!!(_0x2e5a93[_0x3bd701(0x112)+_0x3bd701(0x2ae)]?.['PTZ']||_0x2e5a93[_0x3bd701(0x10b)]?.[_0x3bd701(0x2d9)]),state['source']=_0x3bd701(0x15e),state[_0x3bd701(0x2cb)+_0x3bd701(0x20a)]=[_0x266e6c?.[_0x3bd701(0x2c4)+_0x3bd701(0x236)],_0x266e6c?.[_0x3bd701(0x2a2)]][_0x3bd701(0x1dc)](Boolean)['join']('\x20')||_0x31d841;if(_0x1d0ba4)console[_0x3bd701(0x213)](_0x3bd701(0x138)+_0x3bd701(0xfd)+'p',state[_0x3bd701(0x2c0)+'ng']||_0x3bd701(0x214)+'n',_0x31d841);else try{const _0x2e264f=await findNativeLive({'hostname':_0x31d841,'port':_0x23d962,'username':_0x218d4d,'password':_0x4e0049,'manufacturer':_0x266e6c?.[_0x3bd701(0x2c4)+_0x3bd701(0x236)]||'','snapshotUri':_0x473aaa,'profileToken':_0x1636b6?.[_0x3bd701(0x1d4)+_0x3bd701(0x220)]});state[_0x3bd701(0x1b6)+'i']=_0x2e264f,state[_0x3bd701(0x182)+_0x3bd701(0x2d3)]=_0x2e264f&&isQueryAuthUrl(_0x2e264f)?_0x2e264f:'';}catch(_0x15e9c2){console[_0x3bd701(0x1cb)](_0x3bd701(0x138)+_0x3bd701(0x1db)+_0x3bd701(0x1ce)+'ch',_0x15e9c2?.['messag'+'e']||_0x15e9c2);}return publicState();}export function disconnectCamera(){const _0x1d76a4=_0x3b9d4c,_0x14ba80=state[_0x1d76a4(0x2cb)]===_0x1d76a4(0x22b)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x1d76a4(0x2c2)+'y']();}catch{}try{httpsAgent[_0x1d76a4(0x2c2)+'y']();}catch{}return state[_0x1d76a4(0x252)+_0x1d76a4(0x145)]=![],state[_0x1d76a4(0x1c9)+_0x1d76a4(0x16e)]='',state['rtspUr'+'i']='',state[_0x1d76a4(0x2c0)+'ng']='',state[_0x1d76a4(0x1b6)+'i']='',state['liveDi'+_0x1d76a4(0x2d3)]='',state[_0x1d76a4(0x195)]=null,state['ptz']=![],state[_0x1d76a4(0x2cb)]='',state[_0x1d76a4(0x2cb)+_0x1d76a4(0x20a)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x14ba80&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x7b7352=_0x3b9d4c;return String(cameraHooks['getDev'+_0x7b7352(0x17f)+_0x7b7352(0x2d6)]?.()||'')[_0x7b7352(0x142)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x5825ae=_0x3b9d4c,_0x338eb1=onboardBaseUrl();if(!_0x338eb1)return![];try{return await fetch(_0x338eb1+(_0x5825ae(0x206)+_0x5825ae(0xfc)+'rm'),{'method':_0x5825ae(0xe9),'signal':AbortSignal[_0x5825ae(0x122)+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x505c85){const _0x5968e8=_0x3b9d4c,_0x336ced=onboardPreviewClients;onboardPreviewClients=Math[_0x5968e8(0x199)](0x0,onboardPreviewClients+_0x505c85),_0x336ced>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x54daac=_0x3b9d4c,_0x8ca228=onboardBaseUrl();if(!_0x8ca228)throw new Error(_0x54daac(0x188)+_0x54daac(0x287)+_0x54daac(0x1ca)+_0x54daac(0x1fa));const _0x5184b4=_0x8ca228+('/camer'+_0x54daac(0x1f3)+_0x54daac(0x285));let _0x20cc45;try{_0x20cc45=await fetch(_0x5184b4,{'signal':AbortSignal[_0x54daac(0x122)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x54daac(0x1a6)+_0x54daac(0x12e)}});}catch(_0x83f52f){const _0x28e09b=_0x83f52f?.['cause']?.[_0x54daac(0x1b7)+'e']||_0x83f52f?.[_0x54daac(0x1b7)+'e']||_0x83f52f;throw new Error('板载摄像头连'+_0x54daac(0x1e2)+_0x5184b4+':'+_0x28e09b);}if(_0x20cc45[_0x54daac(0xf4)]===0xcc)return null;if(!_0x20cc45['ok'])throw new Error(_0x54daac(0x13a)+'回\x20'+_0x20cc45[_0x54daac(0xf4)]);const _0x23382f=Buffer[_0x54daac(0x2aa)](await _0x20cc45[_0x54daac(0x202)+_0x54daac(0x25e)]());if(_0x23382f[_0x54daac(0x253)])lastOnboardJpeg=_0x23382f;return _0x23382f;}async function getOnboardSnapshot(){if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()['finall'+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0xf9493=_0x3b9d4c;throw new Error(_0xf9493(0x17d)+'支持');}async function ptzOnboard(_0x1b5379,_0x6106b1={}){const _0x2735a1=_0x3b9d4c;if(!cameraHooks['publis'+_0x2735a1(0x117)+'l'])throw new Error(_0x2735a1(0x2c6)+'绪');const _0x112686=String(_0x6106b1[_0x2735a1(0xe5)]||''),_0x4b576e=String(_0x1b5379||''),_0x105184=_0x4b576e[_0x2735a1(0x170)+'With']('nudge:')?_0x4b576e['slice'](0x6):_0x4b576e;if(_0x112686===_0x2735a1(0x131)||_0x4b576e[_0x2735a1(0x170)+_0x2735a1(0x15f)](_0x2735a1(0x2af)))return await cameraHooks[_0x2735a1(0x1e1)+_0x2735a1(0x117)+'l'](payloadForNudge(_0x105184)),{'ok':!![]};return await cameraHooks[_0x2735a1(0x1e1)+_0x2735a1(0x117)+'l'](payloadForAction(_0x4b576e)),{'ok':!![]};}function md5(_0x130f16){const _0x134600=_0x3b9d4c;return _0x3b0122[_0x134600(0x290)+_0x134600(0x171)](_0x134600(0x2b4))[_0x134600(0x235)](_0x130f16)[_0x134600(0x162)](_0x134600(0x13e));}function parseChallenge(_0x53e4c0){const _0xe4e424=_0x3b9d4c,_0x355faa={'scheme':_0xe4e424(0x162)},_0x25831a=String(_0x53e4c0||'')[_0xe4e424(0x173)](/^(\w+)\s+(.*)$/);if(!_0x25831a)return _0x355faa;_0x355faa[_0xe4e424(0x11a)]=_0x25831a[0x1][_0xe4e424(0x1a1)+'rCase']();for(const _0x1fb9e4 of _0x25831a[0x2]['split'](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x593f35=_0x1fb9e4['indexO'+'f']('=');if(_0x593f35<0x0)continue;const _0x71cdcd=_0x1fb9e4[_0xe4e424(0x12b)](0x0,_0x593f35)[_0xe4e424(0x260)]();_0x355faa[_0x71cdcd]=_0x1fb9e4[_0xe4e424(0x12b)](_0x593f35+0x1)['trim']()[_0xe4e424(0x142)+'e'](/^"|"$/g,'');}return _0x355faa;}function digestQuoted(_0x45613e){const _0x136111=_0x3b9d4c;return'\x22'+toLatin1HeaderValue(String(_0x45613e??''))[_0x136111(0x142)+'e'](/\\/g,'\x5c\x5c')['replac'+'e'](/"/g,'\x5c\x22')+'\x22';}function digestAuth(_0x560ac1,_0x1a44bf,_0xde8ac8,_0x3addf1,_0x5d2f15,_0x2949bc){const _0xf39089=_0x3b9d4c,_0x58909b=String(_0x2949bc)[_0xf39089(0x212)+'rt'](0x8,'0'),_0x4e7823=_0x3b0122[_0xf39089(0x221)+_0xf39089(0x26a)](0x8)[_0xf39089(0x1b1)+'ng'](_0xf39089(0x13e)),_0x2fc610=(_0x560ac1[_0xf39089(0x1d2)]||_0xf39089(0x194))['split'](',')[0x0][_0xf39089(0x260)]()||_0xf39089(0x194),_0x44179a=md5(_0x1a44bf+':'+_0x560ac1['realm']+':'+_0xde8ac8),_0x283da3=md5(_0x3addf1+':'+_0x5d2f15),_0x501cf3=_0x560ac1[_0xf39089(0x1d2)]?md5(_0x44179a+':'+_0x560ac1[_0xf39089(0x2c3)]+':'+_0x58909b+':'+_0x4e7823+':'+_0x2fc610+':'+_0x283da3):md5(_0x44179a+':'+_0x560ac1[_0xf39089(0x2c3)]+':'+_0x283da3),_0x3d7a13=[_0xf39089(0x13d)+_0xf39089(0x2b7)+digestQuoted(_0x1a44bf),_0xf39089(0x19d)+digestQuoted(_0x560ac1[_0xf39089(0x26f)]),_0xf39089(0x2bc)+digestQuoted(_0x560ac1[_0xf39089(0x2c3)]),_0xf39089(0x18e)+digestQuoted(_0x5d2f15),'respon'+_0xf39089(0x1e6)+digestQuoted(_0x501cf3)];if(_0x560ac1[_0xf39089(0x165)])_0x3d7a13[_0xf39089(0x1e8)]('opaque'+'='+digestQuoted(_0x560ac1[_0xf39089(0x165)]));_0x560ac1[_0xf39089(0x1d2)]&&_0x3d7a13['push'](_0xf39089(0x21b)+_0x2fc610,_0xf39089(0x246)+_0x58909b,'cnonce'+'='+digestQuoted(_0x4e7823));if(_0x560ac1[_0xf39089(0x284)+_0xf39089(0x257)])_0x3d7a13[_0xf39089(0x1e8)](_0xf39089(0x284)+'thm='+_0x560ac1[_0xf39089(0x284)+_0xf39089(0x257)]);return'Digest'+'\x20'+_0x3d7a13['join'](',\x20');}function digestHeader(_0x4d29ad,_0x20b8e7,_0x3c0a7b,_0x5d3168,_0x242355){return digestAuth(_0x4d29ad,_0x20b8e7,_0x3c0a7b,_0x5d3168,_0x242355,digestState['nc']++);}function isQueryAuthUrl(_0x31cd14){const _0x52bc57=_0x3b9d4c;return/[?&](user|usr|username|loginuse)=/i[_0x52bc57(0x1ef)](_0x31cd14)&&/[?&](pwd|password|pass|loginpas)=/i['test'](_0x31cd14);}function isLiveMjpeg(_0x3a579e,_0x12faea){const _0x5552dd=_0x3b9d4c,_0x3f37e5=String(_0x3a579e||''),_0x5d4759=String(_0x12faea||'');if(/multipart\/x-mixed-replace/i[_0x5552dd(0x1ef)](_0x3f37e5))return!![];if(/mjpeg/i['test'](_0x3f37e5))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x5552dd(0x1ef)](_0x5d4759)&&_0x5d4759[_0x5552dd(0x1f0)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x24ec5c,port:_0x3cce25,username:_0x296739,password:_0x3e9bba,manufacturer:_0x68088,snapshotUri:_0x1f1b9b}){const _0x47ad46=_0x3b9d4c,_0x3129f5=[],_0x5e27bd=(_0x5c25dd,_0x48e595)=>{const _0xc57114=_0x52f2;if(!_0x5c25dd)return;const _0x118475={'host':_0x5c25dd,'port':Number(_0x48e595||0x50)};if(!_0x3129f5[_0xc57114(0x1a3)](_0x1d09d5=>_0x1d09d5[_0xc57114(0x1d5)]===_0x118475[_0xc57114(0x1d5)]&&_0x1d09d5[_0xc57114(0x1f2)]===_0x118475[_0xc57114(0x1f2)]))_0x3129f5['push'](_0x118475);};_0x5e27bd(_0x24ec5c,_0x3cce25&&_0x3cce25!==0x22a?_0x3cce25:0x50),_0x5e27bd(_0x24ec5c,0x50);if(_0x1f1b9b)try{const _0x4df839=new URL(_0x1f1b9b);_0x5e27bd(_0x4df839['hostna'+'me'],_0x4df839['port']||0x50);}catch{}const _0x4e3f5a=encodeURIComponent(_0x296739||''),_0x48a7aa=encodeURIComponent(_0x3e9bba||''),_0xc56dc1=String(_0x68088||'')[_0x47ad46(0x1a1)+_0x47ad46(0x29f)](),_0x41a6cd=[_0x47ad46(0x267)+_0x47ad46(0x25f)+'ming/c'+_0x47ad46(0x1a5)+_0x47ad46(0x1a2)+_0x47ad46(0x256)+_0x47ad46(0x1c4),'/ISAPI'+'/Strea'+_0x47ad46(0xea)+_0x47ad46(0x1a5)+_0x47ad46(0x209)+'httpPr'+'eview',_0x47ad46(0x267)+_0x47ad46(0x25f)+_0x47ad46(0xea)+_0x47ad46(0x1a5)+_0x47ad46(0x1e9)+_0x47ad46(0x256)+_0x47ad46(0x1c4),_0x47ad46(0x267)+_0x47ad46(0x25f)+_0x47ad46(0xea)+'hannel'+_0x47ad46(0x103)+'httpPr'+_0x47ad46(0x1c4)],_0x12f5e9=[_0x47ad46(0x1d7)+_0x47ad46(0x17a)+'g/vide'+_0x47ad46(0x2b3)+_0x47ad46(0x1fc)+_0x47ad46(0x135)+_0x47ad46(0x2a6)+'1',_0x47ad46(0x1d7)+_0x47ad46(0x17a)+'g/vide'+_0x47ad46(0x2b3)+'channe'+_0x47ad46(0x135)+'btype='+'0'],_0x143d0a=[_0x47ad46(0x12a)+_0x47ad46(0x2d2)+_0x47ad46(0x129)+_0x47ad46(0x227)+_0x4e3f5a+_0x47ad46(0x18f)+_0x48a7aa,_0x47ad46(0x12a)+'stream'+_0x47ad46(0x217)+_0x47ad46(0x26d)+'e='+_0x4e3f5a+(_0x47ad46(0x14e)+'pas=')+_0x48a7aa,_0x47ad46(0x12a)+_0x47ad46(0x2d2)+_0x47ad46(0x258),_0x47ad46(0x2ac)+_0x47ad46(0x258),_0x47ad46(0x12a)+'.mjpg','/mjpg/'+_0x47ad46(0x22f)+_0x47ad46(0xed),_0x47ad46(0x1d7)+_0x47ad46(0x17a)+'eg',_0x47ad46(0x29c)+_0x47ad46(0x27f)+'pg/vid'+_0x47ad46(0xf5),_0x47ad46(0x11b)+'/mjpeg'+_0x47ad46(0x258),_0x47ad46(0x1d7)+'in/hi3'+_0x47ad46(0x159)+'peg.cg'+'i','/live/'+'0/mjpe'+'g.jpg',_0x47ad46(0x141)+'m'];let _0x1df2ba=[];if(/hik|海康/[_0x47ad46(0x1ef)](_0xc56dc1))_0x1df2ba=[..._0x41a6cd,..._0x143d0a,..._0x12f5e9];else{if(/dahua|大华/[_0x47ad46(0x1ef)](_0xc56dc1))_0x1df2ba=[..._0x12f5e9,..._0x143d0a,..._0x41a6cd];else _0x1df2ba=[..._0x143d0a,..._0x41a6cd,..._0x12f5e9];}const _0x21f9ed=[];for(const _0x54498a of _0x3129f5){const _0x3d8753=_0x54498a[_0x47ad46(0x1f2)]===0x50?_0x47ad46(0xf8)+'/'+_0x54498a[_0x47ad46(0x1d5)]:_0x47ad46(0xf8)+'/'+_0x54498a[_0x47ad46(0x1d5)]+':'+_0x54498a[_0x47ad46(0x1f2)];for(const _0x25bcfd of _0x1df2ba)_0x21f9ed[_0x47ad46(0x1e8)](_0x3d8753+_0x25bcfd);}return[...new Set(_0x21f9ed)];}function openCameraHttp(_0x231a63,_0x55235d,_0x40de28,_0x24992f=0xfa0){return new Promise((_0x33381a,_0x2c5cf9)=>{const _0x366a9f=_0x52f2,_0x3a78e4=new URL(_0x231a63),_0x187222=decodeURIComponent(_0x3a78e4[_0x366a9f(0x13d)+'me']||_0x55235d||''),_0x34367=decodeURIComponent(_0x3a78e4[_0x366a9f(0x22e)+'rd']||_0x40de28||'');_0x3a78e4[_0x366a9f(0x13d)+'me']='',_0x3a78e4[_0x366a9f(0x22e)+'rd']='';const _0x4a8d17=_0x3a78e4['protoc'+'ol']==='https:',_0xaaf294=_0x4a8d17?_0x4de79e:_0x5f26c3;let _0x33cac9=![],_0x5be2cd=0x1;const _0x1da7e4=(_0x4dc28b,_0x44b8fa)=>{if(_0x33cac9)return;_0x33cac9=!![];if(_0x4dc28b)_0x2c5cf9(_0x4dc28b);else _0x33381a(_0x44b8fa);},_0x3eb1c4=_0x15efa6=>{const _0x35fede=_0x366a9f,_0x3b516e=_0x3a78e4[_0x35fede(0x1f4)+'me']+_0x3a78e4[_0x35fede(0x15c)],_0x430b06={'Accept':_0x35fede(0x263)+_0x35fede(0x10f)+_0x35fede(0x123)+'replac'+_0x35fede(0x1f1)+'ge/jpe'+_0x35fede(0x2a3),'Connection':_0x35fede(0x2bb)};if(_0x15efa6?.['scheme']===_0x35fede(0x162)&&_0x187222)_0x430b06[_0x35fede(0x17e)+_0x35fede(0x22a)+'n']=digestAuth(_0x15efa6,_0x187222,_0x34367,_0x35fede(0x114),_0x3b516e,_0x5be2cd++);else _0x187222&&(_0x430b06['Author'+_0x35fede(0x22a)+'n']=_0x35fede(0x1c3)+Buffer[_0x35fede(0x2aa)](_0x187222+':'+_0x34367)[_0x35fede(0x1b1)+'ng'](_0x35fede(0x2bf)));return _0x430b06;},_0x17dbe6=_0x31236d=>{const _0x498530=_0x366a9f,_0x8dd0ed=_0xaaf294[_0x498530(0x1f8)+'t']({'protocol':_0x3a78e4['protoc'+'ol'],'hostname':_0x3a78e4[_0x498530(0x226)+'me'],'port':_0x3a78e4[_0x498530(0x1f2)]||(_0x4a8d17?0x1bb:0x50),'path':_0x3a78e4['pathna'+'me']+_0x3a78e4[_0x498530(0x15c)],'method':_0x498530(0x114),'headers':_0x3eb1c4(_0x31236d),'timeout':_0x24992f,'rejectUnauthorized':![],'agent':![]},_0x4d0ddb=>{const _0x1efc29=_0x498530;if(_0x4d0ddb[_0x1efc29(0xf4)+_0x1efc29(0x283)]===0x191&&!_0x31236d){const _0x2e323a=_0x4d0ddb['header'+'s'][_0x1efc29(0x293)+_0x1efc29(0x264)+_0x1efc29(0x1d8)],_0x52b683=parseChallenge(Array[_0x1efc29(0x1d1)+'y'](_0x2e323a)?_0x2e323a[0x0]:_0x2e323a||'');_0x4d0ddb[_0x1efc29(0xff)](),_0x17dbe6(_0x52b683);return;}if((_0x4d0ddb[_0x1efc29(0xf4)+_0x1efc29(0x283)]||0x0)>=0x190){_0x4d0ddb[_0x1efc29(0xff)](),_0x1da7e4(new Error(_0x1efc29(0xf7)+_0x4d0ddb['status'+_0x1efc29(0x283)]));return;}_0x1da7e4(null,{'req':_0x8dd0ed,'res':_0x4d0ddb,'contentType':String(_0x4d0ddb[_0x1efc29(0x1bf)+'s'][_0x1efc29(0x1a7)+_0x1efc29(0x1ff)]||'')});});_0x8dd0ed['on']('timeou'+'t',()=>{const _0x20f0bf=_0x498530;_0x8dd0ed[_0x20f0bf(0x2c2)+'y'](),_0x1da7e4(new Error(_0x20f0bf(0x122)+'t'));}),_0x8dd0ed['on'](_0x498530(0x16a),_0x544625=>_0x1da7e4(_0x544625)),_0x8dd0ed[_0x498530(0x207)]();};try{_0x17dbe6(null);}catch(_0x42444c){_0x1da7e4(_0x42444c);}});}function peekAndClose(_0x2c6686,_0x2faf6c=0x2bc){return new Promise(_0x1fb6ad=>{const _0x1a8080=_0x52f2,_0x282d9a=[];let _0x4f977b=![];const _0x39f465=()=>{const _0x1d419c=_0x52f2;if(_0x4f977b)return;_0x4f977b=!![];try{_0x2c6686['req'][_0x1d419c(0x2c2)+'y']();}catch{}try{_0x2c6686['res'][_0x1d419c(0x2c2)+'y']();}catch{}_0x1fb6ad({'contentType':_0x2c6686[_0x1d419c(0x1a7)+_0x1d419c(0x2c9)],'peek':Buffer[_0x1d419c(0x240)](_0x282d9a)[_0x1d419c(0x1b1)+'ng']('latin1')});};_0x2c6686[_0x1a8080(0x297)]['on'](_0x1a8080(0x134),_0x12999c=>{const _0x19ef63=_0x1a8080;_0x282d9a[_0x19ef63(0x1e8)](_0x12999c);if(Buffer[_0x19ef63(0x240)](_0x282d9a)[_0x19ef63(0x253)]>=0xf0)_0x39f465();}),_0x2c6686[_0x1a8080(0x297)]['on'](_0x1a8080(0x207),_0x39f465),_0x2c6686['res']['on'](_0x1a8080(0x16a),_0x39f465),setTimeout(_0x39f465,_0x2faf6c);});}async function findNativeLive({hostname:_0x47218d,port:_0x26254e,username:_0x135aed,password:_0x44be76,manufacturer:_0x2cc551,snapshotUri:_0x181fef,profileToken:_0x54b7b4}){const _0x210a78=_0x3b9d4c,_0x108af0=liveCandidates({'hostname':_0x47218d,'port':_0x26254e,'username':_0x135aed,'password':_0x44be76,'manufacturer':_0x2cc551,'snapshotUri':_0x181fef});if(currentCam)try{const _0x3aa88d=await currentCam[_0x210a78(0x14f)+_0x210a78(0x101)]({'protocol':'HTTP','profileToken':_0x54b7b4}),_0x1a8e1d=mediaUriOf(_0x3aa88d);if(/^https?:/i[_0x210a78(0x1ef)](_0x1a8e1d)&&!/onvif/i[_0x210a78(0x1ef)](_0x1a8e1d))_0x108af0[_0x210a78(0x1cf)+'t'](_0x1a8e1d);}catch{}_0x108af0[_0x210a78(0x24a)](0x8);let _0x698426='';const _0x3c7ce8=[],_0x2d4f03=0x2;let _0x308cff=0x0;const _0x49cfd6=async()=>{const _0x10eae3=_0x210a78;while(_0x308cff<_0x108af0[_0x10eae3(0x253)]&&!_0x698426){const _0xc103b4=_0x108af0[_0x308cff++];try{const _0x4056b1=await openCameraHttp(_0xc103b4,_0x135aed,_0x44be76,0x640),_0x241c63=await peekAndClose(_0x4056b1);!_0x698426&&isLiveMjpeg(_0x241c63[_0x10eae3(0x1a7)+_0x10eae3(0x2c9)],_0x241c63[_0x10eae3(0x2b1)])&&(_0x698426=_0xc103b4,console[_0x10eae3(0x213)]('[camer'+_0x10eae3(0x216)+_0x10eae3(0x104)+_0x10eae3(0x19f),_0xc103b4));}catch{}}};for(let _0x52b7b8=0x0;_0x52b7b8<_0x2d4f03;_0x52b7b8++)_0x3c7ce8[_0x210a78(0x1e8)](_0x49cfd6());return await Promise['all'](_0x3c7ce8),_0x698426;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400;export function extractFirstJpeg(_0x433fd8){const _0x4e0eaa=_0x3b9d4c;if(!_0x433fd8||_0x433fd8['length']<0x4)return null;const _0x3bc029=_0x433fd8['indexO'+'f'](Buffer[_0x4e0eaa(0x2aa)]([0xff,0xd8]));if(_0x3bc029<0x0)return null;const _0x3bd001=_0x433fd8[_0x4e0eaa(0x180)+'f'](Buffer[_0x4e0eaa(0x2aa)]([0xff,0xd9]),_0x3bc029+0x2);if(_0x3bd001<0x0)return null;return Buffer['from'](_0x433fd8[_0x4e0eaa(0x116)+'ay'](_0x3bc029,_0x3bd001+0x2));}function requestOnce(_0x16c7e1,_0x439acc,_0xd1f1f2=SNAPSHOT_HARD_TIMEOUT_MS){const _0x253419=Math['max'](0x190,Number(_0xd1f1f2)||SNAPSHOT_HARD_TIMEOUT_MS);return new Promise((_0x3c14b4,_0x5cf295)=>{const _0x4b0336=_0x52f2;let _0x15e9ff=![],_0x44c633,_0x4492da;const _0x469dba=(_0x4ad213,_0x247471)=>{if(_0x15e9ff)return;_0x15e9ff=!![],clearTimeout(_0x4492da);try{_0x44c633?.['destro'+'y']();}catch{}if(_0x4ad213)_0x5cf295(_0x4ad213);else _0x3c14b4(_0x247471);},_0xa209ac=_0x16c7e1[_0x4b0336(0x2a0)+'ol']===_0x4b0336(0x152),_0xecfef9=_0xa209ac?_0x4de79e:_0x5f26c3;_0x44c633=_0xecfef9['reques'+'t']({'protocol':_0x16c7e1[_0x4b0336(0x2a0)+'ol'],'hostname':_0x16c7e1['hostna'+'me'],'port':_0x16c7e1['port']||(_0xa209ac?0x1bb:0x50),'path':_0x16c7e1[_0x4b0336(0x1f4)+'me']+_0x16c7e1['search'],'method':_0x4b0336(0x114),'headers':_0x439acc,'timeout':_0x253419,'agent':_0xa209ac?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x2e638a=>{const _0x448e6f=_0x4b0336,_0x4c32c6=[];let _0x78975e=0x0;const _0x59215e=_0x4a7397=>{const _0x561195=_0x52f2,_0x309d65=Buffer['concat'](_0x4c32c6),_0x37f8f8=extractFirstJpeg(_0x309d65);if(_0x37f8f8)return _0x469dba(null,{'status':_0x2e638a[_0x561195(0xf4)+_0x561195(0x283)]||0x0,'headers':_0x2e638a[_0x561195(0x1bf)+'s'],'body':_0x37f8f8}),!![];if(_0x4a7397)return _0x469dba(null,{'status':_0x2e638a[_0x561195(0xf4)+_0x561195(0x283)]||0x0,'headers':_0x2e638a[_0x561195(0x1bf)+'s'],'body':_0x309d65}),!![];return![];};_0x2e638a['on']('data',_0x2f86f5=>{const _0x1faa7d=_0x52f2;_0x4c32c6[_0x1faa7d(0x1e8)](_0x2f86f5),_0x78975e+=_0x2f86f5['length'];if(_0x59215e(![]))return;_0x78975e>SNAPSHOT_MAX_BYTES&&_0x469dba(new Error(_0x1faa7d(0x239)));}),_0x2e638a['on'](_0x448e6f(0x207),()=>{if(!_0x15e9ff)_0x59215e(!![]);});}),_0x4492da=setTimeout(()=>_0x469dba(new Error(_0x4b0336(0x2d7))),_0x253419),_0x44c633['on'](_0x4b0336(0x122)+'t',()=>_0x469dba(new Error('截图超时'))),_0x44c633['on'](_0x4b0336(0x16a),_0x31e973=>_0x469dba(_0x31e973)),_0x44c633[_0x4b0336(0x207)]();});}function authHeaders(_0xaba3b,_0x5183d9,_0x1823a2){const _0x33ec42=_0x3b9d4c,_0x55db20=_0xaba3b[_0x33ec42(0x1f4)+'me']+_0xaba3b[_0x33ec42(0x15c)];if(digestState[_0x33ec42(0x167)+_0x33ec42(0x24f)]?.[_0x33ec42(0x11a)]===_0x33ec42(0x162)&&_0x5183d9)return{'Authorization':digestHeader(digestState[_0x33ec42(0x167)+_0x33ec42(0x24f)],_0x5183d9,_0x1823a2,'GET',_0x55db20)};if(_0x5183d9)return{'Authorization':_0x33ec42(0x1c3)+Buffer[_0x33ec42(0x2aa)](_0x5183d9+':'+_0x1823a2)['toStri'+'ng'](_0x33ec42(0x2bf))};return{};}async function fetchAuthImage(_0x710fb4,_0x2c7d89,_0x45e7e8,_0x380c8a=0x0,_0x373c94=SNAPSHOT_HARD_TIMEOUT_MS){const _0x2365bb=_0x3b9d4c;if(_0x380c8a>0x3)throw new Error(_0x2365bb(0x281)+'过多');const _0x45c6c1=new URL(_0x710fb4),_0x77c6f2=decodeURIComponent(_0x45c6c1[_0x2365bb(0x13d)+'me']||_0x2c7d89||''),_0x3d586d=decodeURIComponent(_0x45c6c1['passwo'+'rd']||_0x45e7e8||'');_0x45c6c1[_0x2365bb(0x13d)+'me']='',_0x45c6c1['passwo'+'rd']='';const _0x415aec=_0x45c6c1[_0x2365bb(0x1f4)+'me']+_0x45c6c1['search'];let _0x4bacdd=await requestOnce(_0x45c6c1,authHeaders(_0x45c6c1,_0x77c6f2,_0x3d586d),_0x373c94);if(_0x4bacdd['status']===0x191){const _0x2be279=_0x4bacdd[_0x2365bb(0x1bf)+'s'][_0x2365bb(0x293)+_0x2365bb(0x264)+'cate']||'';digestState[_0x2365bb(0x167)+_0x2365bb(0x24f)]=parseChallenge(Array[_0x2365bb(0x1d1)+'y'](_0x2be279)?_0x2be279[0x0]:_0x2be279),digestState['nc']=0x1;const _0x57017c={};if(digestState[_0x2365bb(0x167)+_0x2365bb(0x24f)][_0x2365bb(0x11a)]===_0x2365bb(0x162)&&_0x77c6f2)_0x57017c['Author'+_0x2365bb(0x22a)+'n']=digestHeader(digestState[_0x2365bb(0x167)+'nge'],_0x77c6f2,_0x3d586d,'GET',_0x415aec);else _0x77c6f2&&(_0x57017c[_0x2365bb(0x17e)+_0x2365bb(0x22a)+'n']=_0x2365bb(0x1c3)+Buffer[_0x2365bb(0x2aa)](_0x77c6f2+':'+_0x3d586d)[_0x2365bb(0x1b1)+'ng'](_0x2365bb(0x2bf)));_0x4bacdd=await requestOnce(_0x45c6c1,_0x57017c,_0x373c94);}if(_0x4bacdd[_0x2365bb(0xf4)]>=0x12c&&_0x4bacdd[_0x2365bb(0xf4)]<0x190&&_0x4bacdd[_0x2365bb(0x1bf)+'s'][_0x2365bb(0x279)+'on'])return fetchAuthImage(new URL(_0x4bacdd[_0x2365bb(0x1bf)+'s'][_0x2365bb(0x279)+'on'],_0x45c6c1)[_0x2365bb(0x126)],_0x77c6f2,_0x3d586d,_0x380c8a+0x1,_0x373c94);if(_0x4bacdd['status']>=0x190)throw new Error(_0x4bacdd[_0x2365bb(0xf4)]===0x191?_0x2365bb(0x1b5)+'密码':_0x2365bb(0x2d1)+_0x4bacdd[_0x2365bb(0xf4)]+')');const _0x2c3d2e=String(_0x4bacdd[_0x2365bb(0x1bf)+'s']['conten'+_0x2365bb(0x1ff)]||'');if(_0x2c3d2e[_0x2365bb(0x1f0)+'es'](_0x2365bb(0x2a9))||_0x2c3d2e[_0x2365bb(0x1f0)+'es'](_0x2365bb(0xeb)))throw new Error('摄像头没有返'+_0x2365bb(0x166));return _0x4bacdd[_0x2365bb(0x14b)];}function withSnapshotLock(_0x431446){const _0x58d5b1=_0x3b9d4c,_0xf77c31=snapshotTail[_0x58d5b1(0x25c)](_0x431446,_0x431446);return snapshotTail=_0xf77c31[_0x58d5b1(0xef)](()=>{}),_0xf77c31;}async function waitForPtzIdle(_0x3a06eb=0xfa0){const _0x41beb7=_0x3b9d4c;if(!ptzBusy)return;const _0x486a33=Date[_0x41beb7(0xe4)]();while(ptzBusy&&Date['now']()-_0x486a33<_0x3a06eb){await new Promise(_0x25b920=>setTimeout(_0x25b920,0x28));}if(ptzBusy)return;await new Promise(_0x4a3818=>setTimeout(_0x4a3818,0x190));}export async function waitCameraReachable({timeoutMs:timeoutMs=0x640,intervalMs:intervalMs=0xdc}={}){const _0xd079dc=_0x3b9d4c,_0x521f01=String(state['hostna'+'me']||'')[_0xd079dc(0x260)]();if(!_0x521f01)return{'http':![],'rtsp':![]};const _0xc93fd=Number(state['port'])||0x50,_0x5448df=rtspPortOf(state[_0xd079dc(0x21d)+'i']),_0x39c7f5=Date['now']()+Math[_0xd079dc(0x199)](0x0,Number(timeoutMs)||0x0);do{const _0x2d7200=Math['max'](0x50,_0x39c7f5-Date[_0xd079dc(0xe4)]()),_0x3ea019=Math['min'](RTSP_TCP_PROBE_MS,_0x2d7200),[_0x21a87c,_0x14faef]=await Promise['all']([probeTcp(_0x521f01,_0xc93fd,_0x3ea019),state[_0xd079dc(0x21d)+'i']?probeTcp(_0x521f01,_0x5448df,_0x3ea019):Promise[_0xd079dc(0x140)+'e'](![])]);if(_0x21a87c||_0x14faef)return{'http':_0x21a87c,'rtsp':_0x14faef};const _0x39e3be=Math[_0xd079dc(0x255)](intervalMs,Math[_0xd079dc(0x199)](0x0,_0x39c7f5-Date[_0xd079dc(0xe4)]()));if(_0x39e3be<=0x0)break;await new Promise(_0x4fadea=>setTimeout(_0x4fadea,_0x39e3be));}while(Date[_0xd079dc(0xe4)]()<_0x39c7f5);return{'http':![],'rtsp':![]};}function ffmpegRtspInputArgs(_0x5480b9,{hevc:hevc=![],oneshot:oneshot=![]}={}){const _0x309de7=_0x3b9d4c,_0x536560=oneshot?hevc?'800000':_0x309de7(0x18c):hevc?_0x309de7(0x181)+'0':_0x309de7(0x189),_0x351fdf=oneshot?hevc?_0x309de7(0x286):_0x309de7(0x18c):hevc?_0x309de7(0x181)+'0':_0x309de7(0x189);return[_0x309de7(0x16b)+_0x309de7(0x277),_0x309de7(0xf3)+_0x309de7(0xfa),oneshot?_0x309de7(0x16a):_0x309de7(0x1fd)+'g',_0x309de7(0x1aa)+'transp'+_0x309de7(0x1c0),_0x309de7(0x23e),'-timeo'+'ut',String(oneshot?FFMPEG_ONESHOT_TIMEOUT_US:FFMPEG_LIVE_TIMEOUT_US),_0x309de7(0x1af)+'s',oneshot?_0x309de7(0x2c1)+'er+gen'+_0x309de7(0x11d):_0x309de7(0x115),_0x309de7(0x125)+_0x309de7(0x1cc),_0x536560,'-analy'+_0x309de7(0x18d)+_0x309de7(0x2ab),_0x351fdf,...oneshot?[]:[_0x309de7(0x21a)+'ds','1'],'-i',_0x5480b9,'-an'];}async function captureFrameFromRtspOnce(_0xffbc13={}){const _0x37bab3=_0x3b9d4c;if(!state[_0x37bab3(0x21d)+'i'])throw new Error(_0x37bab3(0x278)+_0x37bab3(0x2ce));const _0x434df1=Math[_0x37bab3(0x199)](0x320,Number(_0xffbc13[_0x37bab3(0x122)+_0x37bab3(0x295)])||RTSP_FRAME_TIMEOUT_MS),_0x15a7a3=await ensureFfmpeg(),_0x49c7eb=injectRtspAuth(state['rtspUr'+'i'],state[_0x37bab3(0x13d)+'me'],state[_0x37bab3(0x22e)+'rd']),_0x2238ac=/hevc|h265/[_0x37bab3(0x1ef)](state['encodi'+'ng']);return new Promise((_0x393cf8,_0x2e3f12)=>{const _0x2e3e8a=_0x37bab3,_0x275fd7=[...ffmpegRtspInputArgs(_0x49c7eb,{'hevc':_0x2238ac,'oneshot':!![]}),_0x2e3e8a(0x23d)+'s:v','1',_0x2e3e8a(0x1f5),'2','-f','image2','pipe:1'],_0x291dd5=spawn(_0x15a7a3,_0x275fd7,{'stdio':[_0x2e3e8a(0x119),_0x2e3e8a(0x289),_0x2e3e8a(0x289)]}),_0x4e1c98=[];let _0x583211='',_0x436ccd=![];_0x291dd5[_0x2e3e8a(0x2db)]['on']('data',_0x5c7fc2=>_0x4e1c98[_0x2e3e8a(0x1e8)](_0x5c7fc2)),_0x291dd5['stderr']['on'](_0x2e3e8a(0x134),_0x54ffda=>{_0x583211+=String(_0x54ffda||'');});const _0x2d7fb7=(_0x34f6ce,_0x20b8ec)=>{const _0xb44df7=_0x2e3e8a;if(_0x436ccd)return;_0x436ccd=!![],clearTimeout(_0x2d8923),ffmpegProcs[_0xb44df7(0x1be)](_0x291dd5);if(_0x34f6ce)_0x2e3f12(_0x34f6ce);else _0x393cf8(_0x20b8ec);},_0x2d8923=setTimeout(()=>{const _0x5153cb=_0x2e3e8a;try{_0x291dd5[_0x5153cb(0x183)](_0x5153cb(0x27d)+'L');}catch{}_0x2d7fb7(new Error(_0x5153cb(0xf0)+'超时'));},_0x434df1);ffmpegProcs[_0x2e3e8a(0x2c7)](_0x291dd5),_0x291dd5['on'](_0x2e3e8a(0x2bb),_0xb64a39=>{const _0x5bf063=_0x2e3e8a,_0x48acb9=Buffer[_0x5bf063(0x240)](_0x4e1c98);if(_0xb64a39===0x0&&_0x48acb9['length']>0x64){_0x2d7fb7(null,_0x48acb9);return;}_0x2d7fb7(new Error(_0x583211[_0x5bf063(0x260)]()||_0x5bf063(0xf0)+_0x5bf063(0x198)+_0xb64a39+')'));}),_0x291dd5['on'](_0x2e3e8a(0x16a),_0x465749=>_0x2d7fb7(_0x465749));});}async function captureFrameFromRtsp(_0x2b28be={}){return captureFrameFromRtspOnce(_0x2b28be);}export async function holdPreviewForCapture(){const _0x3573ee=_0x3b9d4c;previewHoldDepth+=0x1;const _0x208b39=sharedTranscode;if(previewHoldDepth>0x1)return{'transcode':_0x208b39,'held':![]};suppressFfmpegRestart=!![],clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;if(!sharedFfmpeg||sharedFfmpeg[_0x3573ee(0x26b)])return{'transcode':_0x208b39,'held':![]};return console[_0x3573ee(0x213)]('[camer'+_0x3573ee(0x107)+_0x3573ee(0x139)+_0x3573ee(0x157)+_0x3573ee(0x298)+'ture'),killSharedFfmpeg(),await new Promise(_0x42d813=>setTimeout(_0x42d813,0x50)),{'transcode':_0x208b39,'held':!![]};}export async function releasePreviewAfterCapture(_0x17c5b2){const _0x2147d3=_0x3b9d4c;if(!_0x17c5b2||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],state[_0x2147d3(0x252)+_0x2147d3(0x145)]&&state[_0x2147d3(0x21d)+'i']&&streamClients[_0x2147d3(0x1cc)]>0x0&&(ffmpegNeedProbe=![],await ensureSharedFfmpeg(_0x17c5b2['transc'+_0x2147d3(0x2b9)]));}async function getSnapshotFromOnvif(_0x5306f6={}){const _0x3c8d12=_0x3b9d4c,_0x3ec3d1=Math[_0x3c8d12(0x199)](0x190,Number(_0x5306f6[_0x3c8d12(0x122)+_0x3c8d12(0x295)])||SNAPSHOT_HARD_TIMEOUT_MS),_0xe4dc7c=async()=>{const _0x43f3d4=_0x3c8d12,_0xab4e6=await currentCam['getSna'+'pshotU'+'ri']({});state[_0x43f3d4(0x1c9)+_0x43f3d4(0x16e)]=(typeof _0xab4e6===_0x43f3d4(0x28c)?_0xab4e6:_0xab4e6?.[_0x43f3d4(0x10b)]||'')[_0x43f3d4(0x142)+'e'](/&/g,'&');if(!state[_0x43f3d4(0x1c9)+_0x43f3d4(0x16e)])throw new Error(_0x43f3d4(0x1c6)+_0x43f3d4(0xf6)+'址');};!state[_0x3c8d12(0x1c9)+_0x3c8d12(0x16e)]&&await _0xe4dc7c();try{return await fetchAuthImage(state[_0x3c8d12(0x1c9)+'otUri'],state['userna'+'me'],state[_0x3c8d12(0x22e)+'rd'],0x0,_0x3ec3d1);}catch(_0xe14fe6){if(!shouldRefreshSnapshotUri(_0xe14fe6))throw _0xe14fe6;return await _0xe4dc7c(),fetchAuthImage(state[_0x3c8d12(0x1c9)+'otUri'],state[_0x3c8d12(0x13d)+'me'],state['passwo'+'rd'],0x0,_0x3ec3d1);}}export async function getSnapshot(_0x4eaadf={}){const _0x2b1f70=_0x3b9d4c;if(state[_0x2b1f70(0x2cb)]===_0x2b1f70(0x22b)+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x2b1f70(0x252)+_0x2b1f70(0x145)])throw new Error('还没有连接摄'+'像头');const _0x3e3135=_0x4eaadf[_0x2b1f70(0x2cb)]===_0x2b1f70(0x15e),_0x4ec1c7=_0x4eaadf[_0x2b1f70(0x156)+_0x2b1f70(0x219)+_0x2b1f70(0x175)]===!![],_0x1e5534=Number(_0x4eaadf[_0x2b1f70(0x1c8)+'Ms'])>0x0?Number(_0x4eaadf['budget'+'Ms']):0x0,_0x4c3731=_0x1e5534?Date['now']()+_0x1e5534:0x0,_0x27d30d=()=>_0x4c3731?Math[_0x2b1f70(0x199)](0x0,_0x4c3731-Date['now']()):0x7530;let _0x9ae780=null;!_0x4ec1c7&&state[_0x2b1f70(0x21d)+'i']&&(_0x9ae780=await holdPreviewForCapture());try{if(_0x1e5534){const _0x1a5cce=Math[_0x2b1f70(0x255)](0x640,Math['max'](0x0,_0x27d30d()-0x384)),_0x1e5b29=_0x1a5cce>0x50?await waitCameraReachable({'timeoutMs':_0x1a5cce}):{'http':![],'rtsp':![]};if(!_0x1e5b29[_0x2b1f70(0x20f)]&&!_0x1e5b29[_0x2b1f70(0x13f)]&&_0x27d30d()<0x384)throw new Error(_0x2b1f70(0x169)+'线');}return await withSnapshotLock(async()=>{const _0x167c54=_0x2b1f70;await waitForPtzIdle(Math['min'](0x320,_0x27d30d()));const _0x3a8da7=Math[_0x167c54(0x255)](_0x3e3135?SNAPSHOT_FAST_TIMEOUT_MS:SNAPSHOT_HARD_TIMEOUT_MS,Math[_0x167c54(0x199)](0x258,_0x27d30d()-0xc8)),_0x2834d5=()=>getSnapshotFromOnvif({'timeoutMs':_0x3a8da7}),_0x2b9d51=()=>captureFrameFromRtspOnce({'timeoutMs':Math[_0x167c54(0x255)](RTSP_FRAME_TIMEOUT_MS,Math[_0x167c54(0x199)](0x320,_0x27d30d()-0x64))});if(_0x3e3135)try{const _0x44c673=await _0x2834d5();return console[_0x167c54(0x213)](_0x167c54(0x138)+_0x167c54(0x2ad)+_0x167c54(0x10d)+_0x167c54(0x1fb),_0x44c673[_0x167c54(0x253)]),_0x44c673;}catch(_0x443c7c){console[_0x167c54(0x1cb)](_0x167c54(0x138)+_0x167c54(0x2ad)+_0x167c54(0x10d)+_0x167c54(0x1fb),_0x443c7c?.[_0x167c54(0x1b7)+'e']||_0x443c7c);if(!state[_0x167c54(0x21d)+'i']||_0x27d30d()<0x384)throw _0x443c7c;const _0xb921f9=await _0x2b9d51();return console[_0x167c54(0x213)](_0x167c54(0x138)+'a]\x20rts'+_0x167c54(0x1b0)+_0x167c54(0x223)+_0x167c54(0x1b8),_0xb921f9[_0x167c54(0x253)]),_0xb921f9;}if(state[_0x167c54(0x21d)+'i']){let _0x22c4f3=null;const _0x34b154=_0x27d30d()<0x9c4?0x1:0x2;for(let _0x4109cb=0x0;_0x4109cb<_0x34b154;_0x4109cb++){try{const _0x3cf0bf=await _0x2b9d51();return console['log']('[camer'+_0x167c54(0xfd)+'p\x20fram'+'e',_0x3cf0bf[_0x167c54(0x253)],_0x4109cb>0x0?_0x167c54(0x151)+_0x4109cb:''),_0x3cf0bf;}catch(_0x3b6da1){_0x22c4f3=_0x3b6da1,console['warn'](_0x167c54(0x138)+'a]\x20rts'+_0x167c54(0x1b0)+_0x167c54(0x25b)+_0x167c54(0xec),_0x4109cb+0x1,_0x3b6da1?.[_0x167c54(0x1b7)+'e']||_0x3b6da1),_0x4109cb<_0x34b154-0x1&&_0x27d30d()>0x384&&await new Promise(_0xb18f08=>setTimeout(_0xb18f08,0xc8));}}console[_0x167c54(0x1cb)](_0x167c54(0x138)+_0x167c54(0xfd)+_0x167c54(0x1b0)+_0x167c54(0x223)+_0x167c54(0x178)+_0x167c54(0x1ee),_0x22c4f3?.[_0x167c54(0x1b7)+'e']||_0x22c4f3);}return _0x2834d5();});}finally{!_0x4ec1c7&&await releasePreviewAfterCapture(_0x9ae780);}}async function ptzOnvifNudge(_0x3bb25a){const _0x3882c3=_0x3b9d4c,_0x52dea2=onvifVectorForAction(_0x3bb25a);if(!_0x52dea2)throw new Error(_0x3882c3(0x275)+'方向');if(!state[_0x3882c3(0x2d9)])throw new Error('这台摄像头没'+_0x3882c3(0x251)+_0x3882c3(0x1b4)+_0x3882c3(0x11e)+'Z');ptzBusy&&await waitForPtzIdle();const _0x22138f=async _0x174951=>{const _0x2ef085=_0x3882c3;if(!_0x174951)throw new Error(_0x2ef085(0x24b)+'像头');const _0x2df857={'x':_0x52dea2['x']||0x0,'y':_0x52dea2['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x52dea2['zoom']?(_0x2df857[_0x2ef085(0x16c)]=_0x52dea2[_0x2ef085(0x16c)],_0x2df857['onlySe'+_0x2ef085(0x15d)]=!![]):_0x2df857[_0x2ef085(0x1fe)+_0x2ef085(0x201)+_0x2ef085(0x190)]=!![],await _0x174951[_0x2ef085(0x1d9)+_0x2ef085(0x23f)+'ve'](_0x2df857),await _0x174951[_0x2ef085(0x234)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x22138f(currentCam);}catch(_0x102c1b){if(!isNetworkError(_0x102c1b))throw new Error(cameraError(_0x102c1b,'云台控制失败'));const _0x151643=await refreshOnvif();return await _0x22138f(_0x151643);}}catch(_0x426dec){throw new Error(cameraError(_0x426dec,_0x3882c3(0x271)));}finally{ptzBusy=![];}}export async function ptzMove(_0x1318fa,_0x2c48b8={}){const _0x1d4746=_0x3b9d4c;if(gimbalAvailable()&&state[_0x1d4746(0x2cb)]!==_0x1d4746(0x15e))return ptzOnboard(_0x1318fa,_0x2c48b8);if(!state[_0x1d4746(0x252)+_0x1d4746(0x145)])throw new Error(_0x1d4746(0x24b)+'像头');const _0x1cda96=String(_0x2c48b8[_0x1d4746(0xe5)]||''),_0x31fad0=String(_0x1318fa||''),_0x17e9c0=_0x31fad0[_0x1d4746(0x170)+_0x1d4746(0x15f)](_0x1d4746(0x2af))?_0x31fad0[_0x1d4746(0x12b)](0x6):_0x31fad0;if(_0x1cda96===_0x1d4746(0x131)||_0x31fad0[_0x1d4746(0x170)+_0x1d4746(0x15f)](_0x1d4746(0x2af)))return ptzOnvifNudge(_0x17e9c0);if(_0x1318fa!=='stop'&&ptzBusy)return{'ok':!![]};while(_0x1318fa===_0x1d4746(0x234)&&ptzBusy){await new Promise(_0x23c409=>setTimeout(_0x23c409,0x28));}const _0x55783b=async _0x1c240f=>{const _0x1225d0=_0x1d4746;if(!_0x1c240f)throw new Error('还没有连接摄'+'像头');if(_0x1318fa===_0x1225d0(0x234))return await _0x1c240f[_0x1225d0(0x234)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x24c440=onvifVectorForAction(_0x1318fa);if(!_0x24c440)throw new Error(_0x1225d0(0x275)+'方向');if(!state['ptz'])throw new Error(_0x1225d0(0x1c6)+_0x1225d0(0x251)+_0x1225d0(0x1b4)+'未开放\x20PT'+'Z');const _0xb72c57={'x':_0x24c440['x']||0x0,'y':_0x24c440['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x24c440[_0x1225d0(0x16c)]?(_0xb72c57[_0x1225d0(0x16c)]=_0x24c440['zoom'],_0xb72c57[_0x1225d0(0x1fe)+_0x1225d0(0x15d)]=!![]):_0xb72c57[_0x1225d0(0x1fe)+_0x1225d0(0x201)+'ilt']=!![],await _0x1c240f[_0x1225d0(0x1d9)+_0x1225d0(0x23f)+'ve'](_0xb72c57),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x55783b(currentCam);}catch(_0x5a1c48){if(!isNetworkError(_0x5a1c48))throw new Error(cameraError(_0x5a1c48,_0x1d4746(0x271)));const _0xb3df8=await refreshOnvif();return await _0x55783b(_0xb3df8);}}catch(_0xe73e5b){throw new Error(cameraError(_0xe73e5b,_0x1d4746(0x271)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x3387cd={}){const _0x1079da=_0x3b9d4c;if(state['connec'+_0x1079da(0x145)])return publicState();if(_0x3387cd['source']==='onboar'+'d')throw new Error('板载画面暂不'+'支持');const _0x5e8520=String(_0x3387cd[_0x1079da(0x226)+'me']||'')[_0x1079da(0x260)]();if(!_0x5e8520)throw new Error(_0x1079da(0x247)+_0x1079da(0x276)+_0x1079da(0x11c)+'连接摄像头');return connectCamera({'hostname':_0x5e8520,'port':Number(_0x3387cd[_0x1079da(0x1f2)]||0x50),'username':String(_0x3387cd[_0x1079da(0x13d)+'me']||'')[_0x1079da(0x260)](),'password':String(_0x3387cd[_0x1079da(0x22e)+'rd']||''),'path':String(_0x3387cd[_0x1079da(0x218)]||_0x1079da(0x155)+_0x1079da(0x1d6)+_0x1079da(0x193)+_0x1079da(0x1bb))[_0x1079da(0x260)]()||_0x1079da(0x155)+_0x1079da(0x1d6)+_0x1079da(0x193)+_0x1079da(0x1bb)});}export async function ptzContinuousMove(_0x12b679,_0x59f4a8,_0x252888,_0x32d4c9=0x1){const _0x5c93a3=_0x3b9d4c;if(gimbalAvailable()&&state[_0x5c93a3(0x2cb)]!==_0x5c93a3(0x15e)){const _0x39b5a0=payloadForVector(_0x12b679,_0x59f4a8);if(!cameraHooks[_0x5c93a3(0x1e1)+_0x5c93a3(0x117)+'l'])throw new Error(_0x5c93a3(0x2c6)+'绪');await cameraHooks[_0x5c93a3(0x1e1)+_0x5c93a3(0x117)+'l'](_0x39b5a0);if(_0x39b5a0[_0x5c93a3(0x11f)]!==_0x5c93a3(0x234)){const _0x40eb7b=Math['max'](0x190,Math[_0x5c93a3(0x255)](0xfa0,Math[_0x5c93a3(0x211)](Number(_0x32d4c9)||0x1)*0x3e8));setTimeout(()=>{const _0x4b7eff=_0x5c93a3;cameraHooks[_0x4b7eff(0x1e1)+'hGimba'+'l']?.({'action':_0x4b7eff(0x234)})[_0x4b7eff(0xef)](()=>{});},_0x40eb7b);}return{'ok':!![]};}if(!state[_0x5c93a3(0x252)+_0x5c93a3(0x145)])throw new Error(_0x5c93a3(0x24b)+'像头');const _0x17433a=clampPtzSpeed(_0x12b679),_0x13d883=clampPtzSpeed(_0x59f4a8),_0x21cc0c=clampPtzSpeed(_0x252888),_0x5886df=Math[_0x5c93a3(0x199)](0x3e8,Math[_0x5c93a3(0x255)](0x2710,Math[_0x5c93a3(0x211)](Number(_0x32d4c9)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x1439ac=async _0x4f9802=>{const _0x36c028=_0x5c93a3;if(!_0x4f9802)throw new Error('还没有连接摄'+'像头');if(!state['ptz']&&(_0x17433a||_0x13d883||_0x21cc0c))throw new Error(_0x36c028(0x1c6)+_0x36c028(0x251)+_0x36c028(0x1b4)+_0x36c028(0x11e)+'Z');const _0xefe7a2={'x':_0x17433a,'y':_0x13d883,'timeout':_0x5886df};_0x21cc0c&&(_0xefe7a2[_0x36c028(0x16c)]=_0x21cc0c);if(_0x21cc0c&&!_0x17433a&&!_0x13d883)_0xefe7a2[_0x36c028(0x1fe)+_0x36c028(0x15d)]=!![];else!_0x21cc0c&&(_0xefe7a2[_0x36c028(0x1fe)+'ndPanT'+_0x36c028(0x190)]=!![]);return await _0x4f9802[_0x36c028(0x1d9)+_0x36c028(0x23f)+'ve'](_0xefe7a2),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x1439ac(currentCam);}catch(_0x4fa8ea){if(!isNetworkError(_0x4fa8ea))throw new Error(cameraError(_0x4fa8ea,_0x5c93a3(0x271)));const _0x4db23f=await refreshOnvif();return await _0x1439ac(_0x4db23f);}}catch(_0x25eeb3){throw new Error(cameraError(_0x25eeb3,_0x5c93a3(0x271)));}finally{ptzBusy=![];}}function bitstreamFilter(_0x222559){const _0x58296e=_0x3b9d4c;if(/hevc|h265/['test'](_0x222559))return _0x58296e(0x224)+'p4toan'+_0x58296e(0x270);if(/h264|avc/[_0x58296e(0x1ef)](_0x222559))return'h264_m'+_0x58296e(0x102)+_0x58296e(0x270);return'';}function shouldTranscode(_0x1314d3=![]){const _0x3eed53=_0x3b9d4c;return _0x1314d3||/hevc|h265/['test'](state[_0x3eed53(0x2c0)+'ng']);}function broadcastTs(_0xaa59db){const _0x30a5e6=_0x3b9d4c;if(!_0xaa59db?.['length'])return;for(const _0x51c085 of streamClients){try{if(_0x51c085[_0x30a5e6(0x2d0)+_0x30a5e6(0x10c)+_0x30a5e6(0x1ea)])continue;_0x51c085[_0x30a5e6(0x163)](_0xaa59db);}catch{streamClients[_0x30a5e6(0x1be)](_0x51c085);}}}function killSharedFfmpeg(){const _0x59850b=_0x3b9d4c;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null,ffmpegEpoch+=0x1;const _0x333230=sharedFfmpeg;sharedFfmpeg=null;if(!_0x333230)return;ffmpegProcs[_0x59850b(0x1be)](_0x333230);try{_0x333230['stdout']?.[_0x59850b(0x208)+_0x59850b(0x13c)+_0x59850b(0x230)](_0x59850b(0x134)),_0x333230[_0x59850b(0x183)](_0x59850b(0x27d)+'L');}catch{}}function scheduleFfmpegRestart(_0x2e1a20){const _0x3310a4=_0x3b9d4c;if(suppressFfmpegRestart)return;if(!state[_0x3310a4(0x252)+_0x3310a4(0x145)]||!streamClients[_0x3310a4(0x1cc)])return;const {delayMs:_0x15e290,nextBackoffMs:_0x2b9630,probe:_0x379258}=nextFfmpegRestartDelay({'gotData':_0x2e1a20,'backoffMs':ffmpegBackoffMs});ffmpegBackoffMs=_0x2b9630,ffmpegNeedProbe=_0x379258,console[_0x3310a4(0x1cb)](_0x3310a4(0x2d5)+_0x3310a4(0x18a)+_0x3310a4(0x23b)+_0x3310a4(0x250),_0x15e290,'ms',_0x379258?_0x3310a4(0x232):_0x3310a4(0x200)),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{ffmpegRestartTimer=null,void resumeSharedFfmpeg();},_0x15e290);}async function resumeSharedFfmpeg(){const _0x14e3b0=_0x3b9d4c;if(suppressFfmpegRestart||!state[_0x14e3b0(0x252)+'ted']||!streamClients['size'])return;if(ffmpegNeedProbe){const _0x4a383d=await probeTcp(state[_0x14e3b0(0x226)+'me'],rtspPortOf(state[_0x14e3b0(0x21d)+'i']),RTSP_TCP_PROBE_MS);if(suppressFfmpegRestart||!state[_0x14e3b0(0x252)+'ted']||!streamClients[_0x14e3b0(0x1cc)])return;if(!_0x4a383d){console[_0x14e3b0(0x1cb)](_0x14e3b0(0x2d5)+_0x14e3b0(0x28a)+_0x14e3b0(0x2c5)+'ed',state[_0x14e3b0(0x226)+'me'],rtspPortOf(state['rtspUr'+'i'])),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}await ensureSharedFfmpeg(sharedTranscode);}async function ensureSharedFfmpeg(_0x110e7a){const _0x12263e=_0x3b9d4c,_0x1b13b3=!!_0x110e7a;if(sharedFfmpeg&&!sharedFfmpeg[_0x12263e(0x26b)]){if(sharedTranscode===_0x1b13b3)return;console[_0x12263e(0x213)](_0x12263e(0x2d5)+_0x12263e(0x109)+_0x12263e(0x28d),sharedTranscode?_0x12263e(0x1a4):_0x12263e(0x259),'->',_0x1b13b3?_0x12263e(0x1a4):_0x12263e(0x259)),killSharedFfmpeg();}const _0x43228e=++ffmpegEpoch;if(ffmpegNeedProbe){const _0x5edbf1=await probeTcp(state[_0x12263e(0x226)+'me'],rtspPortOf(state[_0x12263e(0x21d)+'i']),RTSP_TCP_PROBE_MS);if(_0x43228e!==ffmpegEpoch)return;if(!_0x5edbf1){console['warn'](_0x12263e(0x2d5)+_0x12263e(0x130)+_0x12263e(0x274)+'n,\x20rts'+_0x12263e(0x21e)+_0x12263e(0x292)+'e'),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}let _0xf00733;try{_0xf00733=await ensureFfmpeg();}catch(_0x46eeb1){console[_0x12263e(0x1cb)](_0x12263e(0x2d5)+'g]',_0x46eeb1[_0x12263e(0x1b7)+'e']);return;}if(_0x43228e!==ffmpegEpoch)return;if(sharedFfmpeg&&!sharedFfmpeg[_0x12263e(0x26b)]){if(sharedTranscode===_0x1b13b3)return;killSharedFfmpeg();}if(!state[_0x12263e(0x21d)+'i']||!state[_0x12263e(0x252)+_0x12263e(0x145)])return;const _0x3ea154=injectRtspAuth(state['rtspUr'+'i'],state[_0x12263e(0x13d)+'me'],state[_0x12263e(0x22e)+'rd']),_0x29a15a=/hevc|h265/[_0x12263e(0x1ef)](state[_0x12263e(0x2c0)+'ng']),_0x2b4627=ffmpegRtspInputArgs(_0x3ea154,{'hevc':_0x29a15a,'oneshot':![]});if(_0x1b13b3)_0x2b4627[_0x12263e(0x1e8)](_0x12263e(0x243),_0x12263e(0x245)+'4',_0x12263e(0x1df)+'t',_0x12263e(0x12f)+'ast','-tune',_0x12263e(0x22c)+_0x12263e(0x244),_0x12263e(0x133)+_0x12263e(0xee),'baseli'+'ne',_0x12263e(0x1ac)+'mt','yuv420'+'p',_0x12263e(0xf1),'0','-g','15',_0x12263e(0x28f),_0x12263e(0x186)+_0x12263e(0x132)+_0x12263e(0x1a8)+_0x12263e(0x118)+'not(is'+_0x12263e(0x204)+_0x12263e(0x237)+_0x12263e(0x20b)+'t)),se'+_0x12263e(0x146)+_0x12263e(0x25d)+'RTPTS,'+_0x12263e(0x229)+_0x12263e(0x262));else{_0x2b4627[_0x12263e(0x1e8)]('-c:v','copy');const _0x853207=bitstreamFilter(state[_0x12263e(0x2c0)+'ng']);if(_0x853207)_0x2b4627[_0x12263e(0x1e8)]('-bsf:v',_0x853207);}_0x2b4627[_0x12263e(0x1e8)]('-f','mpegts',_0x12263e(0x2be)+_0x12263e(0x150),'0',_0x12263e(0x15b)+'eload','0',_0x12263e(0xf2)+_0x12263e(0x1de)+'ts','1','pipe:1');if(_0x43228e!==ffmpegEpoch)return;sharedTranscode=_0x1b13b3;const _0x29195a=spawn(_0xf00733,_0x2b4627,{'stdio':['ignore',_0x12263e(0x289),_0x12263e(0x289)]});sharedFfmpeg=_0x29195a,ffmpegProcs[_0x12263e(0x2c7)](_0x29195a);let _0x47e9ff=![];console[_0x12263e(0x213)](_0x12263e(0x2d5)+'g]',_0x1b13b3?_0x12263e(0x248)+_0x12263e(0x22d)+'64':_0x12263e(0x177)+(state[_0x12263e(0x2c0)+'ng']||_0x12263e(0x214)+'n'),state[_0x12263e(0x226)+'me']),_0x29195a[_0x12263e(0x2db)]['on']('data',_0x327d4a=>{const _0x131122=_0x12263e;!_0x47e9ff&&(_0x47e9ff=!![],ffmpegNeedProbe=![],console[_0x131122(0x213)](_0x131122(0x2d5)+_0x131122(0x172)+_0x131122(0x13b)+'es',_0x327d4a[_0x131122(0x253)])),ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,broadcastTs(_0x327d4a);}),_0x29195a[_0x12263e(0x266)]['on'](_0x12263e(0x134),_0x4d89a4=>{const _0x55afa=_0x12263e,_0x4b33b8=String(_0x4d89a4||'')['trim']();if(_0x4b33b8)console[_0x55afa(0x1cb)](_0x55afa(0x2d5)+'g]',_0x4b33b8);}),_0x29195a['on']('error',_0x50a28b=>{const _0x11214f=_0x12263e;console[_0x11214f(0x1cb)]('[ffmpe'+_0x11214f(0x1a9)+'wn',_0x50a28b[_0x11214f(0x1b7)+'e']);}),_0x29195a['on'](_0x12263e(0xfe),_0x2f4860=>{const _0x5f0ed2=_0x12263e;ffmpegProcs[_0x5f0ed2(0x1be)](_0x29195a);if(sharedFfmpeg===_0x29195a)sharedFfmpeg=null;console['warn'](_0x5f0ed2(0x2d5)+_0x5f0ed2(0x18a)+'t',_0x2f4860,_0x5f0ed2(0x134),_0x47e9ff,_0x5f0ed2(0x2b6)+'s',streamClients[_0x5f0ed2(0x1cc)]),scheduleFfmpegRestart(_0x47e9ff);});}function startMpegtsStream(_0x61327,_0x16cca1){const _0x550a0b=_0x3b9d4c,_0xde3639=shouldTranscode(String(_0x61327[_0x550a0b(0x280)]?.[_0x550a0b(0x291)]||'')===_0x550a0b(0x1a4));_0x61327['setTim'+_0x550a0b(0x288)](0x0),_0x16cca1[_0x550a0b(0x20d)+_0x550a0b(0x288)](0x0),_0x61327[_0x550a0b(0x28e)]?.[_0x550a0b(0x20d)+_0x550a0b(0x288)](0x0),_0x16cca1[_0x550a0b(0x28e)]?.['setTim'+_0x550a0b(0x288)](0x0),_0x61327[_0x550a0b(0x28e)]?.[_0x550a0b(0x2ba)+_0x550a0b(0x23a)]?.(!![]),_0x16cca1[_0x550a0b(0x28e)]?.[_0x550a0b(0x2ba)+_0x550a0b(0x23a)]?.(!![]),_0x16cca1['setHea'+_0x550a0b(0x12d)]('Conten'+'t-Type',_0x550a0b(0xfb)+_0x550a0b(0x1e3)),_0x16cca1[_0x550a0b(0x1f9)+_0x550a0b(0x12d)](_0x550a0b(0x225)+_0x550a0b(0x1ec)+'l','no-sto'+_0x550a0b(0x2cf)+_0x550a0b(0x24c)+_0x550a0b(0x2dc)+_0x550a0b(0x2d8)+'idate'),_0x16cca1['setHea'+'der'](_0x550a0b(0x1e4)+_0x550a0b(0x2ab),_0x550a0b(0x2a4)+_0x550a0b(0x249)),_0x16cca1[_0x550a0b(0x1f9)+_0x550a0b(0x12d)](_0x550a0b(0x15a)+_0x550a0b(0x282)+_0x550a0b(0x120),'no');if(typeof _0x16cca1[_0x550a0b(0x110)+_0x550a0b(0x100)]===_0x550a0b(0x10e)+'on')_0x16cca1[_0x550a0b(0x110)+_0x550a0b(0x100)]();streamClients['add'](_0x16cca1),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0xde3639);let _0x3e7ae6=![];const _0x35f5a8=()=>{const _0x15d06d=_0x550a0b;if(_0x3e7ae6)return;_0x3e7ae6=!![],streamClients['delete'](_0x16cca1);try{if(!_0x16cca1[_0x15d06d(0x2d0)+_0x15d06d(0x231)+'d'])_0x16cca1[_0x15d06d(0x207)]();}catch{}streamClients[_0x15d06d(0x1cc)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x58dabf=_0x15d06d;ffmpegIdleTimer=null;if(streamClients[_0x58dabf(0x1cc)]===0x0)killSharedFfmpeg();},0xfa0));};_0x61327['on'](_0x550a0b(0x2bb),_0x35f5a8),_0x16cca1['on'](_0x550a0b(0x2bb),_0x35f5a8);}export function registerCameraRoutes(_0x332fdd,{getConfig:_0x4840a6,saveConfig:_0x3eccd2}){const _0x41fb21=_0x3b9d4c;_0x332fdd[_0x41fb21(0x24e)](_0x41fb21(0x1ed)+_0x41fb21(0x1d0)+'discov'+'er',async(_0x4fd46a,_0x2fc4f4)=>{const _0xff0569=_0x41fb21;try{const _0x5b9724=await discover();onboardAvailable()&&_0x5b9724[_0xff0569(0x1cf)+'t']({'kind':_0xff0569(0x22b)+'d','hostname':_0xff0569(0x22b)+'d','port':0x157c,'path':_0xff0569(0x206)+_0xff0569(0x1f3)+_0xff0569(0x285),'name':_0xff0569(0x29e),'hardware':_0xff0569(0x2b2)}),_0x2fc4f4[_0xff0569(0x1eb)]({'devices':_0x5b9724});}catch(_0x33bcbb){_0x2fc4f4[_0xff0569(0xf4)](0x190)[_0xff0569(0x1eb)]({'message':cameraError(_0x33bcbb,_0xff0569(0x12c)+'败')});}}),_0x332fdd[_0x41fb21(0x1dd)](_0x41fb21(0x1ed)+_0x41fb21(0x1d0)+_0x41fb21(0xf4),(_0x27fcac,_0x3434c7)=>{const _0x4100a0=_0x41fb21,_0x1af54a=_0x4840a6();if(stripOnboardCameraConfig(_0x1af54a))_0x3eccd2();const _0x59b64f=_0x1af54a[_0x4100a0(0x196)]||{};_0x3434c7['json']({...publicState(),'saved':{'source':_0x59b64f['source']||'','hostname':_0x59b64f['hostna'+'me']||'','port':_0x59b64f[_0x4100a0(0x1f2)]||0x50,'path':_0x59b64f[_0x4100a0(0x218)]||_0x4100a0(0x155)+_0x4100a0(0x1d6)+'e_serv'+_0x4100a0(0x1bb),'username':_0x59b64f[_0x4100a0(0x13d)+'me']||'','password_set':!!_0x59b64f[_0x4100a0(0x22e)+'rd']}});}),_0x332fdd[_0x41fb21(0x24e)]('/api/c'+'amera/'+_0x41fb21(0x252)+'t',async(_0x1c3fba,_0x42d2a5)=>{const _0x267514=_0x41fb21;try{const _0x28ef93=_0x4840a6(),_0x2e1453=_0x28ef93[_0x267514(0x196)]||{},_0x3460cf=_0x1c3fba[_0x267514(0x14b)]?.[_0x267514(0x2cb)]===_0x267514(0x22b)+'d'||_0x1c3fba[_0x267514(0x14b)]?.[_0x267514(0x174)]===_0x267514(0x22b)+'d'||_0x1c3fba['body']?.[_0x267514(0x226)+'me']===_0x267514(0x22b)+'d';if(_0x3460cf){if(stripOnboardCameraConfig(_0x28ef93))_0x3eccd2();_0x42d2a5[_0x267514(0xf4)](0x190)[_0x267514(0x1eb)]({'message':_0x267514(0x17d)+'支持'});return;}const _0xf93df0=_0x1c3fba['body']?.['passwo'+'rd']||_0x2e1453[_0x267514(0x22e)+'rd']||'',_0x296bb3=await connectCamera({'hostname':_0x1c3fba['body']?.[_0x267514(0x226)+'me']||_0x2e1453[_0x267514(0x226)+'me'],'port':_0x1c3fba['body']?.[_0x267514(0x1f2)]||_0x2e1453[_0x267514(0x1f2)],'username':_0x1c3fba[_0x267514(0x14b)]?.[_0x267514(0x13d)+'me']||_0x2e1453[_0x267514(0x13d)+'me'],'password':_0xf93df0,'path':_0x1c3fba[_0x267514(0x14b)]?.[_0x267514(0x218)]||_0x2e1453[_0x267514(0x218)]});_0x28ef93[_0x267514(0x196)]={'source':'onvif','hostname':state[_0x267514(0x226)+'me'],'port':state[_0x267514(0x1f2)],'path':state['path'],'username':state[_0x267514(0x13d)+'me'],'password':state[_0x267514(0x22e)+'rd']},_0x3eccd2(),_0x42d2a5[_0x267514(0x1eb)](_0x296bb3);}catch(_0x1f414d){_0x42d2a5[_0x267514(0xf4)](0x190)[_0x267514(0x1eb)]({'message':cameraError(_0x1f414d,_0x267514(0x154)+'败')});}}),_0x332fdd[_0x41fb21(0x24e)]('/api/c'+_0x41fb21(0x1d0)+'discon'+_0x41fb21(0x1a0),(_0x2673fb,_0x106214)=>{_0x106214['json'](disconnectCamera());}),_0x332fdd[_0x41fb21(0x1dd)](_0x41fb21(0x1ed)+'amera/'+_0x41fb21(0x1c9)+'ot',async(_0x53c1e8,_0x39f81d)=>{const _0x5cc52a=_0x41fb21;try{const _0x4ffd37=await getSnapshot();if(!_0x4ffd37?.['length']){_0x39f81d['status'](0xcc)[_0x5cc52a(0x207)]();return;}_0x39f81d[_0x5cc52a(0x1f9)+_0x5cc52a(0x12d)](_0x5cc52a(0x124)+_0x5cc52a(0x2bd),_0x5cc52a(0x1a6)+_0x5cc52a(0x12e)),_0x39f81d[_0x5cc52a(0x1f9)+'der'](_0x5cc52a(0x225)+'Contro'+'l',_0x5cc52a(0x106)+'re'),_0x39f81d[_0x5cc52a(0x296)](_0x4ffd37);}catch(_0x2e12f5){_0x39f81d['status'](0x190)[_0x5cc52a(0x1eb)]({'message':cameraError(_0x2e12f5,'读取画面失败')});}}),_0x332fdd[_0x41fb21(0x1dd)](_0x41fb21(0x1ed)+_0x41fb21(0x1d0)+_0x41fb21(0x2d2),async(_0x5b340c,_0x1571fb)=>{const _0x2aa6ad=_0x41fb21;if(!state[_0x2aa6ad(0x252)+_0x2aa6ad(0x145)]){_0x1571fb['status'](0x190)[_0x2aa6ad(0x1eb)]({'message':_0x2aa6ad(0x25a)+_0x2aa6ad(0x136)+'头'});return;}if(state['rtspUr'+'i']){startMpegtsStream(_0x5b340c,_0x1571fb);return;}if(state[_0x2aa6ad(0x1b6)+'i'])try{const _0x2a2ee5=await openCameraHttp(state[_0x2aa6ad(0x1b6)+'i'],state[_0x2aa6ad(0x13d)+'me'],state[_0x2aa6ad(0x22e)+'rd'],0x1f40);_0x1571fb[_0x2aa6ad(0x1f9)+'der'](_0x2aa6ad(0x124)+_0x2aa6ad(0x2bd),_0x2a2ee5[_0x2aa6ad(0x1a7)+_0x2aa6ad(0x2c9)]||_0x2aa6ad(0x263)+_0x2aa6ad(0x10f)+_0x2aa6ad(0x123)+_0x2aa6ad(0x142)+_0x2aa6ad(0x299)+_0x2aa6ad(0x294)+_0x2aa6ad(0x1da)),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)](_0x2aa6ad(0x225)+_0x2aa6ad(0x1ec)+'l',_0x2aa6ad(0x106)+_0x2aa6ad(0x2cf)+_0x2aa6ad(0x24c)+_0x2aa6ad(0x2dc)+_0x2aa6ad(0x2d8)+_0x2aa6ad(0x1d3)),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)]('Connec'+_0x2aa6ad(0x2ab),_0x2aa6ad(0x2a4)+_0x2aa6ad(0x249)),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)](_0x2aa6ad(0x15a)+'l-Buff'+_0x2aa6ad(0x120),'no');const _0x5618af=()=>{const _0x5635d9=_0x2aa6ad;try{_0x2a2ee5[_0x5635d9(0xe8)]['destro'+'y']();}catch{}try{_0x2a2ee5[_0x5635d9(0x297)]['destro'+'y']();}catch{}};_0x5b340c['on'](_0x2aa6ad(0x2bb),_0x5618af),_0x1571fb['on']('close',_0x5618af),_0x2a2ee5[_0x2aa6ad(0x297)]['on']('error',_0x5618af),_0x2a2ee5[_0x2aa6ad(0x297)]['pipe'](_0x1571fb);return;}catch(_0x5c93c9){console[_0x2aa6ad(0x1cb)]('[camer'+_0x2aa6ad(0x1db)+_0x2aa6ad(0x197),_0x5c93c9?.[_0x2aa6ad(0x1b7)+'e']||_0x5c93c9);}if(!state['snapsh'+_0x2aa6ad(0x16e)]){_0x1571fb['status'](0x190)[_0x2aa6ad(0x1eb)]({'message':_0x2aa6ad(0x1c6)+'有可播放的预'+'览流'});return;}_0x1571fb['setHea'+_0x2aa6ad(0x12d)](_0x2aa6ad(0x124)+_0x2aa6ad(0x2bd),_0x2aa6ad(0x263)+_0x2aa6ad(0x10f)+'mixed-'+_0x2aa6ad(0x142)+'e;\x20bou'+_0x2aa6ad(0x294)+_0x2aa6ad(0x1da)),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)]('Cache-'+'Contro'+'l',_0x2aa6ad(0x106)+_0x2aa6ad(0x2cf)+'-cache'+_0x2aa6ad(0x2dc)+_0x2aa6ad(0x2d8)+'idate'),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)]('Pragma',_0x2aa6ad(0x1b9)+'he'),_0x1571fb['setHea'+_0x2aa6ad(0x12d)](_0x2aa6ad(0x1e4)+_0x2aa6ad(0x2ab),_0x2aa6ad(0x2a4)+_0x2aa6ad(0x249)),_0x1571fb[_0x2aa6ad(0x1f9)+_0x2aa6ad(0x12d)](_0x2aa6ad(0x15a)+_0x2aa6ad(0x282)+_0x2aa6ad(0x120),'no');let _0x4721f8=![];const _0x3c8d32=()=>{_0x4721f8=!![];};_0x5b340c['on'](_0x2aa6ad(0x2bb),_0x3c8d32),_0x1571fb['on'](_0x2aa6ad(0x2bb),_0x3c8d32);const _0x3ceb11=state[_0x2aa6ad(0x2cb)]==='onboar'+'d';_0x3ceb11&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x2aa6ad(0xef)](()=>null),'writeFrame':async _0x12c333=>{const _0x2b7b23=_0x2aa6ad;if(_0x4721f8||!state[_0x2b7b23(0x252)+_0x2b7b23(0x145)])return![];try{return _0x1571fb[_0x2b7b23(0x163)](_0x2b7b23(0x108)+_0x2b7b23(0x14d)+'tent-T'+_0x2b7b23(0x1ad)+_0x2b7b23(0x185)+_0x2b7b23(0x148)+_0x2b7b23(0x137)+_0x2b7b23(0x1bd)+_0x2b7b23(0x29b)+_0x12c333[_0x2b7b23(0x253)]+'\x0d\x0a\x0d\x0a'),_0x1571fb[_0x2b7b23(0x163)](_0x12c333),_0x1571fb[_0x2b7b23(0x163)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x4721f8&&state[_0x2aa6ad(0x252)+_0x2aa6ad(0x145)],'delayMs':_0x3ceb11?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x3ceb11?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x3ceb11&¬eOnboardPreviewClient(-0x1);if(!_0x1571fb[_0x2aa6ad(0x2d0)+_0x2aa6ad(0x231)+'d'])_0x1571fb[_0x2aa6ad(0x207)]();}}),_0x332fdd[_0x41fb21(0x24e)]('/api/c'+_0x41fb21(0x1d0)+'ptz',async(_0xa4c919,_0xe1109f)=>{const _0x22ee6f=_0x41fb21;try{const _0x116336=String(_0xa4c919[_0x22ee6f(0x14b)]?.[_0x22ee6f(0x11f)]||'');_0xe1109f[_0x22ee6f(0x1eb)](await ptzMove(_0x116336,{'press':_0xa4c919[_0x22ee6f(0x14b)]?.[_0x22ee6f(0xe5)]}));}catch(_0x1e1cdb){_0xe1109f[_0x22ee6f(0xf4)](0x190)[_0x22ee6f(0x1eb)]({'message':cameraError(_0x1e1cdb,_0x22ee6f(0x271))});}});}
|
package/dist-server/dev-ui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function
|
|
1
|
+
(function(_0x177f35,_0x1b3d7c){const _0x46ca86=_0x35f4,_0x14b726=_0x177f35();while(!![]){try{const _0x3fa816=parseInt(_0x46ca86(0x154))/0x1*(-parseInt(_0x46ca86(0x15c))/0x2)+-parseInt(_0x46ca86(0x149))/0x3+-parseInt(_0x46ca86(0x160))/0x4+parseInt(_0x46ca86(0x152))/0x5+parseInt(_0x46ca86(0x148))/0x6*(parseInt(_0x46ca86(0x14b))/0x7)+-parseInt(_0x46ca86(0x15a))/0x8+parseInt(_0x46ca86(0x151))/0x9*(parseInt(_0x46ca86(0x15b))/0xa);if(_0x3fa816===_0x1b3d7c)break;else _0x14b726['push'](_0x14b726['shift']());}catch(_0x46237d){_0x14b726['push'](_0x14b726['shift']());}}}(_0x3ef6,0xe3c3b));function _0x35f4(_0x4f6970,_0x547a9b){_0x4f6970=_0x4f6970-0x146;const _0x3ef620=_0x3ef6();let _0x35f47f=_0x3ef620[_0x4f6970];if(_0x35f4['FiKwDU']===undefined){var _0x3b4bef=function(_0x58b188){const _0x196dcb='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x3fc835='',_0x56ceac='';for(let _0x3088d6=0x0,_0xf74528,_0x20d16a,_0x329b73=0x0;_0x20d16a=_0x58b188['charAt'](_0x329b73++);~_0x20d16a&&(_0xf74528=_0x3088d6%0x4?_0xf74528*0x40+_0x20d16a:_0x20d16a,_0x3088d6++%0x4)?_0x3fc835+=String['fromCharCode'](0xff&_0xf74528>>(-0x2*_0x3088d6&0x6)):0x0){_0x20d16a=_0x196dcb['indexOf'](_0x20d16a);}for(let _0x5b2ece=0x0,_0x5842a7=_0x3fc835['length'];_0x5b2ece<_0x5842a7;_0x5b2ece++){_0x56ceac+='%'+('00'+_0x3fc835['charCodeAt'](_0x5b2ece)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x56ceac);};_0x35f4['UEGloO']=_0x3b4bef,_0x35f4['aoOZhr']={},_0x35f4['FiKwDU']=!![];}const _0x3ae3c2=_0x3ef620[0x0],_0x5b39b5=_0x4f6970+_0x3ae3c2,_0x22b958=_0x35f4['aoOZhr'][_0x5b39b5];return!_0x22b958?(_0x35f47f=_0x35f4['UEGloO'](_0x35f47f),_0x35f4['aoOZhr'][_0x5b39b5]=_0x35f47f):_0x35f47f=_0x22b958,_0x35f47f;}import _0x3fc835 from'node:path';export function shouldAttachDevUi(){const _0x1523f6=_0x35f4;if(process[_0x1523f6(0x150)][_0x1523f6(0x147)+'NV']===_0x1523f6(0x153)+_0x1523f6(0x155))return![];const _0x56ceac=String(process[_0x1523f6(0x150)][_0x1523f6(0x14a)+_0x1523f6(0x15f)]||'')[_0x1523f6(0x14d)]();if(_0x56ceac==='0'||_0x56ceac===_0x1523f6(0x14c))return![];return!![];}export async function attachViteDev(_0x3088d6,_0xf74528,{root:_0x20d16a}={}){const _0x122d07=_0x35f4;process['env']['MOSS_E'+_0x122d07(0x15e)+_0x122d07(0x157)]='1';const {createServer:_0x329b73}=await import(_0x122d07(0x14e)),_0x5b2ece=await _0x329b73({'root':_0x20d16a,'configFile':_0x3fc835[_0x122d07(0x158)](_0x20d16a,_0x122d07(0x156)+'onfig.'+'ts'),'server':{'middlewareMode':!![],'hmr':{'server':_0xf74528}},'appType':_0x122d07(0x14f)});return _0x3088d6[_0x122d07(0x146)](_0x5b2ece[_0x122d07(0x15d)+_0x122d07(0x159)]),_0x5b2ece;}function _0x3ef6(){const _0x22894b=['C3bH','zw52','ndi1mZyZmZfyEu5quvO','mtGXnZaWnwPQrevmBW','ChjVzhvJ','mtvqDxHnzNu','DgLVBG','DML0zs5J','rf9wsvrf','AM9PBG','D2fYzxm','odeWmtaWmezhz2HUzq','mtbut3LJzKK','nZG5mdr0y0DnC0C','BwLKzgXL','tujfrerf','rvzFvuK','nZm2mJC2meXSu29Mwa','DxnL','tK9erv9f','mtqWne13uK5PvW','mJG0odG2meHytxzcrq','tu9tu19e','nZeXow9XzKn1zG','zMfSC2u','DhjPBq','DML0zq'];_0x3ef6=function(){return _0x22894b;};return _0x3ef6();}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
function _0x24a7(_0x5efdeb,_0x13013b){_0x5efdeb=_0x5efdeb-0xeb;const _0x2d44d8=_0x2d44();let _0x24a76b=_0x2d44d8[_0x5efdeb];if(_0x24a7['AiHJOw']===undefined){var _0x2a9ea=function(_0x2b2ffd){const _0x450a06='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2c2ae2='',_0x16c074='';for(let _0x1e16e0=0x0,_0xfe1f3d,_0x5e246d,_0xcd8377=0x0;_0x5e246d=_0x2b2ffd['charAt'](_0xcd8377++);~_0x5e246d&&(_0xfe1f3d=_0x1e16e0%0x4?_0xfe1f3d*0x40+_0x5e246d:_0x5e246d,_0x1e16e0++%0x4)?_0x2c2ae2+=String['fromCharCode'](0xff&_0xfe1f3d>>(-0x2*_0x1e16e0&0x6)):0x0){_0x5e246d=_0x450a06['indexOf'](_0x5e246d);}for(let _0x4054d3=0x0,_0x3d6eda=_0x2c2ae2['length'];_0x4054d3<_0x3d6eda;_0x4054d3++){_0x16c074+='%'+('00'+_0x2c2ae2['charCodeAt'](_0x4054d3)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x16c074);};_0x24a7['ykhSWd']=_0x2a9ea,_0x24a7['OxuKoo']={},_0x24a7['AiHJOw']=!![];}const _0x36f2df=_0x2d44d8[0x0],_0x522d50=_0x5efdeb+_0x36f2df,_0x5e9232=_0x24a7['OxuKoo'][_0x522d50];return!_0x5e9232?(_0x24a76b=_0x24a7['ykhSWd'](_0x24a76b),_0x24a7['OxuKoo'][_0x522d50]=_0x24a76b):_0x24a76b=_0x5e9232,_0x24a76b;}const _0x3aa783=_0x24a7;(function(_0x22e6a8,_0xc48443){const _0x175479=_0x24a7,_0x4c00ac=_0x22e6a8();while(!![]){try{const _0x1b78f2=-parseInt(_0x175479(0x103))/0x1+parseInt(_0x175479(0xfa))/0x2*(-parseInt(_0x175479(0xf7))/0x3)+parseInt(_0x175479(0xf8))/0x4+parseInt(_0x175479(0xf3))/0x5*(parseInt(_0x175479(0x105))/0x6)+-parseInt(_0x175479(0xf5))/0x7+-parseInt(_0x175479(0xf1))/0x8+parseInt(_0x175479(0xef))/0x9;if(_0x1b78f2===_0xc48443)break;else _0x4c00ac['push'](_0x4c00ac['shift']());}catch(_0x484871){_0x4c00ac['push'](_0x4c00ac['shift']());}}}(_0x2d44,0x75051));function _0x2d44(){const _0x25d5f2=['AxngAw5P','ndK2mdu0CLL4uLzu','Dgv4Da','nMfjENLIuq','C3bLywTP','DM9Py2u','AgfZ','y29UBMvJ','BwfW','yw50','mtmWmZKWnJvlseXAswu','CM9Szq','ntCXmZmXmNr0q2nxtW','BgLZDgvU','nZq5ndbwt3zuywK','ChvZAa','mtyYodG2nw5MtvfrtW','C3LZDgvT','mJy0oda3z25svvDY','mZu5ote5mLHguxrvza','AwrSzq','mtbotMXozKG','C3rHDgu','BgvUz3rO','Bwf4','C2vX','BgLUzxm','AxnbCNjH','DhjPBq'];_0x2d44=function(){return _0x25d5f2;};return _0x2d44();}const ACTIVE_VOICE=new Set([_0x3aa783(0xf2)+'ing',_0x3aa783(0x106)+'ng',_0x3aa783(0xec)+'ting']);export function applyChatDelta(_0x2c2ae2={'seq':0x0,'lines':[]},_0x16c074={}){const _0x53616b=_0x3aa783,_0x1e16e0=Number(_0x16c074[_0x53616b(0xfe)])||0x0,_0xfe1f3d=Number(_0x2c2ae2[_0x53616b(0xfe)])||0x0,_0x5e246d=Array[_0x53616b(0x100)+'y'](_0x16c074[_0x53616b(0xff)])?_0x16c074[_0x53616b(0xff)]:[],_0xcd8377=new Set((_0x2c2ae2[_0x53616b(0xff)]||[])[_0x53616b(0xed)](_0x15faeb=>_0x15faeb[_0x53616b(0xfe)])),_0x4054d3=[];for(const _0x52914e of _0x5e246d){const _0x82dceb=Number(_0x52914e?.[_0x53616b(0xfe)]);if(!Number[_0x53616b(0x102)+'te'](_0x82dceb)||_0xcd8377[_0x53616b(0xeb)](_0x82dceb))continue;_0xcd8377['add'](_0x82dceb),_0x4054d3[_0x53616b(0xf4)]({'seq':_0x82dceb,'role':_0x52914e[_0x53616b(0xf0)]==='assist'+_0x53616b(0xee)||_0x52914e[_0x53616b(0xf0)]===_0x53616b(0xf6)?_0x52914e[_0x53616b(0xf0)]:'user','text':String(_0x52914e[_0x53616b(0x104)]||'')[_0x53616b(0x101)](),'state':_0x52914e[_0x53616b(0xfb)]||''});}const _0x3d6eda=_0x4054d3[_0x53616b(0xed)](_0x4fc3a2=>_0x4fc3a2[_0x53616b(0xfe)]),_0x32c98e=_0x16c074[_0x53616b(0x107)]||_0x2c2ae2[_0x53616b(0x107)]||_0x53616b(0xf9),_0x41482a=_0x4054d3['filter'](_0x57c1c2=>_0x57c1c2['text']);if(_0x1e16e0<_0xfe1f3d&&_0x41482a[_0x53616b(0xfc)]===0x0)return{'seq':_0x1e16e0,'lines':_0x2c2ae2[_0x53616b(0xff)]||[],'added':[],'voice':_0x32c98e,'rewound':!![]};return{'seq':Math['max'](_0xfe1f3d,_0x1e16e0,_0x3d6eda[_0x53616b(0xfc)]?Math[_0x53616b(0xfd)](..._0x3d6eda):0x0),'lines':[..._0x2c2ae2[_0x53616b(0xff)]||[],..._0x41482a],'added':_0x41482a,'voice':_0x32c98e,'rewound':![]};}export function shouldFetchChatSync({voice:voice='idle',remoteSeq:remoteSeq=0x0,localSeq:localSeq=0x0}={}){const _0x15b32b=_0x3aa783;if(ACTIVE_VOICE[_0x15b32b(0xeb)](String(voice)))return!![];const _0x41a34=Number(remoteSeq)||0x0,_0x4ffa14=Number(localSeq)||0x0;if(_0x41a34<_0x4ffa14)return!![];return _0x41a34>_0x4ffa14;}export function chatSyncIntervalMs({voice:voice=_0x3aa783(0xf9)}={}){const _0x18801b=_0x3aa783;if(ACTIVE_VOICE[_0x18801b(0xeb)](String(voice)))return 0x190;return 0x0;}
|