yo-moss-ai 0.0.19 → 0.0.21
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/assets/esp-flasher-CLKzE7JE.js +2 -2
- package/dist/assets/index-C1bPuFAs.js +45 -0
- package/dist/assets/{index-Bcf5kQZF.css → index-CzQKR67c.css} +1 -1
- package/dist/index.html +2 -2
- 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/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/tab-focus.mjs +1 -1
- package/dist-server/voice-wake.mjs +1 -1
- package/package.json +1 -1
- package/dist/assets/index-BTL1clBe.js +0 -45
package/dist/index.html
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<title>MOSS 配置</title>
|
|
7
7
|
<meta name="author" content="YOKOCHEN YIMENG" />
|
|
8
8
|
<meta name="copyright" content="Copyright © 2026 YOKOCHEN YIMENG. All rights reserved." />
|
|
9
|
-
<script type="module" crossorigin src="/assets/index-
|
|
9
|
+
<script type="module" crossorigin src="/assets/index-C1bPuFAs.js"></script>
|
|
10
10
|
<link rel="modulepreload" crossorigin href="/assets/esp-flasher-CLKzE7JE.js">
|
|
11
11
|
<link rel="modulepreload" crossorigin href="/assets/engine-3d-DoxdUZhy.js">
|
|
12
|
-
<link rel="stylesheet" crossorigin href="/assets/index-
|
|
12
|
+
<link rel="stylesheet" crossorigin href="/assets/index-CzQKR67c.css">
|
|
13
13
|
</head>
|
|
14
14
|
<body>
|
|
15
15
|
<div id="app"></div>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
function _0x3f4a(){const _0x492a85=['q2fWCW','tu9tuW','DJi2nda','mJiZmZGWoejesurOEa','mJCXnJyWDwDUuLjP','ndy5EuvTuuvK','ChjVzhvJ','mJq2mdm5owrZsM9Lva','5P2/6l296kEg6kEj','mtyZmdq4ndHnwNDJDxq','Bw9ZCY1V','DhjPBq','mte0otG0t0jTv2D3','B2jQzwn0','mta1mJm5mKnsvK5Qqq','yM9HCMq','ndm2odCZmePHvfPJzG'];_0x3f4a=function(){return _0x492a85;};return _0x3f4a();}const _0xf9ef3a=_0x39a0;(function(_0x5499b7,_0x8b022d){const _0x3a7915=_0x39a0,_0x57f12a=_0x5499b7();while(!![]){try{const _0x5951a8=-parseInt(_0x3a7915(0x17f))/0x1+parseInt(_0x3a7915(0x174))/0x2+-parseInt(_0x3a7915(0x178))/0x3+-parseInt(_0x3a7915(0x175))/0x4+parseInt(_0x3a7915(0x170))/0x5+parseInt(_0x3a7915(0x17d))/0x6*(-parseInt(_0x3a7915(0x176))/0x7)+parseInt(_0x3a7915(0x17a))/0x8;if(_0x5951a8===_0x8b022d)break;else _0x57f12a['push'](_0x57f12a['shift']());}catch(_0x1b5a71){_0x57f12a['push'](_0x57f12a['shift']());}}}(_0x3f4a,0xc45e8));export const BOARD_ONVIF='moss-o'+'nvif';export const BOARD_OV2640=_0xf9ef3a(0x17b)+_0xf9ef3a(0x173);export const KNOWN_BOARDS=[BOARD_ONVIF,BOARD_OV2640];export function resolveBoard(_0x2ff6eb={}){const _0x283d12=_0xf9ef3a,_0x4059b7=String(_0x2ff6eb['board']||'')[_0x283d12(0x17c)]();if(_0x4059b7===BOARD_OV2640||_0x4059b7===BOARD_ONVIF)return _0x4059b7;const _0x34bd8b=String(_0x2ff6eb['name']||'')[_0x283d12(0x17c)]();if(_0x34bd8b===BOARD_OV2640||_0x34bd8b===BOARD_ONVIF)return _0x34bd8b;return BOARD_ONVIF;}function _0x39a0(_0x37eb77,_0x8fc081){_0x37eb77=_0x37eb77-0x16f;const _0x3f4a2f=_0x3f4a();let _0x39a010=_0x3f4a2f[_0x37eb77];if(_0x39a0['RCOILz']===undefined){var _0x45a14a=function(_0x3f567d){const _0x62ab2f='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x2ff6eb='',_0x4059b7='';for(let _0x34bd8b=0x0,_0x880119,_0x50b9b4,_0x4fe79d=0x0;_0x50b9b4=_0x3f567d['charAt'](_0x4fe79d++);~_0x50b9b4&&(_0x880119=_0x34bd8b%0x4?_0x880119*0x40+_0x50b9b4:_0x50b9b4,_0x34bd8b++%0x4)?_0x2ff6eb+=String['fromCharCode'](0xff&_0x880119>>(-0x2*_0x34bd8b&0x6)):0x0){_0x50b9b4=_0x62ab2f['indexOf'](_0x50b9b4);}for(let _0xeaff9=0x0,_0x8cce49=_0x2ff6eb['length'];_0xeaff9<_0x8cce49;_0xeaff9++){_0x4059b7+='%'+('00'+_0x2ff6eb['charCodeAt'](_0xeaff9)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x4059b7);};_0x39a0['UAMWtT']=_0x45a14a,_0x39a0['uSlLAz']={},_0x39a0['RCOILz']=!![];}const _0x56e952=_0x3f4a2f[0x0],_0x191f13=_0x37eb77+_0x56e952,_0x4bd477=_0x39a0['uSlLAz'][_0x191f13];return!_0x4bd477?(_0x39a010=_0x39a0['UAMWtT'](_0x39a010),_0x39a0['uSlLAz'][_0x191f13]=_0x39a010):_0x39a010=_0x4bd477,_0x39a010;}export function boardTypeLabel(_0x880119){const _0x4d118b=_0xf9ef3a;if(_0x880119===BOARD_OV2640)return _0x4d118b(0x179);if(_0x880119===BOARD_ONVIF)return'外接视觉';return _0x4d118b(0x172);}export function capsForBoard(_0x50b9b4){const _0x4fe79d=_0x50b9b4===BOARD_OV2640;return{'onboard_camera':_0x4fe79d,'onboard_preview':![],'ir':!![],'gimbal':_0x4fe79d,'face_track':_0x4fe79d,'lamps':!![],'motor':!![]};}export function normalizeCaps(_0xeaff9={}){return capsForBoard(resolveBoard(_0xeaff9));}export function applyDeviceHealthTo(_0x8cce49,_0x470e56){const _0x6f4722=_0xf9ef3a;if(!_0x470e56||typeof _0x470e56!==_0x6f4722(0x17e))return _0x8cce49;const _0x55f154=resolveBoard(_0x470e56);if(_0x470e56[_0x6f4722(0x177)+'t'])_0x8cce49['produc'+'t']=_0x470e56[_0x6f4722(0x177)+'t'];return _0x8cce49[_0x6f4722(0x16f)]=_0x55f154,_0x8cce49['device'+_0x6f4722(0x171)]=capsForBoard(_0x55f154),_0x8cce49;}
|
package/dist-server/camera.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const _0x28ae51=_0x2231;(function(_0x115afa,_0x2f65de){const _0x4e0484=_0x2231,_0x2cc04f=_0x115afa();while(!![]){try{const _0x3fdb87=-parseInt(_0x4e0484(0x1c4))/0x1+parseInt(_0x4e0484(0x129))/0x2*(-parseInt(_0x4e0484(0x1fa))/0x3)+parseInt(_0x4e0484(0x1e3))/0x4+-parseInt(_0x4e0484(0x1af))/0x5*(-parseInt(_0x4e0484(0x12d))/0x6)+parseInt(_0x4e0484(0x2e7))/0x7+-parseInt(_0x4e0484(0x195))/0x8*(-parseInt(_0x4e0484(0x2bb))/0x9)+parseInt(_0x4e0484(0x2e2))/0xa;if(_0x3fdb87===_0x2f65de)break;else _0x2cc04f['push'](_0x2cc04f['shift']());}catch(_0x3a119c){_0x2cc04f['push'](_0x2cc04f['shift']());}}}(_0x1201,0x702b4));import _0x22837a from'node:crypto';function _0x2231(_0x433371,_0x4b85df){_0x433371=_0x433371-0x11e;const _0x12016a=_0x1201();let _0x22315f=_0x12016a[_0x433371];if(_0x2231['bxByLe']===undefined){var _0x548a36=function(_0x188297){const _0x1d4b20='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x22837a='',_0x12aeeb='';for(let _0x2ca25d=0x0,_0x58cee8,_0x487535,_0x2fc93b=0x0;_0x487535=_0x188297['charAt'](_0x2fc93b++);~_0x487535&&(_0x58cee8=_0x2ca25d%0x4?_0x58cee8*0x40+_0x487535:_0x487535,_0x2ca25d++%0x4)?_0x22837a+=String['fromCharCode'](0xff&_0x58cee8>>(-0x2*_0x2ca25d&0x6)):0x0){_0x487535=_0x1d4b20['indexOf'](_0x487535);}for(let _0xead090=0x0,_0x596860=_0x22837a['length'];_0xead090<_0x596860;_0xead090++){_0x12aeeb+='%'+('00'+_0x22837a['charCodeAt'](_0xead090)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x12aeeb);};_0x2231['tiODJC']=_0x548a36,_0x2231['SNFufo']={},_0x2231['bxByLe']=!![];}const _0x573c2b=_0x12016a[0x0],_0x129741=_0x433371+_0x573c2b,_0x4bc8bf=_0x2231['SNFufo'][_0x129741];return!_0x4bc8bf?(_0x22315f=_0x2231['tiODJC'](_0x22315f),_0x2231['SNFufo'][_0x129741]=_0x22315f):_0x22315f=_0x4bc8bf,_0x22315f;}import _0x12aeeb from'node:http';import _0x2ca25d from'node:https';import _0x58cee8 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(_0x28ae51(0x274)+_0x28ae51(0x250)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x28ae51(0x2b0)+'e']();const ffmpegProcs=new Set(),streamClients=new Set();let sharedFfmpeg=null,sharedTranscode=![],ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,previewHoldDepth=0x0,suppressFfmpegRestart=![];const httpAgent=new _0x12aeeb[(_0x28ae51(0x1b8))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x2ca25d['Agent']({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':'/onvif'+_0x28ae51(0x1d6)+'e_serv'+_0x28ae51(0x17e),'username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x487535){cameraHooks={...cameraHooks,..._0x487535};}function deviceCaps(){const _0x24e66b=_0x28ae51,_0x2fc93b=cameraHooks[_0x24e66b(0x184)+'iceCap'+'s']?.()||{};return _0x2fc93b&&typeof _0x2fc93b===_0x24e66b(0x132)?_0x2fc93b:{};}export function onboardAvailable(){const _0x2bef61=_0x28ae51;return deviceCaps()[_0x2bef61(0x2b5)+_0x2bef61(0x13f)+_0x2bef61(0x29d)]===!![]&&!!String(cameraHooks[_0x2bef61(0x184)+_0x2bef61(0x186)+'eUrl']?.()||'')[_0x2bef61(0x173)]();}export function gimbalAvailable(){const _0x3f1870=_0x28ae51;return deviceCaps()[_0x3f1870(0x13e)]===!![];}export function stripOnboardCameraConfig(_0xead090){const _0x1b4fdd=_0x28ae51;if(!_0xead090?.[_0x1b4fdd(0x251)]||_0xead090[_0x1b4fdd(0x251)][_0x1b4fdd(0x246)]!==_0x1b4fdd(0x2b5)+'d')return![];const _0x596860={..._0xead090[_0x1b4fdd(0x251)]};return delete _0x596860['source'],_0xead090['camera']=_0x596860,!![];}function playModeOf(){const _0x14f8eb=_0x28ae51;if(state['source']===_0x14f8eb(0x2b5)+'d')return'mjpeg';if(state[_0x14f8eb(0x1c8)+'i'])return _0x14f8eb(0x1d5);if(state[_0x14f8eb(0x202)+'i'])return'mjpeg';if(state['snapsh'+_0x14f8eb(0x1aa)])return'snapsh'+'ot';return'';}function publicState(){const _0x35b649=_0x28ae51;return{'connected':state[_0x35b649(0x269)+_0x35b649(0x261)],'source':state[_0x35b649(0x246)]||'','sourceLabel':state[_0x35b649(0x246)+_0x35b649(0x2e4)]||'','hostname':state[_0x35b649(0x1f9)+'me'],'port':state[_0x35b649(0x287)],'path':state[_0x35b649(0x160)],'username':state[_0x35b649(0x170)+'me'],'password_set':!!state[_0x35b649(0x2d7)+'rd'],'ptz':state[_0x35b649(0x1b5)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0x35b649(0x246)]!==_0x35b649(0x197)?'gimbal':state['ptz']?_0x35b649(0x197):'','snapshot':!!state[_0x35b649(0x263)+_0x35b649(0x1aa)]||state['source']==='onboar'+'d','stream':!!(state[_0x35b649(0x1c8)+'i']||state[_0x35b649(0x202)+'i']||state[_0x35b649(0x263)+_0x35b649(0x1aa)])||state['source']===_0x35b649(0x2b5)+'d','playMode':playModeOf(),'encoding':state[_0x35b649(0x25e)+'ng'],'liveDirect':state['liveDi'+_0x35b649(0x27d)],'info':state['info'],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x119a35){const _0x241511=_0x28ae51,_0x11efa1=Array[_0x241511(0x205)+'y'](_0x119a35)?_0x119a35[_0x241511(0x2c4)]('\x20'):String(_0x119a35||''),_0x5df465=_0x4b2316=>{const _0x4a21e5=_0x241511,_0x377cd1=_0x11efa1[_0x4a21e5(0x2cd)](new RegExp(_0x4a21e5(0x125)+_0x4a21e5(0x27a)+'.onvif'+_0x4a21e5(0x1e1)+_0x4b2316+(_0x4a21e5(0x237)+_0x4a21e5(0x225)),'i'));if(!_0x377cd1)return'';try{return decodeURIComponent(_0x377cd1[0x1][_0x4a21e5(0x2b2)+'e'](/_/g,'\x20'));}catch{return _0x377cd1[0x1];}};return{'name':_0x5df465(_0x241511(0x158)),'hardware':_0x5df465(_0x241511(0x232)+'re')};}function firstXAddr(_0x50ba82){const _0x2800c9=_0x28ae51,_0x2b93c5=Array[_0x2800c9(0x205)+'y'](_0x50ba82)?_0x50ba82[0x0]:_0x50ba82,_0x1cbc98=typeof _0x2b93c5===_0x2800c9(0x1bd)?_0x2b93c5:_0x2b93c5?.[_0x2800c9(0x16a)]||String(_0x2b93c5||''),_0x84dcfe=_0x1cbc98['trim']()['split'](/\s+/)[0x0];if(!_0x84dcfe)return null;try{return new URL(_0x84dcfe);}catch{return null;}}function summarizeProbe(_0x2abb63,_0x436ca8){const _0x2159c8=_0x28ae51,_0x56dc97=_0x2abb63?.['probeM'+_0x2159c8(0x2cf)]?.['probeM'+_0x2159c8(0x28d)]||_0x2abb63,_0x5ee612=firstXAddr(_0x56dc97?.[_0x2159c8(0x131)]||_0x56dc97?.['xaddrs']),_0xfc93ee=_0x5ee612?.[_0x2159c8(0x1f9)+'me']||_0x436ca8?.['addres'+'s']||'';if(!_0xfc93ee)return null;const _0x3e4012=parseScopes(_0x56dc97?.[_0x2159c8(0x1fc)]||_0x56dc97?.[_0x2159c8(0x16f)]);return{'hostname':_0xfc93ee,'port':Number(_0x5ee612?.[_0x2159c8(0x287)]||0x50),'path':_0x5ee612?.[_0x2159c8(0x290)+'me']||_0x2159c8(0x120)+'/devic'+_0x2159c8(0x16d)+_0x2159c8(0x17e),'urn':_0x56dc97?.[_0x2159c8(0x14a)+'ntRefe'+_0x2159c8(0x1cc)]?.[_0x2159c8(0x1fd)+'s']||_0x56dc97?.[_0x2159c8(0x1bb)]||'','name':_0x3e4012[_0x2159c8(0x158)]||_0xfc93ee,'hardware':_0x3e4012[_0x2159c8(0x232)+'re']||''};}function summarizeCam(_0x4c35a8,_0x28b515){const _0x479d50=_0x28ae51;if(_0x4c35a8?.['probeM'+_0x479d50(0x2cf)]||_0x4c35a8?.[_0x479d50(0x131)])return summarizeProbe(_0x4c35a8,_0x28b515);const _0x577e0d=_0x4c35a8[_0x479d50(0x1f9)+'me']||_0x28b515?.[_0x479d50(0x1fd)+'s']||'';if(!_0x577e0d)return null;return{'hostname':_0x577e0d,'port':Number(_0x4c35a8[_0x479d50(0x287)]||0x50),'path':_0x4c35a8[_0x479d50(0x160)]||_0x479d50(0x120)+_0x479d50(0x1d6)+_0x479d50(0x16d)+_0x479d50(0x17e),'urn':_0x4c35a8[_0x479d50(0x1bb)]||'','name':_0x577e0d,'hardware':''};}let discovering=null;export async function discover(_0x4d804a=0xfa0){const _0x1bebbe=_0x28ae51;if(discovering)return discovering;return discovering=runDiscover(_0x4d804a)[_0x1bebbe(0x1ec)+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x110f6e){const _0x556b14=_0x28ae51,_0x1bbe7a=[],_0x4e1a63=new Set(),_0x4dcc6c=_0x24e233=>{const _0x377c32=_0x2231;if(!_0x24e233?.[_0x377c32(0x1f9)+'me'])return;const _0x2b1e23=_0x24e233[_0x377c32(0x1f9)+'me']+':'+_0x24e233[_0x377c32(0x287)]+':'+_0x24e233[_0x377c32(0x160)];if(_0x4e1a63['has'](_0x2b1e23))return;_0x4e1a63['add'](_0x2b1e23),_0x1bbe7a[_0x377c32(0x13a)](_0x24e233);},_0x471ebe=(_0xc00b7f,_0x53b39b)=>_0x4dcc6c(summarizeCam(_0xc00b7f,_0x53b39b));Discovery['on'](_0x556b14(0x2ca),_0x471ebe);try{const _0x2d3aa0=await Discovery[_0x556b14(0x2be)]({'timeout':_0x110f6e,'resolve':![]});for(const _0x54074d of _0x2d3aa0||[])_0x4dcc6c(summarizeCam(_0x54074d));}catch(_0x33d862){console[_0x556b14(0x15d)](_0x556b14(0x134)+_0x556b14(0x222)+_0x556b14(0x2f1),_0x33d862?.[_0x556b14(0x1e8)+'e']||_0x33d862);}finally{Discovery[_0x556b14(0x272)+'Listen'+'er'](_0x556b14(0x2ca),_0x471ebe);}return _0x1bbe7a;}function mediaUriOf(_0x4ae8f8){const _0x102b27=_0x28ae51;if(!_0x4ae8f8)return'';if(typeof _0x4ae8f8===_0x102b27(0x1bd))return _0x4ae8f8[_0x102b27(0x2b2)+'e'](/&/g,'&');const _0x2b0b22=_0x4ae8f8[_0x102b27(0x26c)]||_0x4ae8f8[_0x102b27(0x2b6)+'ri']?.[_0x102b27(0x26c)]||_0x4ae8f8[_0x102b27(0x150)]||'',_0x32d7ee=typeof _0x2b0b22===_0x102b27(0x1bd)?_0x2b0b22:_0x2b0b22?.[_0x102b27(0x16a)]||_0x2b0b22?.['_']||'';return String(_0x32d7ee)[_0x102b27(0x2b2)+'e'](/&/g,'&');}function pickPreviewSource(_0x165280){const _0x1f1481=_0x28ae51,_0x39b560=Array[_0x1f1481(0x205)+'y'](_0x165280['active'+_0x1f1481(0x24e)+'s'])?[..._0x165280[_0x1f1481(0x276)+_0x1f1481(0x24e)+'s']]:[];if(!_0x39b560[_0x1f1481(0x2aa)]&&_0x165280[_0x1f1481(0x276)+_0x1f1481(0x24e)])_0x39b560['push'](_0x165280[_0x1f1481(0x276)+_0x1f1481(0x24e)]);return _0x39b560[_0x1f1481(0x181)]((_0x4c6401,_0x2784fb)=>(Number(_0x4c6401[_0x1f1481(0x2e8)])||0x780)-(Number(_0x2784fb[_0x1f1481(0x2e8)])||0x780)),_0x39b560[0x0]||_0x165280['active'+_0x1f1481(0x24e)]||null;}function detectEncoding(_0x4475a3){const _0x2d2388=_0x28ae51,_0x14accb=String(_0x4475a3?.[_0x2d2388(0x25e)+'ng']||_0x4475a3?.[_0x2d2388(0x13c)+'ng']||'')[_0x2d2388(0x282)+'rCase']();if(/h265|hevc/[_0x2d2388(0x2ce)](_0x14accb))return _0x2d2388(0x254);if(/h264|avc/[_0x2d2388(0x2ce)](_0x14accb))return _0x2d2388(0x2ad);return _0x14accb;}function injectRtspAuth(_0x535c03,_0x28fa1d,_0xb968d5){const _0x187fae=_0x28ae51;if(!_0x535c03)return'';try{const _0x5cfa53=new URL(_0x535c03);return _0x28fa1d&&(_0x5cfa53[_0x187fae(0x170)+'me']=_0x28fa1d,_0x5cfa53[_0x187fae(0x2d7)+'rd']=_0xb968d5||''),_0x5cfa53[_0x187fae(0x16a)];}catch{return _0x535c03;}}function stopAllFfmpeg(){const _0x64cff9=_0x28ae51;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=0x320,sharedTranscode=![];const _0xcd13b1=sharedFfmpeg;sharedFfmpeg=null;if(_0xcd13b1){ffmpegProcs[_0x64cff9(0x162)](_0xcd13b1);try{_0xcd13b1[_0x64cff9(0x209)](_0x64cff9(0x21d)+'L');}catch{}}for(const _0x3f5870 of ffmpegProcs){try{_0x3f5870[_0x64cff9(0x209)](_0x64cff9(0x21d)+'L');}catch{}}ffmpegProcs[_0x64cff9(0x157)]();for(const _0x3556da of streamClients){try{if(!_0x3556da[_0x64cff9(0x2c6)+'leEnde'+'d'])_0x3556da[_0x64cff9(0x164)]();}catch{}}streamClients[_0x64cff9(0x157)]();}function resetDigest(){const _0x5c8d11=_0x28ae51;digestState[_0x5c8d11(0x273)+_0x5c8d11(0x15e)]=null,digestState['nc']=0x1;}export const ONVIF_CONNECT_TIMEOUT_MS=0x4e20;export const ONVIF_TCP_PROBE_MS=0x9c4;export function isNetworkError(_0x4ee8a1){const _0x1febe4=_0x28ae51,_0x5b18ad=_0x4ee8a1 instanceof Error?_0x4ee8a1[_0x1febe4(0x1e8)+'e']:String(_0x4ee8a1||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|Network timeout/i[_0x1febe4(0x2ce)](_0x5b18ad);}export function cameraError(_0x227cfa,_0x1fd871){const _0x2cf444=_0x28ae51,_0x5b41d5=_0x227cfa instanceof Error?_0x227cfa[_0x2cf444(0x1e8)+'e']:String(_0x227cfa||'');if(isNetworkError(_0x227cfa))return _0x2cf444(0x1e6)+_0x2cf444(0x289)+_0x2cf444(0x1b3)+_0x2cf444(0x27f);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x2cf444(0x2ce)](_0x5b41d5))return _0x2cf444(0x28f)+_0x2cf444(0x1d8)+_0x2cf444(0x128)+_0x2cf444(0x229)+_0x2cf444(0x279)+'个账号开\x20O'+_0x2cf444(0x277)+'限。';return _0x5b41d5||_0x1fd871;}export function probeTcp(_0x3cc2f9,_0xaff406,_0x3d5019=ONVIF_TCP_PROBE_MS){const _0x4127fd=_0x28ae51,_0x48b915=String(_0x3cc2f9||'')[_0x4127fd(0x173)](),_0x23d2e4=Number(_0xaff406)||0x50;if(!_0x48b915)return Promise[_0x4127fd(0x2b0)+'e'](![]);return new Promise(_0x2f37ee=>{const _0x1e788c=_0x4127fd,_0x22ad6e=_0x58cee8['connec'+'t']({'host':_0x48b915,'port':_0x23d2e4});let _0x486e54=![];const _0x1c01bc=_0x34e84f=>{const _0x20c3f7=_0x2231;if(_0x486e54)return;_0x486e54=!![],_0x22ad6e[_0x20c3f7(0x272)+'AllLis'+_0x20c3f7(0x2af)](),_0x22ad6e[_0x20c3f7(0x123)+'y'](),_0x2f37ee(_0x34e84f);};_0x22ad6e[_0x1e788c(0x1f5)+_0x1e788c(0x2ed)](Math['max'](0xc8,Number(_0x3d5019)||ONVIF_TCP_PROBE_MS),()=>_0x1c01bc(![])),_0x22ad6e[_0x1e788c(0x16e)]('connec'+'t',()=>_0x1c01bc(!![])),_0x22ad6e[_0x1e788c(0x16e)](_0x1e788c(0x166),()=>_0x1c01bc(![]));});}function createCam(_0x4cc82b){const _0x5115f2=_0x28ae51;return new Cam({'hostname':_0x4cc82b['hostna'+'me'],'port':_0x4cc82b[_0x5115f2(0x287)],'username':_0x4cc82b[_0x5115f2(0x170)+'me'],'password':_0x4cc82b[_0x5115f2(0x2d7)+'rd'],'path':_0x4cc82b[_0x5115f2(0x160)],'timeout':Number(_0x4cc82b['timeou'+'t'])>0x0?Number(_0x4cc82b['timeou'+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x16e40f=_0x28ae51,_0xcaca0c=createCam(state);return await _0xcaca0c[_0x16e40f(0x269)+'t'](),currentCam=_0xcaca0c,state[_0x16e40f(0x1b5)]=!!(_0xcaca0c[_0x16e40f(0x240)+_0x16e40f(0x26e)]?.[_0x16e40f(0x288)]||_0xcaca0c[_0x16e40f(0x26c)]?.[_0x16e40f(0x1b5)]),_0xcaca0c;}function sameHost(_0x5d3a32,_0x49f42a){const _0x4ef7b5=_0x28ae51;return String(_0x5d3a32||'')['trim']()[_0x4ef7b5(0x282)+_0x4ef7b5(0x1f3)]()===String(_0x49f42a||'')[_0x4ef7b5(0x173)]()[_0x4ef7b5(0x282)+'rCase']();}export function sameOnvifEndpoint(_0x41dd7a,_0x39b37f){const _0x3d4615=_0x28ae51;if(!_0x41dd7a||!_0x39b37f)return![];return sameHost(_0x41dd7a[_0x3d4615(0x1f9)+'me'],_0x39b37f[_0x3d4615(0x1f9)+'me'])&&Number(_0x41dd7a[_0x3d4615(0x287)]||0x50)===Number(_0x39b37f[_0x3d4615(0x287)]||0x50)&&String(_0x41dd7a[_0x3d4615(0x160)]||'/onvif'+_0x3d4615(0x1d6)+'e_serv'+_0x3d4615(0x17e))===String(_0x39b37f[_0x3d4615(0x160)]||_0x3d4615(0x120)+'/devic'+_0x3d4615(0x16d)+_0x3d4615(0x17e));}async function resolveDiscoveredEndpoint(_0x599f0f){const _0x1e492d=_0x28ae51;try{const _0x2d6f1c=await discover(0x9c4);return _0x2d6f1c[_0x1e492d(0x135)](_0x5559fd=>sameHost(_0x5559fd[_0x1e492d(0x1f9)+'me'],_0x599f0f))||null;}catch(_0x3ac345){return console[_0x1e492d(0x15d)]('[camer'+'a]\x20dis'+'cover\x20'+'fallba'+'ck',_0x3ac345?.[_0x1e492d(0x1e8)+'e']||_0x3ac345),null;}}async function openOnvif(_0x3da927){const _0x3eeae9=createCam(_0x3da927);return await _0x3eeae9['connec'+'t'](),_0x3eeae9;}export async function connectCamera(_0x5ea820={}){const _0x4164f8=_0x28ae51;let _0x4e863a=String(_0x5ea820['hostna'+'me']||'')[_0x4164f8(0x173)](),_0x387b28=Number(_0x5ea820[_0x4164f8(0x287)]||0x50);const _0x35a5fd=String(_0x5ea820[_0x4164f8(0x170)+'me']||'')[_0x4164f8(0x173)](),_0x33cbf7=String(_0x5ea820[_0x4164f8(0x2d7)+'rd']||'');let _0x19bfe8=String(_0x5ea820['path']||_0x4164f8(0x120)+'/devic'+_0x4164f8(0x16d)+_0x4164f8(0x17e))[_0x4164f8(0x173)]()||'/onvif'+_0x4164f8(0x1d6)+_0x4164f8(0x16d)+_0x4164f8(0x17e);if(!_0x4e863a)throw new Error(_0x4164f8(0x2f6)+'地址');stopAllFfmpeg(),await new Promise(_0x141779=>setTimeout(_0x141779,0x32));state[_0x4164f8(0x246)]==='onboar'+'d'&&disconnectCamera();let _0x1c2b56;const _0x420a69={'username':_0x35a5fd,'password':_0x33cbf7,'path':_0x19bfe8},_0x338079=await probeTcp(_0x4e863a,_0x387b28);if(!_0x338079)console[_0x4164f8(0x15d)]('[camer'+_0x4164f8(0x149)+'\x20probe'+'\x20fail',_0x4e863a+':'+_0x387b28);else try{_0x1c2b56=await openOnvif({'hostname':_0x4e863a,'port':_0x387b28,..._0x420a69});}catch(_0x8fa2d8){console['warn'](_0x4164f8(0x18d)+_0x4164f8(0x24c)+'nect\x20f'+'ail',_0x4e863a+':'+_0x387b28+_0x19bfe8,_0x8fa2d8?.[_0x4164f8(0x1e8)+'e']||_0x8fa2d8);if(!isNetworkError(_0x8fa2d8))throw new Error(cameraError(_0x8fa2d8,_0x4164f8(0x227)+'败'));}if(!_0x1c2b56)try{console[_0x4164f8(0x2b4)]('[camer'+_0x4164f8(0x1ef)+'ry\x20sam'+'e',_0x4e863a+':'+_0x387b28+_0x19bfe8),_0x1c2b56=await openOnvif({'hostname':_0x4e863a,'port':_0x387b28,..._0x420a69});}catch(_0x579c7e){console[_0x4164f8(0x15d)](_0x4164f8(0x18d)+_0x4164f8(0x1ef)+_0x4164f8(0x1a9)+'l',_0x4e863a+':'+_0x387b28+_0x19bfe8,_0x579c7e?.[_0x4164f8(0x1e8)+'e']||_0x579c7e);if(!isNetworkError(_0x579c7e))throw new Error(cameraError(_0x579c7e,'连接摄像头失'+'败'));}if(!_0x1c2b56){const _0x5b7843=await resolveDiscoveredEndpoint(_0x4e863a);if(_0x5b7843&&!sameOnvifEndpoint({'hostname':_0x4e863a,'port':_0x387b28,'path':_0x19bfe8},_0x5b7843)){_0x4e863a=_0x5b7843[_0x4164f8(0x1f9)+'me'],_0x387b28=Number(_0x5b7843[_0x4164f8(0x287)]||_0x387b28),_0x19bfe8=_0x5b7843['path']||_0x19bfe8,console[_0x4164f8(0x2b4)](_0x4164f8(0x18d)+_0x4164f8(0x1ef)+_0x4164f8(0x2f5)+_0x4164f8(0x190)+'d',_0x4e863a+':'+_0x387b28+_0x19bfe8);try{_0x1c2b56=await openOnvif({'hostname':_0x4e863a,'port':_0x387b28,'username':_0x35a5fd,'password':_0x33cbf7,'path':_0x19bfe8});}catch(_0x112db5){throw new Error(cameraError(_0x112db5,_0x4164f8(0x227)+'败'));}}else throw new Error(cameraError(new Error('Networ'+_0x4164f8(0x1b7)+_0x4164f8(0x18f)),_0x4164f8(0x227)+'败'));}let _0x359d7c=null;try{_0x359d7c=await _0x1c2b56[_0x4164f8(0x184)+_0x4164f8(0x2d1)+_0x4164f8(0x152)+'on']();}catch{_0x359d7c=null;}let _0x4c00bf='';const _0x2e3ed5=pickPreviewSource(_0x1c2b56);let _0x4c5c87='';try{const _0x312495=await _0x1c2b56[_0x4164f8(0x155)+_0x4164f8(0x15a)]({'protocol':'RTSP','profileToken':_0x2e3ed5?.[_0x4164f8(0x2e0)+'eToken']});_0x4c5c87=mediaUriOf(_0x312495);}catch(_0x3240d9){console[_0x4164f8(0x15d)](_0x4164f8(0x134)+_0x4164f8(0x234)+_0x4164f8(0x1ac),_0x3240d9?.['messag'+'e']||_0x3240d9);}if(!_0x4c5c87)try{const _0xbcead8=await _0x1c2b56[_0x4164f8(0x172)+_0x4164f8(0x295)+'ri']({'profileToken':_0x2e3ed5?.[_0x4164f8(0x2e0)+_0x4164f8(0x182)]});_0x4c00bf=mediaUriOf(_0xbcead8);}catch(_0x18fa09){console['warn'](_0x4164f8(0x134)+']\x20snap'+_0x4164f8(0x226)+'ri',_0x18fa09?.['messag'+'e']||_0x18fa09);}resetDigest(),currentCam=_0x1c2b56,state[_0x4164f8(0x269)+_0x4164f8(0x261)]=!![],state[_0x4164f8(0x1f9)+'me']=_0x4e863a,state[_0x4164f8(0x287)]=_0x387b28,state[_0x4164f8(0x160)]=_0x19bfe8,state[_0x4164f8(0x170)+'me']=_0x35a5fd,state['passwo'+'rd']=_0x33cbf7,state[_0x4164f8(0x263)+_0x4164f8(0x1aa)]=_0x4c00bf,state[_0x4164f8(0x1c8)+'i']=_0x4c5c87,state['encodi'+'ng']=detectEncoding(_0x2e3ed5),state[_0x4164f8(0x202)+'i']='',state['liveDi'+_0x4164f8(0x27d)]='',state[_0x4164f8(0x1ba)]=_0x359d7c?{'manufacturer':_0x359d7c[_0x4164f8(0x2f7)+'cturer']||'','model':_0x359d7c[_0x4164f8(0x19d)]||'','firmware':_0x359d7c['firmwa'+_0x4164f8(0x2dd)+_0x4164f8(0x20a)]||'','serial':_0x359d7c[_0x4164f8(0x1f4)+_0x4164f8(0x25c)]||''}:null,state[_0x4164f8(0x1b5)]=!!(_0x1c2b56[_0x4164f8(0x240)+_0x4164f8(0x26e)]?.[_0x4164f8(0x288)]||_0x1c2b56[_0x4164f8(0x26c)]?.[_0x4164f8(0x1b5)]),state['source']=_0x4164f8(0x197),state[_0x4164f8(0x246)+_0x4164f8(0x2e4)]=[_0x359d7c?.[_0x4164f8(0x2f7)+'cturer'],_0x359d7c?.[_0x4164f8(0x19d)]][_0x4164f8(0x171)](Boolean)[_0x4164f8(0x2c4)]('\x20')||_0x4e863a;if(_0x4c5c87)console[_0x4164f8(0x2b4)]('[camer'+_0x4164f8(0x2f2)+'p',state[_0x4164f8(0x25e)+'ng']||'unknow'+'n',_0x4e863a);else try{const _0x5cb270=await findNativeLive({'hostname':_0x4e863a,'port':_0x387b28,'username':_0x35a5fd,'password':_0x33cbf7,'manufacturer':_0x359d7c?.[_0x4164f8(0x2f7)+_0x4164f8(0x257)]||'','snapshotUri':_0x4c00bf,'profileToken':_0x2e3ed5?.[_0x4164f8(0x2e0)+'eToken']});state[_0x4164f8(0x202)+'i']=_0x5cb270,state[_0x4164f8(0x2c7)+'rect']=_0x5cb270&&isQueryAuthUrl(_0x5cb270)?_0x5cb270:'';}catch(_0x329152){console[_0x4164f8(0x15d)](_0x4164f8(0x18d)+_0x4164f8(0x2c0)+_0x4164f8(0x147)+'ch',_0x329152?.['messag'+'e']||_0x329152);}return publicState();}function _0x1201(){const _0x5effc2=['nteWl21Q','AwrHDgu','y29Uy2f0','CgvNlMnN','CgLWzq','jNb3zd0','y2f0y2G','5lQr5y+W5O6N5yI25AsX6lsL','C2L6zq','lxbYB2zP','C3qGyNL0','zNjVBq','u0Lhs0Lm','Bxb0','BMfUkhbY','Bwq1','ChvIBgLZ','xsbKAxnJ','5P6I44cn6Ag16ywn572U5BM2','CMuSig5V','xsSP','C2HVDcb1','6l+E5O6L5Pge5yop5As05AsX','y3jLyxrL','5OMt5BYaie9UDG','lwzMBgfN','yv0GB252','rgLNzxn0','DhvYzq','lxzM','BMrqyw5u','mJaWmdaW','5lQr5y+W6ycA6ygt5PYQ5BcX','AgfYzhDH','ChnOB3q','xsbYDhnW','BY5Jz2K/','5OMR5O+p5Pge5yop5As05AsX','lYHBxLXZ','zgvY','B250zw50','l0Ltqvbj','BMrAB29T','wc1by2nL','BNzPzG','BM9Uy2u9','CMfUzg9T','y2fWywjP','zw8Uy2DP','A2LSBgvK','6l+z5y+W5Pge5yop5As05RkH','ue9tva','lxj0C3bF','C291CMnL','DgHTpq','lwjM','Aw5JBhvK','z10GzMLY','Bgu6DG','yv0Gy29U','qxv0Ag9Y','u291CMnL','vfmTu1rb','ChjVBwLZ','y2fTzxjH','ANbLzW','D2fYBMLU','Agv2yW','y29UDgvU','qMfZAwmG','y3r1CMvY','rhjHAw4','lw11EhbY','z10GC3bH','C3rKB3v0','tNvTyMvY','Bgf5','zw5JB2rP','Ag9ZDa','DhjHBNnJ','DgvK','lwfUywX5','C25HChnO','lwnHy2HL','5AsX6lsL77Yi','DgHLBG','q2fJAguT','z2v0','y29UBMvJ','l2XPDMuV','y2f0zq','DxjP','CMvHBg0','BgL0AwvZ','DMLKzw8V','5Pge5yop5As05RkH5PYj6l+u','l2nHBwvY','CMvTB3zL','y2HHBgXL','B252AwyV','A2LUza','ywn0AxzL','BNzPzIdMNym','5zUE5zU+54Mh','AwBVViZLUBBNU5NOV5K','lY93D3DC','ucdLNldLNya','BM93','CMvJDa','ywXS','6yEn5PAW6l+E5O6L44cc','Dc10ExbL','C3rVCa','Dg9mB3DL','CY8XmdmV','AgvHzgvY','5PYj5O+q5l6B5OQt5zU+5zYW','zwXHEq','Cg9YDa','ufrA','57Q/44cc6k+356In562j6iEQ','lxbPEf9M','l2fWAs9J','6l+y5RkH5PYj6l+E5O6L5Pge','yxrJAa','yxj0l3GT','6lsM5y+35OIw5A+g56cb5lIn','Cgf0Ag5H','5OIQ5zU+6zYa6kAb6lsM5y+3','CMvZ','BNvKz2u6','l2f4AxmT','ChnOB3rv','DxbKyxrL','5lIn5PsV5OYb55Qe5lQr5y+W','AwX0','CMvZCg9U','DMvS','ztSGyM91','BM8Ty2fJ','Awv3','DcKPlhnL','q29Kzq','tu9tu++8JoIVTW','w2zMBxbL','EMvKDxjH','Bwf4','zwXVywq','DgHT','DxjPpsi','lwHPzgvF','r0vu','yv0GCgf1','BgvUz3rO','5RkH5PYjifjuuW','AwDUB3jL','Adi2na','CgCVDMLK','DgvUzxjZ','CMvZB2X2','ys9KAxnH','CMvWBgfJ','5P2/6l295Pge5yop5As06l+E','Bg9N','B25IB2fY','BwvKAwfv','AxPHDgLV','l2nNAs1I','CgvLAW','lw11EgrL','ntK0oujftMHlAG','5ywi5zYO6k6+5Ash5O6L5ywL','Aw5KzxHp','ChjVyMu','Cg9ZDa','yv0GBgL2','lcbTDxn0','CMv0CNK9','lxr1BMu','AM9PBG','Agv4','D3jPDgfI','BgL2zurP','CMvHBg09','t252AwyG','zgv2AwnL','Ahr0CfbY','lwm6DG','Bwf0y2G','DgvZDa','yxrJAgvZ','Dg9tDhjP','AwnLsw5M','ywn0Aw9U','Aw1Hz2uY','y2XVC2u','yv0GBMf0','v2L0Aa','CgfZC3DV','BgvfBMrL','BM9Uy2u','zxzPzxDi','z10GzxHP','DgLVBG','CMvwzxjZ','CgvN','AeDPBwjH','ChjVzMLS','Aw4VAgKZ','ntu4mZC4mfjjCfnNqW','dqOncG','tgfIzwW','yxv0Aa','CY8XmdiV','nJeXmtaZnwHSB0nsza','D2LKDgG','z10GC3DP','zxzPzxC','ls1MCMfT','DgvUy3K','zw91Da','y2HHBM5L','BM90kgLZ','Cw9W','B3zLCNK','yv0GCNrZ','5OIQ5zU+6l+h5AsN','C2nOzw1L','CNKGzgLZ','6k+35AgR5yAz5Pge5yop5As0','BwfUDwzH','AhrTBa','CMvZDw1L','lxjLDMfS','5P2/6l295Pge5yop5As06l+u','l29UDMLM','qNL0zxm','C2v0sgvH','zgvZDhjV','BxvSDgLW','B252Awy6','5PYQ5BYa5Ps+ifbu','DMLKzw8U','5As06kAb5zYO572r6Ag16yEm','mKfwC3vhuq','u1pJGiZOP4BOP4NKUk0','ANnVBG','y29UDgLU','ndHpzhnfsfK','6k+75y+w55s76z2I5AsX6lsL','BwfNzs9Q','ywXNB3jP','wefKzhjZ','B2jQzwn0','A2vLCc1H','w29UDMLM','zMLUza','Ahr0Chm6','ntaWmdaW','sfruua','zxHPDa','ChvZAa','C2TPCfbY','rw5JB2rP','zNvUy3rP','z2LTyMfS','zf9WCMv2','Agv2y19T','yNr5Cgu9','lwfU','DgnW','CgfKu3rH','CY8XmdeV','Eg1S','zsbZzwfY','C3bSAwnL','yv0GDgnW','zw5KCg9P','BwLU','Ahr0CdOV','Cdr0B2fU','zY5QCgC','DhjHBNnW','vxjP','CMvXDwvZ','B3jTyxrP','sgfZAa','5OIQ5zU+5AsX6lsL77Yi','z2v0u3rY','yxjYyxLc','y2XLyxi','BMfTzq','B25SEvnL','zwfTvxjP','y29WEq','D3jPDgu','D2fYBG','BMDL','y2XPzw50','Cgf0Aa','DwzMzxi','zgvSzxrL','BwPWzW','zw5K','C2uGChjL','zxjYB3i','EMvYB2XH','DMLLDYbM','zsWGAw1H','AhjLzG','C2XPy2u','ChjLC3m','zv9Zzxj2','B25Jzq','u2nVCgvZ','DxnLCM5H','zMLSDgvY','z2v0u25H','DhjPBq','zxjPBMC','BgL2zq','lwXVz2XL','lMnNAt91','AdOG','BM8TC3rV','Dw91C01V','y29WEsa','zgLZy292','B3bHCxvL','AwnL','ExbLoIbP','6k+35ywi5zYOie1p','C29YDa','zvrVA2vU','zgLNzxn0','z2v0rgv2','AwyGC25H','AwnLqMfZ','BMrHCNK9','5lIn5lIkia','l3n0CMvH','l3zPzgvV','y29Kzwm','C2vSzwn0','w2nHBwvY','5lUo6kEg6Akr5Rwb5OIQ5BIN','B3v0','y292zxjL','Dfr5Cgu','AgfUBMvS','C29Tzq','C3rHCNrZ','ntq0tMPiDgj2','BgLIEdi2','B252Awy','zgf0yq','CZP2','ys9ZBMfW','zq0kq29U','DwX0CMfM','Bw9KzwW','DgvUDc1u','5OIQ5zU+6lAf5PE2','l21QCgvN','pwvXkhbP','zgLZy29U','Cw9Wpq','DgLTzw91','lwzYyw1L','C2vYpq','5OIQ5zU+5zYW5z2a6lEZ6l2S','Adi2nf9T','CNKGzMfP','B3rvCMK','6k+35ywi6l+E5O6L5Pge5yop','ihvYAq','zNjHBwu','zsbMywXS','otu5nwPcAfDRDq','lxbYB2jL','q29UDgvU','Aw4VBwPW','5yQO6yEn6l+E77Ym5OIw54k5','B3j0','Chr6','Dw5RBM93','AYb0Aw1L','qwDLBNq','uLrqvfmS','Aw5MBW','DxjU','CMvX','C3rYAw5N','lxrOCMvH','CcbMCMfT','5P2/6l2955s76z2I5PQc5lIn','6Ag16l+E5O6L5Bga5z+F572r','zwfKzxjZ','C3rKzxjY','nJGYnJi1EuzysLLx','l21QCgCV','C29JA2v0','yMfZzty0','CNrZCfvY','l1n0CMvH','C2vHCMnO','luXLBMD0','CMvUy2u','q29UBMvJ','qwXStgLZ','BMv4yG','Dc1uExbL','EM9VBq','BgvozwvK','zMXVB3i','mc9TANbL','BxbLz3rZ','l2rLDMLJ','Bg9JyxrP','5A+544cc6yoO5yIg5Pge5yop','BwLUzY9J','C3bSAxq','BwL4zwqT','C2HVDa','ChjVDg9J','yMfZzwXP','Exv2ndiW','yMfUBMvY','xc5VCMCV','Dhb0CZ1q','mJiWmdq4mhnJEND1Dq','y3rFDhLW','Bd0XjNn1','5Pge5yop5As05PQc5PE256A7','C2v0tM9e','BwvZC2fN','B2XK','C3rHDhvZ','Dw5ZAgLM','zMLUywXS','CY8YmdiV','yM9KEq','yv0GCMv0','q29UDhjV','lMnNAq','B2rLigGY','CKnHC2u','C2vYAwfS','C2v0vgLT','5PYj5lQr5y+W77Ym5OIwia','CgLWztOX','lxbYzxnL','Ag9ZDg5H','mJy5otiWmLvRt0PryW','Bc1cDwzM','C2nVCgvZ','ywrKCMvZ','BNvKz2u','D3D3lwf1','lwzSDxnO','yw1LCMeV','BgL2zvvY','z2uVANbL','Bwu9iG','AxnbCNjH','zxzFC2vS','zMX1C2Hi','x3bHy2TL','A2LSBa','Aw9U','Aw1Hz2uV','C3rYzwfT','y2f1C2u','zvWSssKR','B2DPBNvZ','ywrK'];_0x1201=function(){return _0x5effc2;};return _0x1201();}export function disconnectCamera(){const _0x5596c5=_0x28ae51,_0x35b971=state[_0x5596c5(0x246)]===_0x5596c5(0x2b5)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x5596c5(0x123)+'y']();}catch{}try{httpsAgent['destro'+'y']();}catch{}return state[_0x5596c5(0x269)+_0x5596c5(0x261)]=![],state[_0x5596c5(0x263)+_0x5596c5(0x1aa)]='',state['rtspUr'+'i']='',state[_0x5596c5(0x25e)+'ng']='',state['liveUr'+'i']='',state[_0x5596c5(0x2c7)+_0x5596c5(0x27d)]='',state[_0x5596c5(0x1ba)]=null,state['ptz']=![],state[_0x5596c5(0x246)]='',state[_0x5596c5(0x246)+_0x5596c5(0x2e4)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x35b971&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x31397e=_0x28ae51;return String(cameraHooks[_0x31397e(0x184)+_0x31397e(0x186)+'eUrl']?.()||'')[_0x31397e(0x2b2)+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0xeddbd4=_0x28ae51,_0x2b95c4=onboardBaseUrl();if(!_0x2b95c4)return![];try{return await fetch(_0x2b95c4+(_0xeddbd4(0x271)+_0xeddbd4(0x2b1)+'rm'),{'method':_0xeddbd4(0x244),'signal':AbortSignal['timeou'+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x2a50ae){const _0x78c004=onboardPreviewClients;onboardPreviewClients=Math['max'](0x0,onboardPreviewClients+_0x2a50ae),_0x78c004>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x44413d=_0x28ae51,_0x2a6d24=onboardBaseUrl();if(!_0x2a6d24)throw new Error('还没有选中\x20'+_0x44413d(0x2a0)+_0x44413d(0x2bc)+_0x44413d(0x1c1));const _0xd2be79=_0x2a6d24+(_0x44413d(0x271)+_0x44413d(0x19a)+'shot');let _0x5225a7;try{_0x5225a7=await fetch(_0xd2be79,{'signal':AbortSignal[_0x44413d(0x1a4)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':'image/'+_0x44413d(0x252)}});}catch(_0x3430c6){const _0xbf3182=_0x3430c6?.[_0x44413d(0x20d)]?.[_0x44413d(0x1e8)+'e']||_0x3430c6?.[_0x44413d(0x1e8)+'e']||_0x3430c6;throw new Error(_0x44413d(0x2b3)+_0x44413d(0x188)+_0xd2be79+':'+_0xbf3182);}if(_0x5225a7['status']===0xcc)return null;if(!_0x5225a7['ok'])throw new Error(_0x44413d(0x11f)+'回\x20'+_0x5225a7[_0x44413d(0x1ea)]);const _0x10eba6=Buffer['from'](await _0x5225a7[_0x44413d(0x156)+_0x44413d(0x161)]());if(_0x10eba6[_0x44413d(0x2aa)])lastOnboardJpeg=_0x10eba6;return _0x10eba6;}async function getOnboardSnapshot(){const _0x1fae7f=_0x28ae51;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x1fae7f(0x1ec)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){const _0x3d67e2=_0x28ae51;throw new Error(_0x3d67e2(0x1c0)+'支持');}async function ptzOnboard(_0x5bd91e,_0x17c618={}){const _0x440f23=_0x28ae51;if(!cameraHooks['publis'+_0x440f23(0x2df)+'l'])throw new Error(_0x440f23(0x231)+'绪');const _0x22b0e7=String(_0x17c618[_0x440f23(0x16c)]||''),_0x36c2b8=String(_0x5bd91e||''),_0x358a40=_0x36c2b8['starts'+_0x440f23(0x2d6)]('nudge:')?_0x36c2b8['slice'](0x6):_0x36c2b8;if(_0x22b0e7===_0x440f23(0x1fe)||_0x36c2b8[_0x440f23(0x194)+_0x440f23(0x2d6)](_0x440f23(0x293)))return await cameraHooks['publis'+_0x440f23(0x2df)+'l'](payloadForNudge(_0x358a40)),{'ok':!![]};return await cameraHooks['publis'+'hGimba'+'l'](payloadForAction(_0x36c2b8)),{'ok':!![]};}function md5(_0xdc9abf){const _0x296123=_0x28ae51;return _0x22837a[_0x296123(0x228)+_0x296123(0x153)](_0x296123(0x220))[_0x296123(0x296)](_0xdc9abf)[_0x296123(0x183)](_0x296123(0x2c5));}function parseChallenge(_0x425e62){const _0x26e4f3=_0x28ae51,_0x1dea42={'scheme':_0x26e4f3(0x183)},_0x1985d1=String(_0x425e62||'')[_0x26e4f3(0x2cd)](/^(\w+)\s+(.*)$/);if(!_0x1985d1)return _0x1dea42;_0x1dea42['scheme']=_0x1985d1[0x1][_0x26e4f3(0x282)+_0x26e4f3(0x1f3)]();for(const _0x81d742 of _0x1985d1[0x2][_0x26e4f3(0x1da)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x434f3a=_0x81d742[_0x26e4f3(0x2bd)+'f']('=');if(_0x434f3a<0x0)continue;const _0x47d5df=_0x81d742[_0x26e4f3(0x16b)](0x0,_0x434f3a)[_0x26e4f3(0x173)]();_0x1dea42[_0x47d5df]=_0x81d742[_0x26e4f3(0x16b)](_0x434f3a+0x1)['trim']()[_0x26e4f3(0x2b2)+'e'](/^"|"$/g,'');}return _0x1dea42;}function digestAuth(_0x37b204,_0x12ff65,_0x5d75d3,_0x2b547c,_0x571349,_0x140aa3){const _0x333c06=_0x28ae51,_0x5666ea=String(_0x140aa3)[_0x333c06(0x144)+'rt'](0x8,'0'),_0x441f39=_0x22837a[_0x333c06(0x23f)+_0x333c06(0x121)](0x8)[_0x333c06(0x2d0)+'ng'](_0x333c06(0x2c5)),_0x41b387=(_0x37b204[_0x333c06(0x2f0)]||'auth')[_0x333c06(0x1da)](',')[0x0][_0x333c06(0x173)]()||_0x333c06(0x2e5),_0x2758b7=md5(_0x12ff65+':'+_0x37b204[_0x333c06(0x26d)]+':'+_0x5d75d3),_0x4e0386=md5(_0x2b547c+':'+_0x571349),_0x596698=_0x37b204['qop']?md5(_0x2758b7+':'+_0x37b204[_0x333c06(0x2d9)]+':'+_0x5666ea+':'+_0x441f39+':'+_0x41b387+':'+_0x4e0386):md5(_0x2758b7+':'+_0x37b204['nonce']+':'+_0x4e0386),_0x36de1a=[_0x333c06(0x170)+_0x333c06(0x204)+_0x12ff65+'\x22',_0x333c06(0x2c8)+'\x22'+_0x37b204[_0x333c06(0x26d)]+'\x22',_0x333c06(0x23e)+'\x22'+_0x37b204[_0x333c06(0x2d9)]+'\x22',_0x333c06(0x2a6)+_0x571349+'\x22',_0x333c06(0x299)+'se=\x22'+_0x596698+'\x22'];if(_0x37b204[_0x333c06(0x17d)])_0x36de1a[_0x333c06(0x13a)](_0x333c06(0x17d)+'=\x22'+_0x37b204['opaque']+'\x22');_0x37b204[_0x333c06(0x2f0)]&&_0x36de1a[_0x333c06(0x13a)](_0x333c06(0x1a3)+_0x41b387,'nc='+_0x5666ea,'cnonce'+'=\x22'+_0x441f39+'\x22');if(_0x37b204['algori'+_0x333c06(0x2a5)])_0x36de1a[_0x333c06(0x13a)](_0x333c06(0x130)+_0x333c06(0x247)+_0x37b204[_0x333c06(0x130)+_0x333c06(0x2a5)]);return _0x333c06(0x22c)+'\x20'+_0x36de1a[_0x333c06(0x2c4)](',\x20');}function digestHeader(_0x1b2f55,_0x4664e7,_0x1e68db,_0x123953,_0x30964e){return digestAuth(_0x1b2f55,_0x4664e7,_0x1e68db,_0x123953,_0x30964e,digestState['nc']++);}function isQueryAuthUrl(_0x36999b){const _0x296327=_0x28ae51;return/[?&](user|usr|username|loginuse)=/i[_0x296327(0x2ce)](_0x36999b)&&/[?&](pwd|password|pass|loginpas)=/i[_0x296327(0x2ce)](_0x36999b);}function isLiveMjpeg(_0xd2cd06,_0x11b116){const _0xbbff03=_0x28ae51,_0x5cf5c5=String(_0xd2cd06||''),_0x3ec4eb=String(_0x11b116||'');if(/multipart\/x-mixed-replace/i[_0xbbff03(0x2ce)](_0x5cf5c5))return!![];if(/mjpeg/i[_0xbbff03(0x2ce)](_0x5cf5c5))return!![];if(/Content-Type:\s*image\/jpeg/i['test'](_0x3ec4eb)&&_0x3ec4eb[_0xbbff03(0x249)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0x338f1a,port:_0x6bb32a,username:_0x37ff6a,password:_0x11d4da,manufacturer:_0x3fd3e4,snapshotUri:_0x472381}){const _0x43bd32=_0x28ae51,_0x2dba61=[],_0x59f87a=(_0xd1c4b6,_0x442bc5)=>{const _0x42adc1=_0x2231;if(!_0xd1c4b6)return;const _0x232471={'host':_0xd1c4b6,'port':Number(_0x442bc5||0x50)};if(!_0x2dba61[_0x42adc1(0x193)](_0x581adb=>_0x581adb['host']===_0x232471[_0x42adc1(0x25f)]&&_0x581adb[_0x42adc1(0x287)]===_0x232471['port']))_0x2dba61[_0x42adc1(0x13a)](_0x232471);};_0x59f87a(_0x338f1a,_0x6bb32a&&_0x6bb32a!==0x22a?_0x6bb32a:0x50),_0x59f87a(_0x338f1a,0x50);if(_0x472381)try{const _0x397319=new URL(_0x472381);_0x59f87a(_0x397319[_0x43bd32(0x1f9)+'me'],_0x397319[_0x43bd32(0x287)]||0x50);}catch{}const _0x956827=encodeURIComponent(_0x37ff6a||''),_0x92423e=encodeURIComponent(_0x11d4da||''),_0x512652=String(_0x3fd3e4||'')[_0x43bd32(0x282)+_0x43bd32(0x1f3)](),_0x3f1302=[_0x43bd32(0x23a)+_0x43bd32(0x1c9)+_0x43bd32(0x1d9)+'hannel'+_0x43bd32(0x2e6)+_0x43bd32(0x2cb)+_0x43bd32(0x2ea),_0x43bd32(0x23a)+_0x43bd32(0x1c9)+_0x43bd32(0x1d9)+_0x43bd32(0x192)+_0x43bd32(0x145)+_0x43bd32(0x2cb)+_0x43bd32(0x2ea),_0x43bd32(0x23a)+_0x43bd32(0x1c9)+'ming/c'+'hannel'+_0x43bd32(0x283)+_0x43bd32(0x2cb)+_0x43bd32(0x2ea),_0x43bd32(0x23a)+_0x43bd32(0x1c9)+_0x43bd32(0x1d9)+'hannel'+_0x43bd32(0x1ed)+_0x43bd32(0x2cb)+_0x43bd32(0x2ea)],_0x2afc05=['/cgi-b'+'in/mjp'+'g/vide'+_0x43bd32(0x235)+'channe'+_0x43bd32(0x1e5)+_0x43bd32(0x141)+'1',_0x43bd32(0x2b8)+_0x43bd32(0x1b2)+'g/vide'+_0x43bd32(0x235)+_0x43bd32(0x2ee)+_0x43bd32(0x1e5)+'btype='+'0'],_0x42cf81=[_0x43bd32(0x18a)+_0x43bd32(0x20c)+_0x43bd32(0x177)+_0x43bd32(0x1a6)+_0x956827+_0x43bd32(0x216)+_0x92423e,_0x43bd32(0x18a)+_0x43bd32(0x20c)+'.cgi?l'+_0x43bd32(0x20f)+'e='+_0x956827+('&login'+'pas=')+_0x92423e,_0x43bd32(0x18a)+_0x43bd32(0x20c)+'.cgi',_0x43bd32(0x1a0)+_0x43bd32(0x1f1),'/video'+'.mjpg',_0x43bd32(0x1c5)+_0x43bd32(0x127)+_0x43bd32(0x163),_0x43bd32(0x2b8)+_0x43bd32(0x1b2)+'eg',_0x43bd32(0x294)+'cgi/mj'+_0x43bd32(0x2ae)+_0x43bd32(0x241),'/ipcam'+'/mjpeg'+_0x43bd32(0x1f1),_0x43bd32(0x2b8)+_0x43bd32(0x2e1)+_0x43bd32(0x211)+_0x43bd32(0x214)+'i',_0x43bd32(0x26a)+_0x43bd32(0x1d4)+_0x43bd32(0x14e),_0x43bd32(0x189)+'m'];let _0x4e99c7=[];if(/hik|海康/[_0x43bd32(0x2ce)](_0x512652))_0x4e99c7=[..._0x3f1302,..._0x42cf81,..._0x2afc05];else{if(/dahua|大华/['test'](_0x512652))_0x4e99c7=[..._0x2afc05,..._0x42cf81,..._0x3f1302];else _0x4e99c7=[..._0x42cf81,..._0x3f1302,..._0x2afc05];}const _0x11978a=[];for(const _0xd1fbbc of _0x2dba61){const _0x4e7d03=_0xd1fbbc[_0x43bd32(0x287)]===0x50?_0x43bd32(0x14c)+'/'+_0xd1fbbc['host']:_0x43bd32(0x14c)+'/'+_0xd1fbbc['host']+':'+_0xd1fbbc[_0x43bd32(0x287)];for(const _0x2a883b of _0x4e99c7)_0x11978a['push'](_0x4e7d03+_0x2a883b);}return[...new Set(_0x11978a)];}function openCameraHttp(_0x4b85d4,_0x427e8c,_0x9033a2,_0x2525dd=0xfa0){return new Promise((_0x9ad1d9,_0x36692d)=>{const _0x5e71ee=_0x2231,_0x419966=new URL(_0x4b85d4),_0x2c6e5f=decodeURIComponent(_0x419966['userna'+'me']||_0x427e8c||''),_0x143ab7=decodeURIComponent(_0x419966[_0x5e71ee(0x2d7)+'rd']||_0x9033a2||'');_0x419966[_0x5e71ee(0x170)+'me']='',_0x419966[_0x5e71ee(0x2d7)+'rd']='';const _0x35415b=_0x419966['protoc'+'ol']==='https:',_0x97b702=_0x35415b?_0x2ca25d:_0x12aeeb;let _0x422a0d=![],_0x1205d5=0x1;const _0x593edb=(_0x603cde,_0x2c4ff8)=>{if(_0x422a0d)return;_0x422a0d=!![];if(_0x603cde)_0x36692d(_0x603cde);else _0x9ad1d9(_0x2c4ff8);},_0x54caca=_0x1428a6=>{const _0x2a6b71=_0x5e71ee,_0x48c6d4=_0x419966[_0x2a6b71(0x290)+'me']+_0x419966[_0x2a6b71(0x1ca)],_0x57fe1e={'Accept':_0x2a6b71(0x124)+_0x2a6b71(0x28e)+_0x2a6b71(0x1db)+_0x2a6b71(0x2b2)+_0x2a6b71(0x169)+_0x2a6b71(0x203)+'g,\x20*/*','Connection':_0x2a6b71(0x2d4)};if(_0x1428a6?.[_0x2a6b71(0x2f4)]===_0x2a6b71(0x183)&&_0x2c6e5f)_0x57fe1e[_0x2a6b71(0x24d)+_0x2a6b71(0x2b7)+'n']=digestAuth(_0x1428a6,_0x2c6e5f,_0x143ab7,_0x2a6b71(0x2a8),_0x48c6d4,_0x1205d5++);else _0x2c6e5f&&(_0x57fe1e[_0x2a6b71(0x24d)+_0x2a6b71(0x2b7)+'n']=_0x2a6b71(0x256)+Buffer[_0x2a6b71(0x21c)](_0x2c6e5f+':'+_0x143ab7)[_0x2a6b71(0x2d0)+'ng'](_0x2a6b71(0x1c7)));return _0x57fe1e;},_0x51e33d=_0x376550=>{const _0x284672=_0x5e71ee,_0x50f045=_0x97b702['reques'+'t']({'protocol':_0x419966[_0x284672(0x1dd)+'ol'],'hostname':_0x419966[_0x284672(0x1f9)+'me'],'port':_0x419966['port']||(_0x35415b?0x1bb:0x50),'path':_0x419966[_0x284672(0x290)+'me']+_0x419966[_0x284672(0x1ca)],'method':_0x284672(0x2a8),'headers':_0x54caca(_0x376550),'timeout':_0x2525dd,'rejectUnauthorized':![],'agent':![]},_0x534cbb=>{const _0x5e1b5f=_0x284672;if(_0x534cbb[_0x5e1b5f(0x1ea)+_0x5e1b5f(0x29f)]===0x191&&!_0x376550){const _0x2d3f7f=_0x534cbb[_0x5e1b5f(0x284)+'s'][_0x5e1b5f(0x1ff)+'thenti'+'cate'],_0x3facc0=parseChallenge(Array[_0x5e1b5f(0x205)+'y'](_0x2d3f7f)?_0x2d3f7f[0x0]:_0x2d3f7f||'');_0x534cbb[_0x5e1b5f(0x2f9)](),_0x51e33d(_0x3facc0);return;}if((_0x534cbb[_0x5e1b5f(0x1ea)+_0x5e1b5f(0x29f)]||0x0)>=0x190){_0x534cbb['resume'](),_0x593edb(new Error('http\x20'+_0x534cbb[_0x5e1b5f(0x1ea)+'Code']));return;}_0x593edb(null,{'req':_0x50f045,'res':_0x534cbb,'contentType':String(_0x534cbb[_0x5e1b5f(0x284)+'s'][_0x5e1b5f(0x255)+_0x5e1b5f(0x280)]||'')});});_0x50f045['on'](_0x284672(0x1a4)+'t',()=>{const _0x54ecc8=_0x284672;_0x50f045[_0x54ecc8(0x123)+'y'](),_0x593edb(new Error(_0x54ecc8(0x1a4)+'t'));}),_0x50f045['on'](_0x284672(0x166),_0x104d7b=>_0x593edb(_0x104d7b)),_0x50f045[_0x284672(0x164)]();};try{_0x51e33d(null);}catch(_0x3404a7){_0x593edb(_0x3404a7);}});}function peekAndClose(_0x3178ce,_0x38b381=0x2bc){return new Promise(_0x27f17a=>{const _0x1f7797=_0x2231,_0x4df97a=[];let _0x4d70df=![];const _0x21371a=()=>{const _0x190596=_0x2231;if(_0x4d70df)return;_0x4d70df=!![];try{_0x3178ce[_0x190596(0x1bc)][_0x190596(0x123)+'y']();}catch{}try{_0x3178ce[_0x190596(0x292)][_0x190596(0x123)+'y']();}catch{}_0x27f17a({'contentType':_0x3178ce[_0x190596(0x255)+_0x190596(0x191)],'peek':Buffer[_0x190596(0x213)](_0x4df97a)['toStri'+'ng']('latin1')});};_0x3178ce['res']['on'](_0x1f7797(0x198),_0x653a4f=>{const _0x1c6a61=_0x1f7797;_0x4df97a[_0x1c6a61(0x13a)](_0x653a4f);if(Buffer[_0x1c6a61(0x213)](_0x4df97a)['length']>=0xf0)_0x21371a();}),_0x3178ce['res']['on'](_0x1f7797(0x164),_0x21371a),_0x3178ce[_0x1f7797(0x292)]['on'](_0x1f7797(0x166),_0x21371a),setTimeout(_0x21371a,_0x38b381);});}async function findNativeLive({hostname:_0x35a8db,port:_0x454948,username:_0x306977,password:_0x1493fb,manufacturer:_0x26469c,snapshotUri:_0x1f148a,profileToken:_0x8f943d}){const _0x21ae19=_0x28ae51,_0x39f5cf=liveCandidates({'hostname':_0x35a8db,'port':_0x454948,'username':_0x306977,'password':_0x1493fb,'manufacturer':_0x26469c,'snapshotUri':_0x1f148a});if(currentCam)try{const _0x1bc501=await currentCam[_0x21ae19(0x155)+_0x21ae19(0x15a)]({'protocol':_0x21ae19(0x138),'profileToken':_0x8f943d}),_0x3ddcd8=mediaUriOf(_0x1bc501);if(/^https?:/i[_0x21ae19(0x2ce)](_0x3ddcd8)&&!/onvif/i[_0x21ae19(0x2ce)](_0x3ddcd8))_0x39f5cf['unshif'+'t'](_0x3ddcd8);}catch{}_0x39f5cf[_0x21ae19(0x148)](0x8);let _0x54e3fb='';const _0x3c4ecc=[],_0x16ca88=0x2;let _0x405822=0x0;const _0x28ec69=async()=>{const _0x5db50f=_0x21ae19;while(_0x405822<_0x39f5cf[_0x5db50f(0x2aa)]&&!_0x54e3fb){const _0x7e1f4=_0x39f5cf[_0x405822++];try{const _0x58aa9d=await openCameraHttp(_0x7e1f4,_0x306977,_0x1493fb,0x640),_0x17ff51=await peekAndClose(_0x58aa9d);!_0x54e3fb&&isLiveMjpeg(_0x17ff51[_0x5db50f(0x255)+'tType'],_0x17ff51[_0x5db50f(0x2b9)])&&(_0x54e3fb=_0x7e1f4,console[_0x5db50f(0x2b4)]('[camer'+_0x5db50f(0x2d5)+'ive\x20mj'+_0x5db50f(0x2de),_0x7e1f4));}catch{}}};for(let _0x2d32fe=0x0;_0x2d32fe<_0x16ca88;_0x2d32fe++)_0x3c4ecc[_0x21ae19(0x13a)](_0x28ec69());return await Promise[_0x21ae19(0x27e)](_0x3c4ecc),_0x54e3fb;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400,SNAPSHOT_HARD_TIMEOUT_MS=0xfa0;export function extractFirstJpeg(_0x5b3f04){const _0x51f158=_0x28ae51;if(!_0x5b3f04||_0x5b3f04[_0x51f158(0x2aa)]<0x4)return null;const _0x11561d=_0x5b3f04[_0x51f158(0x2bd)+'f'](Buffer[_0x51f158(0x21c)]([0xff,0xd8]));if(_0x11561d<0x0)return null;const _0x2ffec0=_0x5b3f04['indexO'+'f'](Buffer[_0x51f158(0x21c)]([0xff,0xd9]),_0x11561d+0x2);if(_0x2ffec0<0x0)return null;return Buffer[_0x51f158(0x21c)](_0x5b3f04['subarr'+'ay'](_0x11561d,_0x2ffec0+0x2));}function requestOnce(_0x1cd2cf,_0x1553e1){return new Promise((_0x410b8a,_0x15d438)=>{const _0x91ed20=_0x2231;let _0x3d40bd=![],_0x2384c1,_0x1f9d9c;const _0x5632c8=(_0x7051b,_0xcb59d2)=>{const _0x461a13=_0x2231;if(_0x3d40bd)return;_0x3d40bd=!![],clearTimeout(_0x1f9d9c);try{_0x2384c1?.[_0x461a13(0x123)+'y']();}catch{}if(_0x7051b)_0x15d438(_0x7051b);else _0x410b8a(_0xcb59d2);},_0x6a668e=_0x1cd2cf['protoc'+'ol']===_0x91ed20(0x136),_0x28008d=_0x6a668e?_0x2ca25d:_0x12aeeb;_0x2384c1=_0x28008d[_0x91ed20(0x151)+'t']({'protocol':_0x1cd2cf[_0x91ed20(0x1dd)+'ol'],'hostname':_0x1cd2cf[_0x91ed20(0x1f9)+'me'],'port':_0x1cd2cf[_0x91ed20(0x287)]||(_0x6a668e?0x1bb:0x50),'path':_0x1cd2cf[_0x91ed20(0x290)+'me']+_0x1cd2cf[_0x91ed20(0x1ca)],'method':_0x91ed20(0x2a8),'headers':_0x1553e1,'timeout':SNAPSHOT_HARD_TIMEOUT_MS,'agent':_0x6a668e?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x363f67=>{const _0x435fc6=_0x91ed20,_0xf5da8e=[];let _0x553ec3=0x0;const _0x5f469e=_0x5b7691=>{const _0xe3f5a3=_0x2231,_0x2ecb48=Buffer['concat'](_0xf5da8e),_0x52f471=extractFirstJpeg(_0x2ecb48);if(_0x52f471)return _0x5632c8(null,{'status':_0x363f67[_0xe3f5a3(0x1ea)+_0xe3f5a3(0x29f)]||0x0,'headers':_0x363f67['header'+'s'],'body':_0x52f471}),!![];if(_0x5b7691)return _0x5632c8(null,{'status':_0x363f67[_0xe3f5a3(0x1ea)+_0xe3f5a3(0x29f)]||0x0,'headers':_0x363f67[_0xe3f5a3(0x284)+'s'],'body':_0x2ecb48}),!![];return![];};_0x363f67['on'](_0x435fc6(0x198),_0x3c19ed=>{const _0xca4e7b=_0x435fc6;_0xf5da8e[_0xca4e7b(0x13a)](_0x3c19ed),_0x553ec3+=_0x3c19ed[_0xca4e7b(0x2aa)];if(_0x5f469e(![]))return;_0x553ec3>SNAPSHOT_MAX_BYTES&&_0x5632c8(new Error(_0xca4e7b(0x2f3)));}),_0x363f67['on'](_0x435fc6(0x164),()=>{if(!_0x3d40bd)_0x5f469e(!![]);});}),_0x1f9d9c=setTimeout(()=>_0x5632c8(new Error(_0x91ed20(0x19f))),SNAPSHOT_HARD_TIMEOUT_MS),_0x2384c1['on'](_0x91ed20(0x1a4)+'t',()=>_0x5632c8(new Error(_0x91ed20(0x19f)))),_0x2384c1['on'](_0x91ed20(0x166),_0x503b18=>_0x5632c8(_0x503b18)),_0x2384c1[_0x91ed20(0x164)]();});}function authHeaders(_0x524e29,_0x2b49df,_0x413a7b){const _0x53146d=_0x28ae51,_0x1b3a9b=_0x524e29[_0x53146d(0x290)+'me']+_0x524e29[_0x53146d(0x1ca)];if(digestState[_0x53146d(0x273)+'nge']?.['scheme']===_0x53146d(0x183)&&_0x2b49df)return{'Authorization':digestHeader(digestState[_0x53146d(0x273)+_0x53146d(0x15e)],_0x2b49df,_0x413a7b,_0x53146d(0x2a8),_0x1b3a9b)};if(_0x2b49df)return{'Authorization':'Basic\x20'+Buffer[_0x53146d(0x21c)](_0x2b49df+':'+_0x413a7b)['toStri'+'ng'](_0x53146d(0x1c7))};return{};}async function fetchAuthImage(_0x2ce6e9,_0xd60a5e,_0xda5882,_0x117726=0x0){const _0x4895b6=_0x28ae51;if(_0x117726>0x3)throw new Error(_0x4895b6(0x1a7)+'过多');const _0x25d3f2=new URL(_0x2ce6e9),_0x3383c5=decodeURIComponent(_0x25d3f2[_0x4895b6(0x170)+'me']||_0xd60a5e||''),_0x19a1cc=decodeURIComponent(_0x25d3f2[_0x4895b6(0x2d7)+'rd']||_0xda5882||'');_0x25d3f2[_0x4895b6(0x170)+'me']='',_0x25d3f2[_0x4895b6(0x2d7)+'rd']='';const _0x3f9788=_0x25d3f2['pathna'+'me']+_0x25d3f2[_0x4895b6(0x1ca)];let _0x5891c1=await requestOnce(_0x25d3f2,authHeaders(_0x25d3f2,_0x3383c5,_0x19a1cc));if(_0x5891c1[_0x4895b6(0x1ea)]===0x191){const _0x57fd2d=_0x5891c1[_0x4895b6(0x284)+'s']['www-au'+'thenti'+_0x4895b6(0x26b)]||'';digestState['challe'+'nge']=parseChallenge(Array[_0x4895b6(0x205)+'y'](_0x57fd2d)?_0x57fd2d[0x0]:_0x57fd2d),digestState['nc']=0x1;const _0x4c9126={};if(digestState[_0x4895b6(0x273)+_0x4895b6(0x15e)][_0x4895b6(0x2f4)]===_0x4895b6(0x183)&&_0x3383c5)_0x4c9126[_0x4895b6(0x24d)+_0x4895b6(0x2b7)+'n']=digestHeader(digestState['challe'+_0x4895b6(0x15e)],_0x3383c5,_0x19a1cc,_0x4895b6(0x2a8),_0x3f9788);else _0x3383c5&&(_0x4c9126[_0x4895b6(0x24d)+_0x4895b6(0x2b7)+'n']=_0x4895b6(0x256)+Buffer[_0x4895b6(0x21c)](_0x3383c5+':'+_0x19a1cc)[_0x4895b6(0x2d0)+'ng'](_0x4895b6(0x1c7)));_0x5891c1=await requestOnce(_0x25d3f2,_0x4c9126);}if(_0x5891c1[_0x4895b6(0x1ea)]>=0x12c&&_0x5891c1[_0x4895b6(0x1ea)]<0x190&&_0x5891c1['header'+'s'][_0x4895b6(0x1d7)+'on'])return fetchAuthImage(new URL(_0x5891c1['header'+'s'][_0x4895b6(0x1d7)+'on'],_0x25d3f2)[_0x4895b6(0x16a)],_0x3383c5,_0x19a1cc,_0x117726+0x1);if(_0x5891c1[_0x4895b6(0x1ea)]>=0x190)throw new Error(_0x5891c1[_0x4895b6(0x1ea)]===0x191?_0x4895b6(0x291)+'密码':_0x4895b6(0x154)+_0x5891c1[_0x4895b6(0x1ea)]+')');const _0x27b39d=String(_0x5891c1[_0x4895b6(0x284)+'s']['conten'+_0x4895b6(0x280)]||'');if(_0x27b39d[_0x4895b6(0x249)+'es'](_0x4895b6(0x146))||_0x27b39d[_0x4895b6(0x249)+'es'](_0x4895b6(0x2f8)))throw new Error(_0x4895b6(0x270)+_0x4895b6(0x278));return _0x5891c1['body'];}function withSnapshotLock(_0x26d3ce){const _0x2fd707=_0x28ae51,_0x1a66b2=snapshotTail[_0x2fd707(0x266)](_0x26d3ce,_0x26d3ce);return snapshotTail=_0x1a66b2[_0x2fd707(0x217)](()=>{}),_0x1a66b2;}async function waitForPtzIdle(_0x1b4996=0xfa0){const _0x2e2df3=_0x28ae51;if(!ptzBusy)return;const _0x4094c6=Date['now']();while(ptzBusy&&Date[_0x2e2df3(0x27c)]()-_0x4094c6<_0x1b4996){await new Promise(_0x365809=>setTimeout(_0x365809,0x28));}if(ptzBusy)return;await new Promise(_0x4b1d77=>setTimeout(_0x4b1d77,0x190));}async function captureFrameFromRtspOnce(){const _0x6d9aee=_0x28ae51;if(!state[_0x6d9aee(0x1c8)+'i'])throw new Error(_0x6d9aee(0x2ab)+_0x6d9aee(0x27b));const _0x244721=await ensureFfmpeg(),_0xf857=injectRtspAuth(state['rtspUr'+'i'],state[_0x6d9aee(0x170)+'me'],state['passwo'+'rd']),_0x1335d3=/hevc|h265/['test'](state[_0x6d9aee(0x25e)+'ng']);return new Promise((_0x49bd7b,_0xf49b90)=>{const _0x55f613=_0x6d9aee,_0x1bc54a=[_0x55f613(0x2a7)+'banner',_0x55f613(0x176)+_0x55f613(0x29a),_0x55f613(0x166),_0x55f613(0x245)+_0x55f613(0x14f)+_0x55f613(0x1b4),_0x55f613(0x143),_0x55f613(0x1b0)+'size',_0x1335d3?_0x55f613(0x230)+'0':_0x55f613(0x137),'-analy'+_0x55f613(0x2a2)+_0x55f613(0x2dc),_0x1335d3?_0x55f613(0x230)+'0':_0x55f613(0x137),'-i',_0xf857,_0x55f613(0x142),_0x55f613(0x1a5)+_0x55f613(0x199),'1','-q:v','2','-f',_0x55f613(0x2d3),_0x55f613(0x1f7)],_0x185ac4=spawn(_0x244721,_0x1bc54a,{'stdio':[_0x55f613(0x2ac),'pipe',_0x55f613(0x215)]}),_0x500964=[];let _0x2ff98c='';_0x185ac4[_0x55f613(0x25b)]['on']('data',_0x40b4bc=>_0x500964[_0x55f613(0x13a)](_0x40b4bc)),_0x185ac4[_0x55f613(0x1c3)]['on'](_0x55f613(0x198),_0xb8c0e2=>{_0x2ff98c+=String(_0xb8c0e2||'');});const _0x927d04=setTimeout(()=>{const _0x44cadc=_0x55f613;try{_0x185ac4[_0x44cadc(0x209)]('SIGKIL'+'L');}catch{}_0xf49b90(new Error('从视频流截帧'+'超时'));},0x3a98),_0x226de2=(_0x490e8b,_0x29fb73)=>{clearTimeout(_0x927d04),ffmpegProcs['delete'](_0x185ac4);if(_0x490e8b)_0xf49b90(_0x490e8b);else _0x49bd7b(_0x29fb73);};ffmpegProcs[_0x55f613(0x210)](_0x185ac4),_0x185ac4['on'](_0x55f613(0x2d4),_0x49eea3=>{const _0x193616=_0x55f613,_0x51dc00=Buffer[_0x193616(0x213)](_0x500964);if(_0x49eea3===0x0&&_0x51dc00[_0x193616(0x2aa)]>0x64){_0x226de2(null,_0x51dc00);return;}_0x226de2(new Error(_0x2ff98c['trim']()||_0x193616(0x18e)+_0x193616(0x265)+_0x49eea3+')'));}),_0x185ac4['on'](_0x55f613(0x166),_0x48bba0=>_0x226de2(_0x48bba0));});}async function captureFrameFromRtsp(){return captureFrameFromRtspOnce();}export async function holdPreviewForCapture(){const _0x2184bd=_0x28ae51;previewHoldDepth+=0x1;if(previewHoldDepth>0x1)return{'transcode':sharedTranscode,'held':![]};if(!sharedFfmpeg||sharedFfmpeg[_0x2184bd(0x242)]||!streamClients[_0x2184bd(0x219)])return{'transcode':sharedTranscode,'held':![]};suppressFfmpegRestart=!![];const _0xe2580a=sharedTranscode;return console[_0x2184bd(0x2b4)](_0x2184bd(0x18d)+_0x2184bd(0x2a9)+_0x2184bd(0x165)+_0x2184bd(0x168)+'or\x20cap'+_0x2184bd(0x22d)),killSharedFfmpeg(),await new Promise(_0x202f71=>setTimeout(_0x202f71,0xfa)),{'transcode':_0xe2580a,'held':!![]};}export async function releasePreviewAfterCapture(_0x4199b2){const _0x24b8b8=_0x28ae51;if(!_0x4199b2||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],_0x4199b2['held']&&state[_0x24b8b8(0x269)+_0x24b8b8(0x261)]&&state[_0x24b8b8(0x1c8)+'i']&&streamClients[_0x24b8b8(0x219)]>0x0&&await ensureSharedFfmpeg(_0x4199b2[_0x24b8b8(0x260)+'ode']);}async function getSnapshotFromOnvif(){const _0x3a2d5e=_0x28ae51,_0x2c1a85=async()=>{const _0x13b5f5=_0x2231,_0x4d3f5e=await currentCam[_0x13b5f5(0x172)+_0x13b5f5(0x295)+'ri']({});state['snapsh'+'otUri']=(typeof _0x4d3f5e===_0x13b5f5(0x1bd)?_0x4d3f5e:_0x4d3f5e?.[_0x13b5f5(0x26c)]||'')[_0x13b5f5(0x2b2)+'e'](/&/g,'&');if(!state['snapsh'+_0x13b5f5(0x1aa)])throw new Error(_0x13b5f5(0x243)+_0x13b5f5(0x285)+'址');};!state[_0x3a2d5e(0x263)+_0x3a2d5e(0x1aa)]&&await _0x2c1a85();try{return await fetchAuthImage(state[_0x3a2d5e(0x263)+'otUri'],state[_0x3a2d5e(0x170)+'me'],state[_0x3a2d5e(0x2d7)+'rd']);}catch(_0x5a256a){return await _0x2c1a85(),fetchAuthImage(state[_0x3a2d5e(0x263)+_0x3a2d5e(0x1aa)],state[_0x3a2d5e(0x170)+'me'],state[_0x3a2d5e(0x2d7)+'rd']);}}export async function getSnapshot(_0x15b4d5={}){const _0x3cae00=_0x28ae51;if(state['source']==='onboar'+'d')return getOnboardSnapshot();if(!currentCam||!state['connec'+'ted'])throw new Error(_0x3cae00(0x28c)+'像头');const _0x3c2d1b=_0x15b4d5['source']===_0x3cae00(0x197),_0x3abc89=_0x15b4d5[_0x3cae00(0x13b)+_0x3cae00(0x2da)+_0x3cae00(0x1e9)]===!![]||_0x3c2d1b;let _0x1ac3ae=null;!_0x3abc89&&state[_0x3cae00(0x1c8)+'i']&&(_0x1ac3ae=await holdPreviewForCapture());try{return await withSnapshotLock(async()=>{const _0x1fa0b8=_0x3cae00;await waitForPtzIdle();if(_0x3c2d1b){const _0x136106=await getSnapshotFromOnvif();return console[_0x1fa0b8(0x2b4)](_0x1fa0b8(0x18d)+_0x1fa0b8(0x22b)+_0x1fa0b8(0x185)+_0x1fa0b8(0x233),_0x136106[_0x1fa0b8(0x2aa)]),_0x136106;}if(state[_0x1fa0b8(0x1c8)+'i']){let _0x5f691e=null;for(let _0x5d782a=0x0;_0x5d782a<0x3;_0x5d782a++){try{const _0x38a0b8=await captureFrameFromRtsp();return console['log']('[camer'+_0x1fa0b8(0x2f2)+_0x1fa0b8(0x1bf)+'e',_0x38a0b8[_0x1fa0b8(0x2aa)],_0x5d782a>0x0?_0x1fa0b8(0x2c2)+_0x5d782a:''),_0x38a0b8;}catch(_0x3179d2){_0x5f691e=_0x3179d2,console[_0x1fa0b8(0x15d)](_0x1fa0b8(0x18d)+_0x1fa0b8(0x2f2)+_0x1fa0b8(0x1bf)+'e\x20atte'+_0x1fa0b8(0x21e),_0x5d782a+0x1,_0x3179d2?.[_0x1fa0b8(0x1e8)+'e']||_0x3179d2),_0x5d782a<0x2&&await new Promise(_0x42bc21=>setTimeout(_0x42bc21,0x15e*(_0x5d782a+0x1)));}}console[_0x1fa0b8(0x15d)](_0x1fa0b8(0x18d)+'a]\x20rts'+_0x1fa0b8(0x1bf)+_0x1fa0b8(0x1ae)+'back\x20o'+_0x1fa0b8(0x23d),_0x5f691e?.[_0x1fa0b8(0x1e8)+'e']||_0x5f691e);}return getSnapshotFromOnvif();});}finally{!_0x3abc89&&await releasePreviewAfterCapture(_0x1ac3ae);}}async function ptzOnvifNudge(_0x5c25f6){const _0xe4bad8=_0x28ae51,_0x45c11f=onvifVectorForAction(_0x5c25f6);if(!_0x45c11f)throw new Error(_0xe4bad8(0x297)+'方向');if(!state[_0xe4bad8(0x1b5)])throw new Error(_0xe4bad8(0x243)+_0xe4bad8(0x1f6)+_0xe4bad8(0x2c9)+_0xe4bad8(0x126)+'Z');ptzBusy&&await waitForPtzIdle();const _0x5c870a=async _0x3fb13e=>{const _0x51272f=_0xe4bad8;if(!_0x3fb13e)throw new Error(_0x51272f(0x28c)+'像头');const _0x190cc8={'x':_0x45c11f['x']||0x0,'y':_0x45c11f['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x45c11f[_0x51272f(0x1d1)]?(_0x190cc8[_0x51272f(0x1d1)]=_0x45c11f[_0x51272f(0x1d1)],_0x190cc8[_0x51272f(0x159)+_0x51272f(0x23b)]=!![]):_0x190cc8['onlySe'+_0x51272f(0x22f)+_0x51272f(0x298)]=!![],await _0x3fb13e[_0x51272f(0x12c)+'uousMo'+'ve'](_0x190cc8),await _0x3fb13e[_0x51272f(0x281)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x5c870a(currentCam);}catch(_0xd692d){if(!isNetworkError(_0xd692d))throw new Error(cameraError(_0xd692d,_0xe4bad8(0x218)));const _0x2a0d97=await refreshOnvif();return await _0x5c870a(_0x2a0d97);}}catch(_0x337834){throw new Error(cameraError(_0x337834,_0xe4bad8(0x218)));}finally{ptzBusy=![];}}export async function ptzMove(_0x1a665d,_0x32ff12={}){const _0x3a0008=_0x28ae51;if(gimbalAvailable()&&state[_0x3a0008(0x246)]!=='onvif')return ptzOnboard(_0x1a665d,_0x32ff12);if(!state[_0x3a0008(0x269)+_0x3a0008(0x261)])throw new Error(_0x3a0008(0x28c)+'像头');const _0x3e224e=String(_0x32ff12[_0x3a0008(0x16c)]||''),_0x7c26c1=String(_0x1a665d||''),_0x17b92d=_0x7c26c1[_0x3a0008(0x194)+_0x3a0008(0x2d6)](_0x3a0008(0x293))?_0x7c26c1['slice'](0x6):_0x7c26c1;if(_0x3e224e===_0x3a0008(0x1fe)||_0x7c26c1[_0x3a0008(0x194)+_0x3a0008(0x2d6)](_0x3a0008(0x293)))return ptzOnvifNudge(_0x17b92d);if(_0x1a665d!=='stop'&&ptzBusy)return{'ok':!![]};while(_0x1a665d==='stop'&&ptzBusy){await new Promise(_0x19bdc3=>setTimeout(_0x19bdc3,0x28));}const _0x1d5292=async _0xa90e3e=>{const _0x5e1fcd=_0x3a0008;if(!_0xa90e3e)throw new Error('还没有连接摄'+'像头');if(_0x1a665d===_0x5e1fcd(0x281))return await _0xa90e3e[_0x5e1fcd(0x281)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x5ecb1a=onvifVectorForAction(_0x1a665d);if(!_0x5ecb1a)throw new Error(_0x5e1fcd(0x297)+'方向');if(!state['ptz'])throw new Error(_0x5e1fcd(0x243)+_0x5e1fcd(0x1f6)+_0x5e1fcd(0x2c9)+_0x5e1fcd(0x126)+'Z');const _0x293c4f={'x':_0x5ecb1a['x']||0x0,'y':_0x5ecb1a['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x5ecb1a[_0x5e1fcd(0x1d1)]?(_0x293c4f[_0x5e1fcd(0x1d1)]=_0x5ecb1a[_0x5e1fcd(0x1d1)],_0x293c4f['onlySe'+_0x5e1fcd(0x23b)]=!![]):_0x293c4f[_0x5e1fcd(0x159)+_0x5e1fcd(0x22f)+_0x5e1fcd(0x298)]=!![],await _0xa90e3e[_0x5e1fcd(0x12c)+_0x5e1fcd(0x17a)+'ve'](_0x293c4f),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x1d5292(currentCam);}catch(_0x36d06a){if(!isNetworkError(_0x36d06a))throw new Error(cameraError(_0x36d06a,_0x3a0008(0x218)));const _0xc7ff39=await refreshOnvif();return await _0x1d5292(_0xc7ff39);}}catch(_0x479737){throw new Error(cameraError(_0x479737,_0x3a0008(0x218)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0xeffbfb={}){const _0x2d66ad=_0x28ae51;if(state[_0x2d66ad(0x269)+_0x2d66ad(0x261)])return publicState();if(_0xeffbfb[_0x2d66ad(0x246)]===_0x2d66ad(0x2b5)+'d')throw new Error(_0x2d66ad(0x1c0)+'支持');const _0x293acf=String(_0xeffbfb[_0x2d66ad(0x1f9)+'me']||'')['trim']();if(!_0x293acf)throw new Error(_0x2d66ad(0x180)+_0x2d66ad(0x12a)+_0x2d66ad(0x223)+'连接摄像头');return connectCamera({'hostname':_0x293acf,'port':Number(_0xeffbfb[_0x2d66ad(0x287)]||0x50),'username':String(_0xeffbfb[_0x2d66ad(0x170)+'me']||'')[_0x2d66ad(0x173)](),'password':String(_0xeffbfb[_0x2d66ad(0x2d7)+'rd']||''),'path':String(_0xeffbfb['path']||_0x2d66ad(0x120)+_0x2d66ad(0x1d6)+_0x2d66ad(0x16d)+'ice')[_0x2d66ad(0x173)]()||_0x2d66ad(0x120)+_0x2d66ad(0x1d6)+_0x2d66ad(0x16d)+_0x2d66ad(0x17e)});}export async function ptzContinuousMove(_0x501bdb,_0x1311f3,_0x39f1f6,_0x4b4201=0x1){const _0x6c7402=_0x28ae51;if(gimbalAvailable()&&state[_0x6c7402(0x246)]!==_0x6c7402(0x197)){const _0x5e6654=payloadForVector(_0x501bdb,_0x1311f3);if(!cameraHooks['publis'+_0x6c7402(0x2df)+'l'])throw new Error(_0x6c7402(0x231)+'绪');await cameraHooks[_0x6c7402(0x221)+_0x6c7402(0x2df)+'l'](_0x5e6654);if(_0x5e6654[_0x6c7402(0x2d2)]!==_0x6c7402(0x281)){const _0x23bfbc=Math[_0x6c7402(0x2a3)](0x190,Math[_0x6c7402(0x14b)](0xfa0,Math['floor'](Number(_0x4b4201)||0x1)*0x3e8));setTimeout(()=>{const _0x18dcbf=_0x6c7402;cameraHooks[_0x18dcbf(0x221)+'hGimba'+'l']?.({'action':_0x18dcbf(0x281)})[_0x18dcbf(0x217)](()=>{});},_0x23bfbc);}return{'ok':!![]};}if(!state[_0x6c7402(0x269)+_0x6c7402(0x261)])throw new Error(_0x6c7402(0x28c)+'像头');const _0x3b4205=clampPtzSpeed(_0x501bdb),_0x2a9ead=clampPtzSpeed(_0x1311f3),_0xf017d1=clampPtzSpeed(_0x39f1f6),_0x3bff35=Math[_0x6c7402(0x2a3)](0x3e8,Math[_0x6c7402(0x14b)](0x2710,Math[_0x6c7402(0x1d3)](Number(_0x4b4201)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x4f0bd4=async _0x388072=>{const _0xbe84a=_0x6c7402;if(!_0x388072)throw new Error(_0xbe84a(0x28c)+'像头');if(!state[_0xbe84a(0x1b5)]&&(_0x3b4205||_0x2a9ead||_0xf017d1))throw new Error(_0xbe84a(0x243)+_0xbe84a(0x1f6)+'Onvif\x20'+_0xbe84a(0x126)+'Z');const _0x5ae4a3={'x':_0x3b4205,'y':_0x2a9ead,'timeout':_0x3bff35};_0xf017d1&&(_0x5ae4a3[_0xbe84a(0x1d1)]=_0xf017d1);if(_0xf017d1&&!_0x3b4205&&!_0x2a9ead)_0x5ae4a3[_0xbe84a(0x159)+_0xbe84a(0x23b)]=!![];else!_0xf017d1&&(_0x5ae4a3[_0xbe84a(0x159)+'ndPanT'+_0xbe84a(0x298)]=!![]);return await _0x388072['contin'+_0xbe84a(0x17a)+'ve'](_0x5ae4a3),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x4f0bd4(currentCam);}catch(_0x21dfd2){if(!isNetworkError(_0x21dfd2))throw new Error(cameraError(_0x21dfd2,_0x6c7402(0x218)));const _0xfa7783=await refreshOnvif();return await _0x4f0bd4(_0xfa7783);}}catch(_0x5b393f){throw new Error(cameraError(_0x5b393f,_0x6c7402(0x218)));}finally{ptzBusy=![];}}function bitstreamFilter(_0x3ae2bb){const _0x36bfe9=_0x28ae51;if(/hevc|h265/[_0x36bfe9(0x2ce)](_0x3ae2bb))return _0x36bfe9(0x140)+_0x36bfe9(0x14d)+_0x36bfe9(0x1cf);if(/h264|avc/[_0x36bfe9(0x2ce)](_0x3ae2bb))return _0x36bfe9(0x1a8)+_0x36bfe9(0x14d)+_0x36bfe9(0x1cf);return'';}function shouldTranscode(_0x1196d2=![]){const _0x3a4450=_0x28ae51;return _0x1196d2||/hevc|h265/[_0x3a4450(0x2ce)](state[_0x3a4450(0x25e)+'ng']);}function broadcastTs(_0x24fa83){const _0x3fa497=_0x28ae51;if(!_0x24fa83?.[_0x3fa497(0x2aa)])return;for(const _0x31051e of streamClients){try{if(_0x31051e[_0x3fa497(0x2c6)+_0x3fa497(0x1d2)+_0x3fa497(0x258)])continue;_0x31051e['write'](_0x24fa83);}catch{streamClients[_0x3fa497(0x162)](_0x31051e);}}}function killSharedFfmpeg(){const _0x447b46=_0x28ae51;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;const _0x57f1c1=sharedFfmpeg;sharedFfmpeg=null;if(!_0x57f1c1)return;ffmpegProcs[_0x447b46(0x162)](_0x57f1c1);try{_0x57f1c1[_0x447b46(0x25b)]?.[_0x447b46(0x272)+_0x447b46(0x1ce)+_0x447b46(0x2af)](_0x447b46(0x198)),_0x57f1c1[_0x447b46(0x209)](_0x447b46(0x21d)+'L');}catch{}}async function ensureSharedFfmpeg(_0x2488ab){const _0x46b7f9=_0x28ae51,_0x213e2c=!!_0x2488ab;if(sharedFfmpeg&&!sharedFfmpeg[_0x46b7f9(0x242)]){if(sharedTranscode===_0x213e2c)return;console['log'](_0x46b7f9(0x2a1)+_0x46b7f9(0x2e9)+'tch',sharedTranscode?_0x46b7f9(0x2ad):_0x46b7f9(0x15b),'->',_0x213e2c?_0x46b7f9(0x2ad):_0x46b7f9(0x15b)),killSharedFfmpeg();}let _0x3eb2ff;try{_0x3eb2ff=await ensureFfmpeg();}catch(_0x14bcc2){console[_0x46b7f9(0x15d)](_0x46b7f9(0x2a1)+'g]',_0x14bcc2[_0x46b7f9(0x1e8)+'e']);return;}if(sharedFfmpeg&&!sharedFfmpeg[_0x46b7f9(0x242)]){if(sharedTranscode===_0x213e2c)return;killSharedFfmpeg();}const _0x11d3db=injectRtspAuth(state[_0x46b7f9(0x1c8)+'i'],state['userna'+'me'],state['passwo'+'rd']),_0x1327ba=/hevc|h265/[_0x46b7f9(0x2ce)](state[_0x46b7f9(0x25e)+'ng']),_0x57adca=[_0x46b7f9(0x2a7)+_0x46b7f9(0x1e0),_0x46b7f9(0x176)+'vel',_0x46b7f9(0x253)+'g','-rtsp_'+_0x46b7f9(0x14f)+'ort',_0x46b7f9(0x143),_0x46b7f9(0x22a)+'s','genpts',_0x46b7f9(0x1b0)+_0x46b7f9(0x219),_0x1327ba?_0x46b7f9(0x230)+'0':'500000',_0x46b7f9(0x262)+'zedura'+_0x46b7f9(0x2dc),_0x1327ba?_0x46b7f9(0x230)+'0':'500000',_0x46b7f9(0x1be)+'ds','1','-i',_0x11d3db,_0x46b7f9(0x142)];if(_0x213e2c)_0x57adca['push'](_0x46b7f9(0x2cc),_0x46b7f9(0x196)+'4',_0x46b7f9(0x1f8)+'t',_0x46b7f9(0x19c)+'ast',_0x46b7f9(0x2c3),_0x46b7f9(0x167)+_0x46b7f9(0x2ec),_0x46b7f9(0x21a)+_0x46b7f9(0x24b),_0x46b7f9(0x1de)+'ne',_0x46b7f9(0x28a)+'mt',_0x46b7f9(0x1df)+'p',_0x46b7f9(0x248),'0','-g','15',_0x46b7f9(0x22e),_0x46b7f9(0x18c)+_0x46b7f9(0x1a1)+_0x46b7f9(0x1e4)+_0x46b7f9(0x20e)+_0x46b7f9(0x2ef)+_0x46b7f9(0x21f)+_0x46b7f9(0x206)+'ected_'+_0x46b7f9(0x29e)+_0x46b7f9(0x1e2)+_0x46b7f9(0x24f)+_0x46b7f9(0x1b9)+'scale='+'960:-2');else{_0x57adca[_0x46b7f9(0x13a)](_0x46b7f9(0x2cc),_0x46b7f9(0x15b));const _0x30c9ca=bitstreamFilter(state[_0x46b7f9(0x25e)+'ng']);if(_0x30c9ca)_0x57adca[_0x46b7f9(0x13a)]('-bsf:v',_0x30c9ca);}_0x57adca[_0x46b7f9(0x13a)]('-f',_0x46b7f9(0x1d5),_0x46b7f9(0x2ba)+_0x46b7f9(0x25d),'0',_0x46b7f9(0x259)+_0x46b7f9(0x2a4),'0',_0x46b7f9(0x200)+_0x46b7f9(0x208)+'ts','1',_0x46b7f9(0x1f7)),sharedTranscode=_0x213e2c;const _0x3e5dcc=spawn(_0x3eb2ff,_0x57adca,{'stdio':[_0x46b7f9(0x2ac),'pipe','pipe']});sharedFfmpeg=_0x3e5dcc,ffmpegProcs[_0x46b7f9(0x210)](_0x3e5dcc);let _0x4b3cf3=![];console[_0x46b7f9(0x2b4)](_0x46b7f9(0x2a1)+'g]',_0x213e2c?_0x46b7f9(0x260)+_0x46b7f9(0x1f2)+'64':_0x46b7f9(0x17b)+(state[_0x46b7f9(0x25e)+'ng']||_0x46b7f9(0x1b6)+'n'),state[_0x46b7f9(0x1f9)+'me']),_0x3e5dcc[_0x46b7f9(0x25b)]['on'](_0x46b7f9(0x198),_0x10badf=>{const _0x114a9d=_0x46b7f9;!_0x4b3cf3&&(_0x4b3cf3=!![],console[_0x114a9d(0x2b4)]('[ffmpe'+_0x114a9d(0x24a)+_0x114a9d(0x21b)+'es',_0x10badf[_0x114a9d(0x2aa)])),ffmpegBackoffMs=0x320,broadcastTs(_0x10badf);}),_0x3e5dcc[_0x46b7f9(0x1c3)]['on']('data',_0x2ffa6f=>{const _0x1d4b80=_0x46b7f9,_0x2d3555=String(_0x2ffa6f||'')[_0x1d4b80(0x173)]();if(_0x2d3555)console[_0x1d4b80(0x15d)]('[ffmpe'+'g]',_0x2d3555);}),_0x3e5dcc['on'](_0x46b7f9(0x166),_0x2dd804=>{const _0x24719b=_0x46b7f9;console[_0x24719b(0x15d)](_0x24719b(0x2a1)+_0x24719b(0x25a)+'wn',_0x2dd804[_0x24719b(0x1e8)+'e']);}),_0x3e5dcc['on'](_0x46b7f9(0x139),_0xba0365=>{const _0x1d5031=_0x46b7f9;ffmpegProcs[_0x1d5031(0x162)](_0x3e5dcc);if(sharedFfmpeg===_0x3e5dcc)sharedFfmpeg=null;console[_0x1d5031(0x15d)]('[ffmpe'+_0x1d5031(0x2db)+'t',_0xba0365,_0x1d5031(0x198),_0x4b3cf3,_0x1d5031(0x15f)+'s',streamClients['size']);if(suppressFfmpegRestart)return;if(!state[_0x1d5031(0x269)+_0x1d5031(0x261)]||!streamClients[_0x1d5031(0x219)])return;console[_0x1d5031(0x15d)](_0x1d5031(0x2a1)+_0x1d5031(0x2db)+'t',_0xba0365,'restar'+'t\x20in',ffmpegBackoffMs,'ms'),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{const _0x1be0dd=_0x1d5031;ffmpegRestartTimer=null;if(!state[_0x1be0dd(0x269)+_0x1be0dd(0x261)]||!streamClients['size'])return;ensureSharedFfmpeg(sharedTranscode);},ffmpegBackoffMs),ffmpegBackoffMs=Math[_0x1d5031(0x14b)](ffmpegBackoffMs*0x2,0x1f40);});}function startMpegtsStream(_0x19ce0f,_0x280be1){const _0x1d2cea=_0x28ae51,_0x2e01ed=shouldTranscode(String(_0x19ce0f['query']?.[_0x1d2cea(0x18b)]||'')===_0x1d2cea(0x2ad));_0x19ce0f['setTim'+'eout'](0x0),_0x280be1[_0x1d2cea(0x1f5)+_0x1d2cea(0x2ed)](0x0),_0x19ce0f[_0x1d2cea(0x1c6)]?.['setTim'+_0x1d2cea(0x2ed)](0x0),_0x280be1[_0x1d2cea(0x1c6)]?.[_0x1d2cea(0x1f5)+_0x1d2cea(0x2ed)](0x0),_0x19ce0f[_0x1d2cea(0x1c6)]?.[_0x1d2cea(0x1e7)+_0x1d2cea(0x286)]?.(!![]),_0x280be1[_0x1d2cea(0x1c6)]?.[_0x1d2cea(0x1e7)+_0x1d2cea(0x286)]?.(!![]),_0x280be1[_0x1d2cea(0x122)+_0x1d2cea(0x238)](_0x1d2cea(0x1b1)+_0x1d2cea(0x1d0),_0x1d2cea(0x26f)+'mp2t'),_0x280be1[_0x1d2cea(0x122)+_0x1d2cea(0x238)](_0x1d2cea(0x267)+_0x1d2cea(0x1f0)+'l',_0x1d2cea(0x179)+_0x1d2cea(0x224)+_0x1d2cea(0x264)+',\x20must'+_0x1d2cea(0x11e)+'idate'),_0x280be1['setHea'+_0x1d2cea(0x238)](_0x1d2cea(0x1cd)+_0x1d2cea(0x2dc),'keep-a'+_0x1d2cea(0x175)),_0x280be1[_0x1d2cea(0x122)+'der'](_0x1d2cea(0x23c)+_0x1d2cea(0x1fb)+_0x1d2cea(0x174),'no');if(typeof _0x280be1[_0x1d2cea(0x207)+'eaders']===_0x1d2cea(0x13d)+'on')_0x280be1[_0x1d2cea(0x207)+_0x1d2cea(0x1c2)]();streamClients[_0x1d2cea(0x210)](_0x280be1),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x2e01ed);let _0x34254c=![];const _0xbcd675=()=>{const _0x30f0e0=_0x1d2cea;if(_0x34254c)return;_0x34254c=!![],streamClients[_0x30f0e0(0x162)](_0x280be1);try{if(!_0x280be1[_0x30f0e0(0x2c6)+_0x30f0e0(0x2d8)+'d'])_0x280be1[_0x30f0e0(0x164)]();}catch{}streamClients[_0x30f0e0(0x219)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{ffmpegIdleTimer=null;if(streamClients['size']===0x0)killSharedFfmpeg();},0xfa0));};_0x19ce0f['on'](_0x1d2cea(0x2d4),_0xbcd675),_0x280be1['on'](_0x1d2cea(0x2d4),_0xbcd675);}export function registerCameraRoutes(_0x101b5d,{getConfig:_0x4185a7,saveConfig:_0x5b580d}){const _0x52cb3f=_0x28ae51;_0x101b5d[_0x52cb3f(0x2bf)](_0x52cb3f(0x28b)+'amera/'+_0x52cb3f(0x17c)+'er',async(_0xdf0127,_0x338a83)=>{const _0x2429ec=_0x52cb3f;try{const _0x46dfb2=await discover();onboardAvailable()&&_0x46dfb2[_0x2429ec(0x1eb)+'t']({'kind':_0x2429ec(0x2b5)+'d','hostname':'onboar'+'d','port':0x157c,'path':_0x2429ec(0x271)+_0x2429ec(0x19a)+_0x2429ec(0x1dc),'name':'板载摄像头','hardware':'OV2640'}),_0x338a83[_0x2429ec(0x12b)]({'devices':_0x46dfb2});}catch(_0x15ce30){_0x338a83['status'](0x190)['json']({'message':cameraError(_0x15ce30,_0x2429ec(0x236)+'败')});}}),_0x101b5d['get'](_0x52cb3f(0x28b)+_0x52cb3f(0x201)+_0x52cb3f(0x1ea),(_0x19d294,_0x3ec2f8)=>{const _0x1c83e5=_0x52cb3f,_0x133de6=_0x4185a7();if(stripOnboardCameraConfig(_0x133de6))_0x5b580d();const _0x1cf88c=_0x133de6[_0x1c83e5(0x251)]||{};_0x3ec2f8[_0x1c83e5(0x12b)]({...publicState(),'saved':{'source':_0x1cf88c[_0x1c83e5(0x246)]||'','hostname':_0x1cf88c[_0x1c83e5(0x1f9)+'me']||'','port':_0x1cf88c[_0x1c83e5(0x287)]||0x50,'path':_0x1cf88c[_0x1c83e5(0x160)]||_0x1c83e5(0x120)+'/devic'+'e_serv'+_0x1c83e5(0x17e),'username':_0x1cf88c[_0x1c83e5(0x170)+'me']||'','password_set':!!_0x1cf88c[_0x1c83e5(0x2d7)+'rd']}});}),_0x101b5d[_0x52cb3f(0x2bf)](_0x52cb3f(0x28b)+_0x52cb3f(0x201)+_0x52cb3f(0x269)+'t',async(_0x27872d,_0x2597b5)=>{const _0x9812f9=_0x52cb3f;try{const _0x1b6e6b=_0x4185a7(),_0x1c4f39=_0x1b6e6b[_0x9812f9(0x251)]||{},_0xe71a61=_0x27872d[_0x9812f9(0x1ee)]?.[_0x9812f9(0x246)]==='onboar'+'d'||_0x27872d[_0x9812f9(0x1ee)]?.[_0x9812f9(0x275)]===_0x9812f9(0x2b5)+'d'||_0x27872d[_0x9812f9(0x1ee)]?.['hostna'+'me']==='onboar'+'d';if(_0xe71a61){if(stripOnboardCameraConfig(_0x1b6e6b))_0x5b580d();_0x2597b5[_0x9812f9(0x1ea)](0x190)['json']({'message':_0x9812f9(0x1c0)+'支持'});return;}const _0x4e96fa=_0x27872d[_0x9812f9(0x1ee)]?.[_0x9812f9(0x2d7)+'rd']||_0x1c4f39[_0x9812f9(0x2d7)+'rd']||'',_0x1fa467=await connectCamera({'hostname':_0x27872d['body']?.[_0x9812f9(0x1f9)+'me']||_0x1c4f39['hostna'+'me'],'port':_0x27872d['body']?.[_0x9812f9(0x287)]||_0x1c4f39[_0x9812f9(0x287)],'username':_0x27872d[_0x9812f9(0x1ee)]?.[_0x9812f9(0x170)+'me']||_0x1c4f39[_0x9812f9(0x170)+'me'],'password':_0x4e96fa,'path':_0x27872d[_0x9812f9(0x1ee)]?.[_0x9812f9(0x160)]||_0x1c4f39[_0x9812f9(0x160)]});_0x1b6e6b[_0x9812f9(0x251)]={'source':_0x9812f9(0x197),'hostname':state[_0x9812f9(0x1f9)+'me'],'port':state['port'],'path':state[_0x9812f9(0x160)],'username':state[_0x9812f9(0x170)+'me'],'password':state[_0x9812f9(0x2d7)+'rd']},_0x5b580d(),_0x2597b5['json'](_0x1fa467);}catch(_0x19f8cc){_0x2597b5[_0x9812f9(0x1ea)](0x190)[_0x9812f9(0x12b)]({'message':cameraError(_0x19f8cc,_0x9812f9(0x227)+'败')});}}),_0x101b5d[_0x52cb3f(0x2bf)](_0x52cb3f(0x28b)+_0x52cb3f(0x201)+_0x52cb3f(0x1a2)+'nect',(_0x3c7ef5,_0x2f32c6)=>{const _0x416568=_0x52cb3f;_0x2f32c6[_0x416568(0x12b)](disconnectCamera());}),_0x101b5d[_0x52cb3f(0x268)](_0x52cb3f(0x28b)+'amera/'+_0x52cb3f(0x263)+'ot',async(_0x3bfbcd,_0x11968d)=>{const _0x349292=_0x52cb3f;try{const _0x357728=await getSnapshot();if(!_0x357728?.['length']){_0x11968d[_0x349292(0x1ea)](0xcc)[_0x349292(0x164)]();return;}_0x11968d[_0x349292(0x122)+'der'](_0x349292(0x1b1)+_0x349292(0x1d0),_0x349292(0x20b)+_0x349292(0x252)),_0x11968d[_0x349292(0x122)+_0x349292(0x238)](_0x349292(0x267)+_0x349292(0x1f0)+'l','no-sto'+'re'),_0x11968d['send'](_0x357728);}catch(_0x3d314c){_0x11968d[_0x349292(0x1ea)](0x190)[_0x349292(0x12b)]({'message':cameraError(_0x3d314c,_0x349292(0x12e))});}}),_0x101b5d[_0x52cb3f(0x268)]('/api/c'+'amera/'+_0x52cb3f(0x20c),async(_0x5d43bf,_0x584da1)=>{const _0x24bd84=_0x52cb3f;if(!state[_0x24bd84(0x269)+_0x24bd84(0x261)]){_0x584da1[_0x24bd84(0x1ea)](0x190)[_0x24bd84(0x12b)]({'message':'还没有画面,'+_0x24bd84(0x1ab)+'头'});return;}if(state[_0x24bd84(0x1c8)+'i']){startMpegtsStream(_0x5d43bf,_0x584da1);return;}if(state['liveUr'+'i'])try{const _0x49bfe0=await openCameraHttp(state['liveUr'+'i'],state[_0x24bd84(0x170)+'me'],state[_0x24bd84(0x2d7)+'rd'],0x1f40);_0x584da1['setHea'+_0x24bd84(0x238)](_0x24bd84(0x1b1)+'t-Type',_0x49bfe0[_0x24bd84(0x255)+_0x24bd84(0x191)]||_0x24bd84(0x124)+_0x24bd84(0x28e)+_0x24bd84(0x1db)+_0x24bd84(0x2b2)+_0x24bd84(0x29b)+_0x24bd84(0x187)+_0x24bd84(0x1ad)),_0x584da1[_0x24bd84(0x122)+_0x24bd84(0x238)](_0x24bd84(0x267)+_0x24bd84(0x1f0)+'l',_0x24bd84(0x179)+_0x24bd84(0x224)+_0x24bd84(0x264)+_0x24bd84(0x2c1)+_0x24bd84(0x11e)+_0x24bd84(0x212)),_0x584da1[_0x24bd84(0x122)+_0x24bd84(0x238)](_0x24bd84(0x1cd)+_0x24bd84(0x2dc),_0x24bd84(0x133)+_0x24bd84(0x175)),_0x584da1[_0x24bd84(0x122)+_0x24bd84(0x238)](_0x24bd84(0x23c)+_0x24bd84(0x1fb)+_0x24bd84(0x174),'no');const _0x2a893c=()=>{const _0x5eec28=_0x24bd84;try{_0x49bfe0[_0x5eec28(0x1bc)][_0x5eec28(0x123)+'y']();}catch{}try{_0x49bfe0[_0x5eec28(0x292)][_0x5eec28(0x123)+'y']();}catch{}};_0x5d43bf['on'](_0x24bd84(0x2d4),_0x2a893c),_0x584da1['on'](_0x24bd84(0x2d4),_0x2a893c),_0x49bfe0[_0x24bd84(0x292)]['on'](_0x24bd84(0x166),_0x2a893c),_0x49bfe0[_0x24bd84(0x292)]['pipe'](_0x584da1);return;}catch(_0x6e373c){console['warn']('[camer'+_0x24bd84(0x2c0)+'e\x20pipe',_0x6e373c?.['messag'+'e']||_0x6e373c);}if(!state[_0x24bd84(0x263)+_0x24bd84(0x1aa)]){_0x584da1[_0x24bd84(0x1ea)](0x190)[_0x24bd84(0x12b)]({'message':_0x24bd84(0x243)+'有可播放的预'+'览流'});return;}_0x584da1[_0x24bd84(0x122)+'der'](_0x24bd84(0x1b1)+_0x24bd84(0x1d0),_0x24bd84(0x124)+_0x24bd84(0x28e)+'mixed-'+'replac'+_0x24bd84(0x29b)+_0x24bd84(0x187)+_0x24bd84(0x1ad)),_0x584da1[_0x24bd84(0x122)+'der'](_0x24bd84(0x267)+_0x24bd84(0x1f0)+'l',_0x24bd84(0x179)+_0x24bd84(0x224)+_0x24bd84(0x264)+_0x24bd84(0x2c1)+_0x24bd84(0x11e)+'idate'),_0x584da1['setHea'+_0x24bd84(0x238)]('Pragma',_0x24bd84(0x29c)+'he'),_0x584da1['setHea'+_0x24bd84(0x238)](_0x24bd84(0x1cd)+'tion','keep-a'+_0x24bd84(0x175)),_0x584da1[_0x24bd84(0x122)+_0x24bd84(0x238)](_0x24bd84(0x23c)+_0x24bd84(0x1fb)+_0x24bd84(0x174),'no');let _0x3722b0=![];const _0xbf515e=()=>{_0x3722b0=!![];};_0x5d43bf['on'](_0x24bd84(0x2d4),_0xbf515e),_0x584da1['on'](_0x24bd84(0x2d4),_0xbf515e);const _0x3cbf05=state[_0x24bd84(0x246)]===_0x24bd84(0x2b5)+'d';_0x3cbf05&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x24bd84(0x217)](()=>null),'writeFrame':async _0x1ecf48=>{const _0x81b4d2=_0x24bd84;if(_0x3722b0||!state[_0x81b4d2(0x269)+_0x81b4d2(0x261)])return![];try{return _0x584da1[_0x81b4d2(0x15c)](_0x81b4d2(0x2eb)+_0x81b4d2(0x19b)+_0x81b4d2(0x19e)+_0x81b4d2(0x17f)+_0x81b4d2(0x12f)+'peg\x0d\x0aC'+_0x81b4d2(0x239)+_0x81b4d2(0x1cb)+_0x81b4d2(0x178)+_0x1ecf48[_0x81b4d2(0x2aa)]+_0x81b4d2(0x2e3)),_0x584da1[_0x81b4d2(0x15c)](_0x1ecf48),_0x584da1['write']('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x3722b0&&state[_0x24bd84(0x269)+_0x24bd84(0x261)],'delayMs':_0x3cbf05?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x3cbf05?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x3cbf05&¬eOnboardPreviewClient(-0x1);if(!_0x584da1[_0x24bd84(0x2c6)+_0x24bd84(0x2d8)+'d'])_0x584da1[_0x24bd84(0x164)]();}}),_0x101b5d[_0x52cb3f(0x2bf)](_0x52cb3f(0x28b)+_0x52cb3f(0x201)+_0x52cb3f(0x1b5),async(_0x15f2b9,_0x5cbb3c)=>{const _0x3aaf12=_0x52cb3f;try{const _0x1e381d=String(_0x15f2b9[_0x3aaf12(0x1ee)]?.['action']||'');_0x5cbb3c[_0x3aaf12(0x12b)](await ptzMove(_0x1e381d,{'press':_0x15f2b9[_0x3aaf12(0x1ee)]?.[_0x3aaf12(0x16c)]}));}catch(_0x5a7f28){_0x5cbb3c[_0x3aaf12(0x1ea)](0x190)[_0x3aaf12(0x12b)]({'message':cameraError(_0x5a7f28,_0x3aaf12(0x218))});}});}
|
|
1
|
+
const _0x1e0c05=_0x256b;(function(_0x3e2824,_0x52897c){const _0x5bb9c7=_0x256b,_0x640934=_0x3e2824();while(!![]){try{const _0x23f350=parseInt(_0x5bb9c7(0x239))/0x1*(-parseInt(_0x5bb9c7(0x2ad))/0x2)+parseInt(_0x5bb9c7(0x1b8))/0x3+parseInt(_0x5bb9c7(0x211))/0x4*(parseInt(_0x5bb9c7(0x381))/0x5)+parseInt(_0x5bb9c7(0x20c))/0x6*(-parseInt(_0x5bb9c7(0x1d6))/0x7)+-parseInt(_0x5bb9c7(0x271))/0x8*(parseInt(_0x5bb9c7(0x39d))/0x9)+-parseInt(_0x5bb9c7(0x332))/0xa*(parseInt(_0x5bb9c7(0x378))/0xb)+parseInt(_0x5bb9c7(0x2a0))/0xc;if(_0x23f350===_0x52897c)break;else _0x640934['push'](_0x640934['shift']());}catch(_0x3ce08b){_0x640934['push'](_0x640934['shift']());}}}(_0x2934,0xf2f2f));import _0x36ab43 from'node:crypto';import _0x61aba5 from'node:http';import _0x2ba84b from'node:https';import _0x10d525 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/'+_0x1e0c05(0x257)+'es');let lastOnboardJpeg=null,onboardFetchInFlight=null,onboardPreviewClients=0x0;const PTZ_TIMEOUT_MS=0x2bc,ONVIF_NUDGE_MS=0xb4;let currentCam=null,ptzBusy=![],snapshotTail=Promise[_0x1e0c05(0x33d)+'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 _0x61aba5[(_0x1e0c05(0x302))]({'keepAlive':![],'maxSockets':0x2}),httpsAgent=new _0x2ba84b[(_0x1e0c05(0x302))]({'keepAlive':![],'maxSockets':0x2,'rejectUnauthorized':![]}),digestState={'challenge':null,'nc':0x1},state={'connected':![],'source':'','sourceLabel':'','hostname':'','port':0x50,'path':_0x1e0c05(0x372)+_0x1e0c05(0x389)+_0x1e0c05(0x3b8)+_0x1e0c05(0x1c6),'username':'','password':'','ptz':![],'snapshotUri':'','rtspUri':'','encoding':'','liveUri':'','liveDirect':'','info':null};let cameraHooks={};export function setCameraHooks(_0x46b3a8){cameraHooks={...cameraHooks,..._0x46b3a8};}function deviceCaps(){const _0x3aa4fa=_0x1e0c05,_0xcd96a0=cameraHooks['getDev'+_0x3aa4fa(0x2f4)+'s']?.()||{};return _0xcd96a0&&typeof _0xcd96a0===_0x3aa4fa(0x1f5)?_0xcd96a0:{};}export function onboardAvailable(){const _0x23f225=_0x1e0c05;return deviceCaps()[_0x23f225(0x213)+_0x23f225(0x355)+'iew']===!![]&&!!String(cameraHooks['getDev'+_0x23f225(0x28f)+'eUrl']?.()||'')['trim']();}export function gimbalAvailable(){const _0x1fbcd5=_0x1e0c05;return deviceCaps()[_0x1fbcd5(0x37e)]===!![];}export function stripOnboardCameraConfig(_0x4126fb){const _0x8ebff1=_0x1e0c05;if(!_0x4126fb?.[_0x8ebff1(0x231)]||_0x4126fb[_0x8ebff1(0x231)][_0x8ebff1(0x2c9)]!==_0x8ebff1(0x213)+'d')return![];const _0x52ba8f={..._0x4126fb['camera']};return delete _0x52ba8f[_0x8ebff1(0x2c9)],_0x4126fb[_0x8ebff1(0x231)]=_0x52ba8f,!![];}function playModeOf(){const _0x19fcb2=_0x1e0c05;if(state['source']==='onboar'+'d')return'mjpeg';if(state['rtspUr'+'i'])return _0x19fcb2(0x359);if(state[_0x19fcb2(0x2dc)+'i'])return _0x19fcb2(0x29c);if(state['snapsh'+_0x19fcb2(0x22e)])return _0x19fcb2(0x2cb)+'ot';return'';}function publicState(){const _0x3b876b=_0x1e0c05;return{'connected':state[_0x3b876b(0x33a)+_0x3b876b(0x1af)],'source':state[_0x3b876b(0x2c9)]||'','sourceLabel':state[_0x3b876b(0x2c9)+_0x3b876b(0x256)]||'','hostname':state['hostna'+'me'],'port':state[_0x3b876b(0x2c7)],'path':state[_0x3b876b(0x250)],'username':state[_0x3b876b(0x367)+'me'],'password_set':!!state['passwo'+'rd'],'ptz':state[_0x3b876b(0x390)]||gimbalAvailable(),'ptzKind':gimbalAvailable()&&state[_0x3b876b(0x2c9)]!==_0x3b876b(0x30b)?_0x3b876b(0x37e):state[_0x3b876b(0x390)]?'onvif':'','snapshot':!!state['snapsh'+_0x3b876b(0x22e)]||state['source']===_0x3b876b(0x213)+'d','stream':!!(state['rtspUr'+'i']||state[_0x3b876b(0x2dc)+'i']||state[_0x3b876b(0x2cb)+_0x3b876b(0x22e)])||state[_0x3b876b(0x2c9)]===_0x3b876b(0x213)+'d','playMode':playModeOf(),'encoding':state[_0x3b876b(0x291)+'ng'],'liveDirect':state[_0x3b876b(0x1d9)+_0x3b876b(0x1d8)],'info':state[_0x3b876b(0x38c)],'onboardAvailable':onboardAvailable(),'gimbalAvailable':gimbalAvailable()};}function parseScopes(_0x5712ce){const _0x1de9a3=_0x1e0c05,_0x18fafe=Array[_0x1de9a3(0x1ba)+'y'](_0x5712ce)?_0x5712ce[_0x1de9a3(0x2e9)]('\x20'):String(_0x5712ce||''),_0x5030e6=_0x38de73=>{const _0x1f9dfa=_0x1de9a3,_0x3adf16=_0x18fafe[_0x1f9dfa(0x340)](new RegExp(_0x1f9dfa(0x243)+_0x1f9dfa(0x38a)+_0x1f9dfa(0x1e3)+_0x1f9dfa(0x2b7)+_0x38de73+(_0x1f9dfa(0x301)+_0x1f9dfa(0x251)),'i'));if(!_0x3adf16)return'';try{return decodeURIComponent(_0x3adf16[0x1]['replac'+'e'](/_/g,'\x20'));}catch{return _0x3adf16[0x1];}};return{'name':_0x5030e6(_0x1de9a3(0x289)),'hardware':_0x5030e6(_0x1de9a3(0x1ac)+'re')};}function firstXAddr(_0x5648c9){const _0x29326b=_0x1e0c05,_0x4a38a4=Array['isArra'+'y'](_0x5648c9)?_0x5648c9[0x0]:_0x5648c9,_0x17a3aa=typeof _0x4a38a4===_0x29326b(0x366)?_0x4a38a4:_0x4a38a4?.[_0x29326b(0x32f)]||String(_0x4a38a4||''),_0x3f0826=_0x17a3aa[_0x29326b(0x1f3)]()['split'](/\s+/)[0x0];if(!_0x3f0826)return null;try{return new URL(_0x3f0826);}catch{return null;}}function summarizeProbe(_0x69b931,_0x3afbb7){const _0x1d483b=_0x1e0c05,_0xbd399b=_0x69b931?.[_0x1d483b(0x2f0)+_0x1d483b(0x1ce)]?.[_0x1d483b(0x2f0)+_0x1d483b(0x3a4)]||_0x69b931,_0x2c7ba5=firstXAddr(_0xbd399b?.[_0x1d483b(0x234)]||_0xbd399b?.[_0x1d483b(0x370)]),_0x1af35d=_0x2c7ba5?.[_0x1d483b(0x2fa)+'me']||_0x3afbb7?.['addres'+'s']||'';if(!_0x1af35d)return null;const _0x5cd163=parseScopes(_0xbd399b?.['scopes']||_0xbd399b?.['Scopes']);return{'hostname':_0x1af35d,'port':Number(_0x2c7ba5?.['port']||0x50),'path':_0x2c7ba5?.[_0x1d483b(0x3a2)+'me']||_0x1d483b(0x372)+_0x1d483b(0x389)+_0x1d483b(0x3b8)+_0x1d483b(0x1c6),'urn':_0xbd399b?.[_0x1d483b(0x356)+_0x1d483b(0x1dd)+'rence']?.[_0x1d483b(0x1e1)+'s']||_0xbd399b?.[_0x1d483b(0x225)]||'','name':_0x5cd163[_0x1d483b(0x289)]||_0x1af35d,'hardware':_0x5cd163[_0x1d483b(0x1ac)+'re']||''};}function summarizeCam(_0x2d69ef,_0x562126){const _0x3fe678=_0x1e0c05;if(_0x2d69ef?.[_0x3fe678(0x2f0)+'atches']||_0x2d69ef?.[_0x3fe678(0x234)])return summarizeProbe(_0x2d69ef,_0x562126);const _0x501d37=_0x2d69ef['hostna'+'me']||_0x562126?.[_0x3fe678(0x1e1)+'s']||'';if(!_0x501d37)return null;return{'hostname':_0x501d37,'port':Number(_0x2d69ef[_0x3fe678(0x2c7)]||0x50),'path':_0x2d69ef[_0x3fe678(0x250)]||'/onvif'+_0x3fe678(0x389)+_0x3fe678(0x3b8)+_0x3fe678(0x1c6),'urn':_0x2d69ef[_0x3fe678(0x225)]||'','name':_0x501d37,'hardware':''};}let discovering=null;export async function discover(_0x343607=0xfa0){if(discovering)return discovering;return discovering=runDiscover(_0x343607)['finall'+'y'](()=>{discovering=null;}),discovering;}async function runDiscover(_0x5b2529){const _0x736af7=_0x1e0c05,_0xfd389e=[],_0x26125b=new Set(),_0x2eef59=_0x5748b8=>{const _0x41c2e8=_0x256b;if(!_0x5748b8?.['hostna'+'me'])return;const _0x2d179f=_0x5748b8['hostna'+'me']+':'+_0x5748b8['port']+':'+_0x5748b8[_0x41c2e8(0x250)];if(_0x26125b['has'](_0x2d179f))return;_0x26125b[_0x41c2e8(0x1ff)](_0x2d179f),_0xfd389e[_0x41c2e8(0x1ee)](_0x5748b8);},_0x54e9dc=(_0xe1101d,_0x18a45f)=>_0x2eef59(summarizeCam(_0xe1101d,_0x18a45f));Discovery['on'](_0x736af7(0x375),_0x54e9dc);try{const _0x1da39c=await Discovery['probe']({'timeout':_0x5b2529,'resolve':![]});for(const _0x2997c3 of _0x1da39c||[])_0x2eef59(summarizeCam(_0x2997c3));}catch(_0x6d4ac3){console[_0x736af7(0x1c5)](_0x736af7(0x3a9)+']\x20disc'+_0x736af7(0x1c7),_0x6d4ac3?.[_0x736af7(0x26a)+'e']||_0x6d4ac3);}finally{Discovery[_0x736af7(0x1c9)+_0x736af7(0x20f)+'er'](_0x736af7(0x375),_0x54e9dc);}return _0xfd389e;}function mediaUriOf(_0x2550c7){const _0x113d9b=_0x1e0c05;if(!_0x2550c7)return'';if(typeof _0x2550c7===_0x113d9b(0x366))return _0x2550c7[_0x113d9b(0x341)+'e'](/&/g,'&');const _0x2f289c=_0x2550c7['uri']||_0x2550c7[_0x113d9b(0x30f)+'ri']?.[_0x113d9b(0x35d)]||_0x2550c7[_0x113d9b(0x25f)]||'',_0x49387a=typeof _0x2f289c===_0x113d9b(0x366)?_0x2f289c:_0x2f289c?.[_0x113d9b(0x32f)]||_0x2f289c?.['_']||'';return String(_0x49387a)[_0x113d9b(0x341)+'e'](/&/g,'&');}function pickPreviewSource(_0x2e56b8){const _0x3c2110=_0x1e0c05,_0x47c20e=Array[_0x3c2110(0x1ba)+'y'](_0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)+'s'])?[..._0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)+'s']]:[];if(!_0x47c20e[_0x3c2110(0x31a)]&&_0x2e56b8[_0x3c2110(0x31c)+_0x3c2110(0x2e7)])_0x47c20e[_0x3c2110(0x1ee)](_0x2e56b8['active'+_0x3c2110(0x2e7)]);return _0x47c20e[_0x3c2110(0x3a8)]((_0x5409d8,_0x3755dc)=>(Number(_0x5409d8['width'])||0x780)-(Number(_0x3755dc[_0x3c2110(0x2b5)])||0x780)),_0x47c20e[0x0]||_0x2e56b8['active'+_0x3c2110(0x2e7)]||null;}function detectEncoding(_0x55a836){const _0x2b1056=_0x1e0c05,_0x469ff0=String(_0x55a836?.['encodi'+'ng']||_0x55a836?.['Encodi'+'ng']||'')['toLowe'+_0x2b1056(0x1e0)]();if(/h265|hevc/['test'](_0x469ff0))return _0x2b1056(0x21c);if(/h264|avc/[_0x2b1056(0x299)](_0x469ff0))return _0x2b1056(0x209);return _0x469ff0;}function injectRtspAuth(_0x31032c,_0x43efa9,_0x538635){const _0x19fdca=_0x1e0c05;if(!_0x31032c)return'';try{const _0x3877be=new URL(_0x31032c);return _0x43efa9&&(_0x3877be[_0x19fdca(0x367)+'me']=_0x43efa9,_0x3877be[_0x19fdca(0x2f1)+'rd']=_0x538635||''),_0x3877be[_0x19fdca(0x32f)];}catch{return _0x31032c;}}function stopAllFfmpeg(){const _0x5cef38=_0x1e0c05;clearTimeout(ffmpegIdleTimer),clearTimeout(ffmpegRestartTimer),ffmpegIdleTimer=null,ffmpegRestartTimer=null,ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,ffmpegEpoch+=0x1,ffmpegNeedProbe=![],sharedTranscode=![];for(const _0x48654a of streamClients){try{if(!_0x48654a[_0x5cef38(0x2d9)+_0x5cef38(0x1fe)+'d'])_0x48654a[_0x5cef38(0x1c4)]();}catch{}}streamClients[_0x5cef38(0x33c)]();const _0xc663d1=sharedFfmpeg;sharedFfmpeg=null;if(_0xc663d1){ffmpegProcs[_0x5cef38(0x344)](_0xc663d1);try{_0xc663d1[_0x5cef38(0x2a7)](_0x5cef38(0x339)+'L');}catch{}}for(const _0x4e5095 of ffmpegProcs){try{_0x4e5095['kill'](_0x5cef38(0x339)+'L');}catch{}}ffmpegProcs[_0x5cef38(0x33c)]();}function resetDigest(){const _0x2250d7=_0x1e0c05;digestState['challe'+_0x2250d7(0x27a)]=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(_0x21b654){const _0x4b5156=_0x1e0c05,_0x272fa5=Number(_0x21b654)||0x50,_0xb7d96d=ONVIF_FALLBACK_PORTS[_0x4b5156(0x34d)](_0x2337fb=>_0x2337fb!==_0x272fa5);if(_0x272fa5!==0x50)_0xb7d96d['unshif'+'t'](0x50);return[_0x272fa5,..._0xb7d96d];}export async function probeOpenPorts(_0x414c98,_0x486abf,_0x23df74=0x320){const _0x8fe6e0=_0x1e0c05,_0x4d626c=[...new Set((_0x486abf||[])[_0x8fe6e0(0x270)](_0xd97c6f=>Number(_0xd97c6f)||0x0)['filter'](_0x296b3a=>_0x296b3a>0x0&&_0x296b3a<0x10000))];if(!_0x4d626c[_0x8fe6e0(0x31a)])return[];const _0x39593c=await Promise['all'](_0x4d626c['map'](async _0x242176=>({'port':_0x242176,'open':await probeTcp(_0x414c98,_0x242176,_0x23df74)})));return _0x39593c[_0x8fe6e0(0x34d)](_0x50b443=>_0x50b443[_0x8fe6e0(0x342)])[_0x8fe6e0(0x270)](_0x48e2ee=>_0x48e2ee[_0x8fe6e0(0x2c7)]);}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(_0x2b302c){const _0x5f0e3a=_0x1e0c05,_0x337512=_0x2b302c instanceof Error?_0x2b302c[_0x5f0e3a(0x26a)+'e']:String(_0x2b302c||'');return/ECONNREFUSED|ENOTFOUND|ETIMEDOUT|EHOSTUNREACH|EHOSTDOWN|ENETUNREACH|ENETDOWN|ECONNRESET|EPIPE|ECONNABORTED|timeout|Timeout|超时|Network timeout|Host is down|host is down|暂时离线/i['test'](_0x337512);}export function shouldRefreshSnapshotUri(_0x567aaf){return!isNetworkError(_0x567aaf);}export function rtspPortOf(_0x1cabe5,_0x3bb6a9=0x22a){const _0x39284b=_0x1e0c05;try{const _0x2581b0=Number(new URL(_0x1cabe5)[_0x39284b(0x2c7)]);return _0x2581b0>0x0?_0x2581b0:_0x3bb6a9;}catch{return _0x3bb6a9;}}export function nextFfmpegRestartDelay({gotData:gotData=![],backoffMs:backoffMs=FFMPEG_BACKOFF_MIN_MS}={}){const _0x37eab0=_0x1e0c05;if(gotData)return{'delayMs':FFMPEG_RESTART_AFTER_DATA_MS,'nextBackoffMs':FFMPEG_BACKOFF_MIN_MS,'probe':![]};const _0xd2d646=Math[_0x37eab0(0x384)](FFMPEG_BACKOFF_MIN_MS,Number(backoffMs)||FFMPEG_BACKOFF_MIN_MS);return{'delayMs':_0xd2d646,'nextBackoffMs':Math[_0x37eab0(0x348)](Math[_0x37eab0(0x2ef)](_0xd2d646*1.5),FFMPEG_BACKOFF_MAX_MS),'probe':!![]};}export function cameraError(_0x4634b8,_0x57ad73){const _0x431f9a=_0x1e0c05,_0x4a3ae0=_0x4634b8 instanceof Error?_0x4634b8[_0x431f9a(0x26a)+'e']:String(_0x4634b8||'');if(isNetworkError(_0x4634b8))return _0x431f9a(0x358)+'线。请稍等自'+_0x431f9a(0x29b)+_0x431f9a(0x352);if(/401|NotAuthorized|not authorized|unauthorized|Authoriz/i[_0x431f9a(0x299)](_0x4a3ae0))return _0x431f9a(0x2b4)+_0x431f9a(0x241)+_0x431f9a(0x36f)+_0x431f9a(0x1b5)+_0x431f9a(0x252)+'个账号开\x20O'+_0x431f9a(0x39a)+'限。';return _0x4a3ae0||_0x57ad73;}export function probeTcp(_0x1b12f4,_0x2d242b,_0xb23a33=ONVIF_TCP_PROBE_MS){const _0x5a8a0b=_0x1e0c05,_0x546924=String(_0x1b12f4||'')[_0x5a8a0b(0x1f3)](),_0x25c8b3=Number(_0x2d242b)||0x50;if(!_0x546924)return Promise[_0x5a8a0b(0x33d)+'e'](![]);return new Promise(_0x48da87=>{const _0x22b3bc=_0x5a8a0b,_0x144eee=_0x10d525['connec'+'t']({'host':_0x546924,'port':_0x25c8b3});let _0x3bfd02=![];const _0x2e3077=_0x56ee0f=>{const _0x471532=_0x256b;if(_0x3bfd02)return;_0x3bfd02=!![],_0x144eee[_0x471532(0x1c9)+_0x471532(0x230)+'teners'](),_0x144eee[_0x471532(0x39f)+'y'](),_0x48da87(_0x56ee0f);};_0x144eee[_0x22b3bc(0x2bd)+_0x22b3bc(0x2b0)](Math[_0x22b3bc(0x384)](0xc8,Number(_0xb23a33)||ONVIF_TCP_PROBE_MS),()=>_0x2e3077(![])),_0x144eee[_0x22b3bc(0x2ec)](_0x22b3bc(0x33a)+'t',()=>_0x2e3077(!![])),_0x144eee['once'](_0x22b3bc(0x393),()=>_0x2e3077(![]));});}function _0x256b(_0x255437,_0x39ca35){_0x255437=_0x255437-0x1ac;const _0x2934dd=_0x2934();let _0x256be5=_0x2934dd[_0x255437];if(_0x256b['uarOHJ']===undefined){var _0x357cba=function(_0x3b436d){const _0x16cd71='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x36ab43='',_0x61aba5='';for(let _0x2ba84b=0x0,_0x10d525,_0x46b3a8,_0xcd96a0=0x0;_0x46b3a8=_0x3b436d['charAt'](_0xcd96a0++);~_0x46b3a8&&(_0x10d525=_0x2ba84b%0x4?_0x10d525*0x40+_0x46b3a8:_0x46b3a8,_0x2ba84b++%0x4)?_0x36ab43+=String['fromCharCode'](0xff&_0x10d525>>(-0x2*_0x2ba84b&0x6)):0x0){_0x46b3a8=_0x16cd71['indexOf'](_0x46b3a8);}for(let _0x4126fb=0x0,_0x52ba8f=_0x36ab43['length'];_0x4126fb<_0x52ba8f;_0x4126fb++){_0x61aba5+='%'+('00'+_0x36ab43['charCodeAt'](_0x4126fb)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x61aba5);};_0x256b['qaNmCS']=_0x357cba,_0x256b['QbDpwb']={},_0x256b['uarOHJ']=!![];}const _0x4c8d99=_0x2934dd[0x0],_0x24c5b1=_0x255437+_0x4c8d99,_0x3cec31=_0x256b['QbDpwb'][_0x24c5b1];return!_0x3cec31?(_0x256be5=_0x256b['qaNmCS'](_0x256be5),_0x256b['QbDpwb'][_0x24c5b1]=_0x256be5):_0x256be5=_0x3cec31,_0x256be5;}function createCam(_0x1dfc3e){const _0x1576d9=_0x1e0c05;return new Cam({'hostname':_0x1dfc3e[_0x1576d9(0x2fa)+'me'],'port':_0x1dfc3e[_0x1576d9(0x2c7)],'username':_0x1dfc3e[_0x1576d9(0x367)+'me'],'password':_0x1dfc3e[_0x1576d9(0x2f1)+'rd'],'path':_0x1dfc3e[_0x1576d9(0x250)],'timeout':Number(_0x1dfc3e[_0x1576d9(0x216)+'t'])>0x0?Number(_0x1dfc3e[_0x1576d9(0x216)+'t']):ONVIF_CONNECT_TIMEOUT_MS,'agent':httpAgent,'preserveAddress':!![],'autoconnect':![]});}async function refreshOnvif(){const _0x344df1=_0x1e0c05,_0x1c0df9=createCam(state);return await _0x1c0df9[_0x344df1(0x33a)+'t'](),currentCam=_0x1c0df9,state[_0x344df1(0x390)]=!!(_0x1c0df9[_0x344df1(0x2df)+_0x344df1(0x1d3)]?.['PTZ']||_0x1c0df9[_0x344df1(0x35d)]?.['ptz']),_0x1c0df9;}function sameHost(_0x2eeada,_0x59e119){const _0x538174=_0x1e0c05;return String(_0x2eeada||'')['trim']()[_0x538174(0x272)+_0x538174(0x1e0)]()===String(_0x59e119||'')[_0x538174(0x1f3)]()[_0x538174(0x272)+_0x538174(0x1e0)]();}export function sameOnvifEndpoint(_0x598bfb,_0x1b6c8c){const _0x231074=_0x1e0c05;if(!_0x598bfb||!_0x1b6c8c)return![];return sameHost(_0x598bfb[_0x231074(0x2fa)+'me'],_0x1b6c8c['hostna'+'me'])&&Number(_0x598bfb[_0x231074(0x2c7)]||0x50)===Number(_0x1b6c8c[_0x231074(0x2c7)]||0x50)&&String(_0x598bfb['path']||_0x231074(0x372)+_0x231074(0x389)+_0x231074(0x3b8)+_0x231074(0x1c6))===String(_0x1b6c8c[_0x231074(0x250)]||_0x231074(0x372)+'/devic'+_0x231074(0x3b8)+_0x231074(0x1c6));}async function resolveDiscoveredEndpoint(_0x25513c){const _0x152046=_0x1e0c05;try{const _0x5f09c2=await discover(0x9c4);return _0x5f09c2[_0x152046(0x1be)](_0x2a2ab7=>sameHost(_0x2a2ab7[_0x152046(0x2fa)+'me'],_0x25513c))||null;}catch(_0x472cd3){return console[_0x152046(0x1c5)]('[camer'+_0x152046(0x25e)+_0x152046(0x310)+'fallba'+'ck',_0x472cd3?.[_0x152046(0x26a)+'e']||_0x472cd3),null;}}async function openOnvif(_0x2d54dd){const _0x4817ac=_0x1e0c05,_0xb3b80d=createCam(_0x2d54dd);return await _0xb3b80d[_0x4817ac(0x33a)+'t'](),_0xb3b80d;}export async function connectCamera(_0x197ab5={}){const _0x2c506c=_0x1e0c05;let _0x574f39=String(_0x197ab5['hostna'+'me']||'')[_0x2c506c(0x1f3)](),_0x9df31c=Number(_0x197ab5['port']||0x50);const _0x5ef98a=String(_0x197ab5[_0x2c506c(0x367)+'me']||'')[_0x2c506c(0x1f3)](),_0x3f9a1b=String(_0x197ab5[_0x2c506c(0x2f1)+'rd']||'');let _0x5b3929=String(_0x197ab5[_0x2c506c(0x250)]||_0x2c506c(0x372)+_0x2c506c(0x389)+_0x2c506c(0x3b8)+_0x2c506c(0x1c6))['trim']()||_0x2c506c(0x372)+_0x2c506c(0x389)+_0x2c506c(0x3b8)+_0x2c506c(0x1c6);if(!_0x574f39)throw new Error(_0x2c506c(0x2aa)+'地址');stopAllFfmpeg(),await new Promise(_0x2d8945=>setTimeout(_0x2d8945,0x32));state[_0x2c506c(0x2c9)]==='onboar'+'d'&&disconnectCamera();let _0x3cb67f;const _0x448663={'username':_0x5ef98a,'password':_0x3f9a1b,'path':_0x5b3929},_0x1ad462=onvifProbePorts(_0x9df31c);let _0x13f552=await probeOpenPorts(_0x574f39,_0x1ad462,ONVIF_TCP_PROBE_MS);!_0x13f552['length']&&(console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x266)+_0x2c506c(0x371)+_0x2c506c(0x1ad),_0x574f39+':'+_0x1ad462[_0x2c506c(0x2e9)](',')),await new Promise(_0x9e867a=>setTimeout(_0x9e867a,0xc8)),_0x13f552=await probeOpenPorts(_0x574f39,_0x1ad462,0x320));if(!_0x13f552[_0x2c506c(0x31a)])console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+'a]\x20tcp'+_0x2c506c(0x32c)+_0x2c506c(0x22b)+_0x2c506c(0x1f2)+_0x2c506c(0x204),_0x574f39);else{const _0x5619b3=_0x13f552[_0x2c506c(0x22a)+'es'](_0x9df31c)?[_0x9df31c,..._0x13f552[_0x2c506c(0x34d)](_0x3e4e96=>_0x3e4e96!==_0x9df31c)[_0x2c506c(0x3a3)](0x0,0x1)]:_0x13f552[_0x2c506c(0x3a3)](0x0,0x2);for(const _0x303d43 of _0x5619b3){const _0x43a0d0=_0x303d43===_0x9df31c?ONVIF_CONNECT_TIMEOUT_MS:ONVIF_FAST_TIMEOUT_MS;try{console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+'a]\x20onv'+'if',_0x574f39+':'+_0x303d43+_0x5b3929,_0x2c506c(0x216)+'t',_0x43a0d0),_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x303d43,..._0x448663,'timeout':_0x43a0d0}),_0x9df31c=_0x303d43;break;}catch(_0x4b71ee){console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x1f9)+_0x2c506c(0x284)+_0x2c506c(0x3ae),_0x574f39+':'+_0x303d43+_0x5b3929,_0x4b71ee?.[_0x2c506c(0x26a)+'e']||_0x4b71ee);if(!isNetworkError(_0x4b71ee))throw new Error(cameraError(_0x4b71ee,_0x2c506c(0x364)+'败'));}}}if(!_0x3cb67f&&_0x13f552[_0x2c506c(0x22a)+'es'](_0x9df31c))try{console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+_0x2c506c(0x2ee)+_0x2c506c(0x396)+'e',_0x574f39+':'+_0x9df31c+_0x5b3929),_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x9df31c,..._0x448663,'timeout':ONVIF_CONNECT_TIMEOUT_MS});}catch(_0x1a07be){console[_0x2c506c(0x1c5)]('[camer'+_0x2c506c(0x2ee)+_0x2c506c(0x288)+'l',_0x574f39+':'+_0x9df31c+_0x5b3929,_0x1a07be?.[_0x2c506c(0x26a)+'e']||_0x1a07be);if(!isNetworkError(_0x1a07be))throw new Error(cameraError(_0x1a07be,_0x2c506c(0x364)+'败'));}if(!_0x3cb67f){const _0x34bcfc=await resolveDiscoveredEndpoint(_0x574f39);if(_0x34bcfc&&!sameOnvifEndpoint({'hostname':_0x574f39,'port':_0x9df31c,'path':_0x5b3929},_0x34bcfc)){_0x574f39=_0x34bcfc[_0x2c506c(0x2fa)+'me'],_0x9df31c=Number(_0x34bcfc['port']||_0x9df31c),_0x5b3929=_0x34bcfc[_0x2c506c(0x250)]||_0x5b3929,console[_0x2c506c(0x2c0)](_0x2c506c(0x35c)+_0x2c506c(0x2ee)+_0x2c506c(0x1f6)+_0x2c506c(0x1d4)+'d',_0x574f39+':'+_0x9df31c+_0x5b3929);try{_0x3cb67f=await openOnvif({'hostname':_0x574f39,'port':_0x9df31c,'username':_0x5ef98a,'password':_0x3f9a1b,'path':_0x5b3929});}catch(_0x5e549a){throw new Error(cameraError(_0x5e549a,_0x2c506c(0x364)+'败'));}}else throw new Error(cameraError(new Error(_0x2c506c(0x283)+'k\x20time'+_0x2c506c(0x290)),_0x2c506c(0x364)+'败'));}let _0x36e809=null;try{_0x36e809=await _0x3cb67f[_0x2c506c(0x28c)+_0x2c506c(0x1ca)+_0x2c506c(0x2e8)+'on']();}catch{_0x36e809=null;}let _0x24d5b0='';const _0x2c3990=pickPreviewSource(_0x3cb67f);let _0x45e470='';try{const _0xeb9a5a=await _0x3cb67f[_0x2c506c(0x369)+_0x2c506c(0x1e7)]({'protocol':_0x2c506c(0x240),'profileToken':_0x2c3990?.['profil'+_0x2c506c(0x1e4)]});_0x45e470=mediaUriOf(_0xeb9a5a);}catch(_0x503d25){console[_0x2c506c(0x1c5)](_0x2c506c(0x3a9)+_0x2c506c(0x39e)+_0x2c506c(0x249),_0x503d25?.[_0x2c506c(0x26a)+'e']||_0x503d25);}if(!_0x45e470)try{const _0x56c651=await _0x3cb67f['getSna'+_0x2c506c(0x223)+'ri']({'profileToken':_0x2c3990?.[_0x2c506c(0x387)+_0x2c506c(0x1e4)]});_0x24d5b0=mediaUriOf(_0x56c651);}catch(_0x4e5b47){console[_0x2c506c(0x1c5)](_0x2c506c(0x3a9)+_0x2c506c(0x36c)+_0x2c506c(0x2e0)+'ri',_0x4e5b47?.[_0x2c506c(0x26a)+'e']||_0x4e5b47);}resetDigest(),currentCam=_0x3cb67f,state[_0x2c506c(0x33a)+_0x2c506c(0x1af)]=!![],state[_0x2c506c(0x2fa)+'me']=_0x574f39,state[_0x2c506c(0x2c7)]=_0x9df31c,state[_0x2c506c(0x250)]=_0x5b3929,state[_0x2c506c(0x367)+'me']=_0x5ef98a,state[_0x2c506c(0x2f1)+'rd']=_0x3f9a1b,state[_0x2c506c(0x2cb)+_0x2c506c(0x22e)]=_0x24d5b0,state[_0x2c506c(0x23d)+'i']=_0x45e470,state[_0x2c506c(0x291)+'ng']=detectEncoding(_0x2c3990),state[_0x2c506c(0x2dc)+'i']='',state['liveDi'+'rect']='',state[_0x2c506c(0x38c)]=_0x36e809?{'manufacturer':_0x36e809[_0x2c506c(0x321)+_0x2c506c(0x357)]||'','model':_0x36e809['model']||'','firmware':_0x36e809['firmwa'+'reVers'+_0x2c506c(0x323)]||'','serial':_0x36e809[_0x2c506c(0x2a8)+_0x2c506c(0x22f)]||''}:null,state[_0x2c506c(0x390)]=!!(_0x3cb67f['capabi'+_0x2c506c(0x1d3)]?.['PTZ']||_0x3cb67f['uri']?.[_0x2c506c(0x390)]),state['source']=_0x2c506c(0x30b),state[_0x2c506c(0x2c9)+_0x2c506c(0x256)]=[_0x36e809?.[_0x2c506c(0x321)+_0x2c506c(0x357)],_0x36e809?.[_0x2c506c(0x222)]][_0x2c506c(0x34d)](Boolean)['join']('\x20')||_0x574f39;if(_0x45e470)console['log'](_0x2c506c(0x35c)+_0x2c506c(0x34a)+'p',state[_0x2c506c(0x291)+'ng']||_0x2c506c(0x3ab)+'n',_0x574f39);else try{const _0x5a7a9e=await findNativeLive({'hostname':_0x574f39,'port':_0x9df31c,'username':_0x5ef98a,'password':_0x3f9a1b,'manufacturer':_0x36e809?.[_0x2c506c(0x321)+_0x2c506c(0x357)]||'','snapshotUri':_0x24d5b0,'profileToken':_0x2c3990?.[_0x2c506c(0x387)+_0x2c506c(0x1e4)]});state[_0x2c506c(0x2dc)+'i']=_0x5a7a9e,state[_0x2c506c(0x1d9)+_0x2c506c(0x1d8)]=_0x5a7a9e&&isQueryAuthUrl(_0x5a7a9e)?_0x5a7a9e:'';}catch(_0x339471){console[_0x2c506c(0x1c5)](_0x2c506c(0x35c)+_0x2c506c(0x361)+_0x2c506c(0x31b)+'ch',_0x339471?.['messag'+'e']||_0x339471);}return publicState();}export function disconnectCamera(){const _0x3b7756=_0x1e0c05,_0x217b64=state['source']===_0x3b7756(0x213)+'d';stopAllFfmpeg(),currentCam=null,resetDigest();try{httpAgent[_0x3b7756(0x39f)+'y']();}catch{}try{httpsAgent[_0x3b7756(0x39f)+'y']();}catch{}return state[_0x3b7756(0x33a)+_0x3b7756(0x1af)]=![],state[_0x3b7756(0x2cb)+_0x3b7756(0x22e)]='',state['rtspUr'+'i']='',state[_0x3b7756(0x291)+'ng']='',state[_0x3b7756(0x2dc)+'i']='',state['liveDi'+'rect']='',state['info']=null,state[_0x3b7756(0x390)]=![],state[_0x3b7756(0x2c9)]='',state[_0x3b7756(0x2c9)+_0x3b7756(0x256)]='',lastOnboardJpeg=null,onboardPreviewClients=0x0,_0x217b64&&void disarmOnboardCamera(),publicState();}export function getCameraState(){return publicState();}function onboardBaseUrl(){const _0x3d7d90=_0x1e0c05;return String(cameraHooks[_0x3d7d90(0x28c)+_0x3d7d90(0x28f)+'eUrl']?.()||'')['replac'+'e'](/\/$/,'');}export async function disarmOnboardCamera(){const _0x2023b4=_0x1e0c05,_0x4c499=onboardBaseUrl();if(!_0x4c499)return![];try{return await fetch(_0x4c499+(_0x2023b4(0x1c2)+_0x2023b4(0x278)+'rm'),{'method':_0x2023b4(0x29f),'signal':AbortSignal['timeou'+'t'](ONBOARD_DISARM_TIMEOUT_MS)}),!![];}catch{return![];}}function noteOnboardPreviewClient(_0x3c81de){const _0x299906=onboardPreviewClients;onboardPreviewClients=Math['max'](0x0,onboardPreviewClients+_0x3c81de),_0x299906>0x0&&onboardPreviewClients===0x0&&void disarmOnboardCamera();}async function fetchOnboardJpeg(){const _0x48a2f7=_0x1e0c05,_0x340a7e=onboardBaseUrl();if(!_0x340a7e)throw new Error(_0x48a2f7(0x392)+_0x48a2f7(0x24e)+_0x48a2f7(0x343)+_0x48a2f7(0x2f5));const _0x1ec15f=_0x340a7e+(_0x48a2f7(0x1c2)+_0x48a2f7(0x1f0)+_0x48a2f7(0x1b6));let _0x5568b6;try{_0x5568b6=await fetch(_0x1ec15f,{'signal':AbortSignal[_0x48a2f7(0x216)+'t'](ONBOARD_FETCH_TIMEOUT_MS),'headers':{'Accept':_0x48a2f7(0x2cc)+_0x48a2f7(0x338)}});}catch(_0x30c688){const _0x2e913f=_0x30c688?.[_0x48a2f7(0x237)]?.[_0x48a2f7(0x26a)+'e']||_0x30c688?.['messag'+'e']||_0x30c688;throw new Error(_0x48a2f7(0x1c0)+_0x48a2f7(0x235)+_0x1ec15f+':'+_0x2e913f);}if(_0x5568b6[_0x48a2f7(0x25c)]===0xcc)return null;if(!_0x5568b6['ok'])throw new Error(_0x48a2f7(0x380)+'回\x20'+_0x5568b6[_0x48a2f7(0x25c)]);const _0x3d0916=Buffer[_0x48a2f7(0x232)](await _0x5568b6[_0x48a2f7(0x376)+_0x48a2f7(0x246)]());if(_0x3d0916[_0x48a2f7(0x31a)])lastOnboardJpeg=_0x3d0916;return _0x3d0916;}async function getOnboardSnapshot(){const _0x13d49c=_0x1e0c05;if(onboardFetchInFlight)try{return await onboardFetchInFlight;}catch{}return onboardFetchInFlight=fetchOnboardJpeg()[_0x13d49c(0x2ae)+'y'](()=>{onboardFetchInFlight=null;}),onboardFetchInFlight;}export async function connectOnboardCamera(){throw new Error('板载画面暂不'+'支持');}async function ptzOnboard(_0x1a5f18,_0x4500d3={}){const _0x39b21e=_0x1e0c05;if(!cameraHooks[_0x39b21e(0x3b4)+_0x39b21e(0x39c)+'l'])throw new Error(_0x39b21e(0x2b8)+'绪');const _0x2a110b=String(_0x4500d3[_0x39b21e(0x1cf)]||''),_0x1e4239=String(_0x1a5f18||''),_0x54a031=_0x1e4239[_0x39b21e(0x263)+_0x39b21e(0x2de)](_0x39b21e(0x23a))?_0x1e4239[_0x39b21e(0x3a3)](0x6):_0x1e4239;if(_0x2a110b===_0x39b21e(0x1ed)||_0x1e4239[_0x39b21e(0x263)+_0x39b21e(0x2de)](_0x39b21e(0x23a)))return await cameraHooks[_0x39b21e(0x3b4)+_0x39b21e(0x39c)+'l'](payloadForNudge(_0x54a031)),{'ok':!![]};return await cameraHooks[_0x39b21e(0x3b4)+'hGimba'+'l'](payloadForAction(_0x1e4239)),{'ok':!![]};}function md5(_0x2f905d){const _0x41e06c=_0x1e0c05;return _0x36ab43[_0x41e06c(0x24d)+_0x41e06c(0x1e9)](_0x41e06c(0x226))[_0x41e06c(0x200)](_0x2f905d)['digest'](_0x41e06c(0x2b6));}function parseChallenge(_0x1f7478){const _0x4f31fe=_0x1e0c05,_0x50127f={'scheme':'digest'},_0x4a5906=String(_0x1f7478||'')[_0x4f31fe(0x340)](/^(\w+)\s+(.*)$/);if(!_0x4a5906)return _0x50127f;_0x50127f[_0x4f31fe(0x1d2)]=_0x4a5906[0x1][_0x4f31fe(0x272)+'rCase']();for(const _0x1d4318 of _0x4a5906[0x2][_0x4f31fe(0x2dd)](/,(?=(?:[^"]*"[^"]*")*[^"]*$)/)){const _0x2847e5=_0x1d4318[_0x4f31fe(0x1ec)+'f']('=');if(_0x2847e5<0x0)continue;const _0x5878b9=_0x1d4318[_0x4f31fe(0x3a3)](0x0,_0x2847e5)[_0x4f31fe(0x1f3)]();_0x50127f[_0x5878b9]=_0x1d4318[_0x4f31fe(0x3a3)](_0x2847e5+0x1)[_0x4f31fe(0x1f3)]()['replac'+'e'](/^"|"$/g,'');}return _0x50127f;}function digestAuth(_0xcac942,_0x52514b,_0x4be5b8,_0x367ca3,_0xfd9050,_0x51f676){const _0x29b836=_0x1e0c05,_0x488a23=String(_0x51f676)[_0x29b836(0x29a)+'rt'](0x8,'0'),_0x210cd6=_0x36ab43[_0x29b836(0x3b7)+_0x29b836(0x3b0)](0x8)['toStri'+'ng'](_0x29b836(0x2b6)),_0x367117=(_0xcac942[_0x29b836(0x388)]||_0x29b836(0x1c8))[_0x29b836(0x2dd)](',')[0x0][_0x29b836(0x1f3)]()||_0x29b836(0x1c8),_0x60880d=md5(_0x52514b+':'+_0xcac942[_0x29b836(0x2d2)]+':'+_0x4be5b8),_0x153a11=md5(_0x367ca3+':'+_0xfd9050),_0x241826=_0xcac942['qop']?md5(_0x60880d+':'+_0xcac942[_0x29b836(0x1b7)]+':'+_0x488a23+':'+_0x210cd6+':'+_0x367117+':'+_0x153a11):md5(_0x60880d+':'+_0xcac942[_0x29b836(0x1b7)]+':'+_0x153a11),_0x106b78=[_0x29b836(0x367)+_0x29b836(0x30c)+_0x52514b+'\x22',_0x29b836(0x254)+'\x22'+_0xcac942[_0x29b836(0x2d2)]+'\x22',_0x29b836(0x373)+'\x22'+_0xcac942[_0x29b836(0x1b7)]+'\x22',_0x29b836(0x1fc)+_0xfd9050+'\x22',_0x29b836(0x318)+_0x29b836(0x1f7)+_0x241826+'\x22'];if(_0xcac942[_0x29b836(0x220)])_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x220)+'=\x22'+_0xcac942[_0x29b836(0x220)]+'\x22');_0xcac942[_0x29b836(0x388)]&&_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x395)+_0x367117,'nc='+_0x488a23,_0x29b836(0x26f)+'=\x22'+_0x210cd6+'\x22');if(_0xcac942[_0x29b836(0x33b)+'thm'])_0x106b78[_0x29b836(0x1ee)](_0x29b836(0x33b)+_0x29b836(0x21b)+_0xcac942[_0x29b836(0x33b)+_0x29b836(0x1de)]);return _0x29b836(0x38b)+'\x20'+_0x106b78['join'](',\x20');}function digestHeader(_0x4cf0ab,_0x384fd3,_0x5244de,_0x54a0be,_0x4bee95){return digestAuth(_0x4cf0ab,_0x384fd3,_0x5244de,_0x54a0be,_0x4bee95,digestState['nc']++);}function isQueryAuthUrl(_0x4e5974){const _0x55211d=_0x1e0c05;return/[?&](user|usr|username|loginuse)=/i[_0x55211d(0x299)](_0x4e5974)&&/[?&](pwd|password|pass|loginpas)=/i['test'](_0x4e5974);}function isLiveMjpeg(_0x10bc44,_0x2f7408){const _0x422f1a=_0x1e0c05,_0x4e8b6c=String(_0x10bc44||''),_0x1d81e6=String(_0x2f7408||'');if(/multipart\/x-mixed-replace/i[_0x422f1a(0x299)](_0x4e8b6c))return!![];if(/mjpeg/i[_0x422f1a(0x299)](_0x4e8b6c))return!![];if(/Content-Type:\s*image\/jpeg/i[_0x422f1a(0x299)](_0x1d81e6)&&_0x1d81e6[_0x422f1a(0x22a)+'es']('--'))return!![];return![];}function liveCandidates({hostname:_0xb80276,port:_0x8ca03e,username:_0x40451c,password:_0x463f52,manufacturer:_0x5247dc,snapshotUri:_0x3cd9ed}){const _0x4084de=_0x1e0c05,_0x4fa23a=[],_0x1bd252=(_0x47e858,_0x34e31e)=>{const _0x1aefaa=_0x256b;if(!_0x47e858)return;const _0x1f4af5={'host':_0x47e858,'port':Number(_0x34e31e||0x50)};if(!_0x4fa23a[_0x1aefaa(0x292)](_0x444143=>_0x444143[_0x1aefaa(0x1cc)]===_0x1f4af5[_0x1aefaa(0x1cc)]&&_0x444143['port']===_0x1f4af5['port']))_0x4fa23a['push'](_0x1f4af5);};_0x1bd252(_0xb80276,_0x8ca03e&&_0x8ca03e!==0x22a?_0x8ca03e:0x50),_0x1bd252(_0xb80276,0x50);if(_0x3cd9ed)try{const _0x543f9e=new URL(_0x3cd9ed);_0x1bd252(_0x543f9e['hostna'+'me'],_0x543f9e['port']||0x50);}catch{}const _0x45ed31=encodeURIComponent(_0x40451c||''),_0xd622e7=encodeURIComponent(_0x463f52||''),_0x30229a=String(_0x5247dc||'')[_0x4084de(0x272)+_0x4084de(0x1e0)](),_0x4ebaec=[_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+_0x4084de(0x362)+_0x4084de(0x311)+_0x4084de(0x31e)+_0x4084de(0x36b),_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+_0x4084de(0x362)+_0x4084de(0x277)+_0x4084de(0x31e)+_0x4084de(0x36b),'/ISAPI'+_0x4084de(0x2c1)+_0x4084de(0x3a6)+'hannel'+_0x4084de(0x2d7)+_0x4084de(0x31e)+_0x4084de(0x36b),_0x4084de(0x1e8)+_0x4084de(0x2c1)+_0x4084de(0x3a6)+'hannel'+_0x4084de(0x304)+_0x4084de(0x31e)+'eview'],_0x56a746=[_0x4084de(0x38f)+'in/mjp'+_0x4084de(0x27c)+_0x4084de(0x207)+_0x4084de(0x32d)+'l=1&su'+_0x4084de(0x295)+'1',_0x4084de(0x38f)+_0x4084de(0x3b2)+_0x4084de(0x27c)+'o.cgi?'+_0x4084de(0x32d)+_0x4084de(0x281)+_0x4084de(0x295)+'0'],_0x5203a7=['/video'+_0x4084de(0x37b)+_0x4084de(0x2bc)+_0x4084de(0x1bd)+_0x45ed31+'&pwd='+_0xd622e7,'/video'+_0x4084de(0x37b)+_0x4084de(0x261)+_0x4084de(0x205)+'e='+_0x45ed31+(_0x4084de(0x368)+_0x4084de(0x1cb))+_0xd622e7,_0x4084de(0x29e)+_0x4084de(0x37b)+_0x4084de(0x349),_0x4084de(0x202)+_0x4084de(0x349),_0x4084de(0x29e)+_0x4084de(0x398),_0x4084de(0x23e)+_0x4084de(0x2fb)+_0x4084de(0x360),_0x4084de(0x38f)+_0x4084de(0x3b2)+'eg',_0x4084de(0x224)+_0x4084de(0x1b2)+_0x4084de(0x397)+_0x4084de(0x307),_0x4084de(0x34c)+_0x4084de(0x202)+_0x4084de(0x349),_0x4084de(0x38f)+_0x4084de(0x25a)+_0x4084de(0x280)+_0x4084de(0x32e)+'i',_0x4084de(0x386)+_0x4084de(0x28b)+_0x4084de(0x2f6),_0x4084de(0x306)+'m'];let _0x15d827=[];if(/hik|海康/[_0x4084de(0x299)](_0x30229a))_0x15d827=[..._0x4ebaec,..._0x5203a7,..._0x56a746];else{if(/dahua|大华/['test'](_0x30229a))_0x15d827=[..._0x56a746,..._0x5203a7,..._0x4ebaec];else _0x15d827=[..._0x5203a7,..._0x4ebaec,..._0x56a746];}const _0x3e48d0=[];for(const _0x213a15 of _0x4fa23a){const _0x160339=_0x213a15['port']===0x50?_0x4084de(0x2e2)+'/'+_0x213a15['host']:_0x4084de(0x2e2)+'/'+_0x213a15[_0x4084de(0x1cc)]+':'+_0x213a15[_0x4084de(0x2c7)];for(const _0x570e8a of _0x15d827)_0x3e48d0[_0x4084de(0x1ee)](_0x160339+_0x570e8a);}return[...new Set(_0x3e48d0)];}function openCameraHttp(_0x2307a0,_0x3ee3d5,_0x1aa5f0,_0x303a1b=0xfa0){return new Promise((_0x51cdce,_0x35b3d8)=>{const _0x556816=_0x256b,_0x282518=new URL(_0x2307a0),_0x4b9d63=decodeURIComponent(_0x282518[_0x556816(0x367)+'me']||_0x3ee3d5||''),_0x55a470=decodeURIComponent(_0x282518[_0x556816(0x2f1)+'rd']||_0x1aa5f0||'');_0x282518[_0x556816(0x367)+'me']='',_0x282518[_0x556816(0x2f1)+'rd']='';const _0x3fec71=_0x282518[_0x556816(0x2e4)+'ol']===_0x556816(0x382),_0x445adc=_0x3fec71?_0x2ba84b:_0x61aba5;let _0x7d28ba=![],_0x555b67=0x1;const _0x18337e=(_0x581a28,_0x22b3f0)=>{if(_0x7d28ba)return;_0x7d28ba=!![];if(_0x581a28)_0x35b3d8(_0x581a28);else _0x51cdce(_0x22b3f0);},_0x38be02=_0x325b00=>{const _0x2fa980=_0x556816,_0x5afbcb=_0x282518[_0x2fa980(0x3a2)+'me']+_0x282518['search'],_0x495a49={'Accept':_0x2fa980(0x2c4)+_0x2fa980(0x2ff)+_0x2fa980(0x2fc)+_0x2fa980(0x341)+_0x2fa980(0x274)+_0x2fa980(0x227)+_0x2fa980(0x28d),'Connection':_0x2fa980(0x37d)};if(_0x325b00?.[_0x2fa980(0x1d2)]===_0x2fa980(0x28a)&&_0x4b9d63)_0x495a49[_0x2fa980(0x399)+'izatio'+'n']=digestAuth(_0x325b00,_0x4b9d63,_0x55a470,_0x2fa980(0x38d),_0x5afbcb,_0x555b67++);else _0x4b9d63&&(_0x495a49[_0x2fa980(0x399)+'izatio'+'n']=_0x2fa980(0x236)+Buffer[_0x2fa980(0x232)](_0x4b9d63+':'+_0x55a470)[_0x2fa980(0x2cf)+'ng'](_0x2fa980(0x22d)));return _0x495a49;},_0x9baf7=_0x534211=>{const _0x46ce99=_0x556816,_0x11c308=_0x445adc['reques'+'t']({'protocol':_0x282518[_0x46ce99(0x2e4)+'ol'],'hostname':_0x282518['hostna'+'me'],'port':_0x282518['port']||(_0x3fec71?0x1bb:0x50),'path':_0x282518[_0x46ce99(0x3a2)+'me']+_0x282518[_0x46ce99(0x2b2)],'method':_0x46ce99(0x38d),'headers':_0x38be02(_0x534211),'timeout':_0x303a1b,'rejectUnauthorized':![],'agent':![]},_0x5e3bd4=>{const _0x538b9a=_0x46ce99;if(_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]===0x191&&!_0x534211){const _0x4e6881=_0x5e3bd4[_0x538b9a(0x267)+'s'][_0x538b9a(0x218)+_0x538b9a(0x347)+_0x538b9a(0x35b)],_0x54c70f=parseChallenge(Array['isArra'+'y'](_0x4e6881)?_0x4e6881[0x0]:_0x4e6881||'');_0x5e3bd4[_0x538b9a(0x308)](),_0x9baf7(_0x54c70f);return;}if((_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]||0x0)>=0x190){_0x5e3bd4[_0x538b9a(0x308)](),_0x18337e(new Error(_0x538b9a(0x30d)+_0x5e3bd4[_0x538b9a(0x25c)+_0x538b9a(0x2d5)]));return;}_0x18337e(null,{'req':_0x11c308,'res':_0x5e3bd4,'contentType':String(_0x5e3bd4[_0x538b9a(0x267)+'s']['conten'+_0x538b9a(0x36a)]||'')});});_0x11c308['on'](_0x46ce99(0x216)+'t',()=>{const _0x2b0165=_0x46ce99;_0x11c308[_0x2b0165(0x39f)+'y'](),_0x18337e(new Error(_0x2b0165(0x216)+'t'));}),_0x11c308['on'](_0x46ce99(0x393),_0x55ec71=>_0x18337e(_0x55ec71)),_0x11c308[_0x46ce99(0x1c4)]();};try{_0x9baf7(null);}catch(_0x35b9e1){_0x18337e(_0x35b9e1);}});}function peekAndClose(_0x214f5d,_0x5b9223=0x2bc){return new Promise(_0x280321=>{const _0x1ef3e8=_0x256b,_0x3b3ce1=[];let _0x4c4cb3=![];const _0x3f69e2=()=>{const _0x19d2f7=_0x256b;if(_0x4c4cb3)return;_0x4c4cb3=!![];try{_0x214f5d[_0x19d2f7(0x2a2)][_0x19d2f7(0x39f)+'y']();}catch{}try{_0x214f5d[_0x19d2f7(0x215)][_0x19d2f7(0x39f)+'y']();}catch{}_0x280321({'contentType':_0x214f5d[_0x19d2f7(0x314)+_0x19d2f7(0x2ea)],'peek':Buffer[_0x19d2f7(0x201)](_0x3b3ce1)[_0x19d2f7(0x2cf)+'ng']('latin1')});};_0x214f5d[_0x1ef3e8(0x215)]['on'](_0x1ef3e8(0x30a),_0x42b8da=>{const _0x39fbee=_0x1ef3e8;_0x3b3ce1[_0x39fbee(0x1ee)](_0x42b8da);if(Buffer[_0x39fbee(0x201)](_0x3b3ce1)[_0x39fbee(0x31a)]>=0xf0)_0x3f69e2();}),_0x214f5d[_0x1ef3e8(0x215)]['on']('end',_0x3f69e2),_0x214f5d[_0x1ef3e8(0x215)]['on'](_0x1ef3e8(0x393),_0x3f69e2),setTimeout(_0x3f69e2,_0x5b9223);});}async function findNativeLive({hostname:_0x17ac85,port:_0x402f75,username:_0x2b264c,password:_0x5d24f2,manufacturer:_0x281847,snapshotUri:_0x351491,profileToken:_0x236dd3}){const _0x20c630=_0x1e0c05,_0x3bc6cf=liveCandidates({'hostname':_0x17ac85,'port':_0x402f75,'username':_0x2b264c,'password':_0x5d24f2,'manufacturer':_0x281847,'snapshotUri':_0x351491});if(currentCam)try{const _0x395e73=await currentCam[_0x20c630(0x369)+_0x20c630(0x1e7)]({'protocol':'HTTP','profileToken':_0x236dd3}),_0x2a5fe4=mediaUriOf(_0x395e73);if(/^https?:/i['test'](_0x2a5fe4)&&!/onvif/i[_0x20c630(0x299)](_0x2a5fe4))_0x3bc6cf['unshif'+'t'](_0x2a5fe4);}catch{}_0x3bc6cf[_0x20c630(0x26d)](0x8);let _0x371a51='';const _0x262001=[],_0x1e1af2=0x2;let _0x7b90ff=0x0;const _0x1cf507=async()=>{const _0xe94272=_0x20c630;while(_0x7b90ff<_0x3bc6cf[_0xe94272(0x31a)]&&!_0x371a51){const _0x3c5150=_0x3bc6cf[_0x7b90ff++];try{const _0x38bc74=await openCameraHttp(_0x3c5150,_0x2b264c,_0x5d24f2,0x640),_0x534d57=await peekAndClose(_0x38bc74);!_0x371a51&&isLiveMjpeg(_0x534d57[_0xe94272(0x314)+'tType'],_0x534d57[_0xe94272(0x23f)])&&(_0x371a51=_0x3c5150,console['log'](_0xe94272(0x35c)+_0xe94272(0x2c5)+_0xe94272(0x2f2)+_0xe94272(0x20d),_0x3c5150));}catch{}}};for(let _0x106428=0x0;_0x106428<_0x1e1af2;_0x106428++)_0x262001[_0x20c630(0x1ee)](_0x1cf507());return await Promise[_0x20c630(0x1df)](_0x262001),_0x371a51;}const SNAPSHOT_MAX_BYTES=0x2bc*0x400;export function extractFirstJpeg(_0x44d172){const _0x3ac2c1=_0x1e0c05;if(!_0x44d172||_0x44d172[_0x3ac2c1(0x31a)]<0x4)return null;const _0x409e9f=_0x44d172['indexO'+'f'](Buffer[_0x3ac2c1(0x232)]([0xff,0xd8]));if(_0x409e9f<0x0)return null;const _0x5ef289=_0x44d172[_0x3ac2c1(0x1ec)+'f'](Buffer[_0x3ac2c1(0x232)]([0xff,0xd9]),_0x409e9f+0x2);if(_0x5ef289<0x0)return null;return Buffer[_0x3ac2c1(0x232)](_0x44d172[_0x3ac2c1(0x333)+'ay'](_0x409e9f,_0x5ef289+0x2));}function requestOnce(_0x608010,_0x45a955,_0x4ef8d7=SNAPSHOT_HARD_TIMEOUT_MS){const _0x550a7d=Math['max'](0x190,Number(_0x4ef8d7)||SNAPSHOT_HARD_TIMEOUT_MS);return new Promise((_0x40124b,_0x36a3c2)=>{const _0x35abac=_0x256b;let _0x4f6477=![],_0x2ccd1f,_0x1513d6;const _0x519221=(_0x5d202f,_0x3c4805)=>{const _0xa0610a=_0x256b;if(_0x4f6477)return;_0x4f6477=!![],clearTimeout(_0x1513d6);try{_0x2ccd1f?.[_0xa0610a(0x39f)+'y']();}catch{}if(_0x5d202f)_0x36a3c2(_0x5d202f);else _0x40124b(_0x3c4805);},_0x361475=_0x608010[_0x35abac(0x2e4)+'ol']===_0x35abac(0x382),_0x807836=_0x361475?_0x2ba84b:_0x61aba5;_0x2ccd1f=_0x807836[_0x35abac(0x377)+'t']({'protocol':_0x608010[_0x35abac(0x2e4)+'ol'],'hostname':_0x608010['hostna'+'me'],'port':_0x608010[_0x35abac(0x2c7)]||(_0x361475?0x1bb:0x50),'path':_0x608010[_0x35abac(0x3a2)+'me']+_0x608010[_0x35abac(0x2b2)],'method':_0x35abac(0x38d),'headers':_0x45a955,'timeout':_0x550a7d,'agent':_0x361475?httpsAgent:httpAgent,'rejectUnauthorized':![]},_0x342f98=>{const _0x49c211=_0x35abac,_0x52c430=[];let _0x1e9559=0x0;const _0x3a43ee=_0x10f8d3=>{const _0x5ee877=_0x256b,_0x123498=Buffer[_0x5ee877(0x201)](_0x52c430),_0x4fbb2b=extractFirstJpeg(_0x123498);if(_0x4fbb2b)return _0x519221(null,{'status':_0x342f98[_0x5ee877(0x25c)+_0x5ee877(0x2d5)]||0x0,'headers':_0x342f98[_0x5ee877(0x267)+'s'],'body':_0x4fbb2b}),!![];if(_0x10f8d3)return _0x519221(null,{'status':_0x342f98[_0x5ee877(0x25c)+_0x5ee877(0x2d5)]||0x0,'headers':_0x342f98[_0x5ee877(0x267)+'s'],'body':_0x123498}),!![];return![];};_0x342f98['on']('data',_0x4c4177=>{const _0x1c12f7=_0x256b;_0x52c430[_0x1c12f7(0x1ee)](_0x4c4177),_0x1e9559+=_0x4c4177[_0x1c12f7(0x31a)];if(_0x3a43ee(![]))return;_0x1e9559>SNAPSHOT_MAX_BYTES&&_0x519221(new Error(_0x1c12f7(0x3b3)));}),_0x342f98['on'](_0x49c211(0x1c4),()=>{if(!_0x4f6477)_0x3a43ee(!![]);});}),_0x1513d6=setTimeout(()=>_0x519221(new Error(_0x35abac(0x208))),_0x550a7d),_0x2ccd1f['on'](_0x35abac(0x216)+'t',()=>_0x519221(new Error(_0x35abac(0x208)))),_0x2ccd1f['on'](_0x35abac(0x393),_0xe63750=>_0x519221(_0xe63750)),_0x2ccd1f[_0x35abac(0x1c4)]();});}function authHeaders(_0x1efcda,_0x350ce4,_0x6a6471){const _0x4fa763=_0x1e0c05,_0xc34ff6=_0x1efcda['pathna'+'me']+_0x1efcda['search'];if(digestState[_0x4fa763(0x2c8)+_0x4fa763(0x27a)]?.[_0x4fa763(0x1d2)]===_0x4fa763(0x28a)&&_0x350ce4)return{'Authorization':digestHeader(digestState[_0x4fa763(0x2c8)+'nge'],_0x350ce4,_0x6a6471,'GET',_0xc34ff6)};if(_0x350ce4)return{'Authorization':_0x4fa763(0x236)+Buffer['from'](_0x350ce4+':'+_0x6a6471)[_0x4fa763(0x2cf)+'ng'](_0x4fa763(0x22d))};return{};}async function fetchAuthImage(_0x112568,_0x34059f,_0x620424,_0x5bc4f6=0x0,_0x50b861=SNAPSHOT_HARD_TIMEOUT_MS){const _0x41fcbe=_0x1e0c05;if(_0x5bc4f6>0x3)throw new Error(_0x41fcbe(0x37f)+'过多');const _0x3ff73b=new URL(_0x112568),_0x536545=decodeURIComponent(_0x3ff73b[_0x41fcbe(0x367)+'me']||_0x34059f||''),_0x2660dd=decodeURIComponent(_0x3ff73b[_0x41fcbe(0x2f1)+'rd']||_0x620424||'');_0x3ff73b[_0x41fcbe(0x367)+'me']='',_0x3ff73b['passwo'+'rd']='';const _0x119d73=_0x3ff73b[_0x41fcbe(0x3a2)+'me']+_0x3ff73b[_0x41fcbe(0x2b2)];let _0x57663c=await requestOnce(_0x3ff73b,authHeaders(_0x3ff73b,_0x536545,_0x2660dd),_0x50b861);if(_0x57663c[_0x41fcbe(0x25c)]===0x191){const _0x234ed8=_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x218)+_0x41fcbe(0x347)+_0x41fcbe(0x35b)]||'';digestState['challe'+'nge']=parseChallenge(Array[_0x41fcbe(0x1ba)+'y'](_0x234ed8)?_0x234ed8[0x0]:_0x234ed8),digestState['nc']=0x1;const _0x4024ee={};if(digestState[_0x41fcbe(0x2c8)+_0x41fcbe(0x27a)][_0x41fcbe(0x1d2)]===_0x41fcbe(0x28a)&&_0x536545)_0x4024ee[_0x41fcbe(0x399)+'izatio'+'n']=digestHeader(digestState[_0x41fcbe(0x2c8)+_0x41fcbe(0x27a)],_0x536545,_0x2660dd,_0x41fcbe(0x38d),_0x119d73);else _0x536545&&(_0x4024ee[_0x41fcbe(0x399)+_0x41fcbe(0x1fd)+'n']=_0x41fcbe(0x236)+Buffer[_0x41fcbe(0x232)](_0x536545+':'+_0x2660dd)['toStri'+'ng']('base64'));_0x57663c=await requestOnce(_0x3ff73b,_0x4024ee,_0x50b861);}if(_0x57663c['status']>=0x12c&&_0x57663c[_0x41fcbe(0x25c)]<0x190&&_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x269)+'on'])return fetchAuthImage(new URL(_0x57663c[_0x41fcbe(0x267)+'s']['locati'+'on'],_0x3ff73b)[_0x41fcbe(0x32f)],_0x536545,_0x2660dd,_0x5bc4f6+0x1,_0x50b861);if(_0x57663c['status']>=0x190)throw new Error(_0x57663c[_0x41fcbe(0x25c)]===0x191?_0x41fcbe(0x1d1)+'密码':_0x41fcbe(0x2f7)+_0x57663c[_0x41fcbe(0x25c)]+')');const _0x1f3104=String(_0x57663c[_0x41fcbe(0x267)+'s'][_0x41fcbe(0x314)+'t-type']||'');if(_0x1f3104[_0x41fcbe(0x22a)+'es'](_0x41fcbe(0x36e))||_0x1f3104[_0x41fcbe(0x22a)+'es'](_0x41fcbe(0x3b9)))throw new Error(_0x41fcbe(0x259)+_0x41fcbe(0x1cd));return _0x57663c[_0x41fcbe(0x3ba)];}function withSnapshotLock(_0x2abae0){const _0x2e36d2=_0x1e0c05,_0x69616a=snapshotTail[_0x2e36d2(0x313)](_0x2abae0,_0x2abae0);return snapshotTail=_0x69616a[_0x2e36d2(0x21a)](()=>{}),_0x69616a;}async function waitForPtzIdle(_0x6fa0bc=0xfa0){if(!ptzBusy)return;const _0x1a56eb=Date['now']();while(ptzBusy&&Date['now']()-_0x1a56eb<_0x6fa0bc){await new Promise(_0x3d0edc=>setTimeout(_0x3d0edc,0x28));}if(ptzBusy)return;await new Promise(_0x4e07bb=>setTimeout(_0x4e07bb,0x190));}export async function waitCameraReachable({timeoutMs:timeoutMs=0x640,intervalMs:intervalMs=0xdc}={}){const _0x33e6f0=_0x1e0c05,_0x8d525=String(state[_0x33e6f0(0x2fa)+'me']||'')['trim']();if(!_0x8d525)return{'http':![],'rtsp':![]};const _0x481e2b=Number(state[_0x33e6f0(0x2c7)])||0x50,_0x4ac34a=rtspPortOf(state[_0x33e6f0(0x23d)+'i']),_0x4e89d1=Date['now']()+Math[_0x33e6f0(0x384)](0x0,Number(timeoutMs)||0x0);do{const _0x733a2f=Math[_0x33e6f0(0x384)](0x50,_0x4e89d1-Date[_0x33e6f0(0x23c)]()),_0x566da8=Math[_0x33e6f0(0x348)](RTSP_TCP_PROBE_MS,_0x733a2f),[_0xd84090,_0x362363]=await Promise[_0x33e6f0(0x1df)]([probeTcp(_0x8d525,_0x481e2b,_0x566da8),state[_0x33e6f0(0x23d)+'i']?probeTcp(_0x8d525,_0x4ac34a,_0x566da8):Promise[_0x33e6f0(0x33d)+'e'](![])]);if(_0xd84090||_0x362363)return{'http':_0xd84090,'rtsp':_0x362363};const _0x1d4a37=Math[_0x33e6f0(0x348)](intervalMs,Math[_0x33e6f0(0x384)](0x0,_0x4e89d1-Date[_0x33e6f0(0x23c)]()));if(_0x1d4a37<=0x0)break;await new Promise(_0x43fdae=>setTimeout(_0x43fdae,_0x1d4a37));}while(Date[_0x33e6f0(0x23c)]()<_0x4e89d1);return{'http':![],'rtsp':![]};}function ffmpegRtspInputArgs(_0xbd9801,{hevc:hevc=![],oneshot:oneshot=![]}={}){const _0x5a248a=_0x1e0c05,_0x566682=oneshot?hevc?_0x5a248a(0x2b3):'300000':hevc?_0x5a248a(0x2fe)+'0':_0x5a248a(0x385),_0x15fe82=oneshot?hevc?'800000':_0x5a248a(0x305):hevc?'200000'+'0':_0x5a248a(0x385);return[_0x5a248a(0x365)+'banner',_0x5a248a(0x287)+_0x5a248a(0x319),oneshot?_0x5a248a(0x393):_0x5a248a(0x3b1)+'g',_0x5a248a(0x316)+_0x5a248a(0x233)+'ort',_0x5a248a(0x1b1),_0x5a248a(0x38e)+'ut',String(oneshot?FFMPEG_ONESHOT_TIMEOUT_US:FFMPEG_LIVE_TIMEOUT_US),_0x5a248a(0x268)+'s',oneshot?_0x5a248a(0x315)+_0x5a248a(0x30e)+_0x5a248a(0x2bf):_0x5a248a(0x24c),_0x5a248a(0x34e)+_0x5a248a(0x2a4),_0x566682,_0x5a248a(0x1fa)+_0x5a248a(0x2f9)+'tion',_0x15fe82,...oneshot?[]:[_0x5a248a(0x2f3)+'ds','1'],'-i',_0xbd9801,'-an'];}async function captureFrameFromRtspOnce(_0x12776={}){const _0x3b1dd5=_0x1e0c05;if(!state['rtspUr'+'i'])throw new Error(_0x3b1dd5(0x1c1)+_0x3b1dd5(0x217));const _0x300721=Math[_0x3b1dd5(0x384)](0x320,Number(_0x12776[_0x3b1dd5(0x216)+_0x3b1dd5(0x20e)])||RTSP_FRAME_TIMEOUT_MS),_0x28c8b0=await ensureFfmpeg(),_0x365e09=injectRtspAuth(state[_0x3b1dd5(0x23d)+'i'],state[_0x3b1dd5(0x367)+'me'],state[_0x3b1dd5(0x2f1)+'rd']),_0x1e3249=/hevc|h265/[_0x3b1dd5(0x299)](state[_0x3b1dd5(0x291)+'ng']);return new Promise((_0x571473,_0x41ed37)=>{const _0x55769f=_0x3b1dd5,_0x3f487f=[...ffmpegRtspInputArgs(_0x365e09,{'hevc':_0x1e3249,'oneshot':!![]}),_0x55769f(0x335)+_0x55769f(0x2ab),'1',_0x55769f(0x34b),'2','-f',_0x55769f(0x27b),_0x55769f(0x39b)],_0x157628=spawn(_0x28c8b0,_0x3f487f,{'stdio':[_0x55769f(0x32b),_0x55769f(0x383),_0x55769f(0x383)]}),_0x152cf8=[];let _0x263fe3='',_0x317a3f=![];_0x157628[_0x55769f(0x258)]['on'](_0x55769f(0x30a),_0x5181cf=>_0x152cf8[_0x55769f(0x1ee)](_0x5181cf)),_0x157628[_0x55769f(0x1da)]['on'](_0x55769f(0x30a),_0x1c7f81=>{_0x263fe3+=String(_0x1c7f81||'');});const _0x32b65e=(_0xc2f114,_0x4bf1aa)=>{const _0x1bd1fc=_0x55769f;if(_0x317a3f)return;_0x317a3f=!![],clearTimeout(_0x2182af),ffmpegProcs[_0x1bd1fc(0x344)](_0x157628);if(_0xc2f114)_0x41ed37(_0xc2f114);else _0x571473(_0x4bf1aa);},_0x2182af=setTimeout(()=>{const _0x1f7cbc=_0x55769f;try{_0x157628['kill'](_0x1f7cbc(0x339)+'L');}catch{}_0x32b65e(new Error(_0x1f7cbc(0x32a)+'超时'));},_0x300721);ffmpegProcs[_0x55769f(0x1ff)](_0x157628),_0x157628['on'](_0x55769f(0x37d),_0x468acd=>{const _0x138ba1=_0x55769f,_0x3ce7bc=Buffer[_0x138ba1(0x201)](_0x152cf8);if(_0x468acd===0x0&&_0x3ce7bc['length']>0x64){_0x32b65e(null,_0x3ce7bc);return;}_0x32b65e(new Error(_0x263fe3[_0x138ba1(0x1f3)]()||_0x138ba1(0x32a)+_0x138ba1(0x2c3)+_0x468acd+')'));}),_0x157628['on'](_0x55769f(0x393),_0x55a949=>_0x32b65e(_0x55a949));});}async function captureFrameFromRtsp(_0x4f68e4={}){return captureFrameFromRtspOnce(_0x4f68e4);}export async function holdPreviewForCapture(){const _0x2de3b5=_0x1e0c05;previewHoldDepth+=0x1;const _0x568411=sharedTranscode;if(previewHoldDepth>0x1)return{'transcode':_0x568411,'held':![]};suppressFfmpegRestart=!![],clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null;if(!sharedFfmpeg||sharedFfmpeg[_0x2de3b5(0x379)])return{'transcode':_0x568411,'held':![]};return console[_0x2de3b5(0x2c0)]('[camer'+_0x2de3b5(0x27e)+_0x2de3b5(0x1f4)+_0x2de3b5(0x1ae)+_0x2de3b5(0x312)+_0x2de3b5(0x346)),killSharedFfmpeg(),await new Promise(_0x3dc62f=>setTimeout(_0x3dc62f,0x50)),{'transcode':_0x568411,'held':!![]};}export async function releasePreviewAfterCapture(_0x1fafdf){const _0x1c9a5e=_0x1e0c05;if(!_0x1fafdf||previewHoldDepth<=0x0)return;previewHoldDepth-=0x1;if(previewHoldDepth>0x0)return;suppressFfmpegRestart=![],state[_0x1c9a5e(0x33a)+_0x1c9a5e(0x1af)]&&state[_0x1c9a5e(0x23d)+'i']&&streamClients[_0x1c9a5e(0x2a4)]>0x0&&(ffmpegNeedProbe=![],await ensureSharedFfmpeg(_0x1fafdf[_0x1c9a5e(0x33e)+'ode']));}async function getSnapshotFromOnvif(_0x3084a6={}){const _0x5c1224=_0x1e0c05,_0x413769=Math[_0x5c1224(0x384)](0x190,Number(_0x3084a6[_0x5c1224(0x216)+_0x5c1224(0x20e)])||SNAPSHOT_HARD_TIMEOUT_MS),_0x420265=async()=>{const _0xbcae63=_0x5c1224,_0x4b5800=await currentCam['getSna'+_0xbcae63(0x223)+'ri']({});state[_0xbcae63(0x2cb)+_0xbcae63(0x22e)]=(typeof _0x4b5800===_0xbcae63(0x366)?_0x4b5800:_0x4b5800?.[_0xbcae63(0x35d)]||'')['replac'+'e'](/&/g,'&');if(!state[_0xbcae63(0x2cb)+_0xbcae63(0x22e)])throw new Error(_0xbcae63(0x21e)+_0xbcae63(0x2ce)+'址');};!state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)]&&await _0x420265();try{return await fetchAuthImage(state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)],state['userna'+'me'],state[_0x5c1224(0x2f1)+'rd'],0x0,_0x413769);}catch(_0x6c7561){if(!shouldRefreshSnapshotUri(_0x6c7561))throw _0x6c7561;return await _0x420265(),fetchAuthImage(state[_0x5c1224(0x2cb)+_0x5c1224(0x22e)],state[_0x5c1224(0x367)+'me'],state[_0x5c1224(0x2f1)+'rd'],0x0,_0x413769);}}export async function getSnapshot(_0x41766d={}){const _0x4fed19=_0x1e0c05;if(state[_0x4fed19(0x2c9)]===_0x4fed19(0x213)+'d')return getOnboardSnapshot();if(!currentCam||!state[_0x4fed19(0x33a)+'ted'])throw new Error(_0x4fed19(0x228)+'像头');const _0x93f7e=_0x41766d[_0x4fed19(0x2c9)]===_0x4fed19(0x30b),_0x2e1d72=_0x41766d[_0x4fed19(0x1d7)+_0x4fed19(0x1fb)+'old']===!![],_0x46e021=Number(_0x41766d[_0x4fed19(0x1bc)+'Ms'])>0x0?Number(_0x41766d[_0x4fed19(0x1bc)+'Ms']):0x0,_0x1c30b8=_0x46e021?Date[_0x4fed19(0x23c)]()+_0x46e021:0x0,_0x54776a=()=>_0x1c30b8?Math[_0x4fed19(0x384)](0x0,_0x1c30b8-Date['now']()):0x7530;let _0x248043=null;!_0x2e1d72&&state[_0x4fed19(0x23d)+'i']&&(_0x248043=await holdPreviewForCapture());try{if(_0x46e021){const _0x13c3bf=Math[_0x4fed19(0x348)](0x640,Math['max'](0x0,_0x54776a()-0x384)),_0x3ab489=_0x13c3bf>0x50?await waitCameraReachable({'timeoutMs':_0x13c3bf}):{'http':![],'rtsp':![]};if(!_0x3ab489[_0x4fed19(0x1d5)]&&!_0x3ab489[_0x4fed19(0x2e1)]&&_0x54776a()<0x384)throw new Error(_0x4fed19(0x358)+'线');}return await withSnapshotLock(async()=>{const _0x540217=_0x4fed19;await waitForPtzIdle(Math[_0x540217(0x348)](0x320,_0x54776a()));const _0x1ec21f=Math[_0x540217(0x348)](_0x93f7e?SNAPSHOT_FAST_TIMEOUT_MS:SNAPSHOT_HARD_TIMEOUT_MS,Math[_0x540217(0x384)](0x258,_0x54776a()-0xc8)),_0x49927e=()=>getSnapshotFromOnvif({'timeoutMs':_0x1ec21f}),_0x56ac6c=()=>captureFrameFromRtspOnce({'timeoutMs':Math[_0x540217(0x348)](RTSP_FRAME_TIMEOUT_MS,Math[_0x540217(0x384)](0x320,_0x54776a()-0x64))});if(_0x93f7e)try{const _0x3a03cc=await _0x49927e();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x20b)+_0x540217(0x353)+_0x540217(0x2b1),_0x3a03cc['length']),_0x3a03cc;}catch(_0x218e8b){console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x20b)+_0x540217(0x353)+_0x540217(0x2b1),_0x218e8b?.[_0x540217(0x26a)+'e']||_0x218e8b);if(!state[_0x540217(0x23d)+'i']||_0x54776a()<0x384)throw _0x218e8b;const _0x5abda0=await _0x56ac6c();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x350)+'back',_0x5abda0['length']),_0x5abda0;}if(state[_0x540217(0x23d)+'i']){let _0x43e8ce=null;const _0x55deee=_0x54776a()<0x9c4?0x1:0x2;for(let _0x5b2271=0x0;_0x5b2271<_0x55deee;_0x5b2271++){try{const _0x32c49f=await _0x56ac6c();return console[_0x540217(0x2c0)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+'e',_0x32c49f['length'],_0x5b2271>0x0?_0x540217(0x1f8)+_0x5b2271:''),_0x32c49f;}catch(_0x425a50){_0x43e8ce=_0x425a50,console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x26b)+_0x540217(0x1b9),_0x5b2271+0x1,_0x425a50?.['messag'+'e']||_0x425a50),_0x5b2271<_0x55deee-0x1&&_0x54776a()>0x384&&await new Promise(_0x58a696=>setTimeout(_0x58a696,0xc8));}}console[_0x540217(0x1c5)](_0x540217(0x35c)+_0x540217(0x34a)+_0x540217(0x33f)+_0x540217(0x350)+_0x540217(0x2d3)+_0x540217(0x2d1),_0x43e8ce?.[_0x540217(0x26a)+'e']||_0x43e8ce);}return _0x49927e();});}finally{!_0x2e1d72&&await releasePreviewAfterCapture(_0x248043);}}async function ptzOnvifNudge(_0x1574a1){const _0x532481=_0x1e0c05,_0x55f290=onvifVectorForAction(_0x1574a1);if(!_0x55f290)throw new Error(_0x532481(0x24b)+'方向');if(!state[_0x532481(0x390)])throw new Error(_0x532481(0x21e)+_0x532481(0x2a9)+_0x532481(0x2a6)+_0x532481(0x363)+'Z');ptzBusy&&await waitForPtzIdle();const _0x45ee3a=async _0x50c75f=>{const _0x51276e=_0x532481;if(!_0x50c75f)throw new Error(_0x51276e(0x228)+'像头');const _0x2c17d4={'x':_0x55f290['x']||0x0,'y':_0x55f290['y']||0x0,'timeout':ONVIF_NUDGE_MS};return _0x55f290['zoom']?(_0x2c17d4['zoom']=_0x55f290[_0x51276e(0x35f)],_0x2c17d4['onlySe'+_0x51276e(0x337)]=!![]):_0x2c17d4['onlySe'+_0x51276e(0x21d)+_0x51276e(0x2a3)]=!![],await _0x50c75f[_0x51276e(0x2c6)+_0x51276e(0x245)+'ve'](_0x2c17d4),await _0x50c75f[_0x51276e(0x1e2)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x45ee3a(currentCam);}catch(_0xf12280){if(!isNetworkError(_0xf12280))throw new Error(cameraError(_0xf12280,_0x532481(0x221)));const _0x999abf=await refreshOnvif();return await _0x45ee3a(_0x999abf);}}catch(_0x13c6a6){throw new Error(cameraError(_0x13c6a6,_0x532481(0x221)));}finally{ptzBusy=![];}}export async function ptzMove(_0x3a8396,_0x51d359={}){const _0x25b38c=_0x1e0c05;if(gimbalAvailable()&&state[_0x25b38c(0x2c9)]!==_0x25b38c(0x30b))return ptzOnboard(_0x3a8396,_0x51d359);if(!state[_0x25b38c(0x33a)+_0x25b38c(0x1af)])throw new Error(_0x25b38c(0x228)+'像头');const _0x4e61c6=String(_0x51d359[_0x25b38c(0x1cf)]||''),_0x262c9f=String(_0x3a8396||''),_0x5f2fc3=_0x262c9f[_0x25b38c(0x263)+_0x25b38c(0x2de)](_0x25b38c(0x23a))?_0x262c9f[_0x25b38c(0x3a3)](0x6):_0x262c9f;if(_0x4e61c6===_0x25b38c(0x1ed)||_0x262c9f[_0x25b38c(0x263)+_0x25b38c(0x2de)](_0x25b38c(0x23a)))return ptzOnvifNudge(_0x5f2fc3);if(_0x3a8396!==_0x25b38c(0x1e2)&&ptzBusy)return{'ok':!![]};while(_0x3a8396===_0x25b38c(0x1e2)&&ptzBusy){await new Promise(_0x444244=>setTimeout(_0x444244,0x28));}const _0x32fb8f=async _0x347594=>{const _0xc222d6=_0x25b38c;if(!_0x347594)throw new Error(_0xc222d6(0x228)+'像头');if(_0x3a8396===_0xc222d6(0x1e2))return await _0x347594[_0xc222d6(0x1e2)]({'panTilt':!![],'zoom':!![]}),{'ok':!![]};const _0x50cad0=onvifVectorForAction(_0x3a8396);if(!_0x50cad0)throw new Error(_0xc222d6(0x24b)+'方向');if(!state['ptz'])throw new Error(_0xc222d6(0x21e)+_0xc222d6(0x2a9)+_0xc222d6(0x2a6)+_0xc222d6(0x363)+'Z');const _0x5152d2={'x':_0x50cad0['x']||0x0,'y':_0x50cad0['y']||0x0,'timeout':PTZ_TIMEOUT_MS};return _0x50cad0[_0xc222d6(0x35f)]?(_0x5152d2[_0xc222d6(0x35f)]=_0x50cad0[_0xc222d6(0x35f)],_0x5152d2[_0xc222d6(0x37a)+_0xc222d6(0x337)]=!![]):_0x5152d2[_0xc222d6(0x37a)+_0xc222d6(0x21d)+_0xc222d6(0x2a3)]=!![],await _0x347594['contin'+_0xc222d6(0x245)+'ve'](_0x5152d2),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x32fb8f(currentCam);}catch(_0x49c12c){if(!isNetworkError(_0x49c12c))throw new Error(cameraError(_0x49c12c,_0x25b38c(0x221)));const _0x8a2c7e=await refreshOnvif();return await _0x32fb8f(_0x8a2c7e);}}catch(_0x3ab77b){throw new Error(cameraError(_0x3ab77b,_0x25b38c(0x221)));}finally{ptzBusy=![];}}export async function ensureCameraConnected(_0x47c302={}){const _0x5c584c=_0x1e0c05;if(state[_0x5c584c(0x33a)+_0x5c584c(0x1af)])return publicState();if(_0x47c302[_0x5c584c(0x2c9)]===_0x5c584c(0x213)+'d')throw new Error(_0x5c584c(0x219)+'支持');const _0x594ea7=String(_0x47c302[_0x5c584c(0x2fa)+'me']||'')[_0x5c584c(0x1f3)]();if(!_0x594ea7)throw new Error('请先在\x20MO'+_0x5c584c(0x35e)+_0x5c584c(0x325)+_0x5c584c(0x2bb));return connectCamera({'hostname':_0x594ea7,'port':Number(_0x47c302[_0x5c584c(0x2c7)]||0x50),'username':String(_0x47c302[_0x5c584c(0x367)+'me']||'')[_0x5c584c(0x1f3)](),'password':String(_0x47c302[_0x5c584c(0x2f1)+'rd']||''),'path':String(_0x47c302[_0x5c584c(0x250)]||_0x5c584c(0x372)+_0x5c584c(0x389)+_0x5c584c(0x3b8)+_0x5c584c(0x1c6))[_0x5c584c(0x1f3)]()||_0x5c584c(0x372)+_0x5c584c(0x389)+_0x5c584c(0x3b8)+_0x5c584c(0x1c6)});}export async function ptzContinuousMove(_0x3ca055,_0x5491c0,_0x1c2fc7,_0x32f1b1=0x1){const _0x133bb3=_0x1e0c05;if(gimbalAvailable()&&state['source']!==_0x133bb3(0x30b)){const _0x3c1534=payloadForVector(_0x3ca055,_0x5491c0);if(!cameraHooks[_0x133bb3(0x3b4)+'hGimba'+'l'])throw new Error(_0x133bb3(0x2b8)+'绪');await cameraHooks[_0x133bb3(0x3b4)+_0x133bb3(0x39c)+'l'](_0x3c1534);if(_0x3c1534[_0x133bb3(0x320)]!==_0x133bb3(0x1e2)){const _0x3bf4e7=Math[_0x133bb3(0x384)](0x190,Math[_0x133bb3(0x348)](0xfa0,Math[_0x133bb3(0x2e3)](Number(_0x32f1b1)||0x1)*0x3e8));setTimeout(()=>{const _0x15087e=_0x133bb3;cameraHooks[_0x15087e(0x3b4)+'hGimba'+'l']?.({'action':_0x15087e(0x1e2)})[_0x15087e(0x21a)](()=>{});},_0x3bf4e7);}return{'ok':!![]};}if(!state[_0x133bb3(0x33a)+_0x133bb3(0x1af)])throw new Error('还没有连接摄'+'像头');const _0x107fcc=clampPtzSpeed(_0x3ca055),_0x502b56=clampPtzSpeed(_0x5491c0),_0x81e4ed=clampPtzSpeed(_0x1c2fc7),_0xf38fc7=Math[_0x133bb3(0x384)](0x3e8,Math[_0x133bb3(0x348)](0x2710,Math[_0x133bb3(0x2e3)](Number(_0x32f1b1)||0x1)*0x3e8));if(ptzBusy)return{'ok':!![]};const _0x14223d=async _0x198a94=>{const _0x2618a0=_0x133bb3;if(!_0x198a94)throw new Error(_0x2618a0(0x228)+'像头');if(!state[_0x2618a0(0x390)]&&(_0x107fcc||_0x502b56||_0x81e4ed))throw new Error(_0x2618a0(0x21e)+_0x2618a0(0x2a9)+_0x2618a0(0x2a6)+'未开放\x20PT'+'Z');const _0x407612={'x':_0x107fcc,'y':_0x502b56,'timeout':_0xf38fc7};_0x81e4ed&&(_0x407612[_0x2618a0(0x35f)]=_0x81e4ed);if(_0x81e4ed&&!_0x107fcc&&!_0x502b56)_0x407612[_0x2618a0(0x37a)+_0x2618a0(0x337)]=!![];else!_0x81e4ed&&(_0x407612[_0x2618a0(0x37a)+'ndPanT'+_0x2618a0(0x2a3)]=!![]);return await _0x198a94[_0x2618a0(0x2c6)+_0x2618a0(0x245)+'ve'](_0x407612),{'ok':!![]};};ptzBusy=!![];try{try{return await _0x14223d(currentCam);}catch(_0x373338){if(!isNetworkError(_0x373338))throw new Error(cameraError(_0x373338,_0x133bb3(0x221)));const _0x59e546=await refreshOnvif();return await _0x14223d(_0x59e546);}}catch(_0x209a07){throw new Error(cameraError(_0x209a07,'云台控制失败'));}finally{ptzBusy=![];}}function _0x2934(){const _0x124462=['lMnNAq','yv0GCNrZ','lxe6DG','l2LWy2fT','zMLSDgvY','lxbYB2jL','CxvLCNK','zsbMywXS','C2vUza','6yEn5PAW6l+E5O6L44cc','AwyGC25H','z10GC3DP','zf9WCMv2','zw5KCg9P','y3r1CMvY','5Pge5yop5As05PQc5PE256A7','BxbLz3rZ','C2vSzwn0','y2f0zq','w2nHBwvY','DxjP','u1pJGiZOP4BOP4NKUk0','EM9VBq','BwPWzW','yv0GBgL2','AgfUBMvS','5PYQ5BYa5Ps+ifbu','6l+E5O6L5Pge5yop5As05AsX','lwHPzgvF','C3rYAw5N','DxnLCM5H','jMXVz2LU','z2v0u3rY','Dc10ExbL','zxzPzxC','xsbZBMfW','dqOncG','Eg1S','5As06kAb5zYO572r6Ag16yEm','EgfKzhjZ','ihbYB2jL','l29UDMLM','BM9Uy2u9','luXLBMD0','zgv2AwnL','yxjYyxLc','CMvXDwvZ','mtfmEfnPAw0','A2LSBgvK','B25SEvnL','C3rYzwfT','z10GC3bH','y2XVC2u','z2LTyMfS','5OIQ5zU+5zYW5z2a6lEZ6l2S','5P2/6l295Pge5yop5As06l+u','ndbSzwDZAeG','Ahr0Chm6','CgLWzq','Bwf4','ntaWmdaW','l2XPDMuV','ChjVzMLS','Cw9W','l2rLDMLJ','lY93D3DC','rgLNzxn0','Aw5MBW','r0vu','lxrPBwvV','l2nNAs1I','Chr6','BMvJDa','6l+y5RkH5PYj6ycj5lITia','zxjYB3i','CMuSig5V','Cw9Wpq','CNKGC2fT','CgCVDMLK','lM1QCgC','qxv0Ag9Y','BNzPzIdMNym','CgLWztOX','AeDPBwjH','mtaWmZvptw5Xs0e','xsbYDhnW','zgvZDhjV','zq0kq29U','BMfUkhbY','Cgf0Ag5H','C2XPy2u','yxrJAa','DcKPlhnL','BwLUzY9J','zNvUy3rP','C29YDa','w29UDMLM','z10GzxHP','Dw5RBM93','BM90kgLZ','rhjHAw4','ywLS','zxHPDa','qNL0zxm','D2fYBMLU','Aw4VBwPW','5OIQ5zU+6l+h5AsN','ChvIBgLZ','lcbTDxn0','A2LUza','CMfUzg9T','zv9Zzxj2','AhrTBa','yM9KEq','zxjPBMC','AgfYzhDH','igzHAwW','DMLLDYbM','DgvK','Bgu6DG','DgnW','y2DPl21Q','6k+75y+w55s76z2I5AsX6lsL','DgLVBG','5OMt5BYaie9UDG','C2HVDa','BM9Uy2u','ndqXotmWtwfgrxzQ','Bxb0','AxnbCNjH','BgvozwvK','yNvKz2v0','C2vYpq','zMLUza','q29UBMvJ','5P2/6l295Pge5yop5As06l+E','5RkH5PYjifjuuW','l2nHBwvY','Dhb0CZ1q','zw5K','D2fYBG','AwnL','B3zLCNK','yxv0Aa','CMvTB3zL','AwnLsw5M','CgfZpq','Ag9ZDa','5zUE5zU+54Mh','yxrJAgvZ','ChjLC3m','6k+35ywi6l+E5O6L5Pge5yop','5OIQ5zU+6zYa6kAb6lsM5y+3','C2nOzw1L','BgL0AwvZ','y292zxjL','Ahr0Ca','mtC0ntfpA1DsuMu','C2TPCfbY','CMvJDa','BgL2zurP','C3rKzxjY','vfmTu1rb','yxj0igLU','BNrszwzL','DgHT','ywXS','CKnHC2u','ywrKCMvZ','C3rVCa','lM9UDMLM','zvrVA2vU','ywnOywjS','y2XPzw50','zwfTvxjP','l0Ltqvbj','sgfZAa','uhjHz21H','zgLZy292','Aw5KzxHp','BNvKz2u','ChvZAa','zwXVywq','ys9ZBMfW','ztSGyM91','zcWGC2TP','DhjPBq','C2uGChjL','B2jQzwn0','CNKGzgLZ','C2u9iG','CMv0CNK9','yv0Gy29U','lwfUywX5','zxzPzxDi','DxjPpsi','AxPHDgLV','BgvfBMrL','ywrK','DxbKyxrL','y29Uy2f0','l21QCgvN','y29WEq','CcbZB2fW','B2DPBNvZ','BgL2zq','BY5Jz2K/','5OIQ5zU+6lAf5PE2','Adi2na','Dw5ZAgLM','yv0GB252','mtm3nejivvjKrG','CgvN','De1Z','tgLZDgvU','C2nHBgu9','ndeWnZmYzvvrt0vn','5P2/6l295Pge5yop5As0','B25IB2fY','Bgf5','CMvZ','DgLTzw91','ucdLNldLNya','D3D3lwf1','5P2/6l2955s76z2I5PQc5lIn','y2f0y2G','DgHTpq','Agv2yW','BMrqyw5u','6l+z5y+W5Pge5yop5As05RkH','yw1LCMeV','B3bHCxvL','5lQr5y+W5O6N5yI25AsX6lsL','Bw9KzwW','ChnOB3rv','l2f4AxmT','DxjU','Bwq1','z2uVANbL','6l+y5RkH5PYj6l+E5O6L5Pge','BgLIEdi2','Aw5JBhvK','ignSB3nL','zwXHEq','yMfZzty0','B3rvCMK','tNvTyMvY','qwXStgLZ','y2fTzxjH','zNjVBq','DhjHBNnW','wefKzhjZ','5lIn5lIkia','qMfZAwmG','y2f1C2u','uLrqvfmS','nePqvfL0Aq','BNvKz2u6','Dc1uExbL','BM93','CNrZCfvY','l21QCgCV','CgvLAW','uLrtua','5A+544cc6yoO5yIg5Pge5yop','lwm6DG','B252Awy6','C2v0sgvH','Dw91C01V','DwzMzxi','z2v0','DgvUzxjZ','ihvYAq','DwX0CMfM','5lIn5PsV5OYb55Qe5lQr5y+W','z2vUChrZ','y3jLyxrL','tu9tu++8JoIVTW','y29WEsa','Cgf0Aa','xsSP','AwBVViZLUBBNU5NOV5K','lxjLDMfS','CMvHBg09','yMfZzwXP','tgfIzwW','ChjVBwLZ','C3rKB3v0','5Pge5yop5As05RkH5PYj6l+u','Aw4VAgKZ','lxr1BMu','C3rHDhvZ','6l+y5RkH5PYj55s76z2I77Ym','yv0GzgLZ','vxjP','ANnVBG','lMnNAt9S','zMX1C2Hi','C3rHCNrZ','ChjVyMu','C3qGyNL0','yv0GDgnW','AgvHzgvY','lwzMBgfN','Bg9JyxrP','BwvZC2fN','zsbHDhrL','q29UDhjV','C3bSAwnL','z10GCNrZ','y25VBMnL','BwfW','mZG4mhrJBNroBa','Dg9mB3DL','l2fWAs9J','zsWGAw1H','BxaYDa','lwnHy2HL','CY8XmdeV','ys9KAxnH','q29UDgvU','BMDL','Aw1Hz2uY','zY92AwrL','z10GzMLY','yv0GCgf1','w2zMBxbL','nteWl21Q','Bd0XjNn1','y3rFDhLW','tMv0D29Y','BMvJDcbM','zgLZy29U','AwrHDgu','lwXVz2XL','CNKGzMfP','BMfTzq','zgLNzxn0','mc9TANbL','z2v0rgv2','zYWGkI8Q','wc1by2nL','AwnLqMfZ','B3v0','zw5JB2rP','C29Tzq','zNjHBwu','zxzFC2vS','yNr5Cgu9','otyWoI0Y','B2rLigGY','Bc1cDwzM','DgvZDa','CgfKu3rH','5yQO6yEn6l+E77Ym5OIw54k5','BwPWzwC','A2vLCc1H','l3zPzgvV','ue9tva','mZeYotiXndHxyMj2zKS','yxn0','CMvX','AwX0','C2L6zq','lw11EhbY','t252AwyG','A2LSBa','C2vYAwfS','5PYj5lQr5y+W77Ym5OIwia','6k+35AgR5yAz5Pge5yop5As0','CZP2','B250zw50','mte0otm0r1n4ALrj','zMLUywXS','zgvY','zw91Da','ChnOB3q','C2vHCMnO','odaWmdaW','6lsM5y+35OIw5A+g56cb5lIn','D2LKDgG','Agv4','xc5VCMCV','5lQr5y+W6ycA6ygt5PYQ5BcX','DgvUDc1u','BM8Ty2fJ','6l+E5O6L5Pge5yop5As0','lMnNAt91','C2v0vgLT','z10GC2TP','ChrZ','Bg9N','l1n0CMvH','EMvYB2XH','5AsX6lsL77Yi','BxvSDgLW','yv0GBMf0','y29UDgLU','Cg9YDa','y2HHBgXL','C291CMnL','Cdr0B2fU','C25HChnO','Aw1Hz2uV','D3jPDgu','5PYj5O+q5l6B5OQt5zU+5zYW','Dg9tDhjP','zwfKzxjZ','BNzPzG','CMvHBg0','yMfJAYbV','C2v0tM9e','q29Kzq','lxbYzxnL','CY8XmdmV','C29JA2v0','D3jPDgfI','lwjM','DcbYzxn0','BgL2zvvY','C3bSAxq','v2L0Aa','y2fWywjP','C2HVDcb1','CNrZCa','Ahr0CdOV','zMXVB3i','ChjVDg9J','BMrHCNK9','Agv2y19T','u291CMnL','B3jTyxrP','AM9PBG','Dfr5Cgu','Cg9ZDa','B25Jzq','q2fJAguT','yv0GCMv0','CM91BMq','ChjVyMvn','CgfZC3DV','AxzLig1Q','lxrOCMvH','AwnLq2fW','6Ag16l+E5O6L5Bga5z+F572r','zY5QCgC','5OIQ5zU+5AsX6lsL77Yi','Ccb1BNjL','EMvKDxjH','Ag9ZDg5H','DMLKzw8U','BwL4zwqT','AdOG','mJaWmdaW','yxj0l3GT','t1yYnJqW','lYHBxLXZ','qwDLBNq','BwfNzs9Q','CY8YmdiV','mZaWmdaW','l3n0CMvH','zw8Uy2DP','CMvZDw1L','DgvUy3K','zgf0yq','B252Awy','Bwu9iG','Ahr0Cca','zxiRz2vU','BwvKAwfv','y292zxiG','CY8XmdiV','B3iGy2fW','DgHLBG','y29UDgvU','BM9IDwzM','lxj0C3bF','x3bHy2TL','CMvZCg9U','DMvS','BgvUz3rO','zsbZzwfY','ywn0AxzL','BMv4yG','Ahr0CfbY','lxzM','ywn0Aw9U','BwfUDwzH','CcbZCgf3','Aw9U','DgnO','5P6I44cn6Ag16ywn572U5BM2','zsbWAxbL','Adi2nf9T','5OMR5O+p5Pge5yop5As05AsX','zwn0zwrF','5lUo6kEg6Akr5Rwb5OIQ5BIN','AwDUB3jL','ihn0AwXS','y2HHBM5L','CgvNlMnN','AhjLzG','lwjZzJP2','Exv2ndiW','mtiZotC5ndbJDuXguKi','C3vIyxjY','ls1MCMfT','lwzYyw1L','BM8TC3rV','BMrAB29T','ANbLzW','u0Lhs0Lm','y29UBMvJ','ywXNB3jP','y2XLyxi','CMvZB2X2','DhjHBNnJ','CcbMCMfT','Bwf0y2G','CMvWBgfJ','B3bLBG','5ywi5zYO6k6+5Ash5O6L5ywL','zgvSzxrL','pwvXkhbP','DhvYzq','DgHLBNrP','BwLU'];_0x2934=function(){return _0x124462;};return _0x2934();}function bitstreamFilter(_0x2595be){const _0x1e1c6a=_0x1e0c05;if(/hevc|h265/['test'](_0x2595be))return _0x1e1c6a(0x2e6)+'p4toan'+_0x1e1c6a(0x31d);if(/h264|avc/[_0x1e1c6a(0x299)](_0x2595be))return _0x1e1c6a(0x327)+_0x1e1c6a(0x2ca)+_0x1e1c6a(0x31d);return'';}function shouldTranscode(_0x38035c=![]){const _0x282b76=_0x1e0c05;return _0x38035c||/hevc|h265/['test'](state[_0x282b76(0x291)+'ng']);}function broadcastTs(_0x54e1a0){const _0x503cb5=_0x1e0c05;if(!_0x54e1a0?.[_0x503cb5(0x31a)])return;for(const _0x47c63b of streamClients){try{if(_0x47c63b['writab'+_0x503cb5(0x1bb)+_0x503cb5(0x3ad)])continue;_0x47c63b[_0x503cb5(0x2cd)](_0x54e1a0);}catch{streamClients['delete'](_0x47c63b);}}}function killSharedFfmpeg(){const _0x2ebb48=_0x1e0c05;clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=null,ffmpegEpoch+=0x1;const _0x4c0ede=sharedFfmpeg;sharedFfmpeg=null;if(!_0x4c0ede)return;ffmpegProcs[_0x2ebb48(0x344)](_0x4c0ede);try{_0x4c0ede[_0x2ebb48(0x258)]?.[_0x2ebb48(0x1c9)+_0x2ebb48(0x230)+_0x2ebb48(0x248)](_0x2ebb48(0x30a)),_0x4c0ede[_0x2ebb48(0x2a7)](_0x2ebb48(0x339)+'L');}catch{}}function scheduleFfmpegRestart(_0x522d8c){const _0x3b1ffe=_0x1e0c05;if(suppressFfmpegRestart)return;if(!state[_0x3b1ffe(0x33a)+_0x3b1ffe(0x1af)]||!streamClients[_0x3b1ffe(0x2a4)])return;const {delayMs:_0x78eb01,nextBackoffMs:_0x316e15,probe:_0x5cd094}=nextFfmpegRestartDelay({'gotData':_0x522d8c,'backoffMs':ffmpegBackoffMs});ffmpegBackoffMs=_0x316e15,ffmpegNeedProbe=_0x5cd094,console[_0x3b1ffe(0x1c5)](_0x3b1ffe(0x27f)+'g]\x20exi'+_0x3b1ffe(0x2db)+_0x3b1ffe(0x1dc),_0x78eb01,'ms',_0x5cd094?_0x3b1ffe(0x264):'hot'),clearTimeout(ffmpegRestartTimer),ffmpegRestartTimer=setTimeout(()=>{ffmpegRestartTimer=null,void resumeSharedFfmpeg();},_0x78eb01);}async function resumeSharedFfmpeg(){const _0x2baeed=_0x1e0c05;if(suppressFfmpegRestart||!state['connec'+_0x2baeed(0x1af)]||!streamClients[_0x2baeed(0x2a4)])return;if(ffmpegNeedProbe){const _0x452cad=await probeTcp(state[_0x2baeed(0x2fa)+'me'],rtspPortOf(state[_0x2baeed(0x23d)+'i']),RTSP_TCP_PROBE_MS);if(suppressFfmpegRestart||!state[_0x2baeed(0x33a)+_0x2baeed(0x1af)]||!streamClients[_0x2baeed(0x2a4)])return;if(!_0x452cad){console['warn'](_0x2baeed(0x27f)+_0x2baeed(0x26e)+'p\x20clos'+'ed',state[_0x2baeed(0x2fa)+'me'],rtspPortOf(state['rtspUr'+'i'])),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}await ensureSharedFfmpeg(sharedTranscode);}async function ensureSharedFfmpeg(_0xf19bc4){const _0x491647=_0x1e0c05,_0x5bb8f3=!!_0xf19bc4;if(sharedFfmpeg&&!sharedFfmpeg[_0x491647(0x379)]){if(sharedTranscode===_0x5bb8f3)return;console[_0x491647(0x2c0)](_0x491647(0x27f)+_0x491647(0x354)+_0x491647(0x324),sharedTranscode?_0x491647(0x209):_0x491647(0x203),'->',_0x5bb8f3?_0x491647(0x209):_0x491647(0x203)),killSharedFfmpeg();}const _0x5a9748=++ffmpegEpoch;if(ffmpegNeedProbe){const _0x2efc5d=await probeTcp(state[_0x491647(0x2fa)+'me'],rtspPortOf(state[_0x491647(0x23d)+'i']),RTSP_TCP_PROBE_MS);if(_0x5a9748!==ffmpegEpoch)return;if(!_0x2efc5d){console[_0x491647(0x1c5)](_0x491647(0x27f)+_0x491647(0x2be)+_0x491647(0x322)+'n,\x20rts'+_0x491647(0x2f8)+_0x491647(0x1e5)+'e'),scheduleFfmpegRestart(![]);return;}ffmpegNeedProbe=![];}let _0x3129c;try{_0x3129c=await ensureFfmpeg();}catch(_0x4acf33){console[_0x491647(0x1c5)](_0x491647(0x27f)+'g]',_0x4acf33[_0x491647(0x26a)+'e']);return;}if(_0x5a9748!==ffmpegEpoch)return;if(sharedFfmpeg&&!sharedFfmpeg[_0x491647(0x379)]){if(sharedTranscode===_0x5bb8f3)return;killSharedFfmpeg();}if(!state[_0x491647(0x23d)+'i']||!state[_0x491647(0x33a)+'ted'])return;const _0x445e03=injectRtspAuth(state[_0x491647(0x23d)+'i'],state['userna'+'me'],state[_0x491647(0x2f1)+'rd']),_0x445593=/hevc|h265/[_0x491647(0x299)](state[_0x491647(0x291)+'ng']),_0x19235e=ffmpegRtspInputArgs(_0x445e03,{'hevc':_0x445593,'oneshot':![]});if(_0x5bb8f3)_0x19235e['push'](_0x491647(0x242),_0x491647(0x229)+'4',_0x491647(0x2d6)+'t',_0x491647(0x24a)+_0x491647(0x2a1),_0x491647(0x25b),_0x491647(0x2c2)+_0x491647(0x309),'-profi'+_0x491647(0x1b0),_0x491647(0x255)+'ne','-pix_f'+'mt',_0x491647(0x331)+'p',_0x491647(0x2da),'0','-g','15',_0x491647(0x31f),_0x491647(0x35a)+_0x491647(0x345)+_0x491647(0x282)+'e\x5c,I)+'+_0x491647(0x3ac)+_0x491647(0x3a1)+_0x491647(0x294)+_0x491647(0x329)+_0x491647(0x3a5)+_0x491647(0x1c3)+_0x491647(0x1db)+_0x491647(0x238)+_0x491647(0x210)+_0x491647(0x296));else{_0x19235e[_0x491647(0x1ee)](_0x491647(0x242),'copy');const _0x1c0b41=bitstreamFilter(state[_0x491647(0x291)+'ng']);if(_0x1c0b41)_0x19235e[_0x491647(0x1ee)](_0x491647(0x330),_0x1c0b41);}_0x19235e[_0x491647(0x1ee)]('-f','mpegts','-muxde'+_0x491647(0x214),'0',_0x491647(0x2a5)+_0x491647(0x1ef),'0','-flush'+_0x491647(0x317)+'ts','1',_0x491647(0x39b));if(_0x5a9748!==ffmpegEpoch)return;sharedTranscode=_0x5bb8f3;const _0x564822=spawn(_0x3129c,_0x19235e,{'stdio':[_0x491647(0x32b),_0x491647(0x383),_0x491647(0x383)]});sharedFfmpeg=_0x564822,ffmpegProcs[_0x491647(0x1ff)](_0x564822);let _0x86a70b=![];console[_0x491647(0x2c0)]('[ffmpe'+'g]',_0x5bb8f3?_0x491647(0x33e)+_0x491647(0x297)+'64':_0x491647(0x24f)+(state['encodi'+'ng']||_0x491647(0x3ab)+'n'),state['hostna'+'me']),_0x564822[_0x491647(0x258)]['on']('data',_0x3c7ae9=>{const _0x2d0ba0=_0x491647;!_0x86a70b&&(_0x86a70b=!![],ffmpegNeedProbe=![],console[_0x2d0ba0(0x2c0)](_0x2d0ba0(0x27f)+_0x2d0ba0(0x27d)+_0x2d0ba0(0x265)+'es',_0x3c7ae9[_0x2d0ba0(0x31a)])),ffmpegBackoffMs=FFMPEG_BACKOFF_MIN_MS,broadcastTs(_0x3c7ae9);}),_0x564822['stderr']['on'](_0x491647(0x30a),_0x18350c=>{const _0x30fe41=_0x491647,_0x34704d=String(_0x18350c||'')[_0x30fe41(0x1f3)]();if(_0x34704d)console[_0x30fe41(0x1c5)]('[ffmpe'+'g]',_0x34704d);}),_0x564822['on']('error',_0xbfd4c4=>{const _0x333207=_0x491647;console[_0x333207(0x1c5)](_0x333207(0x27f)+_0x333207(0x37c)+'wn',_0xbfd4c4['messag'+'e']);}),_0x564822['on'](_0x491647(0x3af),_0xab90bb=>{const _0x3015f3=_0x491647;ffmpegProcs['delete'](_0x564822);if(sharedFfmpeg===_0x564822)sharedFfmpeg=null;console[_0x3015f3(0x1c5)]('[ffmpe'+_0x3015f3(0x3aa)+'t',_0xab90bb,_0x3015f3(0x30a),_0x86a70b,_0x3015f3(0x1e6)+'s',streamClients[_0x3015f3(0x2a4)]),scheduleFfmpegRestart(_0x86a70b);});}function startMpegtsStream(_0x407266,_0x57d5d9){const _0x11aed9=_0x1e0c05,_0x5e8050=shouldTranscode(String(_0x407266[_0x11aed9(0x34f)]?.['codec']||'')===_0x11aed9(0x209));_0x407266[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x57d5d9[_0x11aed9(0x2bd)+'eout'](0x0),_0x407266[_0x11aed9(0x2d8)]?.[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x57d5d9['socket']?.[_0x11aed9(0x2bd)+_0x11aed9(0x2b0)](0x0),_0x407266[_0x11aed9(0x2d8)]?.['setNoD'+_0x11aed9(0x22c)]?.(!![]),_0x57d5d9[_0x11aed9(0x2d8)]?.[_0x11aed9(0x2d4)+_0x11aed9(0x22c)]?.(!![]),_0x57d5d9[_0x11aed9(0x244)+'der'](_0x11aed9(0x279)+_0x11aed9(0x23b),'video/'+_0x11aed9(0x275)),_0x57d5d9[_0x11aed9(0x244)+_0x11aed9(0x2af)]('Cache-'+'Contro'+'l','no-sto'+_0x11aed9(0x394)+_0x11aed9(0x276)+_0x11aed9(0x3b5)+_0x11aed9(0x253)+_0x11aed9(0x286)),_0x57d5d9[_0x11aed9(0x244)+_0x11aed9(0x2af)](_0x11aed9(0x1bf)+_0x11aed9(0x1b4),_0x11aed9(0x29d)+'live'),_0x57d5d9['setHea'+_0x11aed9(0x2af)](_0x11aed9(0x28e)+_0x11aed9(0x298)+_0x11aed9(0x3bb),'no');if(typeof _0x57d5d9[_0x11aed9(0x262)+_0x11aed9(0x2d0)]===_0x11aed9(0x3a7)+'on')_0x57d5d9[_0x11aed9(0x262)+_0x11aed9(0x2d0)]();streamClients[_0x11aed9(0x1ff)](_0x57d5d9),clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=null,ensureSharedFfmpeg(_0x5e8050);let _0xd9a98a=![];const _0x5893bc=()=>{const _0x1bc958=_0x11aed9;if(_0xd9a98a)return;_0xd9a98a=!![],streamClients[_0x1bc958(0x344)](_0x57d5d9);try{if(!_0x57d5d9[_0x1bc958(0x2d9)+_0x1bc958(0x1fe)+'d'])_0x57d5d9[_0x1bc958(0x1c4)]();}catch{}streamClients[_0x1bc958(0x2a4)]===0x0&&(clearTimeout(ffmpegIdleTimer),ffmpegIdleTimer=setTimeout(()=>{const _0x15bbba=_0x1bc958;ffmpegIdleTimer=null;if(streamClients[_0x15bbba(0x2a4)]===0x0)killSharedFfmpeg();},0xfa0));};_0x407266['on'](_0x11aed9(0x37d),_0x5893bc),_0x57d5d9['on'](_0x11aed9(0x37d),_0x5893bc);}export function registerCameraRoutes(_0x58dc7f,{getConfig:_0x176dd6,saveConfig:_0x1e06e1}){const _0x4801aa=_0x1e0c05;_0x58dc7f[_0x4801aa(0x2eb)](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x1eb)+'er',async(_0x1ce583,_0xb1858c)=>{const _0x291294=_0x4801aa;try{const _0x3dc897=await discover();onboardAvailable()&&_0x3dc897[_0x291294(0x20a)+'t']({'kind':_0x291294(0x213)+'d','hostname':'onboar'+'d','port':0x157c,'path':_0x291294(0x1c2)+_0x291294(0x1f0)+_0x291294(0x1b6),'name':_0x291294(0x212),'hardware':_0x291294(0x300)}),_0xb1858c[_0x291294(0x260)]({'devices':_0x3dc897});}catch(_0x495ae8){_0xb1858c[_0x291294(0x25c)](0x190)[_0x291294(0x260)]({'message':cameraError(_0x495ae8,_0x291294(0x328)+'败')});}}),_0x58dc7f['get'](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x25c),(_0x109eee,_0x538f23)=>{const _0x3f9f4b=_0x4801aa,_0x3029b2=_0x176dd6();if(stripOnboardCameraConfig(_0x3029b2))_0x1e06e1();const _0x842e28=_0x3029b2[_0x3f9f4b(0x231)]||{};_0x538f23['json']({...publicState(),'saved':{'source':_0x842e28['source']||'','hostname':_0x842e28[_0x3f9f4b(0x2fa)+'me']||'','port':_0x842e28['port']||0x50,'path':_0x842e28[_0x3f9f4b(0x250)]||_0x3f9f4b(0x372)+_0x3f9f4b(0x389)+_0x3f9f4b(0x3b8)+_0x3f9f4b(0x1c6),'username':_0x842e28['userna'+'me']||'','password_set':!!_0x842e28[_0x3f9f4b(0x2f1)+'rd']}});}),_0x58dc7f[_0x4801aa(0x2eb)]('/api/c'+'amera/'+'connec'+'t',async(_0x123b3a,_0x12ccc6)=>{const _0x2d291e=_0x4801aa;try{const _0x58e772=_0x176dd6(),_0x2e176a=_0x58e772[_0x2d291e(0x231)]||{},_0x5a4d15=_0x123b3a[_0x2d291e(0x3ba)]?.['source']===_0x2d291e(0x213)+'d'||_0x123b3a['body']?.[_0x2d291e(0x3b6)]===_0x2d291e(0x213)+'d'||_0x123b3a[_0x2d291e(0x3ba)]?.['hostna'+'me']===_0x2d291e(0x213)+'d';if(_0x5a4d15){if(stripOnboardCameraConfig(_0x58e772))_0x1e06e1();_0x12ccc6['status'](0x190)[_0x2d291e(0x260)]({'message':'板载画面暂不'+'支持'});return;}const _0x3459df=_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x2f1)+'rd']||_0x2e176a[_0x2d291e(0x2f1)+'rd']||'',_0x352eb9=await connectCamera({'hostname':_0x123b3a[_0x2d291e(0x3ba)]?.['hostna'+'me']||_0x2e176a[_0x2d291e(0x2fa)+'me'],'port':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x2c7)]||_0x2e176a[_0x2d291e(0x2c7)],'username':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x367)+'me']||_0x2e176a[_0x2d291e(0x367)+'me'],'password':_0x3459df,'path':_0x123b3a[_0x2d291e(0x3ba)]?.[_0x2d291e(0x250)]||_0x2e176a[_0x2d291e(0x250)]});_0x58e772[_0x2d291e(0x231)]={'source':'onvif','hostname':state[_0x2d291e(0x2fa)+'me'],'port':state['port'],'path':state[_0x2d291e(0x250)],'username':state[_0x2d291e(0x367)+'me'],'password':state[_0x2d291e(0x2f1)+'rd']},_0x1e06e1(),_0x12ccc6['json'](_0x352eb9);}catch(_0x4875a0){_0x12ccc6[_0x2d291e(0x25c)](0x190)[_0x2d291e(0x260)]({'message':cameraError(_0x4875a0,_0x2d291e(0x364)+'败')});}}),_0x58dc7f[_0x4801aa(0x2eb)]('/api/c'+_0x4801aa(0x21f)+_0x4801aa(0x285)+_0x4801aa(0x391),(_0xc62ca,_0x42183f)=>{const _0x2643b8=_0x4801aa;_0x42183f[_0x2643b8(0x260)](disconnectCamera());}),_0x58dc7f[_0x4801aa(0x247)](_0x4801aa(0x273)+'amera/'+_0x4801aa(0x2cb)+'ot',async(_0x17b64c,_0x196c83)=>{const _0x6fd57b=_0x4801aa;try{const _0x5be041=await getSnapshot();if(!_0x5be041?.[_0x6fd57b(0x31a)]){_0x196c83[_0x6fd57b(0x25c)](0xcc)[_0x6fd57b(0x1c4)]();return;}_0x196c83['setHea'+'der'](_0x6fd57b(0x279)+_0x6fd57b(0x23b),'image/'+_0x6fd57b(0x338)),_0x196c83['setHea'+_0x6fd57b(0x2af)](_0x6fd57b(0x2ed)+_0x6fd57b(0x26c)+'l',_0x6fd57b(0x336)+'re'),_0x196c83[_0x6fd57b(0x351)](_0x5be041);}catch(_0x4682e5){_0x196c83[_0x6fd57b(0x25c)](0x190)[_0x6fd57b(0x260)]({'message':cameraError(_0x4682e5,_0x6fd57b(0x1b3))});}}),_0x58dc7f[_0x4801aa(0x247)](_0x4801aa(0x273)+_0x4801aa(0x21f)+_0x4801aa(0x37b),async(_0x2a3915,_0x275153)=>{const _0x3c180b=_0x4801aa;if(!state[_0x3c180b(0x33a)+_0x3c180b(0x1af)]){_0x275153[_0x3c180b(0x25c)](0x190)[_0x3c180b(0x260)]({'message':_0x3c180b(0x25d)+_0x3c180b(0x1d0)+'头'});return;}if(state[_0x3c180b(0x23d)+'i']){startMpegtsStream(_0x2a3915,_0x275153);return;}if(state[_0x3c180b(0x2dc)+'i'])try{const _0x429126=await openCameraHttp(state[_0x3c180b(0x2dc)+'i'],state[_0x3c180b(0x367)+'me'],state['passwo'+'rd'],0x1f40);_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x279)+'t-Type',_0x429126[_0x3c180b(0x314)+_0x3c180b(0x2ea)]||_0x3c180b(0x2c4)+'art/x-'+'mixed-'+_0x3c180b(0x341)+'e;\x20bou'+_0x3c180b(0x2e5)+_0x3c180b(0x293)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x2ed)+_0x3c180b(0x26c)+'l',_0x3c180b(0x336)+_0x3c180b(0x394)+_0x3c180b(0x276)+',\x20must'+'-reval'+_0x3c180b(0x286)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x1bf)+_0x3c180b(0x1b4),_0x3c180b(0x29d)+_0x3c180b(0x206)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x28e)+_0x3c180b(0x298)+_0x3c180b(0x3bb),'no');const _0x5998d8=()=>{const _0x16101f=_0x3c180b;try{_0x429126[_0x16101f(0x2a2)][_0x16101f(0x39f)+'y']();}catch{}try{_0x429126[_0x16101f(0x215)][_0x16101f(0x39f)+'y']();}catch{}};_0x2a3915['on'](_0x3c180b(0x37d),_0x5998d8),_0x275153['on']('close',_0x5998d8),_0x429126[_0x3c180b(0x215)]['on'](_0x3c180b(0x393),_0x5998d8),_0x429126[_0x3c180b(0x215)][_0x3c180b(0x383)](_0x275153);return;}catch(_0x1c9158){console[_0x3c180b(0x1c5)]('[camer'+_0x3c180b(0x361)+_0x3c180b(0x326),_0x1c9158?.[_0x3c180b(0x26a)+'e']||_0x1c9158);}if(!state[_0x3c180b(0x2cb)+_0x3c180b(0x22e)]){_0x275153[_0x3c180b(0x25c)](0x190)[_0x3c180b(0x260)]({'message':_0x3c180b(0x21e)+'有可播放的预'+'览流'});return;}_0x275153[_0x3c180b(0x244)+'der'](_0x3c180b(0x279)+_0x3c180b(0x23b),_0x3c180b(0x2c4)+_0x3c180b(0x2ff)+'mixed-'+_0x3c180b(0x341)+_0x3c180b(0x1f1)+_0x3c180b(0x2e5)+_0x3c180b(0x293)),_0x275153['setHea'+'der'](_0x3c180b(0x2ed)+_0x3c180b(0x26c)+'l',_0x3c180b(0x336)+_0x3c180b(0x394)+_0x3c180b(0x276)+_0x3c180b(0x3b5)+_0x3c180b(0x253)+_0x3c180b(0x286)),_0x275153[_0x3c180b(0x244)+_0x3c180b(0x2af)](_0x3c180b(0x1ea),_0x3c180b(0x2ba)+'he'),_0x275153['setHea'+_0x3c180b(0x2af)](_0x3c180b(0x1bf)+_0x3c180b(0x1b4),_0x3c180b(0x29d)+_0x3c180b(0x206)),_0x275153['setHea'+'der'](_0x3c180b(0x28e)+_0x3c180b(0x298)+_0x3c180b(0x3bb),'no');let _0x12a3ae=![];const _0x147d00=()=>{_0x12a3ae=!![];};_0x2a3915['on'](_0x3c180b(0x37d),_0x147d00),_0x275153['on']('close',_0x147d00);const _0x19283a=state['source']===_0x3c180b(0x213)+'d';_0x19283a&¬eOnboardPreviewClient(0x1);try{await runOnboardPreviewLoop({'getFrame':()=>getSnapshot()[_0x3c180b(0x21a)](()=>null),'writeFrame':async _0x478478=>{const _0x41dcd6=_0x3c180b;if(_0x12a3ae||!state[_0x41dcd6(0x33a)+_0x41dcd6(0x1af)])return![];try{return _0x275153[_0x41dcd6(0x2cd)](_0x41dcd6(0x334)+_0x41dcd6(0x3a0)+_0x41dcd6(0x2b9)+'ype:\x20i'+_0x41dcd6(0x303)+'peg\x0d\x0aC'+_0x41dcd6(0x2ac)+_0x41dcd6(0x374)+_0x41dcd6(0x2fd)+_0x478478[_0x41dcd6(0x31a)]+_0x41dcd6(0x36d)),_0x275153['write'](_0x478478),_0x275153[_0x41dcd6(0x2cd)]('\x0d\x0a'),!![];}catch{return![];}},'isOpen':()=>!_0x12a3ae&&state[_0x3c180b(0x33a)+_0x3c180b(0x1af)],'delayMs':_0x19283a?ONBOARD_STREAM_INTERVAL_MS:0x0,'emptyDelayMs':_0x19283a?ONBOARD_EMPTY_RETRY_MS:0x12c});}finally{_0x19283a&¬eOnboardPreviewClient(-0x1);if(!_0x275153[_0x3c180b(0x2d9)+_0x3c180b(0x1fe)+'d'])_0x275153[_0x3c180b(0x1c4)]();}}),_0x58dc7f['post']('/api/c'+_0x4801aa(0x21f)+_0x4801aa(0x390),async(_0x252f14,_0x130cf8)=>{const _0x4ab090=_0x4801aa;try{const _0x559b56=String(_0x252f14[_0x4ab090(0x3ba)]?.[_0x4ab090(0x320)]||'');_0x130cf8[_0x4ab090(0x260)](await ptzMove(_0x559b56,{'press':_0x252f14[_0x4ab090(0x3ba)]?.['press']}));}catch(_0x417767){_0x130cf8['status'](0x190)[_0x4ab090(0x260)]({'message':cameraError(_0x417767,_0x4ab090(0x221))});}});}
|
package/dist-server/dev-ui.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
(function(_0x4669e2,_0x279556){const _0x775508=_0x777e,_0x161dcf=_0x4669e2();while(!![]){try{const _0x2afc52=-parseInt(_0x775508(0x12f))/0x1+parseInt(_0x775508(0x131))/0x2*(parseInt(_0x775508(0x12b))/0x3)+-parseInt(_0x775508(0x136))/0x4*(parseInt(_0x775508(0x13a))/0x5)+-parseInt(_0x775508(0x13f))/0x6*(-parseInt(_0x775508(0x13e))/0x7)+parseInt(_0x775508(0x127))/0x8*(-parseInt(_0x775508(0x133))/0x9)+parseInt(_0x775508(0x140))/0xa*(-parseInt(_0x775508(0x126))/0xb)+parseInt(_0x775508(0x138))/0xc*(parseInt(_0x775508(0x12c))/0xd);if(_0x2afc52===_0x279556)break;else _0x161dcf['push'](_0x161dcf['shift']());}catch(_0x19e128){_0x161dcf['push'](_0x161dcf['shift']());}}}(_0x20e3,0x9ed3b));import _0x19c0ed from'node:path';export function shouldAttachDevUi(){const _0x55b1f6=_0x777e;if(process[_0x55b1f6(0x122)][_0x55b1f6(0x13d)+'NV']===_0x55b1f6(0x12e)+_0x55b1f6(0x137))return![];const _0x1f7a22=String(process[_0x55b1f6(0x122)][_0x55b1f6(0x129)+_0x55b1f6(0x123)]||'')[_0x55b1f6(0x132)]();if(_0x1f7a22==='0'||_0x1f7a22===_0x55b1f6(0x139))return![];return!![];}function _0x777e(_0x2a124d,_0x20b490){_0x2a124d=_0x2a124d-0x122;const _0x20e30f=_0x20e3();let _0x777e04=_0x20e30f[_0x2a124d];if(_0x777e['rWlbhI']===undefined){var _0x4fdd47=function(_0x4a8da4){const _0x3f501b='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x19c0ed='',_0x1f7a22='';for(let _0x57a44e=0x0,_0x261500,_0x3349d9,_0x461143=0x0;_0x3349d9=_0x4a8da4['charAt'](_0x461143++);~_0x3349d9&&(_0x261500=_0x57a44e%0x4?_0x261500*0x40+_0x3349d9:_0x3349d9,_0x57a44e++%0x4)?_0x19c0ed+=String['fromCharCode'](0xff&_0x261500>>(-0x2*_0x57a44e&0x6)):0x0){_0x3349d9=_0x3f501b['indexOf'](_0x3349d9);}for(let _0x4486f4=0x0,_0x3a57b4=_0x19c0ed['length'];_0x4486f4<_0x3a57b4;_0x4486f4++){_0x1f7a22+='%'+('00'+_0x19c0ed['charCodeAt'](_0x4486f4)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x1f7a22);};_0x777e['JWjuug']=_0x4fdd47,_0x777e['JHILzG']={},_0x777e['rWlbhI']=!![];}const _0x13605c=_0x20e30f[0x0],_0x5f56b0=_0x2a124d+_0x13605c,_0x18a8b6=_0x777e['JHILzG'][_0x5f56b0];return!_0x18a8b6?(_0x777e04=_0x777e['JWjuug'](_0x777e04),_0x777e['JHILzG'][_0x5f56b0]=_0x777e04):_0x777e04=_0x18a8b6,_0x777e04;}function _0x20e3(){const _0x2c1da3=['rvzFvuK','DML0zs5J','C3bH','mZnSBKDvBLq','mtC2sfz1yw1H','BwLKzgXL','tu9tu19e','tujfrerf','nZvTEw1Jveq','ndGWmJjHy0rnAu0','B25MAwCU','ChjVzhvJ','mteWmZy0nfrJDwHdrG','rf9wsvrf','mtm3otb0u1PvAMu','DhjPBq','mZmWmJi4CKfhAxP5','AM9PBG','tu9tu19f','mtiWofj2qKHHtq','DgLVBG','mta4mdbpueTzz1O','zMfSC2u','mty1mdvTzwTYwwi','D2fYzxm','DxnL','tK9erv9f','ntzhy29tAgO','mJiZmZK4uxLUu0Xz','nZG4mZGWAw1vs21X','zw52'];_0x20e3=function(){return _0x2c1da3;};return _0x20e3();}export async function attachViteDev(_0x57a44e,_0x261500,{root:_0x3349d9}={}){const _0x49a226=_0x777e;process['env'][_0x49a226(0x135)+_0x49a226(0x12a)+_0x49a226(0x130)]='1';const {createServer:_0x461143}=await import('vite'),_0x4486f4=await _0x461143({'root':_0x3349d9,'configFile':_0x19c0ed[_0x49a226(0x134)](_0x3349d9,_0x49a226(0x124)+_0x49a226(0x12d)+'ts'),'server':{'middlewareMode':!![],'hmr':{'server':_0x261500}},'appType':_0x49a226(0x125)});return _0x57a44e[_0x49a226(0x13c)](_0x4486f4[_0x49a226(0x128)+_0x49a226(0x13b)]),_0x4486f4;}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const _0x132bb5=_0x463e;function _0x463e(_0x4ed3e7,_0xe75384){_0x4ed3e7=_0x4ed3e7-0x14a;const _0x53fd3f=_0x53fd();let _0x463e59=_0x53fd3f[_0x4ed3e7];if(_0x463e['FdJAaB']===undefined){var _0x344555=function(_0x3a67ab){const _0x5e27b5='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+/=';let _0x89628d='',_0x402c8c='';for(let _0x4c370d=0x0,_0x574b03,_0x5e6c1f,_0x24fabd=0x0;_0x5e6c1f=_0x3a67ab['charAt'](_0x24fabd++);~_0x5e6c1f&&(_0x574b03=_0x4c370d%0x4?_0x574b03*0x40+_0x5e6c1f:_0x5e6c1f,_0x4c370d++%0x4)?_0x89628d+=String['fromCharCode'](0xff&_0x574b03>>(-0x2*_0x4c370d&0x6)):0x0){_0x5e6c1f=_0x5e27b5['indexOf'](_0x5e6c1f);}for(let _0x29db24=0x0,_0x560182=_0x89628d['length'];_0x29db24<_0x560182;_0x29db24++){_0x402c8c+='%'+('00'+_0x89628d['charCodeAt'](_0x29db24)['toString'](0x10))['slice'](-0x2);}return decodeURIComponent(_0x402c8c);};_0x463e['TdTSgH']=_0x344555,_0x463e['bPsJTq']={},_0x463e['FdJAaB']=!![];}const _0x3c13c2=_0x53fd3f[0x0],_0x516b06=_0x4ed3e7+_0x3c13c2,_0x582a8a=_0x463e['bPsJTq'][_0x516b06];return!_0x582a8a?(_0x463e59=_0x463e['TdTSgH'](_0x463e59),_0x463e['bPsJTq'][_0x516b06]=_0x463e59):_0x463e59=_0x582a8a,_0x463e59;}(function(_0x5d1b80,_0x145962){const _0x39b5a5=_0x463e,_0x5b3827=_0x5d1b80();while(!![]){try{const _0x2c0653=parseInt(_0x39b5a5(0x15e))/0x1*(parseInt(_0x39b5a5(0x15d))/0x2)+parseInt(_0x39b5a5(0x14a))/0x3+-parseInt(_0x39b5a5(0x151))/0x4+parseInt(_0x39b5a5(0x167))/0x5+-parseInt(_0x39b5a5(0x152))/0x6+-parseInt(_0x39b5a5(0x160))/0x7*(parseInt(_0x39b5a5(0x14b))/0x8)+parseInt(_0x39b5a5(0x161))/0x9*(parseInt(_0x39b5a5(0x164))/0xa);if(_0x2c0653===_0x145962)break;else _0x5b3827['push'](_0x5b3827['shift']());}catch(_0x758c54){_0x5b3827['push'](_0x5b3827['shift']());}}}(_0x53fd,0x4b5fb));const ACTIVE_VOICE=new Set([_0x132bb5(0x154)+_0x132bb5(0x14f),_0x132bb5(0x14d)+'ng','connec'+_0x132bb5(0x15b)]);function _0x53fd(){const _0x52b018=['mJy0mduXrK1Wr2fr','yw50','C3rHDgu','mtmWD3fdwKDK','DM9Py2u','zMLSDgvY','mJm3nZi4mfztDNzwzq','C3LZDgvT','BwfW','C2vX','mtaWmtK5nfjpv3DYCW','oezKEMPrAq','DhjPBq','C3bLywTP','AxngAw5P','Aw5N','AxnbCNjH','mtm3ndK2ofvtru5mDq','mZe1mtGWmePfyMT6ua','Bwf4','BgLZDgvU','AgfZ','DxnLCG','AwrSzq','BgLUzxm','CM9Szq','Dgv4Da','DgLUzW','BgvUz3rO','mty4ota4z2nTELLr','nLrfzNjtBq','ChvZAa','mZyZody4nhPjB2vAwG'];_0x53fd=function(){return _0x52b018;};return _0x53fd();}export function applyChatDelta(_0x89628d={'seq':0x0,'lines':[]},_0x402c8c={}){const _0x354128=_0x132bb5,_0x4c370d=Number(_0x402c8c['seq'])||0x0,_0x574b03=Number(_0x89628d[_0x354128(0x16a)])||0x0,_0x5e6c1f=Array[_0x354128(0x150)+'y'](_0x402c8c['lines'])?_0x402c8c[_0x354128(0x158)]:[],_0x24fabd=new Set((_0x89628d['lines']||[])[_0x354128(0x169)](_0x54b110=>_0x54b110[_0x354128(0x16a)])),_0x29db24=[];for(const _0x26cbf2 of _0x5e6c1f){const _0x57a573=Number(_0x26cbf2?.[_0x354128(0x16a)]);if(!Number[_0x354128(0x14e)+'te'](_0x57a573)||_0x24fabd[_0x354128(0x155)](_0x57a573))continue;_0x24fabd['add'](_0x57a573),_0x29db24[_0x354128(0x15f)]({'seq':_0x57a573,'role':_0x26cbf2['role']==='assist'+_0x354128(0x162)||_0x26cbf2[_0x354128(0x159)]===_0x354128(0x168)?_0x26cbf2['role']:_0x354128(0x156),'text':String(_0x26cbf2[_0x354128(0x15a)]||'')[_0x354128(0x14c)](),'state':_0x26cbf2[_0x354128(0x163)]||''});}const _0x560182=_0x29db24[_0x354128(0x169)](_0x47d5b0=>_0x47d5b0[_0x354128(0x16a)]),_0x5d8f5b=_0x402c8c[_0x354128(0x165)]||_0x89628d[_0x354128(0x165)]||_0x354128(0x157),_0x166ebb=_0x29db24[_0x354128(0x166)](_0x360ea6=>_0x360ea6[_0x354128(0x15a)]);if(_0x4c370d<_0x574b03&&_0x166ebb[_0x354128(0x15c)]===0x0)return{'seq':_0x4c370d,'lines':_0x89628d[_0x354128(0x158)]||[],'added':[],'voice':_0x5d8f5b,'rewound':!![]};return{'seq':Math[_0x354128(0x153)](_0x574b03,_0x4c370d,_0x560182[_0x354128(0x15c)]?Math[_0x354128(0x153)](..._0x560182):0x0),'lines':[..._0x89628d['lines']||[],..._0x166ebb],'added':_0x166ebb,'voice':_0x5d8f5b,'rewound':![]};}export function shouldFetchChatSync({voice:voice=_0x132bb5(0x157),remoteSeq:remoteSeq=0x0,localSeq:localSeq=0x0}={}){const _0x2f2f93=_0x132bb5;if(ACTIVE_VOICE[_0x2f2f93(0x155)](String(voice)))return!![];const _0x25177b=Number(remoteSeq)||0x0,_0x2efb80=Number(localSeq)||0x0;if(_0x25177b<_0x2efb80)return!![];return _0x25177b>_0x2efb80;}export function chatSyncIntervalMs({voice:voice=_0x132bb5(0x157)}={}){const _0xb2f88f=_0x132bb5;if(ACTIVE_VOICE[_0xb2f88f(0x155)](String(voice)))return 0x190;return 0x0;}
|