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