@sgrsoft/vpe-core-sdk 0.24.5 → 0.24.6
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/dist/vpe-core-sdk.cjs.js +1 -1
- package/dist/vpe-core-sdk.es.js +757 -756
- package/package.json +1 -1
package/dist/vpe-core-sdk.es.js
CHANGED
|
@@ -1,112 +1,113 @@
|
|
|
1
|
-
var
|
|
2
|
-
function Te() {
|
|
3
|
-
var x = ["Invalid URL format.", "Fullscreen", "Cannot play DASH video on iOS.", "Settings", "Red", "Provocative content", "hour(s)", "Cancel", "Auto Skip Intro", "This video is rated for all audiences.", "You do not have permission to play this video.", "Raised", "733206BYezDl", "This video may be inappropriate for children under 15 and requires parental guidance.", "Semi Bold", "Player Execution Failed", "Drugs", "Quality", "Depressed", "Text Edge Style", "hour", "Thin", "Text Opacity", "Failed to communicate with the DRM license server.", "Font Weight", "Next video", "Play", "Authentication Failed", "Cyan", "1281940dNvnBE", "Bold", "second(s)", "The live stream is OFFLINE.", "In a moment", "Subtitle Style", "Subtitles", "14TKPZWt", "Monthly basic API calls exceeded. Please switch to a paid version.", "Required module was not loaded. (hls.js)", "Turn on captions", "Drop Shadow", "21694RYfgIS", "Mini player", "The video could not be played.", "White", "The license is not valid.", "Auto Skip Ending", "718110dJJCdk", "Unmute", "Change text, color, and background styles", "You are muted.", "Replay", "This feature requires the Standard plan.", "Not used", "FairPlay certificate validation failed.", "Font Color", "2092992OjXIaM", "Magenta", "Font Size", "Previous video", "minute(s)", "Playback speed", "1WqAUhU", "Auto Skip Opening", "Violence", "Extra Bold", "Cannot play video", "Horror", "Skip Opening", "Uniform", "Language", "seconds until auto-play", "Required module was not loaded. (dash.js)", "Invalid access. Please check your access_key.", "Pause", "Black", "Next video will play in {timeTxt} seconds.", "This video may be inappropriate for minors.", "None", "461052cEHggw", "Sexuality", "Subtitles not available", "Window Color", "544848MRHfZP", "Exit fullscreen", "Invalid DRM token.", "Background Color", "Player Startup Failed", "This video may be inappropriate for children under 12 and requires parental guidance.", "Turn off captions", "Yellow", "Video will start in {timeTxt}."];
|
|
4
|
-
return Te = function() {
|
|
5
|
-
return x;
|
|
6
|
-
}, Te();
|
|
7
|
-
}
|
|
1
|
+
var b = Mt;
|
|
8
2
|
(function(x, t) {
|
|
9
|
-
for (var e =
|
|
3
|
+
for (var e = Mt, i = x(); ; )
|
|
10
4
|
try {
|
|
11
|
-
var a = -parseInt(e(
|
|
5
|
+
var a = -parseInt(e(429)) / 1 + -parseInt(e(489)) / 2 + -parseInt(e(416)) / 3 * (-parseInt(e(410)) / 4) + parseInt(e(484)) / 5 * (-parseInt(e(465)) / 6) + parseInt(e(451)) / 7 * (-parseInt(e(402)) / 8) + parseInt(e(479)) / 9 * (parseInt(e(439)) / 10) + parseInt(e(455)) / 11;
|
|
12
6
|
if (a === t) break;
|
|
13
7
|
i.push(i.shift());
|
|
14
8
|
} catch {
|
|
15
9
|
i.push(i.shift());
|
|
16
10
|
}
|
|
17
|
-
})(
|
|
18
|
-
function
|
|
19
|
-
x =
|
|
20
|
-
|
|
21
|
-
|
|
11
|
+
})(Ee, 849572);
|
|
12
|
+
function Ee() {
|
|
13
|
+
var x = ["Player Execution Failed", "second(s)", "Next video will play in {timeTxt} seconds.", "Provocative content", "Quality", "None", "9sxTthz", "This video is rated for all audiences.", "Required module was not loaded. (dash.js)", "day", "In a moment", "6895RSPtvZ", "Cyan", "Horror", "Invalid access. Please check your access_key.", "Normal", "1355164kxaCBo", "Not used", "171728YAUimt", "Depressed", "Turn on captions", "Raised", "Cannot play DASH video on iOS.", "FairPlay certificate validation failed.", "minute(s)", "Subtitles not available", "15668eEIQMA", "Playback speed", "Language", "min", "You do not have permission to play this video.", "Red", "948KSIWzo", "Failed to communicate with the DRM license server.", "seconds until auto-play", "Drop Shadow", "Imitation risk", "Apply Default Style", "Screen capture / screen recording has been detected.", "Next video", "hour(s)", "Monthly basic API calls exceeded. Please switch to a paid version.", "Video will start in {timeTxt}.", "Background Opacity", "Subtitle Style", "441874aVFgHi", "This video may be inappropriate for children under 15 and requires parental guidance.", "Background Color", "Unsupported format.", "Scheduled", "The network connection is unstable.", "Blue", "Pause", "Required module was not loaded. (hls.js)", "Subtitles", "13377230iDJROs", "Unmute", "Mute", "Skip Opening", "Invalid DRM token.", "Cannot play video", "This video may be inappropriate for minors.", "Sexuality", "Auto", "Change text, color, and background styles", "Violence", "This video may be inappropriate for children under 12 and requires parental guidance.", "77SPShda", "Auto Skip Opening/Ending", "White", "Turn off captions", "8334491SruFCF", "Black", "Thin", "Bold", "Window Color", "Text Edge Style", "You are muted.", "Invalid URL format.", "Font Size", "License", "4908pJijkN", "Yellow", "Magenta", "Previous video", "LIVE", "The license is not valid.", "Play", "Cancel"];
|
|
14
|
+
return Ee = function() {
|
|
15
|
+
return x;
|
|
16
|
+
}, Ee();
|
|
22
17
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
x = x - 156;
|
|
27
|
-
var e = Ce(), i = e[x];
|
|
18
|
+
function Mt(x, t) {
|
|
19
|
+
x = x - 401;
|
|
20
|
+
var e = Ee(), i = e[x];
|
|
28
21
|
return i;
|
|
29
22
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
23
|
+
const Jt = { common: { cancel: b(472), auto: b(447), normal: b(488), notUse: b(401), prev: b(468), next: b(423), delayText: b(418), license: b(464), play: b(471), pause: b(436), replay: "Replay", fullOn: "Fullscreen", fullOff: "Exit fullscreen", muteOn: b(441), muteOff: b(440), captionOff: b(454), captionOn: b(404), setting: "Settings", live: b(469), miniPlayer: "Mini player", isMute: b(461), subtitle: b(438), subtitleNot: b(409) }, settings: { autoplay: "Autoplay", playbackRate: b(411), captions: b(438), quality: b(477) }, skip: { introSkip: "Skip Intro", openingSkip: b(442), endingSkip: "Skip Ending", autoSkipIntro: "Auto Skip Intro", autoSkipOpening: "Auto Skip Opening", autoSkipEnding: "Auto Skip Ending", autoSkipOpeningEnding: b(452) }, ageRating: { noticeAll: b(480), notice12: b(450), notice15: b(430), notice19: b(445) }, contentWarning: { sexuality: b(446), violence: b(449), language: b(412), drugs: "Drugs", horror: b(486), imitation: b(420), provocative: b(476) }, error: { "01": { title: "Cannot play video", desc: b(487) }, "02": { title: b(444), desc: b(414) }, "03": { title: "Authentication Failed", desc: b(434) }, "04": { title: "Cannot play video", desc: "The video could not be played." }, "05": { title: b(444), desc: b(470) }, "06": { title: b(444), desc: b(425) }, "07": { title: b(444), desc: b(432) }, "08": { title: b(444), desc: b(462) }, "09": { title: b(444), desc: "The live stream is OFFLINE." }, 10: { title: "Cannot play video", desc: b(406) }, 11: { title: b(444), desc: b(443) }, 12: { title: b(444), desc: b(417) }, 13: { title: b(444), desc: b(407) }, 14: { title: "Cannot play video", desc: b(422) }, 15: { title: b(473), desc: b(437) }, 16: { title: b(473), desc: b(481) }, 17: { title: "Player Startup Failed", desc: "This feature requires the Standard plan." } }, tv: { default: "Default", quality: b(477), subtitleStyle: b(428), subtitleStyleDesc: b(448), applyDefaultStyle: b(421), fontColor: "Font Color", fontSize: b(463), textOpacity: "Text Opacity", edgeStyle: b(460), bgColor: b(431), bgOpacity: b(427), windowColor: b(459), windowOpacity: "Window Opacity", fontWeight: "Font Weight", weight: { thin: b(457), normal: "Normal", semiBold: "Semi Bold", bold: b(458), extraBold: "Extra Bold" }, color: { white: b(453), black: b(456), red: b(415), green: "Green", blue: b(435), yellow: b(466), magenta: b(467), cyan: b(485) }, edge: { none: b(478), dropShadow: b(419), raised: b(405), depressed: b(403), uniform: "Uniform" } }, alternative: { hour: b(424), minute: b(408), second: b(474), after: b(483), afterMin: b(413), afterHour: "hour", afterDay: b(482), startPlay: b(426), nextPlay: b(475), afterPlay: b(433) } };
|
|
24
|
+
function Te() {
|
|
25
|
+
var x = ["필수 모듈이 로드되지 않았습니다. (hls.js)", "네트워크 연결이 원활하지 않습니다.", "해상도", "이전 동영상", "배경 색상", "글꼴 크기", "창 색상", "{timeTxt}초 후 다음 영상이 재생됩니다.", "인증 실패", "기본 스타일 적용", "잘못된 접근입니다. access_key를 확인해주세요.", "사용안함", "자극적 장면", "텍스트, 색상, 배경 스타일 변경", "1866AjUJhH", "글자 테두리 스타일", "검정색", "엔딩 건너뛰기", "빨간색", "지원하지 않는 형식입니다.", "음소거 상태입니다.", "88LiJIiK", "자막 사용 불가", "전체화면 해제", "동영상을 재생할 수 없음", "음소거 해제", "{timeTxt} 후 영상이 시작됩니다.", "노란색", "일시정지", "인트로 건너뛰기", "이 영상은 15세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", "전체화면", "자막켜기", "동영상을 재생할 권한이 없습니다.", "10NfOdZb", "53709ARDJXS", "자막 스타일", "성적 표현", "시간 ", "엔딩 자동 스킵", "파란색", "DRM 토큰이 잘못되었습니다.", "플레이어 구동 실패", "8iOWYec", "2865360eolpBI", "미니플레이어", "639254vOTfVw", "초 뒤 자동재생", "라이선스", "이 영상은 전체 관람가 영상입니다.", "오프닝/엔딩 자동 스킵", "재생 속도", "필수 모듈이 로드되지 않았습니다. (dash.js)", "iOS에서 Dash 비디오를 재생할 수 없습니다.", "DRM 라이선스 서버와 통신에 실패하였습니다.", "라이선스가 유효하지 않습니다.", "창 불투명도", "오프닝 자동 스킵", "실시간", "그림자", "1186380etbBjw", "875KySAGk", "다음 동영상", "플레이어 실행 실패", "매우 굵게", "663864FAswTN", "모방위험", "초록색", "FairPlay 인증서 검증에 실패하였습니다.", "478489xCMKwn", "이 영상은 12세 미만의 청소년이 시청하기에 부적절하므로 보호자의 시청지도가 필요한 영상입니다.", "Standard 요금제가 필요한 기능입니다.", "자홍색"];
|
|
26
|
+
return Te = function() {
|
|
33
27
|
return x;
|
|
34
|
-
},
|
|
28
|
+
}, Te();
|
|
29
|
+
}
|
|
30
|
+
var h = Ot;
|
|
31
|
+
function Ot(x, t) {
|
|
32
|
+
x = x - 375;
|
|
33
|
+
var e = Te(), i = e[x];
|
|
34
|
+
return i;
|
|
35
35
|
}
|
|
36
36
|
(function(x, t) {
|
|
37
|
-
for (var e =
|
|
37
|
+
for (var e = Ot, i = x(); ; )
|
|
38
38
|
try {
|
|
39
|
-
var a = parseInt(e(
|
|
39
|
+
var a = parseInt(e(443)) / 1 + parseInt(e(422)) / 2 + parseInt(e(413)) / 3 * (-parseInt(e(421)) / 4) + -parseInt(e(439)) / 5 * (-parseInt(e(392)) / 6) + -parseInt(e(424)) / 7 * (parseInt(e(399)) / 8) + -parseInt(e(438)) / 9 + parseInt(e(412)) / 10 * (-parseInt(e(447)) / 11);
|
|
40
40
|
if (a === t) break;
|
|
41
41
|
i.push(i.shift());
|
|
42
42
|
} catch {
|
|
43
43
|
i.push(i.shift());
|
|
44
44
|
}
|
|
45
|
-
})(
|
|
46
|
-
const
|
|
47
|
-
|
|
48
|
-
x = x - 189;
|
|
49
|
-
var e = Ae(), i = e[x];
|
|
50
|
-
return i;
|
|
51
|
-
}
|
|
52
|
-
var g = Mt;
|
|
45
|
+
})(Te, 935302);
|
|
46
|
+
const Xt = { common: { cancel: "취소", auto: "자동", normal: "보통", notUse: h(389), prev: h(381), next: h(440), delayText: h(425), license: h(426), play: "재생", pause: h(406), replay: "다시보기", fullOn: h(409), fullOff: h(401), muteOn: "음소거", muteOff: h(403), captionOff: "자막끄기", captionOn: h(410), setting: "설정", live: h(436), miniPlayer: h(423), isMute: h(398), subtitle: "자막", subtitleNot: h(400) }, settings: { autoplay: "자동재생", playbackRate: h(429), captions: "자막", quality: h(380) }, skip: { introSkip: h(407), openingSkip: "오프닝 건너뛰기", endingSkip: h(395), autoSkipIntro: "인트로 자동 스킵", autoSkipOpening: h(435), autoSkipEnding: h(417), autoSkipOpeningEnding: h(428) }, ageRating: { noticeAll: h(427), notice12: h(375), notice15: h(408), notice19: "이 영상은 청소년이 시청하기에 부적절한 영상입니다." }, contentWarning: { sexuality: h(415), violence: "폭력", language: "욕설", drugs: "약물", horror: "공포", imitation: h(444), provocative: h(390) }, error: { "01": { title: h(402), desc: h(388) }, "02": { title: "동영상을 재생할 수 없음", desc: h(411) }, "03": { title: h(386), desc: h(379) }, "04": { title: h(402), desc: "동영상을 재생할 수 없습니다." }, "05": { title: "동영상을 재생할 수 없음", desc: h(433) }, "06": { title: "동영상을 재생할 수 없음", desc: "월 기본 제공 호출 건수를 초과하였습니다. 유료 버전으로 전환 후 사용 부탁 드립니다." }, "07": { title: h(402), desc: h(397) }, "08": { title: h(402), desc: "URL 형식이 잘못되었습니다." }, "09": { title: h(402), desc: "라이브스트림이 OFFLINE 입니다." }, 10: { title: h(402), desc: h(431) }, 11: { title: "동영상을 재생할 수 없음", desc: h(419) }, 12: { title: h(402), desc: h(432) }, 13: { title: h(402), desc: h(446) }, 14: { title: "동영상을 재생할 수 없음", desc: "화면 캡쳐 / 화면 녹화가 감지되었습니다." }, 15: { title: h(441), desc: h(378) }, 16: { title: h(441), desc: h(430) }, 17: { title: h(420), desc: h(376) } }, tv: { default: "기본", quality: "화질", subtitleStyle: h(414), subtitleStyleDesc: h(391), applyDefaultStyle: h(387), fontColor: "글꼴 색상", fontSize: h(383), textOpacity: "텍스트 불투명도", edgeStyle: h(393), bgColor: h(382), bgOpacity: "배경 불투명도", windowColor: h(384), windowOpacity: h(434), fontWeight: "글자 굵기", weight: { thin: "얇게", normal: "보통", semiBold: "약간 굵게", bold: "굵게", extraBold: h(442) }, color: { white: "흰색", black: h(394), red: h(396), green: h(445), blue: h(418), yellow: h(405), magenta: h(377), cyan: "청록색" }, edge: { none: "없음", dropShadow: h(437), raised: "양각", depressed: "음각", uniform: "균일" } }, alternative: { hour: "시", minute: "분", second: "초", after: "잠시 ", afterMin: "분 ", afterHour: h(416), afterDay: "일 ", startPlay: h(404), nextPlay: h(385), afterPlay: "예정" } };
|
|
47
|
+
var w = Pt;
|
|
53
48
|
(function(x, t) {
|
|
54
|
-
for (var e =
|
|
49
|
+
for (var e = Pt, i = x(); ; )
|
|
55
50
|
try {
|
|
56
|
-
var a = parseInt(e(
|
|
51
|
+
var a = parseInt(e(191)) / 1 + parseInt(e(197)) / 2 + -parseInt(e(214)) / 3 * (-parseInt(e(224)) / 4) + -parseInt(e(193)) / 5 * (-parseInt(e(165)) / 6) + -parseInt(e(202)) / 7 * (parseInt(e(208)) / 8) + -parseInt(e(196)) / 9 * (-parseInt(e(221)) / 10) + -parseInt(e(178)) / 11 * (parseInt(e(182)) / 12);
|
|
57
52
|
if (a === t) break;
|
|
58
53
|
i.push(i.shift());
|
|
59
54
|
} catch {
|
|
60
55
|
i.push(i.shift());
|
|
61
56
|
}
|
|
62
|
-
})(
|
|
57
|
+
})(Ce, 838184);
|
|
58
|
+
function Ce() {
|
|
59
|
+
var x = ["ライセンス", "デフォルトスタイルを適用", "OP/ED自動スキップ", "不正なアクセスです。access_keyを確認してください。", "39XMGMic", "ライブ", "模倣危険", "性的表現", "URLの形式が正しくありません。", "プレーヤーの起動に失敗しました", "キャンセル", "40TGieAv", "一時停止", "この映像は未成年者の視聴には不適切な内容を含みます。", "478200oZfUpR", "画面キャプチャ/画面録画が検出されました。", "動画を再生できません", "次の動画", "文字の太さ", "文字エッジスタイル", "オープニング自動スキップ", "デフォルト", "ライブストリームはオフラインです。", "1755378uSfTZX", "ミュート解除", "字幕は利用できません", "自動再生", "イントロ自動スキップ", "フォントサイズ", "この機能にはStandardプランが必要です。", "{timeTxt}秒後に次の動画が再生されます。", "背景不透明度", "フォント色", "認証に失敗しました", "動画を再生できませんでした。", "沈み込み", "2205896dGFCBr", "この映像は15歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", "リプレイ", "オープニングをスキップ", "192kTMSwn", "{timeTxt}後に動画が始まります。", "字幕をオンにする", "ミュート", "再生速度", "シアン", "ミュート状態です。", "ウィンドウ色", "字幕スタイル", "1082213DYiVpu", "イントロをスキップ", "15FgaDUE", "ライセンスが無効です。", "iOSではDASHビデオを再生できません。", "3487014bludpw", "704546NRmyId", "月間の基本提供呼び出し回数を超過しました。有料版に切り替えてご利用ください。", "DRMライセンスサーバーとの通信に失敗しました。", "全画面表示", "時間後", "7qIDuUU", "刺激的な場面", "必須モジュールが読み込まれていません。(hls.js)", "全画面表示を終了", "必須モジュールが読み込まれていません。(dash.js)", "サポートされていない形式です。", "10954792xYPMpB", "字幕をオフにする"];
|
|
60
|
+
return Ce = function() {
|
|
61
|
+
return x;
|
|
62
|
+
}, Ce();
|
|
63
|
+
}
|
|
64
|
+
function Pt(x, t) {
|
|
65
|
+
x = x - 162;
|
|
66
|
+
var e = Ce(), i = e[x];
|
|
67
|
+
return i;
|
|
68
|
+
}
|
|
69
|
+
const Zt = { common: { cancel: w(220), auto: "自動", normal: "標準", notUse: "使用しない", prev: "前の動画", next: w(227), delayText: "秒後に自動再生", license: w(210), play: "再生", pause: w(222), replay: w(180), fullOn: w(200), fullOff: w(205), muteOn: w(185), muteOff: w(166), captionOff: w(209), captionOn: w(184), setting: "設定", live: w(215), miniPlayer: "ミニプレーヤー", isMute: w(188), subtitle: "字幕", subtitleNot: w(167) }, settings: { autoplay: w(168), playbackRate: w(186), captions: "字幕", quality: "画質" }, skip: { introSkip: w(192), openingSkip: w(181), endingSkip: "エンディングをスキップ", autoSkipIntro: w(169), autoSkipOpening: w(162), autoSkipEnding: "エンディング自動スキップ", autoSkipOpeningEnding: w(212) }, ageRating: { noticeAll: "この映像は全年齢対象です。", notice12: "この映像は12歳未満の視聴には不適切な内容を含むため、保護者の指導が必要です。", notice15: w(179), notice19: w(223) }, contentWarning: { sexuality: w(217), violence: "暴力", language: "暴言", drugs: "薬物", horror: "恐怖", imitation: w(216), provocative: w(203) }, error: { "01": { title: w(226), desc: w(213) }, "02": { title: "動画を再生できません", desc: "この動画を再生する権限がありません。" }, "03": { title: w(175), desc: "ネットワーク接続が不安定です。" }, "04": { title: "動画を再生できません", desc: w(176) }, "05": { title: w(226), desc: w(194) }, "06": { title: w(226), desc: w(198) }, "07": { title: "動画を再生できません", desc: w(207) }, "08": { title: "動画を再生できません", desc: w(218) }, "09": { title: w(226), desc: w(164) }, 10: { title: w(226), desc: w(195) }, 11: { title: w(226), desc: "DRMトークンが無効です。" }, 12: { title: w(226), desc: w(199) }, 13: { title: w(226), desc: "FairPlay証明書の検証に失敗しました。" }, 14: { title: "動画を再生できません", desc: w(225) }, 15: { title: w(219), desc: w(204) }, 16: { title: "プレーヤーの起動に失敗しました", desc: w(206) }, 17: { title: w(219), desc: w(171) } }, tv: { default: w(163), quality: "画質", subtitleStyle: w(190), subtitleStyleDesc: "テキスト、色、背景スタイルを変更", applyDefaultStyle: w(211), fontColor: w(174), fontSize: w(170), textOpacity: "テキスト不透明度", edgeStyle: w(229), bgColor: "背景色", bgOpacity: w(173), windowColor: w(189), windowOpacity: "ウィンドウ不透明度", fontWeight: w(228), weight: { thin: "細い", normal: "標準", semiBold: "やや太い", bold: "太い", extraBold: "極太" }, color: { white: "白", black: "黒", red: "赤", green: "緑", blue: "青", yellow: "黄", magenta: "マゼンタ", cyan: w(187) }, edge: { none: "なし", dropShadow: "ドロップシャドウ", raised: "浮き出し", depressed: w(177), uniform: "均一" } }, alternative: { hour: "時間", minute: "分", second: "秒", after: "しばらくして", afterMin: "分後", afterHour: w(201), afterDay: "日後", startPlay: w(183), nextPlay: w(172), afterPlay: "予定" } };
|
|
63
70
|
function Ae() {
|
|
64
|
-
|
|
71
|
+
const x = ["2207772WINRsY", "split", "27JvFXnv", "1483452OHNoDb", "undefined", "6822SlFdiO", "496vQDbBv", "6141IbekvS", "586998lsXIxk", "1035lNTePO", "378470zvddhr", "2863288UQUpRM", "language"];
|
|
65
72
|
return Ae = function() {
|
|
66
73
|
return x;
|
|
67
74
|
}, Ae();
|
|
68
75
|
}
|
|
69
|
-
const
|
|
76
|
+
const Re = Nt;
|
|
70
77
|
(function(x, t) {
|
|
71
|
-
const e =
|
|
78
|
+
const e = Nt, i = x();
|
|
72
79
|
for (; ; )
|
|
73
80
|
try {
|
|
74
|
-
if (parseInt(e(
|
|
81
|
+
if (-parseInt(e(355)) / 1 + -parseInt(e(353)) / 2 * (parseInt(e(354)) / 3) + parseInt(e(350)) / 4 + parseInt(e(356)) / 5 * (parseInt(e(352)) / 6) + parseInt(e(347)) / 7 + parseInt(e(358)) / 8 + -parseInt(e(349)) / 9 * (-parseInt(e(357)) / 10) === t) break;
|
|
75
82
|
i.push(i.shift());
|
|
76
83
|
} catch {
|
|
77
84
|
i.push(i.shift());
|
|
78
85
|
}
|
|
79
|
-
})(
|
|
80
|
-
function
|
|
81
|
-
return x = x -
|
|
82
|
-
}
|
|
83
|
-
function De() {
|
|
84
|
-
const x = ["464808eFbptw", "7DPQLkn", "undefined", "1392376AIiQLV", "1416930vwNhVL", "2434608GbhXGH", "5150260BQrvGO", "3847010jERvgy", "language", "3045516qvizjm"];
|
|
85
|
-
return De = function() {
|
|
86
|
-
return x;
|
|
87
|
-
}, De();
|
|
86
|
+
})(Ae, 298416);
|
|
87
|
+
function Nt(x, t) {
|
|
88
|
+
return x = x - 346, Ae()[x];
|
|
88
89
|
}
|
|
89
|
-
const
|
|
90
|
-
function
|
|
91
|
-
const t = x
|
|
92
|
-
return
|
|
90
|
+
const Ut = { en: Jt, ko: Xt, ja: Zt }, Qt = () => typeof navigator !== Re(351) && typeof navigator.language !== Re(351);
|
|
91
|
+
function $t(x) {
|
|
92
|
+
const t = Re, e = x[t(348)]("-")[0];
|
|
93
|
+
return e in Ut ? e : "en";
|
|
93
94
|
}
|
|
94
95
|
function Qe(x) {
|
|
95
|
-
const t =
|
|
96
|
+
const t = Re;
|
|
96
97
|
let e = "en";
|
|
97
|
-
x ? e = x :
|
|
98
|
-
const i =
|
|
99
|
-
return
|
|
98
|
+
x ? e = x : Qt() && (e = navigator[t(346)]);
|
|
99
|
+
const i = $t(e);
|
|
100
|
+
return Ut[i];
|
|
100
101
|
}
|
|
101
102
|
Qe();
|
|
102
|
-
var
|
|
103
|
+
var e0 = "2.0.9", t0 = 500, lt = "user-agent", oe = "", ut = "?", T = {
|
|
103
104
|
FUNCTION: "function",
|
|
104
105
|
OBJECT: "object",
|
|
105
106
|
STRING: "string",
|
|
106
107
|
UNDEFINED: "undefined"
|
|
107
|
-
}, P = "browser", z = "cpu", Y = "device", F = "engine", N = "os", se = "result",
|
|
108
|
+
}, P = "browser", z = "cpu", Y = "device", F = "engine", N = "os", se = "result", d = "name", s = "type", u = "vendor", l = "version", M = "architecture", he = "major", c = "model", ke = "console", I = "mobile", k = "tablet", C = "smarttv", V = "wearable", me = "xr", be = "embedded", i0 = "fetcher", ie = "inapp", xt = "brands", ee = "formFactors", at = "fullVersionList", ce = "platform", nt = "platformVersion", Fe = "bitness", Z = "sec-ch-ua", x0 = Z + "-full-version-list", a0 = Z + "-arch", n0 = Z + "-" + Fe, r0 = Z + "-form-factors", o0 = Z + "-" + I, s0 = Z + "-" + c, Lt = Z + "-" + ce, c0 = Lt + "-version", Bt = [xt, at, I, c, ce, nt, M, ee, Fe], ye = "Amazon", xe = "Apple", ft = "ASUS", pt = "BlackBerry", $ = "Google", bt = "Huawei", Ye = "Lenovo", ht = "Honor", ve = "LG", Ke = "Microsoft", ze = "Motorola", gt = "Nvidia", wt = "OnePlus", We = "OPPO", le = "Samsung", mt = "Sharp", ue = "Sony", je = "Xiaomi", qe = "Zebra", yt = "Chrome", vt = "Chromium", q = "Chromecast", _e = "Edge", fe = "Firefox", ae = "Opera", Je = "Facebook", St = "Sogou", ne = "Mobile ", re = " Browser", $e = "Windows", d0 = typeof window !== T.UNDEFINED, O = d0 && window.navigator ? window.navigator : void 0, te = O && O.userAgentData ? O.userAgentData : void 0, l0 = function(x, t) {
|
|
108
109
|
var e = {}, i = t;
|
|
109
|
-
if (!
|
|
110
|
+
if (!De(t)) {
|
|
110
111
|
i = {};
|
|
111
112
|
for (var a in t)
|
|
112
113
|
for (var r in t[a])
|
|
@@ -115,7 +116,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
115
116
|
for (var o in x)
|
|
116
117
|
e[o] = i[o] && i[o].length % 2 === 0 ? i[o].concat(x[o]) : x[o];
|
|
117
118
|
return e;
|
|
118
|
-
},
|
|
119
|
+
}, Ge = function(x) {
|
|
119
120
|
for (var t = {}, e = 0; e < x.length; e++)
|
|
120
121
|
t[x[e].toUpperCase()] = x[e];
|
|
121
122
|
return t;
|
|
@@ -125,15 +126,15 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
125
126
|
if (J(t) == J(x[e])) return !0;
|
|
126
127
|
return !1;
|
|
127
128
|
}
|
|
128
|
-
return
|
|
129
|
-
},
|
|
129
|
+
return ge(x) ? J(t) == J(x) : !1;
|
|
130
|
+
}, De = function(x, t) {
|
|
130
131
|
for (var e in x)
|
|
131
|
-
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ?
|
|
132
|
-
},
|
|
132
|
+
return /^(browser|cpu|device|engine|os)$/.test(e) || (t ? De(x[e]) : !1);
|
|
133
|
+
}, ge = function(x) {
|
|
133
134
|
return typeof x === T.STRING;
|
|
134
|
-
},
|
|
135
|
+
}, Xe = function(x) {
|
|
135
136
|
if (x) {
|
|
136
|
-
for (var t = [], e =
|
|
137
|
+
for (var t = [], e = de(/\\?\"/g, x).split(","), i = 0; i < e.length; i++)
|
|
137
138
|
if (e[i].indexOf(";") > -1) {
|
|
138
139
|
var a = Me(e[i]).split(";v=");
|
|
139
140
|
t[i] = { brand: a[0], version: a[1] };
|
|
@@ -142,9 +143,9 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
142
143
|
return t;
|
|
143
144
|
}
|
|
144
145
|
}, J = function(x) {
|
|
145
|
-
return
|
|
146
|
+
return ge(x) ? x.toLowerCase() : x;
|
|
146
147
|
}, tt = function(x) {
|
|
147
|
-
return
|
|
148
|
+
return ge(x) ? de(/[^\d\.]/g, x).split(".")[0] : void 0;
|
|
148
149
|
}, K = function(x) {
|
|
149
150
|
for (var t in x)
|
|
150
151
|
if (x.hasOwnProperty(t)) {
|
|
@@ -152,20 +153,20 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
152
153
|
typeof e == T.OBJECT && e.length == 2 ? this[e[0]] = e[1] : this[e] = void 0;
|
|
153
154
|
}
|
|
154
155
|
return this;
|
|
155
|
-
},
|
|
156
|
-
return
|
|
157
|
-
},
|
|
158
|
-
return
|
|
156
|
+
}, de = function(x, t) {
|
|
157
|
+
return ge(t) ? t.replace(x, oe) : t;
|
|
158
|
+
}, pe = function(x) {
|
|
159
|
+
return de(/\\?\"/g, x);
|
|
159
160
|
}, Me = function(x, t) {
|
|
160
|
-
return x =
|
|
161
|
+
return x = de(/^\s\s*/, String(x)), typeof t === T.UNDEFINED ? x : x.substring(0, t);
|
|
161
162
|
}, it = function(x, t) {
|
|
162
163
|
if (!(!x || !t))
|
|
163
|
-
for (var e = 0, i, a, r, o,
|
|
164
|
-
var y = t[e],
|
|
165
|
-
for (i = a = 0; i < y.length && !
|
|
166
|
-
if (
|
|
167
|
-
for (r = 0; r <
|
|
168
|
-
|
|
164
|
+
for (var e = 0, i, a, r, o, f, p; e < t.length && !f; ) {
|
|
165
|
+
var y = t[e], S = t[e + 1];
|
|
166
|
+
for (i = a = 0; i < y.length && !f && y[i]; )
|
|
167
|
+
if (f = y[i++].exec(x), f)
|
|
168
|
+
for (r = 0; r < S.length; r++)
|
|
169
|
+
p = f[++a], o = S[r], typeof o === T.OBJECT && o.length > 0 ? o.length === 2 ? typeof o[1] == T.FUNCTION ? this[o[0]] = o[1].call(this, p) : this[o[0]] = o[1] : o.length >= 3 && (typeof o[1] === T.FUNCTION && !(o[1].exec && o[1].test) ? o.length > 3 ? this[o[0]] = p ? o[1].apply(this, o.slice(2)) : void 0 : this[o[0]] = p ? o[1].call(this, p, o[2]) : void 0 : o.length == 3 ? this[o[0]] = p ? p.replace(o[1], o[2]) : void 0 : o.length == 4 ? this[o[0]] = p ? o[3].call(this, p.replace(o[1], o[2])) : void 0 : o.length > 4 && (this[o[0]] = p ? o[3].apply(this, [p.replace(o[1], o[2])].concat(o.slice(4))) : void 0)) : this[o] = p || void 0;
|
|
169
170
|
e += 2;
|
|
170
171
|
}
|
|
171
172
|
}, B = function(x, t) {
|
|
@@ -173,11 +174,11 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
173
174
|
if (typeof t[e] === T.OBJECT && t[e].length > 0) {
|
|
174
175
|
for (var i = 0; i < t[e].length; i++)
|
|
175
176
|
if (et(t[e][i], x))
|
|
176
|
-
return e ===
|
|
177
|
+
return e === ut ? void 0 : e;
|
|
177
178
|
} else if (et(t[e], x))
|
|
178
|
-
return e ===
|
|
179
|
+
return e === ut ? void 0 : e;
|
|
179
180
|
return t.hasOwnProperty("*") ? t["*"] : x;
|
|
180
|
-
},
|
|
181
|
+
}, It = {
|
|
181
182
|
ME: "4.90",
|
|
182
183
|
"NT 3.51": "3.51",
|
|
183
184
|
"NT 4.0": "4.0",
|
|
@@ -189,7 +190,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
189
190
|
"8.1": "6.3",
|
|
190
191
|
10: ["6.4", "10.0"],
|
|
191
192
|
NT: ""
|
|
192
|
-
},
|
|
193
|
+
}, kt = {
|
|
193
194
|
embedded: "Automotive",
|
|
194
195
|
mobile: "Mobile",
|
|
195
196
|
tablet: ["Tablet", "EInk"],
|
|
@@ -198,7 +199,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
198
199
|
xr: ["VR", "XR"],
|
|
199
200
|
"?": ["Desktop", "Unknown"],
|
|
200
201
|
"*": void 0
|
|
201
|
-
},
|
|
202
|
+
}, u0 = {
|
|
202
203
|
Chrome: "Google Chrome",
|
|
203
204
|
Edge: "Microsoft Edge",
|
|
204
205
|
"Edge WebView2": "Microsoft Edge WebView2",
|
|
@@ -208,23 +209,23 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
208
209
|
"MIUI Browser": "Miui Browser",
|
|
209
210
|
"Opera Mobi": "OperaMobile",
|
|
210
211
|
Yandex: "YaBrowser"
|
|
211
|
-
},
|
|
212
|
+
}, _t = {
|
|
212
213
|
browser: [
|
|
213
214
|
[
|
|
214
215
|
// Most common regardless engine
|
|
215
216
|
/\b(?:crmo|crios)\/([\w\.]+)/i
|
|
216
217
|
// Chrome for Android/iOS
|
|
217
218
|
],
|
|
218
|
-
[
|
|
219
|
+
[l, [d, ne + "Chrome"]],
|
|
219
220
|
[
|
|
220
221
|
/webview.+edge\/([\w\.]+)/i
|
|
221
222
|
// Microsoft Edge
|
|
222
223
|
],
|
|
223
|
-
[
|
|
224
|
+
[l, [d, _e + " WebView"]],
|
|
224
225
|
[
|
|
225
226
|
/edg(?:e|ios|a)?\/([\w\.]+)/i
|
|
226
227
|
],
|
|
227
|
-
[
|
|
228
|
+
[l, [d, "Edge"]],
|
|
228
229
|
[
|
|
229
230
|
// Presto based
|
|
230
231
|
/(opera mini)\/([-\w\.]+)/i,
|
|
@@ -234,33 +235,33 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
234
235
|
/(opera)(?:.+version\/|[\/ ]+)([\w\.]+)/i
|
|
235
236
|
// Opera
|
|
236
237
|
],
|
|
237
|
-
[
|
|
238
|
+
[d, l],
|
|
238
239
|
[
|
|
239
240
|
/opios[\/ ]+([\w\.]+)/i
|
|
240
241
|
// Opera mini on iphone >= 8.0
|
|
241
242
|
],
|
|
242
|
-
[
|
|
243
|
+
[l, [d, ae + " Mini"]],
|
|
243
244
|
[
|
|
244
245
|
/\bop(?:rg)?x\/([\w\.]+)/i
|
|
245
246
|
// Opera GX
|
|
246
247
|
],
|
|
247
|
-
[
|
|
248
|
+
[l, [d, ae + " GX"]],
|
|
248
249
|
[
|
|
249
250
|
/\bopr\/([\w\.]+)/i
|
|
250
251
|
// Opera Webkit
|
|
251
252
|
],
|
|
252
|
-
[
|
|
253
|
+
[l, [d, ae]],
|
|
253
254
|
[
|
|
254
255
|
// Mixed
|
|
255
256
|
/\bb[ai]*d(?:uhd|[ub]*[aekoprswx]{5,6})[\/ ]?([\w\.]+)/i
|
|
256
257
|
// Baidu
|
|
257
258
|
],
|
|
258
|
-
[
|
|
259
|
+
[l, [d, "Baidu"]],
|
|
259
260
|
[
|
|
260
261
|
/\b(?:mxbrowser|mxios|myie2)\/?([-\w\.]*)\b/i
|
|
261
262
|
// Maxthon
|
|
262
263
|
],
|
|
263
|
-
[
|
|
264
|
+
[l, [d, "Maxthon"]],
|
|
264
265
|
[
|
|
265
266
|
/(kindle)\/([\w\.]+)/i,
|
|
266
267
|
// Kindle
|
|
@@ -283,22 +284,22 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
283
284
|
/(ecosia|weibo)(?:__| \w+@)([\d\.]+)/i
|
|
284
285
|
// Ecosia/Weibo
|
|
285
286
|
],
|
|
286
|
-
[
|
|
287
|
+
[d, l],
|
|
287
288
|
[
|
|
288
289
|
/quark(?:pc)?\/([-\w\.]+)/i
|
|
289
290
|
// Quark
|
|
290
291
|
],
|
|
291
|
-
[
|
|
292
|
+
[l, [d, "Quark"]],
|
|
292
293
|
[
|
|
293
294
|
/\bddg\/([\w\.]+)/i
|
|
294
295
|
// DuckDuckGo
|
|
295
296
|
],
|
|
296
|
-
[
|
|
297
|
+
[l, [d, "DuckDuckGo"]],
|
|
297
298
|
[
|
|
298
299
|
/(?:\buc? ?browser|(?:juc.+)ucweb)[\/ ]?([\w\.]+)/i
|
|
299
300
|
// UCBrowser
|
|
300
301
|
],
|
|
301
|
-
[
|
|
302
|
+
[l, [d, "UCBrowser"]],
|
|
302
303
|
[
|
|
303
304
|
/microm.+\bqbcore\/([\w\.]+)/i,
|
|
304
305
|
// WeChat Desktop for Windows Built-in Browser
|
|
@@ -306,107 +307,107 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
306
307
|
/micromessenger\/([\w\.]+)/i
|
|
307
308
|
// WeChat
|
|
308
309
|
],
|
|
309
|
-
[
|
|
310
|
+
[l, [d, "WeChat"]],
|
|
310
311
|
[
|
|
311
312
|
/konqueror\/([\w\.]+)/i
|
|
312
313
|
// Konqueror
|
|
313
314
|
],
|
|
314
|
-
[
|
|
315
|
+
[l, [d, "Konqueror"]],
|
|
315
316
|
[
|
|
316
317
|
/trident.+rv[: ]([\w\.]{1,9})\b.+like gecko/i
|
|
317
318
|
// IE11
|
|
318
319
|
],
|
|
319
|
-
[
|
|
320
|
+
[l, [d, "IE"]],
|
|
320
321
|
[
|
|
321
322
|
/ya(?:search)?browser\/([\w\.]+)/i
|
|
322
323
|
// Yandex
|
|
323
324
|
],
|
|
324
|
-
[
|
|
325
|
+
[l, [d, "Yandex"]],
|
|
325
326
|
[
|
|
326
327
|
/slbrowser\/([\w\.]+)/i
|
|
327
328
|
// Smart Lenovo Browser
|
|
328
329
|
],
|
|
329
|
-
[
|
|
330
|
+
[l, [d, "Smart " + Ye + re]],
|
|
330
331
|
[
|
|
331
332
|
/(av(?:ast|g|ira))\/([\w\.]+)/i
|
|
332
333
|
// Avast/AVG/Avira Secure Browser
|
|
333
334
|
],
|
|
334
|
-
[[
|
|
335
|
+
[[d, /(.+)/, "$1 Secure" + re], l],
|
|
335
336
|
[
|
|
336
337
|
/norton\/([\w\.]+)/i
|
|
337
338
|
// Norton Private Browser
|
|
338
339
|
],
|
|
339
|
-
[
|
|
340
|
+
[l, [d, "Norton Private" + re]],
|
|
340
341
|
[
|
|
341
342
|
/\bfocus\/([\w\.]+)/i
|
|
342
343
|
// Firefox Focus
|
|
343
344
|
],
|
|
344
|
-
[
|
|
345
|
+
[l, [d, fe + " Focus"]],
|
|
345
346
|
[
|
|
346
347
|
/ mms\/([\w\.]+)$/i
|
|
347
348
|
// Opera Neon
|
|
348
349
|
],
|
|
349
|
-
[
|
|
350
|
+
[l, [d, ae + " Neon"]],
|
|
350
351
|
[
|
|
351
352
|
/ opt\/([\w\.]+)$/i
|
|
352
353
|
// Opera Touch
|
|
353
354
|
],
|
|
354
|
-
[
|
|
355
|
+
[l, [d, ae + " Touch"]],
|
|
355
356
|
[
|
|
356
357
|
/coc_coc\w+\/([\w\.]+)/i
|
|
357
358
|
// Coc Coc Browser
|
|
358
359
|
],
|
|
359
|
-
[
|
|
360
|
+
[l, [d, "Coc Coc"]],
|
|
360
361
|
[
|
|
361
362
|
/dolfin\/([\w\.]+)/i
|
|
362
363
|
// Dolphin
|
|
363
364
|
],
|
|
364
|
-
[
|
|
365
|
+
[l, [d, "Dolphin"]],
|
|
365
366
|
[
|
|
366
367
|
/coast\/([\w\.]+)/i
|
|
367
368
|
// Opera Coast
|
|
368
369
|
],
|
|
369
|
-
[
|
|
370
|
+
[l, [d, ae + " Coast"]],
|
|
370
371
|
[
|
|
371
372
|
/miuibrowser\/([\w\.]+)/i
|
|
372
373
|
// MIUI Browser
|
|
373
374
|
],
|
|
374
|
-
[
|
|
375
|
+
[l, [d, "MIUI" + re]],
|
|
375
376
|
[
|
|
376
377
|
/fxios\/([\w\.-]+)/i
|
|
377
378
|
// Firefox for iOS
|
|
378
379
|
],
|
|
379
|
-
[
|
|
380
|
+
[l, [d, ne + fe]],
|
|
380
381
|
[
|
|
381
382
|
/\bqihoobrowser\/?([\w\.]*)/i
|
|
382
383
|
// 360
|
|
383
384
|
],
|
|
384
|
-
[
|
|
385
|
+
[l, [d, "360"]],
|
|
385
386
|
[
|
|
386
387
|
/\b(qq)\/([\w\.]+)/i
|
|
387
388
|
// QQ
|
|
388
389
|
],
|
|
389
|
-
[[
|
|
390
|
+
[[d, /(.+)/, "$1Browser"], l],
|
|
390
391
|
[
|
|
391
392
|
/(oculus|sailfish|huawei|vivo|pico)browser\/([\w\.]+)/i
|
|
392
393
|
],
|
|
393
|
-
[[
|
|
394
|
+
[[d, /(.+)/, "$1" + re], l],
|
|
394
395
|
[
|
|
395
396
|
// Oculus/Sailfish/HuaweiBrowser/VivoBrowser/PicoBrowser
|
|
396
397
|
/samsungbrowser\/([\w\.]+)/i
|
|
397
398
|
// Samsung Internet
|
|
398
399
|
],
|
|
399
|
-
[
|
|
400
|
+
[l, [d, le + " Internet"]],
|
|
400
401
|
[
|
|
401
402
|
/metasr[\/ ]?([\d\.]+)/i
|
|
402
403
|
// Sogou Explorer
|
|
403
404
|
],
|
|
404
|
-
[
|
|
405
|
+
[l, [d, St + " Explorer"]],
|
|
405
406
|
[
|
|
406
407
|
/(sogou)mo\w+\/([\d\.]+)/i
|
|
407
408
|
// Sogou Mobile
|
|
408
409
|
],
|
|
409
|
-
[[
|
|
410
|
+
[[d, St + " Mobile"], l],
|
|
410
411
|
[
|
|
411
412
|
/(electron)\/([\w\.]+) safari/i,
|
|
412
413
|
// Electron-based App
|
|
@@ -415,23 +416,23 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
415
416
|
/m?(qqbrowser|2345(?=browser|chrome|explorer))\w*[\/ ]?v?([\w\.]+)/i
|
|
416
417
|
// QQ/2345
|
|
417
418
|
],
|
|
418
|
-
[
|
|
419
|
+
[d, l],
|
|
419
420
|
[
|
|
420
421
|
/(lbbrowser|luakit|rekonq|steam(?= (clie|tenf|gameo)))/i
|
|
421
422
|
// LieBao Browser/Luakit/Rekonq/Steam
|
|
422
423
|
],
|
|
423
|
-
[
|
|
424
|
+
[d],
|
|
424
425
|
[
|
|
425
426
|
/ome\/([\w\.]+).+(iron(?= saf)|360(?=[es]e$))/i
|
|
426
427
|
// Iron / 360
|
|
427
428
|
],
|
|
428
|
-
[
|
|
429
|
+
[l, d],
|
|
429
430
|
[
|
|
430
431
|
// WebView
|
|
431
432
|
/((?:fban\/fbios|fb_iab\/fb4a)(?!.+fbav)|;fbav\/([\w\.]+);)/i
|
|
432
433
|
// Facebook App for iOS & Android
|
|
433
434
|
],
|
|
434
|
-
[[
|
|
435
|
+
[[d, Je], l, [s, ie]],
|
|
435
436
|
[
|
|
436
437
|
/(kakao(?:talk|story))[\/ ]([\w\.]+)/i,
|
|
437
438
|
// Kakao App
|
|
@@ -452,111 +453,111 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
452
453
|
/(instagram|snapchat|klarna)[\/ ]([-\w\.]+)/i
|
|
453
454
|
// Instagram/Snapchat/Klarna
|
|
454
455
|
],
|
|
455
|
-
[
|
|
456
|
+
[d, l, [s, ie]],
|
|
456
457
|
[
|
|
457
458
|
/\bgsa\/([\w\.]+) .*safari\//i
|
|
458
459
|
// Google Search Appliance on iOS
|
|
459
460
|
],
|
|
460
|
-
[
|
|
461
|
+
[l, [d, "GSA"], [s, ie]],
|
|
461
462
|
[
|
|
462
463
|
/(?:musical_ly|trill)(?:.+app_?version\/|_)([\w\.]+)/i
|
|
463
464
|
// TikTok
|
|
464
465
|
],
|
|
465
|
-
[
|
|
466
|
+
[l, [d, "TikTok"], [s, ie]],
|
|
466
467
|
[
|
|
467
468
|
/\[(linkedin)app\]/i
|
|
468
469
|
// LinkedIn App for iOS & Android
|
|
469
470
|
],
|
|
470
|
-
[
|
|
471
|
+
[d, [s, ie]],
|
|
471
472
|
[
|
|
472
473
|
/(zalo(?:app)?)[\/\sa-z]*([\w\.-]+)/i
|
|
473
474
|
// Zalo
|
|
474
475
|
],
|
|
475
|
-
[[
|
|
476
|
+
[[d, /(.+)/, "Zalo"], l, [s, ie]],
|
|
476
477
|
[
|
|
477
478
|
/(chromium)[\/ ]([-\w\.]+)/i
|
|
478
479
|
// Chromium
|
|
479
480
|
],
|
|
480
|
-
[
|
|
481
|
+
[d, l],
|
|
481
482
|
[
|
|
482
483
|
/ome-(lighthouse)$/i
|
|
483
484
|
// Chrome Lighthouse
|
|
484
485
|
],
|
|
485
|
-
[
|
|
486
|
+
[d, [s, i0]],
|
|
486
487
|
[
|
|
487
488
|
/headlesschrome(?:\/([\w\.]+)| )/i
|
|
488
489
|
// Chrome Headless
|
|
489
490
|
],
|
|
490
|
-
[
|
|
491
|
+
[l, [d, yt + " Headless"]],
|
|
491
492
|
[
|
|
492
493
|
/wv\).+chrome\/([\w\.]+).+edgw\//i
|
|
493
494
|
// Edge WebView2
|
|
494
495
|
],
|
|
495
|
-
[
|
|
496
|
+
[l, [d, _e + " WebView2"]],
|
|
496
497
|
[
|
|
497
498
|
/ wv\).+(chrome)\/([\w\.]+)/i
|
|
498
499
|
// Chrome WebView
|
|
499
500
|
],
|
|
500
|
-
[[
|
|
501
|
+
[[d, yt + " WebView"], l],
|
|
501
502
|
[
|
|
502
503
|
/droid.+ version\/([\w\.]+)\b.+(?:mobile safari|safari)/i
|
|
503
504
|
// Android Browser
|
|
504
505
|
],
|
|
505
|
-
[
|
|
506
|
+
[l, [d, "Android" + re]],
|
|
506
507
|
[
|
|
507
508
|
/chrome\/([\w\.]+) mobile/i
|
|
508
509
|
// Chrome Mobile
|
|
509
510
|
],
|
|
510
|
-
[
|
|
511
|
+
[l, [d, ne + "Chrome"]],
|
|
511
512
|
[
|
|
512
513
|
/(chrome|omniweb|arora|[tizenoka]{5} ?browser)\/v?([\w\.]+)/i
|
|
513
514
|
// Chrome/OmniWeb/Arora/Tizen/Nokia
|
|
514
515
|
],
|
|
515
|
-
[
|
|
516
|
+
[d, l],
|
|
516
517
|
[
|
|
517
518
|
/version\/([\w\.\,]+) .*mobile(?:\/\w+ | ?)safari/i
|
|
518
519
|
// Safari Mobile
|
|
519
520
|
],
|
|
520
|
-
[
|
|
521
|
+
[l, [d, ne + "Safari"]],
|
|
521
522
|
[
|
|
522
523
|
/iphone .*mobile(?:\/\w+ | ?)safari/i
|
|
523
524
|
],
|
|
524
|
-
[[
|
|
525
|
+
[[d, ne + "Safari"]],
|
|
525
526
|
[
|
|
526
527
|
/version\/([\w\.\,]+) .*(safari)/i
|
|
527
528
|
// Safari
|
|
528
529
|
],
|
|
529
|
-
[
|
|
530
|
+
[l, d],
|
|
530
531
|
[
|
|
531
532
|
/webkit.+?(mobile ?safari|safari)(\/[\w\.]+)/i
|
|
532
533
|
// Safari < 3.0
|
|
533
534
|
],
|
|
534
|
-
[
|
|
535
|
+
[d, [l, "1"]],
|
|
535
536
|
[
|
|
536
537
|
/(webkit|khtml)\/([\w\.]+)/i
|
|
537
538
|
],
|
|
538
|
-
[
|
|
539
|
+
[d, l],
|
|
539
540
|
[
|
|
540
541
|
// Gecko based
|
|
541
542
|
/(?:mobile|tablet);.*(firefox)\/([\w\.-]+)/i
|
|
542
543
|
// Firefox Mobile
|
|
543
544
|
],
|
|
544
|
-
[[
|
|
545
|
+
[[d, ne + fe], l],
|
|
545
546
|
[
|
|
546
547
|
/(navigator|netscape\d?)\/([-\w\.]+)/i
|
|
547
548
|
// Netscape
|
|
548
549
|
],
|
|
549
|
-
[[
|
|
550
|
+
[[d, "Netscape"], l],
|
|
550
551
|
[
|
|
551
552
|
/(wolvic|librewolf)\/([\w\.]+)/i
|
|
552
553
|
// Wolvic/LibreWolf
|
|
553
554
|
],
|
|
554
|
-
[
|
|
555
|
+
[d, l],
|
|
555
556
|
[
|
|
556
557
|
/mobile vr; rv:([\w\.]+)\).+firefox/i
|
|
557
558
|
// Firefox Reality
|
|
558
559
|
],
|
|
559
|
-
[
|
|
560
|
+
[l, [d, fe + " Reality"]],
|
|
560
561
|
[
|
|
561
562
|
/ekiohf.+(flow)\/([\w\.]+)/i,
|
|
562
563
|
// Flow
|
|
@@ -576,12 +577,12 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
576
577
|
/\b(links) \(([\w\.]+)/i
|
|
577
578
|
// Links
|
|
578
579
|
],
|
|
579
|
-
[
|
|
580
|
+
[d, [l, /_/g, "."]],
|
|
580
581
|
[
|
|
581
582
|
/(cobalt)\/([\w\.]+)/i
|
|
582
583
|
// Cobalt
|
|
583
584
|
],
|
|
584
|
-
[
|
|
585
|
+
[d, [l, /[^\d\.]+./, oe]]
|
|
585
586
|
],
|
|
586
587
|
cpu: [
|
|
587
588
|
[
|
|
@@ -642,19 +643,19 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
642
643
|
// Samsung
|
|
643
644
|
/\b(sch-i[89]0\d|shw-m380s|sm-[ptx]\w{2,4}|gt-[pn]\d{2,4}|sgh-t8[56]9|nexus 10)/i
|
|
644
645
|
],
|
|
645
|
-
[c, [u,
|
|
646
|
+
[c, [u, le], [s, k]],
|
|
646
647
|
[
|
|
647
648
|
/\b((?:s[cgp]h|gt|sm)-(?![lr])\w+|sc[g-]?[\d]+a?|galaxy nexus)/i,
|
|
648
649
|
/samsung[- ]((?!sm-[lr]|browser)[-\w]+)/i,
|
|
649
650
|
/sec-(sgh\w+)/i
|
|
650
651
|
],
|
|
651
|
-
[c, [u,
|
|
652
|
+
[c, [u, le], [s, I]],
|
|
652
653
|
[
|
|
653
654
|
// Apple
|
|
654
655
|
/(?:\/|\()(ip(?:hone|od)[\w, ]*)[\/\);]/i
|
|
655
656
|
// iPod/iPhone
|
|
656
657
|
],
|
|
657
|
-
[c, [u, xe], [s,
|
|
658
|
+
[c, [u, xe], [s, I]],
|
|
658
659
|
[
|
|
659
660
|
/\b(?:ios|apple\w+)\/.+[\(\/](ipad)/i,
|
|
660
661
|
// iPad
|
|
@@ -669,33 +670,33 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
669
670
|
// Sharp
|
|
670
671
|
/\b(sh-?[altvz]?\d\d[a-ekm]?)/i
|
|
671
672
|
],
|
|
672
|
-
[c, [u,
|
|
673
|
+
[c, [u, mt], [s, I]],
|
|
673
674
|
[
|
|
674
675
|
// Honor
|
|
675
676
|
/\b((?:brt|eln|hey2?|gdi|jdn)-a?[lnw]09|(?:ag[rm]3?|jdn2|kob2)-a?[lw]0[09]hn)(?: bui|\)|;)/i
|
|
676
677
|
],
|
|
677
|
-
[c, [u,
|
|
678
|
+
[c, [u, ht], [s, k]],
|
|
678
679
|
[
|
|
679
680
|
/honor([-\w ]+)[;\)]/i
|
|
680
681
|
],
|
|
681
|
-
[c, [u,
|
|
682
|
+
[c, [u, ht], [s, I]],
|
|
682
683
|
[
|
|
683
684
|
// Huawei
|
|
684
685
|
/\b((?:ag[rs][2356]?k?|bah[234]?|bg[2o]|bt[kv]|cmr|cpn|db[ry]2?|jdn2|got|kob2?k?|mon|pce|scm|sht?|[tw]gr|vrd)-[ad]?[lw][0125][09]b?|605hw|bg2-u03|(?:gem|fdr|m2|ple|t1)-[7a]0[1-4][lu]|t1-a2[13][lw]|mediapad[\w\. ]*(?= bui|\)))\b(?!.+d\/s)/i
|
|
685
686
|
],
|
|
686
|
-
[c, [u,
|
|
687
|
+
[c, [u, bt], [s, k]],
|
|
687
688
|
[
|
|
688
689
|
/(?:huawei) ?([-\w ]+)[;\)]/i,
|
|
689
690
|
/\b(nexus 6p|\w{2,4}e?-[atu]?[ln][\dx][\dc][adnt]?)\b(?!.+d\/s)/i
|
|
690
691
|
],
|
|
691
|
-
[c, [u,
|
|
692
|
+
[c, [u, bt], [s, I]],
|
|
692
693
|
[
|
|
693
694
|
// Xiaomi
|
|
694
695
|
/oid[^\)]+; (2[\dbc]{4}(182|283|rp\w{2})[cgl]|m2105k81a?c)(?: bui|\))/i,
|
|
695
696
|
/\b(?:xiao)?((?:red)?mi[-_ ]?pad[\w- ]*)(?: bui|\))/i
|
|
696
697
|
// Mi Pad tablets
|
|
697
698
|
],
|
|
698
|
-
[[c, /_/g, " "], [u,
|
|
699
|
+
[[c, /_/g, " "], [u, je], [s, k]],
|
|
699
700
|
[
|
|
700
701
|
/\b; (\w+) build\/hm\1/i,
|
|
701
702
|
// Xiaomi Hongmi 'numeric' models
|
|
@@ -707,19 +708,19 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
707
708
|
/\b(mi[-_ ]?(?:a\d|one|one[_ ]plus|note|max|cc)?[_ ]?(?:\d{0,2}\w?)[_ ]?(?:plus|se|lite|pro)?( 5g|lte)?)(?: bui|\))/i,
|
|
708
709
|
/ ([\w ]+) miui\/v?\d/i
|
|
709
710
|
],
|
|
710
|
-
[[c, /_/g, " "], [u,
|
|
711
|
+
[[c, /_/g, " "], [u, je], [s, I]],
|
|
711
712
|
[
|
|
712
713
|
// OnePlus
|
|
713
714
|
/droid.+; (cph2[3-6]\d[13579]|((gm|hd)19|(ac|be|in|kb)20|(d[en]|eb|le|mt)21|ne22)[0-2]\d|p[g-l]\w[1m]10)\b/i,
|
|
714
715
|
/(?:one)?(?:plus)? (a\d0\d\d)(?: b|\))/i
|
|
715
716
|
],
|
|
716
|
-
[c, [u, wt], [s,
|
|
717
|
+
[c, [u, wt], [s, I]],
|
|
717
718
|
[
|
|
718
719
|
// OPPO
|
|
719
720
|
/; (\w+) bui.+ oppo/i,
|
|
720
721
|
/\b(cph[12]\d{3}|p(?:af|c[al]|d\w|e[ar])[mt]\d0|x9007|a101op)\b/i
|
|
721
722
|
],
|
|
722
|
-
[c, [u, We], [s,
|
|
723
|
+
[c, [u, We], [s, I]],
|
|
723
724
|
[
|
|
724
725
|
/\b(opd2(\d{3}a?))(?: bui|\))/i
|
|
725
726
|
],
|
|
@@ -729,18 +730,18 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
729
730
|
/(vivo (5r?|6|8l?|go|one|s|x[il]?[2-4]?)[\w\+ ]*)(?: bui|\))/i
|
|
730
731
|
// Vivo series
|
|
731
732
|
],
|
|
732
|
-
[c, [u, "BLU"], [s,
|
|
733
|
+
[c, [u, "BLU"], [s, I]],
|
|
733
734
|
[
|
|
734
735
|
// Vivo
|
|
735
736
|
/; vivo (\w+)(?: bui|\))/i,
|
|
736
737
|
/\b(v[12]\d{3}\w?[at])(?: bui|;)/i
|
|
737
738
|
],
|
|
738
|
-
[c, [u, "Vivo"], [s,
|
|
739
|
+
[c, [u, "Vivo"], [s, I]],
|
|
739
740
|
[
|
|
740
741
|
// Realme
|
|
741
742
|
/\b(rmx[1-3]\d{3})(?: bui|;|\))/i
|
|
742
743
|
],
|
|
743
|
-
[c, [u, "Realme"], [s,
|
|
744
|
+
[c, [u, "Realme"], [s, I]],
|
|
744
745
|
[
|
|
745
746
|
// Lenovo
|
|
746
747
|
/(ideatab[-\w ]+|602lv|d-42a|a101lv|a2109a|a3500-hv|s[56]000|pb-6505[my]|tb-?x?\d{3,4}(?:f[cu]|xu|[av])|yt\d?-[jx]?\d+[lfmx])( bui|;|\)|\/)/i,
|
|
@@ -750,14 +751,14 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
750
751
|
[
|
|
751
752
|
/lenovo[-_ ]?([-\w ]+?)(?: bui|\)|\/)/i
|
|
752
753
|
],
|
|
753
|
-
[c, [u, Ye], [s,
|
|
754
|
+
[c, [u, Ye], [s, I]],
|
|
754
755
|
[
|
|
755
756
|
// Motorola
|
|
756
757
|
/\b(milestone|droid(?:[2-4x]| (?:bionic|x2|pro|razr))?:?( 4g)?)\b[\w ]+build\//i,
|
|
757
758
|
/\bmot(?:orola)?[- ]([\w\s]+)(\)| bui)/i,
|
|
758
759
|
/((?:moto(?! 360)[-\w\(\) ]+|xt\d{3,4}[cgkosw\+]?[-\d]*|nexus 6)(?= bui|\)))/i
|
|
759
760
|
],
|
|
760
|
-
[c, [u, ze], [s,
|
|
761
|
+
[c, [u, ze], [s, I]],
|
|
761
762
|
[
|
|
762
763
|
/\b(mz60\d|xoom[2 ]{0,2}) build\//i
|
|
763
764
|
],
|
|
@@ -772,7 +773,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
772
773
|
/\blg[-e;\/ ]+(?!.*(?:browser|netcast|android tv|watch|webos))(\w+)/i,
|
|
773
774
|
/\blg-?([\d\w]+) bui/i
|
|
774
775
|
],
|
|
775
|
-
[c, [u, ve], [s,
|
|
776
|
+
[c, [u, ve], [s, I]],
|
|
776
777
|
[
|
|
777
778
|
// Nokia
|
|
778
779
|
/(nokia) (t[12][01])/i
|
|
@@ -782,7 +783,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
782
783
|
/(?:maemo|nokia).*(n900|lumia \d+|rm-\d+)/i,
|
|
783
784
|
/nokia[-_ ]?(([-\w\. ]*?))( bui|\)|;|\/)/i
|
|
784
785
|
],
|
|
785
|
-
[[c, /_/g, " "], [s,
|
|
786
|
+
[[c, /_/g, " "], [s, I], [u, "Nokia"]],
|
|
786
787
|
[
|
|
787
788
|
// Google
|
|
788
789
|
/(pixel (c|tablet))\b/i
|
|
@@ -793,7 +794,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
793
794
|
// Google Pixel
|
|
794
795
|
/droid.+;(?: google)? (g(01[13]a|020[aem]|025[jn]|1b60|1f8f|2ybb|4s1m|576d|5nz6|8hhn|8vou|a02099|c15s|d1yq|e2ae|ec77|gh2x|kv4x|p4bc|pj41|r83y|tt9q|ur25|wvk6)|pixel[\d ]*a?( pro)?( xl)?( fold)?( \(5g\))?)( bui|\))/i
|
|
795
796
|
],
|
|
796
|
-
[c, [u, $], [s,
|
|
797
|
+
[c, [u, $], [s, I]],
|
|
797
798
|
[
|
|
798
799
|
/(google) (pixelbook( go)?)/i
|
|
799
800
|
],
|
|
@@ -802,7 +803,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
802
803
|
// Sony
|
|
803
804
|
/droid.+; (a?\d[0-2]{2}so|[c-g]\d{4}|so[-gl]\w+|xq-\w\w\d\d)(?= bui|\).+chrome\/(?![1-6]{0,1}\d\.))/i
|
|
804
805
|
],
|
|
805
|
-
[c, [u, ue], [s,
|
|
806
|
+
[c, [u, ue], [s, I]],
|
|
806
807
|
[
|
|
807
808
|
/sony tablet [ps]/i,
|
|
808
809
|
/\b(?:sony)?sgp\w+(?: bui|\))/i
|
|
@@ -821,7 +822,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
821
822
|
/((?:sd|kf)[0349hijorstuw]+)( bui|\)).+silk\//i
|
|
822
823
|
// Fire Phone
|
|
823
824
|
],
|
|
824
|
-
[[c, /(.+)/g, "Fire Phone $1"], [u, ye], [s,
|
|
825
|
+
[[c, /(.+)/g, "Fire Phone $1"], [u, ye], [s, I]],
|
|
825
826
|
[
|
|
826
827
|
// BlackBerry
|
|
827
828
|
/(playbook);[-\w\),; ]+(rim)/i
|
|
@@ -832,16 +833,16 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
832
833
|
/\b((?:bb[a-f]|st[hv])100-\d)/i,
|
|
833
834
|
/(?:blackberry|\(bb10;) (\w+)/i
|
|
834
835
|
],
|
|
835
|
-
[c, [u, pt], [s,
|
|
836
|
+
[c, [u, pt], [s, I]],
|
|
836
837
|
[
|
|
837
838
|
// Asus
|
|
838
839
|
/(?:\b|asus_)(transfo[prime ]{4,10} \w+|eeepc|slider \w+|nexus 7|padfone|p00[cj])/i
|
|
839
840
|
],
|
|
840
|
-
[c, [u,
|
|
841
|
+
[c, [u, ft], [s, k]],
|
|
841
842
|
[
|
|
842
843
|
/ (z[bes]6[027][012][km][ls]|zenfone \d\w?)\b/i
|
|
843
844
|
],
|
|
844
|
-
[c, [u,
|
|
845
|
+
[c, [u, ft], [s, I]],
|
|
845
846
|
[
|
|
846
847
|
// HTC
|
|
847
848
|
/(nexus 9)/i
|
|
@@ -856,7 +857,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
856
857
|
/(alcatel|geeksphone|nexian|panasonic(?!(?:;|\.))|sony(?!-bra))[-_ ]?([-\w]*)/i
|
|
857
858
|
// Alcatel/GeeksPhone/Nexian/Panasonic/Sony
|
|
858
859
|
],
|
|
859
|
-
[u, [c, /_/g, " "], [s,
|
|
860
|
+
[u, [c, /_/g, " "], [s, I]],
|
|
860
861
|
[
|
|
861
862
|
// TCL
|
|
862
863
|
/tcl (xess p17aa)/i,
|
|
@@ -866,7 +867,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
866
867
|
[
|
|
867
868
|
/droid [\w\.]+; (418(?:7d|8v)|5087z|5102l|61(?:02[dh]|25[adfh]|27[ai]|56[dh]|59k|65[ah])|a509dl|t(?:43(?:0w|1[adepqu])|50(?:6d|7[adju])|6(?:09dl|10k|12b|71[efho]|76[hjk])|7(?:66[ahju]|67[hw]|7[045][bh]|71[hk]|73o|76[ho]|79w|81[hks]?|82h|90[bhsy]|99b)|810[hs]))(_\w(\w|\w\w))?(\)| bui)/i
|
|
868
869
|
],
|
|
869
|
-
[c, [u, "TCL"], [s,
|
|
870
|
+
[c, [u, "TCL"], [s, I]],
|
|
870
871
|
[
|
|
871
872
|
// itel
|
|
872
873
|
/(itel) ((\w+))/i
|
|
@@ -882,34 +883,34 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
882
883
|
/droid.+; (m[1-5] note) bui/i,
|
|
883
884
|
/\bmz-([-\w]{2,})/i
|
|
884
885
|
],
|
|
885
|
-
[c, [u, "Meizu"], [s,
|
|
886
|
+
[c, [u, "Meizu"], [s, I]],
|
|
886
887
|
[
|
|
887
888
|
// Ulefone
|
|
888
889
|
/; ((?:power )?armor(?:[\w ]{0,8}))(?: bui|\))/i
|
|
889
890
|
],
|
|
890
|
-
[c, [u, "Ulefone"], [s,
|
|
891
|
+
[c, [u, "Ulefone"], [s, I]],
|
|
891
892
|
[
|
|
892
893
|
// Energizer
|
|
893
894
|
/; (energy ?\w+)(?: bui|\))/i,
|
|
894
895
|
/; energizer ([\w ]+)(?: bui|\))/i
|
|
895
896
|
],
|
|
896
|
-
[c, [u, "Energizer"], [s,
|
|
897
|
+
[c, [u, "Energizer"], [s, I]],
|
|
897
898
|
[
|
|
898
899
|
// Cat
|
|
899
900
|
/; cat (b35);/i,
|
|
900
901
|
/; (b15q?|s22 flip|s48c|s62 pro)(?: bui|\))/i
|
|
901
902
|
],
|
|
902
|
-
[c, [u, "Cat"], [s,
|
|
903
|
+
[c, [u, "Cat"], [s, I]],
|
|
903
904
|
[
|
|
904
905
|
// Smartfren
|
|
905
906
|
/((?:new )?andromax[\w- ]+)(?: bui|\))/i
|
|
906
907
|
],
|
|
907
|
-
[c, [u, "Smartfren"], [s,
|
|
908
|
+
[c, [u, "Smartfren"], [s, I]],
|
|
908
909
|
[
|
|
909
910
|
// Nothing
|
|
910
911
|
/droid.+; (a(in)?(0(15|59|6[35])|142)p?)/i
|
|
911
912
|
],
|
|
912
|
-
[c, [u, "Nothing"], [s,
|
|
913
|
+
[c, [u, "Nothing"], [s, I]],
|
|
913
914
|
[
|
|
914
915
|
// Archos
|
|
915
916
|
/; (x67 5g|tikeasy \w+|ac[1789]\d\w+)( b|\))/i,
|
|
@@ -920,12 +921,12 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
920
921
|
/archos ([\w ]+)( b|\))/i,
|
|
921
922
|
/; (ac[3-6]\d\w{2,8})( b|\))/i
|
|
922
923
|
],
|
|
923
|
-
[c, [u, "Archos"], [s,
|
|
924
|
+
[c, [u, "Archos"], [s, I]],
|
|
924
925
|
[
|
|
925
926
|
// HMD
|
|
926
927
|
/; (n159v)/i
|
|
927
928
|
],
|
|
928
|
-
[c, [u, "HMD"], [s,
|
|
929
|
+
[c, [u, "HMD"], [s, I]],
|
|
929
930
|
[
|
|
930
931
|
// MIXED
|
|
931
932
|
/(imo) (tab \w+)/i,
|
|
@@ -950,7 +951,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
950
951
|
/droid[^;]+; (philips)[_ ]([sv-x][\d]{3,4}[xz]?)/i
|
|
951
952
|
// Philips
|
|
952
953
|
],
|
|
953
|
-
[u, c, [s,
|
|
954
|
+
[u, c, [s, I]],
|
|
954
955
|
[
|
|
955
956
|
/(kobo)\s(ereader|touch)/i,
|
|
956
957
|
// Kobo
|
|
@@ -969,31 +970,31 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
969
970
|
/droid [\d\.]+; (fp\du?)(?: b|\))/i
|
|
970
971
|
// Fairphone
|
|
971
972
|
],
|
|
972
|
-
[c, [u, "Fairphone"], [s,
|
|
973
|
+
[c, [u, "Fairphone"], [s, I]],
|
|
973
974
|
[
|
|
974
975
|
/((?:tegranote|shield t(?!.+d tv))[\w- ]*?)(?: b|\))/i
|
|
975
976
|
// Nvidia Tablets
|
|
976
977
|
],
|
|
977
|
-
[c, [u,
|
|
978
|
+
[c, [u, gt], [s, k]],
|
|
978
979
|
[
|
|
979
980
|
/(sprint) (\w+)/i
|
|
980
981
|
// Sprint Phones
|
|
981
982
|
],
|
|
982
|
-
[u, c, [s,
|
|
983
|
+
[u, c, [s, I]],
|
|
983
984
|
[
|
|
984
985
|
/(kin\.[onetw]{3})/i
|
|
985
986
|
// Microsoft Kin
|
|
986
987
|
],
|
|
987
|
-
[[c, /\./g, " "], [u, Ke], [s,
|
|
988
|
+
[[c, /\./g, " "], [u, Ke], [s, I]],
|
|
988
989
|
[
|
|
989
990
|
/droid.+; ([c6]+|et5[16]|mc[239][23]x?|vc8[03]x?)\)/i
|
|
990
991
|
// Zebra
|
|
991
992
|
],
|
|
992
|
-
[c, [u,
|
|
993
|
+
[c, [u, qe], [s, k]],
|
|
993
994
|
[
|
|
994
995
|
/droid.+; (ec30|ps20|tc[2-8]\d[kx])\)/i
|
|
995
996
|
],
|
|
996
|
-
[c, [u,
|
|
997
|
+
[c, [u, qe], [s, I]],
|
|
997
998
|
[
|
|
998
999
|
///////////////////
|
|
999
1000
|
// SMARTTVS
|
|
@@ -1007,7 +1008,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1007
1008
|
[
|
|
1008
1009
|
/hbbtv.+maple;(\d+)/i
|
|
1009
1010
|
],
|
|
1010
|
-
[[c, /^/, "SmartTV"], [u,
|
|
1011
|
+
[[c, /^/, "SmartTV"], [u, le], [s, C]],
|
|
1011
1012
|
[
|
|
1012
1013
|
/(vizio)(?: |.+model\/)(\w+-\w+)/i,
|
|
1013
1014
|
// Vizio
|
|
@@ -1028,7 +1029,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1028
1029
|
/crkey.*devicetype\/chromecast/i
|
|
1029
1030
|
// Google Chromecast Third Generation
|
|
1030
1031
|
],
|
|
1031
|
-
[[c,
|
|
1032
|
+
[[c, q + " Third Generation"], [u, $], [s, C]],
|
|
1032
1033
|
[
|
|
1033
1034
|
/crkey.*devicetype\/([^/]*)/i
|
|
1034
1035
|
// Google Chromecast with specific device type
|
|
@@ -1038,12 +1039,12 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1038
1039
|
/fuchsia.*crkey/i
|
|
1039
1040
|
// Google Chromecast Nest Hub
|
|
1040
1041
|
],
|
|
1041
|
-
[[c,
|
|
1042
|
+
[[c, q + " Nest Hub"], [u, $], [s, C]],
|
|
1042
1043
|
[
|
|
1043
1044
|
/crkey/i
|
|
1044
1045
|
// Google Chromecast, Linux-based or unknown
|
|
1045
1046
|
],
|
|
1046
|
-
[[c,
|
|
1047
|
+
[[c, q], [u, $], [s, C]],
|
|
1047
1048
|
[
|
|
1048
1049
|
/(portaltv)/i
|
|
1049
1050
|
// Facebook Portal TV
|
|
@@ -1058,13 +1059,13 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1058
1059
|
/(shield \w+ tv)/i
|
|
1059
1060
|
// Nvidia Shield TV
|
|
1060
1061
|
],
|
|
1061
|
-
[c, [u,
|
|
1062
|
+
[c, [u, gt], [s, C]],
|
|
1062
1063
|
[
|
|
1063
1064
|
/\(dtv[\);].+(aquos)/i,
|
|
1064
1065
|
/(aquos-tv[\w ]+)\)/i
|
|
1065
1066
|
// Sharp
|
|
1066
1067
|
],
|
|
1067
|
-
[c, [u,
|
|
1068
|
+
[c, [u, mt], [s, C]],
|
|
1068
1069
|
[
|
|
1069
1070
|
/(bravia[\w ]+)( bui|\))/i
|
|
1070
1071
|
// Sony
|
|
@@ -1074,7 +1075,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1074
1075
|
/(mi(tv|box)-?\w+) bui/i
|
|
1075
1076
|
// Xiaomi
|
|
1076
1077
|
],
|
|
1077
|
-
[c, [u,
|
|
1078
|
+
[c, [u, je], [s, C]],
|
|
1078
1079
|
[
|
|
1079
1080
|
/Hbbtv.*(technisat) (.*);/i
|
|
1080
1081
|
// TechniSAT
|
|
@@ -1094,12 +1095,12 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1094
1095
|
/(playstation \w+)/i
|
|
1095
1096
|
// Playstation
|
|
1096
1097
|
],
|
|
1097
|
-
[c, [u, ue], [s,
|
|
1098
|
+
[c, [u, ue], [s, ke]],
|
|
1098
1099
|
[
|
|
1099
1100
|
/\b(xbox(?: one)?(?!; xbox))[\); ]/i
|
|
1100
1101
|
// Microsoft Xbox
|
|
1101
1102
|
],
|
|
1102
|
-
[c, [u, Ke], [s,
|
|
1103
|
+
[c, [u, Ke], [s, ke]],
|
|
1103
1104
|
[
|
|
1104
1105
|
/(ouya)/i,
|
|
1105
1106
|
// Ouya
|
|
@@ -1111,7 +1112,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1111
1112
|
/droid.+; ((shield|rgcube|gr0006))( bui|\))/i
|
|
1112
1113
|
// Nvidia Portable/Anbernic/Logitech
|
|
1113
1114
|
],
|
|
1114
|
-
[[u, B, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s,
|
|
1115
|
+
[[u, B, { Nvidia: "Shield", Anbernic: "RGCUBE", Logitech: "GR0006" }], c, [s, ke]],
|
|
1115
1116
|
[
|
|
1116
1117
|
///////////////////
|
|
1117
1118
|
// WEARABLES
|
|
@@ -1119,7 +1120,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1119
1120
|
/\b(sm-[lr]\d\d[0156][fnuw]?s?|gear live)\b/i
|
|
1120
1121
|
// Samsung Galaxy Watch
|
|
1121
1122
|
],
|
|
1122
|
-
[c, [u,
|
|
1123
|
+
[c, [u, le], [s, V]],
|
|
1123
1124
|
[
|
|
1124
1125
|
/((pebble))app/i,
|
|
1125
1126
|
// Pebble
|
|
@@ -1160,7 +1161,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1160
1161
|
[
|
|
1161
1162
|
/droid.+; (wt63?0{2,3})\)/i
|
|
1162
1163
|
],
|
|
1163
|
-
[c, [u,
|
|
1164
|
+
[c, [u, qe], [s, V]],
|
|
1164
1165
|
[
|
|
1165
1166
|
///////////////////
|
|
1166
1167
|
// XR
|
|
@@ -1191,22 +1192,22 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1191
1192
|
/(tesla)(?: qtcarbrowser|\/[-\w\.]+)/i
|
|
1192
1193
|
// Tesla
|
|
1193
1194
|
],
|
|
1194
|
-
[u, [s,
|
|
1195
|
+
[u, [s, be]],
|
|
1195
1196
|
[
|
|
1196
1197
|
/(aeobc)\b/i
|
|
1197
1198
|
// Echo Dot
|
|
1198
1199
|
],
|
|
1199
|
-
[c, [u, ye], [s,
|
|
1200
|
+
[c, [u, ye], [s, be]],
|
|
1200
1201
|
[
|
|
1201
1202
|
/(homepod).+mac os/i
|
|
1202
1203
|
// Apple HomePod
|
|
1203
1204
|
],
|
|
1204
|
-
[c, [u, xe], [s,
|
|
1205
|
+
[c, [u, xe], [s, be]],
|
|
1205
1206
|
[
|
|
1206
1207
|
/windows iot/i
|
|
1207
1208
|
// Unidentifiable embedded device using Windows IoT
|
|
1208
1209
|
],
|
|
1209
|
-
[[s,
|
|
1210
|
+
[[s, be]],
|
|
1210
1211
|
[
|
|
1211
1212
|
////////////////////
|
|
1212
1213
|
// MIXED (GENERIC)
|
|
@@ -1232,7 +1233,7 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1232
1233
|
/(phone|mobile(?:[;\/]| [ \w\/\.]*safari)|pda(?=.+windows ce))/i
|
|
1233
1234
|
// Unidentifiable Mobile
|
|
1234
1235
|
],
|
|
1235
|
-
[[s,
|
|
1236
|
+
[[s, I]],
|
|
1236
1237
|
[
|
|
1237
1238
|
/droid .+?; ([\w\. -]+)( bui|\))/i
|
|
1238
1239
|
// Generic Android Device
|
|
@@ -1244,17 +1245,17 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1244
1245
|
/windows.+ edge\/([\w\.]+)/i
|
|
1245
1246
|
// EdgeHTML
|
|
1246
1247
|
],
|
|
1247
|
-
[
|
|
1248
|
+
[l, [d, _e + "HTML"]],
|
|
1248
1249
|
[
|
|
1249
1250
|
/(arkweb)\/([\w\.]+)/i
|
|
1250
1251
|
// ArkWeb
|
|
1251
1252
|
],
|
|
1252
|
-
[
|
|
1253
|
+
[d, l],
|
|
1253
1254
|
[
|
|
1254
1255
|
/webkit\/537\.36.+chrome\/(?!27)([\w\.]+)/i
|
|
1255
1256
|
// Blink
|
|
1256
1257
|
],
|
|
1257
|
-
[
|
|
1258
|
+
[l, [d, "Blink"]],
|
|
1258
1259
|
[
|
|
1259
1260
|
/(presto)\/([\w\.]+)/i,
|
|
1260
1261
|
// Presto
|
|
@@ -1269,16 +1270,16 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1269
1270
|
/\b(libweb)/i
|
|
1270
1271
|
// LibWeb
|
|
1271
1272
|
],
|
|
1272
|
-
[
|
|
1273
|
+
[d, l],
|
|
1273
1274
|
[
|
|
1274
1275
|
/ladybird\//i
|
|
1275
1276
|
],
|
|
1276
|
-
[[
|
|
1277
|
+
[[d, "LibWeb"]],
|
|
1277
1278
|
[
|
|
1278
1279
|
/rv\:([\w\.]{1,9})\b.+(gecko)/i
|
|
1279
1280
|
// Gecko
|
|
1280
1281
|
],
|
|
1281
|
-
[
|
|
1282
|
+
[l, d]
|
|
1282
1283
|
],
|
|
1283
1284
|
os: [
|
|
1284
1285
|
[
|
|
@@ -1286,24 +1287,24 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1286
1287
|
/(windows nt) (6\.[23]); arm/i
|
|
1287
1288
|
// Windows RT
|
|
1288
1289
|
],
|
|
1289
|
-
[[
|
|
1290
|
+
[[d, /N/, "R"], [l, B, It]],
|
|
1290
1291
|
[
|
|
1291
1292
|
/(windows (?:phone|mobile|iot))(?: os)?[\/ ]?([\d\.]*( se)?)/i,
|
|
1292
1293
|
// Windows IoT/Mobile/Phone
|
|
1293
1294
|
// Windows NT/3.1/95/98/ME/2000/XP/Vista/7/8/8.1/10/11
|
|
1294
1295
|
/(windows)[\/ ](1[01]|2000|3\.1|7|8(\.1)?|9[58]|me|server 20\d\d( r2)?|vista|xp)/i
|
|
1295
1296
|
],
|
|
1296
|
-
[
|
|
1297
|
+
[d, l],
|
|
1297
1298
|
[
|
|
1298
1299
|
/windows nt ?([\d\.\)]*)(?!.+xbox)/i,
|
|
1299
1300
|
/\bwin(?=3| ?9|n)(?:nt| 9x )?([\d\.;]*)/i
|
|
1300
1301
|
],
|
|
1301
|
-
[[
|
|
1302
|
+
[[l, /(;|\))/g, "", B, It], [d, $e]],
|
|
1302
1303
|
[
|
|
1303
1304
|
/(windows ce)\/?([\d\.]*)/i
|
|
1304
1305
|
// Windows CE
|
|
1305
1306
|
],
|
|
1306
|
-
[
|
|
1307
|
+
[d, l],
|
|
1307
1308
|
[
|
|
1308
1309
|
// iOS/macOS
|
|
1309
1310
|
/[adehimnop]{4,7}\b(?:.*os ([\w]+) like mac|; opera)/i,
|
|
@@ -1312,100 +1313,100 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1312
1313
|
/\btvos ?([\w\.]+)/i,
|
|
1313
1314
|
/cfnetwork\/.+darwin/i
|
|
1314
1315
|
],
|
|
1315
|
-
[[
|
|
1316
|
+
[[l, /_/g, "."], [d, "iOS"]],
|
|
1316
1317
|
[
|
|
1317
1318
|
/(mac os x) ?([\w\. ]*)/i,
|
|
1318
1319
|
/(macintosh|mac_powerpc\b)(?!.+(haiku|morphos))/i
|
|
1319
1320
|
// Mac OS
|
|
1320
1321
|
],
|
|
1321
|
-
[[
|
|
1322
|
+
[[d, "macOS"], [l, /_/g, "."]],
|
|
1322
1323
|
[
|
|
1323
1324
|
// Google Chromecast
|
|
1324
1325
|
/android ([\d\.]+).*crkey/i
|
|
1325
1326
|
// Google Chromecast, Android-based
|
|
1326
1327
|
],
|
|
1327
|
-
[
|
|
1328
|
+
[l, [d, q + " Android"]],
|
|
1328
1329
|
[
|
|
1329
1330
|
/fuchsia.*crkey\/([\d\.]+)/i
|
|
1330
1331
|
// Google Chromecast, Fuchsia-based
|
|
1331
1332
|
],
|
|
1332
|
-
[
|
|
1333
|
+
[l, [d, q + " Fuchsia"]],
|
|
1333
1334
|
[
|
|
1334
1335
|
/crkey\/([\d\.]+).*devicetype\/smartspeaker/i
|
|
1335
1336
|
// Google Chromecast, Linux-based Smart Speaker
|
|
1336
1337
|
],
|
|
1337
|
-
[
|
|
1338
|
+
[l, [d, q + " SmartSpeaker"]],
|
|
1338
1339
|
[
|
|
1339
1340
|
/linux.*crkey\/([\d\.]+)/i
|
|
1340
1341
|
// Google Chromecast, Legacy Linux-based
|
|
1341
1342
|
],
|
|
1342
|
-
[
|
|
1343
|
+
[l, [d, q + " Linux"]],
|
|
1343
1344
|
[
|
|
1344
1345
|
/crkey\/([\d\.]+)/i
|
|
1345
1346
|
// Google Chromecast, unknown
|
|
1346
1347
|
],
|
|
1347
|
-
[
|
|
1348
|
+
[l, [d, q]],
|
|
1348
1349
|
[
|
|
1349
1350
|
// Mobile OSes
|
|
1350
1351
|
/droid ([\w\.]+)\b.+(android[- ]x86)/i
|
|
1351
1352
|
// Android-x86
|
|
1352
1353
|
],
|
|
1353
|
-
[
|
|
1354
|
+
[l, d],
|
|
1354
1355
|
[
|
|
1355
1356
|
/(ubuntu) ([\w\.]+) like android/i
|
|
1356
1357
|
// Ubuntu Touch
|
|
1357
1358
|
],
|
|
1358
|
-
[[
|
|
1359
|
+
[[d, /(.+)/, "$1 Touch"], l],
|
|
1359
1360
|
[
|
|
1360
1361
|
/(harmonyos)[\/ ]?([\d\.]*)/i,
|
|
1361
1362
|
// HarmonyOS
|
|
1362
1363
|
// Android/Blackberry/WebOS/QNX/Bada/RIM/KaiOS/Maemo/MeeGo/S40/Sailfish OS/OpenHarmony/Tizen
|
|
1363
1364
|
/(android|bada|blackberry|kaios|maemo|meego|openharmony|qnx|rim tablet os|sailfish|series40|symbian|tizen)\w*[-\/\.; ]?([\d\.]*)/i
|
|
1364
1365
|
],
|
|
1365
|
-
[
|
|
1366
|
+
[d, l],
|
|
1366
1367
|
[
|
|
1367
1368
|
/\(bb(10);/i
|
|
1368
1369
|
// BlackBerry 10
|
|
1369
1370
|
],
|
|
1370
|
-
[
|
|
1371
|
+
[l, [d, pt]],
|
|
1371
1372
|
[
|
|
1372
1373
|
/(?:symbian ?os|symbos|s60(?=;)|series ?60)[-\/ ]?([\w\.]*)/i
|
|
1373
1374
|
// Symbian
|
|
1374
1375
|
],
|
|
1375
|
-
[
|
|
1376
|
+
[l, [d, "Symbian"]],
|
|
1376
1377
|
[
|
|
1377
1378
|
/mozilla\/[\d\.]+ \((?:mobile[;\w ]*|tablet|tv|[^\)]*(?:viera|lg(?:l25|-d300)|alcatel ?o.+|y300-f1)); rv:([\w\.]+)\).+gecko\//i
|
|
1378
1379
|
// Firefox OS
|
|
1379
1380
|
],
|
|
1380
|
-
[
|
|
1381
|
+
[l, [d, fe + " OS"]],
|
|
1381
1382
|
[
|
|
1382
1383
|
/\b(?:hp)?wos(?:browser)?\/([\w\.]+)/i,
|
|
1383
1384
|
// WebOS
|
|
1384
1385
|
/webos(?:[ \/]?|\.tv-20(?=2[2-9]))(\d[\d\.]*)/i
|
|
1385
1386
|
],
|
|
1386
|
-
[
|
|
1387
|
+
[l, [d, "webOS"]],
|
|
1387
1388
|
[
|
|
1388
1389
|
/web0s;.+?(?:chr[o0]me|safari)\/(\d+)/i
|
|
1389
1390
|
// https://webostv.developer.lge.com/develop/specifications/web-api-and-web-engine
|
|
1390
1391
|
],
|
|
1391
|
-
[[
|
|
1392
|
+
[[l, B, { 25: "120", 24: "108", 23: "94", 22: "87", 6: "79", 5: "68", 4: "53", 3: "38", 2: "538", 1: "537", "*": "TV" }], [d, "webOS"]],
|
|
1392
1393
|
[
|
|
1393
1394
|
/watch(?: ?os[,\/ ]|\d,\d\/)([\d\.]+)/i
|
|
1394
1395
|
// watchOS
|
|
1395
1396
|
],
|
|
1396
|
-
[
|
|
1397
|
+
[l, [d, "watchOS"]],
|
|
1397
1398
|
[
|
|
1398
1399
|
// Google ChromeOS
|
|
1399
1400
|
/cros [\w]+(?:\)| ([\w\.]+)\b)/i
|
|
1400
1401
|
// Chromium OS
|
|
1401
1402
|
],
|
|
1402
|
-
[
|
|
1403
|
+
[l, [d, "Chrome OS"]],
|
|
1403
1404
|
[
|
|
1404
1405
|
// Smart TVs
|
|
1405
1406
|
/kepler ([\w\.]+); (aft|aeo)/i
|
|
1406
1407
|
// Vega OS
|
|
1407
1408
|
],
|
|
1408
|
-
[
|
|
1409
|
+
[l, [d, "Vega OS"]],
|
|
1409
1410
|
[
|
|
1410
1411
|
/(netrange)mmh/i,
|
|
1411
1412
|
// Netrange
|
|
@@ -1440,43 +1441,43 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1440
1441
|
/(haiku) ?(r\d)?/i
|
|
1441
1442
|
// Haiku
|
|
1442
1443
|
],
|
|
1443
|
-
[
|
|
1444
|
+
[d, l],
|
|
1444
1445
|
[
|
|
1445
1446
|
/(sunos) ?([\d\.]*)/i
|
|
1446
1447
|
// Solaris
|
|
1447
1448
|
],
|
|
1448
|
-
[[
|
|
1449
|
+
[[d, "Solaris"], l],
|
|
1449
1450
|
[
|
|
1450
1451
|
/\b(beos|os\/2|amigaos|openvms|hp-ux|serenityos)/i,
|
|
1451
1452
|
// BeOS/OS2/AmigaOS/OpenVMS/HP-UX/SerenityOS
|
|
1452
1453
|
/(unix) ?([\w\.]*)/i
|
|
1453
1454
|
// UNIX
|
|
1454
1455
|
],
|
|
1455
|
-
[
|
|
1456
|
+
[d, l]
|
|
1456
1457
|
]
|
|
1457
1458
|
}, Se = (function() {
|
|
1458
1459
|
var x = { init: {}, isIgnore: {}, isIgnoreRgx: {}, toString: {} };
|
|
1459
1460
|
return K.call(x.init, [
|
|
1460
|
-
[P, [
|
|
1461
|
+
[P, [d, l, he, s]],
|
|
1461
1462
|
[z, [M]],
|
|
1462
1463
|
[Y, [s, c, u]],
|
|
1463
|
-
[F, [
|
|
1464
|
-
[N, [
|
|
1464
|
+
[F, [d, l]],
|
|
1465
|
+
[N, [d, l]]
|
|
1465
1466
|
]), K.call(x.isIgnore, [
|
|
1466
|
-
[P, [
|
|
1467
|
-
[F, [
|
|
1468
|
-
[N, [
|
|
1467
|
+
[P, [l, he]],
|
|
1468
|
+
[F, [l]],
|
|
1469
|
+
[N, [l]]
|
|
1469
1470
|
]), K.call(x.isIgnoreRgx, [
|
|
1470
1471
|
[P, / ?browser$/i],
|
|
1471
1472
|
[N, / ?os$/i]
|
|
1472
1473
|
]), K.call(x.toString, [
|
|
1473
|
-
[P, [
|
|
1474
|
+
[P, [d, l]],
|
|
1474
1475
|
[z, [M]],
|
|
1475
1476
|
[Y, [u, c]],
|
|
1476
|
-
[F, [
|
|
1477
|
-
[N, [
|
|
1477
|
+
[F, [d, l]],
|
|
1478
|
+
[N, [d, l]]
|
|
1478
1479
|
]), x;
|
|
1479
|
-
})(),
|
|
1480
|
+
})(), f0 = function(x, t) {
|
|
1480
1481
|
var e = Se.init[t], i = Se.isIgnore[t] || 0, a = Se.isIgnoreRgx[t] || 0, r = Se.toString[t] || 0;
|
|
1481
1482
|
function o() {
|
|
1482
1483
|
K.call(this, e);
|
|
@@ -1484,30 +1485,30 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1484
1485
|
return o.prototype.getItem = function() {
|
|
1485
1486
|
return x;
|
|
1486
1487
|
}, o.prototype.withClientHints = function() {
|
|
1487
|
-
return te ? te.getHighEntropyValues(
|
|
1488
|
-
return x.setCH(new
|
|
1488
|
+
return te ? te.getHighEntropyValues(Bt).then(function(f) {
|
|
1489
|
+
return x.setCH(new Ft(f, !1)).parseCH().get();
|
|
1489
1490
|
}) : x.parseCH().get();
|
|
1490
1491
|
}, o.prototype.withFeatureCheck = function() {
|
|
1491
1492
|
return x.detectFeature().get();
|
|
1492
|
-
}, t != se && (o.prototype.is = function(
|
|
1493
|
-
var
|
|
1493
|
+
}, t != se && (o.prototype.is = function(f) {
|
|
1494
|
+
var p = !1;
|
|
1494
1495
|
for (var y in this)
|
|
1495
|
-
if (this.hasOwnProperty(y) && !et(i, y) && J(a ?
|
|
1496
|
-
if (
|
|
1497
|
-
} else if (
|
|
1498
|
-
|
|
1496
|
+
if (this.hasOwnProperty(y) && !et(i, y) && J(a ? de(a, this[y]) : this[y]) == J(a ? de(a, f) : f)) {
|
|
1497
|
+
if (p = !0, f != T.UNDEFINED) break;
|
|
1498
|
+
} else if (f == T.UNDEFINED && p) {
|
|
1499
|
+
p = !p;
|
|
1499
1500
|
break;
|
|
1500
1501
|
}
|
|
1501
|
-
return
|
|
1502
|
+
return p;
|
|
1502
1503
|
}, o.prototype.toString = function() {
|
|
1503
|
-
var
|
|
1504
|
-
for (var
|
|
1505
|
-
typeof this[r[
|
|
1506
|
-
return
|
|
1507
|
-
}), o.prototype.then = function(
|
|
1508
|
-
var
|
|
1509
|
-
for (var E in
|
|
1510
|
-
|
|
1504
|
+
var f = oe;
|
|
1505
|
+
for (var p in r)
|
|
1506
|
+
typeof this[r[p]] !== T.UNDEFINED && (f += (f ? " " : oe) + this[r[p]]);
|
|
1507
|
+
return f || T.UNDEFINED;
|
|
1508
|
+
}), o.prototype.then = function(f) {
|
|
1509
|
+
var p = this, y = function() {
|
|
1510
|
+
for (var E in p)
|
|
1511
|
+
p.hasOwnProperty(E) && (this[E] = p[E]);
|
|
1511
1512
|
};
|
|
1512
1513
|
y.prototype = {
|
|
1513
1514
|
is: o.prototype.is,
|
|
@@ -1515,56 +1516,56 @@ var $t = "2.0.9", e0 = 500, lt = "user-agent", oe = "", dt = "?", T = {
|
|
|
1515
1516
|
withClientHints: o.prototype.withClientHints,
|
|
1516
1517
|
withFeatureCheck: o.prototype.withFeatureCheck
|
|
1517
1518
|
};
|
|
1518
|
-
var
|
|
1519
|
-
return
|
|
1519
|
+
var S = new y();
|
|
1520
|
+
return f(S), S;
|
|
1520
1521
|
}, new o();
|
|
1521
1522
|
};
|
|
1522
|
-
function
|
|
1523
|
-
if (x = x || {}, K.call(this,
|
|
1523
|
+
function Ft(x, t) {
|
|
1524
|
+
if (x = x || {}, K.call(this, Bt), t)
|
|
1524
1525
|
K.call(this, [
|
|
1525
|
-
[xt,
|
|
1526
|
-
[at,
|
|
1527
|
-
[
|
|
1528
|
-
[c,
|
|
1529
|
-
[ce,
|
|
1530
|
-
[nt,
|
|
1531
|
-
[M,
|
|
1532
|
-
[ee,
|
|
1533
|
-
[Fe,
|
|
1526
|
+
[xt, Xe(x[Z])],
|
|
1527
|
+
[at, Xe(x[x0])],
|
|
1528
|
+
[I, /\?1/.test(x[o0])],
|
|
1529
|
+
[c, pe(x[s0])],
|
|
1530
|
+
[ce, pe(x[Lt])],
|
|
1531
|
+
[nt, pe(x[c0])],
|
|
1532
|
+
[M, pe(x[a0])],
|
|
1533
|
+
[ee, Xe(x[r0])],
|
|
1534
|
+
[Fe, pe(x[n0])]
|
|
1534
1535
|
]);
|
|
1535
1536
|
else
|
|
1536
1537
|
for (var e in x)
|
|
1537
1538
|
this.hasOwnProperty(e) && typeof x[e] !== T.UNDEFINED && (this[e] = x[e]);
|
|
1538
1539
|
}
|
|
1539
|
-
function
|
|
1540
|
+
function X(x, t, e, i) {
|
|
1540
1541
|
return K.call(this, [
|
|
1541
1542
|
["itemType", x],
|
|
1542
1543
|
["ua", t],
|
|
1543
1544
|
["uaCH", i],
|
|
1544
1545
|
["rgxMap", e],
|
|
1545
|
-
["data",
|
|
1546
|
+
["data", f0(this, x)]
|
|
1546
1547
|
]), this;
|
|
1547
1548
|
}
|
|
1548
|
-
|
|
1549
|
+
X.prototype.get = function(x) {
|
|
1549
1550
|
return x ? this.data.hasOwnProperty(x) ? this.data[x] : void 0 : this.data;
|
|
1550
1551
|
};
|
|
1551
|
-
|
|
1552
|
+
X.prototype.set = function(x, t) {
|
|
1552
1553
|
return this.data[x] = t, this;
|
|
1553
1554
|
};
|
|
1554
|
-
|
|
1555
|
+
X.prototype.setCH = function(x) {
|
|
1555
1556
|
return this.uaCH = x, this;
|
|
1556
1557
|
};
|
|
1557
|
-
|
|
1558
|
+
X.prototype.detectFeature = function() {
|
|
1558
1559
|
if (O && O.userAgent == this.ua)
|
|
1559
1560
|
switch (this.itemType) {
|
|
1560
1561
|
case P:
|
|
1561
|
-
O.brave && typeof O.brave.isBrave == T.FUNCTION && this.set(
|
|
1562
|
+
O.brave && typeof O.brave.isBrave == T.FUNCTION && this.set(d, "Brave");
|
|
1562
1563
|
break;
|
|
1563
1564
|
case Y:
|
|
1564
|
-
!this.get(s) && te && te[
|
|
1565
|
+
!this.get(s) && te && te[I] && this.set(s, I), this.get(c) == "Macintosh" && O && typeof O.standalone !== T.UNDEFINED && O.maxTouchPoints && O.maxTouchPoints > 2 && this.set(c, "iPad").set(s, k);
|
|
1565
1566
|
break;
|
|
1566
1567
|
case N:
|
|
1567
|
-
!this.get(
|
|
1568
|
+
!this.get(d) && te && te[ce] && this.set(d, te[ce]);
|
|
1568
1569
|
break;
|
|
1569
1570
|
case se:
|
|
1570
1571
|
var x = this.data, t = function(e) {
|
|
@@ -1574,21 +1575,21 @@ Z.prototype.detectFeature = function() {
|
|
|
1574
1575
|
}
|
|
1575
1576
|
return this;
|
|
1576
1577
|
};
|
|
1577
|
-
|
|
1578
|
+
X.prototype.parseUA = function() {
|
|
1578
1579
|
switch (this.itemType != se && it.call(this.data, this.ua, this.rgxMap), this.itemType) {
|
|
1579
1580
|
case P:
|
|
1580
|
-
this.set(
|
|
1581
|
+
this.set(he, tt(this.get(l)));
|
|
1581
1582
|
break;
|
|
1582
1583
|
case N:
|
|
1583
|
-
if (this.get(
|
|
1584
|
+
if (this.get(d) == "iOS" && this.get(l) == "18.6") {
|
|
1584
1585
|
var x = /\) Version\/([\d\.]+)/.exec(this.ua);
|
|
1585
|
-
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(
|
|
1586
|
+
x && parseInt(x[1].substring(0, 2), 10) >= 26 && this.set(l, x[1]);
|
|
1586
1587
|
}
|
|
1587
1588
|
break;
|
|
1588
1589
|
}
|
|
1589
1590
|
return this;
|
|
1590
1591
|
};
|
|
1591
|
-
|
|
1592
|
+
X.prototype.parseCH = function() {
|
|
1592
1593
|
var x = this.uaCH, t = this.rgxMap;
|
|
1593
1594
|
switch (this.itemType) {
|
|
1594
1595
|
case P:
|
|
@@ -1597,50 +1598,50 @@ Z.prototype.parseCH = function() {
|
|
|
1597
1598
|
if (e)
|
|
1598
1599
|
for (var a = 0; a < e.length; a++) {
|
|
1599
1600
|
var r = e[a].brand || e[a], o = e[a].version;
|
|
1600
|
-
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r !=
|
|
1601
|
+
this.itemType == P && !/not.a.brand/i.test(r) && (!i || /Chrom/.test(i) && r != vt || i == _e && /WebView2/.test(r)) && (r = B(r, u0), i = this.get(d), i && !/Chrom/.test(i) && /Chrom/.test(r) || this.set(d, r).set(l, o).set(he, tt(o)), i = r), this.itemType == F && r == vt && this.set(l, o);
|
|
1601
1602
|
}
|
|
1602
1603
|
break;
|
|
1603
1604
|
case z:
|
|
1604
|
-
var
|
|
1605
|
-
|
|
1605
|
+
var f = x[M];
|
|
1606
|
+
f && (f && x[Fe] == "64" && (f += "64"), it.call(this.data, f + ";", t));
|
|
1606
1607
|
break;
|
|
1607
1608
|
case Y:
|
|
1608
|
-
if (x[
|
|
1609
|
-
var
|
|
1610
|
-
it.call(
|
|
1609
|
+
if (x[I] && this.set(s, I), x[c] && (this.set(c, x[c]), !this.get(s) || !this.get(u))) {
|
|
1610
|
+
var p = {};
|
|
1611
|
+
it.call(p, "droid 9; " + x[c] + ")", t), !this.get(s) && p.type && this.set(s, p.type), !this.get(u) && p.vendor && this.set(u, p.vendor);
|
|
1611
1612
|
}
|
|
1612
1613
|
if (x[ee]) {
|
|
1613
1614
|
var y;
|
|
1614
1615
|
if (typeof x[ee] != "string")
|
|
1615
|
-
for (var
|
|
1616
|
-
y = B(x[ee][
|
|
1616
|
+
for (var S = 0; !y && S < x[ee].length; )
|
|
1617
|
+
y = B(x[ee][S++], kt);
|
|
1617
1618
|
else
|
|
1618
|
-
y = B(x[ee],
|
|
1619
|
+
y = B(x[ee], kt);
|
|
1619
1620
|
this.set(s, y);
|
|
1620
1621
|
}
|
|
1621
1622
|
break;
|
|
1622
1623
|
case N:
|
|
1623
1624
|
var E = x[ce];
|
|
1624
1625
|
if (E) {
|
|
1625
|
-
var
|
|
1626
|
-
E == $e && (
|
|
1626
|
+
var D = x[nt];
|
|
1627
|
+
E == $e && (D = parseInt(tt(D), 10) >= 13 ? "11" : "10"), this.set(d, E).set(l, D);
|
|
1627
1628
|
}
|
|
1628
|
-
this.get(
|
|
1629
|
+
this.get(d) == $e && x[c] == "Xbox" && this.set(d, "Xbox").set(l, void 0);
|
|
1629
1630
|
break;
|
|
1630
1631
|
case se:
|
|
1631
|
-
var
|
|
1632
|
-
return
|
|
1632
|
+
var H = this.data, U = function(L) {
|
|
1633
|
+
return H[L].getItem().setCH(x).parseCH().get();
|
|
1633
1634
|
};
|
|
1634
1635
|
this.set(P, U(P)).set(z, U(z)).set(Y, U(Y)).set(F, U(F)).set(N, U(N));
|
|
1635
1636
|
}
|
|
1636
1637
|
return this;
|
|
1637
1638
|
};
|
|
1638
1639
|
function W(x, t, e) {
|
|
1639
|
-
if (typeof x === T.OBJECT ? (
|
|
1640
|
+
if (typeof x === T.OBJECT ? (De(x, !0) ? (typeof t === T.OBJECT && (e = t), t = x) : (e = x, t = void 0), x = void 0) : typeof x === T.STRING && !De(t, !0) && (e = t, t = void 0), e)
|
|
1640
1641
|
if (typeof e.append === T.FUNCTION) {
|
|
1641
1642
|
var i = {};
|
|
1642
|
-
e.forEach(function(
|
|
1643
|
-
i[String(E).toLowerCase()] =
|
|
1643
|
+
e.forEach(function(S, E) {
|
|
1644
|
+
i[String(E).toLowerCase()] = S;
|
|
1644
1645
|
}), e = i;
|
|
1645
1646
|
} else {
|
|
1646
1647
|
var a = {};
|
|
@@ -1659,11 +1660,11 @@ function W(x, t, e) {
|
|
|
1659
1660
|
oe
|
|
1660
1661
|
)
|
|
1661
1662
|
)
|
|
1662
|
-
),
|
|
1663
|
-
return
|
|
1664
|
-
return new
|
|
1663
|
+
), f = new Ft(e, !0), p = t ? l0(_t, t) : _t, y = function(S) {
|
|
1664
|
+
return S == se ? function() {
|
|
1665
|
+
return new X(S, o, p, f).set("ua", o).set(P, this.getBrowser()).set(z, this.getCPU()).set(Y, this.getDevice()).set(F, this.getEngine()).set(N, this.getOS()).get();
|
|
1665
1666
|
} : function() {
|
|
1666
|
-
return new
|
|
1667
|
+
return new X(S, o, p[S], f).parseUA().get();
|
|
1667
1668
|
};
|
|
1668
1669
|
};
|
|
1669
1670
|
return K.call(this, [
|
|
@@ -1676,708 +1677,708 @@ function W(x, t, e) {
|
|
|
1676
1677
|
["getUA", function() {
|
|
1677
1678
|
return o;
|
|
1678
1679
|
}],
|
|
1679
|
-
["setUA", function(
|
|
1680
|
-
return
|
|
1680
|
+
["setUA", function(S) {
|
|
1681
|
+
return ge(S) && (o = Me(S, t0)), this;
|
|
1681
1682
|
}]
|
|
1682
1683
|
]).setUA(o), this;
|
|
1683
1684
|
}
|
|
1684
|
-
W.VERSION =
|
|
1685
|
-
W.BROWSER =
|
|
1686
|
-
W.CPU =
|
|
1687
|
-
W.DEVICE =
|
|
1688
|
-
W.ENGINE = W.OS =
|
|
1689
|
-
const
|
|
1685
|
+
W.VERSION = e0;
|
|
1686
|
+
W.BROWSER = Ge([d, l, he, s]);
|
|
1687
|
+
W.CPU = Ge([M]);
|
|
1688
|
+
W.DEVICE = Ge([c, u, s, ke, I, C, k, V, be]);
|
|
1689
|
+
W.ENGINE = W.OS = Ge([d, l]);
|
|
1690
|
+
const Et = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
1690
1691
|
__proto__: null,
|
|
1691
1692
|
UAParser: W
|
|
1692
|
-
}, Symbol.toStringTag, { value: "Module" })),
|
|
1693
|
+
}, Symbol.toStringTag, { value: "Module" })), R = [];
|
|
1693
1694
|
for (let x = 0; x < 256; ++x)
|
|
1694
|
-
|
|
1695
|
+
R.push((x + 256).toString(16).slice(1));
|
|
1695
1696
|
function p0(x, t = 0) {
|
|
1696
|
-
return (
|
|
1697
|
+
return (R[x[t + 0]] + R[x[t + 1]] + R[x[t + 2]] + R[x[t + 3]] + "-" + R[x[t + 4]] + R[x[t + 5]] + "-" + R[x[t + 6]] + R[x[t + 7]] + "-" + R[x[t + 8]] + R[x[t + 9]] + "-" + R[x[t + 10]] + R[x[t + 11]] + R[x[t + 12]] + R[x[t + 13]] + R[x[t + 14]] + R[x[t + 15]]).toLowerCase();
|
|
1697
1698
|
}
|
|
1698
|
-
let
|
|
1699
|
-
const
|
|
1700
|
-
function
|
|
1701
|
-
if (!
|
|
1699
|
+
let Ze;
|
|
1700
|
+
const b0 = new Uint8Array(16);
|
|
1701
|
+
function h0() {
|
|
1702
|
+
if (!Ze) {
|
|
1702
1703
|
if (typeof crypto > "u" || !crypto.getRandomValues)
|
|
1703
1704
|
throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
|
|
1704
|
-
|
|
1705
|
+
Ze = crypto.getRandomValues.bind(crypto);
|
|
1705
1706
|
}
|
|
1706
|
-
return
|
|
1707
|
+
return Ze(b0);
|
|
1707
1708
|
}
|
|
1708
|
-
const
|
|
1709
|
+
const g0 = typeof crypto < "u" && crypto.randomUUID && crypto.randomUUID.bind(crypto), Tt = { randomUUID: g0 };
|
|
1709
1710
|
function w0(x, t, e) {
|
|
1710
1711
|
x = x || {};
|
|
1711
|
-
const i = x.random ?? x.rng?.() ??
|
|
1712
|
+
const i = x.random ?? x.rng?.() ?? h0();
|
|
1712
1713
|
if (i.length < 16)
|
|
1713
1714
|
throw new Error("Random bytes length must be >= 16");
|
|
1714
1715
|
return i[6] = i[6] & 15 | 64, i[8] = i[8] & 63 | 128, p0(i);
|
|
1715
1716
|
}
|
|
1716
|
-
function
|
|
1717
|
-
return
|
|
1717
|
+
function Gt(x, t, e) {
|
|
1718
|
+
return Tt.randomUUID && !x ? Tt.randomUUID() : w0(x);
|
|
1718
1719
|
}
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
return x = x - 491, Oe()[x];
|
|
1720
|
+
function Ht(x, t) {
|
|
1721
|
+
return x = x - 243, Oe()[x];
|
|
1722
1722
|
}
|
|
1723
1723
|
function Oe() {
|
|
1724
|
-
const x = ["
|
|
1724
|
+
const x = ["Botswana", "Timor-Leste", "Vanuatu", "Nigeria", "Sweden", "Burkina Faso", "Thailand", "Korea, Republic of", "Mauritius", "Tokelau", "Zambia", "Ukraine", "South Africa", "Yemen", "Guernsey", "8zJTenB", "Ethiopia", "3522dPosei", "Lebanon", "New Caledonia", "Montenegro", "Monaco", "Niger", "Côte d'Ivoire", "Cambodia", "Philippines", "Turkmenistan", "Seychelles", "Papua New Guinea", "Turks and Caicos Islands", "Micronesia (Federated States of)", "Latvia", "Guam", "Virgin Islands (British)", "Bangladesh", "Sint Maarten (Dutch part)", "Malaysia", "Cuba", "Syrian Arab Republic", "Mexico", "Tanzania, United Republic of", "37899GgmyLj", "Brunei Darussalam", "Taiwan", "Macao", "Finland", "Palestine, State of", "Australia", "Mali", "Guyana", "Egypt", "Nepal", "Lesotho", "Réunion", "Angola", "157266VLaEsl", "Costa Rica", "San Marino", "Guinea-Bissau", "Korea (Democratic People's Republic of)", "1912gBqqsG", "Sri Lanka", "2OYOhrN", "French Southern Territories", "Germany", "French Guiana", "Honduras", "Singapore", "Denmark", "Trinidad and Tobago", "Zimbabwe", "Ecuador", "United States of America", "Spain", "Slovenia", "Samoa", "Cayman Islands", "Nicaragua", "Nauru", "Cabo Verde", "Luxembourg", "Rwanda", "Bolivia (Plurinational State of)", "Aruba", "Israel", "Mozambique", "British Indian Ocean Territory", "Cyprus", "Iraq", "Grenada", "Somalia", "Tunisia", "Oman", "Cook Islands", "Gabon", "Tajikistan", "2449645Ffsujy", "Chile", "8498EixbHZ", "16874506FDZpFt", "Indonesia", "Heard Island and McDonald Islands", "Iran (Islamic Republic of)", "Kiribati", "Canada", "Barbados", "Morocco", "United Kingdom", "Marshall Islands", "Niue", "Armenia", "Kuwait", "Hong Kong", "French Polynesia", "Antarctica", "Italy", "Serbia", "Djibouti", "Hungary", "Sao Tome and Principe", "Saint Lucia", "Saint Martin (French part)", "Saint Kitts and Nevis", "Madagascar", "United States Minor Outlying Islands", "Lithuania", "Romania", "Colombia", "Malta", "Qatar", "2588601sTEUJN", "Kenya", "Virgin Islands (U.S.)", "South Sudan", "Pitcairn", "Viet Nam", "Uruguay", "Argentina", "Liberia", "Austria", "7336330kGJhWG", "Saint Helena, Ascension and Tristan da Cunha", "Cameroon", "South Georgia and the South Sandwich Islands", "Saint Barthélemy", "Afghanistan", "Estonia", "Montserrat", "Netherlands", "Greece", "Mauritania", "Iceland", "Guadeloupe", "Senegal", "Japan", "Guatemala", "Congo (Democratic Republic of the)", "Malawi", "Congo", "Chad", "Norway", "Bahamas", "Martinique", "Holy See", "Switzerland", "Jersey", "Namibia", "Haiti", "Myanmar", "Benin", "Czech Republic", "Jamaica", "Sudan", "Brazil", "China", "24jzLXrJ", "Turkey", "France", "Paraguay", "Liechtenstein", "Gambia", "Bhutan", "Tuvalu", "Pakistan", "Svalbard and Jan Mayen", "Guinea", "Peru", "Bermuda", "Togo", "Faroe Islands", "Bonaire, Sint Eustatius and Saba", "Belarus", "Tonga", "Anguilla", "Falkland Islands (Malvinas)", "Sierra Leone", "Burundi", "Georgia", "Comoros"];
|
|
1725
1725
|
return Oe = function() {
|
|
1726
1726
|
return x;
|
|
1727
1727
|
}, Oe();
|
|
1728
1728
|
}
|
|
1729
|
+
const n = Ht;
|
|
1729
1730
|
(function(x, t) {
|
|
1730
|
-
const e =
|
|
1731
|
+
const e = Ht, i = x();
|
|
1731
1732
|
for (; ; )
|
|
1732
1733
|
try {
|
|
1733
|
-
if (parseInt(e(
|
|
1734
|
+
if (parseInt(e(384)) / 1 + parseInt(e(391)) / 2 * (parseInt(e(260)) / 3) + parseInt(e(344)) / 4 * (-parseInt(e(425)) / 5) + parseInt(e(346)) / 6 * (-parseInt(e(427)) / 7) + -parseInt(e(389)) / 8 * (parseInt(e(370)) / 9) + -parseInt(e(270)) / 10 + -parseInt(e(428)) / 11 * (-parseInt(e(305)) / 12) === t) break;
|
|
1734
1735
|
i.push(i.shift());
|
|
1735
1736
|
} catch {
|
|
1736
1737
|
i.push(i.shift());
|
|
1737
1738
|
}
|
|
1738
|
-
})(Oe,
|
|
1739
|
-
const
|
|
1739
|
+
})(Oe, 655687);
|
|
1740
|
+
const Vt = { AF: n(275), AX: "Åland Islands", AL: "Albania", DZ: "Algeria", AS: "American Samoa", AD: "Andorra", AO: n(383), AI: n(323), AQ: n(244), AG: "Antigua and Barbuda", AR: n(267), AM: n(439), AW: n(412), AU: n(376), AT: n(269), AZ: "Azerbaijan", BS: n(291), BH: "Bahrain", BD: n(363), BB: n(434), BY: n(321), BE: "Belgium", BZ: "Belize", BJ: n(299), BM: n(317), BT: n(311), BO: n(411), BQ: n(320), BA: "Bosnia and Herzegovina", BW: n(329), BV: "Bouvet Island", BR: n(303), IO: n(415), BN: n(371), BG: "Bulgaria", BF: n(334), BI: n(326), CV: n(408), KH: n(353), CM: n(272), CA: n(433), KY: n(405), CF: "Central African Republic", TD: n(289), CL: n(426), CN: n(304), CX: "Christmas Island", CC: "Cocos (Keeling) Islands", CO: n(257), KM: n(328), CG: n(288), CD: n(286), CK: n(422), CR: n(385), CI: n(352), HR: "Croatia", CU: n(366), CW: "Curaçao", CY: n(416), CZ: n(300), DK: n(397), DJ: n(247), DM: "Dominica", DO: "Dominican Republic", EC: n(400), EG: n(379), SV: "El Salvador", GQ: "Equatorial Guinea", ER: "Eritrea", EE: n(276), ET: n(345), FK: n(324), FO: n(319), FJ: "Fiji", FI: n(374), FR: n(307), GF: n(394), PF: n(243), TF: n(392), GA: n(423), GM: n(310), GE: n(327), DE: n(393), GH: "Ghana", GI: "Gibraltar", GR: n(279), GL: "Greenland", GD: n(418), GP: n(282), GU: n(361), GT: n(285), GG: n(343), GN: n(315), GW: n(387), GY: n(378), HT: n(297), HM: n(430), VA: n(293), HN: n(395), HK: n(441), HU: n(248), IS: n(281), IN: "India", ID: n(429), IR: n(431), IQ: n(417), IE: "Ireland", IM: "Isle of Man", IL: n(413), IT: n(245), JM: n(301), JP: n(284), JE: n(295), JO: "Jordan", KZ: "Kazakhstan", KE: n(261), KI: n(432), KP: n(388), KR: n(336), KW: n(440), KG: "Kyrgyzstan", LA: "Lao People's Democratic Republic", LV: n(360), LB: n(347), LS: n(381), LR: n(268), LY: "Libya", LI: n(309), LT: n(255), LU: n(409), MO: n(373), MK: "Macedonia (the former Yugoslav Republic of)", MG: n(253), MW: n(287), MY: n(365), MV: "Maldives", ML: n(377), MT: n(258), MH: n(437), MQ: n(292), MR: n(280), MU: n(337), YT: "Mayotte", MX: n(368), FM: n(359), MD: "Moldova (Republic of)", MC: n(350), MN: "Mongolia", ME: n(349), MS: n(277), MA: n(435), MZ: n(414), MM: n(298), NA: n(296), NR: n(407), NP: n(380), NL: n(278), NC: n(348), NZ: "New Zealand", NI: n(406), NE: n(351), NG: n(332), NU: n(438), NF: "Norfolk Island", MP: "Northern Mariana Islands", NO: n(290), OM: n(421), PK: n(313), PW: "Palau", PS: n(375), PA: "Panama", PG: n(357), PY: n(308), PE: n(316), PH: n(354), PN: n(264), PL: "Poland", PT: "Portugal", PR: "Puerto Rico", QA: n(259), RE: n(382), RO: n(256), RU: "Russian Federation", RW: n(410), BL: n(274), SH: n(271), KN: n(252), LC: n(250), MF: n(251), PM: "Saint Pierre and Miquelon", VC: "Saint Vincent and the Grenadines", WS: n(404), SM: n(386), ST: n(249), SA: "Saudi Arabia", SN: n(283), RS: n(246), SC: n(356), SL: n(325), SG: n(396), SX: n(364), SK: "Slovakia", SI: n(403), SB: "Solomon Islands", SO: n(419), ZA: n(341), GS: n(273), SS: n(263), ES: n(402), LK: n(390), SD: n(302), SR: "Suriname", SJ: n(314), SZ: "Swaziland", SE: n(333), CH: n(294), SY: n(367), TW: n(372), TJ: n(424), TZ: n(369), TH: n(335), TL: n(330), TG: n(318), TK: n(338), TO: n(322), TT: n(398), TN: n(420), TR: n(306), TM: n(355), TC: n(358), TV: n(312), UG: "Uganda", UA: n(340), AE: "United Arab Emirates", GB: n(436), US: n(401), UM: n(254), UY: n(266), UZ: "Uzbekistan", VU: n(331), VE: "Venezuela (Bolivarian Republic of)", VN: n(265), VG: n(362), VI: n(262), WF: "Wallis and Futuna", EH: "Western Sahara", YE: n(342), ZM: n(339), ZW: n(399) };
|
|
1741
|
+
function Pe() {
|
|
1742
|
+
const x = ["2926326RPMYzF", "sessionId", "mpd", "live", "error", "hls", "quality", "11284070kfCTMz", "address", "log", "country", "videoStartTime", "test", "timeupdate", "MA vpe init", "type", "logDateUnix", "dash", "isp", "latest", "sendBeacon", "1938846abLOuD", "m3u8", "getTime", "https://papi.vpe.naverncp.com/player/maSync", "created_at", "getSeconds", "https://papi.beta-vpe.naverncp.com/player/maSync", "TID", "application/json", "POST", "result", "seekedTime", "getMonth", "https://log.vpe.gov-ntruss.com/stats", "vpePackageId", "geoLocation", "stringify", "url", "totalStartTime", "VPE React Native", "https://log.beta-vpe.naverncp.com/stats", "vpe", "host", "indexOf", "parse", "log_type", "assign", "extra", "syncResult", "3938988MVldlW", "MA report failed:", "floor", "actionType", "net", "1.0", "unknown", "actionDuration", "report", "video", "MA report actionType ->", "nation", "MA init report failed:", "isArray", "stage", "getDate", "getFullYear", "Korea, Republic of", "padStart", "vod", "logDate", "https://log.vpe.naverncp.com/stats", "UUID", "toLowerCase", "2486295RShYdL", "550790EmpZRA", "pub", "player_version", "browser", "1411280fJYcKu", "join", "forEach", "------------------------------------------------", "playerStartTime", "platform", "object", "push", "json"];
|
|
1743
|
+
return Pe = function() {
|
|
1744
|
+
return x;
|
|
1745
|
+
}, Pe();
|
|
1746
|
+
}
|
|
1747
|
+
const _ = Yt;
|
|
1740
1748
|
(function(x, t) {
|
|
1741
|
-
const e =
|
|
1749
|
+
const e = Yt, i = x();
|
|
1742
1750
|
for (; ; )
|
|
1743
1751
|
try {
|
|
1744
|
-
if (parseInt(e(
|
|
1752
|
+
if (-parseInt(e(557)) / 1 + parseInt(e(503)) / 2 + -parseInt(e(570)) / 3 + -parseInt(e(561)) / 4 + parseInt(e(556)) / 5 + -parseInt(e(532)) / 6 + parseInt(e(577)) / 7 === t) break;
|
|
1745
1753
|
i.push(i.shift());
|
|
1746
1754
|
} catch {
|
|
1747
1755
|
i.push(i.shift());
|
|
1748
1756
|
}
|
|
1749
|
-
})(Pe,
|
|
1750
|
-
function
|
|
1751
|
-
|
|
1752
|
-
return Pe = function() {
|
|
1753
|
-
return x;
|
|
1754
|
-
}, Pe();
|
|
1757
|
+
})(Pe, 543142);
|
|
1758
|
+
function Yt(x, t) {
|
|
1759
|
+
return x = x - 492, Pe()[x];
|
|
1755
1760
|
}
|
|
1756
|
-
const
|
|
1757
|
-
let A = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: _(
|
|
1758
|
-
const
|
|
1761
|
+
const He = { gov: { prod: { log: "https://papi.vpe.gov-ntruss.com/player/maSync", report: _(516) }, beta: { log: "https://papi.beta-vpe.gov-ntruss.com/player/maSync", report: "https://log.beta-vpe.gov-ntruss.com/stats" } }, pub: { prod: { log: _(506), report: _(553) }, beta: { log: _(509), report: _(523) } } };
|
|
1762
|
+
let A = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: _(501), extra: { sessionId: null, playerType: _(522) }, log_type: _(524), privacy: { cookie_enabled: !0 } }, G = { platform: _(558), stage: "prod", sync: !1, syncResult: {} };
|
|
1763
|
+
const m0 = (/* @__PURE__ */ new Date())[_(505)](), Kt = (x) => x;
|
|
1759
1764
|
function Ie() {
|
|
1760
|
-
return
|
|
1765
|
+
return Gt();
|
|
1761
1766
|
}
|
|
1762
|
-
function
|
|
1763
|
-
return
|
|
1767
|
+
function Ct() {
|
|
1768
|
+
return Gt();
|
|
1764
1769
|
}
|
|
1765
|
-
const
|
|
1766
|
-
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(
|
|
1770
|
+
const zt = () => {
|
|
1771
|
+
const x = _, t = /* @__PURE__ */ new Date(), e = (o) => String(o)[x(550)](2, "0"), i = t[x(548)]() + "-" + e(t[x(515)]() + 1) + "-" + e(t[x(547)]()) + " " + e(t.getHours()) + ":" + e(t.getMinutes()) + ":" + e(t[x(508)]()), a = Math.floor(t[x(505)]() / 1e3), r = (/* @__PURE__ */ new Date())[x(505)]() - m0;
|
|
1767
1772
|
return { logDate: i, logDateUnix: a, thisSec: r };
|
|
1768
1773
|
};
|
|
1769
|
-
function
|
|
1774
|
+
function y0(x) {
|
|
1770
1775
|
const t = _;
|
|
1771
|
-
return typeof x === t(
|
|
1776
|
+
return typeof x === t(567) && x !== null && !Array[t(545)](x);
|
|
1772
1777
|
}
|
|
1773
1778
|
function rt(x, t) {
|
|
1774
1779
|
const e = _;
|
|
1775
|
-
Object
|
|
1780
|
+
Object.entries(t)[e(563)](([i, a]) => {
|
|
1776
1781
|
const r = e;
|
|
1777
|
-
|
|
1778
|
-
|
|
1782
|
+
y0(a) ? (!x[i] && (x[i] = {}), Object.entries(a)[r(563)](([o, f]) => {
|
|
1783
|
+
f != null && (x[i][o] = f);
|
|
1779
1784
|
})) : a != null && (x[i] = a);
|
|
1780
1785
|
});
|
|
1781
1786
|
}
|
|
1782
|
-
function
|
|
1787
|
+
function v0(x) {
|
|
1783
1788
|
const t = _;
|
|
1784
|
-
return x[t(
|
|
1789
|
+
return x[t(526)](t(504)) > -1 ? t(575) : x[t(526)](t(572)) > -1 ? t(499) : "mp4";
|
|
1785
1790
|
}
|
|
1786
|
-
function
|
|
1791
|
+
function S0(x) {
|
|
1787
1792
|
const t = _, e = [];
|
|
1788
|
-
return x?.r1 && e[t(
|
|
1793
|
+
return x?.r1 && e[t(568)](x.r1), x?.r2 && e.push(x.r2), x?.r3 && e[t(568)](x.r3), e[t(562)](" ");
|
|
1789
1794
|
}
|
|
1790
1795
|
function ot(x) {
|
|
1791
1796
|
const t = _;
|
|
1792
|
-
if (!x || typeof x !== t(
|
|
1793
|
-
const e = String(x[t(
|
|
1794
|
-
if (!(e === "v2" || /^2(?:\.|$)
|
|
1795
|
-
(!x[t(
|
|
1796
|
-
const a = x
|
|
1797
|
-
r(x[t(
|
|
1798
|
-
const o = r(x[t(
|
|
1799
|
-
x
|
|
1797
|
+
if (!x || typeof x !== t(567)) return;
|
|
1798
|
+
const e = String(x[t(559)] ?? "");
|
|
1799
|
+
if (!(e === "v2" || /^2(?:\.|$)/[t(494)](e))) return;
|
|
1800
|
+
(!x[t(541)] || typeof x[t(541)] !== t(567)) && (x[t(541)] = {});
|
|
1801
|
+
const a = x[t(530)] && typeof x.extra === t(567) ? x[t(530)] : {}, r = (p) => p == null || p === "" || p === "0p";
|
|
1802
|
+
r(x[t(541)][t(576)]) && (x[t(541)][t(576)] = r(a[t(576)]) ? t(538) : a[t(576)]);
|
|
1803
|
+
const o = r(x.video[t(497)]) ? r(a[t(497)]) ? r(a.video_type) ? t(551) : a.video_type : a[t(497)] : x[t(541)][t(497)], f = String(o)[t(555)]();
|
|
1804
|
+
x[t(541)][t(497)] = f === t(573) ? t(573) : "vod", r(x[t(541)].url) && !r(a[t(520)]) && (x[t(541)][t(520)] = a[t(520)]);
|
|
1800
1805
|
}
|
|
1801
|
-
function
|
|
1806
|
+
function Wt(x) {
|
|
1802
1807
|
const t = _;
|
|
1803
|
-
x
|
|
1808
|
+
x[t(539)] === t(537) && (x.actionDuration = 0), x[t(539)] === void 0 && (x[t(539)] = 0), [t(565), t(493), t(521), t(514)].forEach((i) => {
|
|
1804
1809
|
x[i] === void 0 && (x[i] = 0);
|
|
1805
|
-
}), x[t(
|
|
1810
|
+
}), x[t(497)] === void 0 && A[t(541)]?.[t(497)] && (x[t(497)] = A[t(541)][t(497)]), x[t(520)] === void 0 && A.video?.[t(520)] && (x.url = A[t(541)].url, x.videoFormat = v0(x.url));
|
|
1806
1811
|
}
|
|
1807
|
-
function
|
|
1812
|
+
function jt(x) {
|
|
1808
1813
|
const t = _;
|
|
1809
|
-
return !!(x
|
|
1814
|
+
return !!(x.UUID && x[t(510)] && x[t(525)]);
|
|
1810
1815
|
}
|
|
1811
1816
|
function Ve(x) {
|
|
1812
1817
|
const t = _;
|
|
1813
1818
|
try {
|
|
1814
|
-
const e =
|
|
1815
|
-
e && (x[t(
|
|
1819
|
+
const e = G[t(531)]?.[t(518)];
|
|
1820
|
+
e && (x[t(578)] = S0(e), x[t(500)] = e[t(536)] || "", x.ip = G[t(531)]?.ip || "", x[t(543)] = e[t(492)] || "");
|
|
1816
1821
|
} catch {
|
|
1817
1822
|
}
|
|
1818
1823
|
}
|
|
1819
|
-
const
|
|
1824
|
+
const I0 = async (x) => {
|
|
1820
1825
|
const t = _;
|
|
1821
1826
|
if (!x) return;
|
|
1822
|
-
const { platform: e, stage: i } =
|
|
1827
|
+
const { platform: e, stage: i } = G, a = He[e][i].log;
|
|
1823
1828
|
try {
|
|
1824
|
-
const r = await fetch(a, { method:
|
|
1825
|
-
|
|
1826
|
-
const { logDate:
|
|
1827
|
-
return A[t(
|
|
1829
|
+
const r = await fetch(a, { method: t(512), headers: { "Content-Type": "application/json" }, body: JSON[t(519)]({ access_key: x }) }), o = await r[t(569)]();
|
|
1830
|
+
G.sync = o[t(513)]?.sync || !1, G[t(531)] = o[t(513)] || {};
|
|
1831
|
+
const { logDate: f, logDateUnix: p } = zt();
|
|
1832
|
+
return A[t(530)].logDate = f, A[t(530)].logDateUnix = p, G[t(531)]?.geoLocation && Ve(A.extra), o;
|
|
1828
1833
|
} catch (r) {
|
|
1829
|
-
return console[t(
|
|
1834
|
+
return console[t(574)]("MA config initialization failed:", r), null;
|
|
1830
1835
|
}
|
|
1831
|
-
},
|
|
1832
|
-
const t = _, { platform: e, stage: i } =
|
|
1833
|
-
r[t(
|
|
1836
|
+
}, k0 = async (x) => {
|
|
1837
|
+
const t = _, { platform: e, stage: i } = G, a = Kt(He[e][i][t(540)]), r = { ...x };
|
|
1838
|
+
r[t(528)] = "vpe", Ve(r[t(530)]), ot(r);
|
|
1834
1839
|
try {
|
|
1835
|
-
await fetch(a, { method:
|
|
1840
|
+
await fetch(a, { method: "POST", headers: { "Content-Type": t(511) }, body: JSON[t(519)](r) });
|
|
1836
1841
|
} catch (o) {
|
|
1837
|
-
console
|
|
1842
|
+
console.error(t(544), o);
|
|
1838
1843
|
}
|
|
1839
|
-
},
|
|
1840
|
-
const t = _, { platform: e, stage: i } =
|
|
1841
|
-
if (rt(r, x), r[t(
|
|
1844
|
+
}, _0 = async (x) => {
|
|
1845
|
+
const t = _, { platform: e, stage: i } = G, a = Kt(He[e][i][t(540)]), r = JSON[t(527)](JSON[t(519)](A));
|
|
1846
|
+
if (rt(r, x), r[t(528)] = "MA", Ve(r.extra), Wt(r[t(530)]), ot(r), !!jt(r[t(530)]))
|
|
1842
1847
|
try {
|
|
1843
|
-
r
|
|
1848
|
+
r.type != t(495), await fetch(a, { method: t(512), headers: { "Content-Type": "application/json" }, body: JSON[t(519)](r) });
|
|
1844
1849
|
} catch (o) {
|
|
1845
|
-
console
|
|
1850
|
+
console[t(579)](t(533), o);
|
|
1846
1851
|
}
|
|
1847
1852
|
};
|
|
1848
|
-
function
|
|
1849
|
-
return x = x - 137, Pe()[x];
|
|
1850
|
-
}
|
|
1851
|
-
async function _0(x, t, e, i, a) {
|
|
1853
|
+
async function E0(x, t, e, i, a) {
|
|
1852
1854
|
const r = _;
|
|
1853
|
-
|
|
1854
|
-
const { logDate: o, logDateUnix:
|
|
1855
|
-
A[r(
|
|
1855
|
+
G[r(566)] = x, G[r(546)] = t, rt(A, e), i && (A.extra[r(517)] = i), a && (A[r(530)].vpeKey = a), A.extra[r(543)] ? A.browser.country = Vt[A.extra[r(543)]] || r(549) : A[r(560)][r(492)] = r(549);
|
|
1856
|
+
const { logDate: o, logDateUnix: f } = zt();
|
|
1857
|
+
A[r(530)][r(552)] = o, A[r(530)][r(498)] = f, A.extra[r(507)] = f;
|
|
1856
1858
|
}
|
|
1857
|
-
function
|
|
1858
|
-
const t = _, { platform: e, stage: i } =
|
|
1859
|
+
function T0(x) {
|
|
1860
|
+
const t = _, { platform: e, stage: i } = G, a = He[e]?.[i]?.[t(540)];
|
|
1859
1861
|
if (!a) return !1;
|
|
1860
|
-
const r = JSON[t(
|
|
1861
|
-
if (rt(r, x), r.log_type = "MA", Ve(r
|
|
1862
|
+
const r = JSON[t(527)](JSON.stringify(A));
|
|
1863
|
+
if (rt(r, x), r.log_type = "MA", Ve(r[t(530)]), Wt(r[t(530)]), ot(r), !jt(r[t(530)])) return !1;
|
|
1862
1864
|
try {
|
|
1863
|
-
const o = new Blob([JSON[t(
|
|
1864
|
-
return navigator[t(
|
|
1865
|
+
const o = new Blob([JSON[t(519)](r)], { type: t(511) });
|
|
1866
|
+
return navigator[t(502)](a, o);
|
|
1865
1867
|
} catch {
|
|
1866
1868
|
return !1;
|
|
1867
1869
|
}
|
|
1868
1870
|
}
|
|
1869
|
-
const
|
|
1871
|
+
const At = st;
|
|
1872
|
+
function Ne() {
|
|
1873
|
+
const x = ["36gjbSLX", "contain", "11nSWcNn", "watermarkConfig", "#4299f5", "9AHIceS", "NAVER CLOUD PLATFORM", "201392ARkvyj", "progressBar", "1138492kATqXu", "31354XeAUtu", "all", "pay", "controlBtn", "#009dff", "captionStyle", "431563yKWnqD", "703206xkuVmp", "#ffffff", "3QDLnLj", "10nbuYqZ", "1292110ZdNywo", "24318lATKnu", "rgba(0, 0, 0, 0.4)"];
|
|
1874
|
+
return Ne = function() {
|
|
1875
|
+
return x;
|
|
1876
|
+
}, Ne();
|
|
1877
|
+
}
|
|
1878
|
+
function st(x, t) {
|
|
1879
|
+
return x = x - 175, Ne()[x];
|
|
1880
|
+
}
|
|
1870
1881
|
(function(x, t) {
|
|
1871
1882
|
const e = st, i = x();
|
|
1872
1883
|
for (; ; )
|
|
1873
1884
|
try {
|
|
1874
|
-
if (parseInt(e(
|
|
1885
|
+
if (-parseInt(e(194)) / 1 * (-parseInt(e(178)) / 2) + parseInt(e(187)) / 3 * (-parseInt(e(177)) / 4) + -parseInt(e(188)) / 5 * (-parseInt(e(185)) / 6) + -parseInt(e(190)) / 7 + parseInt(e(175)) / 8 + parseInt(e(197)) / 9 * (parseInt(e(189)) / 10) + -parseInt(e(184)) / 11 * (parseInt(e(192)) / 12) === t) break;
|
|
1875
1886
|
i.push(i.shift());
|
|
1876
1887
|
} catch {
|
|
1877
1888
|
i.push(i.shift());
|
|
1878
1889
|
}
|
|
1879
|
-
})(Ne,
|
|
1890
|
+
})(Ne, 155438);
|
|
1880
1891
|
const C0 = (x = {}, t) => {
|
|
1881
|
-
const e = st, i = { autostart: !0, muted: !1, aspectRatio:
|
|
1882
|
-
if (t !== e(
|
|
1892
|
+
const e = st, i = { autostart: !0, muted: !1, aspectRatio: "16/9", objectFit: e(193), controls: !0, keyboardShortcut: !0, startMutedInfoNotVisible: !1, allowsPictureInPicture: !1, staysActiveInBackground: !1, screenRecordingPrevention: !1, modalFullscreen: !1, seekingPreview: !0, lang: "ko", ui: e(179), controlBtn: { play: !0, fullscreen: !0, progressBar: !0, volume: !1, times: !0, pictureInPicture: !0, setting: !0, subtitle: !0 }, progressBarColor: e(196), controlActiveTime: 3e3, playRateSetting: [0.5, 0.75, 1, 1.5, 2], autoPause: !1, repeat: !1, setStartTime: void 0, playIndex: 0, lowLatencyMode: !0, touchGestures: !0, descriptionNotVisible: !1, devTestAppId: void 0, token: "", visibleWatermark: !1, iosFullscreenNativeMode: !0, watermarkText: e(198), watermarkConfig: { randPosition: !0, randPositionInterVal: 3e3, x: 10, y: 10, opacity: 0.5 }, captionStyle: { fontSize: 12, color: e(186), backgroundColor: e(191), edgeStyle: "dropshadow" }, override: null };
|
|
1893
|
+
if (t !== e(180)) return { ...i, ...A0 };
|
|
1883
1894
|
const a = { ...i, ...x };
|
|
1884
|
-
return x
|
|
1885
|
-
}, A0 = { free: !0, startMutedInfoNotVisible: !1, lowLatencyMode: !1, progressBarColor:
|
|
1886
|
-
function st(x, t) {
|
|
1887
|
-
return x = x - 498, Ne()[x];
|
|
1888
|
-
}
|
|
1889
|
-
function Ne() {
|
|
1890
|
-
const x = ["captionStyle", "5803345XHskRb", "NAVER CLOUD PLATFORM", "3450FHOASQ", "16/9", "#009dff", "165emuogL", "8850296pYumML", "#ffffff", "166596BEelxT", "controlBtn", "watermarkConfig", "2637273ZRPCbT", "4173631HjYCwn", "progressBar", "5312646UurOwp", "pay", "all"];
|
|
1891
|
-
return Ne = function() {
|
|
1892
|
-
return x;
|
|
1893
|
-
}, Ne();
|
|
1894
|
-
}
|
|
1895
|
-
const b = Wt;
|
|
1896
|
-
function Wt(x, t) {
|
|
1897
|
-
return x = x - 389, Ue()[x];
|
|
1898
|
-
}
|
|
1895
|
+
return x[e(181)] && (a[e(181)] = { ...i[e(181)], ...x[e(181)] }), x.watermarkConfig && (a[e(195)] = { ...i[e(195)], ...x[e(195)] }), x[e(183)] && (a[e(183)] = { ...i[e(183)], ...x.captionStyle }), a[e(181)]?.[e(176)] === void 0 && (a[e(181)].progressBar = !0), a;
|
|
1896
|
+
}, A0 = { free: !0, startMutedInfoNotVisible: !1, lowLatencyMode: !1, progressBarColor: At(182), playRateSetting: [0.5, 0.75, 1, 1.5, 2], descriptionNotVisible: !0, seekingPreview: !1, controlActiveTime: 1500, ui: At(179), token: "", setStartTime: null, controlBtn: { play: !0, fullscreen: !0, volume: !0, times: !0, setting: !1, pictureInPicture: !1, progressBar: !0 } }, g = ct;
|
|
1899
1897
|
function Ue() {
|
|
1900
|
-
const x = ["
|
|
1898
|
+
const x = ["message", "video", "handleTimeUpdate", "bind", "contentId", "percent", "floor", "ENDED", "firstError", "1364570BvnMHo", "padStart", "2083123kuKRHv", "handleTimeUpdateFocus", "isArray", "handleBeforeUnload", "pause", "getMinutes", "waitingEnd", "firstPlaying", "handlePlayerStart", "seeking", "stageData", "entries", "watch_percent", "INTRO_SKIP", "sessionId", "errorMessage", "handleStartup", "isEnded", "bufferingStart", "handlePlay", "toFixed", "2884520nwTfef", "8UKBErO", "beaconSent", "fullscreenYn", "assign", "firstPlay", "scheduleVpeReport", "1810367shZdKA", "prevAction", "ratechange", "WAITING_END", "WAITING", "actionType", "extra", "handleTrackChange", "isCompleted", "currentTime", "state", "duration", "isPlainObject", "boundVisibilityChange", "isBounce", "TID", "hidden", "REBUFFERING", "pauseCnt", "11107176iXxJWx", "timeupdateFocus", "reportData", "watchPercent", "canplay", "PLAYING", "opening_skip", "7920465GaPpoW", "OPENING_SKIP", "handleCanplay", "beforeunload", "type", "playbackRate", "ERROR", "isSeeking", "handleSeeking", "introSkip", "getMonth", "SEEKED", "log_type", "resetStateForNewTrack", "isBuffering", "fullscreenDuration", "3924519jjWxIH", "boundBeforeUnload", "fullscreenEnterTime", "addEventListener", "getTime", "prevTime", "SEEKING", "quality_change", "browser", "removeEventListener", "report", "PAUSED", "isFullscreen", "PLAYER_START", "PAUSE", "speedChangeCnt", "initTimeupdate", "prev", "ending_skip", "vpe", "handleSeeked", "handleAutoSkip", "suppressNextSeek", "errorCode", "prev_track", "dispatchEvent", "handleQualityChange", "startTime", "ended", "country", "round", "visibilitychange", "RATE_CHANGE", "rebuffering", "now", "CANPLAY", "QUALITY_CHANGE", "sendSessionBeacon", "handleVisibilityChange", "handleWaiting", "TIMEUPDATE", "getSeconds", "FULLSCREEN_CHANGE", "STARTUP", "contentDuration", "data", "endingSkip", "handleRateChange", "quality", "Korea, Republic of", "error", "nextTrack", "handleEnded", "153KMnWJC", "prevUrl", "dropOffPosition", "forEach", "UUID", "nation", "buildSessionMetrics", "object", "isPlaying", "url", "code", "getHours", "waiting", "catch", "then", "logDateUnix", "prevQuality", "playedTime", "seekedTime", "seekStartTime", "playAttempt", "handleError", "handlePause", "vpeReportTimerId", "2wCKDYs", "lastPlaybackSpeed", "getDate", "openingSkip", "seekCnt", "initializeReportData"];
|
|
1901
1899
|
return Ue = function() {
|
|
1902
1900
|
return x;
|
|
1903
1901
|
}, Ue();
|
|
1904
1902
|
}
|
|
1905
1903
|
(function(x, t) {
|
|
1906
|
-
const e =
|
|
1904
|
+
const e = ct, i = x();
|
|
1907
1905
|
for (; ; )
|
|
1908
1906
|
try {
|
|
1909
|
-
if (parseInt(e(
|
|
1907
|
+
if (parseInt(e(549)) / 1 * (parseInt(e(504)) / 2) + parseInt(e(427)) / 3 + parseInt(e(542)) / 4 + parseInt(e(575)) / 5 + -parseInt(e(568)) / 6 + parseInt(e(521)) / 7 * (-parseInt(e(543)) / 8) + parseInt(e(480)) / 9 * (-parseInt(e(519)) / 10) === t) break;
|
|
1910
1908
|
i.push(i.shift());
|
|
1911
1909
|
} catch {
|
|
1912
1910
|
i.push(i.shift());
|
|
1913
1911
|
}
|
|
1914
|
-
})(Ue,
|
|
1915
|
-
|
|
1912
|
+
})(Ue, 955209);
|
|
1913
|
+
function ct(x, t) {
|
|
1914
|
+
return x = x - 422, Ue()[x];
|
|
1915
|
+
}
|
|
1916
|
+
const Rt = "0p", R0 = 6e4, D0 = 1, m = { PLAYER_START: "player_start", STARTUP: "startup", PLAY: "play", PAUSE: g(525), PLAYING: "playing", PAUSED: g(525), SEEKING: g(530), SEEKED: "seeked", WAITING: g(492), WAITING_END: g(527), CANPLAY: g(572), ENDED: g(455), NEXT_TRACK: "next_track", PREV_TRACK: g(451), ERROR: g(477), QUALITY_CHANGE: g(434), REBUFFERING: g(460), TIMEUPDATE: "timeupdate", TIMEUPDATE_FOCUS: g(569), RATE_CHANGE: g(551), FULLSCREEN_CHANGE: "fullscreenchange", INTRO_SKIP: "intro_skip", OPENING_SKIP: g(574), ENDING_SKIP: g(445) };
|
|
1916
1917
|
class M0 {
|
|
1917
|
-
[
|
|
1918
|
-
|
|
1919
|
-
|
|
1920
|
-
[
|
|
1921
|
-
[
|
|
1918
|
+
[g(570)];
|
|
1919
|
+
stageData;
|
|
1920
|
+
state;
|
|
1921
|
+
[g(544)] = !1;
|
|
1922
|
+
[g(428)];
|
|
1922
1923
|
boundVisibilityChange;
|
|
1923
|
-
|
|
1924
|
-
[
|
|
1924
|
+
vpeReportScheduled = !1;
|
|
1925
|
+
[g(503)] = null;
|
|
1925
1926
|
VPE_REPORT_DELAY_MS = 3e3;
|
|
1926
1927
|
constructor(t, e, i) {
|
|
1927
|
-
const a =
|
|
1928
|
-
this
|
|
1928
|
+
const a = g;
|
|
1929
|
+
this.stageData = { platform: t, stage: e, sync: !1, syncResult: {} }, this.reportData = { video: {}, browser: {}, device: {}, connection: {}, screen: {}, player_version: "latest", extra: { UUID: null, TID: null, sessionId: null, playerType: "VPE", playAttempt: !1 }, log_type: a(446), privacy: { cookie_enabled: !0 } }, this[a(559)] = { prevAction: null, isPlaying: !1, isSeeking: !1, initTimeupdate: !1, isBuffering: !1, firstError: !1, isEnded: !1, firstPlay: !0, firstPlaying: !0, startTime: 0, prevTime: 0, startUpDuration: 0, prevUrl: "", prevQuality: Rt, pauseCnt: 0, seekCnt: 0, speedChangeCnt: 0, lastPlaybackSpeed: 1, fullscreenYn: !1, fullscreenEnterTime: 0, fullscreenDuration: 0, contentId: null, contentDuration: 0, seekStartTime: 0, suppressNextSeek: !1 }, this.initializeReportData(i), this[a(531)], this[a(428)] = this[a(524)][a(513)](this), this[a(562)] = this[a(465)].bind(this), window[a(430)](a(578), this[a(428)]), document[a(430)](a(458), this[a(562)]);
|
|
1929
1930
|
}
|
|
1930
|
-
[
|
|
1931
|
-
const e =
|
|
1932
|
-
this
|
|
1931
|
+
[g(509)](t) {
|
|
1932
|
+
const e = g;
|
|
1933
|
+
this.reportData = { ...this[e(570)], ...t }, this[e(570)].extra[e(485)] ? this[e(570)][e(435)][e(456)] = Vt[this[e(570)].extra[e(485)]] || e(476) : this[e(570)][e(435)][e(456)] = "Korea, Republic of";
|
|
1933
1934
|
}
|
|
1934
|
-
|
|
1935
|
-
const t =
|
|
1935
|
+
getTime() {
|
|
1936
|
+
const t = g, e = /* @__PURE__ */ new Date(), i = (o) => String(o)[t(520)](2, "0"), a = e.getFullYear() + "-" + i(e[t(585)]() + 1) + "-" + i(e[t(506)]()) + " " + i(e[t(491)]()) + ":" + i(e[t(526)]()) + ":" + i(e[t(468)]()), r = Math[t(516)](e[t(431)]() / 1e3);
|
|
1936
1937
|
return { logDate: a, logDateUnix: r };
|
|
1937
1938
|
}
|
|
1938
|
-
[
|
|
1939
|
-
|
|
1939
|
+
[g(561)](t) {
|
|
1940
|
+
const e = g;
|
|
1941
|
+
return typeof t === e(487) && t !== null && !Array[e(523)](t);
|
|
1940
1942
|
}
|
|
1941
|
-
async [
|
|
1942
|
-
const i =
|
|
1943
|
-
if (this
|
|
1944
|
-
const { logDate: a, logDateUnix: r } = this[i(
|
|
1945
|
-
for (const
|
|
1946
|
-
y[
|
|
1947
|
-
const
|
|
1948
|
-
this[i(
|
|
1943
|
+
async [g(437)](t, e) {
|
|
1944
|
+
const i = g;
|
|
1945
|
+
if (this[i(559)][i(518)]) return;
|
|
1946
|
+
const { logDate: a, logDateUnix: r } = this[i(431)](), o = Date[i(461)](), f = this[i(559)][i(432)] > 0 ? o - this[i(559)].prevTime : 0, p = f, y = e && typeof e === i(487) && e.data ? e[i(472)] : {}, S = [i(514), i(471), i(515), i(533), i(571), i(557), i(563), i(567), i(508), i(442), "lastPlaybackSpeed", i(545), i(426), i(482), i(498), "errorCode", i(536), i(490), i(510)], E = {};
|
|
1947
|
+
for (const j of S)
|
|
1948
|
+
y[j] !== void 0 && (E[j] = y[j]);
|
|
1949
|
+
const D = this.state[i(471)], H = D > 0 ? Math[i(516)](D / 1e3) : this.reportData[i(555)][i(560)] || 0, U = this[i(570)][i(555)][i(558)] || 0, L = H > 0 ? Math[i(457)](U / H * 1e4) / 100 : 0, Q = { ...this[i(570)], video: this[i(570)][i(511)], percent: L, extra: { ...this[i(570)].extra, actionType: t, actionDuration: p ? p[i(541)](2) : 0, duration: H, contentDuration: D, percent: L, watch_percent: L, logDate: a, logDateUnix: r, ...E } };
|
|
1950
|
+
this[i(559)].prevTime = o, await _0(Q);
|
|
1949
1951
|
}
|
|
1950
|
-
async
|
|
1951
|
-
const e =
|
|
1952
|
-
!this[e(
|
|
1952
|
+
async maInit(t) {
|
|
1953
|
+
const e = g;
|
|
1954
|
+
!this[e(570)][e(555)][e(535)] && (this[e(570)][e(555)][e(535)] = Ct(), this.reportData[e(555)][e(564)] = Ie(), this[e(570)][e(555)][e(484)] = Ie()), t?.[e(555)] && typeof t[e(555)] == "object" && (t[e(555)][e(535)] = this[e(570)][e(555)][e(535)], Object[e(546)](this[e(570)][e(555)], t[e(555)])), t?.[e(511)] && typeof t[e(511)] === e(487) && (this[e(570)][e(511)] = { ...this.reportData[e(511)], ...t[e(511)] });
|
|
1953
1955
|
}
|
|
1954
|
-
[
|
|
1955
|
-
|
|
1956
|
-
|
|
1957
|
-
|
|
1958
|
-
this[
|
|
1959
|
-
|
|
1960
|
-
i[
|
|
1961
|
-
|
|
1962
|
-
i[e(426)] = i[e(426)] || {}, i.extra.logDate = a, i[e(426)][e(455)] = r, i.extra.actionType = i.extra[e(448)] || "vpe_init", I0(i)[e(394)](() => {
|
|
1956
|
+
[g(548)]() {
|
|
1957
|
+
this.vpeReportScheduled || (this.vpeReportScheduled = !0, this.vpeReportTimerId = setTimeout(() => {
|
|
1958
|
+
const t = ct;
|
|
1959
|
+
this.vpeReportTimerId = null;
|
|
1960
|
+
const e = JSON.parse(JSON.stringify(this[t(570)]));
|
|
1961
|
+
e[t(423)] = "vpe";
|
|
1962
|
+
const { logDate: i, logDateUnix: a } = this[t(431)]();
|
|
1963
|
+
e.extra = e[t(555)] || {}, e[t(555)].logDate = i, e[t(555)][t(495)] = a, e[t(555)][t(554)] = e[t(555)].actionType || "vpe_init", k0(e)[t(493)](() => {
|
|
1963
1964
|
});
|
|
1964
|
-
}, this
|
|
1965
|
+
}, this.VPE_REPORT_DELAY_MS));
|
|
1965
1966
|
}
|
|
1966
|
-
async
|
|
1967
|
-
const e =
|
|
1968
|
-
!t || typeof t
|
|
1967
|
+
async maSync(t) {
|
|
1968
|
+
const e = g;
|
|
1969
|
+
!t || typeof t != "object" || Object[e(532)](t)[e(483)](([i, a]) => {
|
|
1969
1970
|
const r = e;
|
|
1970
|
-
this.isPlainObject(a) ? Object[r(
|
|
1971
|
-
const
|
|
1972
|
-
|
|
1973
|
-
}) : a != null && (this
|
|
1971
|
+
this.isPlainObject(a) ? Object[r(532)](a)[r(483)](([o, f]) => {
|
|
1972
|
+
const p = r;
|
|
1973
|
+
f != null && (this[p(570)][i][o] = f);
|
|
1974
|
+
}) : a != null && (this[r(570)][i] = a);
|
|
1974
1975
|
});
|
|
1975
1976
|
}
|
|
1976
|
-
[
|
|
1977
|
-
const e =
|
|
1978
|
-
switch (o && o > 0 && (this[e(
|
|
1979
|
-
case m
|
|
1980
|
-
this[e(
|
|
1977
|
+
[g(452)](t) {
|
|
1978
|
+
const e = g, { type: i, data: a } = t, r = { url: a?.[e(489)] || this[e(559)][e(481)], type: a?.[e(579)], quality: a?.quality || this[e(559)].prevQuality, data: a }, o = a?.extra?.[e(560)];
|
|
1979
|
+
switch (o && o > 0 && (this[e(559)][e(471)] = Math[e(457)](o * 1e3)), i) {
|
|
1980
|
+
case m[e(440)]:
|
|
1981
|
+
this[e(529)](r, a);
|
|
1981
1982
|
break;
|
|
1982
|
-
case m[e(
|
|
1983
|
-
this
|
|
1983
|
+
case m[e(470)]:
|
|
1984
|
+
this.handleStartup(r, a);
|
|
1984
1985
|
break;
|
|
1985
|
-
case m
|
|
1986
|
-
this[e(
|
|
1986
|
+
case m.PLAY:
|
|
1987
|
+
this[e(540)](r, a);
|
|
1987
1988
|
break;
|
|
1988
|
-
case m[e(
|
|
1989
|
-
this[e(
|
|
1989
|
+
case m[e(441)]:
|
|
1990
|
+
this[e(502)](r, a);
|
|
1990
1991
|
break;
|
|
1991
|
-
case m
|
|
1992
|
-
this[e(
|
|
1992
|
+
case m[e(467)]:
|
|
1993
|
+
this[e(512)](r, a);
|
|
1993
1994
|
break;
|
|
1994
|
-
case m
|
|
1995
|
-
this[e(
|
|
1995
|
+
case m.TIMEUPDATE_FOCUS:
|
|
1996
|
+
this[e(522)](r, a);
|
|
1996
1997
|
break;
|
|
1997
|
-
case m
|
|
1998
|
-
this[e(
|
|
1998
|
+
case m.SEEKING:
|
|
1999
|
+
this[e(583)](r, a);
|
|
1999
2000
|
break;
|
|
2000
|
-
case m[e(
|
|
2001
|
-
this[e(
|
|
2001
|
+
case m[e(422)]:
|
|
2002
|
+
this[e(447)](r, a);
|
|
2002
2003
|
break;
|
|
2003
|
-
case m[e(
|
|
2004
|
-
case e(
|
|
2005
|
-
this[e(
|
|
2004
|
+
case m[e(553)]:
|
|
2005
|
+
case e(539):
|
|
2006
|
+
this[e(466)](r, a);
|
|
2006
2007
|
break;
|
|
2007
|
-
case m
|
|
2008
|
-
case
|
|
2008
|
+
case m[e(552)]:
|
|
2009
|
+
case "bufferingEnd":
|
|
2009
2010
|
case "loadingEnd":
|
|
2010
|
-
this[e(
|
|
2011
|
+
this[e(577)](r, a);
|
|
2011
2012
|
break;
|
|
2012
|
-
case m[e(
|
|
2013
|
-
this[e(
|
|
2013
|
+
case m[e(462)]:
|
|
2014
|
+
this[e(577)](r, a);
|
|
2014
2015
|
break;
|
|
2015
|
-
case m[e(
|
|
2016
|
-
this[e(
|
|
2016
|
+
case m[e(517)]:
|
|
2017
|
+
this[e(479)](r, a);
|
|
2017
2018
|
break;
|
|
2018
|
-
case e(
|
|
2019
|
-
case
|
|
2020
|
-
this[e(
|
|
2019
|
+
case e(478):
|
|
2020
|
+
case "next":
|
|
2021
|
+
this[e(556)](m.NEXT_TRACK, r, a);
|
|
2021
2022
|
break;
|
|
2022
2023
|
case "prevTrack":
|
|
2023
|
-
case e(
|
|
2024
|
-
this
|
|
2024
|
+
case e(444):
|
|
2025
|
+
this[e(556)](m.PREV_TRACK, r, a);
|
|
2025
2026
|
break;
|
|
2026
|
-
case m[e(
|
|
2027
|
-
this
|
|
2027
|
+
case m[e(581)]:
|
|
2028
|
+
this.handleError(r, a);
|
|
2028
2029
|
break;
|
|
2029
|
-
case m[e(
|
|
2030
|
-
this[e(
|
|
2030
|
+
case m[e(463)]:
|
|
2031
|
+
this[e(453)](r, a);
|
|
2031
2032
|
break;
|
|
2032
|
-
case m
|
|
2033
|
-
this
|
|
2033
|
+
case m[e(459)]:
|
|
2034
|
+
this[e(474)](r, a);
|
|
2034
2035
|
break;
|
|
2035
|
-
case m[e(
|
|
2036
|
-
this
|
|
2036
|
+
case m[e(469)]:
|
|
2037
|
+
this.handleFullscreenChange(r, a);
|
|
2037
2038
|
break;
|
|
2038
|
-
case e(
|
|
2039
|
-
this.handleAutoSkip(m[e(
|
|
2039
|
+
case e(584):
|
|
2040
|
+
this.handleAutoSkip(m[e(534)], r, a);
|
|
2040
2041
|
break;
|
|
2041
|
-
case
|
|
2042
|
-
this
|
|
2042
|
+
case e(507):
|
|
2043
|
+
this.handleAutoSkip(m[e(576)], r, a);
|
|
2043
2044
|
break;
|
|
2044
|
-
case
|
|
2045
|
-
this[e(
|
|
2045
|
+
case e(473):
|
|
2046
|
+
this[e(448)](m.ENDING_SKIP, r, a);
|
|
2046
2047
|
break;
|
|
2047
2048
|
}
|
|
2048
2049
|
}
|
|
2049
|
-
[
|
|
2050
|
-
const a =
|
|
2051
|
-
this
|
|
2050
|
+
[g(448)](t, e, i) {
|
|
2051
|
+
const a = g;
|
|
2052
|
+
this[a(559)][a(449)] = !0, this[a(437)](t, { ...e, data: i });
|
|
2052
2053
|
}
|
|
2053
|
-
|
|
2054
|
-
const i =
|
|
2055
|
-
!this[i(
|
|
2054
|
+
[g(529)](t, e) {
|
|
2055
|
+
const i = g;
|
|
2056
|
+
!this[i(570)].extra[i(535)] && (this[i(570)][i(555)][i(535)] = Ct(), this[i(570)][i(555)][i(564)] = Ie(), this[i(570)][i(555)][i(484)] = Ie()), this[i(559)].startTime = Date[i(461)](), this.state[i(432)] = this.state[i(454)], this[i(437)](m[i(440)], { ...t, data: e });
|
|
2056
2057
|
}
|
|
2057
|
-
[
|
|
2058
|
-
const i =
|
|
2059
|
-
if (this[i(
|
|
2060
|
-
const a = e?.[i(
|
|
2061
|
-
a?.[i(
|
|
2058
|
+
[g(537)](t, e) {
|
|
2059
|
+
const i = g;
|
|
2060
|
+
if (this[i(559)][i(528)]) {
|
|
2061
|
+
const a = e?.[i(555)] || e || {};
|
|
2062
|
+
a?.[i(514)] && (this.state[i(514)] = a.contentId), this[i(559)].isPlaying = !0, this.report(m[i(470)], { ...t, data: { ...e, contentId: this[i(559)][i(514)], contentDuration: this[i(559)][i(471)] } }), this[i(559)][i(528)] = !1, this[i(548)]();
|
|
2062
2063
|
}
|
|
2063
2064
|
}
|
|
2064
|
-
[
|
|
2065
|
-
const i =
|
|
2066
|
-
this
|
|
2065
|
+
[g(540)](t, e) {
|
|
2066
|
+
const i = g;
|
|
2067
|
+
this[i(559)][i(488)] || (this[i(570)][i(555)][i(497)] = e?.[i(497)], this[i(570)][i(555)][i(515)] = e?.[i(515)], this[i(559)][i(488)] = !0, this.reportData.extra[i(500)] = !0, this.state[i(547)] && (this.state.firstPlay = !1), this[i(548)](), this.state.prevAction === m[i(438)] && this[i(437)](m[i(573)], { ...t, data: e }), this[i(559)][i(550)] = m[i(573)]);
|
|
2067
2068
|
}
|
|
2068
|
-
|
|
2069
|
-
const i =
|
|
2070
|
-
this.
|
|
2069
|
+
handlePause(t, e) {
|
|
2070
|
+
const i = g;
|
|
2071
|
+
this[i(559)].isSeeking || this[i(559)][i(425)] || !this[i(559)][i(488)] || (this[i(559)][i(567)]++, this[i(559)][i(488)] = !1, this.report(m[i(438)], { ...t, data: { ...e, pauseCnt: this.state.pauseCnt } }), this.state[i(550)] = m[i(438)]);
|
|
2071
2072
|
}
|
|
2072
|
-
[
|
|
2073
|
-
const i =
|
|
2074
|
-
this
|
|
2073
|
+
[g(512)](t, e) {
|
|
2074
|
+
const i = g;
|
|
2075
|
+
this[i(559)][i(488)] = !0, this[i(570)][i(555)][i(500)] = !0, !(this[i(570)][i(555)][i(558)] < D0) && (this.state[i(488)] && Date[i(461)]() - this.state.prevTime > R0 && this[i(437)](m[i(573)], { ...t, data: e }), this[i(559)].prevUrl = t[i(489)] || "", this.state[i(496)] = t[i(475)] || Rt);
|
|
2075
2076
|
}
|
|
2076
|
-
[
|
|
2077
|
-
const i =
|
|
2078
|
-
this[i(
|
|
2077
|
+
[g(522)](t, e) {
|
|
2078
|
+
const i = g;
|
|
2079
|
+
this[i(570)][i(555)][i(558)] > 0 && (this[i(437)](m.PLAYING, { ...t, data: e }), this.state[i(443)] = !0);
|
|
2079
2080
|
}
|
|
2080
|
-
|
|
2081
|
-
const i =
|
|
2082
|
-
this
|
|
2081
|
+
handleSeeking(t, e) {
|
|
2082
|
+
const i = g;
|
|
2083
|
+
this[i(559)][i(449)] || this[i(559)][i(582)] || (this[i(559)][i(508)]++, this.state[i(582)] = !0, this[i(559)][i(499)] = Date[i(461)](), this[i(559)].isPlaying ? this.report(m[i(573)], { ...t, data: e }) : this[i(559)][i(550)] === m[i(438)] && this[i(437)](m[i(438)], { ...t, data: e }), this.state[i(550)] = m[i(433)]);
|
|
2083
2084
|
}
|
|
2084
|
-
[
|
|
2085
|
-
const i =
|
|
2086
|
-
if (this
|
|
2087
|
-
this[i(
|
|
2085
|
+
[g(447)](t, e) {
|
|
2086
|
+
const i = g;
|
|
2087
|
+
if (this[i(559)].suppressNextSeek) {
|
|
2088
|
+
this.state[i(449)] = !1;
|
|
2088
2089
|
return;
|
|
2089
2090
|
}
|
|
2090
|
-
if (!this
|
|
2091
|
-
const a = this[i(
|
|
2092
|
-
this[i(
|
|
2091
|
+
if (!this[i(559)][i(582)]) return;
|
|
2092
|
+
const a = this[i(559)][i(499)] > 0 ? Date[i(461)]() - this[i(559)].seekStartTime : 0;
|
|
2093
|
+
this.state[i(499)] = 0, this[i(559)][i(582)] = !1, this[i(437)](m.SEEKING, { ...t, data: { ...e || {}, seekedTime: a } }), this[i(559)][i(550)] = this[i(559)].isPlaying ? m.PLAYING : m.PAUSED;
|
|
2093
2094
|
}
|
|
2094
2095
|
handleWaiting(t, e) {
|
|
2095
|
-
const i =
|
|
2096
|
-
this[i(
|
|
2096
|
+
const i = g;
|
|
2097
|
+
this[i(559)][i(582)] || this[i(559)][i(425)] || (this[i(559)][i(425)] = !0, this[i(559)][i(488)] && this.report(m[i(573)], { ...t, data: e }), this.state.prevAction = m.REBUFFERING);
|
|
2097
2098
|
}
|
|
2098
|
-
|
|
2099
|
-
const i =
|
|
2100
|
-
this[i(
|
|
2099
|
+
handleCanplay(t, e) {
|
|
2100
|
+
const i = g;
|
|
2101
|
+
this[i(559)].isBuffering && (this[i(559)][i(425)] = !1, this.report(m[i(566)], { ...t, data: e }), this[i(559)].prevAction = this[i(559)][i(488)] ? m.PLAYING : m.PAUSED);
|
|
2101
2102
|
}
|
|
2102
|
-
|
|
2103
|
-
const t =
|
|
2104
|
-
if (this[t(
|
|
2105
|
-
this[t(
|
|
2106
|
-
const { logDate: e, logDateUnix: i } = this
|
|
2107
|
-
|
|
2103
|
+
[g(464)]() {
|
|
2104
|
+
const t = g;
|
|
2105
|
+
if (this[t(544)] || this[t(559)][t(538)] || this[t(559)][t(518)] || !this[t(570)].extra[t(484)] || !this[t(570)][t(555)][t(564)]) return;
|
|
2106
|
+
this[t(544)] = !0;
|
|
2107
|
+
const { logDate: e, logDateUnix: i } = this.getTime(), a = Date[t(461)](), r = this[t(559)][t(432)] > 0 ? a - this.state[t(432)] : 0, o = (this.reportData[t(555)][t(558)] || 0) * 1e3, f = this[t(559)].contentDuration, p = f > 0 ? Math.round(o / f * 1e4) / 100 : 0, y = this.reportData[t(555)][t(497)] || 0, S = { ...this[t(570)], video: this[t(570)][t(511)], percent: p, extra: { ...this[t(570)][t(555)], actionType: t(455), actionDuration: r ? r[t(541)](2) : 0, duration: f > 0 ? Math.floor(f / 1e3) : this.reportData[t(555)][t(560)] || 0, logDate: e, logDateUnix: i, contentId: this[t(559)].contentId, contentDuration: f, percent: p, watch_percent: p, watchPercent: p, isCompleted: p >= 95, isBounce: y < 1e4, pauseCnt: this.state.pauseCnt, seekCnt: this[t(559)][t(508)], speedChangeCnt: this.state[t(442)], lastPlaybackSpeed: this[t(559)][t(505)], fullscreenYn: this[t(559)][t(545)], fullscreenDuration: this[t(559)][t(426)] + (this[t(559)][t(429)] > 0 ? Date.now() - this[t(559)][t(429)] : 0), dropOffPosition: Math.round(o) } };
|
|
2108
|
+
T0(S);
|
|
2108
2109
|
}
|
|
2109
|
-
|
|
2110
|
-
this[
|
|
2110
|
+
handleBeforeUnload() {
|
|
2111
|
+
this[g(464)]();
|
|
2111
2112
|
}
|
|
2112
|
-
|
|
2113
|
-
const t =
|
|
2114
|
-
document
|
|
2113
|
+
[g(465)]() {
|
|
2114
|
+
const t = g;
|
|
2115
|
+
document.visibilityState === t(565) && this[t(464)]();
|
|
2115
2116
|
}
|
|
2116
|
-
|
|
2117
|
-
const t =
|
|
2118
|
-
window[t(
|
|
2117
|
+
destroy() {
|
|
2118
|
+
const t = g;
|
|
2119
|
+
window[t(436)](t(578), this[t(428)]), document[t(436)]("visibilitychange", this[t(562)]), this[t(503)] !== null && (clearTimeout(this.vpeReportTimerId), this.vpeReportTimerId = null);
|
|
2119
2120
|
}
|
|
2120
|
-
[
|
|
2121
|
-
const i =
|
|
2122
|
-
let y = this[i(
|
|
2123
|
-
return this[i(
|
|
2121
|
+
[g(486)](t, e) {
|
|
2122
|
+
const i = g, a = e?.[i(555)] || e || {}, r = (a?.[i(558)] || 0) * 1e3, o = this[i(559)][i(471)], f = o > 0 ? Math[i(457)](r / o * 1e4) / 100 : 0, p = this.reportData[i(555)][i(497)] || 0;
|
|
2123
|
+
let y = this[i(559)].fullscreenDuration;
|
|
2124
|
+
return this[i(559)].fullscreenEnterTime > 0 && (y += Date[i(461)]() - this[i(559)][i(429)]), { ...t, data: { ...e, contentId: this[i(559)][i(514)], duration: o > 0 ? Math[i(516)](o / 1e3) : a?.duration || 0, contentDuration: o, percent: f, watch_percent: f, watchPercent: f, isCompleted: f >= 95, isBounce: p < 1e4, pauseCnt: this[i(559)][i(567)], seekCnt: this[i(559)][i(508)], speedChangeCnt: this[i(559)][i(442)], lastPlaybackSpeed: this.state[i(505)], fullscreenYn: this.state[i(545)], fullscreenDuration: y, dropOffPosition: Math[i(457)](r) } };
|
|
2124
2125
|
}
|
|
2125
|
-
|
|
2126
|
-
const i =
|
|
2127
|
-
this[i(
|
|
2126
|
+
handleEnded(t, e) {
|
|
2127
|
+
const i = g;
|
|
2128
|
+
this[i(559)][i(538)] || (this.state.isEnded = !0, this.state[i(488)] = !1, this[i(544)] = !0, this[i(559)][i(550)] !== m.PAUSED && this[i(437)](this[i(559)][i(550)] || m.PLAYING, { ...t, data: e }), this[i(437)](m[i(517)], this[i(486)](t, e)));
|
|
2128
2129
|
}
|
|
2129
|
-
[
|
|
2130
|
-
const a =
|
|
2131
|
-
this[a(
|
|
2130
|
+
[g(556)](t, e, i) {
|
|
2131
|
+
const a = g;
|
|
2132
|
+
this[a(437)](this[a(559)][a(550)] || m[a(573)], this[a(486)](e, i))[a(494)](() => {
|
|
2132
2133
|
const r = a;
|
|
2133
|
-
this[r(
|
|
2134
|
-
this[r(
|
|
2134
|
+
this[r(437)](t, { ...e, data: i }).then(() => {
|
|
2135
|
+
this[r(424)]();
|
|
2135
2136
|
});
|
|
2136
2137
|
});
|
|
2137
2138
|
}
|
|
2138
|
-
[
|
|
2139
|
-
const i =
|
|
2140
|
-
this
|
|
2141
|
-
const a = { errorCode: e?.[i(
|
|
2142
|
-
this[i(
|
|
2139
|
+
[g(501)](t, e) {
|
|
2140
|
+
const i = g;
|
|
2141
|
+
this[i(559)][i(550)] && !this.state.firstPlaying && this.report(this.state.prevAction, this[i(486)](t, e));
|
|
2142
|
+
const a = { errorCode: e?.[i(450)] || e?.[i(555)]?.[i(450)] || e?.[i(490)] || "E0000", errorMessage: e?.[i(536)] || e?.[i(555)]?.[i(536)] || e?.message || "Unknown Error" };
|
|
2143
|
+
this[i(437)](m.ERROR, { ...t, data: { ...e, ...a } }), this[i(559)][i(518)] = !0;
|
|
2143
2144
|
}
|
|
2144
|
-
[
|
|
2145
|
-
const i =
|
|
2146
|
-
this.state
|
|
2145
|
+
[g(453)](t, e) {
|
|
2146
|
+
const i = g;
|
|
2147
|
+
this.state[i(550)] && !this.state[i(582)] && !this[i(559)][i(425)] && !this[i(559)][i(528)] && (this[i(559)][i(582)] = !0, this[i(437)](this[i(559)][i(550)], { ...t, data: e }), this.state[i(550)] = m.SEEKING);
|
|
2147
2148
|
}
|
|
2148
|
-
|
|
2149
|
-
const i =
|
|
2150
|
-
a !== this[i(
|
|
2149
|
+
handleRateChange(t, e) {
|
|
2150
|
+
const i = g, a = e?.playbackRate || e?.[i(555)]?.[i(580)] || 1;
|
|
2151
|
+
a !== this[i(559)][i(505)] && (this[i(559)].speedChangeCnt++, this.state[i(505)] = a, this[i(437)](m[i(459)], { ...t, data: { ...e, speedChangeCnt: this.state.speedChangeCnt, lastPlaybackSpeed: a } }));
|
|
2151
2152
|
}
|
|
2152
|
-
|
|
2153
|
-
const i =
|
|
2154
|
-
e?.[i(
|
|
2153
|
+
handleFullscreenChange(t, e) {
|
|
2154
|
+
const i = g;
|
|
2155
|
+
e?.[i(439)] || e?.[i(555)]?.[i(439)] ? (this[i(559)][i(545)] = !0, this.state.fullscreenEnterTime = Date.now()) : this[i(559)][i(429)] > 0 && (this[i(559)].fullscreenDuration += Date.now() - this[i(559)][i(429)], this[i(559)][i(429)] = 0), this[i(437)](m[i(469)], { ...t, data: { ...e, fullscreenYn: this[i(559)][i(545)], fullscreenDuration: this[i(559)][i(426)] } });
|
|
2155
2156
|
}
|
|
2156
|
-
[
|
|
2157
|
-
const t =
|
|
2158
|
-
this
|
|
2157
|
+
[g(424)]() {
|
|
2158
|
+
const t = g;
|
|
2159
|
+
this[t(559)][t(550)] = null, this.state.isPlaying = !1, this[t(559)].prevTime = 0, this[t(559)].firstPlaying = !0, this[t(559)][t(443)] = !1, this.state[t(567)] = 0, this[t(559)].seekCnt = 0, this[t(559)].speedChangeCnt = 0, this[t(559)][t(505)] = 1, this[t(559)][t(545)] = !1, this[t(559)][t(429)] = 0, this.state[t(426)] = 0, this[t(559)].contentId = null, this[t(559)][t(471)] = 0;
|
|
2159
2160
|
}
|
|
2160
2161
|
}
|
|
2162
|
+
const v = qt;
|
|
2163
|
+
function Le() {
|
|
2164
|
+
const x = ["player_name", "toLowerCase", "access_key", "startTimeAt", "stage", "playerVersion", "status", "9LRZSSd", "getBrowserInfo", "1455AkBsaK", "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLm5hdmVybmNwLmNvbS9wbGF5ZXIvY29uZmln", "mp4", "next", "slice", "createPlayerInfo", "code", "currentTime", "mpd", "ready", "POST", "saveData", "updateTranslator", "playerStateReport", "origin", " / ", "mobile", "naverncp.com/live/video/ls-", "VOD", "duration", "4MzxiMZ", "6aJmkaE", "setErrorRun", "string", "getElapsedMilliseconds", "Chrome", "kbps", "screen", "includes", "trim", "E0003", "UAParser", "getValidatedOptions", "getResult", "pricing", "video", "serverConfig", "sync", "warn", "whale", "config", "1991nwoUGE", "ncplayer : ", "hasFirstPlayReported", "rtt", "split", "browser", "round", "dash", "naver", "HLS 파싱 실패:", "type", "getVideoProtocol", "maManager", "stateChange", "userAgent", "playlist", "accessKey", "data", "json", "player_version", "stringify", "getTime", "navigator", "Unknown", "deviceMemory", "kakao", "errorState", "fullscreenchange", "Firefox", ".m3u8", "300CmryPQ", "playerStartTimeMs", "appId", "maSync", "translator", "maUse", "unknown", "Content-Type", "poster", "startup", "filter", "length", "some", "videoHeight", "host", "aHR0cHM6Ly9sb2cudnBlLm5hdmVybmNwLmNvbS9zdGF0cw==", "prevTrack", "isArray", "statusText", "ratechange", "result", "language", "initialize", "report", "aHR0cHM6Ly9sb2cuYmV0YS12cGUubmF2ZXJuY3AuY29tL3N0YXRz", "model", "effectiveType", "protocol", "19521138lwaCbz", "pay", "706BtvGAM", "indexOf", "1869180FHIEci", "auto", "error", "hlsPaser", "userAgentData", "errorCode", "connection", "exec", "Edge", "webkitConnection", "Auto", "16205cdkorH", "device", "height", "nextTrack", "?preview=true", "Safari", "ios", "VPE Player: accessKey 또는 appId가 없어 키 인증을 건너뜁니다.", "toString", "floor", ".mpd", "isDev", "isFullscreen", "test", "reduce", "platform", "aHR0cHM6Ly9sb2cuYmV0YS12cGUuZ292LW50cnVzcy5jb20vc3RhdHM=", "vpe", "API", "1728gZElcX", "application/json", "name", "aHR0cHM6Ly9wYXBpLnZwZS5nb3YtbnRydXNzLmNvbS9wbGF5ZXIvY29uZmln", "errorMessage", "VPE", "contentId", "live", "url", "join", "port", "cid", "mozConnection", "startsWith", "map", "isInitialized", "Other", "playbackRate", "1763445QgdXvg", "hls", "width", "location", "maInit", "getPlaylist", "Edg", "Error:", "now", "videoWidth", "match", "playerInfo", "watermarkConfig", "controlBtn", "quality", "hardwareConcurrency", "VPE SDK Initialization failed:", "href", "1821220AfCXhu", "aHR0cHM6Ly9wYXBpLnZwZS5uYXZlcm5jcC5jb20vcGxheWVyL2NvbmZpZw==", "LIVE", "player_start", "version", "downlink", "lang", "getErrorState", "meta", "errorInfo", "Naver webview", "dispatchEvent", "options", "playerName", "push", "performKeyCheck", "incomingType"];
|
|
2165
|
+
return Le = function() {
|
|
2166
|
+
return x;
|
|
2167
|
+
}, Le();
|
|
2168
|
+
}
|
|
2161
2169
|
function qt(x, t) {
|
|
2162
|
-
return x = x -
|
|
2170
|
+
return x = x - 207, Le()[x];
|
|
2163
2171
|
}
|
|
2164
|
-
const I = qt;
|
|
2165
2172
|
(function(x, t) {
|
|
2166
2173
|
const e = qt, i = x();
|
|
2167
2174
|
for (; ; )
|
|
2168
2175
|
try {
|
|
2169
|
-
if (-parseInt(e(
|
|
2176
|
+
if (-parseInt(e(375)) / 1 * (parseInt(e(281)) / 2) + parseInt(e(331)) / 3 * (parseInt(e(395)) / 4) + -parseInt(e(283)) / 5 * (parseInt(e(396)) / 6) + -parseInt(e(294)) / 7 * (parseInt(e(313)) / 8) + -parseInt(e(373)) / 9 * (parseInt(e(349)) / 10) + parseInt(e(221)) / 11 * (parseInt(e(251)) / 12) + parseInt(e(279)) / 13 === t) break;
|
|
2170
2177
|
i.push(i.shift());
|
|
2171
2178
|
} catch {
|
|
2172
2179
|
i.push(i.shift());
|
|
2173
2180
|
}
|
|
2174
|
-
})(Le,
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
return Le = function() {
|
|
2178
|
-
return x;
|
|
2179
|
-
}, Le();
|
|
2180
|
-
}
|
|
2181
|
-
const O0 = { gov: { prod: { config: I(661), report: I(571) }, beta: { config: I(534), report: I(539) } }, pub: { prod: { config: I(541), report: "aHR0cHM6Ly9sb2cudnBlLm5hdmVybmNwLmNvbS9zdGF0cw==" }, beta: { config: "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLm5hdmVybmNwLmNvbS9wbGF5ZXIvY29uZmln", report: I(642) } } };
|
|
2182
|
-
let At = [];
|
|
2181
|
+
})(Le, 524353);
|
|
2182
|
+
const O0 = { gov: { prod: { config: v(316), report: "aHR0cHM6Ly9sb2cudnBlLmdvdi1udHJ1c3MuY29tL3N0YXRz" }, beta: { config: "aHR0cHM6Ly9wYXBpLmJldGEtdnBlLmdvdi1udHJ1c3MuY29tL3BsYXllci9jb25maWc=", report: v(310) } }, pub: { prod: { config: v(350), report: v(266) }, beta: { config: v(376), report: v(275) } } };
|
|
2183
|
+
let Dt = [];
|
|
2183
2184
|
const P0 = (x) => {
|
|
2184
|
-
const t =
|
|
2185
|
+
const t = v;
|
|
2185
2186
|
try {
|
|
2186
2187
|
return atob(x);
|
|
2187
2188
|
} catch (e) {
|
|
2188
|
-
return console[t(
|
|
2189
|
+
return console[t(285)]("Base64 decoding failed:", e), "";
|
|
2189
2190
|
}
|
|
2190
2191
|
};
|
|
2191
2192
|
class U0 {
|
|
2192
|
-
[
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
[
|
|
2196
|
-
|
|
2197
|
-
[
|
|
2198
|
-
[
|
|
2199
|
-
[
|
|
2200
|
-
[
|
|
2201
|
-
|
|
2202
|
-
[
|
|
2203
|
-
|
|
2204
|
-
[
|
|
2205
|
-
|
|
2193
|
+
[v(216)] = {};
|
|
2194
|
+
[v(342)] = null;
|
|
2195
|
+
[v(237)];
|
|
2196
|
+
[v(253)];
|
|
2197
|
+
platform;
|
|
2198
|
+
[v(370)];
|
|
2199
|
+
[v(305)];
|
|
2200
|
+
[v(255)] = Qe();
|
|
2201
|
+
[v(247)];
|
|
2202
|
+
maManager = null;
|
|
2203
|
+
[v(369)] = null;
|
|
2204
|
+
[v(365)] = null;
|
|
2205
|
+
[v(223)] = !1;
|
|
2206
|
+
[v(252)] = 0;
|
|
2206
2207
|
constructor({ accessKey: t, appId: e, platform: i, stage: a, isDev: r = !1, language: o }) {
|
|
2207
|
-
const
|
|
2208
|
-
this
|
|
2208
|
+
const f = v;
|
|
2209
|
+
this.accessKey = t, this[f(253)] = e || location.origin, this[f(309)] = i, this[f(370)] = a, this[f(305)] = r, this[f(387)](o), this.errorState = { errorCode: null, errorMessage: null };
|
|
2209
2210
|
}
|
|
2210
|
-
async [
|
|
2211
|
-
const t =
|
|
2212
|
-
if ([this[e[0]], this[e[1]]][t(
|
|
2211
|
+
async [v(273)]() {
|
|
2212
|
+
const t = v, e = ["accessKey", t(253), "E0002", "E0001", t(210)], i = t(301);
|
|
2213
|
+
if ([this[e[0]], this[e[1]]][t(263)]((o) => !o)) return console[t(218)](i), { error: this[t(397)](e[2]) };
|
|
2213
2214
|
const r = (o) => {
|
|
2214
|
-
const
|
|
2215
|
-
return this[
|
|
2215
|
+
const f = t;
|
|
2216
|
+
return this[f(216)] = o, this[f(342)] = this[f(380)](o), this[f(342)];
|
|
2216
2217
|
};
|
|
2217
2218
|
try {
|
|
2218
|
-
const o = await this
|
|
2219
|
-
if (o[t(
|
|
2220
|
-
const
|
|
2221
|
-
if (window[t(
|
|
2222
|
-
await
|
|
2223
|
-
const
|
|
2224
|
-
this[t(
|
|
2219
|
+
const o = await this[t(364)]();
|
|
2220
|
+
if (o[t(381)] !== 200) return { error: this.setErrorRun(e[3]) };
|
|
2221
|
+
const f = r(o);
|
|
2222
|
+
if (window[t(311)] && (window.vpe[t(362)] = f?.[t(366)], window[t(311)][t(371)] = window[t(311)][t(371)] || f?.[t(240)], window[t(311)][t(366)] = f[t(366)] + "|" + window[t(311)][t(371)], window.vpe.state = this.stage), f?.[t(256)] === "Y") {
|
|
2223
|
+
await E0(this[t(309)], this[t(370)], f, this[t(253)], this[t(237)]);
|
|
2224
|
+
const p = await I0(this.accessKey);
|
|
2225
|
+
this[t(233)] = new M0(this[t(309)], this.stage, f), this[t(369)] = Date[t(339)](), p?.[t(271)]?.[t(217)] && await this[t(233)][t(335)]({ video: f[t(215)] || {}, extra: { ...f.extra } });
|
|
2225
2226
|
}
|
|
2226
|
-
return { options: this[t(
|
|
2227
|
+
return { options: this.serverConfig[t(271)]?.[t(361)], playerInfo: f };
|
|
2227
2228
|
} catch (o) {
|
|
2228
|
-
return console[t(
|
|
2229
|
+
return console[t(285)](t(347), o), { error: this.setErrorRun(e[4]) };
|
|
2229
2230
|
}
|
|
2230
2231
|
}
|
|
2231
|
-
async
|
|
2232
|
-
const t =
|
|
2232
|
+
async [v(364)]() {
|
|
2233
|
+
const t = v, e = [t(298), t(220), t(258), t(314), t(368), "domain", t(385)], i = this[t(305)] ? e[0] : "", a = P0(O0[this.platform][this[t(370)]][e[1]]) + i, r = this[t(253)], o = JSON[t(241)]([e[4], e[5]][t(308)]((p, y, S) => {
|
|
2233
2234
|
const E = t;
|
|
2234
|
-
return
|
|
2235
|
-
}, {})),
|
|
2236
|
-
if (!
|
|
2237
|
-
return
|
|
2235
|
+
return p[y] = [this[E(237)], r][S], p;
|
|
2236
|
+
}, {})), f = await fetch(a, { method: e[6], headers: { [e[2]]: e[3] }, body: o });
|
|
2237
|
+
if (!f.ok) throw new Error([t(312), t(338), f[t(372)], f[t(269)]][t(322)](" "));
|
|
2238
|
+
return f[t(239)]();
|
|
2238
2239
|
}
|
|
2239
|
-
[
|
|
2240
|
-
const t =
|
|
2241
|
-
return /CriOS\/(\d+\.\d+)/[t(
|
|
2240
|
+
[v(374)]() {
|
|
2241
|
+
const t = v, e = navigator.userAgent;
|
|
2242
|
+
return /CriOS\/(\d+\.\d+)/[t(307)](e) ? { origin: "Chrome iOS", version: RegExp.$1 } : /FxiOS\/(\d+\.\d+)/[t(307)](e) ? { origin: "Firefox iOS", version: RegExp.$1 } : /EdgiOS\/(\d+\.\d+)/[t(307)](e) ? { origin: "Edge iOS", version: RegExp.$1 } : /Edg\/(\d+\.\d+)/[t(307)](e) ? { origin: t(291), version: RegExp.$1 } : /Chrome\/(\d+\.\d+)/.test(e) && !e[t(208)](t(337)) ? { origin: t(400), version: RegExp.$1 } : /Firefox\/(\d+\.\d+)/.test(e) ? { origin: t(249), version: RegExp.$1 } : /Version\/(\d+\.\d+)/[t(307)](e) && e[t(208)]("Safari") ? { origin: t(299), version: RegExp.$1 } : { origin: t(244), version: t(244) };
|
|
2242
2243
|
}
|
|
2243
|
-
[
|
|
2244
|
-
const e =
|
|
2245
|
-
window[e(
|
|
2246
|
-
const y =
|
|
2247
|
-
return { cid: t
|
|
2244
|
+
[v(380)](t) {
|
|
2245
|
+
const e = v, [i, a] = t[e(271)][e(315)][e(225)]("|"), r = navigator[e(289)] || navigator[e(325)] || navigator[e(292)], o = this[e(374)](), f = navigator[e(287)], p = new Et[e(211)](window[e(243)][e(235)])[e(213)]();
|
|
2246
|
+
window[e(243)][e(235)][e(367)]()[e(208)](e(219)) ? p[e(226)][e(315)] = "Whale" : window[e(243)].userAgent.toLowerCase()[e(208)]("kakaotalk") ? p.browser[e(315)] = "Kakao webview" : window.navigator.userAgent[e(367)]()[e(208)]("naver") ? p.browser[e(315)] = e(359) : window.navigator[e(235)][e(367)]()[e(208)](e(246)) ? p[e(226)][e(315)] = "Kakao webview" : window[e(243)][e(235)].toLowerCase()[e(208)](e(229)) && (p.browser.name = e(359));
|
|
2247
|
+
const y = p[e(295)][e(231)], S = /Macintosh/.test(window.navigator[e(235)]) && (navigator.maxTouchPoints ?? 0) > 1, E = y === e(391) || y === "tablet" || S || (f?.[e(391)] ?? !1), D = p.os[e(315)] || f?.[e(309)] || e(244), H = (p.os[e(315)] || "")[e(367)]() === e(300), U = /Version\/(\d+\.\d+)/[e(290)](navigator.userAgent)?.[1], L = H && !!U, Q = L ? U : p.os[e(353)], j = H && !L, we = typeof window < "u" && window[e(311)]?.[e(371)] || a;
|
|
2248
|
+
return { cid: t[e(271)][e(324)], player_name: i, player_version: we, pricing: t[e(271)][e(214)], maUse: t[e(271)][e(361)]?.maUse === "Y" ? "Y" : "N", browser: { lang: navigator.language, ua: navigator[e(235)] }, screen: { width: window.screen[e(333)], height: window[e(207)].height }, connection: { network: r?.[e(277)] ?? e(257), downlink: r?.[e(354)] ?? null, rtt: r?.[e(224)] ?? null, save_data: r?.[e(386)] ?? !1 }, device: { platform: D, mobile: E, memory: navigator[e(245)] ?? null, processor: navigator[e(346)] ?? null }, video: { url: "" }, extra: { vpeKey: this[e(237)], playerType: e(318), playerVersion: we, os: (p.os[e(315)] || e(244)) + e(390) + (Q || ""), osOrigin: p.os[e(315)] || e(244), osVersion: Q, osVersionFrozen: j, vpePackageId: null, actionDuration: this.getElapsedMilliseconds(), actionType: e(384), browser: o[e(389)], browserOrigin: o[e(389)], browserVersion: o.version, quality: e(329), qualityOrigin: e(293), device: p[e(295)].vendor + " " + p.device[e(276)], location: window[e(334)].href, host: window[e(334)][e(265)], port: window.location[e(323)], protocol: window.location.protocol, title: "" } };
|
|
2248
2249
|
}
|
|
2249
|
-
|
|
2250
|
-
const e =
|
|
2251
|
-
return this[e(
|
|
2250
|
+
[v(397)](t) {
|
|
2251
|
+
const e = v, i = t[e(379)](-2), a = this[e(255)][e(285)][i] || this[e(255)].error["01"], r = { errorCode: t, errorMessage: a };
|
|
2252
|
+
return this[e(247)] = r, console[e(285)](e(222), r), r;
|
|
2252
2253
|
}
|
|
2253
|
-
|
|
2254
|
+
updateTranslator(t) {
|
|
2254
2255
|
this.translator = Qe(t);
|
|
2255
2256
|
}
|
|
2256
|
-
[
|
|
2257
|
-
return this[
|
|
2257
|
+
[v(356)]() {
|
|
2258
|
+
return this[v(247)];
|
|
2258
2259
|
}
|
|
2259
2260
|
isPaidTier() {
|
|
2260
|
-
const t =
|
|
2261
|
-
return this.serverConfig[t(
|
|
2261
|
+
const t = v;
|
|
2262
|
+
return this.serverConfig[t(271)]?.[t(214)] === t(280);
|
|
2262
2263
|
}
|
|
2263
|
-
[
|
|
2264
|
-
const t =
|
|
2265
|
-
return !!this
|
|
2264
|
+
[v(328)]() {
|
|
2265
|
+
const t = v;
|
|
2266
|
+
return !!this[t(216)][t(271)];
|
|
2266
2267
|
}
|
|
2267
|
-
[
|
|
2268
|
-
const e =
|
|
2269
|
-
this[e(
|
|
2268
|
+
[v(212)](t) {
|
|
2269
|
+
const e = v, i = C0(this[e(216)].result?.options, this[e(216)][e(271)]?.[e(214)]);
|
|
2270
|
+
this[e(216)].result?.[e(214)] !== e(280) && (t = { ...t, ...i });
|
|
2270
2271
|
const a = { ...i, ...t ?? {} };
|
|
2271
|
-
return a?.
|
|
2272
|
+
return a?.[e(355)] && (a?.[e(355)] == e(284) || this[e(387)](a.lang)), t?.[e(344)] && (a.controlBtn = { ...i[e(344)], ...t[e(344)] }), t?.watermarkConfig && (a[e(343)] = { ...i[e(343)], ...t[e(343)] }), a[e(236)] && !Array[e(268)](a[e(236)]) && (a.playlist = [{ file: a[e(236)] }]), Dt = a[e(236)] || [], a;
|
|
2272
2273
|
}
|
|
2273
|
-
|
|
2274
|
-
return
|
|
2274
|
+
[v(336)]() {
|
|
2275
|
+
return Dt || [];
|
|
2275
2276
|
}
|
|
2276
2277
|
$t(t) {
|
|
2277
|
-
const e =
|
|
2278
|
-
let a = this
|
|
2278
|
+
const e = v, i = t[e(225)](".");
|
|
2279
|
+
let a = this.translator;
|
|
2279
2280
|
for (const r of i)
|
|
2280
|
-
if (a && typeof a
|
|
2281
|
+
if (a && typeof a == "object" && r in a) a = a[r];
|
|
2281
2282
|
else return t;
|
|
2282
|
-
return typeof a === e(
|
|
2283
|
+
return typeof a === e(398) ? a : t;
|
|
2283
2284
|
}
|
|
2284
|
-
async [
|
|
2285
|
-
const e =
|
|
2286
|
-
if (!t || t
|
|
2287
|
-
const a = (
|
|
2285
|
+
async [v(286)](t) {
|
|
2286
|
+
const e = v, i = [];
|
|
2287
|
+
if (!t || t.indexOf(e(250)) === -1) return i;
|
|
2288
|
+
const a = (f, p) => {
|
|
2288
2289
|
const y = e;
|
|
2289
2290
|
try {
|
|
2290
|
-
return new URL(
|
|
2291
|
+
return new URL(p, f)[y(302)]();
|
|
2291
2292
|
} catch {
|
|
2292
|
-
return
|
|
2293
|
+
return p;
|
|
2293
2294
|
}
|
|
2294
|
-
}, r = (
|
|
2295
|
-
const
|
|
2295
|
+
}, r = (f) => {
|
|
2296
|
+
const p = e, y = f.match(/RESOLUTION=(\d+)x(\d+)/);
|
|
2296
2297
|
if (y) return y[2] + "p";
|
|
2297
|
-
const
|
|
2298
|
-
return
|
|
2299
|
-
}, o = (
|
|
2300
|
-
const
|
|
2301
|
-
for (let
|
|
2302
|
-
const E = y[
|
|
2303
|
-
if (E.startsWith(
|
|
2304
|
-
const
|
|
2305
|
-
|
|
2298
|
+
const S = f[p(341)](/BANDWIDTH=(\d+)/);
|
|
2299
|
+
return S ? Math[p(227)](Number(S[1]) / 1e3) + p(401) : p(284);
|
|
2300
|
+
}, o = (f) => {
|
|
2301
|
+
const p = e, y = f.split(/\r?\n/)[p(327)]((S) => S[p(209)]())[p(261)]((S) => S[p(262)] > 0);
|
|
2302
|
+
for (let S = 0; S < y.length; S += 1) {
|
|
2303
|
+
const E = y[S];
|
|
2304
|
+
if (E.startsWith("#EXT-X-STREAM-INF")) {
|
|
2305
|
+
const D = y[S + 1];
|
|
2306
|
+
D && !D[p(326)]("#") && (i[p(363)]({ quality: r(E), url: a(t, D), levelIndex: i[p(262)] }), S += 1);
|
|
2306
2307
|
}
|
|
2307
2308
|
}
|
|
2308
2309
|
};
|
|
2309
2310
|
try {
|
|
2310
|
-
const
|
|
2311
|
-
if (!
|
|
2312
|
-
const
|
|
2313
|
-
return
|
|
2314
|
-
} catch (
|
|
2315
|
-
return console[e(
|
|
2311
|
+
const f = await fetch(t);
|
|
2312
|
+
if (!f.ok) return i;
|
|
2313
|
+
const p = await f.text();
|
|
2314
|
+
return p && o(p), i;
|
|
2315
|
+
} catch (f) {
|
|
2316
|
+
return console[e(285)](e(230), f), i;
|
|
2316
2317
|
}
|
|
2317
2318
|
}
|
|
2318
|
-
async
|
|
2319
|
-
const e =
|
|
2320
|
-
if (!t?.[e(
|
|
2321
|
-
const i = new
|
|
2322
|
-
if (t
|
|
2323
|
-
if (t[e(
|
|
2324
|
-
await this[e(
|
|
2319
|
+
async [v(388)](t) {
|
|
2320
|
+
const e = v;
|
|
2321
|
+
if (!t?.[e(231)] || !this[e(233)] || this[e(342)]?.maUse !== "Y") return;
|
|
2322
|
+
const i = new Et[e(211)](window[e(243)][e(235)])[e(213)]();
|
|
2323
|
+
if (t.type == "volumechange" || t.type == e(234)) return;
|
|
2324
|
+
if (t[e(231)] == e(270)) {
|
|
2325
|
+
await this[e(274)](e(270), { extra: { playbackRate: t?.[e(238)]?.[e(330)] || t?.[e(215)]?.data?.[e(330)] || 1 } }, t[e(231)]);
|
|
2325
2326
|
return;
|
|
2326
2327
|
}
|
|
2327
|
-
if (t
|
|
2328
|
-
await this[e(
|
|
2328
|
+
if (t.type == e(248)) {
|
|
2329
|
+
await this[e(274)](e(248), { extra: { isFullscreen: t?.data?.[e(306)] || !1 } }, t[e(231)]);
|
|
2329
2330
|
return;
|
|
2330
2331
|
}
|
|
2331
|
-
const a = t
|
|
2332
|
-
t
|
|
2333
|
-
const r = t?.[e(
|
|
2334
|
-
this[e(
|
|
2335
|
-
const y = this.incomingType === "play" && !this.hasFirstPlayReported,
|
|
2336
|
-
y && (this
|
|
2337
|
-
const E = t?.[e(
|
|
2338
|
-
let L = 0, Q = 0,
|
|
2339
|
-
if (
|
|
2340
|
-
const
|
|
2341
|
-
Q =
|
|
2332
|
+
const a = t[e(231)];
|
|
2333
|
+
t.type == e(384) && (t[e(231)] = e(352)), (t[e(231)] === e(378) || t.type === "prev" || t.type === e(297) || t[e(231)] === e(267)) && (this[e(223)] = !1);
|
|
2334
|
+
const r = t?.[e(215)]?.[e(321)] ?? "", o = /\.mp4(?:[?#]|$)/i[e(307)](r) && !r[e(208)](e(250)) && !r[e(208)](e(304)), f = !o && (t?.video?.type == e(320) || r[e(208)](e(392))), p = navigator.connection || navigator[e(325)] || navigator.webkitConnection || null;
|
|
2335
|
+
this[e(365)] = t?.[e(231)] || null;
|
|
2336
|
+
const y = this.incomingType === "play" && !this.hasFirstPlayReported, S = y ? e(260) : this[e(365)];
|
|
2337
|
+
y && (this.hasFirstPlayReported = !0);
|
|
2338
|
+
const E = t?.[e(215)]?.data?.[e(394)] || 0, D = t?.[e(215)]?.data?.[e(382)] || 0, H = t?.[e(215)]?.[e(340)] || 0, U = t?.[e(215)]?.[e(264)] || 0;
|
|
2339
|
+
let L = 0, Q = 0, j = 0;
|
|
2340
|
+
if (S == e(352) && (L = this[e(399)](), this[e(252)] = L), S == e(260)) {
|
|
2341
|
+
const dt = this[e(399)]();
|
|
2342
|
+
Q = dt - this[e(252)], j = dt;
|
|
2342
2343
|
}
|
|
2343
|
-
const
|
|
2344
|
-
await this[e(
|
|
2344
|
+
const we = { type: S, video: { type: f ? e(351) : "VOD", quality: t?.[e(215)]?.[e(345)] ? t?.[e(215)]?.[e(345)] : e(284), url: t?.video?.[e(321)] }, connection: p ? { network: p[e(277)], downlink: p[e(354)], rtt: p[e(224)], save_data: p[e(386)] } : void 0, extra: { actionType: S, url: t?.[e(215)]?.url, type: e(f ? 351 : 393), videoFormat: this[e(232)](t?.[e(215)]?.[e(321)]), ...t?.[e(215)]?.[e(259)] ? { poster: t[e(215)][e(259)] } : {}, video_type: f ? e(351) : "VOD", title: t?.[e(357)]?.title, contentId: t?.[e(215)]?.contentId || t?.[e(357)]?.[e(319)] || null, metaData: t?.[e(357)], videoWidth: Math[e(227)](H), videoHeight: Math[e(227)](U), video_protocols: this[e(232)](t?.[e(215)]?.[e(321)]), duration: Math[e(303)](E), currentTime: Math[e(303)](D), playedTime: this[e(399)](), viewingTime: Math.round(this[e(399)]() / 1e3), playerStartTime: L, videoStartTime: Q, totalStartTime: j, percent: Math.round(D / E * 100), quality: t?.video?.[e(345)] ? t?.video?.[e(345)] : e(284), errorCode: t?.[e(238)]?.errorCode ?? t?.errorInfo?.[e(288)], errorMessage: t?.[e(238)]?.errorMessage ?? t?.[e(358)]?.[e(317)], actionDuration: this[e(399)]() / 1e3, device: i[e(295)].vendor + " " + i.device.model, location: window[e(334)][e(348)], host: window.location[e(265)], port: window[e(334)][e(323)], protocol: window.location[e(278)] }, browser: { lang: navigator[e(272)], ua: navigator[e(235)] }, screen: { width: window[e(207)][e(333)], height: window[e(207)][e(296)] } };
|
|
2345
|
+
await this[e(274)](S, we, a);
|
|
2345
2346
|
}
|
|
2346
|
-
async
|
|
2347
|
-
const a =
|
|
2348
|
-
if (!this
|
|
2349
|
-
const r = e && typeof e
|
|
2350
|
-
await this
|
|
2347
|
+
async report(t, e, i) {
|
|
2348
|
+
const a = v;
|
|
2349
|
+
if (!this[a(233)]) return;
|
|
2350
|
+
const r = e && typeof e == "object" ? e : { extra: { actionDuration: this.getElapsedMilliseconds() } };
|
|
2351
|
+
await this[a(233)][a(254)](r), await this[a(233)][a(360)]({ type: t, data: r });
|
|
2351
2352
|
}
|
|
2352
|
-
|
|
2353
|
-
const e =
|
|
2354
|
-
return t[e(
|
|
2353
|
+
[v(232)](t) {
|
|
2354
|
+
const e = v;
|
|
2355
|
+
return t[e(282)]("m3u8") > -1 ? e(332) : t[e(282)](e(383)) > -1 ? e(228) : e(377);
|
|
2355
2356
|
}
|
|
2356
|
-
[
|
|
2357
|
-
const t =
|
|
2358
|
-
return this
|
|
2357
|
+
[v(399)]() {
|
|
2358
|
+
const t = v;
|
|
2359
|
+
return this[t(369)] ? (/* @__PURE__ */ new Date())[t(242)]() - this[t(369)] : 0;
|
|
2359
2360
|
}
|
|
2360
2361
|
}
|
|
2361
|
-
function
|
|
2362
|
-
x =
|
|
2363
|
-
|
|
2364
|
-
|
|
2362
|
+
function Be() {
|
|
2363
|
+
var x = ["4415ULLJRh", "53850VtXhRE", "8TGDqTU", "2439120ixmKtV", "140ujCyrG", "120147BdyOIp", "22177617bQAilW", "3620kHlrhV", "13783740TnzQfi", "12724083iLxeUN", "24IGILRH"];
|
|
2364
|
+
return Be = function() {
|
|
2365
|
+
return x;
|
|
2366
|
+
}, Be();
|
|
2365
2367
|
}
|
|
2366
2368
|
(function(x, t) {
|
|
2367
2369
|
for (var e = N0, i = x(); ; )
|
|
2368
2370
|
try {
|
|
2369
|
-
var a = -parseInt(e(
|
|
2371
|
+
var a = -parseInt(e(207)) / 1 * (-parseInt(e(212)) / 2) + parseInt(e(216)) / 3 + parseInt(e(209)) / 4 * (parseInt(e(213)) / 5) + -parseInt(e(214)) / 6 * (parseInt(e(206)) / 7) + parseInt(e(215)) / 8 * (-parseInt(e(211)) / 9) + parseInt(e(210)) / 10 + -parseInt(e(208)) / 11;
|
|
2370
2372
|
if (a === t) break;
|
|
2371
2373
|
i.push(i.shift());
|
|
2372
2374
|
} catch {
|
|
2373
2375
|
i.push(i.shift());
|
|
2374
2376
|
}
|
|
2375
|
-
})(Be,
|
|
2376
|
-
function
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
}, Be();
|
|
2377
|
+
})(Be, 822859);
|
|
2378
|
+
function N0(x, t) {
|
|
2379
|
+
x = x - 206;
|
|
2380
|
+
var e = Be(), i = e[x];
|
|
2381
|
+
return i;
|
|
2381
2382
|
}
|
|
2382
2383
|
export {
|
|
2383
2384
|
U0 as default,
|